aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--README.md1
-rw-r--r--package.json6
-rw-r--r--packages/0x.js/package.json16
-rw-r--r--packages/0x.js/scripts/postpublish.js47
-rw-r--r--packages/0x.js/scripts/stagedocs.js31
-rw-r--r--packages/0x.js/src/globals.d.ts6
-rw-r--r--packages/0x.js/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/0x.js/src/monorepo_scripts/stagedocs.ts8
-rw-r--r--packages/abi-gen/package.json6
-rw-r--r--packages/abi-gen/scripts/postpublish.js5
-rw-r--r--packages/abi-gen/src/globals.d.ts7
-rw-r--r--packages/abi-gen/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/assert/package.json6
-rw-r--r--packages/assert/scripts/postpublish.js5
-rw-r--r--packages/assert/src/globals.d.ts7
-rw-r--r--packages/assert/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/base-contract/package.json6
-rw-r--r--packages/base-contract/src/globals.d.ts6
-rw-r--r--packages/base-contract/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/chai-as-promised-typescript-typings/monorepo_scripts/globals.d.ts6
-rw-r--r--packages/chai-as-promised-typescript-typings/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/chai-as-promised-typescript-typings/package.json9
-rw-r--r--packages/chai-as-promised-typescript-typings/scripts/postpublish.js5
-rw-r--r--packages/chai-as-promised-typescript-typings/tsconfig.json7
-rw-r--r--packages/chai-typescript-typings/monorepo_scripts/globals.d.ts6
-rw-r--r--packages/chai-typescript-typings/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/chai-typescript-typings/package.json9
-rw-r--r--packages/chai-typescript-typings/scripts/postpublish.js5
-rw-r--r--packages/chai-typescript-typings/tsconfig.json7
-rw-r--r--packages/connect/package.json15
-rw-r--r--packages/connect/scripts/postpublish.js45
-rw-r--r--packages/connect/scripts/stagedocs.js30
-rw-r--r--packages/connect/src/globals.d.ts1
-rw-r--r--packages/connect/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/connect/src/monorepo_scripts/stagedocs.ts8
-rw-r--r--packages/deployer/package.json5
-rw-r--r--packages/deployer/scripts/postpublish.js5
-rw-r--r--packages/deployer/src/globals.d.ts7
-rw-r--r--packages/deployer/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/dev-utils/package.json6
-rw-r--r--packages/dev-utils/scripts/postpublish.js5
-rw-r--r--packages/dev-utils/src/globals.d.ts7
-rw-r--r--packages/dev-utils/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/dev-utils/test/.npmignore (renamed from packages/dev-utils/.npmignore)0
-rw-r--r--packages/ethers-typescript-typings/monorepo_scripts/globals.d.ts6
-rw-r--r--packages/ethers-typescript-typings/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/ethers-typescript-typings/package.json7
-rw-r--r--packages/ethers-typescript-typings/scripts/postpublish.js5
-rw-r--r--packages/ethers-typescript-typings/tsconfig.json7
-rw-r--r--packages/json-schemas/package.json6
-rw-r--r--packages/json-schemas/scripts/postpublish.js5
-rw-r--r--packages/json-schemas/src/globals.d.ts7
-rw-r--r--packages/json-schemas/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/monorepo-scripts/CHANGELOG.md5
-rw-r--r--packages/monorepo-scripts/package.json12
-rw-r--r--packages/monorepo-scripts/src/globals.d.ts8
-rw-r--r--packages/monorepo-scripts/src/index.ts1
-rw-r--r--packages/monorepo-scripts/src/postpublish_utils.ts164
-rw-r--r--packages/monorepo-scripts/src/utils.ts5
-rw-r--r--packages/react-docs-example/package.json1
-rw-r--r--packages/react-docs/package.json103
-rw-r--r--packages/react-docs/scripts/postpublish.js5
-rw-r--r--packages/react-docs/src/components/badge.tsx (renamed from packages/react-docs/src/ts/components/badge.tsx)0
-rw-r--r--packages/react-docs/src/components/comment.tsx (renamed from packages/react-docs/src/ts/components/comment.tsx)0
-rw-r--r--packages/react-docs/src/components/custom_enum.tsx (renamed from packages/react-docs/src/ts/components/custom_enum.tsx)0
-rw-r--r--packages/react-docs/src/components/documentation.tsx (renamed from packages/react-docs/src/ts/components/documentation.tsx)0
-rw-r--r--packages/react-docs/src/components/enum.tsx (renamed from packages/react-docs/src/ts/components/enum.tsx)0
-rw-r--r--packages/react-docs/src/components/event_definition.tsx (renamed from packages/react-docs/src/ts/components/event_definition.tsx)0
-rw-r--r--packages/react-docs/src/components/interface.tsx (renamed from packages/react-docs/src/ts/components/interface.tsx)0
-rw-r--r--packages/react-docs/src/components/method_block.tsx (renamed from packages/react-docs/src/ts/components/method_block.tsx)0
-rw-r--r--packages/react-docs/src/components/method_signature.tsx (renamed from packages/react-docs/src/ts/components/method_signature.tsx)0
-rw-r--r--packages/react-docs/src/components/source_link.tsx (renamed from packages/react-docs/src/ts/components/source_link.tsx)0
-rw-r--r--packages/react-docs/src/components/type.tsx (renamed from packages/react-docs/src/ts/components/type.tsx)0
-rw-r--r--packages/react-docs/src/components/type_definition.tsx (renamed from packages/react-docs/src/ts/components/type_definition.tsx)0
-rw-r--r--packages/react-docs/src/docs_info.ts (renamed from packages/react-docs/src/ts/docs_info.ts)0
-rw-r--r--packages/react-docs/src/globals.d.ts (renamed from packages/react-docs/src/ts/globals.d.ts)0
-rw-r--r--packages/react-docs/src/index.ts (renamed from packages/react-docs/src/ts/index.ts)0
-rw-r--r--packages/react-docs/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/react-docs/src/types.ts (renamed from packages/react-docs/src/ts/types.ts)0
-rw-r--r--packages/react-docs/src/utils/constants.ts (renamed from packages/react-docs/src/ts/utils/constants.ts)0
-rw-r--r--packages/react-docs/src/utils/doxity_utils.ts (renamed from packages/react-docs/src/ts/utils/doxity_utils.ts)0
-rw-r--r--packages/react-docs/src/utils/typedoc_utils.ts (renamed from packages/react-docs/src/ts/utils/typedoc_utils.ts)0
-rw-r--r--packages/react-docs/src/utils/utils.ts (renamed from packages/react-docs/src/ts/utils/utils.ts)0
-rw-r--r--packages/react-docs/tsconfig.json2
-rw-r--r--packages/react-shared/package.json99
-rw-r--r--packages/react-shared/scripts/postpublish.js5
-rw-r--r--packages/react-shared/src/components/anchor_title.tsx (renamed from packages/react-shared/src/ts/components/anchor_title.tsx)0
-rw-r--r--packages/react-shared/src/components/markdown_code_block.tsx (renamed from packages/react-shared/src/ts/components/markdown_code_block.tsx)0
-rw-r--r--packages/react-shared/src/components/markdown_link_block.tsx (renamed from packages/react-shared/src/ts/components/markdown_link_block.tsx)0
-rw-r--r--packages/react-shared/src/components/markdown_section.tsx (renamed from packages/react-shared/src/ts/components/markdown_section.tsx)0
-rw-r--r--packages/react-shared/src/components/nested_sidebar_menu.tsx (renamed from packages/react-shared/src/ts/components/nested_sidebar_menu.tsx)0
-rw-r--r--packages/react-shared/src/components/section_header.tsx (renamed from packages/react-shared/src/ts/components/section_header.tsx)0
-rw-r--r--packages/react-shared/src/components/version_drop_down.tsx (renamed from packages/react-shared/src/ts/components/version_drop_down.tsx)0
-rw-r--r--packages/react-shared/src/globals.d.ts (renamed from packages/react-shared/src/ts/globals.d.ts)7
-rw-r--r--packages/react-shared/src/index.ts (renamed from packages/react-shared/src/ts/index.ts)0
-rw-r--r--packages/react-shared/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/react-shared/src/types.ts (renamed from packages/react-shared/src/ts/types.ts)0
-rw-r--r--packages/react-shared/src/utils/colors.ts (renamed from packages/react-shared/src/ts/utils/colors.ts)0
-rw-r--r--packages/react-shared/src/utils/constants.ts (renamed from packages/react-shared/src/ts/utils/constants.ts)0
-rw-r--r--packages/react-shared/src/utils/utils.ts (renamed from packages/react-shared/src/ts/utils/utils.ts)0
-rw-r--r--packages/react-shared/tsconfig.json2
-rw-r--r--packages/sra-report/package.json6
-rw-r--r--packages/sra-report/scripts/postpublish.js5
-rw-r--r--packages/sra-report/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/subproviders/package.json6
-rw-r--r--packages/subproviders/scripts/postpublish.js5
-rw-r--r--packages/subproviders/src/globals.d.ts7
-rw-r--r--packages/subproviders/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/tslint-config/monorepo_scripts/globals.d.ts6
-rw-r--r--packages/tslint-config/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/tslint-config/package.json6
-rw-r--r--packages/tslint-config/scripts/postpublish.js5
-rw-r--r--packages/tslint-config/tsconfig.json2
-rw-r--r--packages/types/package.json6
-rw-r--r--packages/types/scripts/postpublish.js5
-rw-r--r--packages/types/src/globals.d.ts6
-rw-r--r--packages/types/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/utils/package.json6
-rw-r--r--packages/utils/scripts/postpublish.js5
-rw-r--r--packages/utils/src/globals.d.ts6
-rw-r--r--packages/utils/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/web3-typescript-typings/monorepo_scripts/globals.d.ts6
-rw-r--r--packages/web3-typescript-typings/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/web3-typescript-typings/package.json7
-rw-r--r--packages/web3-typescript-typings/scripts/postpublish.js5
-rw-r--r--packages/web3-typescript-typings/tsconfig.json7
-rw-r--r--packages/web3-wrapper/package.json6
-rw-r--r--packages/web3-wrapper/scripts/postpublish.js5
-rw-r--r--packages/web3-wrapper/src/globals.d.ts6
-rw-r--r--packages/web3-wrapper/src/monorepo_scripts/postpublish.ts8
-rw-r--r--packages/website/ts/utils/utils.ts6
-rw-r--r--scripts/postpublish_utils.js86
-rw-r--r--yarn.lock7
134 files changed, 730 insertions, 469 deletions
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/
diff --git a/README.md b/README.md
index d6b478799..98f379740 100644
--- a/README.md
+++ b/README.md
@@ -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..b1e1bf626 100644
--- a/package.json
+++ b/package.json
@@ -16,12 +16,8 @@
"mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic"
},
"devDependencies": {
- "@0xproject/utils": "^0.4.1",
- "async-child-process": "^1.1.1",
"ethereumjs-testrpc": "^6.0.3",
"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/package.json b/packages/0x.js/package.json
index 4a4d6d2c8..f99029b53 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -24,14 +24,22 @@
"test:coverage": "nyc npm run test --all",
"report_test_coverage": "nyc report --reporter=text-lcov | coveralls",
"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",
@@ -66,6 +75,7 @@
"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/package.json b/packages/assert/package.json
index 49b0f3390..be5f4902d 100644
--- a/packages/assert/package.json
+++ b/packages/assert/package.json
@@ -6,8 +6,8 @@
"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",
@@ -24,12 +24,14 @@
},
"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",
"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/package.json b/packages/connect/package.json
index c8714a93a..8b3b24fcd 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -13,8 +13,8 @@
"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",
@@ -23,6 +23,15 @@
"test": "run-s clean build copy_test_fixtures run_mocha",
"test:circleci": "yarn test"
},
+ "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",
"url": "https://github.com/0xProject/0x-monorepo.git"
@@ -46,12 +55,14 @@
"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",
+ "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/deployer/package.json b/packages/deployer/package.json
index 685c2fb61..4bc739841 100644
--- a/packages/deployer/package.json
+++ b/packages/deployer/package.json
@@ -6,10 +6,10 @@
"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",
"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"
@@ -28,6 +28,7 @@
},
"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",
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/package.json b/packages/dev-utils/package.json
index dc594daaf..f9fc4e619 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -6,11 +6,11 @@
"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",
"run_mocha": "mocha lib/test/**/*_test.js --bail --exit",
- "clean": "shx rm -rf lib",
+ "clean": "shx rm -rf lib scripts",
"lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'"
},
"license": "Apache-2.0",
@@ -23,12 +23,14 @@
},
"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",
"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/package.json b/packages/json-schemas/package.json
index 8d82511b4..e775130cb 100644
--- a/packages/json-schemas/package.json
+++ b/packages/json-schemas/package.json
@@ -10,8 +10,8 @@
"test": "run-s clean build run_mocha",
"test:circleci": "yarn test",
"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,6 +28,7 @@
"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",
@@ -35,6 +36,7 @@
"@types/mocha": "^2.2.42",
"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 c9bbe0c6a..e0ca3cd1f 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",
@@ -28,8 +30,12 @@
"typescript": "2.7.1"
},
"dependencies": {
+ "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..55c44ca63
--- /dev/null
+++ b/packages/monorepo-scripts/src/postpublish_utils.ts
@@ -0,0 +1,164 @@
+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: {
+ // 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.
+ fileIncludes: [
+ ...(tsConfigJSON as any).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 eb76fe47e..a3e6b55d8 100644
--- a/packages/react-docs/package.json
+++ b/packages/react-docs/package.json
@@ -1,52 +1,55 @@
{
- "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",
- "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",
+ "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 deb33ff1d..deb33ff1d 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 8e1a80a44..8e1a80a44 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 44055a037..9af6638a2 100644
--- a/packages/react-docs/tsconfig.json
+++ b/packages/react-docs/tsconfig.json
@@ -9,5 +9,5 @@
"*": ["node_modules/@types/*", "*"]
}
},
- "include": ["./src/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/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/package.json b/packages/subproviders/package.json
index 1aaecb082..b49dfd67f 100644
--- a/packages/subproviders/package.json
+++ b/packages/subproviders/package.json
@@ -6,8 +6,8 @@
"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",
@@ -36,6 +36,7 @@
"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",
@@ -45,6 +46,7 @@
"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..b3dcd4ed3 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';
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 5fcd3f8e5..abb2598c3 100644
--- a/packages/website/ts/utils/utils.ts
+++ b/packages/website/ts/utils/utils.ts
@@ -281,10 +281,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;
@@ -295,6 +291,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,
-};
diff --git a/yarn.lock b/yarn.lock
index 729272174..596842906 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"