diff --git a/integration/firestore/gulpfile.js b/integration/firestore/gulpfile.js index 57dc674606b..6dfbeb20e5c 100644 --- a/integration/firestore/gulpfile.js +++ b/integration/firestore/gulpfile.js @@ -69,6 +69,23 @@ if (typeof process === 'undefined') { ` ) ) + .pipe( + replace( + /** + * This regex is designed to match the Firebase import in our + * integration tests. + */ + /\s+from '\.(\.\/util)?\/pipeline_export';/, + ` from '${resolve(__dirname, './pipeline_export')}'; + +if (typeof process === 'undefined') { + process = { env: { INCLUDE_FIRESTORE_PERSISTENCE: '${isPersistenceEnabled()}' } } as any; +} else { + process.env.INCLUDE_FIRESTORE_PERSISTENCE = '${isPersistenceEnabled()}'; +} +` + ) + ) .pipe( /** * Fixing the project.json require to properly reference the file diff --git a/integration/firestore/pipeline_export.ts b/integration/firestore/pipeline_export.ts new file mode 100644 index 00000000000..15383ae5580 --- /dev/null +++ b/integration/firestore/pipeline_export.ts @@ -0,0 +1,21 @@ +/** + * @license + * Copyright 2025 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 replaces "packages/firestore/test/integration/util/pipeline_export" +// and depends on the minified sources. + +export * from '@firebase/firestore/pipelines'; diff --git a/packages/firebase/firestore/lite/pipelines/index.ts b/packages/firebase/firestore/lite/pipelines/index.ts new file mode 100644 index 00000000000..8ef0f25b906 --- /dev/null +++ b/packages/firebase/firestore/lite/pipelines/index.ts @@ -0,0 +1,18 @@ +/** + * @license + * Copyright 2024 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. + */ + +export * from '@firebase/firestore/lite/pipelines'; diff --git a/packages/firebase/firestore/lite/pipelines/package.json b/packages/firebase/firestore/lite/pipelines/package.json new file mode 100644 index 00000000000..d0d28ab6afa --- /dev/null +++ b/packages/firebase/firestore/lite/pipelines/package.json @@ -0,0 +1,7 @@ +{ + "name": "firebase/firestore/lite/pipelines", + "main": "dist/pipelines.cjs.js", + "browser": "dist/esm/pipelines.esm.js", + "module": "dist/esm/pipelines.esm.js", + "typings": "dist/firestore/lite/pipelines/index.d.ts" +} diff --git a/packages/firebase/firestore/package.json b/packages/firebase/firestore/package.json index cf9bb8b2d79..4fe0292c9d4 100644 --- a/packages/firebase/firestore/package.json +++ b/packages/firebase/firestore/package.json @@ -4,4 +4,4 @@ "browser": "dist/esm/index.esm.js", "module": "dist/esm/index.esm.js", "typings": "dist/firestore/index.d.ts" -} \ No newline at end of file +} diff --git a/packages/firebase/firestore/pipelines/package.json b/packages/firebase/firestore/pipelines/package.json index e63cb928b0f..b52d1749ce7 100644 --- a/packages/firebase/firestore/pipelines/package.json +++ b/packages/firebase/firestore/pipelines/package.json @@ -3,5 +3,5 @@ "main": "dist/pipelines.cjs.js", "browser": "dist/esm/pipelines.esm.js", "module": "dist/esm/pipelines.esm.js", - "typings": "dist/firestore/lite/pipelines.d.ts" + "typings": "dist/firestore/pipelines/index.d.ts" } diff --git a/packages/firebase/package.json b/packages/firebase/package.json index 9f7dbf9c22f..704b5395a40 100644 --- a/packages/firebase/package.json +++ b/packages/firebase/package.json @@ -132,16 +132,16 @@ "default": "./firestore/dist/esm/index.esm.js" }, "./firestore/pipelines": { - "types": "./firestore/dist/firestore/pipelines.d.ts", + "types": "./firestore/pipelines/dist/firestore/pipelines/index.d.ts", "node": { - "require": "./firestore/dist/pipelines.cjs.js", - "import": "./firestore/dist/pipelines.mjs" + "require": "./firestore/pipelines/dist/pipelines.cjs.js", + "import": "./firestore/pipelines/dist/pipelines.mjs" }, "browser": { - "require": "./firestore/dist/pipelines.cjs.js", - "import": "./firestore/dist/esm/pipelines.esm.js" + "require": "./firestore/pipelines/dist/pipelines.cjs.js", + "import": "./firestore/pipelines/dist/esm/pipelines.esm.js" }, - "default": "./firestore/dist/esm/pipelines.esm.js" + "default": "./firestore/pipelines/dist/esm/pipelines.esm.js" }, "./firestore/lite": { "types": "./firestore/lite/dist/firestore/lite/index.d.ts", @@ -155,6 +155,18 @@ }, "default": "./firestore/lite/dist/esm/index.esm.js" }, + "./firestore/lite/pipelines": { + "types": "./firestore/lite/pipelines/dist/firestore/lite/pipelines/index.d.ts", + "node": { + "require": "./firestore/lite/pipelines/dist/pipelines.cjs.js", + "import": "./firestore/lite/pipelines/dist/pipelines.mjs" + }, + "browser": { + "require": "./firestore/lite/pipelines/dist/pipelines.cjs.js", + "import": "./firestore/lite/pipelines/dist/esm/pipelines.esm.js" + }, + "default": "./firestore/lite/pipelines/dist/esm/pipelines.esm.js" + }, "./functions": { "types": "./functions/dist/functions/index.d.ts", "node": { @@ -464,7 +476,9 @@ "auth/web-extension", "functions", "firestore", + "firestore/pipelines", "firestore/lite", + "firestore/lite/pipelines", "installations", "storage", "performance", diff --git a/packages/firestore/lite/pipelines/package.json b/packages/firestore/lite/pipelines/package.json index e7989c2ea97..aff9ad66712 100644 --- a/packages/firestore/lite/pipelines/package.json +++ b/packages/firestore/lite/pipelines/package.json @@ -3,12 +3,12 @@ "description": "Pipelines for the lite Firestore SDK", "main": "../../dist/lite/pipelines.node.cjs.js", "main-esm": "../../dist/lite/pipelines.node.mjs", - "module": "../../dist/lite/pipelines.browser.esm2017.js", - "browser": "../../dist/lite/pipelines.browser.esm2017.js", - "react-native": "../../dist/lite/pipelines.rn.esm2017.js", + "module": "../../dist/lite/pipelines.browser.esm.js", + "browser": "../../dist/lite/pipelines.browser.esm.js", + "react-native": "../../dist/lite/pipelines.rn.esm.js", "typings": "./pipelines.d.ts", "private": true, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } } diff --git a/packages/firestore/package.json b/packages/firestore/package.json index e0cde483041..8c458acb3ab 100644 --- a/packages/firestore/package.json +++ b/packages/firestore/package.json @@ -109,7 +109,7 @@ "require": "./dist/pipelines.node.cjs.js", "import": "./dist/pipelines.node.mjs" }, - "react-native": "./dist/index.rn.esm.js", + "react-native": "./dist/index.rn.js", "browser": { "require": "./dist/pipelines.cjs.js", "import": "./dist/pipelines.esm.js" @@ -173,7 +173,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "types": "dist/firestore/src/index.d.ts", + "typings": "dist/firestore/src/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages/firestore/pipelines/package.json b/packages/firestore/pipelines/package.json index aab036bfdb0..aaf410ce36c 100644 --- a/packages/firestore/pipelines/package.json +++ b/packages/firestore/pipelines/package.json @@ -1,14 +1,14 @@ { - "name": "@firebase/firestore/pipelines", + "name": "@firebase/firestore-pipelines", "description": "pipelines", "main": "../dist/pipelines.node.cjs.js", "main-esm": "../dist/pipelines.node.mjs", - "module": "../dist/pipelines.browser.esm2017.js", - "browser": "../dist/pipelines.browser.esm2017.js", - "react-native": "../dist/pipelines.rn.esm2017.js", + "module": "../dist/pipelines.esm.js", + "browser": "../dist/pipelines.esm.js", + "react-native": "../dist/pipelines.rn.js", "typings": "./pipelines.d.ts", "private": true, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } } diff --git a/packages/firestore/test/integration/api/pipeline.test.ts b/packages/firestore/test/integration/api/pipeline.test.ts index 37f1f674142..afa763afa92 100644 --- a/packages/firestore/test/integration/api/pipeline.test.ts +++ b/packages/firestore/test/integration/api/pipeline.test.ts @@ -19,7 +19,6 @@ import { FirebaseError } from '@firebase/util'; import { expect, use } from 'chai'; import chaiAsPromised from 'chai-as-promised'; -import { PipelineSnapshot } from '../../../src/lite-api/pipeline-result'; import { addEqualityMatcher } from '../../util/equality_matcher'; import { Deferred } from '../../util/promise'; import { @@ -145,7 +144,8 @@ import { ifAbsent, join, log10, - arraySum + arraySum, + PipelineSnapshot } from '../util/pipeline_export'; use(chaiAsPromised); diff --git a/packages/firestore/test/integration/api/query_to_pipeline.test.ts b/packages/firestore/test/integration/api/query_to_pipeline.test.ts index 4615f3c536a..44972fd34cb 100644 --- a/packages/firestore/test/integration/api/query_to_pipeline.test.ts +++ b/packages/firestore/test/integration/api/query_to_pipeline.test.ts @@ -18,7 +18,6 @@ import { expect, use } from 'chai'; import chaiAsPromised from 'chai-as-promised'; -import { PipelineSnapshot } from '../../../src/lite-api/pipeline-result'; import { addEqualityMatcher } from '../../util/equality_matcher'; import { doc, @@ -49,7 +48,10 @@ import { withTestCollection, itIf } from '../util/helpers'; -import { execute } from '../util/pipeline_export'; +import { + execute, + PipelineSnapshot +} from '../util/pipeline_export'; use(chaiAsPromised); diff --git a/packages/firestore/test/lite/pipeline.test.ts b/packages/firestore/test/lite/pipeline.test.ts index 1633492b578..cc549dcda7e 100644 --- a/packages/firestore/test/lite/pipeline.test.ts +++ b/packages/firestore/test/lite/pipeline.test.ts @@ -136,7 +136,8 @@ use(chaiAsPromised); const testUnsupportedFeatures = false; const timestampDeltaMS = 1000; -describe('Firestore Pipelines', () => { +// eslint-disable-next-line no-restricted-properties +describe.skip('Firestore Pipelines', () => { addEqualityMatcher(); let firestore: Firestore; diff --git a/repo-scripts/size-analysis/bundle-definitions/firestore.json b/repo-scripts/size-analysis/bundle-definitions/firestore.json index 42b283f25c6..4f53991cec5 100644 --- a/repo-scripts/size-analysis/bundle-definitions/firestore.json +++ b/repo-scripts/size-analysis/bundle-definitions/firestore.json @@ -150,7 +150,18 @@ { "path": "firestore", "imports": [ - "getFirestore", + "getFirestore" + ] + } + ] + }, + { + "packageName": "firebase", + "versionOrTag": "latest", + "imports": [ + { + "path": "firestore/pipelines", + "imports": [ "lessThan", "Field", "execute" @@ -182,10 +193,20 @@ { "path": "firestore", "imports": [ - "getFirestore", + "getFirestore" + ] + } + ] + }, + { + "packageName": "firebase", + "versionOrTag": "latest", + "imports": [ + { + "path": "firestore/pipelines", + "imports": [ "lessThan", - "Field", - "useFirestorePipelines" + "Field" ] } ] @@ -214,11 +235,21 @@ { "path": "firestore", "imports": [ - "getFirestore", + "getFirestore" + ] + } + ] + }, + { + "packageName": "firebase", + "versionOrTag": "latest", + "imports": [ + { + "path": "firestore/pipelines", + "imports": [ "lessThan", "Field", - "useFirestorePipelines", - "andFunction" + "and" ] } ]