Skip to content

Commit 00644dc

Browse files
authored
Merge branch 'master' into jd-webpack-v5-upgrade-1
2 parents 2930ebf + a6d516d commit 00644dc

File tree

59 files changed

+794
-296
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+794
-296
lines changed

.changeset/eighty-tomatoes-trade.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@firebase/firestore": patch
3+
"firebase": patch
4+
---
5+
6+
Fix an issue where localCache is not copied as part of Settings.

.changeset/sour-glasses-count.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@firebase/firestore': patch
3+
'firebase': patch
4+
---
5+
6+
Fix source maps that incorrectly referenced yet another minified and mangled bundle, rendering them useless. The fixed bundles' source maps are: index.esm2017.js, index.cjs.js, index.node.mjs, and index.browser.esm2017.js (lite sdk only).

.github/workflows/test-all.yml

Lines changed: 137 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ on:
77
env:
88
# make chromedriver detect installed Chrome version and download the corresponding driver
99
DETECT_CHROMEDRIVER_VERSION: true
10+
artifactRetentionDays: 2
1011

1112
jobs:
12-
test:
13-
name: Node.js and Browser (Chrome) Tests
13+
build:
14+
name: Build the SDK
1415
runs-on: ubuntu-latest
15-
1616
steps:
17-
# install Chrome first, so the correct version of webdriver can be installed by chromedriver when setting up the repo
17+
# Install Chrome so the correct version of webdriver can be installed by chromedriver when
18+
# setting up the repo. This must be done to build and execute Auth properly.
1819
- name: install Chrome stable
1920
# Install Chrome version 110.0.5481.177-1 as some Auth tests start to fail on version 111.
2021
# Temporary: Auth team will explore what's going wrong with the auth tests.
@@ -36,11 +37,142 @@ jobs:
3637
yarn
3738
- name: yarn build
3839
run: yarn build
40+
- name: Archive build
41+
if: ${{ !cancelled() }}
42+
run: |
43+
tar -cf build.tar .
44+
gzip build.tar
45+
- name: Upload build archive
46+
if: ${{ !cancelled() }}
47+
uses: actions/upload-artifact@v3
48+
with:
49+
name: build.tar.gz
50+
path: build.tar.gz
51+
retention-days: ${{ env.artifactRetentionDays }}
52+
53+
# Auth and Firestore are built and executed in their own jobs in an attempt to reduce flakiness.
54+
test-the-rest:
55+
name: (bulk) Node.js and Browser (Chrome) Tests
56+
needs: build
57+
runs-on: ubuntu-latest
58+
steps:
59+
# install Chrome first, so the correct version of webdriver can be installed by chromedriver when setting up the repo
60+
- name: install Chrome stable
61+
run: |
62+
sudo apt-get update
63+
sudo apt-get install google-chrome-stable
64+
- name: Download build archive
65+
uses: actions/download-artifact@v3
66+
with:
67+
name: build.tar.gz
68+
- name: Unzip build artifact
69+
run: tar xf build.tar.gz
70+
- name: Set up Node (16)
71+
uses: actions/setup-node@v3
72+
with:
73+
node-version: 16.x
74+
- name: Bump Node memory limit
75+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
76+
- name: Test setup and yarn install
77+
run: |
78+
cp config/ci.config.json config/project.json
79+
yarn
80+
- name: Set start timestamp env var
81+
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
82+
- name: Run unit tests
83+
# Ignore auth and firestore since they're handled in their own separate jobs.
84+
run: |
85+
xvfb-run yarn lerna run --ignore '{firebase-messaging-integration-test,@firebase/auth*,@firebase/firestore*,firebase-firestore-integration-test}' --concurrency 4 test:ci
86+
node scripts/print_test_logs.js
87+
env:
88+
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
89+
- name: Generate coverage file
90+
run: yarn ci:coverage
91+
- name: Run coverage
92+
uses: coverallsapp/github-action@master
93+
with:
94+
github-token: ${{ secrets.GITHUB_TOKEN }}
95+
path-to-lcov: ./lcov-all.info
96+
continue-on-error: true
97+
98+
test-auth:
99+
name: (Auth) Node.js and Browser (Chrome) Tests
100+
needs: build
101+
runs-on: ubuntu-latest
102+
steps:
103+
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo
104+
- name: install Chrome stable
105+
# Install Chrome version 110.0.5481.177-1 as some Auth tests start to fail on version 111.
106+
# Temporary: Auth team will explore what's going wrong with the auth tests.
107+
run: |
108+
sudo apt-get update
109+
sudo apt-get install wget
110+
sudo wget http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_110.0.5481.177-1_amd64.deb
111+
sudo apt-get install -f ./google-chrome-stable_110.0.5481.177-1_amd64.deb --allow-downgrades
112+
- name: Download build archive
113+
uses: actions/download-artifact@v3
114+
with:
115+
name: build.tar.gz
116+
- name: Unzip build artifact
117+
run: tar xf build.tar.gz
118+
- name: Set up Node (16)
119+
uses: actions/setup-node@v3
120+
with:
121+
node-version: 16.x
122+
- name: Bump Node memory limit
123+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
124+
- name: Test setup and yarn install
125+
run: |
126+
cp config/ci.config.json config/project.json
127+
yarn
128+
- name: Set start timestamp env var
129+
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
130+
- name: Run unit tests
131+
run: |
132+
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '@firebase/auth*'
133+
node scripts/print_test_logs.js
134+
env:
135+
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
136+
- name: Generate coverage file
137+
run: yarn ci:coverage
138+
- name: Run coverage
139+
uses: coverallsapp/github-action@master
140+
with:
141+
github-token: ${{ secrets.GITHUB_TOKEN }}
142+
path-to-lcov: ./lcov-all.info
143+
continue-on-error: true
144+
145+
test-firestore:
146+
name: (Firestore) Node.js and Browser (Chrome) Tests
147+
needs: build
148+
runs-on: ubuntu-latest
149+
steps:
150+
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo
151+
- name: install Chrome stable
152+
run: |
153+
sudo apt-get update
154+
sudo apt-get install google-chrome-stable
155+
- name: Download build archive
156+
uses: actions/download-artifact@v3
157+
with:
158+
name: build.tar.gz
159+
- name: Unzip build artifact
160+
run: tar xf build.tar.gz
161+
- name: Set up Node (16)
162+
uses: actions/setup-node@v3
163+
with:
164+
node-version: 16.x
165+
- name: Bump Node memory limit
166+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
167+
- name: Test setup and yarn install
168+
run: |
169+
cp config/ci.config.json config/project.json
170+
yarn
39171
- name: Set start timestamp env var
40172
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
41173
- name: Run unit tests
42174
run: |
43-
xvfb-run yarn test:ci
175+
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '{@firebase/firestore*,firebase-firestore-integration-test}'
44176
node scripts/print_test_logs.js
45177
env:
46178
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}

common/api-review/firestore-lite.api.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,21 @@ export function getFirestore(): Firestore;
218218
// @public
219219
export function getFirestore(app: FirebaseApp): Firestore;
220220

221+
// @beta
222+
export function getFirestore(databaseId: string): Firestore;
223+
224+
// @beta
225+
export function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
226+
221227
// @public
222228
export function increment(n: number): FieldValue;
223229

224230
// @public
225231
export function initializeFirestore(app: FirebaseApp, settings: Settings): Firestore;
226232

233+
// @beta
234+
export function initializeFirestore(app: FirebaseApp, settings: Settings, databaseId?: string): Firestore;
235+
227236
// @public
228237
export function limit(limit: number): QueryLimitConstraint;
229238

common/api-review/firestore.api.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,15 @@ export function getDocsFromServer<T>(query: Query<T>): Promise<QuerySnapshot<T>>
277277
// @public
278278
export function getFirestore(app: FirebaseApp): Firestore;
279279

280+
// @beta
281+
export function getFirestore(databaseId: string): Firestore;
282+
280283
// @public
281284
export function getFirestore(): Firestore;
282285

286+
// @beta
287+
export function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
288+
283289
// @public
284290
export function increment(n: number): FieldValue;
285291

docs-devsite/firestore_.firestoresettings.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export declare interface FirestoreSettings
2828
| [experimentalLongPollingOptions](./firestore_.firestoresettings.md#firestoresettingsexperimentallongpollingoptions) | [ExperimentalLongPollingOptions](./firestore_.experimentallongpollingoptions.md#experimentallongpollingoptions_interface) | Options that configure the SDKs underlying network transport (WebChannel) when long-polling is used.<!-- -->These options are only used if <code>experimentalForceLongPolling</code> is true or if <code>experimentalAutoDetectLongPolling</code> is true and the auto-detection determined that long-polling was needed. Otherwise, these options have no effect. |
2929
| [host](./firestore_.firestoresettings.md#firestoresettingshost) | string | The hostname to connect to. |
3030
| [ignoreUndefinedProperties](./firestore_.firestoresettings.md#firestoresettingsignoreundefinedproperties) | boolean | Whether to skip nested properties that are set to <code>undefined</code> during object serialization. If set to <code>true</code>, these properties are skipped and not written to Firestore. If set to <code>false</code> or omitted, the SDK throws an exception when it encounters properties of type <code>undefined</code>. |
31-
| [localCache](./firestore_.firestoresettings.md#firestoresettingslocalcache) | [FirestoreLocalCache](./firestore_.md#firestorelocalcache) | Specifies the cache used by the SDK. Available options are <code>MemoryLocalCache</code> and <code>IndexedDbLocalCache</code>, each with different configuration options.<!-- -->When unspecified, <code>MemoryLocalCache</code> will be used by default.<!-- -->NOTE: setting this field and <code>cacheSizeBytes</code> at the same time will throw exception during SDK initialization. Instead, using the configuration in the <code>FirestoreLocalCache</code> object to specify the cache size. |
31+
| [localCache](./firestore_.firestoresettings.md#firestoresettingslocalcache) | [FirestoreLocalCache](./firestore_.md#firestorelocalcache) | Specifies the cache used by the SDK. Available options are <code>MemoryLocalCache</code> and <code>PersistentLocalCache</code>, each with different configuration options.<!-- -->When unspecified, <code>MemoryLocalCache</code> will be used by default.<!-- -->NOTE: setting this field and <code>cacheSizeBytes</code> at the same time will throw exception during SDK initialization. Instead, using the configuration in the <code>FirestoreLocalCache</code> object to specify the cache size. |
3232
| [ssl](./firestore_.firestoresettings.md#firestoresettingsssl) | boolean | Whether to use SSL when connecting. |
3333

3434
## FirestoreSettings.cacheSizeBytes
@@ -107,7 +107,7 @@ ignoreUndefinedProperties?: boolean;
107107

108108
## FirestoreSettings.localCache
109109

110-
Specifies the cache used by the SDK. Available options are `MemoryLocalCache` and `IndexedDbLocalCache`<!-- -->, each with different configuration options.
110+
Specifies the cache used by the SDK. Available options are `MemoryLocalCache` and `PersistentLocalCache`<!-- -->, each with different configuration options.
111111

112112
When unspecified, `MemoryLocalCache` will be used by default.
113113

0 commit comments

Comments
 (0)