@firebase/firestore 3.3.1 → 3.4.0-2021111174650
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/firestore/src/api/credentials.d.ts +64 -30
- package/dist/firestore/src/api/database.d.ts +2 -1
- package/dist/firestore/src/api.d.ts +2 -1
- package/dist/firestore/src/core/component_provider.d.ts +2 -1
- package/dist/firestore/src/core/firestore_client.d.ts +4 -3
- package/dist/firestore/src/lite-api/components.d.ts +3 -1
- package/dist/firestore/src/lite-api/database.d.ts +4 -2
- package/dist/firestore/src/platform/browser/webchannel_connection.d.ts +1 -1
- package/dist/firestore/src/platform/node/grpc_connection.d.ts +3 -3
- package/dist/firestore/src/remote/connection.d.ts +3 -3
- package/dist/firestore/src/remote/datastore.d.ts +2 -1
- package/dist/firestore/src/remote/persistent_stream.d.ts +9 -7
- package/dist/firestore/src/remote/rest_connection.d.ts +4 -4
- package/dist/firestore/test/integration/remote/stream.test.d.ts +2 -2
- package/dist/firestore/test/integration/util/internal_helpers.d.ts +5 -5
- package/dist/firestore/test/unit/remote/rest_connection.test.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm2017.js +3398 -3344
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +3673 -3624
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +188 -95
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +187 -95
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.rn.js +3391 -3337
- package/dist/index.rn.js.map +1 -1
- package/dist/internal.d.ts +34 -20
- package/dist/lite/firestore/src/api/credentials.d.ts +64 -30
- package/dist/lite/firestore/src/api/database.d.ts +2 -1
- package/dist/lite/firestore/src/api.d.ts +2 -1
- package/dist/lite/firestore/src/core/component_provider.d.ts +2 -1
- package/dist/lite/firestore/src/core/firestore_client.d.ts +4 -3
- package/dist/lite/firestore/src/lite-api/components.d.ts +3 -1
- package/dist/lite/firestore/src/lite-api/database.d.ts +4 -2
- package/dist/lite/firestore/src/platform/browser/webchannel_connection.d.ts +1 -1
- package/dist/lite/firestore/src/platform/node/grpc_connection.d.ts +3 -3
- package/dist/lite/firestore/src/remote/connection.d.ts +3 -3
- package/dist/lite/firestore/src/remote/datastore.d.ts +2 -1
- package/dist/lite/firestore/src/remote/persistent_stream.d.ts +9 -7
- package/dist/lite/firestore/src/remote/rest_connection.d.ts +4 -4
- package/dist/lite/firestore/test/integration/remote/stream.test.d.ts +2 -2
- package/dist/lite/firestore/test/integration/util/internal_helpers.d.ts +5 -5
- package/dist/lite/firestore/test/unit/remote/rest_connection.test.d.ts +1 -1
- package/dist/lite/index.browser.esm2017.js +1378 -1364
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +933 -924
- package/dist/lite/index.browser.esm5.js.map +1 -1
- package/dist/lite/index.node.cjs.js +95 -60
- package/dist/lite/index.node.cjs.js.map +1 -1
- package/dist/lite/index.node.mjs +95 -60
- package/dist/lite/index.node.mjs.map +1 -1
- package/dist/lite/index.rn.esm2017.js +924 -910
- package/dist/lite/index.rn.esm2017.js.map +1 -1
- package/dist/lite/internal.d.ts +14 -13
- package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +150 -149
- package/dist/lite/packages/firestore/src/api/credentials.d.ts +64 -30
- package/dist/lite/packages/firestore/src/api/database.d.ts +2 -1
- package/dist/lite/packages/firestore/src/api.d.ts +2 -1
- package/dist/lite/packages/firestore/src/core/component_provider.d.ts +2 -1
- package/dist/lite/packages/firestore/src/core/firestore_client.d.ts +4 -3
- package/dist/lite/packages/firestore/src/lite-api/components.d.ts +3 -1
- package/dist/lite/packages/firestore/src/lite-api/database.d.ts +4 -2
- package/dist/lite/packages/firestore/src/platform/browser/webchannel_connection.d.ts +1 -1
- package/dist/lite/packages/firestore/src/platform/node/grpc_connection.d.ts +3 -3
- package/dist/lite/packages/firestore/src/remote/connection.d.ts +3 -3
- package/dist/lite/packages/firestore/src/remote/datastore.d.ts +2 -1
- package/dist/lite/packages/firestore/src/remote/persistent_stream.d.ts +9 -7
- package/dist/lite/packages/firestore/src/remote/rest_connection.d.ts +4 -4
- package/dist/lite/packages/firestore/test/integration/remote/stream.test.d.ts +2 -2
- package/dist/lite/packages/firestore/test/integration/util/internal_helpers.d.ts +5 -5
- package/dist/lite/packages/firestore/test/unit/remote/rest_connection.test.d.ts +1 -1
- package/dist/lite/private.d.ts +14 -13
- package/dist/packages/firestore/dist/index.esm2017.d.ts +211 -195
- package/dist/packages/firestore/src/api/credentials.d.ts +64 -30
- package/dist/packages/firestore/src/api/database.d.ts +2 -1
- package/dist/packages/firestore/src/api.d.ts +2 -1
- package/dist/packages/firestore/src/core/component_provider.d.ts +2 -1
- package/dist/packages/firestore/src/core/firestore_client.d.ts +4 -3
- package/dist/packages/firestore/src/lite-api/components.d.ts +3 -1
- package/dist/packages/firestore/src/lite-api/database.d.ts +4 -2
- package/dist/packages/firestore/src/platform/browser/webchannel_connection.d.ts +1 -1
- package/dist/packages/firestore/src/platform/node/grpc_connection.d.ts +3 -3
- package/dist/packages/firestore/src/remote/connection.d.ts +3 -3
- package/dist/packages/firestore/src/remote/datastore.d.ts +2 -1
- package/dist/packages/firestore/src/remote/persistent_stream.d.ts +9 -7
- package/dist/packages/firestore/src/remote/rest_connection.d.ts +4 -4
- package/dist/packages/firestore/test/integration/remote/stream.test.d.ts +2 -2
- package/dist/packages/firestore/test/integration/util/internal_helpers.d.ts +5 -5
- package/dist/packages/firestore/test/unit/remote/rest_connection.test.d.ts +1 -1
- package/dist/private.d.ts +24 -19
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @firebase/firestore
|
|
2
2
|
|
|
3
|
+
## 3.4.0-2021111174650
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`086df7c7e`](https://github.com/firebase/firebase-js-sdk/commit/086df7c7e0299cedd9f3cff9080f46ca25cab7cd) [#5634](https://github.com/firebase/firebase-js-sdk/pull/5634) - AppCheck integration for Firestore
|
|
8
|
+
|
|
3
9
|
## 3.3.1
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
import { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';
|
|
17
18
|
import { FirebaseAuthInternalName } from '@firebase/auth-interop-types';
|
|
18
19
|
import { Provider } from '@firebase/component';
|
|
19
20
|
import { User } from '../auth/user';
|
|
@@ -26,30 +27,27 @@ export interface FirstPartyCredentialsSettings {
|
|
|
26
27
|
}
|
|
27
28
|
export interface ProviderCredentialsSettings {
|
|
28
29
|
['type']: 'provider';
|
|
29
|
-
['client']: CredentialsProvider
|
|
30
|
+
['client']: CredentialsProvider<User>;
|
|
30
31
|
}
|
|
31
32
|
/** Settings for private credentials */
|
|
32
33
|
export declare type CredentialsSettings = FirstPartyCredentialsSettings | ProviderCredentialsSettings;
|
|
33
|
-
export declare type TokenType = 'OAuth' | 'FirstParty';
|
|
34
|
+
export declare type TokenType = 'OAuth' | 'FirstParty' | 'AppCheck';
|
|
34
35
|
export interface Token {
|
|
35
36
|
/** Type of token. */
|
|
36
37
|
type: TokenType;
|
|
37
38
|
/**
|
|
38
39
|
* The user with which the token is associated (used for persisting user
|
|
39
40
|
* state on disk, etc.).
|
|
41
|
+
* This will be null for Tokens of the type 'AppCheck'.
|
|
40
42
|
*/
|
|
41
|
-
user
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
[header: string]: string;
|
|
45
|
-
};
|
|
43
|
+
user?: User;
|
|
44
|
+
/** Header values to set for this token */
|
|
45
|
+
headers: Map<string, string>;
|
|
46
46
|
}
|
|
47
47
|
export declare class OAuthToken implements Token {
|
|
48
48
|
user: User;
|
|
49
49
|
type: TokenType;
|
|
50
|
-
|
|
51
|
-
[header: string]: string;
|
|
52
|
-
};
|
|
50
|
+
headers: Map<any, any>;
|
|
53
51
|
constructor(value: string, user: User);
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
@@ -57,12 +55,12 @@ export declare class OAuthToken implements Token {
|
|
|
57
55
|
* token and may need to invalidate other state if the current user has also
|
|
58
56
|
* changed.
|
|
59
57
|
*/
|
|
60
|
-
export declare type CredentialChangeListener = (
|
|
58
|
+
export declare type CredentialChangeListener<T> = (credential: T) => Promise<void>;
|
|
61
59
|
/**
|
|
62
60
|
* Provides methods for getting the uid and token for the current user and
|
|
63
61
|
* listening for changes.
|
|
64
62
|
*/
|
|
65
|
-
export interface CredentialsProvider {
|
|
63
|
+
export interface CredentialsProvider<T> {
|
|
66
64
|
/**
|
|
67
65
|
* Starts the credentials provider and specifies a listener to be notified of
|
|
68
66
|
* credential changes (sign-in / sign-out, token changes). It is immediately
|
|
@@ -70,7 +68,7 @@ export interface CredentialsProvider {
|
|
|
70
68
|
*
|
|
71
69
|
* The change listener is invoked on the provided AsyncQueue.
|
|
72
70
|
*/
|
|
73
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
71
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<T>): void;
|
|
74
72
|
/** Requests a token for the current user. */
|
|
75
73
|
getToken(): Promise<Token | null>;
|
|
76
74
|
/**
|
|
@@ -84,17 +82,17 @@ export interface CredentialsProvider {
|
|
|
84
82
|
* A CredentialsProvider that always yields an empty token.
|
|
85
83
|
* @internal
|
|
86
84
|
*/
|
|
87
|
-
export declare class
|
|
85
|
+
export declare class EmptyAuthCredentialsProvider implements CredentialsProvider<User> {
|
|
88
86
|
getToken(): Promise<Token | null>;
|
|
89
87
|
invalidateToken(): void;
|
|
90
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
88
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
|
|
91
89
|
shutdown(): void;
|
|
92
90
|
}
|
|
93
91
|
/**
|
|
94
92
|
* A CredentialsProvider that always returns a constant token. Used for
|
|
95
93
|
* emulator token mocking.
|
|
96
94
|
*/
|
|
97
|
-
export declare class
|
|
95
|
+
export declare class EmulatorAuthCredentialsProvider implements CredentialsProvider<User> {
|
|
98
96
|
private token;
|
|
99
97
|
constructor(token: Token);
|
|
100
98
|
/**
|
|
@@ -105,19 +103,19 @@ export declare class EmulatorCredentialsProvider implements CredentialsProvider
|
|
|
105
103
|
private changeListener;
|
|
106
104
|
getToken(): Promise<Token | null>;
|
|
107
105
|
invalidateToken(): void;
|
|
108
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
106
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
|
|
109
107
|
shutdown(): void;
|
|
110
108
|
}
|
|
111
109
|
/** Credential provider for the Lite SDK. */
|
|
112
|
-
export declare class
|
|
110
|
+
export declare class LiteAuthCredentialsProvider implements CredentialsProvider<User> {
|
|
113
111
|
private auth;
|
|
114
112
|
constructor(authProvider: Provider<FirebaseAuthInternalName>);
|
|
115
113
|
getToken(): Promise<Token | null>;
|
|
116
114
|
invalidateToken(): void;
|
|
117
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
115
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
|
|
118
116
|
shutdown(): void;
|
|
119
117
|
}
|
|
120
|
-
export declare class
|
|
118
|
+
export declare class FirebaseAuthCredentialsProvider implements CredentialsProvider<User> {
|
|
121
119
|
private authProvider;
|
|
122
120
|
/**
|
|
123
121
|
* The auth token listener registered with FirebaseApp, retained here so we
|
|
@@ -134,7 +132,7 @@ export declare class FirebaseCredentialsProvider implements CredentialsProvider
|
|
|
134
132
|
private forceRefresh;
|
|
135
133
|
private auth;
|
|
136
134
|
constructor(authProvider: Provider<FirebaseAuthInternalName>);
|
|
137
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
135
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
|
|
138
136
|
getToken(): Promise<Token | null>;
|
|
139
137
|
invalidateToken(): void;
|
|
140
138
|
shutdown(): void;
|
|
@@ -148,29 +146,65 @@ interface Gapi {
|
|
|
148
146
|
};
|
|
149
147
|
}
|
|
150
148
|
export declare class FirstPartyToken implements Token {
|
|
151
|
-
private gapi;
|
|
152
|
-
private sessionIndex;
|
|
153
|
-
private iamToken;
|
|
154
149
|
type: TokenType;
|
|
155
150
|
user: User;
|
|
151
|
+
headers: Map<any, any>;
|
|
156
152
|
constructor(gapi: Gapi, sessionIndex: string, iamToken: string | null);
|
|
157
|
-
get authHeaders(): {
|
|
158
|
-
[header: string]: string;
|
|
159
|
-
};
|
|
160
153
|
}
|
|
161
|
-
export declare class
|
|
154
|
+
export declare class FirstPartyAuthCredentialsProvider implements CredentialsProvider<User> {
|
|
162
155
|
private gapi;
|
|
163
156
|
private sessionIndex;
|
|
164
157
|
private iamToken;
|
|
165
158
|
constructor(gapi: Gapi, sessionIndex: string, iamToken: string | null);
|
|
166
159
|
getToken(): Promise<Token | null>;
|
|
167
|
-
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener): void;
|
|
160
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
|
|
161
|
+
shutdown(): void;
|
|
162
|
+
invalidateToken(): void;
|
|
163
|
+
}
|
|
164
|
+
export declare class AppCheckToken implements Token {
|
|
165
|
+
private value;
|
|
166
|
+
type: TokenType;
|
|
167
|
+
headers: Map<any, any>;
|
|
168
|
+
constructor(value: string);
|
|
169
|
+
}
|
|
170
|
+
export declare class FirebaseAppCheckTokenProvider implements CredentialsProvider<string> {
|
|
171
|
+
private appCheckProvider;
|
|
172
|
+
/**
|
|
173
|
+
* The AppCheck token listener registered with FirebaseApp, retained here so
|
|
174
|
+
* we can unregister it.
|
|
175
|
+
*/
|
|
176
|
+
private tokenListener;
|
|
177
|
+
private forceRefresh;
|
|
178
|
+
private appCheck;
|
|
179
|
+
constructor(appCheckProvider: Provider<AppCheckInternalComponentName>);
|
|
180
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<string>): void;
|
|
181
|
+
getToken(): Promise<Token | null>;
|
|
182
|
+
invalidateToken(): void;
|
|
183
|
+
shutdown(): void;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* An AppCheck token provider that always yields an empty token.
|
|
187
|
+
* @internal
|
|
188
|
+
*/
|
|
189
|
+
export declare class EmptyAppCheckTokenProvider implements CredentialsProvider<string> {
|
|
190
|
+
getToken(): Promise<Token | null>;
|
|
191
|
+
invalidateToken(): void;
|
|
192
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<string>): void;
|
|
168
193
|
shutdown(): void;
|
|
194
|
+
}
|
|
195
|
+
/** AppCheck token provider for the Lite SDK. */
|
|
196
|
+
export declare class LiteAppCheckTokenProvider implements CredentialsProvider<string> {
|
|
197
|
+
private appCheckProvider;
|
|
198
|
+
private appCheck;
|
|
199
|
+
constructor(appCheckProvider: Provider<AppCheckInternalComponentName>);
|
|
200
|
+
getToken(): Promise<Token | null>;
|
|
169
201
|
invalidateToken(): void;
|
|
202
|
+
start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<string>): void;
|
|
203
|
+
shutdown(): void;
|
|
170
204
|
}
|
|
171
205
|
/**
|
|
172
206
|
* Builds a CredentialsProvider depending on the type of
|
|
173
207
|
* the credentials passed in.
|
|
174
208
|
*/
|
|
175
|
-
export declare function
|
|
209
|
+
export declare function makeAuthCredentialsProvider(credentials?: CredentialsSettings): CredentialsProvider<User>;
|
|
176
210
|
export {};
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { FirebaseApp } from '@firebase/app';
|
|
18
|
+
import { User } from '../auth/user';
|
|
18
19
|
import { DatabaseId } from '../core/database_info';
|
|
19
20
|
import { FirestoreClient } from '../core/firestore_client';
|
|
20
21
|
import { Firestore as LiteFirestore } from '../lite-api/database';
|
|
@@ -49,7 +50,7 @@ export declare class Firestore extends LiteFirestore {
|
|
|
49
50
|
readonly _persistenceKey: string;
|
|
50
51
|
_firestoreClient: FirestoreClient | undefined;
|
|
51
52
|
/** @hideconstructor */
|
|
52
|
-
constructor(databaseIdOrApp: DatabaseId | FirebaseApp,
|
|
53
|
+
constructor(databaseIdOrApp: DatabaseId | FirebaseApp, authCredentialsProvider: CredentialsProvider<User>, appCheckCredentialsProvider: CredentialsProvider<string>);
|
|
53
54
|
_terminate(): Promise<void>;
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
@@ -47,4 +47,5 @@ export { FieldPath as _FieldPath } from './model/path';
|
|
|
47
47
|
export type { ResourcePath as _ResourcePath } from './model/path';
|
|
48
48
|
export type { ByteString as _ByteString } from './util/byte_string';
|
|
49
49
|
export { logWarn as _logWarn } from './util/log';
|
|
50
|
-
export {
|
|
50
|
+
export { EmptyAuthCredentialsProvider as _EmptyAuthCredentialsProvider } from './api/credentials';
|
|
51
|
+
export { EmptyAppCheckTokenProvider as _EmptyAppCheckTokenProvider } from './api/credentials';
|
|
@@ -30,7 +30,8 @@ import { SyncEngine } from './sync_engine';
|
|
|
30
30
|
export interface ComponentConfiguration {
|
|
31
31
|
asyncQueue: AsyncQueue;
|
|
32
32
|
databaseInfo: DatabaseInfo;
|
|
33
|
-
|
|
33
|
+
authCredentials: CredentialsProvider<User>;
|
|
34
|
+
appCheckCredentials: CredentialsProvider<string>;
|
|
34
35
|
clientId: ClientId;
|
|
35
36
|
initialUser: User;
|
|
36
37
|
maxConcurrentLimboResolutions: number;
|
|
@@ -38,7 +38,8 @@ export declare const MAX_CONCURRENT_LIMBO_RESOLUTIONS = 100;
|
|
|
38
38
|
* async queue that is shared by all of the other components in the system.
|
|
39
39
|
*/
|
|
40
40
|
export declare class FirestoreClient {
|
|
41
|
-
private
|
|
41
|
+
private authCredentials;
|
|
42
|
+
private appCheckCredentials;
|
|
42
43
|
/**
|
|
43
44
|
* Asynchronous queue responsible for all of our internal processing. When
|
|
44
45
|
* we get incoming work from the user (via public API) or the network
|
|
@@ -51,10 +52,10 @@ export declare class FirestoreClient {
|
|
|
51
52
|
private databaseInfo;
|
|
52
53
|
private user;
|
|
53
54
|
private readonly clientId;
|
|
54
|
-
private
|
|
55
|
+
private authCredentialListener;
|
|
55
56
|
offlineComponents?: OfflineComponentProvider;
|
|
56
57
|
onlineComponents?: OnlineComponentProvider;
|
|
57
|
-
constructor(
|
|
58
|
+
constructor(authCredentials: CredentialsProvider<User>, appCheckCredentials: CredentialsProvider<string>,
|
|
58
59
|
/**
|
|
59
60
|
* Asynchronous queue responsible for all of our internal processing. When
|
|
60
61
|
* we get incoming work from the user (via public API) or the network
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { _FirebaseService } from '@firebase/app';
|
|
18
18
|
import { CredentialsProvider } from '../api/credentials';
|
|
19
|
+
import { User } from '../auth/user';
|
|
19
20
|
import { DatabaseId, DatabaseInfo } from '../core/database_info';
|
|
20
21
|
import { Datastore } from '../remote/datastore';
|
|
21
22
|
import { FirestoreSettingsImpl } from './settings';
|
|
@@ -27,7 +28,8 @@ export declare const LOG_TAG = "ComponentProvider";
|
|
|
27
28
|
* This interface mainly exists to remove a cyclic dependency.
|
|
28
29
|
*/
|
|
29
30
|
export interface FirestoreService extends _FirebaseService {
|
|
30
|
-
|
|
31
|
+
_authCredentials: CredentialsProvider<User>;
|
|
32
|
+
_appCheckCredentials: CredentialsProvider<string>;
|
|
31
33
|
_persistenceKey: string;
|
|
32
34
|
_databaseId: DatabaseId;
|
|
33
35
|
_terminated: boolean;
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { FirebaseApp } from '@firebase/app';
|
|
18
18
|
import { EmulatorMockTokenOptions } from '@firebase/util';
|
|
19
19
|
import { CredentialsProvider } from '../api/credentials';
|
|
20
|
+
import { User } from '../auth/user';
|
|
20
21
|
import { DatabaseId } from '../core/database_info';
|
|
21
22
|
import { FirestoreService } from './components';
|
|
22
23
|
import { FirestoreSettingsImpl, PrivateSettings, FirestoreSettings } from './settings';
|
|
@@ -31,7 +32,8 @@ declare module '@firebase/component' {
|
|
|
31
32
|
* Do not call this constructor directly. Instead, use {@link getFirestore}.
|
|
32
33
|
*/
|
|
33
34
|
export declare class Firestore implements FirestoreService {
|
|
34
|
-
|
|
35
|
+
_authCredentials: CredentialsProvider<User>;
|
|
36
|
+
_appCheckCredentials: CredentialsProvider<string>;
|
|
35
37
|
/**
|
|
36
38
|
* Whether it's a Firestore or Firestore Lite instance.
|
|
37
39
|
*/
|
|
@@ -43,7 +45,7 @@ export declare class Firestore implements FirestoreService {
|
|
|
43
45
|
private _terminateTask?;
|
|
44
46
|
_app?: FirebaseApp;
|
|
45
47
|
/** @hideconstructor */
|
|
46
|
-
constructor(databaseIdOrApp: DatabaseId | FirebaseApp,
|
|
48
|
+
constructor(databaseIdOrApp: DatabaseId | FirebaseApp, _authCredentials: CredentialsProvider<User>, _appCheckCredentials: CredentialsProvider<string>);
|
|
47
49
|
/**
|
|
48
50
|
* The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service
|
|
49
51
|
* instance.
|
|
@@ -25,5 +25,5 @@ export declare class WebChannelConnection extends RestConnection {
|
|
|
25
25
|
private readonly useFetchStreams;
|
|
26
26
|
constructor(info: DatabaseInfo);
|
|
27
27
|
protected performRPCRequest<Req, Resp>(rpcName: string, url: string, headers: StringMap, body: Req): Promise<Resp>;
|
|
28
|
-
openStream<Req, Resp>(rpcName: string,
|
|
28
|
+
openStream<Req, Resp>(rpcName: string, authToken: Token | null, appCheckToken: Token | null): Stream<Req, Resp>;
|
|
29
29
|
}
|
|
@@ -28,7 +28,7 @@ export declare class GrpcConnection implements Connection {
|
|
|
28
28
|
private cachedStub;
|
|
29
29
|
constructor(protos: GrpcObject, databaseInfo: DatabaseInfo);
|
|
30
30
|
private ensureActiveStub;
|
|
31
|
-
invokeRPC<Req, Resp>(rpcName: string, path: string, request: Req,
|
|
32
|
-
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req,
|
|
33
|
-
openStream<Req, Resp>(rpcName: string,
|
|
31
|
+
invokeRPC<Req, Resp>(rpcName: string, path: string, request: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp>;
|
|
32
|
+
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp[]>;
|
|
33
|
+
openStream<Req, Resp>(rpcName: string, authToken: Token | null, appCheckToken: Token | null): Stream<Req, Resp>;
|
|
34
34
|
}
|
|
@@ -41,7 +41,7 @@ export interface Connection {
|
|
|
41
41
|
* @param token - the Token to use for the RPC.
|
|
42
42
|
* @returns a Promise containing the JSON object encoding of the response
|
|
43
43
|
*/
|
|
44
|
-
invokeRPC<Req, Resp>(rpcName: string, path: string, request: Req,
|
|
44
|
+
invokeRPC<Req, Resp>(rpcName: string, path: string, request: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp>;
|
|
45
45
|
/**
|
|
46
46
|
* Invokes a streaming RPC by name, given a request message as a JavaScript
|
|
47
47
|
* object representing the JSON to send. The responses will be consumed to
|
|
@@ -54,14 +54,14 @@ export interface Connection {
|
|
|
54
54
|
* @returns a Promise containing an array with the JSON object encodings of the
|
|
55
55
|
* responses
|
|
56
56
|
*/
|
|
57
|
-
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req,
|
|
57
|
+
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp[]>;
|
|
58
58
|
/**
|
|
59
59
|
* Opens a stream to the given stream RPC endpoint. Returns a stream which
|
|
60
60
|
* will try to open itself.
|
|
61
61
|
* @param rpcName - the name of the RPC to open the stream on
|
|
62
62
|
* @param token - the Token to use for the RPC.
|
|
63
63
|
*/
|
|
64
|
-
openStream<Req, Resp>(rpcName: string,
|
|
64
|
+
openStream<Req, Resp>(rpcName: string, authToken: Token | null, appCheckToken: Token | null): Stream<Req, Resp>;
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* A bidirectional stream that can be used to send an receive messages.
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { CredentialsProvider } from '../api/credentials';
|
|
18
|
+
import { User } from '../auth/user';
|
|
18
19
|
import { Query } from '../core/query';
|
|
19
20
|
import { Document } from '../model/document';
|
|
20
21
|
import { DocumentKey } from '../model/document_key';
|
|
@@ -31,7 +32,7 @@ import { JsonProtoSerializer } from './serializer';
|
|
|
31
32
|
export declare abstract class Datastore {
|
|
32
33
|
abstract terminate(): void;
|
|
33
34
|
}
|
|
34
|
-
export declare function newDatastore(
|
|
35
|
+
export declare function newDatastore(authCredentials: CredentialsProvider<User>, appCheckCredentials: CredentialsProvider<string>, connection: Connection, serializer: JsonProtoSerializer): Datastore;
|
|
35
36
|
export declare function invokeCommitRpc(datastore: Datastore, mutations: Mutation[]): Promise<void>;
|
|
36
37
|
export declare function invokeBatchGetDocumentsRpc(datastore: Datastore, keys: DocumentKey[]): Promise<Document[]>;
|
|
37
38
|
export declare function invokeRunQueryRpc(datastore: Datastore, query: Query): Promise<Document[]>;
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { CredentialsProvider, Token } from '../api/credentials';
|
|
18
|
+
import { User } from '../auth/user';
|
|
18
19
|
import { SnapshotVersion } from '../core/snapshot_version';
|
|
19
20
|
import { TargetId } from '../core/types';
|
|
20
21
|
import { TargetData } from '../local/target_data';
|
|
@@ -82,7 +83,8 @@ export declare abstract class PersistentStream<SendType, ReceiveType, ListenerTy
|
|
|
82
83
|
private idleTimerId;
|
|
83
84
|
private healthTimerId;
|
|
84
85
|
protected connection: Connection;
|
|
85
|
-
private
|
|
86
|
+
private authCredentialsProvider;
|
|
87
|
+
private appCheckCredentialsProvider;
|
|
86
88
|
protected listener: ListenerType;
|
|
87
89
|
private state;
|
|
88
90
|
/**
|
|
@@ -95,7 +97,7 @@ export declare abstract class PersistentStream<SendType, ReceiveType, ListenerTy
|
|
|
95
97
|
private healthCheck;
|
|
96
98
|
private stream;
|
|
97
99
|
protected backoff: ExponentialBackoff;
|
|
98
|
-
constructor(queue: AsyncQueue, connectionTimerId: TimerId, idleTimerId: TimerId, healthTimerId: TimerId, connection: Connection,
|
|
100
|
+
constructor(queue: AsyncQueue, connectionTimerId: TimerId, idleTimerId: TimerId, healthTimerId: TimerId, connection: Connection, authCredentialsProvider: CredentialsProvider<User>, appCheckCredentialsProvider: CredentialsProvider<string>, listener: ListenerType);
|
|
99
101
|
/**
|
|
100
102
|
* Returns true if start() has been called and no error has occurred. True
|
|
101
103
|
* indicates the stream is open or in the process of opening (which
|
|
@@ -175,7 +177,7 @@ export declare abstract class PersistentStream<SendType, ReceiveType, ListenerTy
|
|
|
175
177
|
* Used by subclasses to start the concrete RPC and return the underlying
|
|
176
178
|
* connection stream.
|
|
177
179
|
*/
|
|
178
|
-
protected abstract startRpc(
|
|
180
|
+
protected abstract startRpc(authToken: Token | null, appCheckToken: Token | null): Stream<SendType, ReceiveType>;
|
|
179
181
|
/**
|
|
180
182
|
* Called after the stream has received a message. The function will be
|
|
181
183
|
* called on the right queue and must return a Promise.
|
|
@@ -211,8 +213,8 @@ export interface WatchStreamListener extends PersistentStreamListener {
|
|
|
211
213
|
*/
|
|
212
214
|
export declare class PersistentListenStream extends PersistentStream<ProtoListenRequest, ProtoListenResponse, WatchStreamListener> {
|
|
213
215
|
private serializer;
|
|
214
|
-
constructor(queue: AsyncQueue, connection: Connection,
|
|
215
|
-
protected startRpc(
|
|
216
|
+
constructor(queue: AsyncQueue, connection: Connection, authCredentials: CredentialsProvider<User>, appCheckCredentials: CredentialsProvider<string>, serializer: JsonProtoSerializer, listener: WatchStreamListener);
|
|
217
|
+
protected startRpc(authToken: Token | null, appCheckToken: Token | null): Stream<ProtoListenRequest, ProtoListenResponse>;
|
|
216
218
|
protected onMessage(watchChangeProto: ProtoListenResponse): Promise<void>;
|
|
217
219
|
/**
|
|
218
220
|
* Registers interest in the results of the given target. If the target
|
|
@@ -260,7 +262,7 @@ export interface WriteStreamListener extends PersistentStreamListener {
|
|
|
260
262
|
export declare class PersistentWriteStream extends PersistentStream<ProtoWriteRequest, ProtoWriteResponse, WriteStreamListener> {
|
|
261
263
|
private serializer;
|
|
262
264
|
private handshakeComplete_;
|
|
263
|
-
constructor(queue: AsyncQueue, connection: Connection,
|
|
265
|
+
constructor(queue: AsyncQueue, connection: Connection, authCredentials: CredentialsProvider<User>, appCheckCredentials: CredentialsProvider<string>, serializer: JsonProtoSerializer, listener: WriteStreamListener);
|
|
264
266
|
/**
|
|
265
267
|
* The last received stream token from the server, used to acknowledge which
|
|
266
268
|
* responses the client has processed. Stream tokens are opaque checkpoint
|
|
@@ -277,7 +279,7 @@ export declare class PersistentWriteStream extends PersistentStream<ProtoWriteRe
|
|
|
277
279
|
get handshakeComplete(): boolean;
|
|
278
280
|
start(): void;
|
|
279
281
|
protected tearDown(): void;
|
|
280
|
-
protected startRpc(
|
|
282
|
+
protected startRpc(authToken: Token | null, appCheckToken: Token | null): Stream<ProtoWriteRequest, ProtoWriteResponse>;
|
|
281
283
|
protected onMessage(responseProto: ProtoWriteResponse): Promise<void>;
|
|
282
284
|
/**
|
|
283
285
|
* Sends an initial streamToken to the server, performing the handshake
|
|
@@ -28,14 +28,14 @@ export declare abstract class RestConnection implements Connection {
|
|
|
28
28
|
protected readonly baseUrl: string;
|
|
29
29
|
private readonly databaseRoot;
|
|
30
30
|
constructor(databaseInfo: DatabaseInfo);
|
|
31
|
-
invokeRPC<Req, Resp>(rpcName: string, path: string, req: Req,
|
|
32
|
-
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req,
|
|
33
|
-
abstract openStream<Req, Resp>(rpcName: string,
|
|
31
|
+
invokeRPC<Req, Resp>(rpcName: string, path: string, req: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp>;
|
|
32
|
+
invokeStreamingRPC<Req, Resp>(rpcName: string, path: string, request: Req, authToken: Token | null, appCheckToken: Token | null): Promise<Resp[]>;
|
|
33
|
+
abstract openStream<Req, Resp>(rpcName: string, authToken: Token | null, appCheckToken: Token | null): Stream<Req, Resp>;
|
|
34
34
|
/**
|
|
35
35
|
* Modifies the headers for a request, adding any authorization token if
|
|
36
36
|
* present and any additional headers for the request.
|
|
37
37
|
*/
|
|
38
|
-
protected modifyHeadersForRequest(headers: StringMap,
|
|
38
|
+
protected modifyHeadersForRequest(headers: StringMap, authToken: Token | null, appCheckToken: Token | null): void;
|
|
39
39
|
/**
|
|
40
40
|
* Performs an RPC request using an implementation specific networking layer.
|
|
41
41
|
*/
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
17
|
+
import { EmptyAuthCredentialsProvider } from '../../../src/api/credentials';
|
|
18
18
|
import { SnapshotVersion } from '../../../src/core/snapshot_version';
|
|
19
19
|
import { MutationResult } from '../../../src/model/mutation';
|
|
20
20
|
import { PersistentListenStream, PersistentWriteStream, WatchStreamListener, WriteStreamListener } from '../../../src/remote/persistent_stream';
|
|
@@ -48,6 +48,6 @@ declare class StreamStatusListener implements WatchStreamListener, WriteStreamLi
|
|
|
48
48
|
onClose(err?: FirestoreError): Promise<void>;
|
|
49
49
|
private resolvePending;
|
|
50
50
|
}
|
|
51
|
-
export declare function withTestWriteStream(fn: (writeStream: PersistentWriteStream, streamListener: StreamStatusListener, queue: AsyncQueueImpl) => Promise<void>, credentialsProvider?:
|
|
51
|
+
export declare function withTestWriteStream(fn: (writeStream: PersistentWriteStream, streamListener: StreamStatusListener, queue: AsyncQueueImpl) => Promise<void>, credentialsProvider?: EmptyAuthCredentialsProvider): Promise<void>;
|
|
52
52
|
export declare function withTestWatchStream(fn: (watchStream: PersistentListenStream, streamListener: StreamStatusListener) => Promise<void>): Promise<void>;
|
|
53
53
|
export {};
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import * as firestore from '@firebase/firestore-types';
|
|
18
|
-
import { CredentialChangeListener, CredentialsProvider,
|
|
18
|
+
import { CredentialChangeListener, CredentialsProvider, EmptyAuthCredentialsProvider } from '../../../src/api/credentials';
|
|
19
19
|
import { User } from '../../../src/auth/user';
|
|
20
20
|
import { DatabaseInfo } from '../../../src/core/database_info';
|
|
21
21
|
import { Datastore } from '../../../src/remote/datastore';
|
|
@@ -23,11 +23,11 @@ import { AsyncQueue } from '../../../src/util/async_queue';
|
|
|
23
23
|
import { AsyncQueueImpl } from '../../../src/util/async_queue_impl';
|
|
24
24
|
export declare function asyncQueue(db: firestore.FirebaseFirestore): AsyncQueueImpl;
|
|
25
25
|
export declare function getDefaultDatabaseInfo(): DatabaseInfo;
|
|
26
|
-
export declare function withTestDatastore(fn: (datastore: Datastore) => Promise<void>,
|
|
27
|
-
export declare class
|
|
26
|
+
export declare function withTestDatastore(fn: (datastore: Datastore) => Promise<void>, authCredentialsProvider?: CredentialsProvider<User>, appCheckTokenProvider?: CredentialsProvider<string>): Promise<void>;
|
|
27
|
+
export declare class MockAuthCredentialsProvider extends EmptyAuthCredentialsProvider {
|
|
28
28
|
private listener;
|
|
29
29
|
private asyncQueue;
|
|
30
30
|
triggerUserChange(newUser: User): void;
|
|
31
|
-
start(asyncQueue: AsyncQueue, listener: CredentialChangeListener): void;
|
|
31
|
+
start(asyncQueue: AsyncQueue, listener: CredentialChangeListener<User>): void;
|
|
32
32
|
}
|
|
33
|
-
export declare function withMockCredentialProviderTestDb(persistence: boolean, fn: (db: firestore.FirebaseFirestore, mockCredential:
|
|
33
|
+
export declare function withMockCredentialProviderTestDb(persistence: boolean, fn: (db: firestore.FirebaseFirestore, mockCredential: MockAuthCredentialsProvider) => Promise<void>): Promise<void>;
|
|
@@ -23,6 +23,6 @@ export declare class TestRestConnection extends RestConnection {
|
|
|
23
23
|
lastHeaders: StringMap;
|
|
24
24
|
lastRequestBody: unknown;
|
|
25
25
|
nextResponse: Promise<unknown>;
|
|
26
|
-
openStream<Req, Resp>(rpcName: string,
|
|
26
|
+
openStream<Req, Resp>(rpcName: string, authToken: Token | null, appCheckToken: Token | null): Stream<Req, Resp>;
|
|
27
27
|
protected performRPCRequest<Req, Resp>(rpcName: string, url: string, headers: StringMap, body: Req): Promise<Resp>;
|
|
28
28
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -457,7 +457,8 @@ export declare class DocumentSnapshot<T = DocumentData> {
|
|
|
457
457
|
*/
|
|
458
458
|
get ref(): DocumentReference<T>;
|
|
459
459
|
}
|
|
460
|
-
/* Excluded from this release type:
|
|
460
|
+
/* Excluded from this release type: _EmptyAppCheckTokenProvider */
|
|
461
|
+
/* Excluded from this release type: _EmptyAuthCredentialsProvider */
|
|
461
462
|
export { EmulatorMockTokenOptions };
|
|
462
463
|
/**
|
|
463
464
|
* Attempts to enable persistent storage, if possible.
|