diff --git a/gulpfile.js b/gulpfile.js index 5572bf69fb58..998cd427f1de 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,10 +7,19 @@ const path = require('path'); const tsconfigPath = path.join(__dirname, 'tools/gulp/tsconfig.json'); +const tsconfig = require(tsconfigPath); // Register TS compilation. require('ts-node').register({ project: tsconfigPath }); +// The gulp tsconfig file maps specific imports to relative paths. In combination with ts-node +// this doesn't work because the JavaScript output will still refer to the imports instead of +// to the relative path. Tsconfig-paths can be used to support path mapping inside of Node. +require("tsconfig-paths").register({ + baseUrl: path.dirname(tsconfigPath), + paths: tsconfig.compilerOptions.paths +}); + require('./tools/gulp/gulpfile'); diff --git a/package-lock.json b/package-lock.json index 5e606c07a187..3d68ddc5977d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -212,6 +212,12 @@ "integrity": "sha1-ZZC1zm53lVbJzHBDvWRJ1rwHgd4=", "dev": true }, + "@types/chalk": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", + "dev": true + }, "@types/fs-extra": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-3.0.3.tgz", @@ -225,9 +231,9 @@ "dev": true }, "@types/gulp": { - "version": "3.8.33", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.33.tgz", - "integrity": "sha512-3UpA2pkKO40cNPe/8bxMQFWSASR9Jx67JfN9Z2Cf6ogfDMwXgEHm2XjKmuLYEtrp1IHYApOWlYMLYNgtTJgSAw==", + "version": "3.8.32", + "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.32.tgz", + "integrity": "sha1-g8WcaBzCM9Hsf4LSaVVVZvoTMVY=", "dev": true }, "@types/hammerjs": { @@ -867,6 +873,20 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, "browserslist": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", @@ -915,6 +935,12 @@ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", "dev": true }, + "bufferstreams": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.1.tgz", + "integrity": "sha1-AWE3MGCsWYjv+ZBYcxEU9uGV1R4=", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -1036,6 +1062,12 @@ "integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=", "dev": true }, + "clean-css": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.5.tgz", + "integrity": "sha1-0JqHoCpTdRF1iXlq52oGPKzbVBo=", + "dev": true + }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -2363,6 +2395,12 @@ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", "dev": true }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + }, "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", @@ -5666,6 +5704,12 @@ } } }, + "gulp-clean-css": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.5.0.tgz", + "integrity": "sha1-1D50fEGVeZXsSbuWEvhitkMp8bA=", + "dev": true + }, "gulp-cli": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.3.0.tgz", @@ -5960,6 +6004,20 @@ "integrity": "sha1-jP1kIJ5TysUs17j2qLXZ6nl5UXI=", "dev": true }, + "gulp-htmlmin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-3.0.0.tgz", + "integrity": "sha1-GeqAAtEjHWsfGKEtIPKmand3D7M=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, "gulp-if": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", @@ -5984,6 +6042,12 @@ "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", "dev": true }, + "gulp-sass": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.1.0.tgz", + "integrity": "sha1-U9xLaKH13f5EJKtMJHZVJpqLdLc=", + "dev": true + }, "gulp-transform": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/gulp-transform/-/gulp-transform-2.0.0.tgz", @@ -6142,6 +6206,12 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, "header-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", @@ -6184,6 +6254,20 @@ "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", "dev": true }, + "html-minifier": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz", + "integrity": "sha1-1zvD/0SJQkCIGM5gm/P7DqfvTrc=", + "dev": true, + "dependencies": { + "uglify-js": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.22.tgz", + "integrity": "sha512-VEC+Qdr615ZEbmf8xV+F9gKpX8mEJpB+lnYgNBkIgRkogz8eGzzZM1TbrS+FOqIvISdOrnQICQIBzt/fMlwUEQ==", + "dev": true + } + } + }, "html-tags": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz", @@ -6446,6 +6530,12 @@ "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "dev": true }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, "is-my-json-valid": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", @@ -7538,6 +7628,12 @@ } } }, + "magic-string": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.21.3.tgz", + "integrity": "sha1-h+IBAJ6/3m9G3FdXMFpwr3HjFiQ=", + "dev": true + }, "make-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", @@ -7685,9 +7781,9 @@ "dev": true }, "merge2": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.1.0.tgz", - "integrity": "sha1-mfsys16frYQBRgBOE6VrdUmlJNs=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.0.3.tgz", + "integrity": "sha1-+kT4siYmFaty8ICKQB1HinDjlNs=", "dev": true }, "methmeth": { @@ -7972,6 +8068,12 @@ "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", "dev": true }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "dev": true + }, "ncp": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", @@ -9110,6 +9212,12 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, "remove-trailing-separator": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", @@ -9325,6 +9433,18 @@ "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", "dev": true }, + "rollup": { + "version": "0.41.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.41.6.tgz", + "integrity": "sha1-4NBUl4d6OYwQTYFtJzOnGKepTio=", + "dev": true + }, + "rollup-plugin-node-resolve": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz", + "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=", + "dev": true + }, "router": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/router/-/router-1.3.1.tgz", @@ -9380,6 +9500,12 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", + "dev": true + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -9868,6 +9994,12 @@ } } }, + "sorcery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", + "dev": true + }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", @@ -9880,6 +10012,12 @@ "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", "dev": true }, + "sourcemap-codec": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.3.1.tgz", + "integrity": "sha1-mtb5vb1pGTEBbjCTnbyGhnMyMUY=", + "dev": true + }, "sparkles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", @@ -10589,6 +10727,12 @@ "integrity": "sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I=", "dev": true }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, "ts-node": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.1.0.tgz", @@ -10701,8 +10845,7 @@ "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true + "dev": true }, "uglify-to-browserify": { "version": "1.0.2", @@ -11107,6 +11250,12 @@ "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true }, + "vlq": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", + "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "dev": true + }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -11391,6 +11540,12 @@ "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", "dev": true }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", + "dev": true + }, "xml-name-validator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", diff --git a/package.json b/package.json index c268d6e30e22..2a82390a6ee0 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,7 @@ "deploy": "gulp deploy:devapp", "webdriver-manager": "webdriver-manager", "docs": "gulp docs", - "api": "gulp api-docs", - "postinstall": "npm install ./tools/package-tools/" + "api": "gulp api-docs" }, "version": "2.0.0-beta.7", "license": "MIT", @@ -46,9 +45,10 @@ "@angular/router": "~4.1.0", "@angular/tsc-wrapped": "~4.1.0", "@google-cloud/storage": "^1.1.1", + "@types/chalk": "^0.4.31", "@types/fs-extra": "^3.0.1", "@types/glob": "^5.0.30", - "@types/gulp": "^3.8.33", + "@types/gulp": "3.8.32", "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.45", "@types/merge2": "^0.3.30", @@ -58,6 +58,7 @@ "autoprefixer": "^6.7.6", "axe-core": "^2.2.1", "axe-webdriverjs": "^1.1.1", + "chalk": "^1.1.3", "conventional-changelog": "^1.1.3", "dgeni": "^0.4.7", "dgeni-packages": "^0.19.1", @@ -69,14 +70,17 @@ "google-closure-compiler": "^20170218.0.0", "gulp": "^3.9.1", "gulp-clean": "^0.3.2", + "gulp-clean-css": "^3.3.1", "gulp-cli": "^1.3.0", "gulp-connect": "^5.0.0", "gulp-dom": "^0.9.17", "gulp-flatten": "^0.3.1", "gulp-highlight-files": "^0.0.4", + "gulp-htmlmin": "^3.0.0", "gulp-if": "^2.0.2", "gulp-markdown": "^1.2.0", "gulp-rename": "^1.2.2", + "gulp-sass": "^3.1.0", "gulp-transform": "^2.0.0", "hammerjs": "^2.0.8", "highlight.js": "^9.11.0", @@ -93,20 +97,25 @@ "karma-sauce-launcher": "^1.1.0", "karma-sourcemap-loader": "^0.3.7", "madge": "^1.6.0", + "magic-string": "^0.21.3", "merge2": "^1.0.3", "minimist": "^1.2.0", "node-sass": "^4.5.3", "protractor": "^5.1.2", "request": "^2.81.0", "resolve-bin": "^0.4.0", + "rollup": "^0.41.6", + "rollup-plugin-node-resolve": "^3.0.0", "run-sequence": "^1.2.2", "scss-bundle": "^2.0.1-beta.7", "selenium-webdriver": "^3.4.0", + "sorcery": "^0.10.0", "stylelint": "^7.10.1", "ts-node": "^3.0.4", "tsconfig-paths": "^2.2.0", "tslint": "^5.2.0", "typescript": "~2.2.1", + "uglify-js": "^2.8.14", "web-animations-js": "^2.2.5" } } diff --git a/scripts/ci/publish-artifacts.sh b/scripts/ci/publish-artifacts.sh index 8edfe7b47154..cc7d49fd0cd5 100755 --- a/scripts/ci/publish-artifacts.sh +++ b/scripts/ci/publish-artifacts.sh @@ -28,9 +28,6 @@ $(npm bin)/gulp docs ./scripts/deploy/publish-build-artifacts.sh --no-build & ./scripts/deploy/publish-docs-content.sh --no-build & -# Publish the build tools of Angular Material on GitHub. -./scripts/deploy/publish-build-tools.sh & - # Deploy the screenshot and dashboard functions for each push build. ./scripts/deploy/deploy-screenshot-functions.sh & ./scripts/deploy/deploy-dashboard.sh & diff --git a/scripts/deploy/publish-build-tools.sh b/scripts/deploy/publish-build-tools.sh deleted file mode 100755 index bd7631c22b7a..000000000000 --- a/scripts/deploy/publish-build-tools.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# Script that publishes the build and package tools of Angular Material to a Github repository. -# This allows other Angular projects like Flex-Layout to use the same packaging as in Material. - -# The script should immediately exit if any command in the script fails. -set -e - -# Go to the root of the project. -cd $(dirname ${0})/../.. - -if [ -z ${MATERIAL2_BUILDS_TOKEN} ]; then - echo "Error: No access token for GitHub could be found." \ - "Please set the environment variable 'MATERIAL2_BUILDS_TOKEN'." - exit 1 -fi - -packageToolsPath="./tools/package-tools/" -packageToolsOutput="./dist/package-tools/" - -buildVersion=$(node -pe "require('./package.json').version") - -commitSha=$(git rev-parse --short HEAD) -commitAuthorName=$(git --no-pager show -s --format='%an' HEAD) -commitAuthorEmail=$(git --no-pager show -s --format='%ae' HEAD) -commitMessage=$(git log --oneline -n 1) - -repoName="material2-build-tools" -repoUrl="https://github.com/angular/${repoName}.git" -repoDir="tmp/${repoName}" - -# Build the package tools output. -$(npm bin)/tsc -p ${packageToolsPath} - -# Copy the package.json and the license file to the output directory. -cp ${packageToolsPath}/package.json ${packageToolsOutput} -cp LICENSE ${packageToolsOutput} - -# Prepare cloning the builds repository -rm -rf ${repoDir} -mkdir -p ${repoDir} - -# Clone the repository and only fetch the last commit to download less unused data. -git clone ${repoUrl} ${repoDir} --depth 1 - -# Delete old files and copy the build files to the repository -rm -rf ${repoDir}/* -cp -r ${packageToolsOutput}/* ${repoDir} - -# Create the build commit and push the changes to the repository. -cd ${repoDir} - -# Replace all placeholders with a unique version that can be used to install the build-tools -# from Github. -sed -i "s/0.0.0-PLACEHOLDER/${buildVersion}-${commitSha}/g" package.json - -# Prepare Git for pushing the artifacts to the repository. -git config user.name "${commitAuthorName}" -git config user.email "${commitAuthorEmail}" -git config credential.helper "store --file=.git/credentials" - -echo "https://${MATERIAL2_BUILDS_TOKEN}:@github.com" > .git/credentials - -git add -A -git commit -m "${commitMessage}" -git tag "${buildVersion}-${commitSha}" -git push origin master --tags - -echo "Published the build tools for SHA ${commitSha} on Github." diff --git a/tools/gulp/tsconfig.json b/tools/gulp/tsconfig.json index 270633fdd14e..c74891af5eaf 100644 --- a/tools/gulp/tsconfig.json +++ b/tools/gulp/tsconfig.json @@ -12,7 +12,11 @@ "target": "es5", "types": [ "node" - ] + ], + "baseUrl": ".", + "paths": { + "material2-build-tools": ["../package-tools/index"] + } }, "files": [ "gulpfile.ts" diff --git a/tools/package-tools/package.json b/tools/package-tools/package.json deleted file mode 100644 index d4e8226467db..000000000000 --- a/tools/package-tools/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "material2-build-tools", - "description": "Build tools for Angular Material", - "version": "0.0.0-PLACEHOLDER", - "license": "MIT", - "main": "index.js", - "dependencies": { - "@types/chalk": "^0.4.31", - "@types/fs-extra": "^3.0.3", - "@types/glob": "^5.0.30", - "@types/gulp": "^3.8.33", - "@types/node": "^7.0.29", - "chalk": "^2.0.1", - "fs-extra": "^3.0.1", - "gulp-clean-css": "^3.5.0", - "gulp-connect": "^5.0.0", - "gulp-htmlmin": "^3.0.0", - "gulp-if": "^2.0.2", - "gulp-sass": "^3.1.0", - "magic-string": "^0.21.3", - "rollup": "^0.43.0", - "rollup-plugin-node-resolve": "^3.0.0", - "run-sequence": "^2.0.0", - "sorcery": "^0.10.0", - "uglify-js": "^2.8.29" - }, - "peerDependencies": { - "@angular/tsc-wrapped": "~4.1.0", - "gulp": "^3.9.1", - "typescript": "~2.2.1" - } -} diff --git a/tools/package-tools/tsconfig.json b/tools/package-tools/tsconfig.json deleted file mode 100644 index a711afb0e572..000000000000 --- a/tools/package-tools/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true, - "noUnusedParameters": true, - "lib": ["es2015", "dom"], - "module": "commonjs", - "moduleResolution": "node", - "baseUrl": ".", - "outDir": "../../dist/package-tools", - "strictNullChecks": true, - "noEmitOnError": true, - "noImplicitAny": true, - "target": "es5", - "types": [ - "node" - ] - }, - "files": [ - "./index.ts" - ] -}