diff --git a/.gitignore b/.gitignore index dcacf381574..986e05d92f3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,6 @@ dist .awcache /config/project.json -# Misc -*.log - # OS Specific Files .DS_Store @@ -15,6 +12,70 @@ dist .vscode *.iml -# Coverage -.nyc_output +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +# rollup-plugin-typescript2 cache +.rpt2_cache/ + +# NPM Lockfiles +package-lock.json diff --git a/package.json b/package.json index 2b8f0f63792..e3e1b441c0c 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,6 @@ "dependency-graph": "^0.7.0", "firebase-tools": "^3.17.4", "glob": "^7.1.2", - "gulp-sourcemaps": "^2.6.4", - "gulp-typescript": "^4.0.1", "husky": "^0.14.3", "inquirer": "^5.1.0", "istanbul-instrumenter-loader": "^3.0.0", diff --git a/packages/app-types/package.json b/packages/app-types/package.json index 9542582ad74..dc7b509e1cb 100644 --- a/packages/app-types/package.json +++ b/packages/app-types/package.json @@ -5,15 +5,12 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts", "private.d.ts" ], - "devDependencies": { - "typescript": "^2.7.2" - }, "repository": { "type": "git", "url": "https://github.com/firebase/firebase-js-sdk/tree/master/packages/app-types" diff --git a/packages/app-types/test/default.test.ts b/packages/app-types/test/default.test.ts deleted file mode 100644 index 9500e5a2237..00000000000 --- a/packages/app-types/test/default.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import firebase from '@firebase/app'; - -/** - * Assert `firebase.apps` is an array of Firebase apps - * - * i.e. We should be able to access the public members - * of the App from inside of an individual app. - */ -firebase.apps.forEach(app => { - const _name: string = app.name; - const _options: Object = app.options; - const _delete: Promise = app.delete(); -}); - -/** - * Assert the SDK_VERSION is a string by passing it to - * regex.test - */ -const regex = /\d\.\d\.\d/; -regex.test(firebase.SDK_VERSION); - -/** - * Assert we can init w/ a partially empty config - * object - */ -firebase.initializeApp({ - apiKey: '1234567890' -}); - -/** - * Assert we can init w/ full config object - */ -firebase.initializeApp({ - apiKey: '1234567890', - authDomain: '1234567890', - databaseURL: '1234567890', - projectId: '1234567890', - storageBucket: '1234567890', - messagingSenderId: '1234567890' -}); - -/** - * Assert we can pass an optional name - */ -firebase.initializeApp( - { - apiKey: '1234567890', - authDomain: '1234567890', - databaseURL: '1234567890', - projectId: '1234567890', - storageBucket: '1234567890', - messagingSenderId: '1234567890' - }, - 'Dummy Name' -); - -/** - * Assert we get an instance of a FirebaseApp from `firebase.app()` - */ -const app = firebase.app(); - -/** - * Assert the `name` and `options` properties exist - */ -const _name: string = app.name; -const _options: Object = app.options; - -/** - * Assert the `delete` method exists and returns a `Promise` - */ -const _delete: Promise = app.delete(); - -/** - * Assert the `Promise` ctor mounted at `firebase.Promise` can - * be used to create new Promises. - */ - -const promise: Promise = new firebase.Promise((resolve, reject) => { - resolve({}); - reject({}); -}) - .then() - .catch(); diff --git a/packages/app-types/test/singleExport.test.ts b/packages/app-types/test/singleExport.test.ts deleted file mode 100644 index 666aa4d4ff5..00000000000 --- a/packages/app-types/test/singleExport.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; - -/** - * Assert `firebase.apps` is an array of Firebase apps - * - * i.e. We should be able to access the public members - * of the App from inside of an individual app. - */ -firebase.apps.forEach(app => { - const _name: string = app.name; - const _options: Object = app.options; - const _delete: Promise = app.delete(); -}); - -/** - * Assert the SDK_VERSION is a string by passing it to - * regex.test - */ -const regex = /\d\.\d\.\d/; -regex.test(firebase.SDK_VERSION); - -/** - * Assert we can init w/ a partially empty config - * object - */ -firebase.initializeApp({ - apiKey: '1234567890' -}); - -/** - * Assert we can init w/ full config object - */ -firebase.initializeApp({ - apiKey: '1234567890', - authDomain: '1234567890', - databaseURL: '1234567890', - projectId: '1234567890', - storageBucket: '1234567890', - messagingSenderId: '1234567890' -}); - -/** - * Assert we can pass an optional name - */ -firebase.initializeApp( - { - apiKey: '1234567890', - authDomain: '1234567890', - databaseURL: '1234567890', - projectId: '1234567890', - storageBucket: '1234567890', - messagingSenderId: '1234567890' - }, - 'Dummy Name' -); - -/** - * Assert we get an instance of a FirebaseApp from `firebase.app()` - */ -const app = firebase.app(); - -/** - * Assert the `name` and `options` properties exist - */ -const _name: string = app.name; -const _options: Object = app.options; - -/** - * Assert the `delete` method exists and returns a `Promise` - */ -const _delete: Promise = app.delete(); - -/** - * Assert the `Promise` ctor mounted at `firebase.Promise` can - * be used to create new Promises. - */ - -const promise: Promise = new firebase.Promise((resolve, reject) => { - resolve({}); - reject({}); -}) - .then() - .catch(); diff --git a/packages/app-types/tsconfig.json b/packages/app-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/app-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/app/gulpfile.js b/packages/app/gulpfile.js deleted file mode 100644 index 52ef5abc54c..00000000000 --- a/packages/app/gulpfile.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const { resolve } = require('path'); -const replace = require('gulp-replace'); -const sourcemaps = require('gulp-sourcemaps'); -const tools = require('../../tools/build'); - -function postProcess() { - return gulp - .src(resolve(__dirname, 'dist/**/*.js'), { base: '.' }) - .pipe(sourcemaps.init({ loadMaps: true })) - .pipe( - replace('${JSCORE_VERSION}', require('../firebase/package.json').version) - ) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('.')); -} - -const buildModule = gulp.series( - gulp.parallel([tools.buildCjs(__dirname), tools.buildEsm(__dirname)]), - postProcess -); - -const setupWatcher = () => { - gulp.watch(['./index.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/app/package.json b/packages/app/package.json index 8b3efc66af3..cfc856b274e 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -3,15 +3,16 @@ "version": "0.1.10", "description": "The primary entrypoint to the Firebase JS SDK", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:browser:debug": "karma start --browsers Chrome --auto-watch", "test:node": "TS_NODE_CACHE=NO nyc --reporter lcovonly -- mocha test/**/*.test.* --compilers ts:ts-node/register/type-check --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "dependencies": { @@ -24,9 +25,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", - "gulp-replace": "^0.6.1", - "gulp-sourcemaps": "^2.6.4", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -39,6 +37,11 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-replace": "^2.0.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", @@ -53,7 +56,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/app/rollup.config.js b/packages/app/rollup.config.js new file mode 100644 index 00000000000..6b2fdb91623 --- /dev/null +++ b/packages/app/rollup.config.js @@ -0,0 +1,50 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import replace from 'rollup-plugin-replace'; +import pkg from './package.json'; + +import firebasePkg from '../firebase/package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + replace({ + delimiters: ['${', '}'], + values: { + JSCORE_VERSION: firebasePkg.version + } + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external +}; diff --git a/packages/auth-types/package.json b/packages/auth-types/package.json index 86ad72c1bbf..6162ed38fe5 100644 --- a/packages/auth-types/package.json +++ b/packages/auth-types/package.json @@ -5,16 +5,13 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], "peerDependencies": { - "@firebase/app-types": "^0.1.0" - }, - "devDependencies": { - "typescript": "^2.7.2" + "@firebase/app-types": "0.x" }, "repository": { "type": "git", diff --git a/packages/auth-types/test/default.test.ts b/packages/auth-types/test/default.test.ts deleted file mode 100644 index 57988f08e2a..00000000000 --- a/packages/auth-types/test/default.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/auth'; diff --git a/packages/auth-types/tsconfig.json b/packages/auth-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/auth-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/auth/package.json b/packages/auth/package.json index da554c7b45b..9f0d7d6072a 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -40,6 +40,6 @@ "url": "https://github.com/firebase/firebase-js-sdk/tree/master/packages/auth" }, "peerDependencies": { - "@firebase/app": "^0.1.0" + "@firebase/app": "0.x" } } diff --git a/packages/database-types/package.json b/packages/database-types/package.json index 328cab49394..237cb7751f4 100644 --- a/packages/database-types/package.json +++ b/packages/database-types/package.json @@ -5,16 +5,13 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], "peerDependencies": { - "@firebase/app-types": "^0.1.0" - }, - "devDependencies": { - "typescript": "^2.7.2" + "@firebase/app-types": "0.x" }, "repository": { "type": "git", diff --git a/packages/database-types/test/default.test.ts b/packages/database-types/test/default.test.ts deleted file mode 100644 index 948bfdb4e73..00000000000 --- a/packages/database-types/test/default.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/database'; - -firebase.database.Database; diff --git a/packages/database-types/tsconfig.json b/packages/database-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/database-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/database/package.json b/packages/database/package.json index 6b6f1fa1cc5..55efc4bdb5f 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -3,20 +3,21 @@ "version": "0.2.1", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.node.js", - "browser": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.node.cjs.js", + "browser": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:node": "TS_NODE_CACHE=NO nyc --reporter lcovonly -- mocha 'test/{,!(browser)/**/}*.test.ts' --compilers ts:ts-node/register/type-check -r src/nodePatches.ts --retries 5 --timeout 5000 --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "dependencies": { "@firebase/database-types": "0.2.0", @@ -31,7 +32,6 @@ "@types/node": "^9.4.6", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -43,6 +43,10 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", @@ -57,7 +61,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/database/rollup.config.js b/packages/database/rollup.config.js new file mode 100644 index 00000000000..e1aa90fe0e7 --- /dev/null +++ b/packages/database/rollup.config.js @@ -0,0 +1,56 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); + +export default [ + /** + * Browser Builds + */ + { + input: 'index.ts', + output: [ + { file: pkg.browser, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external + }, + /** + * Node.js Build + */ + { + input: 'index.node.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external + } +]; diff --git a/packages/firebase/app/index.d.ts b/packages/firebase/app/index.d.ts deleted file mode 100644 index 9d2550194ba..00000000000 --- a/packages/firebase/app/index.d.ts +++ /dev/null @@ -1,1912 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -declare namespace firebase { - type CompleteFn = () => void; - - interface FirebaseError { - code: string; - message: string; - name: string; - stack?: string; - } - - interface Observer { - complete(): any; - error(error: E): any; - next(value: V | null): any; - } - - var SDK_VERSION: string; - - type Unsubscribe = () => void; - - interface User extends firebase.UserInfo { - delete(): Promise; - emailVerified: boolean; - getIdToken(forceRefresh?: boolean): Promise; - getToken(forceRefresh?: boolean): Promise; - isAnonymous: boolean; - linkAndRetrieveDataWithCredential( - credential: firebase.auth.AuthCredential - ): Promise; - linkWithCredential(credential: firebase.auth.AuthCredential): Promise; - linkWithPhoneNumber( - phoneNumber: string, - applicationVerifier: firebase.auth.ApplicationVerifier - ): Promise; - linkWithPopup(provider: firebase.auth.AuthProvider): Promise; - linkWithRedirect(provider: firebase.auth.AuthProvider): Promise; - metadata: firebase.auth.UserMetadata; - phoneNumber: string | null; - providerData: (firebase.UserInfo | null)[]; - reauthenticateAndRetrieveDataWithCredential( - credential: firebase.auth.AuthCredential - ): Promise; - reauthenticateWithCredential( - credential: firebase.auth.AuthCredential - ): Promise; - reauthenticateWithPhoneNumber( - phoneNumber: string, - applicationVerifier: firebase.auth.ApplicationVerifier - ): Promise; - reauthenticateWithPopup(provider: firebase.auth.AuthProvider): Promise; - reauthenticateWithRedirect( - provider: firebase.auth.AuthProvider - ): Promise; - refreshToken: string; - reload(): Promise; - sendEmailVerification( - actionCodeSettings?: firebase.auth.ActionCodeSettings | null - ): Promise; - toJSON(): Object; - unlink(providerId: string): Promise; - updateEmail(newEmail: string): Promise; - updatePassword(newPassword: string): Promise; - updatePhoneNumber( - phoneCredential: firebase.auth.AuthCredential - ): Promise; - updateProfile(profile: { - displayName: string | null; - photoURL: string | null; - }): Promise; - } - - interface UserInfo { - displayName: string | null; - email: string | null; - phoneNumber: string | null; - photoURL: string | null; - providerId: string; - uid: string; - } - - function app(name?: string): firebase.app.App; - - var apps: (firebase.app.App | null)[]; - - function auth(app?: firebase.app.App): firebase.auth.Auth; - - function database(app?: firebase.app.App): firebase.database.Database; - - function initializeApp(options: Object, name?: string): firebase.app.App; - - function messaging(app?: firebase.app.App): firebase.messaging.Messaging; - - function storage(app?: firebase.app.App): firebase.storage.Storage; - - function firestore(app?: firebase.app.App): firebase.firestore.Firestore; -} - -declare namespace firebase.app { - interface App { - auth(): firebase.auth.Auth; - database(): firebase.database.Database; - delete(): Promise; - messaging(): firebase.messaging.Messaging; - name: string; - options: Object; - storage(url?: string): firebase.storage.Storage; - firestore(): firebase.firestore.Firestore; - } -} - -declare namespace firebase.auth { - interface ActionCodeInfo {} - - type ActionCodeSettings = { - android?: { - installApp?: boolean; - minimumVersion?: string; - packageName: string; - }; - handleCodeInApp?: boolean; - iOS?: { bundleId: string }; - url: string; - }; - - type AdditionalUserInfo = { - isNewUser: boolean; - profile: Object | null; - providerId: string; - username?: string | null; - }; - - interface ApplicationVerifier { - type: string; - verify(): Promise; - } - - interface Auth { - app: firebase.app.App; - applyActionCode(code: string): Promise; - checkActionCode(code: string): Promise; - confirmPasswordReset(code: string, newPassword: string): Promise; - createUserAndRetrieveDataWithEmailAndPassword( - email: string, - password: string - ): Promise; - createUserWithEmailAndPassword( - email: string, - password: string - ): Promise; - currentUser: firebase.User | null; - fetchProvidersForEmail(email: string): Promise; - fetchSignInMethodsForEmail(email: string): Promise; - isSignInWithEmailLink(emailLink: string): boolean; - getRedirectResult(): Promise; - languageCode: string | null; - onAuthStateChanged( - nextOrObserver: - | firebase.Observer - | ((a: firebase.User | null) => any), - error?: (a: firebase.auth.Error) => any, - completed?: firebase.Unsubscribe - ): firebase.Unsubscribe; - onIdTokenChanged( - nextOrObserver: - | firebase.Observer - | ((a: firebase.User | null) => any), - error?: (a: firebase.auth.Error) => any, - completed?: firebase.Unsubscribe - ): firebase.Unsubscribe; - sendSignInLinkToEmail( - email: string, - actionCodeSettings: firebase.auth.ActionCodeSettings - ): Promise; - sendPasswordResetEmail( - email: string, - actionCodeSettings?: firebase.auth.ActionCodeSettings | null - ): Promise; - setPersistence(persistence: firebase.auth.Auth.Persistence): Promise; - signInAndRetrieveDataWithCredential( - credential: firebase.auth.AuthCredential - ): Promise; - signInAnonymously(): Promise; - signInAnonymouslyAndRetrieveData(): Promise; - signInWithCredential( - credential: firebase.auth.AuthCredential - ): Promise; - signInWithCustomToken(token: string): Promise; - signInAndRetrieveDataWithCustomToken(token: string): Promise; - signInWithEmailAndPassword(email: string, password: string): Promise; - signInAndRetrieveDataWithEmailAndPassword( - email: string, - password: string - ): Promise; - signInWithPhoneNumber( - phoneNumber: string, - applicationVerifier: firebase.auth.ApplicationVerifier - ): Promise; - signInWithEmailLink(email: string, emailLink?: string): Promise; - signInWithPopup(provider: firebase.auth.AuthProvider): Promise; - signInWithRedirect(provider: firebase.auth.AuthProvider): Promise; - signOut(): Promise; - useDeviceLanguage(): any; - verifyPasswordResetCode(code: string): Promise; - } - - interface AuthCredential { - providerId: string; - signInMethod: string; - } - - interface AuthProvider { - providerId: string; - } - - interface ConfirmationResult { - confirm(verificationCode: string): Promise; - verificationId: string; - } - - class EmailAuthProvider extends EmailAuthProvider_Instance { - static PROVIDER_ID: string; - static EMAIL_PASSWORD_SIGN_IN_METHOD: string; - static EMAIL_LINK_SIGN_IN_METHOD: string; - static credential( - email: string, - password: string - ): firebase.auth.AuthCredential; - static credentialWithLink( - email: string, - emailLink: string - ): firebase.auth.AuthCredential; - } - class EmailAuthProvider_Instance implements firebase.auth.AuthProvider { - providerId: string; - } - - interface Error { - code: string; - message: string; - } - - class FacebookAuthProvider extends FacebookAuthProvider_Instance { - static PROVIDER_ID: string; - static FACEBOOK_SIGN_IN_METHOD: string; - static credential(token: string): firebase.auth.AuthCredential; - } - class FacebookAuthProvider_Instance implements firebase.auth.AuthProvider { - addScope(scope: string): firebase.auth.AuthProvider; - providerId: string; - setCustomParameters( - customOAuthParameters: Object - ): firebase.auth.AuthProvider; - } - - class GithubAuthProvider extends GithubAuthProvider_Instance { - static PROVIDER_ID: string; - static GITHUB_SIGN_IN_METHOD: string; - static credential(token: string): firebase.auth.AuthCredential; - } - class GithubAuthProvider_Instance implements firebase.auth.AuthProvider { - addScope(scope: string): firebase.auth.AuthProvider; - providerId: string; - setCustomParameters( - customOAuthParameters: Object - ): firebase.auth.AuthProvider; - } - - class GoogleAuthProvider extends GoogleAuthProvider_Instance { - static PROVIDER_ID: string; - static GOOGLE_SIGN_IN_METHOD: string; - static credential( - idToken?: string | null, - accessToken?: string | null - ): firebase.auth.AuthCredential; - } - class GoogleAuthProvider_Instance implements firebase.auth.AuthProvider { - addScope(scope: string): firebase.auth.AuthProvider; - providerId: string; - setCustomParameters( - customOAuthParameters: Object - ): firebase.auth.AuthProvider; - } - - class PhoneAuthProvider extends PhoneAuthProvider_Instance { - static PROVIDER_ID: string; - static PHONE_SIGN_IN_METHOD: string; - static credential( - verificationId: string, - verificationCode: string - ): firebase.auth.AuthCredential; - } - class PhoneAuthProvider_Instance implements firebase.auth.AuthProvider { - constructor(auth?: firebase.auth.Auth | null); - providerId: string; - verifyPhoneNumber( - phoneNumber: string, - applicationVerifier: firebase.auth.ApplicationVerifier - ): Promise; - } - - class RecaptchaVerifier extends RecaptchaVerifier_Instance {} - class RecaptchaVerifier_Instance - implements firebase.auth.ApplicationVerifier { - constructor( - container: any | string, - parameters?: Object | null, - app?: firebase.app.App | null - ); - clear(): any; - render(): Promise; - type: string; - verify(): Promise; - } - - class TwitterAuthProvider extends TwitterAuthProvider_Instance { - static PROVIDER_ID: string; - static TWITTER_SIGN_IN_METHOD: string; - static credential( - token: string, - secret: string - ): firebase.auth.AuthCredential; - } - class TwitterAuthProvider_Instance implements firebase.auth.AuthProvider { - providerId: string; - setCustomParameters( - customOAuthParameters: Object - ): firebase.auth.AuthProvider; - } - - type UserCredential = { - additionalUserInfo?: firebase.auth.AdditionalUserInfo | null; - credential: firebase.auth.AuthCredential | null; - operationType?: string | null; - user: firebase.User | null; - }; - - interface UserMetadata { - creationTime?: string; - lastSignInTime?: string; - } -} - -declare namespace firebase.auth.Auth { - type Persistence = string; - var Persistence: { - LOCAL: Persistence; - NONE: Persistence; - SESSION: Persistence; - }; -} - -declare namespace firebase.database { - interface DataSnapshot { - child(path: string): firebase.database.DataSnapshot; - exists(): boolean; - exportVal(): any; - forEach(action: (a: firebase.database.DataSnapshot) => boolean): boolean; - getPriority(): string | number | null; - hasChild(path: string): boolean; - hasChildren(): boolean; - key: string | null; - numChildren(): number; - val(): any; - ref: firebase.database.Reference; - toJSON(): Object | null; - } - - interface Database { - app: firebase.app.App; - goOffline(): any; - goOnline(): any; - ref(path?: string): firebase.database.Reference; - refFromURL(url: string): firebase.database.Reference; - } - - interface OnDisconnect { - cancel(onComplete?: (a: Error | null) => any): Promise; - remove(onComplete?: (a: Error | null) => any): Promise; - set(value: any, onComplete?: (a: Error | null) => any): Promise; - setWithPriority( - value: any, - priority: number | string | null, - onComplete?: (a: Error | null) => any - ): Promise; - update(values: Object, onComplete?: (a: Error | null) => any): Promise; - } - - interface Query { - endAt( - value: number | string | boolean | null, - key?: string - ): firebase.database.Query; - equalTo( - value: number | string | boolean | null, - key?: string - ): firebase.database.Query; - isEqual(other: firebase.database.Query | null): boolean; - limitToFirst(limit: number): firebase.database.Query; - limitToLast(limit: number): firebase.database.Query; - off( - eventType?: string, - callback?: (a: firebase.database.DataSnapshot, b?: string | null) => any, - context?: Object | null - ): any; - on( - eventType: string, - callback: (a: firebase.database.DataSnapshot | null, b?: string) => any, - cancelCallbackOrContext?: Object | null, - context?: Object | null - ): (a: firebase.database.DataSnapshot | null, b?: string) => any; - once( - eventType: string, - successCallback?: (a: firebase.database.DataSnapshot, b?: string) => any, - failureCallbackOrContext?: Object | null, - context?: Object | null - ): Promise; - orderByChild(path: string): firebase.database.Query; - orderByKey(): firebase.database.Query; - orderByPriority(): firebase.database.Query; - orderByValue(): firebase.database.Query; - ref: firebase.database.Reference; - startAt( - value: number | string | boolean | null, - key?: string - ): firebase.database.Query; - toJSON(): Object; - toString(): string; - } - - interface Reference extends firebase.database.Query { - child(path: string): firebase.database.Reference; - key: string | null; - onDisconnect(): firebase.database.OnDisconnect; - parent: firebase.database.Reference | null; - path: string; - push( - value?: any, - onComplete?: (a: Error | null) => any - ): firebase.database.ThenableReference; - remove(onComplete?: (a: Error | null) => any): Promise; - root: firebase.database.Reference; - set(value: any, onComplete?: (a: Error | null) => any): Promise; - setPriority( - priority: string | number | null, - onComplete: (a: Error | null) => any - ): Promise; - setWithPriority( - newVal: any, - newPriority: string | number | null, - onComplete?: (a: Error | null) => any - ): Promise; - transaction( - transactionUpdate: (a: any) => any, - onComplete?: ( - a: Error | null, - b: boolean, - c: firebase.database.DataSnapshot | null - ) => any, - applyLocally?: boolean - ): Promise; - update(values: Object, onComplete?: (a: Error | null) => any): Promise; - } - - interface ThenableReference - extends firebase.database.Reference, - PromiseLike {} - - function enableLogging( - logger?: boolean | ((a: string) => any), - persistent?: boolean - ): any; -} - -declare namespace firebase.database.ServerValue { - var TIMESTAMP: Object; -} - -declare namespace firebase.messaging { - interface Messaging { - deleteToken(token: string): Promise | null; - getToken(): Promise | null; - onMessage( - nextOrObserver: firebase.Observer | ((a: Object) => any) - ): firebase.Unsubscribe; - onTokenRefresh( - nextOrObserver: firebase.Observer | ((a: Object) => any) - ): firebase.Unsubscribe; - requestPermission(): Promise | null; - setBackgroundMessageHandler(callback: (a: Object) => any): any; - useServiceWorker(registration: any): any; - } -} - -declare namespace firebase.storage { - interface FullMetadata extends firebase.storage.UploadMetadata { - bucket: string; - /** - * @deprecated - * Use Reference.getDownloadURL instead. This property will be removed in a - * future release. - */ - downloadURLs: string[]; - fullPath: string; - generation: string; - metageneration: string; - name: string; - size: number; - timeCreated: string; - updated: string; - } - - interface Reference { - bucket: string; - child(path: string): firebase.storage.Reference; - delete(): Promise; - fullPath: string; - getDownloadURL(): Promise; - getMetadata(): Promise; - name: string; - parent: firebase.storage.Reference | null; - put( - data: any | any | any, - metadata?: firebase.storage.UploadMetadata - ): firebase.storage.UploadTask; - putString( - data: string, - format?: firebase.storage.StringFormat, - metadata?: firebase.storage.UploadMetadata - ): firebase.storage.UploadTask; - root: firebase.storage.Reference; - storage: firebase.storage.Storage; - toString(): string; - updateMetadata(metadata: firebase.storage.SettableMetadata): Promise; - } - - interface SettableMetadata { - cacheControl?: string | null; - contentDisposition?: string | null; - contentEncoding?: string | null; - contentLanguage?: string | null; - contentType?: string | null; - customMetadata?: { - [/* warning: coerced from ? */ key: string]: string; - } | null; - } - - interface Storage { - app: firebase.app.App; - maxOperationRetryTime: number; - maxUploadRetryTime: number; - ref(path?: string): firebase.storage.Reference; - refFromURL(url: string): firebase.storage.Reference; - setMaxOperationRetryTime(time: number): any; - setMaxUploadRetryTime(time: number): any; - } - - type StringFormat = string; - var StringFormat: { - BASE64: StringFormat; - BASE64URL: StringFormat; - DATA_URL: StringFormat; - RAW: StringFormat; - }; - - type TaskEvent = string; - var TaskEvent: { - STATE_CHANGED: TaskEvent; - }; - - type TaskState = string; - var TaskState: { - CANCELED: TaskState; - ERROR: TaskState; - PAUSED: TaskState; - RUNNING: TaskState; - SUCCESS: TaskState; - }; - - interface UploadMetadata extends firebase.storage.SettableMetadata { - md5Hash?: string | null; - } - - interface UploadTask { - cancel(): boolean; - catch(onRejected: (a: Error) => any): Promise; - on( - event: firebase.storage.TaskEvent, - nextOrObserver?: - | firebase.Observer - | null - | ((a: Object) => any), - error?: ((a: Error) => any) | null, - complete?: (firebase.Unsubscribe) | null - ): Function; - pause(): boolean; - resume(): boolean; - snapshot: firebase.storage.UploadTaskSnapshot; - then( - onFulfilled?: ((a: firebase.storage.UploadTaskSnapshot) => any) | null, - onRejected?: ((a: Error) => any) | null - ): Promise; - } - - interface UploadTaskSnapshot { - bytesTransferred: number; - /** - * @deprecated - * Use Reference.getDownloadURL instead. This property will be removed in a - * future release. - */ - downloadURL: string | null; - metadata: firebase.storage.FullMetadata; - ref: firebase.storage.Reference; - state: firebase.storage.TaskState; - task: firebase.storage.UploadTask; - totalBytes: number; - } -} - -declare namespace firebase.firestore { - /** - * Document data (for use with `DocumentReference.set()`) consists of fields - * mapped to values. - */ - export type DocumentData = { [field: string]: any }; - - /** - * Update data (for use with `DocumentReference.update()`) consists of field - * paths (e.g. 'foo' or 'foo.baz') mapped to values. Fields that contain dots - * reference nested fields within the document. - */ - export type UpdateData = { [fieldPath: string]: any }; - - /** Settings used to configure a `Firestore` instance. */ - export interface Settings { - /** The hostname to connect to. */ - host?: string; - /** Whether to use SSL when connecting. */ - ssl?: boolean; - - /** - * Enables the use of `Timestamp`s for timestamp fields in - * `DocumentSnapshot`s. - * - * Currently, Firestore returns timestamp fields as `Date` but `Date` only - * supports millisecond precision, which leads to truncation and causes - * unexpected behavior when using a timestamp from a snapshot as a part - * of a subsequent query. - * - * Setting `timestampsInSnapshots` to true will cause Firestore to return - * `Timestamp` values instead of `Date` avoiding this kind of problem. To make - * this work you must also change any code that uses `Date` to use `Timestamp` - * instead. - * - * NOTE: in the future `timestampsInSnapshots: true` will become the - * default and this option will be removed so you should change your code to - * use Timestamp now and opt-in to this new behavior as soon as you can. - */ - timestampsInSnapshots?: boolean; - } - - export type LogLevel = 'debug' | 'error' | 'silent'; - - function setLogLevel(logLevel: LogLevel): void; - - /** - * `Firestore` represents a Firestore Database and is the entry point for all - * Firestore operations. - */ - export class Firestore { - private constructor(); - - /** - * Specifies custom settings to be used to configure the `Firestore` - * instance. Must be set before invoking any other methods. - * - * @param settings The settings to use. - */ - settings(settings: Settings): void; - - /** - * Attempts to enable persistent storage, if possible. - * - * Must be called before any other methods (other than settings()). - * - * If this fails, enablePersistence() will reject the promise it returns. - * Note that even after this failure, the firestore instance will remain - * usable, however offline persistence will be disabled. - * - * There are several reasons why this can fail, which can be identified by - * the `code` on the error. - * - * * failed-precondition: The app is already open in another browser tab. - * * unimplemented: The browser is incompatible with the offline - * persistence implementation. - * - * @return A promise that represents successfully enabling persistent - * storage. - */ - enablePersistence(): Promise; - - /** - * Gets a `CollectionReference` instance that refers to the collection at - * the specified path. - * - * @param collectionPath A slash-separated path to a collection. - * @return The `CollectionReference` instance. - */ - collection(collectionPath: string): CollectionReference; - - /** - * Gets a `DocumentReference` instance that refers to the document at the - * specified path. - * - * @param documentPath A slash-separated path to a document. - * @return The `DocumentReference` instance. - */ - doc(documentPath: string): DocumentReference; - - /** - * Executes the given updateFunction and then attempts to commit the - * changes applied within the transaction. If any document read within the - * transaction has changed, the updateFunction will be retried. If it fails - * to commit after 5 attempts, the transaction will fail. - * - * @param updateFunction The function to execute within the transaction - * context. - * @return If the transaction completed successfully or was explicitly - * aborted (by the updateFunction returning a failed Promise), the Promise - * returned by the updateFunction will be returned here. Else if the - * transaction failed, a rejected Promise with the corresponding failure - * error will be returned. - */ - runTransaction( - updateFunction: (transaction: Transaction) => Promise - ): Promise; - - /** - * Creates a write batch, used for performing multiple writes as a single - * atomic operation. - */ - batch(): WriteBatch; - - /** - * The `firebase.app.App` associated with this `Firestore` instance. - */ - app: firebase.app.App; - - /** - * Re-enables use of the network for this Firestore instance after a prior - * call to disableNetwork(). - * - * @return A promise that is resolved once the network has been enabled. - */ - enableNetwork(): Promise; - - /** - * Disables network usage for this instance. It can be re-enabled via - * enableNetwork(). While the network is disabled, any snapshot listeners or - * get() calls will return results from cache, and any write operations will - * be queued until the network is restored. - * - * @return A promise that is resolved once the network has been disabled. - */ - disableNetwork(): Promise; - - INTERNAL: { delete: () => Promise }; - } - - /** - * An immutable object representing a geo point in Firestore. The geo point - * is represented as latitude/longitude pair. - * - * Latitude values are in the range of [-90, 90]. - * Longitude values are in the range of [-180, 180]. - */ - export class GeoPoint { - /** - * Creates a new immutable GeoPoint object with the provided latitude and - * longitude values. - * @param latitude The latitude as number between -90 and 90. - * @param longitude The longitude as number between -180 and 180. - */ - constructor(latitude: number, longitude: number); - - readonly latitude: number; - readonly longitude: number; - - /** - * Returns true if this `GeoPoint` is equal to the provided one. - * - * @param other The `GeoPoint` to compare against. - * @return true if this `GeoPoint` is equal to the provided one. - */ - isEqual(other: GeoPoint): boolean; - } - - /** - * A Timestamp represents a point in time independent of any time zone or - * calendar, represented as seconds and fractions of seconds at nanosecond - * resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian - * Calendar which extends the Gregorian calendar backwards to year one. It is - * encoded assuming all minutes are 60 seconds long, i.e. leap seconds are - * "smeared" so that no leap second table is needed for interpretation. Range is - * from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. - * - * @see https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto - */ - export class Timestamp { - /** - * Creates a new timestamp with the current date, with millisecond precision. - * - * @return a new timestamp representing the current date. - */ - static now(): Timestamp; - - /** - * Creates a new timestamp from the given date. - * - * @param date The date to initialize the `Timestamp` from. - * @return A new `Timestamp` representing the same point in time as the given - * date. - */ - static fromDate(date: Date): Timestamp; - - /** - * Creates a new timestamp from the given number of milliseconds. - * - * @param milliseconds Number of milliseconds since Unix epoch - * 1970-01-01T00:00:00Z. - * @return A new `Timestamp` representing the same point in time as the given - * number of milliseconds. - */ - static fromMillis(milliseconds: number): Timestamp; - - /** - * Creates a new timestamp. - * - * @param seconds The number of seconds of UTC time since Unix epoch - * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to - * 9999-12-31T23:59:59Z inclusive. - * @param nanoseconds The non-negative fractions of a second at nanosecond - * resolution. Negative second values with fractions must still have - * non-negative nanoseconds values that count forward in time. Must be - * from 0 to 999,999,999 inclusive. - */ - constructor(seconds: number, nanoseconds: number); - - readonly seconds: number; - readonly nanoseconds: number; - - /** - * Returns a new `Date` corresponding to this timestamp. This may lose - * precision. - * - * @return JavaScript `Date` object representing the same point in time as - * this `Timestamp`, with millisecond precision. - */ - toDate(): Date; - - /** - * Returns the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z. - * - * @return The point in time corresponding to this timestamp, represented as - * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z. - */ - toMillis(): number; - - /** - * Returns true if this `Timestamp` is equal to the provided one. - * - * @param other The `Timestamp` to compare against. - * @return true if this `Timestamp` is equal to the provided one. - */ - isEqual(other: Timestamp): boolean; - } - - /** - * An immutable object representing an array of bytes. - */ - export class Blob { - private constructor(); - - /** - * Creates a new Blob from the given Base64 string, converting it to - * bytes. - */ - static fromBase64String(base64: string): Blob; - - /** - * Creates a new Blob from the given Uint8Array. - */ - static fromUint8Array(array: Uint8Array): Blob; - - /** - * Returns the bytes of this Blob as a Base64-encoded string. - */ - public toBase64(): string; - - /** - * Returns the bytes of this Blob in a new Uint8Array. - */ - public toUint8Array(): Uint8Array; - - /** - * Returns true if this `Blob` is equal to the provided one. - * - * @param other The `Blob` to compare against. - * @return true if this `Blob` is equal to the provided one. - */ - isEqual(other: Blob): boolean; - } - - /** - * A reference to a transaction. - * The `Transaction` object passed to a transaction's updateFunction provides - * the methods to read and write data within the transaction context. See - * `Firestore.runTransaction()`. - */ - export class Transaction { - private constructor(); - - /** - * Reads the document referenced by the provided `DocumentReference.` - * - * @param documentRef A reference to the document to be read. - * @return A DocumentSnapshot for the read data. - */ - get(documentRef: DocumentReference): Promise; - - /** - * Writes to the document referred to by the provided `DocumentReference`. - * If the document does not exist yet, it will be created. If you pass - * `SetOptions`, the provided data can be merged into the existing document. - * - * @param documentRef A reference to the document to be set. - * @param data An object of the fields and values for the document. - * @param options An object to configure the set behavior. - * @return This `Transaction` instance. Used for chaining method calls. - */ - set( - documentRef: DocumentReference, - data: DocumentData, - options?: SetOptions - ): Transaction; - - /** - * Updates fields in the document referred to by the provided - * `DocumentReference`. The update will fail if applied to a document that - * does not exist. - * - * @param documentRef A reference to the document to be updated. - * @param data An object containing the fields and values with which to - * update the document. Fields can contain dots to reference nested fields - * within the document. - * @return This `Transaction` instance. Used for chaining method calls. - */ - update(documentRef: DocumentReference, data: UpdateData): Transaction; - - /** - * Updates fields in the document referred to by the provided - * `DocumentReference`. The update will fail if applied to a document that - * does not exist. - * - * Nested fields can be updated by providing dot-separated field path - * strings or by providing FieldPath objects. - * - * @param documentRef A reference to the document to be updated. - * @param field The first field to update. - * @param value The first value. - * @param moreFieldsAndValues Additional key/value pairs. - * @return A Promise resolved once the data has been successfully written - * to the backend (Note that it won't resolve while you're offline). - */ - update( - documentRef: DocumentReference, - field: string | FieldPath, - value: any, - ...moreFieldsAndValues: any[] - ): Transaction; - - /** - * Deletes the document referred to by the provided `DocumentReference`. - * - * @param documentRef A reference to the document to be deleted. - * @return This `Transaction` instance. Used for chaining method calls. - */ - delete(documentRef: DocumentReference): Transaction; - } - - /** - * A write batch, used to perform multiple writes as a single atomic unit. - * - * A `WriteBatch` object can be acquired by calling `Firestore.batch()`. It - * provides methods for adding writes to the write batch. None of the - * writes will be committed (or visible locally) until `WriteBatch.commit()` - * is called. - * - * Unlike transactions, write batches are persisted offline and therefore are - * preferable when you don't need to condition your writes on read data. - */ - export class WriteBatch { - private constructor(); - - /** - * Writes to the document referred to by the provided `DocumentReference`. - * If the document does not exist yet, it will be created. If you pass - * `SetOptions`, the provided data can be merged into the existing document. - * - * @param documentRef A reference to the document to be set. - * @param data An object of the fields and values for the document. - * @param options An object to configure the set behavior. - * @return This `WriteBatch` instance. Used for chaining method calls. - */ - set( - documentRef: DocumentReference, - data: DocumentData, - options?: SetOptions - ): WriteBatch; - - /** - * Updates fields in the document referred to by the provided - * `DocumentReference`. The update will fail if applied to a document that - * does not exist. - * - * @param documentRef A reference to the document to be updated. - * @param data An object containing the fields and values with which to - * update the document. Fields can contain dots to reference nested fields - * within the document. - * @return This `WriteBatch` instance. Used for chaining method calls. - */ - update(documentRef: DocumentReference, data: UpdateData): WriteBatch; - - /** - * Updates fields in the document referred to by this `DocumentReference`. - * The update will fail if applied to a document that does not exist. - * - * Nested fields can be update by providing dot-separated field path strings - * or by providing FieldPath objects. - * - * @param documentRef A reference to the document to be updated. - * @param field The first field to update. - * @param value The first value. - * @param moreFieldsAndValues Additional key value pairs. - * @return A Promise resolved once the data has been successfully written - * to the backend (Note that it won't resolve while you're offline). - */ - update( - documentRef: DocumentReference, - field: string | FieldPath, - value: any, - ...moreFieldsAndValues: any[] - ): WriteBatch; - - /** - * Deletes the document referred to by the provided `DocumentReference`. - * - * @param documentRef A reference to the document to be deleted. - * @return This `WriteBatch` instance. Used for chaining method calls. - */ - delete(documentRef: DocumentReference): WriteBatch; - - /** - * Commits all of the writes in this write batch as a single atomic unit. - * - * @return A Promise resolved once all of the writes in the batch have been - * successfully written to the backend as an atomic unit. Note that it won't - * resolve while you're offline. - */ - commit(): Promise; - } - - /** - * Options for use with `DocumentReference.onSnapshot()` to control the - * behavior of the snapshot listener. - */ - export interface DocumentListenOptions { - /** - * Raise an event even if only metadata of the document changed. Default is - * false. - */ - readonly includeMetadataChanges?: boolean; - } - - /** - * An options object that configures the behavior of `set()` calls in - * `DocumentReference`, `WriteBatch` and `Transaction`. These calls can be - * configured to perform granular merges instead of overwriting the target - * documents in their entirety by providing a `SetOptions` with `merge: true`. - */ - export interface SetOptions { - /** - * Changes the behavior of a set() call to only replace the values specified - * in its data argument. Fields omitted from the set() call remain - * untouched. - */ - readonly merge?: boolean; - } - - /** - * A `DocumentReference` refers to a document location in a Firestore database - * and can be used to write, read, or listen to the location. The document at - * the referenced location may or may not exist. A `DocumentReference` can - * also be used to create a `CollectionReference` to a subcollection. - */ - export class DocumentReference { - private constructor(); - - /** The identifier of the document within its collection. */ - readonly id: string; - - /** - * The `Firestore` for the Firestore database (useful for performing - * transactions, etc.). - */ - readonly firestore: Firestore; - - /** - * A reference to the Collection to which this DocumentReference belongs. - */ - readonly parent: CollectionReference; - - /** - * A string representing the path of the referenced document (relative - * to the root of the database). - */ - readonly path: string; - - /** - * Gets a `CollectionReference` instance that refers to the collection at - * the specified path. - * - * @param collectionPath A slash-separated path to a collection. - * @return The `CollectionReference` instance. - */ - collection(collectionPath: string): CollectionReference; - - /** - * Returns true if this `DocumentReference` is equal to the provided one. - * - * @param other The `DocumentReference` to compare against. - * @return true if this `DocumentReference` is equal to the provided one. - */ - isEqual(other: DocumentReference): boolean; - - /** - * Writes to the document referred to by this `DocumentReference`. If the - * document does not yet exist, it will be created. If you pass - * `SetOptions`, the provided data can be merged into an existing document. - * - * @param data A map of the fields and values for the document. - * @param options An object to configure the set behavior. - * @return A Promise resolved once the data has been successfully written - * to the backend (Note that it won't resolve while you're offline). - */ - set(data: DocumentData, options?: SetOptions): Promise; - - /** - * Updates fields in the document referred to by this `DocumentReference`. - * The update will fail if applied to a document that does not exist. - * - * @param data An object containing the fields and values with which to - * update the document. Fields can contain dots to reference nested fields - * within the document. - * @return A Promise resolved once the data has been successfully written - * to the backend (Note that it won't resolve while you're offline). - */ - update(data: UpdateData): Promise; - - /** - * Updates fields in the document referred to by this `DocumentReference`. - * The update will fail if applied to a document that does not exist. - * - * Nested fields can be updated by providing dot-separated field path - * strings or by providing FieldPath objects. - * - * @param field The first field to update. - * @param value The first value. - * @param moreFieldsAndValues Additional key value pairs. - * @return A Promise resolved once the data has been successfully written - * to the backend (Note that it won't resolve while you're offline). - */ - update( - field: string | FieldPath, - value: any, - ...moreFieldsAndValues: any[] - ): Promise; - - /** - * Deletes the document referred to by this `DocumentReference`. - * - * @return A Promise resolved once the document has been successfully - * deleted from the backend (Note that it won't resolve while you're - * offline). - */ - delete(): Promise; - - /** - * Reads the document referred to by this `DocumentReference`. - * - * Note: get() attempts to provide up-to-date data when possible by waiting - * for data from the server, but it may return cached data or fail if you - * are offline and the server cannot be reached. - * - * @return A Promise resolved with a DocumentSnapshot containing the - * current document contents. - */ - get(): Promise; - - /** - * Attaches a listener for DocumentSnapshot events. You may either pass - * individual `onNext` and `onError` callbacks or pass a single observer - * object with `next` and `error` callbacks. - * - * NOTE: Although an `onCompletion` callback can be provided, it will - * never be called because the snapshot stream is never-ending. - * - * @param options Options controlling the listen behavior. - * @param onNext A callback to be called every time a new `DocumentSnapshot` - * is available. - * @param onError A callback to be called if the listen fails or is - * cancelled. No further callbacks will occur. - * @param observer A single object containing `next` and `error` callbacks. - * @return An unsubscribe function that can be called to cancel - * the snapshot listener. - */ - onSnapshot(observer: { - next?: (snapshot: DocumentSnapshot) => void; - error?: (error: FirestoreError) => void; - complete?: () => void; - }): () => void; - onSnapshot( - options: DocumentListenOptions, - observer: { - next?: (snapshot: DocumentSnapshot) => void; - error?: (error: Error) => void; - complete?: () => void; - } - ): () => void; - onSnapshot( - onNext: (snapshot: DocumentSnapshot) => void, - onError?: (error: Error) => void, - onCompletion?: () => void - ): () => void; - onSnapshot( - options: DocumentListenOptions, - onNext: (snapshot: DocumentSnapshot) => void, - onError?: (error: Error) => void, - onCompletion?: () => void - ): () => void; - } - - /** - * Options that configure how data is retrieved from a `DocumentSnapshot` - * (e.g. the desired behavior for server timestamps that have not yet been set - * to their final value). - */ - export interface SnapshotOptions { - /** - * If set, controls the return value for server timestamps that have not yet - * been set to their final value. - * - * By specifying 'estimate', pending server timestamps return an estimate - * based on the local clock. This estimate will differ from the final value - * and cause these values to change once the server result becomes available. - * - * By specifying 'previous', pending timestamps will be ignored and return - * their previous value instead. - * - * If omitted or set to 'none', `null` will be returned by default until the - * server value becomes available. - */ - readonly serverTimestamps?: 'estimate' | 'previous' | 'none'; - } - - /** Metadata about a snapshot, describing the state of the snapshot. */ - export interface SnapshotMetadata { - /** - * True if the snapshot contains the result of local writes (e.g. set() or - * update() calls) that have not yet been committed to the backend. - * If your listener has opted into metadata updates (via - * `DocumentListenOptions` or `QueryListenOptions`) you will receive another - * snapshot with `hasPendingWrites` equal to false once the writes have been - * committed to the backend. - */ - readonly hasPendingWrites: boolean; - - /** - * True if the snapshot was created from cached data rather than - * guaranteed up-to-date server data. If your listener has opted into - * metadata updates (via `DocumentListenOptions` or `QueryListenOptions`) - * you will receive another snapshot with `fromCache` equal to false once - * the client has received up-to-date data from the backend. - */ - readonly fromCache: boolean; - - /** - * Returns true if this `SnapshotMetadata` is equal to the provided one. - * - * @param other The `SnapshotMetadata` to compare against. - * @return true if this `SnapshotMetadata` is equal to the provided one. - */ - isEqual(other: SnapshotMetadata): boolean; - } - - /** - * A `DocumentSnapshot` contains data read from a document in your Firestore - * database. The data can be extracted with `.data()` or `.get()` to - * get a specific field. - * - * For a `DocumentSnapshot` that points to a non-existing document, any data - * access will return 'undefined'. You can use the `exists` property to - * explicitly verify a document's existence. - */ - export class DocumentSnapshot { - protected constructor(); - - /** True if the document exists. */ - readonly exists: boolean; - /** A `DocumentReference` to the document location. */ - readonly ref: DocumentReference; - /** - * The ID of the document for which this `DocumentSnapshot` contains data. - */ - readonly id: string; - /** - * Metadata about this snapshot, concerning its source and if it has local - * modifications. - */ - readonly metadata: SnapshotMetadata; - - /** - * Retrieves all fields in the document as an Object. Returns 'undefined' if - * the document doesn't exist. - * - * By default, `FieldValue.serverTimestamp()` values that have not yet been - * set to their final value will be returned as `null`. You can override - * this by passing an options object. - * - * @param options An options object to configure how data is retrieved from - * the snapshot (e.g. the desired behavior for server timestamps that have - * not yet been set to their final value). - * @return An Object containing all fields in the document or 'undefined' if - * the document doesn't exist. - */ - data(options?: SnapshotOptions): DocumentData | undefined; - - /** - * Retrieves the field specified by `fieldPath`. Returns 'undefined' if the - * document or field doesn't exist. - * - * By default, a `FieldValue.serverTimestamp()` that has not yet been set to - * its final value will be returned as `null`. You can override this by - * passing an options object. - * - * @param fieldPath The path (e.g. 'foo' or 'foo.bar') to a specific field. - * @param options An options object to configure how the field is retrieved - * from the snapshot (e.g. the desired behavior for server timestamps that have - * not yet been set to their final value). - * @return The data at the specified field location or undefined if no such - * field exists in the document. - */ - get(fieldPath: string | FieldPath, options?: SnapshotOptions): any; - - /** - * Returns true if this `DocumentSnapshot` is equal to the provided one. - * - * @param other The `DocumentSnapshot` to compare against. - * @return true if this `DocumentSnapshot` is equal to the provided one. - */ - isEqual(other: DocumentSnapshot): boolean; - } - - /** - * A `QueryDocumentSnapshot` contains data read from a document in your - * Firestore database as part of a query. The document is guaranteed to exist - * and its data can be extracted with `.data()` or `.get()` to get a - * specific field. - * - * A `QueryDocumentSnapshot` offers the same API surface as a - * `DocumentSnapshot`. Since query results contain only existing documents, the - * `exists` property will always be true and `data()` will never return - * 'undefined'. - */ - export class QueryDocumentSnapshot extends DocumentSnapshot { - private constructor(); - - /** - * Retrieves all fields in the document as an Object. - * - * By default, `FieldValue.serverTimestamp()` values that have not yet been - * set to their final value will be returned as `null`. You can override - * this by passing an options object. - * - * @override - * @param options An options object to configure how data is retrieved from - * the snapshot (e.g. the desired behavior for server timestamps that have - * not yet been set to their final value). - * @return An Object containing all fields in the document. - */ - data(options?: SnapshotOptions): DocumentData; - } - - /** - * The direction of a `Query.orderBy()` clause is specified as 'desc' or 'asc' - * (descending or ascending). - */ - export type OrderByDirection = 'desc' | 'asc'; - - /** - * Filter conditions in a `Query.where()` clause are specified using the - * strings '<', '<=', '==', '>=', and '>'. - */ - export type WhereFilterOp = '<' | '<=' | '==' | '>=' | '>'; - - /** - * Options for use with `Query.onSnapshot() to control the behavior of the - * snapshot listener. - */ - export interface QueryListenOptions { - /** - * Raise an event even if only metadata changes (i.e. one of the - * `QuerySnapshot.metadata` properties). Default is false. - */ - readonly includeQueryMetadataChanges?: boolean; - - /** - * Raise an event even if only metadata of a document in the query results - * changes (i.e. one of the `DocumentSnapshot.metadata` properties on one of - * the documents). Default is false. - */ - readonly includeDocumentMetadataChanges?: boolean; - } - - /** - * A `Query` refers to a Query which you can read or listen to. You can also - * construct refined `Query` objects by adding filters and ordering. - */ - export class Query { - protected constructor(); - - /** - * The `Firestore` for the Firestore database (useful for performing - * transactions, etc.). - */ - readonly firestore: Firestore; - - /** - * Creates and returns a new Query with the additional filter that documents - * must contain the specified field and the value should satisfy the - * relation constraint provided. - * - * @param fieldPath The path to compare - * @param opStr The operation string (e.g "<", "<=", "==", ">", ">="). - * @param value The value for comparison - * @return The created Query. - */ - where( - fieldPath: string | FieldPath, - opStr: WhereFilterOp, - value: any - ): Query; - - /** - * Creates and returns a new Query that's additionally sorted by the - * specified field, optionally in descending order instead of ascending. - * - * @param fieldPath The field to sort by. - * @param directionStr Optional direction to sort by ('asc' or 'desc'). If - * not specified, order will be ascending. - * @return The created Query. - */ - orderBy( - fieldPath: string | FieldPath, - directionStr?: OrderByDirection - ): Query; - - /** - * Creates and returns a new Query that's additionally limited to only - * return up to the specified number of documents. - * - * @param limit The maximum number of items to return. - * @return The created Query. - */ - limit(limit: number): Query; - - /** - * Creates and returns a new Query that starts at the provided document - * (inclusive). The starting position is relative to the order of the query. - * The document must contain all of the fields provided in the orderBy of - * this query. - * - * @param snapshot The snapshot of the document to start at. - * @return The created Query. - */ - startAt(snapshot: DocumentSnapshot): Query; - - /** - * Creates and returns a new Query that starts at the provided fields - * relative to the order of the query. The order of the field values - * must match the order of the order by clauses of the query. - * - * @param fieldValues The field values to start this query at, in order - * of the query's order by. - * @return The created Query. - */ - startAt(...fieldValues: any[]): Query; - - /** - * Creates and returns a new Query that starts after the provided document - * (exclusive). The starting position is relative to the order of the query. - * The document must contain all of the fields provided in the orderBy of - * this query. - * - * @param snapshot The snapshot of the document to start after. - * @return The created Query. - */ - startAfter(snapshot: DocumentSnapshot): Query; - - /** - * Creates and returns a new Query that starts after the provided fields - * relative to the order of the query. The order of the field values - * must match the order of the order by clauses of the query. - * - * @param fieldValues The field values to start this query after, in order - * of the query's order by. - * @return The created Query. - */ - startAfter(...fieldValues: any[]): Query; - - /** - * Creates and returns a new Query that ends before the provided document - * (exclusive). The end position is relative to the order of the query. The - * document must contain all of the fields provided in the orderBy of this - * query. - * - * @param snapshot The snapshot of the document to end before. - * @return The created Query. - */ - endBefore(snapshot: DocumentSnapshot): Query; - - /** - * Creates and returns a new Query that ends before the provided fields - * relative to the order of the query. The order of the field values - * must match the order of the order by clauses of the query. - * - * @param fieldValues The field values to end this query before, in order - * of the query's order by. - * @return The created Query. - */ - endBefore(...fieldValues: any[]): Query; - - /** - * Creates and returns a new Query that ends at the provided document - * (inclusive). The end position is relative to the order of the query. The - * document must contain all of the fields provided in the orderBy of this - * query. - * - * @param snapshot The snapshot of the document to end at. - * @return The created Query. - */ - endAt(snapshot: DocumentSnapshot): Query; - - /** - * Creates and returns a new Query that ends at the provided fields - * relative to the order of the query. The order of the field values - * must match the order of the order by clauses of the query. - * - * @param fieldValues The field values to end this query at, in order - * of the query's order by. - * @return The created Query. - */ - endAt(...fieldValues: any[]): Query; - - /** - * Returns true if this `Query` is equal to the provided one. - * - * @param other The `Query` to compare against. - * @return true if this `Query` is equal to the provided one. - */ - isEqual(other: Query): boolean; - - /** - * Executes the query and returns the results as a QuerySnapshot. - * - * @return A Promise that will be resolved with the results of the Query. - */ - get(): Promise; - - /** - * Attaches a listener for QuerySnapshot events. You may either pass - * individual `onNext` and `onError` callbacks or pass a single observer - * object with `next` and `error` callbacks. - * - * NOTE: Although an `onCompletion` callback can be provided, it will - * never be called because the snapshot stream is never-ending. - * - * @param options Options controlling the listen behavior. - * @param onNext A callback to be called every time a new `QuerySnapshot` - * is available. - * @param onError A callback to be called if the listen fails or is - * cancelled. No further callbacks will occur. - * @param observer A single object containing `next` and `error` callbacks. - * @return An unsubscribe function that can be called to cancel - * the snapshot listener. - */ - onSnapshot(observer: { - next?: (snapshot: QuerySnapshot) => void; - error?: (error: Error) => void; - complete?: () => void; - }): () => void; - onSnapshot( - options: QueryListenOptions, - observer: { - next?: (snapshot: QuerySnapshot) => void; - error?: (error: Error) => void; - complete?: () => void; - } - ): () => void; - onSnapshot( - onNext: (snapshot: QuerySnapshot) => void, - onError?: (error: Error) => void, - onCompletion?: () => void - ): () => void; - onSnapshot( - options: QueryListenOptions, - onNext: (snapshot: QuerySnapshot) => void, - onError?: (error: Error) => void, - onCompletion?: () => void - ): () => void; - } - - /** - * A `QuerySnapshot` contains zero or more `DocumentSnapshot` objects - * representing the results of a query. The documents can be accessed as an - * array via the `docs` property or enumerated using the `forEach` method. The - * number of documents can be determined via the `empty` and `size` - * properties. - */ - export class QuerySnapshot { - private constructor(); - - /** - * The query on which you called `get` or `onSnapshot` in order to get this - * `QuerySnapshot`. - */ - readonly query: Query; - /** - * Metadata about this snapshot, concerning its source and if it has local - * modifications. - */ - readonly metadata: SnapshotMetadata; - /** - * An array of the documents that changed since the last snapshot. If this - * is the first snapshot, all documents will be in the list as added - * changes. - */ - readonly docChanges: DocumentChange[]; - - /** An array of all the documents in the QuerySnapshot. */ - readonly docs: QueryDocumentSnapshot[]; - - /** The number of documents in the QuerySnapshot. */ - readonly size: number; - - /** True if there are no documents in the QuerySnapshot. */ - readonly empty: boolean; - - /** - * Enumerates all of the documents in the QuerySnapshot. - * - * @param callback A callback to be called with a `QueryDocumentSnapshot` for - * each document in the snapshot. - * @param thisArg The `this` binding for the callback. - */ - forEach( - callback: (result: QueryDocumentSnapshot) => void, - thisArg?: any - ): void; - - /** - * Returns true if this `QuerySnapshot` is equal to the provided one. - * - * @param other The `QuerySnapshot` to compare against. - * @return true if this `QuerySnapshot` is equal to the provided one. - */ - isEqual(other: QuerySnapshot): boolean; - } - - /** - * The type of of a `DocumentChange` may be 'added', 'removed', or 'modified'. - */ - export type DocumentChangeType = 'added' | 'removed' | 'modified'; - - /** - * A `DocumentChange` represents a change to the documents matching a query. - * It contains the document affected and the type of change that occurred. - */ - export interface DocumentChange { - /** The type of change ('added', 'modified', or 'removed'). */ - readonly type: DocumentChangeType; - - /** The document affected by this change. */ - readonly doc: QueryDocumentSnapshot; - - /** - * The index of the changed document in the result set immediately prior to - * this DocumentChange (i.e. supposing that all prior DocumentChange objects - * have been applied). Is -1 for 'added' events. - */ - readonly oldIndex: number; - - /** - * The index of the changed document in the result set immediately after - * this DocumentChange (i.e. supposing that all prior DocumentChange - * objects and the current DocumentChange object have been applied). - * Is -1 for 'removed' events. - */ - readonly newIndex: number; - } - - /** - * A `CollectionReference` object can be used for adding documents, getting - * document references, and querying for documents (using the methods - * inherited from `Query`). - */ - export class CollectionReference extends Query { - private constructor(); - - /** The identifier of the collection. */ - readonly id: string; - - /** - * A reference to the containing Document if this is a subcollection, else - * null. - */ - readonly parent: DocumentReference | null; - - /** - * A string representing the path of the referenced collection (relative - * to the root of the database). - */ - readonly path: string; - - /** - * Get a `DocumentReference` for the document within the collection at the - * specified path. If no path is specified, an automatically-generated - * unique ID will be used for the returned DocumentReference. - * - * @param documentPath A slash-separated path to a document. - * @return The `DocumentReference` instance. - */ - doc(documentPath?: string): DocumentReference; - - /** - * Add a new document to this collection with the specified data, assigning - * it a document ID automatically. - * - * @param data An Object containing the data for the new document. - * @return A Promise resolved with a `DocumentReference` pointing to the - * newly created document after it has been written to the backend. - */ - add(data: DocumentData): Promise; - - /** - * Returns true if this `CollectionReference` is equal to the provided one. - * - * @param other The `CollectionReference` to compare against. - * @return true if this `CollectionReference` is equal to the provided one. - */ - isEqual(other: CollectionReference): boolean; - } - - /** - * Sentinel values that can be used when writing document fields with set() - * or update(). - */ - export class FieldValue { - private constructor(); - - /** - * Returns a sentinel used with set() or update() to include a - * server-generated timestamp in the written data. - */ - static serverTimestamp(): FieldValue; - - /** - * Returns a sentinel for use with update() to mark a field for deletion. - */ - static delete(): FieldValue; - - /** - * Returns true if this `FieldValue` is equal to the provided one. - * - * @param other The `FieldValue` to compare against. - * @return true if this `FieldValue` is equal to the provided one. - */ - isEqual(other: FieldValue): boolean; - } - - /** - * A FieldPath refers to a field in a document. The path may consist of a - * single field name (referring to a top-level field in the document), or a - * list of field names (referring to a nested field in the document). - */ - export class FieldPath { - /** - * Creates a FieldPath from the provided field names. If more than one field - * name is provided, the path will point to a nested field in a document. - * - * @param fieldNames A list of field names. - */ - constructor(...fieldNames: string[]); - - /** - * Returns a special sentinel FieldPath to refer to the ID of a document. - * It can be used in queries to sort or filter by the document ID. - */ - static documentId(): FieldPath; - - /** - * Returns true if this `FieldPath` is equal to the provided one. - * - * @param other The `FieldPath` to compare against. - * @return true if this `FieldPath` is equal to the provided one. - */ - isEqual(other: FieldPath): boolean; - } - - /** - * The set of Firestore status codes. The codes are the same at the ones - * exposed by gRPC here: - * https://github.com/grpc/grpc/blob/master/doc/statuscodes.md - * - * Possible values: - * - 'cancelled': The operation was cancelled (typically by the caller). - * - 'unknown': Unknown error or an error from a different error domain. - * - 'invalid-argument': Client specified an invalid argument. Note that this - * differs from 'failed-precondition'. 'invalid-argument' indicates - * arguments that are problematic regardless of the state of the system - * (e.g. an invalid field name). - * - 'deadline-exceeded': Deadline expired before operation could complete. - * For operations that change the state of the system, this error may be - * returned even if the operation has completed successfully. For example, - * a successful response from a server could have been delayed long enough - * for the deadline to expire. - * - 'not-found': Some requested document was not found. - * - 'already-exists': Some document that we attempted to create already - * exists. - * - 'permission-denied': The caller does not have permission to execute the - * specified operation. - * - 'resource-exhausted': Some resource has been exhausted, perhaps a - * per-user quota, or perhaps the entire file system is out of space. - * - 'failed-precondition': Operation was rejected because the system is not - * in a state required for the operation's execution. - * - 'aborted': The operation was aborted, typically due to a concurrency - * issue like transaction aborts, etc. - * - 'out-of-range': Operation was attempted past the valid range. - * - 'unimplemented': Operation is not implemented or not supported/enabled. - * - 'internal': Internal errors. Means some invariants expected by - * underlying system has been broken. If you see one of these errors, - * something is very broken. - * - 'unavailable': The service is currently unavailable. This is most likely - * a transient condition and may be corrected by retrying with a backoff. - * - 'data-loss': Unrecoverable data loss or corruption. - * - 'unauthenticated': The request does not have valid authentication - * credentials for the operation. - */ - export type FirestoreErrorCode = - | 'cancelled' - | 'unknown' - | 'invalid-argument' - | 'deadline-exceeded' - | 'not-found' - | 'already-exists' - | 'permission-denied' - | 'resource-exhausted' - | 'failed-precondition' - | 'aborted' - | 'out-of-range' - | 'unimplemented' - | 'internal' - | 'unavailable' - | 'data-loss' - | 'unauthenticated'; - - /** An error returned by a Firestore operation. */ - // TODO(b/63008957): FirestoreError should extend firebase.FirebaseError - export interface FirestoreError { - code: FirestoreErrorCode; - message: string; - name: string; - stack?: string; - } -} - -export = firebase; diff --git a/packages/firebase/app/package.json b/packages/firebase/app/package.json new file mode 100644 index 00000000000..c1d2c22bc29 --- /dev/null +++ b/packages/firebase/app/package.json @@ -0,0 +1,3 @@ +{ + "typings": "../index.d.ts" +} diff --git a/packages/firebase/gulpfile.js b/packages/firebase/gulpfile.js deleted file mode 100644 index d5302c7c1ff..00000000000 --- a/packages/firebase/gulpfile.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const concat = require('gulp-concat'); -const gulp = require('gulp'); -const sourcemaps = require('gulp-sourcemaps'); -const { resolve } = require('path'); -const webpack = require('webpack'); -const webpackStream = require('webpack-stream'); -const merge = require('merge2'); - -function compileWebpack(watch = false) { - return () => - gulp - .src([ - './app/index.js', - './auth/index.js', - './database/index.js', - './firestore/index.js', - './messaging/index.js', - './storage/index.js' - ]) - .pipe( - webpackStream( - { - watch, - config: require('./webpack.config') - }, - webpack - ) - ) - .pipe(gulp.dest('.')); -} - -function concatFiles() { - return gulp - .src([ - './firebase-app.js', - './firebase-auth.js', - './firebase-database.js', - './firebase-messaging.js', - './firebase-storage.js' - ]) - .pipe(sourcemaps.init({ loadMaps: true })) - .pipe(concat('firebase.js')) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('.')); -} - -gulp.task('compile-webpack', compileWebpack()); -gulp.task('concat-files', concatFiles); - -const buildSdk = gulp.series(compileWebpack(), concatFiles); - -gulp.task('build', buildSdk); -gulp.task('watch', () => { - compileWebpack(true)(); - gulp.watch( - [ - './firebase-app.js', - './firebase-auth.js', - './firebase-database.js', - './firebase-messaging.js', - './firebase-storage.js' - ], - concatFiles - ); -}); diff --git a/packages/firebase/index.dev.js b/packages/firebase/index.dev.js deleted file mode 100644 index 8ae5a3890b0..00000000000 --- a/packages/firebase/index.dev.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var firebase = require('./app'); -require('./auth'); -require('./database'); -require('./messaging'); -require('./storage'); -require('./firestore'); - -module.exports = firebase; diff --git a/packages/firebase/index.html b/packages/firebase/index.html index 138eb4c2c98..2a4390d5147 100644 --- a/packages/firebase/index.html +++ b/packages/firebase/index.html @@ -1,6 +1,7 @@ - - - - - - + + + + + + + diff --git a/packages/firebase/package.json b/packages/firebase/package.json index 38f89a90c30..1c61c12f31b 100644 --- a/packages/firebase/package.json +++ b/packages/firebase/package.json @@ -18,10 +18,9 @@ "url": "https://github.com/firebase/firebase-js-sdk.git" }, "scripts": { - "dev": "run-p watch:compiler watch:server", - "watch:compiler": "gulp watch", - "watch:server": "webpack-dev-server --config webpack.dev.js --colors", - "prepare": "gulp build" + "build": "rollup -c", + "dev": "rollup -c -w", + "prepare": "npm run build" }, "main": "index.node.js", "browser": "index.js", @@ -39,16 +38,10 @@ "xmlhttprequest": "^1.8.0" }, "devDependencies": { - "compression-webpack-plugin": "^1.1.7", - "git-rev-sync": "^1.10.0", - "gulp": "^4.0.0", - "gulp-concat": "^2.6.1", - "gulp-sourcemaps": "^2.6.4", - "npm-run-all": "^4.1.1", - "webpack": "^3.11.0", - "webpack-dev-server": "^2.11.1", - "webpack-stream": "^4.0.2", - "wrapper-webpack-plugin": "^1.0.0" + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-uglify": "^3.0.0" }, "typings": "index.d.ts" } diff --git a/packages/firebase/rollup.config.js b/packages/firebase/rollup.config.js new file mode 100644 index 00000000000..b3bc7363699 --- /dev/null +++ b/packages/firebase/rollup.config.js @@ -0,0 +1,90 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import uglify from 'rollup-plugin-uglify'; +import pkg from './package.json'; + +const plugins = [resolve(), commonjs(), uglify()]; + +const GLOBAL_NAME = 'firebase'; + +/** + * This is the firebase/app level config + */ +const appConfig = { + input: 'app/index.js', + output: { + file: 'firebase-app.js', + sourcemap: true, + format: 'umd', + name: GLOBAL_NAME + }, + plugins +}; + +/** + * This is the top level `firebase` config + */ +const firebaseJsConfig = { + input: 'index.js', + output: { + file: 'firebase.js', + sourcemap: true, + format: 'umd', + name: GLOBAL_NAME + }, + plugins +}; + +/** + * All of these configs are built to extend the top two configs + */ +const components = [ + 'auth', + 'database', + 'firestore', + 'functions', + 'messaging', + 'storage' +]; + +const componentsConfig = components.map(component => ({ + input: `${component}/index.js`, + output: { + file: `firebase-${component}.js`, + format: 'iife', + sourcemap: true, + extend: true, + name: GLOBAL_NAME, + globals: { + '@firebase/app': GLOBAL_NAME + }, + intro: `try {`, + outro: `} catch(err) { + console.error(err); + throw new Error( + 'Cannot instantiate firebase-${component} - ' + + 'be sure to load firebase-app.js first.' + ); + }` + }, + plugins, + external: ['@firebase/app'] +})); + +export default [appConfig, ...componentsConfig, firebaseJsConfig]; diff --git a/packages/firebase/webpack.config.js b/packages/firebase/webpack.config.js deleted file mode 100644 index 0418b203e2b..00000000000 --- a/packages/firebase/webpack.config.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { resolve, parse } = require('path'); -const CompressionPlugin = require('compression-webpack-plugin'); -const gitRev = require('git-rev-sync'); -const pkg = require('./package'); -const webpack = require('webpack'); -const WrapperPlugin = require('wrapper-webpack-plugin'); - -const licenseHeader = `@license Firebase v${pkg.version} -Build: rev-${gitRev.short()} -Terms: https://firebase.google.com/terms/`; - -const baseConfig = { - devtool: 'source-map', - output: { - filename: '[name].js', - jsonpFunction: 'webpackJsonpFirebase', - path: resolve(__dirname) - }, - plugins: [ - new webpack.BannerPlugin(licenseHeader), - new webpack.optimize.ModuleConcatenationPlugin(), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - mangle: { - props: { - ignore_quoted: true, - /** - * This regex will trigger minification of subproperties that match - * any of the following use cases: - * - * - Prefixed with an underscore (i.e. _) - * - Suffixed with an underscore (i.e. _) - * - * Exceptions: - * - Double underscore prefix/suffix (we have some props that rely on - * this naming convention) - * - `_lat` (we have a property in auth that depends on this name) - * - * This will be kept up to date as this changes - */ - regex: /^_[^_][^lat]|[^_]_$/ - } - }, - compress: { - passes: 3, - unsafe: true, - warnings: false - } - }), - new CompressionPlugin({ - test: /\.js$/ - }) - ], - resolve: { - modules: ['node_modules', resolve(__dirname, '../../node_modules')], - extensions: ['.js'] - } -}; - -function isFirebaseApp(fileName) { - const pathObj = parse(fileName); - return pathObj.name === 'firebase-app'; -} - -const multiExport = Object.assign({}, baseConfig, { - entry: { - 'firebase-app': resolve(__dirname, 'app/index.js'), - 'firebase-auth': resolve(__dirname, 'auth/index.js'), - 'firebase-database': resolve(__dirname, 'database/index.js'), - 'firebase-firestore': resolve(__dirname, 'firestore/index.js'), - 'firebase-functions': resolve(__dirname, 'functions/index.js'), - 'firebase-messaging': resolve(__dirname, 'messaging/index.js'), - 'firebase-storage': resolve(__dirname, 'storage/index.js') - }, - plugins: [ - new webpack.optimize.CommonsChunkPlugin({ - name: 'firebase-app' - }), - new WrapperPlugin({ - header: fileName => { - return isFirebaseApp(fileName) - ? `var firebase = (function() { - var window = typeof window === 'undefined' ? self : window; - return ` - : `try { - `; - }, - footer: fileName => { - // Note: '.default' needed because of https://github.com/babel/babel/issues/2212 - return isFirebaseApp(fileName) - ? ` - })().default;` - : ` - } catch(error) { - throw new Error( - 'Cannot instantiate ${fileName} - ' + - 'be sure to load firebase-app.js first.' - ) - }`; - } - }), - ...baseConfig.plugins - ] -}); - -module.exports = [multiExport]; diff --git a/packages/firebase/webpack.dev.js b/packages/firebase/webpack.dev.js deleted file mode 100644 index f761f6e4650..00000000000 --- a/packages/firebase/webpack.dev.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { resolve } = require('path'); -const webpack = require('webpack'); - -const baseConfig = { - devtool: 'source-map', - output: { - filename: '[name].js', - jsonpFunction: 'webpackJsonpFirebase', - path: resolve(__dirname) - }, - plugins: [new webpack.optimize.ModuleConcatenationPlugin()], - resolve: { - modules: ['node_modules', resolve(__dirname, '../../node_modules')], - extensions: ['.js'] - } -}; - -const singleExport = Object.assign({}, baseConfig, { - entry: { - 'firebase-dev': resolve(__dirname, 'index.dev.js') - }, - output: Object.assign({}, baseConfig.output, { - library: 'firebase', - libraryTarget: 'window' - }) -}); - -module.exports = singleExport; diff --git a/packages/firestore-types/package.json b/packages/firestore-types/package.json index efa015bf5f6..38e1a8c2d59 100644 --- a/packages/firestore-types/package.json +++ b/packages/firestore-types/package.json @@ -5,16 +5,13 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], "peerDependencies": { - "@firebase/app-types": "^0.1.0" - }, - "devDependencies": { - "typescript": "^2.7.2" + "@firebase/app-types": "0.x" }, "repository": { "type": "git", diff --git a/packages/firestore-types/test/default.test.ts b/packages/firestore-types/test/default.test.ts deleted file mode 100644 index 75e790419a4..00000000000 --- a/packages/firestore-types/test/default.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/firestore'; diff --git a/packages/firestore-types/tsconfig.json b/packages/firestore-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/firestore-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/firestore/gulpfile.js b/packages/firestore/gulpfile.js deleted file mode 100644 index 629c93b9f4a..00000000000 --- a/packages/firestore/gulpfile.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -function copyProtos(dest) { - return function copyProtos() { - return gulp - .src([__dirname + '/src/protos/**/*.proto']) - .pipe(gulp.dest(dest)); - }; -} - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - copyProtos('dist/cjs/src/protos'), - tools.buildEsm(__dirname), - copyProtos('dist/esm/src/protos') -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'index.node.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/firestore/package.json b/packages/firestore/package.json index ab1e59673cd..4c225872815 100644 --- a/packages/firestore/package.json +++ b/packages/firestore/package.json @@ -4,7 +4,8 @@ "description": "", "author": "Firebase (https://firebase.google.com/)", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "lint": "tslint -p tsconfig.json -c tslint.json src/**/*.ts test/**/*.ts", "lint:fix": "tslint --fix -p tsconfig.json -c tslint.json src/**/*.ts test/**/*.ts", "test": "run-s lint test:all", @@ -12,14 +13,11 @@ "test:browser": "karma start --single-run", "test:browser:debug": "karma start --browsers=Chrome --auto-watch", "test:node": "TS_NODE_CACHE=NO nyc --reporter lcovonly -- mocha 'test/{,!(browser)/**/}*.test.ts' --require ts-node/register/type-check --require index.node.ts --retries 5 --timeout 5000 --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, - "main": "dist/cjs/index.node.js", - "browser": { - "dist/cjs/index.node.js": "./dist/cjs/index.js", - "dist/esm/index.js": "./dist/esm/index.js" - }, - "module": "dist/esm/index.js", + "main": "dist/index.node.cjs.js", + "browser": "dist/index.cjs.js", + "module": "dist/index.esm.js", "license": "Apache-2.0", "dependencies": { "@firebase/firestore-types": "0.2.2", @@ -29,15 +27,14 @@ "tslib": "^1.9.0" }, "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "devDependencies": { "@types/chai": "^4.1.2", "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -50,6 +47,10 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", diff --git a/packages/firestore/rollup.config.js b/packages/firestore/rollup.config.js new file mode 100644 index 00000000000..e1aa90fe0e7 --- /dev/null +++ b/packages/firestore/rollup.config.js @@ -0,0 +1,56 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); + +export default [ + /** + * Browser Builds + */ + { + input: 'index.ts', + output: [ + { file: pkg.browser, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external + }, + /** + * Node.js Build + */ + { + input: 'index.node.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external + } +]; diff --git a/packages/functions-types/package.json b/packages/functions-types/package.json index 159480f9968..83af7f78ee8 100644 --- a/packages/functions-types/package.json +++ b/packages/functions-types/package.json @@ -5,15 +5,11 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], - "peerDependencies": {}, - "devDependencies": { - "typescript": "^2.4.2" - }, "repository": { "type": "git", "url": "https://github.com/firebase/firebase-js-sdk/tree/master/packages/functions-types" diff --git a/packages/functions-types/test/default.test.ts b/packages/functions-types/test/default.test.ts deleted file mode 100644 index 013175fa0ac..00000000000 --- a/packages/functions-types/test/default.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/functions'; diff --git a/packages/functions-types/tsconfig.json b/packages/functions-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/functions-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/functions/package.json b/packages/functions/package.json index f4383278833..1df15238711 100644 --- a/packages/functions/package.json +++ b/packages/functions/package.json @@ -3,20 +3,22 @@ "version": "0.1.0", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.node.cjs.js", + "browser": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:browser:debug": "karma start --browsers=Chrome --auto-watch", "test:node": "nyc --reporter lcovonly -- mocha 'test/{,!(browser)/**/}*.test.ts' --require ts-node/register --require index.node.ts --retries 5 --timeout 5000 --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "devDependencies": { "@types/chai": "^4.0.4", @@ -24,7 +26,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^2.3.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -36,6 +37,10 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", @@ -52,7 +57,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "dependencies": { "@firebase/functions-types": "0.1.0", "@firebase/messaging-types": "^0.1.1", diff --git a/packages/functions/rollup.config.js b/packages/functions/rollup.config.js new file mode 100644 index 00000000000..c138ee21c6b --- /dev/null +++ b/packages/functions/rollup.config.js @@ -0,0 +1,55 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default [ + /** + * Browser Builds + */ + { + input: 'index.ts', + output: [ + { file: pkg.browser, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external + }, + /** + * Node.js Build + */ + { + input: 'index.node.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external + } +]; diff --git a/packages/logger/package.json b/packages/logger/package.json index ade24b85035..23a2d60aac2 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -3,15 +3,16 @@ "version": "0.1.0", "description": "A logger package for use in the Firebase JS SDK", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:browser:debug": "karma start --browsers Chrome --auto-watch", "test:node": "nyc --reporter lcovonly -- mocha test/**/*.test.* --compilers ts:ts-node/register --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "devDependencies": { @@ -19,7 +20,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -29,6 +29,10 @@ "karma-webpack": "^2.0.9", "mocha": "^5.0.1", "npm-run-all": "^4.1.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "nyc": "^11.4.1", "ts-loader": "^3.5.0", "ts-node": "^5.0.0", @@ -42,7 +46,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/logger/gulpfile.js b/packages/logger/rollup.config.js similarity index 50% rename from packages/logger/gulpfile.js rename to packages/logger/rollup.config.js index dc8ec17b593..0527ce20cb5 100644 --- a/packages/logger/gulpfile.js +++ b/packages/logger/rollup.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2017 Google Inc. + * Copyright 2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,18 +14,28 @@ * limitations under the License. */ -const gulp = require('gulp'); -const tools = require('../../tools/build'); +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; -const setupWatcher = () => { - gulp.watch(['index.ts', 'src/**/*'], buildModule); +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external }; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/messaging-types/package.json b/packages/messaging-types/package.json index b5d05910ddb..0e638c07bc9 100644 --- a/packages/messaging-types/package.json +++ b/packages/messaging-types/package.json @@ -5,16 +5,13 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], "peerDependencies": { - "@firebase/app-types": "^0.1.0" - }, - "devDependencies": { - "typescript": "^2.7.2" + "@firebase/app-types": "0.x" }, "repository": { "type": "git", diff --git a/packages/messaging-types/test/default.test.ts b/packages/messaging-types/test/default.test.ts deleted file mode 100644 index d12555b440e..00000000000 --- a/packages/messaging-types/test/default.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/messaging'; diff --git a/packages/messaging-types/tsconfig.json b/packages/messaging-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/messaging-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/messaging/index.ts b/packages/messaging/index.ts index aef247097e8..a672d571504 100644 --- a/packages/messaging/index.ts +++ b/packages/messaging/index.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { firebase } from '@firebase/app'; +import firebase from '@firebase/app'; import { _FirebaseNamespace, FirebaseServiceFactory diff --git a/packages/messaging/package.json b/packages/messaging/package.json index 1032a8c79cc..ad894b30d8b 100644 --- a/packages/messaging/package.json +++ b/packages/messaging/package.json @@ -3,22 +3,23 @@ "version": "0.2.3", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:karma type-check lint", "test:karma": "karma start --single-run", "test:debug": "karma start --browsers=Chrome --auto-watch", - "prepare": "gulp build", + "prepare": "npm run build", "type-check": "tsc --noEmit", "lint": "tslint -p .", "lint:fix": "yarn lint --fix" }, "license": "Apache-2.0", "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "dependencies": { "@firebase/messaging-types": "0.1.2", @@ -30,7 +31,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -40,6 +40,10 @@ "karma-spec-reporter": "^0.0.32", "karma-webpack": "^2.0.9", "npm-run-all": "^4.1.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", @@ -54,5 +58,5 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts" + "typings": "dist/index.d.ts" } diff --git a/packages/database/gulpfile.js b/packages/messaging/rollup.config.js similarity index 50% rename from packages/database/gulpfile.js rename to packages/messaging/rollup.config.js index 4d9f7d94e11..0527ce20cb5 100644 --- a/packages/database/gulpfile.js +++ b/packages/messaging/rollup.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2017 Google Inc. + * Copyright 2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,18 +14,28 @@ * limitations under the License. */ -const gulp = require('gulp'); -const tools = require('../../tools/build'); +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; -const setupWatcher = () => { - gulp.watch(['index.ts', 'index.node.ts', 'src/**/*'], buildModule); +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external }; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/polyfill/gulpfile.js b/packages/polyfill/gulpfile.js deleted file mode 100644 index dc8ec17b593..00000000000 --- a/packages/polyfill/gulpfile.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/polyfill/package.json b/packages/polyfill/package.json index b763532865a..4a3a31e7de7 100644 --- a/packages/polyfill/package.json +++ b/packages/polyfill/package.json @@ -3,12 +3,13 @@ "version": "0.3.0", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "echo 'No test suite for polyfills'", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "dependencies": { @@ -18,7 +19,10 @@ }, "devDependencies": { "@types/node": "^9.4.6", - "gulp": "^4.0.0" + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0" }, "repository": { "type": "git", diff --git a/packages/messaging/gulpfile.js b/packages/polyfill/rollup.config.js similarity index 50% rename from packages/messaging/gulpfile.js rename to packages/polyfill/rollup.config.js index dc8ec17b593..0527ce20cb5 100644 --- a/packages/messaging/gulpfile.js +++ b/packages/polyfill/rollup.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2017 Google Inc. + * Copyright 2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,18 +14,28 @@ * limitations under the License. */ -const gulp = require('gulp'); -const tools = require('../../tools/build'); +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; -const setupWatcher = () => { - gulp.watch(['index.ts', 'src/**/*'], buildModule); +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external }; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/storage-types/package.json b/packages/storage-types/package.json index a37bfe6f781..12d6c6ade9b 100644 --- a/packages/storage-types/package.json +++ b/packages/storage-types/package.json @@ -5,16 +5,13 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], "peerDependencies": { - "@firebase/app-types": "^0.1.0" - }, - "devDependencies": { - "typescript": "^2.7.2" + "@firebase/app-types": "0.x" }, "repository": { "type": "git", diff --git a/packages/storage-types/test/default.test.ts b/packages/storage-types/test/default.test.ts deleted file mode 100644 index 16419178e89..00000000000 --- a/packages/storage-types/test/default.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { firebase } from '@firebase/app'; -import '@firebase/storage'; diff --git a/packages/storage-types/tsconfig.json b/packages/storage-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/storage-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/storage/gulpfile.js b/packages/storage/gulpfile.js deleted file mode 100644 index dc8ec17b593..00000000000 --- a/packages/storage/gulpfile.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/storage/package.json b/packages/storage/package.json index 121b0d8997c..1709f8e8d5e 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -3,13 +3,14 @@ "version": "0.1.8", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser", "test:browser": "karma start --single-run", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "dependencies": { @@ -17,15 +18,14 @@ "tslib": "^1.9.0" }, "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "devDependencies": { "@types/chai": "^4.1.2", "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -35,6 +35,10 @@ "karma-spec-reporter": "^0.0.32", "karma-webpack": "^2.0.9", "npm-run-all": "^4.1.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "sinon": "^4.3.0", "source-map-loader": "^0.2.3", "ts-loader": "^3.5.0", @@ -48,5 +52,5 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts" + "typings": "dist/index.d.ts" } diff --git a/packages/storage/rollup.config.js b/packages/storage/rollup.config.js new file mode 100644 index 00000000000..0527ce20cb5 --- /dev/null +++ b/packages/storage/rollup.config.js @@ -0,0 +1,41 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external +}; diff --git a/packages/template-types/package.json b/packages/template-types/package.json index da89c530245..db7d48a3490 100644 --- a/packages/template-types/package.json +++ b/packages/template-types/package.json @@ -6,14 +6,11 @@ "author": "Firebase (https://firebase.google.com/)", "license": "Apache-2.0", "scripts": { - "test": "tsc" + "test": "echo 'Types package, skipping tests'" }, "files": [ "index.d.ts" ], - "devDependencies": { - "typescript": "^2.7.2" - }, "repository": { "type": "git", "url": "https://github.com/firebase/firebase-js-sdk/tree/master/packages/template-types" diff --git a/packages/template-types/test/default.test.ts b/packages/template-types/test/default.test.ts deleted file mode 100644 index a6d67b384d9..00000000000 --- a/packages/template-types/test/default.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * The purpose of these tests is to write code that **should** compile and to - * ensure it continues compiling. - */ - -import { TestType } from '../index'; - -const thing: TestType = { - prop: 'asdf' -}; diff --git a/packages/template-types/tsconfig.json b/packages/template-types/tsconfig.json deleted file mode 100644 index 09f747b4d46..00000000000 --- a/packages/template-types/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "exclude": [ - "dist/**/*" - ] -} diff --git a/packages/template/gulpfile.js b/packages/template/gulpfile.js deleted file mode 100644 index 4d9f7d94e11..00000000000 --- a/packages/template/gulpfile.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'index.node.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/template/package.json b/packages/template/package.json index c1b56be328c..a9eef1731dd 100644 --- a/packages/template/package.json +++ b/packages/template/package.json @@ -4,19 +4,20 @@ "private": true, "description": "A template package for new firebase packages", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.node.js", - "browser": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.node.cjs.js", + "browser": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:node": "nyc --reporter lcovonly -- mocha test/**/*.test.* --compilers ts:ts-node/register --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "dependencies": { "@firebase/template-types": "0.1.0", @@ -28,7 +29,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -39,6 +39,10 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "ts-loader": "^3.5.0", "ts-node": "^5.0.0", "typescript": "^2.7.2", @@ -51,7 +55,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/template/rollup.config.js b/packages/template/rollup.config.js new file mode 100644 index 00000000000..c138ee21c6b --- /dev/null +++ b/packages/template/rollup.config.js @@ -0,0 +1,55 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default [ + /** + * Browser Builds + */ + { + input: 'index.ts', + output: [ + { file: pkg.browser, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external + }, + /** + * Node.js Build + */ + { + input: 'index.node.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external + } +]; diff --git a/packages/testing/gulpfile.js b/packages/testing/gulpfile.js deleted file mode 100644 index dc8ec17b593..00000000000 --- a/packages/testing/gulpfile.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/testing/package.json b/packages/testing/package.json index aa4c5a72256..0fde613cfc8 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -4,13 +4,12 @@ "private": true, "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.js", - "browser": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.cjs.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "TS_NODE_CACHE=NO nyc --reporter lcovonly -- mocha 'test/{,!(browser)/**/}*.test.ts' --compilers ts:ts-node/register/type-check --retries 5 --timeout 5000 --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "dependencies": { @@ -19,19 +18,22 @@ }, "devDependencies": { "chai": "^4.1.1", - "gulp": "^4.0.0", "mocha": "^5.0.1", - "nyc": "^11.4.1" + "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0" }, "peerDependencies": { - "@firebase/app": "^0.1.0", - "@firebase/app-types": "^0.1.0" + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" }, "repository": { "type": "git", "url": "https://github.com/firebase/firebase-js-sdk/tree/master/packages/testing" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" } diff --git a/packages/functions/gulpfile.js b/packages/testing/rollup.config.js similarity index 52% rename from packages/functions/gulpfile.js rename to packages/testing/rollup.config.js index 4373efc0d75..9b85c9950ab 100644 --- a/packages/functions/gulpfile.js +++ b/packages/testing/rollup.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2017 Google Inc. + * Copyright 2018 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,18 +14,25 @@ * limitations under the License. */ -const gulp = require('gulp'); -const tools = require('../../tools/build'); +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; -const setupWatcher = () => { - gulp.watch('src/**/*', buildModule); +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default { + input: 'index.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external }; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/testing/src/api/index.ts b/packages/testing/src/api/index.ts index f7a68844289..84d686f04e5 100644 --- a/packages/testing/src/api/index.ts +++ b/packages/testing/src/api/index.ts @@ -15,7 +15,7 @@ */ import * as admin from 'firebase-admin'; -import * as request from 'request-promise'; +import request from 'request-promise'; import * as fs from 'fs'; const DBURL = 'http://localhost:9000'; diff --git a/packages/util/gulpfile.js b/packages/util/gulpfile.js deleted file mode 100644 index 4d9f7d94e11..00000000000 --- a/packages/util/gulpfile.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const tools = require('../../tools/build'); - -const buildModule = gulp.parallel([ - tools.buildCjs(__dirname), - tools.buildEsm(__dirname) -]); - -const setupWatcher = () => { - gulp.watch(['index.ts', 'index.node.ts', 'src/**/*'], buildModule); -}; - -gulp.task('build', buildModule); - -gulp.task('dev', gulp.parallel([setupWatcher])); diff --git a/packages/util/package.json b/packages/util/package.json index 153fec501ff..93a03feadb2 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -3,15 +3,16 @@ "version": "0.1.10", "description": "", "author": "Firebase (https://firebase.google.com/)", - "main": "dist/cjs/index.node.js", - "browser": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "dist/index.node.cjs.js", + "browser": "dist/index.cjs.js", + "module": "dist/index.esm.js", "scripts": { - "dev": "gulp dev", + "build": "rollup -c", + "dev": "rollup -c -w", "test": "run-p test:browser test:node", "test:browser": "karma start --single-run", "test:node": "TS_NODE_CACHE=NO nyc --reporter lcovonly -- mocha test/**/*.test.* --compilers ts:ts-node/register/type-check --exit", - "prepare": "gulp build" + "prepare": "npm run build" }, "license": "Apache-2.0", "dependencies": { @@ -22,7 +23,6 @@ "@types/mocha": "^2.2.48", "@types/sinon": "^4.1.3", "chai": "^4.1.1", - "gulp": "^4.0.0", "karma": "^2.0.0", "karma-chrome-launcher": "^2.2.0", "karma-cli": "^1.0.1", @@ -33,6 +33,10 @@ "mocha": "^5.0.1", "npm-run-all": "^4.1.1", "nyc": "^11.4.1", + "rollup": "^0.57.1", + "rollup-plugin-commonjs": "^9.1.0", + "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-typescript2": "^0.12.0", "ts-loader": "^3.5.0", "ts-node": "^5.0.0", "typescript": "^2.7.2", @@ -45,7 +49,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/esm/index.d.ts", + "typings": "dist/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/util/rollup.config.js b/packages/util/rollup.config.js new file mode 100644 index 00000000000..c138ee21c6b --- /dev/null +++ b/packages/util/rollup.config.js @@ -0,0 +1,55 @@ +/** + * Copyright 2018 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resolve from 'rollup-plugin-node-resolve'; +import typescript from 'rollup-plugin-typescript2'; +import commonjs from 'rollup-plugin-commonjs'; +import pkg from './package.json'; + +const plugins = [ + typescript({ + typescript: require('typescript') + }), + resolve(), + commonjs() +]; + +const external = Object.keys( + Object.assign({}, pkg.peerDependencies, pkg.dependencies) +); +export default [ + /** + * Browser Builds + */ + { + input: 'index.ts', + output: [ + { file: pkg.browser, format: 'cjs' }, + { file: pkg.module, format: 'es' } + ], + plugins, + external + }, + /** + * Node.js Build + */ + { + input: 'index.node.ts', + output: [{ file: pkg.main, format: 'cjs' }], + plugins, + external + } +]; diff --git a/scripts/release/utils/npm.js b/scripts/release/utils/npm.js index 2e009efa81c..b7901c9e2a6 100644 --- a/scripts/release/utils/npm.js +++ b/scripts/release/utils/npm.js @@ -75,7 +75,7 @@ exports.publishToNpm = async (updatedPkgs, releaseType) => { }) ); const tasks = new Listr(taskArray, { - concurrent: true, + concurrent: false, exitOnError: false }); diff --git a/tools/build.js b/tools/build.js deleted file mode 100644 index 63178699407..00000000000 --- a/tools/build.js +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const gulp = require('gulp'); -const merge = require('merge2'); -const path = require('path'); -const sourcemaps = require('gulp-sourcemaps'); -const ts = require('gulp-typescript'); - -function buildCjs(root = '') { - return function buildCjsBundle() { - const tsProject = ts.createProject(path.resolve(root, 'tsconfig.json')); - const tsResult = tsProject - .src() - .pipe(sourcemaps.init()) - .pipe(tsProject()); - - const jsPipe = tsResult.js - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist/cjs')); - const dtsPipe = tsResult.dts.pipe(gulp.dest('dist/cjs')); - - return merge([jsPipe, dtsPipe]); - }; -} - -function buildEsm(root = '') { - return function buildEsmBundle() { - const tsProject = ts.createProject(path.resolve(root, 'tsconfig.json'), { - module: 'esnext' - }); - const tsResult = tsProject - .src() - .pipe(sourcemaps.init()) - .pipe(tsProject()); - - const jsPipe = tsResult.js - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest('dist/esm')); - const dtsPipe = tsResult.dts.pipe(gulp.dest('dist/esm')); - - return merge([jsPipe, dtsPipe]); - }; -} - -exports.buildCjs = buildCjs; -exports.buildEsm = buildEsm; diff --git a/yarn.lock b/yarn.lock index 2c857f94d7e..c0c4b69e872 100644 --- a/yarn.lock +++ b/yarn.lock @@ -192,23 +192,6 @@ string-format-obj "^1.0.0" through2 "^2.0.0" -"@gulp-sourcemaps/identity-map@1.X": - version "1.0.1" - resolved "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz#cfa23bc5840f9104ce32a65e74db7e7a974bbee1" - dependencies: - acorn "^5.0.3" - css "^2.2.1" - normalize-path "^2.1.1" - source-map "^0.5.6" - through2 "^2.0.3" - -"@gulp-sourcemaps/map-sources@1.X": - version "1.0.0" - resolved "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" - dependencies: - normalize-path "^2.0.1" - through2 "^2.0.3" - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -437,10 +420,6 @@ acorn-node@^1.2.0: acorn "^5.4.1" xtend "^4.0.1" -acorn@5.X, acorn@^5.0.0, acorn@^5.0.3, acorn@^5.2.1, acorn@^5.4.0, acorn@^5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" - acorn@^3.0.4: version "3.3.0" resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -449,6 +428,10 @@ acorn@^4.0.0, acorn@^4.0.3, acorn@^4.0.4: version "4.0.13" resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn@^5.0.0, acorn@^5.2.1, acorn@^5.4.0, acorn@^5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" + acorn@^5.5.3: version "5.5.3" resolved "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" @@ -575,10 +558,6 @@ ansi-gray@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - ansi-red@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" @@ -641,7 +620,7 @@ append-transform@^0.4.0: dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.0.3: version "1.2.0" resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -769,7 +748,7 @@ array-flatten@1.1.1, array-flatten@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" -array-flatten@2.1.1, array-flatten@^2.1.0: +array-flatten@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" @@ -777,13 +756,6 @@ array-ify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - array-initial@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" @@ -951,7 +923,7 @@ async@2.0.1: dependencies: lodash "^4.8.0" -async@^2.0.0, async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.3.0, async@^2.4.0, async@^2.4.1, async@^2.5.0: +async@^2.0.0, async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.3.0, async@^2.4.0, async@^2.5.0: version "2.6.0" resolved "https://registry.npmjs.org/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: @@ -985,10 +957,6 @@ atob@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" -atob@~1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" - aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -1149,10 +1117,6 @@ basic-auth@~2.0.0: dependencies: safe-buffer "5.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -1219,7 +1183,7 @@ bluebird@3.4.6: version "3.4.6" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" -bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1: +bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.5.0: version "3.5.1" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1257,17 +1221,6 @@ body-parser@1.18.2, body-parser@^1.16.1: raw-body "2.3.2" type-is "~1.6.15" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - boom@2.x.x: version "2.10.1" resolved "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1585,10 +1538,6 @@ buffer-equal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - buffer-more-ints@0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" @@ -1636,6 +1585,10 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +builtin-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -1664,24 +1617,6 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" -cacache@^10.0.1: - version "10.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2171,6 +2106,10 @@ commander@^2.12.1, commander@^2.8.1, commander@^2.9.0: version "2.14.1" resolved "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + commander@~2.8.1: version "2.8.1" resolved "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" @@ -2221,17 +2160,7 @@ compressible@^2.0.12, compressible@~2.0.13: dependencies: mime-db ">= 1.33.0 < 2" -compression-webpack-plugin@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.1.7.tgz#b0dfb97cf1d26baab997b584b8c36fe91872abe2" - dependencies: - async "^2.4.1" - cacache "^10.0.1" - find-cache-dir "^1.0.0" - serialize-javascript "^1.4.0" - webpack-sources "^1.0.1" - -compression@^1.5.2, compression@^1.7.0: +compression@^1.7.0: version "1.7.2" resolved "https://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" dependencies: @@ -2263,12 +2192,6 @@ concat-stream@~1.5.0, concat-stream@~1.5.1: readable-stream "~2.0.0" typedarray "~0.0.5" -concat-with-sourcemaps@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.5.tgz#8964bc2347d05819b63798104d87d6e001bed8d0" - dependencies: - source-map "^0.6.1" - configstore@3.1.1, configstore@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" @@ -2307,10 +2230,6 @@ configstore@^2.0.0: write-file-atomic "^1.1.2" xdg-basedir "^2.0.0" -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" - connect-query@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/connect-query/-/connect-query-1.0.0.tgz#de44f577209da2404d1fc04692d1a4118e582119" @@ -2498,7 +2417,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@1.X, convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0: +convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2514,17 +2433,6 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -2660,15 +2568,6 @@ crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" -css@2.X, css@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" - dependencies: - inherits "^2.0.1" - source-map "^0.1.38" - source-map-resolve "^0.3.0" - urix "^0.1.0" - csv-streamify@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz#4cb614c57e3f299cca17b63fdcb4ad167777f47a" @@ -2689,10 +2588,6 @@ cycle@1.0.x: version "1.0.3" resolved "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - d@1: version "1.0.0" resolved "https://registry.npmjs.org/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -2748,19 +2643,11 @@ dateformat@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" -debug-fabulous@1.X: - version "1.0.0" - resolved "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.0.0.tgz#57f6648646097b1b0849dcda0017362c1ec00f8b" - dependencies: - debug "3.X" - memoizee "0.4.X" - object-assign "4.X" - debug-log@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@2, debug@2.6.9, debug@^2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6: +debug@2, debug@2.6.9, debug@^2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2778,7 +2665,7 @@ debug@2.6.8: dependencies: ms "2.0.0" -debug@3.1.0, debug@3.X, debug@^3.1.0, debug@~3.1.0: +debug@3.1.0, debug@^3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -2866,10 +2753,6 @@ deep-eql@^3.0.0: dependencies: type-detect "^4.0.0" -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - deep-equal@~0.2.1: version "0.2.2" resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d" @@ -3023,14 +2906,6 @@ detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" -detect-newline@2.X: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - detective@^4.0.0: version "4.7.1" resolved "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz#0eca7314338442febb6d65da54c10bb1c82b246e" @@ -3085,17 +2960,6 @@ dmg@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/dmg/-/dmg-0.1.0.tgz#b38ea2107f6f0b070442bbf799bfc4f2aedaa5f8" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - dns-sync@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/dns-sync/-/dns-sync-0.1.3.tgz#80f729142e75dd4b5f4b1d3e529731ee31299472" @@ -3103,12 +2967,6 @@ dns-sync@^0.1.3: debug "^2" shelljs "~0.5" -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -3172,7 +3030,7 @@ duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.5.1, duplexify@^3.5.3: +duplexify@^3.2.0, duplexify@^3.5.0, duplexify@^3.5.1, duplexify@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" dependencies: @@ -3323,7 +3181,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.4.3, es-abstract@^1.7.0: +es-abstract@^1.4.3: version "1.10.0" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: @@ -3341,7 +3199,7 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es5-ext@^0.10.14, es5-ext@^0.10.30, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2: +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.39" resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87" dependencies: @@ -3388,7 +3246,7 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" -es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: +es6-weak-map@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" dependencies: @@ -3539,6 +3397,10 @@ estree-walker@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" +estree-walker@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz#64fc375053abc6f57d73e9bd2f004644ad3c5854" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -3547,7 +3409,7 @@ etag@~1.8.0, etag@~1.8.1: version "1.8.1" resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -event-emitter@^0.3.5, event-emitter@~0.3.5: +event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" dependencies: @@ -3578,12 +3440,6 @@ events@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/events/-/events-2.0.0.tgz#cbbb56bf3ab1ac18d71c43bb32c86255062769f2" -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3878,7 +3734,7 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -faye-websocket@0.11.1, faye-websocket@>=0.6.0, faye-websocket@~0.11.0: +faye-websocket@0.11.1, faye-websocket@>=0.6.0: version "0.11.1" resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" dependencies: @@ -3890,12 +3746,6 @@ faye-websocket@0.9.3: dependencies: websocket-driver ">=0.5.1" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -4020,14 +3870,6 @@ find-cache-dir@^0.1.1: mkdirp "^0.5.1" pkg-dir "^1.0.0" -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -4166,7 +4008,7 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: +flush-write-stream@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" dependencies: @@ -4258,13 +4100,6 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - from@~0: version "0.1.7" resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" @@ -4317,15 +4152,6 @@ fs-mkdirp-stream@^1.0.0: graceful-fs "^4.1.11" through2 "^2.0.3" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -4515,14 +4341,6 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-rev-sync@^1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.10.0.tgz#e8ac4fd09672449148ff694e2d7c6a6ee35c93a6" - dependencies: - escape-string-regexp "1.0.5" - graceful-fs "4.1.11" - shelljs "0.7.7" - git-semver-tags@^1.3.0, git-semver-tags@^1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.3.tgz#0b0416c43285adfdc93a8038ea25502a09319245" @@ -4898,7 +4716,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@4.1.11, graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -4984,14 +4802,6 @@ gulp-closure-compiler@^0.4.0: through "^2.3.4" uuid "^2.0.1" -gulp-concat@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" - dependencies: - concat-with-sourcemaps "^1.0.0" - through2 "^2.0.0" - vinyl "^2.0.0" - gulp-filter@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" @@ -5018,33 +4828,6 @@ gulp-sourcemaps@1.6.0: through2 "^2.0.0" vinyl "^1.0.0" -gulp-sourcemaps@^2.6.4: - version "2.6.4" - resolved "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz#cbb2008450b1bcce6cd23bf98337be751bf6e30a" - dependencies: - "@gulp-sourcemaps/identity-map" "1.X" - "@gulp-sourcemaps/map-sources" "1.X" - acorn "5.X" - convert-source-map "1.X" - css "2.X" - debug-fabulous "1.X" - detect-newline "2.X" - graceful-fs "4.X" - source-map "~0.6.0" - strip-bom-string "1.X" - through2 "2.X" - -gulp-typescript@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-4.0.1.tgz#fd9d2e06a06ea3c1c15885b82ebfb037c07d75b2" - dependencies: - ansi-colors "^1.0.1" - plugin-error "^0.1.2" - source-map "^0.6.1" - through2 "^2.0.3" - vinyl "^2.1.0" - vinyl-fs "^3.0.0" - gulp-util@^3.0.0, gulp-util@^3.0.7: version "3.0.8" resolved "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" @@ -5083,10 +4866,6 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - handlebars@^4.0.1, handlebars@^4.0.2, handlebars@^4.0.3: version "4.0.11" resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" @@ -5298,27 +5077,10 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - http-errors@1.6.2, http-errors@~1.6.1, http-errors@~1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" @@ -5340,16 +5102,7 @@ http-proxy-agent@1: debug "2" extend "3" -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@1.16.2, http-proxy@^1.13.0, http-proxy@^1.16.2: +http-proxy@1.16.2, http-proxy@^1.13.0: version "1.16.2" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: @@ -5419,10 +5172,6 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - ignore@^3.3.3, ignore@^3.3.5: version "3.3.7" resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" @@ -5431,13 +5180,6 @@ immediate@~3.0.5: version "3.0.6" resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5561,12 +5303,6 @@ insert-module-globals@^7.0.0: through2 "^2.0.0" xtend "^4.0.0" -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - interpret@^1.0.0, interpret@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" @@ -5585,7 +5321,7 @@ ip@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" -ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: +ip@^1.1.2, ip@^1.1.4: version "1.1.5" resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -5744,6 +5480,10 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + is-my-ip-valid@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" @@ -5844,7 +5584,7 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-promise@^2.1, is-promise@^2.1.0: +is-promise@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -5934,10 +5674,6 @@ is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - is@^3.0.1, is@^3.2.0, is@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" @@ -6190,10 +5926,6 @@ json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0. version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -6444,10 +6176,6 @@ kew@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - kind-of@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" @@ -7037,7 +6765,7 @@ loggly@^1.1.0: request "2.75.x" timespan "2.3.x" -loglevel@^1.4.1, loglevel@^1.6.1: +loglevel@^1.6.1: version "1.6.1" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" @@ -7074,7 +6802,7 @@ lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" -lru-cache@4.1.x, lru-cache@^4.0.1, lru-cache@^4.1.1: +lru-cache@4.1.x, lru-cache@^4.0.1: version "4.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" dependencies: @@ -7085,11 +6813,11 @@ lru-cache@~2.6.5: version "2.6.5" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" -lru-queue@0.1: - version "0.1.0" - resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" +magic-string@^0.22.4: + version "0.22.5" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" dependencies: - es5-ext "~0.10.2" + vlq "^0.2.2" mailcomposer@4.0.1: version "4.0.1" @@ -7190,19 +6918,6 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -memoizee@0.4.X: - version "0.4.11" - resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz#bde9817663c9e40fdb2a4ea1c367296087ae8c8f" - dependencies: - d "1" - es5-ext "^0.10.30" - es6-weak-map "^2.0.2" - event-emitter "^0.3.5" - is-promise "^2.1" - lru-queue "0.1" - next-tick "1" - timers-ext "^0.1.2" - memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -7380,21 +7095,6 @@ minizlib@^1.0.3, minizlib@^1.0.4: dependencies: minipass "^2.2.1" -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -7491,17 +7191,6 @@ morgan@^1.8.2: on-finished "~2.3.0" on-headers "~1.0.1" -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@0.7.1: version "0.7.1" resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -7514,17 +7203,6 @@ ms@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - multimatch@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" @@ -7612,10 +7290,6 @@ netmask@~1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" -next-tick@1: - version "1.0.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - nise@^1.2.0: version "1.2.5" resolved "https://registry.npmjs.org/nise/-/nise-1.2.5.tgz#a143371b65014b6807d3a6e6b4556063f3a53363" @@ -7869,14 +7543,14 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@4.X, object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - object-assign@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" +object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + object-component@0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" @@ -7944,10 +7618,6 @@ object.reduce@^1.0.0: for-own "^1.0.0" make-iterator "^1.0.0" -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - on-finished@^2.2.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -7978,12 +7648,6 @@ open@^0.0.5: version "0.0.5" resolved "https://registry.npmjs.org/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" -opn@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - optimist@^0.6.1, optimist@~0.6.0: version "0.6.1" resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -8043,12 +7707,6 @@ ordered-read-streams@^1.0.0: dependencies: readable-stream "^2.0.1" -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.npmjs.org/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -8175,14 +7833,6 @@ pako@~1.0.2, pako@~1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - parents@^1.0.0, parents@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" @@ -8401,12 +8051,6 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - pkginfo@0.3.x: version "0.3.1" resolved "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" @@ -8451,14 +8095,6 @@ portfinder@^0.4.0: async "0.9.0" mkdirp "0.5.x" -portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -8594,10 +8230,6 @@ progress@2.0.0, progress@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - promise-polyfill@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" @@ -8719,7 +8351,7 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: @@ -8782,14 +8414,6 @@ querystring@0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - randomatic@^1.1.3: version "1.1.7" resolved "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -8903,7 +8527,16 @@ read@1.0.x: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3: +readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@^1.1.7, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3: version "2.3.4" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" dependencies: @@ -8915,15 +8548,6 @@ read@1.0.x: string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@^1.1.7, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.32: version "1.0.34" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -9246,16 +8870,10 @@ require-uncached@^1.0.3: caller-path "^0.1.0" resolve-from "^1.0.0" -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: +requires-port@1.x.x: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -9271,17 +8889,13 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" dependencies: value-or-function "^3.0.0" -resolve-url@^0.2.1, resolve-url@~0.2.1: +resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -9295,6 +8909,12 @@ resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, dependencies: path-parse "^1.0.5" +resolve@^1.5.0: + version "1.7.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz#2bdf5374811207285df0df652b78f118ab8f3c5e" + dependencies: + path-parse "^1.0.5" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -9353,6 +8973,46 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rollup-plugin-commonjs@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.0.tgz#468341aab32499123ee9a04b22f51d9bf26fdd94" + dependencies: + estree-walker "^0.5.1" + magic-string "^0.22.4" + resolve "^1.5.0" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713" + dependencies: + builtin-modules "^2.0.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-replace@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" + dependencies: + magic-string "^0.22.4" + minimatch "^3.0.2" + rollup-pluginutils "^2.0.1" + +rollup-plugin-typescript2@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.12.0.tgz#c6cd4d6c2fff954ba475ed5faec3c08544a9fc71" + dependencies: + fs-extra "^5.0.0" + resolve "^1.5.0" + rollup-pluginutils "^2.0.1" + tslib "^1.9.0" + +rollup-plugin-uglify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz#a34eca24617709c6bf1778e9653baafa06099b86" + dependencies: + uglify-es "^3.3.7" + rollup-pluginutils@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" @@ -9408,12 +9068,6 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" @@ -9490,10 +9144,6 @@ seek-bzip@^1.0.5: dependencies: commander "~2.8.1" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - selenium-assistant@^5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/selenium-assistant/-/selenium-assistant-5.3.0.tgz#0583a77fbfbc339334cb6a4efe33a5cec5dfe30a" @@ -9529,12 +9179,6 @@ selenium-webdriver@^2.53.2: ws "^1.0.1" xml2js "0.4.4" -selfsigned@^1.9.1: - version "1.10.2" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" - dependencies: - node-forge "0.7.1" - semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" @@ -9613,28 +9257,12 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" -serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" - serializerr@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/serializerr/-/serializerr-1.0.3.tgz#12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91" dependencies: protochain "^1.0.5" -serve-index@^1.7.2: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - serve-static@1.12.4: version "1.12.4" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" @@ -9746,14 +9374,6 @@ shell-quote@^1.6.1: array-reduce "~0.0.0" jsonify "~0.0.0" -shelljs@0.7.7: - version "0.7.7" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - shelljs@~0.5: version "0.5.3" resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz#c54982b996c76ef0c1e6b59fbdc5825f5b713113" @@ -9899,24 +9519,6 @@ socket.io@2.0.4: socket.io-client "2.0.4" socket.io-parser "~3.1.1" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - socks-proxy-agent@2: version "2.1.1" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" @@ -9961,15 +9563,6 @@ source-map-loader@^0.2.3: loader-utils "~0.2.2" source-map "~0.6.1" -source-map-resolve@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" - dependencies: - atob "~1.1.0" - resolve-url "~0.2.1" - source-map-url "~0.3.0" - urix "~0.1.0" - source-map-resolve@^0.5.0: version "0.5.1" resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" @@ -9996,24 +9589,14 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map-url@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" - source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -source-map@^0.1.38: - version "0.1.43" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - source-map@^0.4.4, source-map@~0.4.1: version "0.4.4" resolved "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -10059,29 +9642,6 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - split-array-stream@^1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz#d2b75a8e5e0d824d52fdec8b8225839dc2e35dfa" @@ -10135,12 +9695,6 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -ssri@^5.2.4: - version "5.2.4" - resolved "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz#9985e14041e65fc397af96542be35724ac11da52" - dependencies: - safe-buffer "^5.1.1" - stack-trace@0.0.10, stack-trace@0.0.x: version "0.0.10" resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -10184,13 +9738,6 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - stream-events@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz#abf39f66c0890a4eb795bc8d5e859b2615b590b2" @@ -10330,10 +9877,6 @@ strip-bom-stream@^1.0.0: first-chunk-stream "^1.0.0" strip-bom "^2.0.0" -strip-bom-string@1.X: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -10620,13 +10163,6 @@ through2@2.0.1: readable-stream "~2.0.0" xtend "~4.0.0" -through2@2.X, through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - through2@^0.6.0: version "0.6.5" resolved "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -10634,6 +10170,13 @@ through2@^0.6.0: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" +through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -10642,10 +10185,6 @@ thunkify@~2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" -thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" - time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" @@ -10682,13 +10221,6 @@ timers-browserify@^2.0.2, timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timers-ext@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz#61cc47a76c1abd3195f14527f978d58ae94c5204" - dependencies: - es5-ext "~0.10.14" - next-tick "1" - timespan@2.3.x: version "2.3.0" resolved "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" @@ -10922,6 +10454,13 @@ typescript@^2.4.2, typescript@^2.7.2: version "2.7.2" resolved "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" +uglify-es@^3.3.7: + version "3.3.9" + resolved "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + uglify-js@^2.6, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -11012,18 +10551,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - unique-stream@^2.0.2: version "2.2.1" resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" @@ -11111,7 +10638,7 @@ update-notifier@^1.0.3: semver-diff "^2.0.0" xdg-basedir "^2.0.0" -urix@^0.1.0, urix@~0.1.0: +urix@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -11125,20 +10652,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@^1.1.8: - version "1.2.0" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" @@ -11350,6 +10863,10 @@ vinyl@^2.0.0, vinyl@^2.0.1, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +vlq@^0.2.2: + version "0.2.3" + resolved "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + vm-browserify@0.0.4, vm-browserify@~0.0.1: version "0.0.4" resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -11379,12 +10896,6 @@ watchpack@^1.4.0: chokidar "^1.7.0" graceful-fs "^4.1.2" -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -11434,7 +10945,7 @@ webpack-core@^0.6.8: source-list-map "~0.1.7" source-map "~0.4.1" -webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.12.0: +webpack-dev-middleware@^1.12.0: version "1.12.2" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: @@ -11444,38 +10955,6 @@ webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.12.0: range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-server@^2.11.1: - version "2.11.1" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz#6f9358a002db8403f016e336816f4485384e5ec0" - dependencies: - ansi-html "0.0.7" - array-includes "^3.0.3" - bonjour "^3.5.0" - chokidar "^2.0.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^1.0.0" - internal-ip "1.2.0" - ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.19" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^5.1.0" - webpack-dev-middleware "1.12.2" - yargs "6.6.0" - webpack-sources@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" @@ -11631,12 +11110,6 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" -wrapper-webpack-plugin@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wrapper-webpack-plugin/-/wrapper-webpack-plugin-1.0.0.tgz#55c11647f8ca990ff6f04b41d8fa4af096c31bbb" - dependencies: - webpack-sources "^1.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11744,10 +11217,6 @@ y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - yallist@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -11756,12 +11225,6 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" @@ -11786,24 +11249,6 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@6.6.0: - version "6.6.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - yargs@8.0.2, yargs@^8.0.2: version "8.0.2" resolved "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"