diff options
148 files changed, 1014 insertions, 504 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 4143bd532..3b1f55656 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,6 +40,10 @@ jobs: command: npm run testrpc -- --db testrpc_snapshot background: true - run: yarn lerna:run --scope 0x.js test:circleci + - save_cache: + key: coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/0x.js/coverage/lcov.info test-contracts: docker: - image: circleci/node:6.12 @@ -53,6 +57,10 @@ jobs: command: npm run testrpc -- --db testrpc_snapshot background: true - run: yarn lerna:run --scope contracts test:circleci + - save_cache: + key: coverage-contracts-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/contracts/coverage/lcov.info test-deployer: docker: - image: circleci/node:6.12 @@ -66,6 +74,10 @@ jobs: command: npm run testrpc -- --db testrpc_snapshot background: true - run: yarn lerna:run --scope @0xproject/deployer test:circleci + - save_cache: + key: coverage-deployer-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/deployer/coverage/lcov.info test-rest: docker: - image: circleci/node:6.12 @@ -79,6 +91,26 @@ jobs: command: npm run testrpc -- --db testrpc_snapshot background: true - run: yarn lerna:run --ignore contracts --ignore 0x.js --ignore @0xproject/deployer test:circleci + - save_cache: + key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/assert/coverage/lcov.info + - save_cache: + key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/connect/coverage/lcov.info + - save_cache: + key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/dev-utils/coverage/lcov.info + - save_cache: + key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/json-schemas/coverage/lcov.info + - save_cache: + key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }} + paths: + - ~/repo/packages/subproviders/coverage/lcov.info lint: working_directory: ~/repo docker: @@ -97,6 +129,39 @@ jobs: keys: - repo-{{ .Environment.CIRCLE_SHA1 }} - run: yarn prettier:ci + submit-coverage: + docker: + - image: circleci/node:6.12 + working_directory: ~/repo + steps: + - restore_cache: + keys: + - repo-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-assert-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-connect-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-deployer-{{ .Environment.CIRCLE_SHA1 }} + - restore_cache: + keys: + - coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }} + - run: yarn report_coverage workflows: version: 2 main: @@ -120,6 +185,9 @@ workflows: - lint: requires: - build -notify: - webhooks: - - url: https://coveralls.io/webhook?repo_token=ZYESXQbPiGidXzn2qkajycWa42uZHZsMX + - submit-coverage: + requires: + - test-0xjs + - test-deployer + - test-rest + - test-contracts diff --git a/.gitignore b/.gitignore index 7d27493cc..1b5d40348 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,6 @@ bin/ # generated contract artifacts packages/contracts/src/artifacts + +# Monorepo scripts +packages/*/scripts/ @@ -52,7 +52,6 @@ This repository is a monorepo including the 0x protocol smart contracts and nume | --------------------------------------------------------------- | ---------------------------------------------------------------- | | [`@0xproject/contracts`](/packages/contracts) | 0x solidity smart contracts & tests | | [`@0xproject/react-docs-example`](/packages/react-docs-example) | Example documentation site created with `@0xproject/react-docs` | -| [`@0xproject/monorepo-scripts`](/packages/monorepo-scripts) | Shared monorepo scripts | | [`@0xproject/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether | | [`@0xproject/website`](/packages/website) | 0x website & Portal DApp | diff --git a/package.json b/package.json index b8ce29c4a..77282f6b5 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "testrpc": "testrpc -p 8545 --networkId 50 -m \"${npm_package_config_mnemonic}\"", "prettier": "prettier --write '**/*.{ts,tsx,json,md}' --config .prettierrc", "prettier:ci": "prettier --list-different '**/*.{ts,tsx,json,md}' --config .prettierrc", + "report_coverage": "lcov-result-merger 'packages/*/coverage/lcov.info' | coveralls", "lerna:run": "lerna run", "lerna:rebuild": "lerna run clean; lerna run build;", "lerna:publish": @@ -18,10 +19,10 @@ "devDependencies": { "@0xproject/utils": "^0.4.1", "async-child-process": "^1.1.1", + "coveralls": "^3.0.0", "ethereumjs-testrpc": "^6.0.3", + "lcov-result-merger": "^2.0.0", "lerna": "^2.5.1", - "prettier": "^1.11.1", - "publish-release": "0xproject/publish-release", - "semver-sort": "^0.0.4" + "prettier": "^1.11.1" } } diff --git a/packages/0x.js/coverage/.gitkeep b/packages/0x.js/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/0x.js/coverage/.gitkeep diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json index 4a4d6d2c8..0cb01d352 100644 --- a/packages/0x.js/package.json +++ b/packages/0x.js/package.json @@ -19,19 +19,27 @@ "upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json", "generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", - "test:circleci": "run-s test:coverage report_test_coverage", + "test:circleci": "run-s test:coverage", "test": "run-s clean test:commonjs", - "test:coverage": "nyc npm run test --all", - "report_test_coverage": "nyc report --reporter=text-lcov | coveralls", + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", "update_contracts": "for i in ${npm_package_config_artifacts}; do copyfiles -u 4 ../contracts/build/contracts/$i.json ../0x.js/src/artifacts; done;", - "clean": "shx rm -rf _bundles lib test_temp", + "clean": "shx rm -rf _bundles lib test_temp scripts", "build:umd:prod": "NODE_ENV=production webpack", - "build:commonjs": "tsc && copyfiles -u 2 './src/artifacts/**/*.json' ./lib/src/artifacts;", + "build:commonjs": "tsc && copyfiles -u 2 './src/artifacts/**/*.json' ./lib/src/artifacts && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", "test:commonjs": "run-s build:commonjs run_mocha", "run_mocha": "mocha lib/test/**/*_test.js --timeout 10000 --bail --exit" }, "config": { - "artifacts": "TokenTransferProxy Exchange TokenRegistry Token EtherToken" + "artifacts": "TokenTransferProxy Exchange TokenRegistry Token EtherToken", + "postpublish": { + "assets": ["_bundles/index.js", "_bundles/index.min.js"], + "docPublishConfigs": { + "extraFileIncludes": ["../types/src/index.ts"], + "s3BucketPath": "s3://0xjs-docs-jsons/", + "s3StagingBucketPath": "s3://staging-0xjs-docs-jsons/" + } + } }, "repository": { "type": "git", @@ -44,6 +52,7 @@ "devDependencies": { "@0xproject/abi-gen": "^0.2.5", "@0xproject/dev-utils": "^0.2.1", + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/bintrees": "^1.0.2", "@types/jsonschema": "^1.1.1", @@ -59,13 +68,13 @@ "chai-bignumber": "^2.0.1", "chai-typescript-typings": "^0.0.4", "copyfiles": "^1.2.0", - "coveralls": "^3.0.0", "dirty-chai": "^2.0.1", "json-loader": "^0.5.4", "mocha": "^4.0.1", "npm-run-all": "^4.1.2", "nyc": "^11.0.1", "opn-cli": "^3.1.0", + "prettier": "^1.11.1", "request": "^2.81.0", "request-promise-native": "^1.0.5", "shx": "^0.2.2", diff --git a/packages/0x.js/scripts/postpublish.js b/packages/0x.js/scripts/postpublish.js deleted file mode 100644 index 1a9ab73ea..000000000 --- a/packages/0x.js/scripts/postpublish.js +++ /dev/null @@ -1,47 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const subPackageName = packageJSON.name; -// Include any external packages that are part of the 0x.js public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -// So far, we only have @0xproject/types as part of 0x.js's public interface. -const fileIncludes = [...tsConfig.include, '../types/src/index.ts']; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); -const S3BucketPath = 's3://0xjs-docs-jsons/'; - -let tag; -let version; -postpublish_utils - .getLatestTagAndVersionAsync(subPackageName) - .then(function(result) { - tag = result.tag; - version = result.version; - const releaseName = postpublish_utils.getReleaseName(subPackageName, version); - const assets = [__dirname + '/../_bundles/index.js', __dirname + '/../_bundles/index.min.js']; - return postpublish_utils.publishReleaseNotesAsync(tag, releaseName, assets); - }) - .then(function(release) { - console.log('POSTPUBLISH: Release successful, generating docs...'); - const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; - return execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, - }); - }) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - console.log('POSTPUBLISH: Doc generation successful, uploading docs... as ', fileName); - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - throw err; - }); diff --git a/packages/0x.js/scripts/stagedocs.js b/packages/0x.js/scripts/stagedocs.js deleted file mode 100644 index f0ba55205..000000000 --- a/packages/0x.js/scripts/stagedocs.js +++ /dev/null @@ -1,31 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const S3BucketPath = 's3://staging-0xjs-docs-jsons/'; -// Include any external packages that are part of the 0x.js public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -// So far, we only have @0xproject/types as part of 0x.js's public interface. -const fileIncludes = [...tsConfig.include, '../types/src/index.ts']; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); -const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; -const version = process.env.DOCS_VERSION; - -execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, -}) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - console.log(err); - }); diff --git a/packages/0x.js/src/globals.d.ts b/packages/0x.js/src/globals.d.ts index 0e103d057..e2c321f38 100644 --- a/packages/0x.js/src/globals.d.ts +++ b/packages/0x.js/src/globals.d.ts @@ -4,6 +4,12 @@ declare module 'dirty-chai'; declare module 'request-promise-native'; declare module 'web3-provider-engine'; declare module 'web3-provider-engine/subproviders/rpc'; +declare module 'publish-release'; + +// semver-sort declarations +declare module 'semver-sort' { + const desc: (versions: string[]) => string[]; +} // HACK: In order to merge the bignumber declaration added by chai-bignumber to the chai Assertion // interface we must use `namespace` as the Chai definitelyTyped definition does. Since we otherwise diff --git a/packages/0x.js/src/monorepo_scripts/postpublish.ts b/packages/0x.js/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/0x.js/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/0x.js/src/monorepo_scripts/stagedocs.ts b/packages/0x.js/src/monorepo_scripts/stagedocs.ts new file mode 100644 index 000000000..e732ac8eb --- /dev/null +++ b/packages/0x.js/src/monorepo_scripts/stagedocs.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.publishDocsToStagingAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index 1045b34e0..9e0e53630 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -7,8 +7,8 @@ "scripts": { "build:watch": "tsc -w", "lint": "tslint --project . 'src/**/*.ts'", - "clean": "shx rm -rf lib", - "build": "tsc" + "clean": "shx rm -rf lib scripts", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts" }, "bin": { "abi-gen": "lib/index.js" @@ -34,12 +34,14 @@ "yargs": "^10.0.3" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/glob": "^5.0.33", "@types/handlebars": "^4.0.36", "@types/mkdirp": "^0.5.1", "@types/node": "^8.0.53", "@types/yargs": "^10.0.0", + "copyfiles": "^1.2.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", diff --git a/packages/abi-gen/scripts/postpublish.js b/packages/abi-gen/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/abi-gen/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/abi-gen/src/globals.d.ts b/packages/abi-gen/src/globals.d.ts index 39df3f852..d267a4106 100644 --- a/packages/abi-gen/src/globals.d.ts +++ b/packages/abi-gen/src/globals.d.ts @@ -2,3 +2,10 @@ declare function toSnakeCase(str: string): string; declare module 'to-snake-case' { export = toSnakeCase; } + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/abi-gen/src/monorepo_scripts/postpublish.ts b/packages/abi-gen/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/abi-gen/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/assert/coverage/.gitkeep b/packages/assert/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/assert/coverage/.gitkeep diff --git a/packages/assert/package.json b/packages/assert/package.json index 49b0f3390..0c8c64e16 100644 --- a/packages/assert/package.json +++ b/packages/assert/package.json @@ -6,13 +6,15 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf _bundles lib test_temp", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf _bundles lib test_temp scripts", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", "run_mocha": "mocha lib/test/**/*_test.js", "prepublishOnly": "run-p build", "test": "run-s clean build run_mocha", - "test:circleci": "yarn test" + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "test:circleci": "yarn test:coverage" }, "license": "Apache-2.0", "repository": { @@ -24,12 +26,15 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/assert/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", "@types/valid-url": "^1.0.2", + "nyc": "^11.0.1", "chai": "^4.0.1", "chai-typescript-typings": "^0.0.4", + "copyfiles": "^1.2.0", "dirty-chai": "^2.0.1", "mocha": "^4.0.1", "npm-run-all": "^4.1.2", diff --git a/packages/assert/scripts/postpublish.js b/packages/assert/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/assert/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/assert/src/globals.d.ts b/packages/assert/src/globals.d.ts index 91ed2021e..5476b6bd8 100644 --- a/packages/assert/src/globals.d.ts +++ b/packages/assert/src/globals.d.ts @@ -1 +1,8 @@ declare module 'dirty-chai'; + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/assert/src/monorepo_scripts/postpublish.ts b/packages/assert/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/assert/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json index 6b4fc9a8e..cfb336106 100644 --- a/packages/base-contract/package.json +++ b/packages/base-contract/package.json @@ -6,8 +6,8 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf lib", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts'" }, "license": "Apache-2.0", @@ -20,8 +20,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/base-contract/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", + "copyfiles": "^1.2.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", diff --git a/packages/base-contract/src/globals.d.ts b/packages/base-contract/src/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/base-contract/src/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/base-contract/src/monorepo_scripts/postpublish.ts b/packages/base-contract/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/base-contract/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/chai-as-promised-typescript-typings/monorepo_scripts/globals.d.ts b/packages/chai-as-promised-typescript-typings/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/chai-as-promised-typescript-typings/monorepo_scripts/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/chai-as-promised-typescript-typings/monorepo_scripts/postpublish.ts b/packages/chai-as-promised-typescript-typings/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/chai-as-promised-typescript-typings/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/chai-as-promised-typescript-typings/package.json b/packages/chai-as-promised-typescript-typings/package.json index 98fc63b38..d22f45d28 100644 --- a/packages/chai-as-promised-typescript-typings/package.json +++ b/packages/chai-as-promised-typescript-typings/package.json @@ -4,6 +4,10 @@ "description": "Typescript type definitions for chai-as-promised", "main": "index.d.ts", "types": "index.d.ts", + "scripts": { + "build": "tsc && copyfiles -u 1 './lib/**/*' ./scripts", + "clean": "shx rm -rf scripts" + }, "repository": { "type": "git", "url": "git+https://github.com/0xProject/0x-monorepo.git" @@ -20,6 +24,11 @@ "dependencies": { "chai-typescript-typings": "^0.0.4" }, + "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", + "copyfiles": "^1.2.0", + "shx": "^0.2.2" + }, "publishConfig": { "access": "public" } diff --git a/packages/chai-as-promised-typescript-typings/scripts/postpublish.js b/packages/chai-as-promised-typescript-typings/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/chai-as-promised-typescript-typings/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/chai-as-promised-typescript-typings/tsconfig.json b/packages/chai-as-promised-typescript-typings/tsconfig.json new file mode 100644 index 000000000..bc453af4b --- /dev/null +++ b/packages/chai-as-promised-typescript-typings/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "outDir": "lib" + }, + "include": ["./monorepo_scripts/**/*"] +} diff --git a/packages/chai-typescript-typings/monorepo_scripts/globals.d.ts b/packages/chai-typescript-typings/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/chai-typescript-typings/monorepo_scripts/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/chai-typescript-typings/monorepo_scripts/postpublish.ts b/packages/chai-typescript-typings/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/chai-typescript-typings/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/chai-typescript-typings/package.json b/packages/chai-typescript-typings/package.json index a07694ed0..e8981b8cd 100644 --- a/packages/chai-typescript-typings/package.json +++ b/packages/chai-typescript-typings/package.json @@ -4,6 +4,10 @@ "description": "Typescript type definitions for chai", "main": "index.d.ts", "types": "index.d.ts", + "scripts": { + "build": "tsc && copyfiles -u 1 './lib/**/*' ./scripts", + "clean": "shx rm -rf scripts" + }, "repository": { "type": "git", "url": "git+https://github.com/0xProject/0x-monorepo.git" @@ -13,6 +17,11 @@ "url": "https://github.com/0xProject/0x-monorepo/issues" }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/chai-typescript-typings#readme", + "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", + "copyfiles": "^1.2.0", + "shx": "^0.2.2" + }, "publishConfig": { "access": "public" } diff --git a/packages/chai-typescript-typings/scripts/postpublish.js b/packages/chai-typescript-typings/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/chai-typescript-typings/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/chai-typescript-typings/tsconfig.json b/packages/chai-typescript-typings/tsconfig.json new file mode 100644 index 000000000..bc453af4b --- /dev/null +++ b/packages/chai-typescript-typings/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "outDir": "lib" + }, + "include": ["./monorepo_scripts/**/*"] +} diff --git a/packages/connect/coverage/.gitkeep b/packages/connect/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/connect/coverage/.gitkeep diff --git a/packages/connect/package.json b/packages/connect/package.json index c8714a93a..e0478b42a 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -13,15 +13,26 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf _bundles lib test_temp", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf _bundles lib test_temp scripts", "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES", "upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json", "copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", "run_mocha": "mocha lib/test/**/*_test.js", "test": "run-s clean build copy_test_fixtures run_mocha", - "test:circleci": "yarn test" + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "test:circleci": "yarn test:coverage" + }, + "config": { + "postpublish": { + "assets": ["_bundles/index.js", "_bundles/index.min.js"], + "docPublishConfigs": { + "s3BucketPath": "s3://connect-docs-jsons/", + "s3StagingBucketPath": "s3://staging-connect-docs-jsons/" + } + } }, "repository": { "type": "git", @@ -46,12 +57,15 @@ "websocket": "^1.0.25" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/fetch-mock": "^5.12.1", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", "@types/query-string": "^5.0.1", "@types/websocket": "^0.0.34", + "nyc": "^11.0.1", + "async-child-process": "^1.1.1", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-as-promised-typescript-typings": "^0.0.10", diff --git a/packages/connect/scripts/postpublish.js b/packages/connect/scripts/postpublish.js deleted file mode 100644 index e447615f9..000000000 --- a/packages/connect/scripts/postpublish.js +++ /dev/null @@ -1,45 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const subPackageName = packageJSON.name; -const S3BucketPath = 's3://connect-docs-jsons/'; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...tsConfig.include]; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); - -let tag; -let version; -postpublish_utils - .getLatestTagAndVersionAsync(subPackageName) - .then(function(result) { - tag = result.tag; - version = result.version; - const releaseName = postpublish_utils.getReleaseName(subPackageName, version); - return postpublish_utils.publishReleaseNotesAsync(tag, releaseName); - }) - .then(function(release) { - console.log('POSTPUBLISH: Release successful, generating docs...'); - const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; - return execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, - }); - }) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - console.log('POSTPUBLISH: Doc generation successful, uploading docs... as ', fileName); - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - throw err; - }); diff --git a/packages/connect/scripts/stagedocs.js b/packages/connect/scripts/stagedocs.js deleted file mode 100644 index 58272ab86..000000000 --- a/packages/connect/scripts/stagedocs.js +++ /dev/null @@ -1,30 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const S3BucketPath = 's3://staging-connect-docs-jsons/'; -const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; -const version = process.env.DOCS_VERSION; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...tsConfig.include]; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); - -execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, -}) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - console.log(err); - }); diff --git a/packages/connect/src/globals.d.ts b/packages/connect/src/globals.d.ts index 078e189cd..cb71dcdd1 100644 --- a/packages/connect/src/globals.d.ts +++ b/packages/connect/src/globals.d.ts @@ -1,3 +1,4 @@ +declare module 'async-child-process'; declare module 'dirty-chai'; declare module '*.json' { diff --git a/packages/connect/src/monorepo_scripts/postpublish.ts b/packages/connect/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/connect/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/connect/src/monorepo_scripts/stagedocs.ts b/packages/connect/src/monorepo_scripts/stagedocs.ts new file mode 100644 index 000000000..e732ac8eb --- /dev/null +++ b/packages/connect/src/monorepo_scripts/stagedocs.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.publishDocsToStagingAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/contract_templates/partials/tx.handlebars b/packages/contract_templates/partials/tx.handlebars index 347a482d6..d517a9f7f 100644 --- a/packages/contract_templates/partials/tx.handlebars +++ b/packages/contract_templates/partials/tx.handlebars @@ -32,6 +32,8 @@ public {{this.name}} = { txData: TxData = {}, ): Promise<number> { const self = this as {{contractName}}Contract; + const inputAbi = _.find(this.abi, {name: '{{this.name}}'}).inputs; + [{{> params inputs=inputs}}] = BaseContract._transformABIData(inputAbi, [{{> params inputs=inputs}}], BaseContract._bigNumberToString.bind(this)); const encodedData = this._ethersInterface.functions.{{this.name}}( {{> params inputs=inputs}} ).data @@ -49,6 +51,8 @@ public {{this.name}} = { txData: TxData = {}, ): string { const self = this as {{contractName}}Contract; + const inputAbi = _.find(this.abi, {name: '{{this.name}}'}).inputs; + [{{> params inputs=inputs}}] = BaseContract._transformABIData(inputAbi, [{{> params inputs=inputs}}], BaseContract._bigNumberToString.bind(this)); const abiEncodedTransactionData = this._ethersInterface.functions.{{this.name}}( {{> params inputs=inputs}} ).data diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 05d305942..371aba8ab 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -13,7 +13,7 @@ "copy_artifacts": "copyfiles './src/artifacts/**/*' ./lib", "build": "tsc", "test": "run-s build run_mocha", - "test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text", + "test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov", "run_mocha": "mocha 'lib/test/**/*.js' --timeout 100000 --bail --exit", "compile:comment": "Yarn workspaces do not link binaries correctly so we need to reference them directly https://github.com/yarnpkg/yarn/issues/3846", "compile": "node ../deployer/lib/src/cli.js compile --contracts ${npm_package_config_contracts} --contracts-dir src/contracts --artifacts-dir src/artifacts", @@ -24,8 +24,7 @@ "coverage:report:text": "istanbul report text", "coverage:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", - "coverage:report:coveralls": "yarn coverage:report:lcov && cat coverage/lcov.info | coveralls", - "test:circleci": "yarn test:coverage && yarn coverage:report:coveralls" + "test:circleci": "yarn test:coverage" }, "config": { "contracts": "Exchange,DummyToken,ZRXToken,Token,WETH9,TokenTransferProxy,MultiSigWallet,MultiSigWalletWithTimeLock,MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,MaliciousToken,TokenRegistry,Arbitrage,EtherDelta,AccountLevels" @@ -54,7 +53,6 @@ "chai-bignumber": "^2.0.1", "chai-typescript-typings": "^0.0.4", "copyfiles": "^1.2.0", - "coveralls": "^3.0.0", "dirty-chai": "^2.0.1", "ethers-typescript-typings": "^0.0.2", "mocha": "^4.0.1", diff --git a/packages/deployer/coverage/.gitkeep b/packages/deployer/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/deployer/coverage/.gitkeep diff --git a/packages/deployer/package.json b/packages/deployer/package.json index 685c2fb61..71fe4d9d7 100644 --- a/packages/deployer/package.json +++ b/packages/deployer/package.json @@ -6,13 +6,15 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "yarn clean && copyfiles 'test/fixtures/contracts/**/*' ./lib && tsc", + "build": "yarn clean && copyfiles 'test/fixtures/contracts/**/*' ./lib && tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", "test": "npm run build; mocha lib/test/*_test.js", + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", "compile": "npm run build; node lib/src/cli.js compile", - "clean": "shx rm -rf ./lib", + "clean": "shx rm -rf lib scripts", "migrate": "npm run build; node lib/src/cli.js migrate", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", - "test:circleci": "yarn test" + "test:circleci": "yarn test:coverage" }, "bin": { "0x-deployer": "lib/src/cli.js" @@ -28,10 +30,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/deployer/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/require-from-string": "^1.2.0", "chai": "^4.0.1", "copyfiles": "^1.2.0", + "nyc": "^11.0.1", "ethers-typescript-typings": "^0.0.2", "mocha": "^4.0.1", "shx": "^0.2.2", diff --git a/packages/deployer/scripts/postpublish.js b/packages/deployer/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/deployer/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/deployer/src/globals.d.ts b/packages/deployer/src/globals.d.ts index 257e7823b..3cff8a909 100644 --- a/packages/deployer/src/globals.d.ts +++ b/packages/deployer/src/globals.d.ts @@ -42,3 +42,10 @@ declare module 'solc' { declare module 'web3-eth-abi' { export function encodeParameters(typesArray: string[], parameters: any[]): string; } + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/deployer/src/monorepo_scripts/postpublish.ts b/packages/deployer/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/deployer/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/dev-utils/coverage/.gitkeep b/packages/dev-utils/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/dev-utils/coverage/.gitkeep diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index dc594daaf..bfe752982 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -6,11 +6,13 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", "test": "run-s clean build run_mocha", - "test:circleci": "yarn test", + "test:circleci": "yarn test:coverage", "run_mocha": "mocha lib/test/**/*_test.js --bail --exit", - "clean": "shx rm -rf lib", + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'" }, "license": "Apache-2.0", @@ -23,12 +25,15 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/dev-utils/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@0xproject/web3-wrapper": "^0.2.1", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", + "nyc": "^11.0.1", "chai": "^4.0.1", "chai-typescript-typings": "^0.0.4", + "copyfiles": "^1.2.0", "mocha": "^4.0.1", "npm-run-all": "^4.1.2", "shx": "^0.2.2", diff --git a/packages/dev-utils/scripts/postpublish.js b/packages/dev-utils/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/dev-utils/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/dev-utils/src/globals.d.ts b/packages/dev-utils/src/globals.d.ts index 7b132ee28..894e56c58 100644 --- a/packages/dev-utils/src/globals.d.ts +++ b/packages/dev-utils/src/globals.d.ts @@ -1,2 +1,9 @@ declare module 'web3-provider-engine'; declare module 'web3-provider-engine/subproviders/rpc'; + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/dev-utils/src/monorepo_scripts/postpublish.ts b/packages/dev-utils/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/dev-utils/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/dev-utils/.npmignore b/packages/dev-utils/test/.npmignore index 87bc30436..87bc30436 100644 --- a/packages/dev-utils/.npmignore +++ b/packages/dev-utils/test/.npmignore diff --git a/packages/ethers-typescript-typings/monorepo_scripts/globals.d.ts b/packages/ethers-typescript-typings/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/ethers-typescript-typings/monorepo_scripts/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/ethers-typescript-typings/monorepo_scripts/postpublish.ts b/packages/ethers-typescript-typings/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/ethers-typescript-typings/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/ethers-typescript-typings/package.json b/packages/ethers-typescript-typings/package.json index 6d7601794..1e349fa93 100644 --- a/packages/ethers-typescript-typings/package.json +++ b/packages/ethers-typescript-typings/package.json @@ -5,7 +5,9 @@ "main": "index.d.ts", "types": "index.d.ts", "scripts": { - "lint": "tslint index.d.ts" + "lint": "tslint index.d.ts", + "build": "tsc && copyfiles -u 1 './lib/**/*' ./scripts", + "clean": "shx rm -rf scripts" }, "repository": { "type": "git", @@ -21,6 +23,9 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/ethers-typescript-typings#readme", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", + "copyfiles": "^1.2.0", + "shx": "^0.2.2", "tslint": "5.8.0", "tslint-config-0xproject": "^0.0.2", "typescript": "2.7.1" diff --git a/packages/ethers-typescript-typings/scripts/postpublish.js b/packages/ethers-typescript-typings/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/ethers-typescript-typings/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/ethers-typescript-typings/tsconfig.json b/packages/ethers-typescript-typings/tsconfig.json new file mode 100644 index 000000000..bc453af4b --- /dev/null +++ b/packages/ethers-typescript-typings/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "outDir": "lib" + }, + "include": ["./monorepo_scripts/**/*"] +} diff --git a/packages/json-schemas/coverage/.gitkeep b/packages/json-schemas/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/json-schemas/coverage/.gitkeep diff --git a/packages/json-schemas/package.json b/packages/json-schemas/package.json index 8d82511b4..84ed0c209 100644 --- a/packages/json-schemas/package.json +++ b/packages/json-schemas/package.json @@ -8,10 +8,12 @@ "build:watch": "tsc -w", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", "test": "run-s clean build run_mocha", - "test:circleci": "yarn test", + "test:coverage": "nyc npm run test --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "test:circleci": "yarn test:coverage", "run_mocha": "mocha lib/test/**/*_test.js", - "clean": "shx rm -rf _bundles lib test_temp", - "build": "tsc" + "clean": "shx rm -rf _bundles lib test_temp scripts", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts" }, "repository": { "type": "git", @@ -28,13 +30,16 @@ "lodash.values": "^4.3.0" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@0xproject/utils": "^0.4.1", "@types/lodash.foreach": "^4.5.3", "@types/lodash.values": "^4.3.3", "@types/mocha": "^2.2.42", + "nyc": "^11.0.1", "chai": "^4.0.1", "chai-typescript-typings": "^0.0.4", + "copyfiles": "^1.2.0", "dirty-chai": "^2.0.1", "lodash.foreach": "^4.5.0", "mocha": "^4.0.1", diff --git a/packages/json-schemas/scripts/postpublish.js b/packages/json-schemas/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/json-schemas/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/json-schemas/src/globals.d.ts b/packages/json-schemas/src/globals.d.ts index 91ed2021e..5476b6bd8 100644 --- a/packages/json-schemas/src/globals.d.ts +++ b/packages/json-schemas/src/globals.d.ts @@ -1 +1,8 @@ declare module 'dirty-chai'; + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/json-schemas/src/monorepo_scripts/postpublish.ts b/packages/json-schemas/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/json-schemas/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/monorepo-scripts/CHANGELOG.md b/packages/monorepo-scripts/CHANGELOG.md new file mode 100644 index 000000000..bb685a436 --- /dev/null +++ b/packages/monorepo-scripts/CHANGELOG.md @@ -0,0 +1,5 @@ +CHANGELOG + +## v0.1.13 - _TBD_ + + * Add postpublish utils diff --git a/packages/monorepo-scripts/package.json b/packages/monorepo-scripts/package.json index 9a4e414e3..3a6fecf6a 100644 --- a/packages/monorepo-scripts/package.json +++ b/packages/monorepo-scripts/package.json @@ -1,8 +1,9 @@ { "name": "@0xproject/monorepo-scripts", "version": "0.1.12", - "private": true, "description": "Helper scripts for the monorepo", + "main": "lib/index.js", + "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", "deps_versions": "node ./lib/deps_versions.js", @@ -19,8 +20,9 @@ "url": "https://github.com/0xProject/0x-monorepo/issues" }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/monorepo-scripts/README.md", + "comment": "// We purposefully use an older version of tslint-config here to avoid creating an import cycle", "devDependencies": { - "@0xproject/tslint-config": "^0.4.10", + "@0xproject/tslint-config": "0.4.8", "@types/glob": "^5.0.33", "@types/node": "^8.0.53", "shx": "^0.2.2", @@ -29,8 +31,12 @@ }, "dependencies": { "@0xproject/utils": "^0.4.1", + "es6-promisify": "^5.0.0", + "async-child-process": "^1.1.1", + "publish-release": "0xproject/publish-release", "chalk": "^2.3.0", "glob": "^7.1.2", - "lodash": "^4.17.4" + "lodash": "^4.17.4", + "semver-sort": "^0.0.4" } } diff --git a/packages/monorepo-scripts/src/globals.d.ts b/packages/monorepo-scripts/src/globals.d.ts new file mode 100644 index 000000000..757ae4097 --- /dev/null +++ b/packages/monorepo-scripts/src/globals.d.ts @@ -0,0 +1,8 @@ +declare module 'async-child-process'; +declare module 'publish-release'; +declare module 'es6-promisify'; + +// semver-sort declarations +declare module 'semver-sort' { + const desc: (versions: string[]) => string[]; +} diff --git a/packages/monorepo-scripts/src/index.ts b/packages/monorepo-scripts/src/index.ts new file mode 100644 index 000000000..95c96ebe8 --- /dev/null +++ b/packages/monorepo-scripts/src/index.ts @@ -0,0 +1 @@ +export { postpublishUtils } from './postpublish_utils'; diff --git a/packages/monorepo-scripts/src/postpublish_utils.ts b/packages/monorepo-scripts/src/postpublish_utils.ts new file mode 100644 index 000000000..898b00c47 --- /dev/null +++ b/packages/monorepo-scripts/src/postpublish_utils.ts @@ -0,0 +1,161 @@ +import { execAsync } from 'async-child-process'; +import * as promisify from 'es6-promisify'; +import * as _ from 'lodash'; +import * as publishRelease from 'publish-release'; +import semverSort = require('semver-sort'); + +import { utils } from './utils'; + +const publishReleaseAsync = promisify(publishRelease); +const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS; +const generatedDocsDirectoryName = 'generated_docs'; + +export interface PostpublishConfigs { + cwd: string; + packageName: string; + version: string; + assets: string[]; + docPublishConfigs: DocPublishConfigs; +} + +export interface DocPublishConfigs { + fileIncludes: string[]; + s3BucketPath: string; + s3StagingBucketPath: string; +} + +export const postpublishUtils = { + generateConfig(packageJSON: any, tsConfigJSON: any, cwd: string): PostpublishConfigs { + if (_.isUndefined(packageJSON.name)) { + throw new Error('name field required in package.json. Cannot publish release notes to Github.'); + } + if (_.isUndefined(packageJSON.version)) { + throw new Error('version field required in package.json. Cannot publish release notes to Github.'); + } + const postpublishConfig = _.get(packageJSON, 'config.postpublish', {}); + const configs: PostpublishConfigs = { + cwd, + packageName: packageJSON.name, + version: packageJSON.version, + assets: _.get(postpublishConfig, 'assets', []), + docPublishConfigs: { + fileIncludes: [ + ...tsConfigJSON.include, + ..._.get(postpublishConfig, 'docPublishConfigs.extraFileIncludes', []), + ], + s3BucketPath: _.get(postpublishConfig, 'docPublishConfigs.s3BucketPath'), + s3StagingBucketPath: _.get(postpublishConfig, 'docPublishConfigs.s3StagingBucketPath'), + }, + }; + return configs; + }, + async runAsync(packageJSON: any, tsConfigJSON: any, cwd: string): Promise<void> { + const configs = this.generateConfig(packageJSON, tsConfigJSON, cwd); + const release = await this.publishReleaseNotesAsync( + configs.cwd, + configs.packageName, + configs.version, + configs.assets, + ); + if ( + !_.isUndefined(configs.docPublishConfigs.s3BucketPath) || + !_.isUndefined(configs.docPublishConfigs.s3StagingBucketPath) + ) { + utils.log('POSTPUBLISH: Release successful, generating docs...'); + await postpublishUtils.generateAndUploadDocsAsync( + configs.cwd, + configs.docPublishConfigs.fileIncludes, + configs.version, + configs.docPublishConfigs.s3BucketPath, + ); + } else { + utils.log(`POSTPUBLISH: No S3Bucket config found for ${packageJSON.name}. Skipping doc JSON generation.`); + } + }, + async publishDocsToStagingAsync(packageJSON: any, tsConfigJSON: any, cwd: string) { + const configs = this.generateConfig(packageJSON, tsConfigJSON, cwd); + if (_.isUndefined(configs.docPublishConfigs.s3StagingBucketPath)) { + utils.log('config.postpublish.docPublishConfigs.s3StagingBucketPath entry in package.json not found!'); + return; + } + + utils.log('POSTPUBLISH: Generating docs...'); + await postpublishUtils.generateAndUploadDocsAsync( + configs.cwd, + configs.docPublishConfigs.fileIncludes, + configs.version, + configs.docPublishConfigs.s3StagingBucketPath, + ); + }, + async publishReleaseNotesAsync(cwd: string, packageName: string, version: string, assets: string[]): Promise<void> { + const releaseName = this.getReleaseName(packageName, version); + const tag = this.getTag(packageName, version); + utils.log('POSTPUBLISH: Releasing ', releaseName, '...'); + const finalAssets = this.adjustAssetPaths(cwd, assets); + const result = await publishReleaseAsync({ + token: githubPersonalAccessToken, + owner: '0xProject', + repo: '0x-monorepo', + tag, + name: releaseName, + notes: 'N/A', + draft: false, + prerelease: false, + reuseRelease: true, + reuseDraftOnly: false, + assets, + }); + }, + getTag(packageName: string, version: string) { + return `${packageName}@${version}`; + }, + getReleaseName(subPackageName: string, version: string): string { + const releaseName = `${subPackageName} v${version}`; + return releaseName; + }, + adjustAssetPaths(cwd: string, assets: string[]) { + const finalAssets: string[] = []; + _.each(assets, (asset: string) => { + finalAssets.push(`${cwd}/${asset}`); + }); + return finalAssets; + }, + adjustFileIncludePaths(fileIncludes: string[], cwd: string): string[] { + const fileIncludesAdjusted = _.map(fileIncludes, fileInclude => { + let path = _.startsWith(fileInclude, './') ? `${cwd}/${fileInclude.substr(2)}` : `${cwd}/${fileInclude}`; + + // HACK: tsconfig.json needs wildcard directory endings as `/**/*` + // but TypeDoc needs it as `/**` in order to pick up files at the root + if (_.endsWith(path, '/**/*')) { + path = path.slice(0, -2); + } + return path; + }); + return fileIncludesAdjusted; + }, + async generateAndUploadDocsAsync(cwd: string, fileIncludes: string[], version: string, S3BucketPath: string) { + const fileIncludesAdjusted = this.adjustFileIncludePaths(fileIncludes, cwd); + const projectFiles = fileIncludesAdjusted.join(' '); + const jsonFilePath = `${cwd}/${generatedDocsDirectoryName}/index.json`; + const result = await execAsync( + `JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, + { + cwd, + }, + ); + if (!_.isEmpty(result.stderr)) { + throw new Error(result.stderr); + } + const fileName = `v${version}.json`; + utils.log(`POSTPUBLISH: Doc generation successful, uploading docs... as ${fileName}`); + const s3Url = S3BucketPath + fileName; + await execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { + cwd, + }); + // Remove the generated docs directory + await execAsync(`rm -rf ${generatedDocsDirectoryName}`, { + cwd, + }); + utils.log(`POSTPUBLISH: Docs uploaded to S3 bucket: ${S3BucketPath}`); + }, +}; diff --git a/packages/monorepo-scripts/src/utils.ts b/packages/monorepo-scripts/src/utils.ts new file mode 100644 index 000000000..5423cabd9 --- /dev/null +++ b/packages/monorepo-scripts/src/utils.ts @@ -0,0 +1,5 @@ +export const utils = { + log(...args: any[]): void { + console.log(...args); // tslint:disable-line:no-console + }, +}; diff --git a/packages/react-docs-example/package.json b/packages/react-docs-example/package.json index 5469677d4..95a617de7 100644 --- a/packages/react-docs-example/package.json +++ b/packages/react-docs-example/package.json @@ -34,6 +34,7 @@ "@types/lodash": "^4.14.86", "@types/node": "^8.0.53", "awesome-typescript-loader": "^3.1.3", + "copyfiles": "^1.2.0", "css-loader": "^0.28.9", "json-loader": "^0.5.4", "less": "^2.7.2", diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index 5690366d9..991af9a37 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -1,53 +1,56 @@ { - "name": "@0xproject/react-docs", - "version": "0.0.1", - "description": "React documentation component for rendering TypeDoc & Doxity generated JSON", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "scripts": { - "lint": "tslint --project . 'src/ts/**/*.ts' 'src/ts/**/*.tsx'", - "build": "tsc", - "build:watch": "tsc -w", - "clean": "shx rm -rf lib" - }, - "author": "Fabio Berger", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/0xProject/0x-monorepo/issues" - }, - "homepage": "https://github.com/0xProject/0x-monorepo/packages/react-docs/README.md", - "repository": { - "type": "git", - "url": "https://github.com/0xProject/0x-monorepo.git" - }, - "devDependencies": { - "@0xproject/tslint-config": "^0.4.9", - "@types/lodash": "^4.14.86", - "@types/material-ui": "0.18.0", - "@types/node": "^8.0.53", - "@types/react": "^15.0.15", - "@types/react-dom": "^0.14.23", - "@types/react-scroll": "0.0.31", - "@types/react-tap-event-plugin": "0.0.30", - "shx": "^0.2.2", - "tslint": "^5.9.1", - "typescript": "2.7.1" - }, - "dependencies": { - "@0xproject/react-shared": "^0.0.1", - "@0xproject/utils": "^0.4.1", - "basscss": "^8.0.3", - "compare-versions": "^3.0.1", - "lodash": "^4.17.4", - "material-ui": "^0.17.1", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-markdown": "^3.2.2", - "react-scroll": "^1.5.2", - "react-tap-event-plugin": "^2.0.1", - "react-tooltip": "^3.2.7" - }, - "publishConfig": { - "access": "public" - } + "name": "@0xproject/react-docs", + "version": "0.0.1", + "description": "React documentation component for rendering TypeDoc & Doxity generated JSON", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "scripts": { + "lint": "tslint --project . 'src/**/*.ts' 'src/**/*.tsx'", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "build:watch": "tsc -w", + "clean": "shx rm -rf lib scripts" + }, + "author": "Fabio Berger", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/0xProject/0x-monorepo/issues" + }, + "homepage": "https://github.com/0xProject/0x-monorepo/packages/react-docs/README.md", + "repository": { + "type": "git", + "url": "https://github.com/0xProject/0x-monorepo.git" + }, + "devDependencies": { + "@0xproject/dev-utils": "^0.2.1", + "@0xproject/monorepo-scripts": "^0.1.12", + "@0xproject/tslint-config": "^0.4.9", + "@types/lodash": "^4.14.86", + "@types/material-ui": "0.18.0", + "@types/node": "^8.0.53", + "@types/react": "^15.0.15", + "@types/react-dom": "^0.14.23", + "@types/react-scroll": "0.0.31", + "@types/react-tap-event-plugin": "0.0.30", + "copyfiles": "^1.2.0", + "shx": "^0.2.2", + "tslint": "^5.9.1", + "typescript": "2.7.1" + }, + "dependencies": { + "@0xproject/react-shared": "^0.0.1", + "@0xproject/utils": "^0.4.1", + "basscss": "^8.0.3", + "compare-versions": "^3.0.1", + "lodash": "^4.17.4", + "material-ui": "^0.17.1", + "react": "15.6.1", + "react-dom": "15.6.1", + "react-markdown": "^3.2.2", + "react-scroll": "^1.5.2", + "react-tap-event-plugin": "^2.0.1", + "react-tooltip": "^3.2.7" + }, + "publishConfig": { + "access": "public" + } } diff --git a/packages/react-docs/scripts/postpublish.js b/packages/react-docs/scripts/postpublish.js deleted file mode 100644 index 639656c7e..000000000 --- a/packages/react-docs/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName); diff --git a/packages/react-docs/src/ts/components/badge.tsx b/packages/react-docs/src/components/badge.tsx index b342f2dca..b342f2dca 100644 --- a/packages/react-docs/src/ts/components/badge.tsx +++ b/packages/react-docs/src/components/badge.tsx diff --git a/packages/react-docs/src/ts/components/comment.tsx b/packages/react-docs/src/components/comment.tsx index 0d63d4d31..0d63d4d31 100644 --- a/packages/react-docs/src/ts/components/comment.tsx +++ b/packages/react-docs/src/components/comment.tsx diff --git a/packages/react-docs/src/ts/components/custom_enum.tsx b/packages/react-docs/src/components/custom_enum.tsx index 1fe55eedc..1fe55eedc 100644 --- a/packages/react-docs/src/ts/components/custom_enum.tsx +++ b/packages/react-docs/src/components/custom_enum.tsx diff --git a/packages/react-docs/src/ts/components/documentation.tsx b/packages/react-docs/src/components/documentation.tsx index b46358159..b46358159 100644 --- a/packages/react-docs/src/ts/components/documentation.tsx +++ b/packages/react-docs/src/components/documentation.tsx diff --git a/packages/react-docs/src/ts/components/enum.tsx b/packages/react-docs/src/components/enum.tsx index 37f82f26e..37f82f26e 100644 --- a/packages/react-docs/src/ts/components/enum.tsx +++ b/packages/react-docs/src/components/enum.tsx diff --git a/packages/react-docs/src/ts/components/event_definition.tsx b/packages/react-docs/src/components/event_definition.tsx index 67729ac87..67729ac87 100644 --- a/packages/react-docs/src/ts/components/event_definition.tsx +++ b/packages/react-docs/src/components/event_definition.tsx diff --git a/packages/react-docs/src/ts/components/interface.tsx b/packages/react-docs/src/components/interface.tsx index 01f4942ef..01f4942ef 100644 --- a/packages/react-docs/src/ts/components/interface.tsx +++ b/packages/react-docs/src/components/interface.tsx diff --git a/packages/react-docs/src/ts/components/method_block.tsx b/packages/react-docs/src/components/method_block.tsx index 44a1db8af..44a1db8af 100644 --- a/packages/react-docs/src/ts/components/method_block.tsx +++ b/packages/react-docs/src/components/method_block.tsx diff --git a/packages/react-docs/src/ts/components/method_signature.tsx b/packages/react-docs/src/components/method_signature.tsx index 1400182ea..1400182ea 100644 --- a/packages/react-docs/src/ts/components/method_signature.tsx +++ b/packages/react-docs/src/components/method_signature.tsx diff --git a/packages/react-docs/src/ts/components/source_link.tsx b/packages/react-docs/src/components/source_link.tsx index 89956a507..89956a507 100644 --- a/packages/react-docs/src/ts/components/source_link.tsx +++ b/packages/react-docs/src/components/source_link.tsx diff --git a/packages/react-docs/src/ts/components/type.tsx b/packages/react-docs/src/components/type.tsx index 56425a5df..56425a5df 100644 --- a/packages/react-docs/src/ts/components/type.tsx +++ b/packages/react-docs/src/components/type.tsx diff --git a/packages/react-docs/src/ts/components/type_definition.tsx b/packages/react-docs/src/components/type_definition.tsx index 68ef4c465..68ef4c465 100644 --- a/packages/react-docs/src/ts/components/type_definition.tsx +++ b/packages/react-docs/src/components/type_definition.tsx diff --git a/packages/react-docs/src/ts/docs_info.ts b/packages/react-docs/src/docs_info.ts index 68bddef06..68bddef06 100644 --- a/packages/react-docs/src/ts/docs_info.ts +++ b/packages/react-docs/src/docs_info.ts diff --git a/packages/react-docs/src/ts/globals.d.ts b/packages/react-docs/src/globals.d.ts index c7cd53854..c7cd53854 100644 --- a/packages/react-docs/src/ts/globals.d.ts +++ b/packages/react-docs/src/globals.d.ts diff --git a/packages/react-docs/src/ts/index.ts b/packages/react-docs/src/index.ts index a62c91376..a62c91376 100644 --- a/packages/react-docs/src/ts/index.ts +++ b/packages/react-docs/src/index.ts diff --git a/packages/react-docs/src/monorepo_scripts/postpublish.ts b/packages/react-docs/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/react-docs/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/react-docs/src/ts/types.ts b/packages/react-docs/src/types.ts index d192af313..d192af313 100644 --- a/packages/react-docs/src/ts/types.ts +++ b/packages/react-docs/src/types.ts diff --git a/packages/react-docs/src/ts/utils/constants.ts b/packages/react-docs/src/utils/constants.ts index c3c74fd11..c3c74fd11 100644 --- a/packages/react-docs/src/ts/utils/constants.ts +++ b/packages/react-docs/src/utils/constants.ts diff --git a/packages/react-docs/src/ts/utils/doxity_utils.ts b/packages/react-docs/src/utils/doxity_utils.ts index 26dea6966..26dea6966 100644 --- a/packages/react-docs/src/ts/utils/doxity_utils.ts +++ b/packages/react-docs/src/utils/doxity_utils.ts diff --git a/packages/react-docs/src/ts/utils/typedoc_utils.ts b/packages/react-docs/src/utils/typedoc_utils.ts index e4cea1e40..e4cea1e40 100644 --- a/packages/react-docs/src/ts/utils/typedoc_utils.ts +++ b/packages/react-docs/src/utils/typedoc_utils.ts diff --git a/packages/react-docs/src/ts/utils/utils.ts b/packages/react-docs/src/utils/utils.ts index f8c1fefff..f8c1fefff 100644 --- a/packages/react-docs/src/ts/utils/utils.ts +++ b/packages/react-docs/src/utils/utils.ts diff --git a/packages/react-docs/tsconfig.json b/packages/react-docs/tsconfig.json index ee715a452..9af6638a2 100644 --- a/packages/react-docs/tsconfig.json +++ b/packages/react-docs/tsconfig.json @@ -9,5 +9,5 @@ "*": ["node_modules/@types/*", "*"] } }, - "include": ["./src/ts/**/*", "../../node_modules/web3-typescript-typings/index.d.ts"] + "include": ["./src/**/*", "../../node_modules/web3-typescript-typings/index.d.ts"] } diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index adfbce52c..ac1d05f38 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -1,50 +1,53 @@ { - "name": "@0xproject/react-shared", - "version": "0.0.1", - "description": "0x shared react components", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "scripts": { - "lint": "tslint --project . 'src/ts/**/*.ts' 'src/ts/**/*.tsx'", - "build": "tsc", - "build:watch": "tsc -w", - "clean": "shx rm -rf lib" - }, - "author": "Fabio Berger", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/0xProject/0x-monorepo/issues" - }, - "homepage": "https://github.com/0xProject/0x-monorepo/packages/react-shared/README.md", - "repository": { - "type": "git", - "url": "https://github.com/0xProject/0x-monorepo.git" - }, - "devDependencies": { - "@0xproject/tslint-config": "^0.4.9", - "@types/lodash": "^4.14.86", - "@types/material-ui": "0.18.0", - "@types/node": "^8.0.53", - "@types/react": "^15.0.15", - "@types/react-dom": "^0.14.23", - "@types/react-scroll": "0.0.31", - "shx": "^0.2.2", - "tslint": "^5.9.1", - "typescript": "2.7.1" - }, - "dependencies": { - "basscss": "^8.0.3", - "is-mobile": "^0.2.2", - "lodash": "^4.17.4", - "material-ui": "^0.17.1", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-highlight": "0xproject/react-highlight", - "react-markdown": "^3.2.2", - "react-scroll": "^1.5.2", - "react-tap-event-plugin": "^2.0.1" - }, - "publishConfig": { - "access": "public" - } + "name": "@0xproject/react-shared", + "version": "0.0.1", + "description": "0x shared react components", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "scripts": { + "lint": "tslint --project . 'src/**/*.ts' 'src/**/*.tsx'", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "build:watch": "tsc -w", + "clean": "shx rm -rf lib scripts" + }, + "author": "Fabio Berger", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/0xProject/0x-monorepo/issues" + }, + "homepage": "https://github.com/0xProject/0x-monorepo/packages/react-shared/README.md", + "repository": { + "type": "git", + "url": "https://github.com/0xProject/0x-monorepo.git" + }, + "devDependencies": { + "@0xproject/dev-utils": "^0.2.1", + "@0xproject/monorepo-scripts": "^0.1.12", + "@0xproject/tslint-config": "^0.4.9", + "@types/lodash": "^4.14.86", + "@types/material-ui": "0.18.0", + "@types/node": "^8.0.53", + "@types/react": "^15.0.15", + "@types/react-dom": "^0.14.23", + "@types/react-scroll": "0.0.31", + "copyfiles": "^1.2.0", + "shx": "^0.2.2", + "tslint": "^5.9.1", + "typescript": "2.7.1" + }, + "dependencies": { + "basscss": "^8.0.3", + "is-mobile": "^0.2.2", + "lodash": "^4.17.4", + "material-ui": "^0.17.1", + "react": "15.6.1", + "react-dom": "15.6.1", + "react-highlight": "0xproject/react-highlight", + "react-markdown": "^3.2.2", + "react-scroll": "^1.5.2", + "react-tap-event-plugin": "^2.0.1" + }, + "publishConfig": { + "access": "public" + } } diff --git a/packages/react-shared/scripts/postpublish.js b/packages/react-shared/scripts/postpublish.js deleted file mode 100644 index 639656c7e..000000000 --- a/packages/react-shared/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName); diff --git a/packages/react-shared/src/ts/components/anchor_title.tsx b/packages/react-shared/src/components/anchor_title.tsx index f44354097..f44354097 100644 --- a/packages/react-shared/src/ts/components/anchor_title.tsx +++ b/packages/react-shared/src/components/anchor_title.tsx diff --git a/packages/react-shared/src/ts/components/markdown_code_block.tsx b/packages/react-shared/src/components/markdown_code_block.tsx index 2070bb8e1..2070bb8e1 100644 --- a/packages/react-shared/src/ts/components/markdown_code_block.tsx +++ b/packages/react-shared/src/components/markdown_code_block.tsx diff --git a/packages/react-shared/src/ts/components/markdown_link_block.tsx b/packages/react-shared/src/components/markdown_link_block.tsx index 8f5862249..8f5862249 100644 --- a/packages/react-shared/src/ts/components/markdown_link_block.tsx +++ b/packages/react-shared/src/components/markdown_link_block.tsx diff --git a/packages/react-shared/src/ts/components/markdown_section.tsx b/packages/react-shared/src/components/markdown_section.tsx index d24a43dcb..d24a43dcb 100644 --- a/packages/react-shared/src/ts/components/markdown_section.tsx +++ b/packages/react-shared/src/components/markdown_section.tsx diff --git a/packages/react-shared/src/ts/components/nested_sidebar_menu.tsx b/packages/react-shared/src/components/nested_sidebar_menu.tsx index 2225bd197..2225bd197 100644 --- a/packages/react-shared/src/ts/components/nested_sidebar_menu.tsx +++ b/packages/react-shared/src/components/nested_sidebar_menu.tsx diff --git a/packages/react-shared/src/ts/components/section_header.tsx b/packages/react-shared/src/components/section_header.tsx index ee34a6c09..ee34a6c09 100644 --- a/packages/react-shared/src/ts/components/section_header.tsx +++ b/packages/react-shared/src/components/section_header.tsx diff --git a/packages/react-shared/src/ts/components/version_drop_down.tsx b/packages/react-shared/src/components/version_drop_down.tsx index d9e49b205..d9e49b205 100644 --- a/packages/react-shared/src/ts/components/version_drop_down.tsx +++ b/packages/react-shared/src/components/version_drop_down.tsx diff --git a/packages/react-shared/src/ts/globals.d.ts b/packages/react-shared/src/globals.d.ts index 9b0bcf845..525563e23 100644 --- a/packages/react-shared/src/ts/globals.d.ts +++ b/packages/react-shared/src/globals.d.ts @@ -5,3 +5,10 @@ declare function isMobile(): boolean; declare module 'is-mobile' { export = isMobile; } + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/react-shared/src/ts/index.ts b/packages/react-shared/src/index.ts index 3b50c0117..3b50c0117 100644 --- a/packages/react-shared/src/ts/index.ts +++ b/packages/react-shared/src/index.ts diff --git a/packages/react-shared/src/monorepo_scripts/postpublish.ts b/packages/react-shared/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/react-shared/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/react-shared/src/ts/types.ts b/packages/react-shared/src/types.ts index 88fadcc09..88fadcc09 100644 --- a/packages/react-shared/src/ts/types.ts +++ b/packages/react-shared/src/types.ts diff --git a/packages/react-shared/src/ts/utils/colors.ts b/packages/react-shared/src/utils/colors.ts index 2eead95c7..2eead95c7 100644 --- a/packages/react-shared/src/ts/utils/colors.ts +++ b/packages/react-shared/src/utils/colors.ts diff --git a/packages/react-shared/src/ts/utils/constants.ts b/packages/react-shared/src/utils/constants.ts index 562ab776b..562ab776b 100644 --- a/packages/react-shared/src/ts/utils/constants.ts +++ b/packages/react-shared/src/utils/constants.ts diff --git a/packages/react-shared/src/ts/utils/utils.ts b/packages/react-shared/src/utils/utils.ts index b3acb081e..b3acb081e 100644 --- a/packages/react-shared/src/ts/utils/utils.ts +++ b/packages/react-shared/src/utils/utils.ts diff --git a/packages/react-shared/tsconfig.json b/packages/react-shared/tsconfig.json index de87aa45b..687bd1f4e 100644 --- a/packages/react-shared/tsconfig.json +++ b/packages/react-shared/tsconfig.json @@ -8,5 +8,5 @@ "*": ["node_modules/@types/*", "*"] } }, - "include": ["./src/ts/**/*"] + "include": ["./src/**/*"] } diff --git a/packages/sol-cov/package.json b/packages/sol-cov/package.json index af6be13f2..84e58f8d8 100644 --- a/packages/sol-cov/package.json +++ b/packages/sol-cov/package.json @@ -7,8 +7,8 @@ "scripts": { "build:watch": "tsc -w", "lint": "tslint --project . 'src/**/*.ts'", - "clean": "shx rm -rf lib", - "build": "tsc" + "clean": "shx rm -rf lib scripts", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts" }, "repository": { "type": "git", @@ -33,9 +33,11 @@ "web3": "^0.20.0" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.9", "@types/istanbul": "^0.4.29", "@types/node": "^8.0.53", + "copyfiles": "^1.2.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", diff --git a/packages/sol-cov/scripts/postpublish.js b/packages/sol-cov/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/sol-cov/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/sol-cov/src/globals.d.ts b/packages/sol-cov/src/globals.d.ts index 54ee64684..3e457f0b5 100644 --- a/packages/sol-cov/src/globals.d.ts +++ b/packages/sol-cov/src/globals.d.ts @@ -1,4 +1,12 @@ // tslint:disable:completed-docs + +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} + declare module 'solidity-parser-antlr' { export interface BaseASTNode { range: [number, number]; diff --git a/packages/sol-cov/src/monorepo_scripts/postpublish.ts b/packages/sol-cov/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/sol-cov/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/sra-report/package.json b/packages/sra-report/package.json index abe305f52..86083d000 100644 --- a/packages/sra-report/package.json +++ b/packages/sra-report/package.json @@ -7,8 +7,8 @@ "scripts": { "build:watch": "tsc -w", "lint": "tslint --project . 'src/**/*.ts'", - "clean": "shx rm -rf lib", - "build": "tsc" + "clean": "shx rm -rf lib scripts", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts" }, "bin": { "sra-report": "lib/index.js" @@ -34,10 +34,12 @@ "yargs": "^10.0.3" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", "@types/node": "^8.0.53", "@types/yargs": "^10.0.0", + "copyfiles": "^1.2.0", "shx": "^0.2.2", "tslint": "5.8.0", "typescript": "2.7.1" diff --git a/packages/sra-report/scripts/postpublish.js b/packages/sra-report/scripts/postpublish.js deleted file mode 100644 index 639656c7e..000000000 --- a/packages/sra-report/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName); diff --git a/packages/sra-report/src/monorepo_scripts/postpublish.ts b/packages/sra-report/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/sra-report/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/subproviders/coverage/.gitkeep b/packages/subproviders/coverage/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/packages/subproviders/coverage/.gitkeep diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index 1aaecb082..100ed8f87 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -6,13 +6,15 @@ "license": "Apache-2.0", "scripts": { "build:watch": "tsc -w", - "clean": "shx rm -rf lib", - "build": "tsc", + "clean": "shx rm -rf lib scripts", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", "run_mocha_unit": "mocha lib/test/unit/**/*_test.js --timeout 10000 --bail --exit", "run_mocha_integration": "mocha lib/test/integration/**/*_test.js --timeout 10000 --bail --exit", "test": "npm run test:unit", - "test:circleci": "npm run test:unit", + "test:unit:coverage": "nyc npm run test:unit --all && yarn coverage:report:lcov", + "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info", + "test:circleci": "npm run test:unit:coverage", "test:all": "run-s test:unit test:integration", "test:unit": "run-s clean build run_mocha_unit", "test:integration": "run-s clean build run_mocha_integration" @@ -36,15 +38,18 @@ "web3-typescript-typings": "^0.10.0" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@0xproject/utils": "^0.4.1", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", "@types/node": "^8.0.53", + "nyc": "^11.0.1", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-as-promised-typescript-typings": "^0.0.10", "chai-typescript-typings": "^0.0.4", + "copyfiles": "^1.2.0", "dirty-chai": "^2.0.1", "mocha": "^4.0.1", "npm-run-all": "^4.1.2", diff --git a/packages/subproviders/scripts/postpublish.js b/packages/subproviders/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/subproviders/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/subproviders/src/globals.d.ts b/packages/subproviders/src/globals.d.ts index 25f7f4483..2c86346f5 100644 --- a/packages/subproviders/src/globals.d.ts +++ b/packages/subproviders/src/globals.d.ts @@ -125,6 +125,13 @@ declare module 'hdkey' { export = HDNode; } +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} + // ganache-core declarations declare module 'ganache-core' { import * as Web3 from 'web3'; @@ -137,5 +144,6 @@ declare module 'ganache-core' { networkId: number; mnemonic: string; } + // tslint:disable-next-line:completed-docs export function provider(opts: GanacheOpts): Web3.Provider; } diff --git a/packages/subproviders/src/monorepo_scripts/postpublish.ts b/packages/subproviders/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/subproviders/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/tslint-config/monorepo_scripts/globals.d.ts b/packages/tslint-config/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/tslint-config/monorepo_scripts/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/tslint-config/monorepo_scripts/postpublish.ts b/packages/tslint-config/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/tslint-config/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/tslint-config/package.json b/packages/tslint-config/package.json index b8398445f..13dcce87e 100644 --- a/packages/tslint-config/package.json +++ b/packages/tslint-config/package.json @@ -5,8 +5,8 @@ "main": "tslint.json", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf lib", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'rules/**/*.ts'" }, "repository": { @@ -30,7 +30,9 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/tslint-config/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@types/lodash": "^4.14.86", + "copyfiles": "^1.2.0", "shx": "^0.2.2", "typescript": "2.7.1" }, diff --git a/packages/tslint-config/scripts/postpublish.js b/packages/tslint-config/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/tslint-config/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/tslint-config/tsconfig.json b/packages/tslint-config/tsconfig.json index 15da53092..6e5f060a4 100644 --- a/packages/tslint-config/tsconfig.json +++ b/packages/tslint-config/tsconfig.json @@ -3,5 +3,5 @@ "compilerOptions": { "outDir": "lib" }, - "include": ["./rules/**/*"] + "include": ["./rules/**/*", "./monorepo_scripts/**/*", "../../node_modules/web3-typescript-typings/index.d.ts"] } diff --git a/packages/types/package.json b/packages/types/package.json index f4a587fc6..8dc03892e 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -6,8 +6,8 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf lib", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts'" }, "license": "Apache-2.0", @@ -20,7 +20,9 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/types/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", + "copyfiles": "^1.2.0", "shx": "^0.2.2", "tslint": "5.8.0", "typescript": "2.7.1" diff --git a/packages/types/scripts/postpublish.js b/packages/types/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/types/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/types/src/globals.d.ts b/packages/types/src/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/types/src/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/types/src/monorepo_scripts/postpublish.ts b/packages/types/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/types/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/utils/package.json b/packages/utils/package.json index 0cfd50178..b7c98b78e 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -6,8 +6,8 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf lib", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts'" }, "license": "Apache-2.0", @@ -20,8 +20,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/utils/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", + "copyfiles": "^1.2.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", diff --git a/packages/utils/scripts/postpublish.js b/packages/utils/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/utils/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/utils/src/globals.d.ts b/packages/utils/src/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/utils/src/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/utils/src/monorepo_scripts/postpublish.ts b/packages/utils/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/utils/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/web3-typescript-typings/monorepo_scripts/globals.d.ts b/packages/web3-typescript-typings/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/web3-typescript-typings/monorepo_scripts/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/web3-typescript-typings/monorepo_scripts/postpublish.ts b/packages/web3-typescript-typings/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/web3-typescript-typings/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/web3-typescript-typings/package.json b/packages/web3-typescript-typings/package.json index 0b04fe050..0825f646d 100644 --- a/packages/web3-typescript-typings/package.json +++ b/packages/web3-typescript-typings/package.json @@ -5,7 +5,9 @@ "main": "index.d.ts", "types": "index.d.ts", "scripts": { - "lint": "tslint index.d.ts" + "lint": "tslint index.d.ts", + "build": "tsc && copyfiles -u 1 './lib/**/*' ./scripts", + "clean": "shx rm -rf scripts" }, "repository": { "type": "git", @@ -21,7 +23,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/web3-typescript-typings#readme", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@types/bignumber.js": "^4.0.2", + "copyfiles": "^1.2.0", + "shx": "^0.2.2", "tslint": "5.8.0", "tslint-config-0xproject": "^0.0.2", "typescript": "2.7.1" diff --git a/packages/web3-typescript-typings/scripts/postpublish.js b/packages/web3-typescript-typings/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/web3-typescript-typings/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/web3-typescript-typings/tsconfig.json b/packages/web3-typescript-typings/tsconfig.json new file mode 100644 index 000000000..bc453af4b --- /dev/null +++ b/packages/web3-typescript-typings/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "outDir": "lib" + }, + "include": ["./monorepo_scripts/**/*"] +} diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index 2b545732e..6e569b993 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -6,8 +6,8 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf lib", + "build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts'" }, "license": "Apache-2.0", @@ -20,8 +20,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/web3-wrapper/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", + "copyfiles": "^1.2.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", diff --git a/packages/web3-wrapper/scripts/postpublish.js b/packages/web3-wrapper/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/web3-wrapper/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName);
\ No newline at end of file diff --git a/packages/web3-wrapper/src/globals.d.ts b/packages/web3-wrapper/src/globals.d.ts new file mode 100644 index 000000000..94e63a32d --- /dev/null +++ b/packages/web3-wrapper/src/globals.d.ts @@ -0,0 +1,6 @@ +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ +} diff --git a/packages/web3-wrapper/src/monorepo_scripts/postpublish.ts b/packages/web3-wrapper/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..dcb99d0f7 --- /dev/null +++ b/packages/web3-wrapper/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,8 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; + +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts index d2ec3e886..25d7e449b 100644 --- a/packages/website/ts/utils/utils.ts +++ b/packages/website/ts/utils/utils.ts @@ -276,10 +276,6 @@ export const utils = { const constructorName = provider.constructor.name; let parsedProviderName = constructorName; switch (constructorName) { - case 'MetamaskInpageProvider': - parsedProviderName = Providers.Metamask; - break; - case 'EthereumProvider': parsedProviderName = Providers.Mist; break; @@ -290,6 +286,8 @@ export const utils = { } if ((provider as any).isParity) { parsedProviderName = Providers.Parity; + } else if ((provider as any).isMetaMask) { + parsedProviderName = Providers.Metamask; } return parsedProviderName; }, diff --git a/scripts/postpublish_utils.js b/scripts/postpublish_utils.js deleted file mode 100644 index 0a8c6f94d..000000000 --- a/scripts/postpublish_utils.js +++ /dev/null @@ -1,86 +0,0 @@ -const _ = require('lodash'); -const execAsync = require('async-child-process').execAsync; -const semverSort = require('semver-sort'); -const publishRelease = require('publish-release'); -const promisify = require('@0xproject/utils').promisify; - -const publishReleaseAsync = promisify(publishRelease); -const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS; -const generatedDocsDirectoryName = 'generated_docs'; - -module.exports = { - getLatestTagAndVersionAsync: function(subPackageName) { - const subPackagePrefix = subPackageName + '@'; - const gitTagsCommand = 'git tag -l "' + subPackagePrefix + '*"'; - return execAsync(gitTagsCommand).then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const tags = result.stdout.trim().split('\n'); - const versions = tags.map(function(tag) { - return tag.slice(subPackagePrefix.length); - }); - const sortedVersions = semverSort.desc(versions); - const latestVersion = sortedVersions[0]; - const latestTag = subPackagePrefix + latestVersion; - return { - tag: latestTag, - version: latestVersion, - }; - }); - }, - publishReleaseNotesAsync: function(tag, releaseName, assets) { - console.log('POSTPUBLISH: Releasing ', releaseName, '...'); - return publishReleaseAsync({ - token: githubPersonalAccessToken, - owner: '0xProject', - repo: '0x.js', - tag: tag, - name: releaseName, - notes: 'N/A', - draft: false, - prerelease: false, - reuseRelease: true, - reuseDraftOnly: false, - assets: assets, - }); - }, - getReleaseName(subPackageName, version) { - const releaseName = subPackageName + ' v' + version; - return releaseName; - }, - standardPostPublishAsync: function(subPackageName) { - return this.getLatestTagAndVersionAsync(subPackageName) - .then( - function(result) { - const releaseName = this.getReleaseName(subPackageName, result.version); - const assets = []; - return this.publishReleaseNotesAsync(result.tag, releaseName, assets); - }.bind(this) - ) - .catch(function(err) { - throw err; - }); - }, - adjustFileIncludePaths: function(fileIncludes, cwd) { - const fileIncludesAdjusted = _.map(fileIncludes, fileInclude => { - let path; - if (_.startsWith(fileInclude, '../')) { - path = cwd + '/../' + fileInclude; - } else if (_.startsWith(fileInclude, './')) { - path = cwd + '/../' + fileInclude.substr(2); - } else { - path = cwd + '/' + fileInclude; - } - - // HACK: tsconfig.json needs wildcard directory endings as `/**/*` - // but TypeDoc needs it as `/**` in order to pick up files at the root - if (_.endsWith(path, '/**/*')) { - path = path.slice(0, -2); - } - return path; - }); - return fileIncludesAdjusted; - }, - generatedDocsDirectoryName, -}; @@ -6,6 +6,13 @@ version "0.3.9" resolved "https://registry.yarnpkg.com/8fold-marked/-/8fold-marked-0.3.9.tgz#bb89c645612f8ccfaffac1ca6e3c11f168c9cf59" +"@0xproject/tslint-config@0.4.8": + version "0.4.8" + resolved "https://registry.yarnpkg.com/@0xproject/tslint-config/-/tslint-config-0.4.8.tgz#5a3dfb1fc94e17752184137b452c5b0b3287d822" + dependencies: + lodash "^4.17.4" + tslint-react "^3.2.0" + "@0xproject/utils@^0.3.4": version "0.3.4" resolved "https://registry.yarnpkg.com/@0xproject/utils/-/utils-0.3.4.tgz#263ac7a5ef0b4c65ce893d3e6d1e9b1c2cf75b0b" @@ -2178,10 +2185,18 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + clone@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" @@ -2194,6 +2209,14 @@ clone@^2.0.0, clone@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" +cloneable-readable@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.1.tgz#c27a4f3a943ca37bed9b01c7d572ee61b1302b15" + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + cmd-shim@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" @@ -2597,7 +2620,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.5.0: +convert-source-map@^1.1.0, convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -3340,7 +3363,7 @@ duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.4.2, duplexify@^3.5.3: +duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.3: version "3.5.4" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" dependencies: @@ -4573,7 +4596,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob-parent@^3.1.0: +glob-parent@^3.0.0, glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" dependencies: @@ -4591,6 +4614,19 @@ glob-stream@^3.1.5: through2 "^0.6.1" unique-stream "^1.0.0" +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -4645,7 +4681,7 @@ glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" -glob@^5.0.15: +glob@^5.0.15, glob@^5.0.3: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: @@ -4774,7 +4810,7 @@ graceful-fs@^3.0.0: dependencies: natives "^1.1.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -4794,6 +4830,16 @@ growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + gulp-util@^3.0.0: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" @@ -5788,6 +5834,10 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + is-whitespace-character@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz#9ae0176f3282b65457a1992cdb084f8a5f833e3b" @@ -6016,7 +6066,7 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: @@ -6141,6 +6191,12 @@ lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -6151,6 +6207,14 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" +lcov-result-merger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcov-result-merger/-/lcov-result-merger-2.0.0.tgz#ba26a3b7d15b40b0efe6e603b1354b1dded28ce1" + dependencies: + through2 "^2.0.1" + vinyl "^2.0.0" + vinyl-fs "^2.4.3" + lerna@^2.5.1: version "2.9.0" resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.9.0.tgz#303f70bc50b1c4541bdcf54eda13c36fe54401f3" @@ -6496,6 +6560,10 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + lodash.isnull@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash.isnull/-/lodash.isnull-3.0.0.tgz#fafbe59ea1dca27eed786534039dd84c2e07c56e" @@ -6842,6 +6910,12 @@ merge-source-map@^1.0.2: dependencies: source-map "^0.6.1" +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.0.tgz#84c606232ef343f1b96fc972e697708754f08573" @@ -6859,7 +6933,7 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.3.11: +micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -7660,6 +7734,13 @@ ordered-read-streams@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + original@>=0.0.5: version "1.0.0" resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" @@ -8440,7 +8521,7 @@ private@^0.1.6, private@^0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" -process-nextick-args@~2.0.0: +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -9005,7 +9086,7 @@ read@~1.0.5: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" dependencies: @@ -9220,7 +9301,7 @@ replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" -replace-ext@1.0.0: +replace-ext@1.0.0, replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" @@ -10329,6 +10410,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + strip-bom@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" @@ -10638,14 +10726,21 @@ thenify-all@^1.0.0, thenify-all@^1.6.0: dependencies: any-promise "^1.0.0" -through2@^0.6.1, through2@~0.6.3: +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^0.6.0, through2@^0.6.1, through2@~0.6.3: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" dependencies: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0, through2@^2.0.1, through2@^2.0.2: +through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" dependencies: @@ -10707,6 +10802,12 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -11258,6 +11359,13 @@ unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" @@ -11449,6 +11557,10 @@ v8flags@^2.0.2: dependencies: user-home "^1.1.1" +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + valid-url@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -11516,6 +11628,28 @@ vinyl-fs@^0.3.0: through2 "^0.6.1" vinyl "^0.4.0" +vinyl-fs@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + vinyl@^0.4.0: version "0.4.6" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" @@ -11531,6 +11665,25 @@ vinyl@^0.5.0: clone-stats "^0.0.1" replace-ext "0.0.1" +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" |