From 6898afecb69cc13ed317454bdcacfe1d7432de02 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sat, 5 Dec 2020 15:33:47 -0500 Subject: [PATCH 1/8] Actually creates firebase/firestore/bundle package.json --- packages/firebase/firestore/bundle/index.ts | 18 +++++ .../firebase/firestore/bundle/package.json | 7 ++ packages/firebase/firestore/index.cdn.ts | 19 +++++ packages/firebase/firestore/index.ts | 1 - .../firebase/firestore/memory/bundle/index.ts | 23 ++++++ .../firestore/memory/bundle/package.json | 7 ++ .../firebase/firestore/memory/index.cdn.ts | 24 +++++++ packages/firebase/firestore/memory/index.ts | 1 - packages/firebase/rollup.config.js | 72 ++++++++++++++++++- 9 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 packages/firebase/firestore/bundle/index.ts create mode 100644 packages/firebase/firestore/bundle/package.json create mode 100644 packages/firebase/firestore/index.cdn.ts create mode 100644 packages/firebase/firestore/memory/bundle/index.ts create mode 100644 packages/firebase/firestore/memory/bundle/package.json create mode 100644 packages/firebase/firestore/memory/index.cdn.ts diff --git a/packages/firebase/firestore/bundle/index.ts b/packages/firebase/firestore/bundle/index.ts new file mode 100644 index 00000000000..dd82682df99 --- /dev/null +++ b/packages/firebase/firestore/bundle/index.ts @@ -0,0 +1,18 @@ +/** + * @license + * Copyright 2017 Google LLC + * + * 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/firestore/bundle'; diff --git a/packages/firebase/firestore/bundle/package.json b/packages/firebase/firestore/bundle/package.json new file mode 100644 index 00000000000..3642099d8b2 --- /dev/null +++ b/packages/firebase/firestore/bundle/package.json @@ -0,0 +1,7 @@ +{ + "name": "firebase/firestore/bundle", + "description": "The bundle loading feature of the Cloud Firestore component.", + "main": "dist/index.cjs.js", + "module": "dist/index.esm.js", + "typings": "../empty-import.d.ts" +} diff --git a/packages/firebase/firestore/index.cdn.ts b/packages/firebase/firestore/index.cdn.ts new file mode 100644 index 00000000000..cafaed0902e --- /dev/null +++ b/packages/firebase/firestore/index.cdn.ts @@ -0,0 +1,19 @@ +/** + * @license + * Copyright 2017 Google LLC + * + * 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/firestore'; +import '@firebase/firestore/bundle'; diff --git a/packages/firebase/firestore/index.ts b/packages/firebase/firestore/index.ts index cafaed0902e..08e45bd8e42 100644 --- a/packages/firebase/firestore/index.ts +++ b/packages/firebase/firestore/index.ts @@ -16,4 +16,3 @@ */ import '@firebase/firestore'; -import '@firebase/firestore/bundle'; diff --git a/packages/firebase/firestore/memory/bundle/index.ts b/packages/firebase/firestore/memory/bundle/index.ts new file mode 100644 index 00000000000..35330d462ee --- /dev/null +++ b/packages/firebase/firestore/memory/bundle/index.ts @@ -0,0 +1,23 @@ +/** + * @license + * Copyright 2020 Google LLC + * + * 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. + */ + +/** + * This file serves as the public entrypoint for users that import + * `firebase/firestore/memory`. + */ + +import '@firebase/firestore/memory-bundle'; diff --git a/packages/firebase/firestore/memory/bundle/package.json b/packages/firebase/firestore/memory/bundle/package.json new file mode 100644 index 00000000000..42bf3e7da7f --- /dev/null +++ b/packages/firebase/firestore/memory/bundle/package.json @@ -0,0 +1,7 @@ +{ + "name": "firebase/firestore/memory", + "description": "A memory-only build of the Cloud Firestore JS SDK.", + "main": "dist/index.node.cjs.js", + "module": "dist/index.esm.js", + "typings": "../../empty-import.d.ts" +} diff --git a/packages/firebase/firestore/memory/index.cdn.ts b/packages/firebase/firestore/memory/index.cdn.ts new file mode 100644 index 00000000000..6f8f730e3d1 --- /dev/null +++ b/packages/firebase/firestore/memory/index.cdn.ts @@ -0,0 +1,24 @@ +/** + * @license + * Copyright 2020 Google LLC + * + * 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. + */ + +/** + * This file serves as the public entrypoint for users that import + * `firebase/firestore/memory`. + */ + +import '@firebase/firestore/memory'; +import '@firebase/firestore/memory-bundle'; diff --git a/packages/firebase/firestore/memory/index.ts b/packages/firebase/firestore/memory/index.ts index 6f8f730e3d1..3dcef63e67a 100644 --- a/packages/firebase/firestore/memory/index.ts +++ b/packages/firebase/firestore/memory/index.ts @@ -21,4 +21,3 @@ */ import '@firebase/firestore/memory'; -import '@firebase/firestore/memory-bundle'; diff --git a/packages/firebase/rollup.config.js b/packages/firebase/rollup.config.js index 41e03b1751f..16b0655690d 100644 --- a/packages/firebase/rollup.config.js +++ b/packages/firebase/rollup.config.js @@ -111,7 +111,7 @@ const appBuilds = [ const componentBuilds = pkg.components // The "app" component is treated differently because it doesn't depend on itself. - .filter(component => component !== 'app') + .filter(component => component !== 'app' && component !== 'firestore') .map(component => { const pkg = require(`./${component}/package.json`); return [ @@ -149,6 +149,56 @@ const componentBuilds = pkg.components }) .reduce((a, b) => a.concat(b), []); +const firestoreBuilds = [ + { + input: `firestore/index.ts`, + output: [ + { + file: resolve('firestore', pkg.main), + format: 'cjs', + sourcemap: true + }, + { + file: resolve('firestore', pkg.module), + format: 'es', + sourcemap: true + } + ], + plugins, + external + }, + { + input: `firestore/bundle/index.ts`, + output: [ + { + file: resolve('firestore/bundle', pkg.main), + format: 'cjs', + sourcemap: true + }, + { + file: resolve('firestore/bundle', pkg.module), + format: 'es', + sourcemap: true + } + ], + plugins, + external + }, + { + input: `firestore/index.cdn.ts`, + output: createUmdOutputConfig(`firebase-firestore.js`), + plugins: [ + ...plugins, + uglify({ + output: { + ascii_only: true // escape unicode chars + } + }) + ], + external: ['@firebase/app'] + } +]; + const firestoreMemoryBuilds = [ { input: `firestore/memory/index.ts`, @@ -168,7 +218,24 @@ const firestoreMemoryBuilds = [ external }, { - input: `firestore/memory/index.ts`, + input: `firestore/memory/bundle/index.ts`, + output: [ + { + file: resolve('firestore/memory/bundle', pkg.main), + format: 'cjs', + sourcemap: true + }, + { + file: resolve('firestore/memory/bundle', pkg.module), + format: 'es', + sourcemap: true + } + ], + plugins, + external + }, + { + input: `firestore/memory/index.cdn.ts`, output: createUmdOutputConfig(`firebase-firestore.memory.js`), plugins: [...plugins, uglify()], external: ['@firebase/app'] @@ -276,6 +343,7 @@ const completeBuilds = [ export default [ ...appBuilds, ...componentBuilds, + ...firestoreBuilds, ...firestoreMemoryBuilds, ...completeBuilds ]; From 116cd82a2a2ac14c7eaf27fbc0abc42c2fe5222d Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sat, 5 Dec 2020 22:55:09 -0500 Subject: [PATCH 2/8] Fix standard node/browser builds for bundles --- packages/firebase/firestore/bundle/package.json | 2 +- packages/firebase/firestore/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/firebase/firestore/bundle/package.json b/packages/firebase/firestore/bundle/package.json index 3642099d8b2..2356dde4c48 100644 --- a/packages/firebase/firestore/bundle/package.json +++ b/packages/firebase/firestore/bundle/package.json @@ -1,7 +1,7 @@ { "name": "firebase/firestore/bundle", "description": "The bundle loading feature of the Cloud Firestore component.", - "main": "dist/index.cjs.js", + "main": "dist/index.node.cjs.js", "module": "dist/index.esm.js", "typings": "../empty-import.d.ts" } diff --git a/packages/firebase/firestore/package.json b/packages/firebase/firestore/package.json index 5cdb46bb2f7..e9d7f4bee79 100644 --- a/packages/firebase/firestore/package.json +++ b/packages/firebase/firestore/package.json @@ -1,7 +1,7 @@ { "name": "firebase/firestore", "description": "The Cloud Firestore component of the Firebase JS SDK.", - "main": "dist/index.cjs.js", + "main": "dist/index.node.cjs.js", "module": "dist/index.esm.js", "typings": "../empty-import.d.ts" } From 2c91fd1e523d9f7a776dcdebdfb220800e7b1b30 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sun, 6 Dec 2020 13:37:24 -0500 Subject: [PATCH 3/8] Make it release from remote branch. --- .github/workflows/prerelease-manual-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prerelease-manual-deploy.yml b/.github/workflows/prerelease-manual-deploy.yml index d862d045652..0063dfaf7c3 100644 --- a/.github/workflows/prerelease-manual-deploy.yml +++ b/.github/workflows/prerelease-manual-deploy.yml @@ -20,6 +20,7 @@ jobs: with: # Canary release script requires git history and tags. fetch-depth: 0 + ref: wuandy/FixActualBuildsForBundles - name: Set up Node (10) uses: actions/setup-node@v1 with: @@ -63,4 +64,3 @@ jobs: NPM_TOKEN_FIREBASE: ${{secrets.NPM_TOKEN_FIREBASE}} NPM_TOKEN_RXFIRE: ${{secrets.NPM_TOKEN_RXFIRE}} CI: true - \ No newline at end of file From 0941918733006e02209556eeb426e04fc70f5726 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sun, 6 Dec 2020 14:40:18 -0500 Subject: [PATCH 4/8] Add bundle to firebase complete build and fix missing proto for memory build. --- packages/firebase/src/index.cdn.ts | 1 + packages/firebase/src/index.node.ts | 1 + packages/firebase/src/index.rn.ts | 1 + packages/firebase/src/index.ts | 1 + packages/firestore/rollup.config.node.js | 3 +++ 5 files changed, 7 insertions(+) diff --git a/packages/firebase/src/index.cdn.ts b/packages/firebase/src/index.cdn.ts index 26e313691b2..6b0ff9733fa 100644 --- a/packages/firebase/src/index.cdn.ts +++ b/packages/firebase/src/index.cdn.ts @@ -33,6 +33,7 @@ import { name, version } from '../package.json'; import '../auth'; import '../database'; import '../firestore'; +import '../firestore/bundle'; import '../functions'; import '../messaging'; import '../storage'; diff --git a/packages/firebase/src/index.node.ts b/packages/firebase/src/index.node.ts index 129cd9c9de0..2631cefd258 100644 --- a/packages/firebase/src/index.node.ts +++ b/packages/firebase/src/index.node.ts @@ -21,6 +21,7 @@ import { name, version } from '../package.json'; import '../auth'; import '../database'; import '../firestore'; +import '../firestore/bundle'; import '../functions'; firebase.registerVersion(name, version, 'node'); diff --git a/packages/firebase/src/index.rn.ts b/packages/firebase/src/index.rn.ts index c6e3c6f11bc..2123890bf48 100644 --- a/packages/firebase/src/index.rn.ts +++ b/packages/firebase/src/index.rn.ts @@ -24,6 +24,7 @@ import '../database'; // `atob`). We should provide a RN build that works out of the box. import '../storage'; import '../firestore'; +import '../firestore/bundle'; firebase.registerVersion(name, version, 'rn'); diff --git a/packages/firebase/src/index.ts b/packages/firebase/src/index.ts index 113eef3a9fb..18d832dfc60 100644 --- a/packages/firebase/src/index.ts +++ b/packages/firebase/src/index.ts @@ -42,6 +42,7 @@ import { name, version } from '../package.json'; import '../auth'; import '../database'; import '../firestore'; +import '../firestore/bundle'; import '../functions'; import '../messaging'; import '../storage'; diff --git a/packages/firestore/rollup.config.node.js b/packages/firestore/rollup.config.node.js index 8f1f9f7a24e..f8818d51493 100644 --- a/packages/firestore/rollup.config.node.js +++ b/packages/firestore/rollup.config.node.js @@ -82,6 +82,9 @@ export default [ ...util.es2017Plugins('node'), replace({ 'process.env.FIRESTORE_PROTO_ROOT': JSON.stringify('../protos') + }), + copy({ + targets: [{ src: 'src/protos', dest: 'dist/memory' }] }) ], external: util.resolveNodeExterns, From dee1ef083b2251c8422f614c93bc83e06934befd Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sun, 6 Dec 2020 15:23:26 -0500 Subject: [PATCH 5/8] Make rollup.config.js more organized. --- .../firestore/memory/bundle/package.json | 2 +- packages/firebase/rollup.config.js | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/packages/firebase/firestore/memory/bundle/package.json b/packages/firebase/firestore/memory/bundle/package.json index 42bf3e7da7f..457d9c42c1d 100644 --- a/packages/firebase/firestore/memory/bundle/package.json +++ b/packages/firebase/firestore/memory/bundle/package.json @@ -1,6 +1,6 @@ { "name": "firebase/firestore/memory", - "description": "A memory-only build of the Cloud Firestore JS SDK.", + "description": "The bundle loading feature for the memory-only build of the Cloud Firestore JS SDK.", "main": "dist/index.node.cjs.js", "module": "dist/index.esm.js", "typings": "../../empty-import.d.ts" diff --git a/packages/firebase/rollup.config.js b/packages/firebase/rollup.config.js index 16b0655690d..4b88d5dd494 100644 --- a/packages/firebase/rollup.config.js +++ b/packages/firebase/rollup.config.js @@ -28,6 +28,12 @@ import pkg from './package.json'; import appPkg from './app/package.json'; +import firestorePkg from './firestore/package.json'; +import firestoreBundlePkg from './firestore/bundle/package.json'; + +import firestoreMemoryPkg from './firestore/memory/package.json'; +import firestoreMemoryBundlePkg from './firestore/memory/bundle/package.json'; + function createUmdOutputConfig(output) { return { file: output, @@ -154,12 +160,12 @@ const firestoreBuilds = [ input: `firestore/index.ts`, output: [ { - file: resolve('firestore', pkg.main), + file: resolve('firestore', firestorePkg.main), format: 'cjs', sourcemap: true }, { - file: resolve('firestore', pkg.module), + file: resolve('firestore', firestorePkg.module), format: 'es', sourcemap: true } @@ -171,12 +177,12 @@ const firestoreBuilds = [ input: `firestore/bundle/index.ts`, output: [ { - file: resolve('firestore/bundle', pkg.main), + file: resolve('firestore/bundle', firestoreBundlePkg.main), format: 'cjs', sourcemap: true }, { - file: resolve('firestore/bundle', pkg.module), + file: resolve('firestore/bundle', firestoreBundlePkg.module), format: 'es', sourcemap: true } @@ -204,12 +210,12 @@ const firestoreMemoryBuilds = [ input: `firestore/memory/index.ts`, output: [ { - file: resolve('firestore/memory', pkg.main), + file: resolve('firestore/memory', firestoreMemoryPkg.main), format: 'cjs', sourcemap: true }, { - file: resolve('firestore/memory', pkg.module), + file: resolve('firestore/memory', firestoreMemoryPkg.module), format: 'es', sourcemap: true } @@ -221,12 +227,15 @@ const firestoreMemoryBuilds = [ input: `firestore/memory/bundle/index.ts`, output: [ { - file: resolve('firestore/memory/bundle', pkg.main), + file: resolve('firestore/memory/bundle', firestoreMemoryBundlePkg.main), format: 'cjs', sourcemap: true }, { - file: resolve('firestore/memory/bundle', pkg.module), + file: resolve( + 'firestore/memory/bundle', + firestoreMemoryBundlePkg.module + ), format: 'es', sourcemap: true } From f9e8bf51b5bca8aaebe1dcafa8f3d1f80e7b3b44 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sun, 6 Dec 2020 21:09:02 -0500 Subject: [PATCH 6/8] Revert "Make it release from remote branch." This reverts commit 2c91fd1e523d9f7a776dcdebdfb220800e7b1b30. --- .github/workflows/prerelease-manual-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prerelease-manual-deploy.yml b/.github/workflows/prerelease-manual-deploy.yml index 0063dfaf7c3..d862d045652 100644 --- a/.github/workflows/prerelease-manual-deploy.yml +++ b/.github/workflows/prerelease-manual-deploy.yml @@ -20,7 +20,6 @@ jobs: with: # Canary release script requires git history and tags. fetch-depth: 0 - ref: wuandy/FixActualBuildsForBundles - name: Set up Node (10) uses: actions/setup-node@v1 with: @@ -64,3 +63,4 @@ jobs: NPM_TOKEN_FIREBASE: ${{secrets.NPM_TOKEN_FIREBASE}} NPM_TOKEN_RXFIRE: ${{secrets.NPM_TOKEN_RXFIRE}} CI: true + \ No newline at end of file From 74e0a1628ed61bc9c8ae64e1086f96121c8fa1cd Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Sun, 6 Dec 2020 21:13:26 -0500 Subject: [PATCH 7/8] 2017 -> 2020 --- packages/firebase/firestore/bundle/index.ts | 2 +- packages/firebase/firestore/index.cdn.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/firebase/firestore/bundle/index.ts b/packages/firebase/firestore/bundle/index.ts index dd82682df99..d50853e4105 100644 --- a/packages/firebase/firestore/bundle/index.ts +++ b/packages/firebase/firestore/bundle/index.ts @@ -1,6 +1,6 @@ /** * @license - * Copyright 2017 Google LLC + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/packages/firebase/firestore/index.cdn.ts b/packages/firebase/firestore/index.cdn.ts index cafaed0902e..f8465098c70 100644 --- a/packages/firebase/firestore/index.cdn.ts +++ b/packages/firebase/firestore/index.cdn.ts @@ -1,6 +1,6 @@ /** * @license - * Copyright 2017 Google LLC + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From ca061e9bc5c4bbd8c7d76f1c18466aa53ddbd949 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Mon, 7 Dec 2020 11:27:53 -0500 Subject: [PATCH 8/8] Update comment. --- packages/firebase/rollup.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/firebase/rollup.config.js b/packages/firebase/rollup.config.js index 4b88d5dd494..55acf8f6c7d 100644 --- a/packages/firebase/rollup.config.js +++ b/packages/firebase/rollup.config.js @@ -117,6 +117,8 @@ const appBuilds = [ const componentBuilds = pkg.components // The "app" component is treated differently because it doesn't depend on itself. + // The "firestore" component is treated differently because it contains multiple + // sub components for different builds. .filter(component => component !== 'app' && component !== 'firestore') .map(component => { const pkg = require(`./${component}/package.json`);