firebase-admin-edge 2.0.0 → 3.0.1
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/README.md +2 -0
- package/dist/app-check/app-check.d.ts +7 -2
- package/dist/app-check/app-check.d.ts.map +1 -1
- package/dist/app-check/app-check.js +6 -5
- package/dist/app-check/app-check.js.map +1 -1
- package/dist/auth/firebase-admin-auth.d.ts +38 -7
- package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.js +161 -11
- package/dist/auth/firebase-admin-auth.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.d.ts +37 -0
- package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
- package/dist/auth/firebase-auth-endpoints.js +100 -0
- package/dist/auth/firebase-auth-endpoints.js.map +1 -1
- package/dist/auth/firebase-auth.d.ts +6 -4
- package/dist/auth/firebase-auth.d.ts.map +1 -1
- package/dist/auth/firebase-auth.js +5 -5
- package/dist/auth/firebase-auth.js.map +1 -1
- package/dist/auth/identity-builder-types.d.ts +36 -0
- package/dist/auth/identity-builder-types.d.ts.map +1 -0
- package/dist/auth/identity-builder-types.js +2 -0
- package/dist/auth/identity-builder-types.js.map +1 -0
- package/dist/auth/identity-count-query.d.ts +17 -0
- package/dist/auth/identity-count-query.d.ts.map +1 -0
- package/dist/auth/identity-count-query.js +51 -0
- package/dist/auth/identity-count-query.js.map +1 -0
- package/dist/auth/identity-filter.d.ts +9 -0
- package/dist/auth/identity-filter.d.ts.map +1 -0
- package/dist/auth/identity-filter.js +129 -0
- package/dist/auth/identity-filter.js.map +1 -0
- package/dist/auth/identity-query.d.ts +11 -0
- package/dist/auth/identity-query.d.ts.map +1 -0
- package/dist/auth/identity-query.js +122 -0
- package/dist/auth/identity-query.js.map +1 -0
- package/dist/auth/identity-reference.d.ts +150 -0
- package/dist/auth/identity-reference.d.ts.map +1 -0
- package/dist/auth/identity-reference.js +322 -0
- package/dist/auth/identity-reference.js.map +1 -0
- package/dist/auth/identity-types.d.ts +44 -0
- package/dist/auth/identity-types.d.ts.map +1 -0
- package/dist/auth/identity-types.js +2 -0
- package/dist/auth/identity-types.js.map +1 -0
- package/dist/auth/identity-write.d.ts +41 -0
- package/dist/auth/identity-write.d.ts.map +1 -0
- package/dist/auth/identity-write.js +146 -0
- package/dist/auth/identity-write.js.map +1 -0
- package/dist/auth/identity.d.ts +84 -0
- package/dist/auth/identity.d.ts.map +1 -0
- package/dist/auth/identity.js +319 -0
- package/dist/auth/identity.js.map +1 -0
- package/dist/auth/user-import.d.ts +7 -1
- package/dist/auth/user-import.d.ts.map +1 -1
- package/dist/auth/user-import.js +53 -15
- package/dist/auth/user-import.js.map +1 -1
- package/dist/auth/user-record.d.ts +1 -0
- package/dist/auth/user-record.d.ts.map +1 -1
- package/dist/auth/user-record.js +5 -0
- package/dist/auth/user-record.js.map +1 -1
- package/dist/auth/user-request.d.ts +4 -1
- package/dist/auth/user-request.d.ts.map +1 -1
- package/dist/auth/user-request.js +7 -4
- package/dist/auth/user-request.js.map +1 -1
- package/dist/db/firestore.d.ts +7 -1
- package/dist/db/firestore.d.ts.map +1 -1
- package/dist/db/firestore.js +16 -8
- package/dist/db/firestore.js.map +1 -1
- package/dist/firebase-edge-server.d.ts +2 -0
- package/dist/firebase-edge-server.d.ts.map +1 -1
- package/dist/firebase-edge-server.js +37 -5
- package/dist/firebase-edge-server.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/storage.d.ts +10 -3
- package/dist/storage/storage.d.ts.map +1 -1
- package/dist/storage/storage.js +17 -4
- package/dist/storage/storage.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { IdentityCreateData, IdentityImportRecord } from './identity-write.js';
|
|
2
|
+
import type { UserImportOptions } from './user-import.js';
|
|
3
|
+
export type { IdentityCreateData, IdentityImportRecord, IdentityUpdateData, IdentitySetData, IdentityWriteResult } from './identity-write.js';
|
|
4
|
+
import type { ProviderIdentifier } from './user-request.js';
|
|
5
|
+
import { FirebaseAdminAuth, type FirebaseAdminAuthOptions } from './firebase-admin-auth.js';
|
|
6
|
+
import type { ServiceAccount } from './firebase-types.js';
|
|
7
|
+
import { FirebaseEdgeError } from './errors.js';
|
|
8
|
+
import { IdentityCountQuery } from './identity-count-query.js';
|
|
9
|
+
import { IdentityReference } from './identity-reference.js';
|
|
10
|
+
export { IdentityReference, type IdentityReferenceOptions, type IdentityUserRecord } from './identity-reference.js';
|
|
11
|
+
export { IdentityCountQuery } from './identity-count-query.js';
|
|
12
|
+
import type { IdentityDirection, IdentityStringFilterField, IdentityOrderField, IdentityQueryOptions, IdentityQueryResult } from './identity-types.js';
|
|
13
|
+
export type { IdentityDirection, IdentityIdentifier, IdentityFilterField, IdentityStringFilterField, IdentityOrderField, IdentityQueryResult, IdentityCountResult } from './identity-types.js';
|
|
14
|
+
import type { IdentityQueryBuilder, IdentityTokenSort } from './identity-builder-types.js';
|
|
15
|
+
export type { IdentityQueryBuilder, IdentityNativeFilterField } from './identity-builder-types.js';
|
|
16
|
+
export type IdentityOptions = FirebaseAdminAuthOptions;
|
|
17
|
+
/** Fluent Firebase Authentication queries with automatic endpoint selection. */
|
|
18
|
+
export declare class Identity<Claims extends object = Record<string, unknown>> {
|
|
19
|
+
private readonly auth;
|
|
20
|
+
constructor(serviceAccount: ServiceAccount, options?: IdentityOptions);
|
|
21
|
+
users<Schema extends object = Claims>(): IdentityQueryBuilder<'base', false, true, Schema>;
|
|
22
|
+
}
|
|
23
|
+
/** Immutable query. Invalid builder arguments throw before any network request. */
|
|
24
|
+
export declare class IdentityQuery<Claims extends object = Record<string, unknown>> {
|
|
25
|
+
private readonly auth;
|
|
26
|
+
private readonly options;
|
|
27
|
+
private readonly last;
|
|
28
|
+
private readonly token?;
|
|
29
|
+
constructor(auth: FirebaseAdminAuth, options?: IdentityQueryOptions, last?: boolean, token?: string | undefined);
|
|
30
|
+
/** Append exact-match alternatives to one lookup request. */
|
|
31
|
+
or(field: IdentityStringFilterField, operator: '==', value: string): IdentityQueryBuilder<'or', false, true, Claims>;
|
|
32
|
+
or(field: IdentityStringFilterField, operator: 'in', value: readonly string[]): IdentityQueryBuilder<'or', false, true, Claims>;
|
|
33
|
+
or(field: 'provider', operator: '==', value: ProviderIdentifier): IdentityQueryBuilder<'or', false, true, Claims>;
|
|
34
|
+
or(field: 'provider', operator: 'in', value: readonly ProviderIdentifier[]): IdentityQueryBuilder<'or', false, true, Claims>;
|
|
35
|
+
add(data: IdentityCreateData<Claims>): Promise<{
|
|
36
|
+
data: null;
|
|
37
|
+
error: FirebaseEdgeError;
|
|
38
|
+
} | {
|
|
39
|
+
data: import("./identity-write.js").IdentityWriteResult;
|
|
40
|
+
error: null;
|
|
41
|
+
}>;
|
|
42
|
+
import(records: IdentityImportRecord<Claims>[], options?: UserImportOptions): Promise<{
|
|
43
|
+
data: null;
|
|
44
|
+
error: FirebaseEdgeError;
|
|
45
|
+
} | {
|
|
46
|
+
data: import("./user-batch.js").UserImportResult;
|
|
47
|
+
error: null;
|
|
48
|
+
}>;
|
|
49
|
+
delete(): Promise<{
|
|
50
|
+
data: null;
|
|
51
|
+
error: FirebaseEdgeError;
|
|
52
|
+
} | {
|
|
53
|
+
data: import("./user-batch.js").DeleteUsersResult;
|
|
54
|
+
error: null;
|
|
55
|
+
}>;
|
|
56
|
+
byUid<LookupClaims extends object = Claims>(uid: string): IdentityReference<false, true, LookupClaims>;
|
|
57
|
+
byEmail(email: string): IdentityReference<false, false, Claims>;
|
|
58
|
+
byPhoneNumber(phoneNumber: string): IdentityReference<false, false, Claims>;
|
|
59
|
+
byProvider(providerId: string, providerUid: string): IdentityReference<false, false, Claims>;
|
|
60
|
+
private assertLookupAllowed;
|
|
61
|
+
where(field: 'provider', operator: 'in', value: readonly ProviderIdentifier[]): IdentityQueryBuilder<'lookup', false, true, Claims>;
|
|
62
|
+
where<F extends IdentityStringFilterField>(field: F, operator: 'in', value: readonly string[]): IdentityQueryBuilder<F extends 'uid' ? 'uidBatch' : 'lookup', false, true, Claims>;
|
|
63
|
+
where<F extends IdentityStringFilterField>(field: F, operator: '==', value: string): IdentityQueryBuilder<F extends 'initialEmail' ? 'lookup' : 'filtered', false, false, Claims>;
|
|
64
|
+
orderBy<F extends IdentityOrderField, D extends IdentityDirection = 'asc'>(field: F, direction?: D): IdentityQueryBuilder<'query', true, IdentityTokenSort<F, D>, Claims>;
|
|
65
|
+
offset<N extends number>(value: N): IdentityQueryBuilder<'query', false, N extends 0 ? true : false, Claims>;
|
|
66
|
+
limit(value: number): IdentityQueryBuilder<'query', false, true, Claims>;
|
|
67
|
+
/** Return the last matching users in the query's original order. */
|
|
68
|
+
limitToLast(value: number): IdentityQueryBuilder<'query', false, false, Claims>;
|
|
69
|
+
private withLimit;
|
|
70
|
+
/** Resume a UID-ascending listing using the previous result's opaque token. */
|
|
71
|
+
pageToken(token: string): IdentityQueryBuilder<'token', false, true, Claims>;
|
|
72
|
+
/** Count the matching query with one count-only request. */
|
|
73
|
+
count(): IdentityCountQuery;
|
|
74
|
+
private assertNativeQuery;
|
|
75
|
+
/** Execute at most one account-data request; unsupported combinations fail before I/O. */
|
|
76
|
+
get(): Promise<{
|
|
77
|
+
data: IdentityQueryResult<Claims>;
|
|
78
|
+
error: null;
|
|
79
|
+
} | {
|
|
80
|
+
data: null;
|
|
81
|
+
error: Error;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/auth/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { identityLookupIdentifiers, identityOrIdentifiers } from './identity-filter.js';
|
|
2
|
+
import { FirebaseAdminAuth } from './firebase-admin-auth.js';
|
|
3
|
+
import { FirebaseEdgeError, ensureError } from './errors.js';
|
|
4
|
+
import { executeIdentityQuery } from './identity-query.js';
|
|
5
|
+
import { IdentityCountQuery } from './identity-count-query.js';
|
|
6
|
+
import { IdentityReference } from './identity-reference.js';
|
|
7
|
+
export { IdentityReference } from './identity-reference.js';
|
|
8
|
+
export { IdentityCountQuery } from './identity-count-query.js';
|
|
9
|
+
/** Fluent Firebase Authentication queries with automatic endpoint selection. */
|
|
10
|
+
export class Identity {
|
|
11
|
+
auth;
|
|
12
|
+
constructor(serviceAccount, options = {}) {
|
|
13
|
+
this.auth = new FirebaseAdminAuth(serviceAccount, options);
|
|
14
|
+
}
|
|
15
|
+
users() {
|
|
16
|
+
return new IdentityQuery(this.auth);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Immutable query. Invalid builder arguments throw before any network request. */
|
|
20
|
+
export class IdentityQuery {
|
|
21
|
+
auth;
|
|
22
|
+
options;
|
|
23
|
+
last;
|
|
24
|
+
token;
|
|
25
|
+
constructor(auth, options = {}, last = false, token) {
|
|
26
|
+
this.auth = auth;
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.last = last;
|
|
29
|
+
this.token = token;
|
|
30
|
+
}
|
|
31
|
+
or(field, operator, value) {
|
|
32
|
+
if (Object.keys(this.options).some((key) => key !== 'identifiers') ||
|
|
33
|
+
this.last ||
|
|
34
|
+
this.token !== undefined) {
|
|
35
|
+
throw new FirebaseEdgeError({
|
|
36
|
+
code: 'auth/invalid-argument',
|
|
37
|
+
message: 'OR clauses cannot be combined with where clauses, sorting, limits, offsets, or page tokens.'
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (operator !== '==' && operator !== 'in') {
|
|
41
|
+
throw new FirebaseEdgeError({
|
|
42
|
+
code: 'auth/invalid-argument',
|
|
43
|
+
message: 'OR clauses support only == and in.'
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const identifiers = identityLookupIdentifiers(field, operator === 'in'
|
|
47
|
+
? value
|
|
48
|
+
: [value]);
|
|
49
|
+
const validated = identityOrIdentifiers([
|
|
50
|
+
...(this.options.identifiers ?? []),
|
|
51
|
+
...identifiers
|
|
52
|
+
]);
|
|
53
|
+
return new IdentityQuery(this.auth, {
|
|
54
|
+
identifiers: validated
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
add(data) {
|
|
58
|
+
this.assertLookupAllowed();
|
|
59
|
+
return this.auth._writeIdentityUser(undefined, data);
|
|
60
|
+
}
|
|
61
|
+
import(records, options) {
|
|
62
|
+
this.assertLookupAllowed();
|
|
63
|
+
if (!Array.isArray(records)) {
|
|
64
|
+
throw new FirebaseEdgeError({
|
|
65
|
+
code: 'auth/invalid-argument',
|
|
66
|
+
message: 'Import records must be an array.'
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const users = records.map((record) => {
|
|
70
|
+
if (!record ||
|
|
71
|
+
typeof record !== 'object' ||
|
|
72
|
+
Array.isArray(record)) {
|
|
73
|
+
return record;
|
|
74
|
+
}
|
|
75
|
+
if ('claims' in record) {
|
|
76
|
+
throw new FirebaseEdgeError({
|
|
77
|
+
code: 'auth/invalid-argument',
|
|
78
|
+
message: 'Use customClaims in Identity import records.'
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const { customClaims, ...data } = record;
|
|
82
|
+
return {
|
|
83
|
+
...data,
|
|
84
|
+
...(customClaims !== undefined && {
|
|
85
|
+
customClaims: customClaims === null ? {} : customClaims
|
|
86
|
+
})
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
return this.auth.importUsers(users, options);
|
|
90
|
+
}
|
|
91
|
+
delete() {
|
|
92
|
+
if (this.options.filter?.field !== 'uid' ||
|
|
93
|
+
this.options.filter.operator !== 'in' ||
|
|
94
|
+
this.options.orderBy ||
|
|
95
|
+
this.options.offset !== undefined ||
|
|
96
|
+
this.options.limit !== undefined ||
|
|
97
|
+
this.last ||
|
|
98
|
+
this.token !== undefined) {
|
|
99
|
+
throw new FirebaseEdgeError({
|
|
100
|
+
code: 'auth/invalid-argument',
|
|
101
|
+
message: 'Batch deletion requires only a UID in filter.'
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return this.auth.deleteUsers([...this.options.filter.value]);
|
|
105
|
+
}
|
|
106
|
+
byUid(uid) {
|
|
107
|
+
this.assertLookupAllowed();
|
|
108
|
+
return new IdentityReference(this.auth, { uid }, { uidReference: true });
|
|
109
|
+
}
|
|
110
|
+
byEmail(email) {
|
|
111
|
+
this.assertLookupAllowed();
|
|
112
|
+
return new IdentityReference(this.auth, {
|
|
113
|
+
email
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
byPhoneNumber(phoneNumber) {
|
|
117
|
+
this.assertLookupAllowed();
|
|
118
|
+
return new IdentityReference(this.auth, {
|
|
119
|
+
phoneNumber
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
byProvider(providerId, providerUid) {
|
|
123
|
+
this.assertLookupAllowed();
|
|
124
|
+
return new IdentityReference(this.auth, {
|
|
125
|
+
providerId,
|
|
126
|
+
providerUid
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
assertLookupAllowed() {
|
|
130
|
+
if (Object.keys(this.options).length > 0 ||
|
|
131
|
+
this.last ||
|
|
132
|
+
this.token !== undefined) {
|
|
133
|
+
throw new FirebaseEdgeError({
|
|
134
|
+
code: 'auth/invalid-argument',
|
|
135
|
+
message: 'Exact lookups cannot be combined with filters, sorting, limits, offsets, or page tokens.'
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
where(field, operator, value) {
|
|
140
|
+
if (this.options.filter !== undefined) {
|
|
141
|
+
throw new FirebaseEdgeError({
|
|
142
|
+
code: 'auth/invalid-argument',
|
|
143
|
+
message: 'Only one where clause is supported: Firebase ignores additional query expressions instead of applying AND.'
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if (this.options.identifiers !== undefined ||
|
|
147
|
+
this.token !== undefined ||
|
|
148
|
+
((field === 'initialEmail' || operator === 'in') &&
|
|
149
|
+
(Object.keys(this.options).length > 0 || this.last))) {
|
|
150
|
+
throw new FirebaseEdgeError({
|
|
151
|
+
code: 'auth/invalid-argument',
|
|
152
|
+
message: 'This filter cannot be combined with existing query options or a page token.'
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (operator !== '==' && operator !== 'in') {
|
|
156
|
+
throw new FirebaseEdgeError({
|
|
157
|
+
code: 'auth/invalid-argument',
|
|
158
|
+
message: 'Identity queries support only == and in filters.'
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
if (![
|
|
162
|
+
'uid',
|
|
163
|
+
'email',
|
|
164
|
+
'phoneNumber',
|
|
165
|
+
'initialEmail',
|
|
166
|
+
'provider'
|
|
167
|
+
].includes(field) ||
|
|
168
|
+
(field === 'provider' && operator !== 'in') ||
|
|
169
|
+
(operator === '==' &&
|
|
170
|
+
(typeof value !== 'string' || value.length === 0))) {
|
|
171
|
+
throw new FirebaseEdgeError({
|
|
172
|
+
code: 'auth/invalid-argument',
|
|
173
|
+
message: 'Specify one supported filter with a string for == or a string array for in.'
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
const identifiers = operator === 'in'
|
|
177
|
+
? identityLookupIdentifiers(field, value)
|
|
178
|
+
: identityLookupIdentifiers(field, [value]);
|
|
179
|
+
const filter = field === 'provider'
|
|
180
|
+
? {
|
|
181
|
+
field,
|
|
182
|
+
operator: 'in',
|
|
183
|
+
value: identifiers
|
|
184
|
+
}
|
|
185
|
+
: operator === 'in'
|
|
186
|
+
? {
|
|
187
|
+
field,
|
|
188
|
+
operator,
|
|
189
|
+
value: [...value]
|
|
190
|
+
}
|
|
191
|
+
: { field, value: value };
|
|
192
|
+
return new IdentityQuery(this.auth, { ...this.options, filter }, this.last, this.token);
|
|
193
|
+
}
|
|
194
|
+
orderBy(field, direction = 'asc') {
|
|
195
|
+
this.assertNativeQuery();
|
|
196
|
+
if (this.token !== undefined &&
|
|
197
|
+
(field !== 'uid' || direction !== 'asc')) {
|
|
198
|
+
throw new FirebaseEdgeError({
|
|
199
|
+
code: 'auth/invalid-argument',
|
|
200
|
+
message: 'Page tokens require UID ascending order.'
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
if (![
|
|
204
|
+
'uid',
|
|
205
|
+
'displayName',
|
|
206
|
+
'createdAt',
|
|
207
|
+
'lastLoginAt',
|
|
208
|
+
'email'
|
|
209
|
+
].includes(field) ||
|
|
210
|
+
!['asc', 'desc'].includes(direction) ||
|
|
211
|
+
this.options.orderBy) {
|
|
212
|
+
throw new FirebaseEdgeError({
|
|
213
|
+
code: 'auth/invalid-argument',
|
|
214
|
+
message: 'Specify one supported sort field and an asc or desc direction.'
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return new IdentityQuery(this.auth, { ...this.options, orderBy: { field, direction } }, this.last, this.token);
|
|
218
|
+
}
|
|
219
|
+
offset(value) {
|
|
220
|
+
this.assertNativeQuery();
|
|
221
|
+
if (this.token !== undefined && value !== 0) {
|
|
222
|
+
throw new FirebaseEdgeError({
|
|
223
|
+
code: 'auth/invalid-argument',
|
|
224
|
+
message: 'Page tokens cannot be combined with a nonzero offset.'
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
228
|
+
throw new FirebaseEdgeError({
|
|
229
|
+
code: 'auth/invalid-argument',
|
|
230
|
+
message: 'offset must be a nonnegative safe integer.'
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return new IdentityQuery(this.auth, { ...this.options, offset: value }, this.last, this.token);
|
|
234
|
+
}
|
|
235
|
+
limit(value) {
|
|
236
|
+
return this.withLimit(value, false);
|
|
237
|
+
}
|
|
238
|
+
/** Return the last matching users in the query's original order. */
|
|
239
|
+
limitToLast(value) {
|
|
240
|
+
return this.withLimit(value, true);
|
|
241
|
+
}
|
|
242
|
+
withLimit(value, last) {
|
|
243
|
+
this.assertNativeQuery();
|
|
244
|
+
if (last && this.token !== undefined) {
|
|
245
|
+
throw new FirebaseEdgeError({
|
|
246
|
+
code: 'auth/invalid-argument',
|
|
247
|
+
message: 'Page tokens cannot be combined with limitToLast.'
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
if (!Number.isInteger(value) ||
|
|
251
|
+
value < 1 ||
|
|
252
|
+
value > (last ? 500 : 1000)) {
|
|
253
|
+
throw new FirebaseEdgeError({
|
|
254
|
+
code: 'auth/invalid-argument',
|
|
255
|
+
message: last
|
|
256
|
+
? 'limitToLast must be an integer from 1 through 500.'
|
|
257
|
+
: 'limit must be an integer from 1 through 1000; query pagination supports at most 500.'
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
return new IdentityQuery(this.auth, { ...this.options, limit: value }, last, this.token);
|
|
261
|
+
}
|
|
262
|
+
/** Resume a UID-ascending listing using the previous result's opaque token. */
|
|
263
|
+
pageToken(token) {
|
|
264
|
+
this.assertNativeQuery();
|
|
265
|
+
if (this.options.filter ||
|
|
266
|
+
this.last ||
|
|
267
|
+
(this.options.offset ?? 0) !== 0 ||
|
|
268
|
+
(this.options.orderBy &&
|
|
269
|
+
(this.options.orderBy.field !== 'uid' ||
|
|
270
|
+
this.options.orderBy.direction !== 'asc'))) {
|
|
271
|
+
throw new FirebaseEdgeError({
|
|
272
|
+
code: 'auth/invalid-argument',
|
|
273
|
+
message: 'Page tokens require an unfiltered UID-ascending listing without offset or limitToLast.'
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
if (typeof token !== 'string' || token.length === 0) {
|
|
277
|
+
throw new FirebaseEdgeError({
|
|
278
|
+
code: 'auth/invalid-argument',
|
|
279
|
+
message: 'pageToken must be a nonempty string returned by a previous listing.'
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return new IdentityQuery(this.auth, this.options, this.last, token);
|
|
283
|
+
}
|
|
284
|
+
/** Count the matching query with one count-only request. */
|
|
285
|
+
count() {
|
|
286
|
+
this.assertNativeQuery();
|
|
287
|
+
if (this.token !== undefined) {
|
|
288
|
+
throw new FirebaseEdgeError({
|
|
289
|
+
code: 'auth/invalid-argument',
|
|
290
|
+
message: 'Cannot count from a page token.'
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
return new IdentityCountQuery(this.auth, this.options, this.token);
|
|
294
|
+
}
|
|
295
|
+
assertNativeQuery() {
|
|
296
|
+
if (this.options.identifiers !== undefined ||
|
|
297
|
+
this.options.filter?.field === 'initialEmail' ||
|
|
298
|
+
this.options.filter?.operator === 'in') {
|
|
299
|
+
throw new FirebaseEdgeError({
|
|
300
|
+
code: 'auth/invalid-argument',
|
|
301
|
+
message: 'Lookup filters support only get().'
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/** Execute at most one account-data request; unsupported combinations fail before I/O. */
|
|
306
|
+
async get() {
|
|
307
|
+
try {
|
|
308
|
+
const { error, data } = await executeIdentityQuery(this.auth, this.options, this.last, this.token);
|
|
309
|
+
if (error) {
|
|
310
|
+
return { error, data: null };
|
|
311
|
+
}
|
|
312
|
+
return { error: null, data: data };
|
|
313
|
+
}
|
|
314
|
+
catch (cause) {
|
|
315
|
+
return { data: null, error: ensureError(cause) };
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/auth/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,11 @@ import { type CreateRequest, type UpdateRequest, type UserProvider } from './use
|
|
|
3
3
|
import type { FirebaseArrayIndexError } from './user-batch.js';
|
|
4
4
|
export type HashAlgorithmType = 'SCRYPT' | 'STANDARD_SCRYPT' | 'HMAC_SHA512' | 'HMAC_SHA256' | 'HMAC_SHA1' | 'HMAC_MD5' | 'MD5' | 'PBKDF_SHA1' | 'BCRYPT' | 'PBKDF2_SHA256' | 'SHA512' | 'SHA256' | 'SHA1';
|
|
5
5
|
export interface UserImportOptions {
|
|
6
|
-
|
|
6
|
+
/** Overwrite existing accounts with matching UIDs rather than rejecting them. */
|
|
7
|
+
allowOverwrite?: boolean;
|
|
8
|
+
/** Check duplicate emails, duplicate federated IDs, and provider validity. */
|
|
9
|
+
sanityCheck?: boolean;
|
|
10
|
+
hash?: {
|
|
7
11
|
algorithm: HashAlgorithmType;
|
|
8
12
|
key?: Uint8Array;
|
|
9
13
|
saltSeparator?: Uint8Array;
|
|
@@ -40,6 +44,8 @@ export interface PreparedUserImport {
|
|
|
40
44
|
indices: number[];
|
|
41
45
|
errors: FirebaseArrayIndexError[];
|
|
42
46
|
}
|
|
47
|
+
/** Validate writable user metadata and translate timestamps to milliseconds. @internal */
|
|
48
|
+
export declare function buildUserMetadata(metadata: UserMetadataRequest): Record<string, number>;
|
|
43
49
|
/** Translate the supported Firebase Admin hash options without hashing on the edge. */
|
|
44
50
|
export declare function buildImportHashOptions(options?: UserImportOptions): Record<string, unknown>;
|
|
45
51
|
/** Convert one imported record, reusing the existing profile and MFA validation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-import.d.ts","sourceRoot":"","sources":["../../src/auth/user-import.ts"],"names":[],"mappings":"AACA,OAAO,EACH,iBAAiB,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GACvB,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,WAAW,GACX,UAAU,GACV,KAAK,GACL,YAAY,GACZ,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AACb,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"user-import.d.ts","sourceRoot":"","sources":["../../src/auth/user-import.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/user-import.js
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { base64url } from 'jose';
|
|
2
2
|
import { FirebaseEdgeError, FirebaseAdminAuthErrorInfo, ensureError } from './errors.js';
|
|
3
3
|
import { buildUserRequest, buildCustomClaimsRequest, validateUserUid } from './user-request.js';
|
|
4
|
+
/** Validate writable user metadata and translate timestamps to milliseconds. @internal */
|
|
5
|
+
export function buildUserMetadata(metadata) {
|
|
6
|
+
if (!metadata ||
|
|
7
|
+
typeof metadata !== 'object' ||
|
|
8
|
+
Array.isArray(metadata) ||
|
|
9
|
+
Object.keys(metadata).some((key) => !['creationTime', 'lastSignInTime'].includes(key))) {
|
|
10
|
+
throw new Error('metadata accepts only creationTime and lastSignInTime.');
|
|
11
|
+
}
|
|
12
|
+
const body = {};
|
|
13
|
+
for (const [field, target] of [
|
|
14
|
+
['creationTime', 'createdAt'],
|
|
15
|
+
['lastSignInTime', 'lastLoginAt']
|
|
16
|
+
]) {
|
|
17
|
+
const value = metadata[field];
|
|
18
|
+
if (value === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (typeof value !== 'string' || Number.isNaN(Date.parse(value))) {
|
|
22
|
+
throw new Error(`Invalid metadata.${field}.`);
|
|
23
|
+
}
|
|
24
|
+
body[target] = Date.parse(value);
|
|
25
|
+
}
|
|
26
|
+
return body;
|
|
27
|
+
}
|
|
4
28
|
/** Encode byte buffers with the API's URL-safe base64 alphabet (including padding). */
|
|
5
29
|
function encodeBytes(value) {
|
|
6
30
|
if (!(value instanceof Uint8Array))
|
|
@@ -95,19 +119,7 @@ export function buildImportUser(user, tenantId) {
|
|
|
95
119
|
if (user.passwordSalt !== undefined)
|
|
96
120
|
body.salt = encodeBytes(user.passwordSalt);
|
|
97
121
|
if (user.metadata !== undefined) {
|
|
98
|
-
|
|
99
|
-
throw new Error('metadata must be an object.');
|
|
100
|
-
for (const [field, target] of [
|
|
101
|
-
['creationTime', 'createdAt'],
|
|
102
|
-
['lastSignInTime', 'lastLoginAt']
|
|
103
|
-
]) {
|
|
104
|
-
const value = user.metadata[field];
|
|
105
|
-
if (value === undefined)
|
|
106
|
-
continue;
|
|
107
|
-
if (typeof value !== 'string' || Number.isNaN(Date.parse(value)))
|
|
108
|
-
throw new Error(`Invalid metadata.${field}.`);
|
|
109
|
-
body[target] = Date.parse(value);
|
|
110
|
-
}
|
|
122
|
+
Object.assign(body, buildUserMetadata(user.metadata));
|
|
111
123
|
}
|
|
112
124
|
if (user.customClaims !== undefined) {
|
|
113
125
|
if (!user.customClaims ||
|
|
@@ -157,7 +169,7 @@ export function buildImportUser(user, tenantId) {
|
|
|
157
169
|
}
|
|
158
170
|
/** Prepare valid records while collecting per-user errors and preserving original indices. */
|
|
159
171
|
export function prepareUserImport(users, options, tenantId) {
|
|
160
|
-
if (!Array.isArray(users) || users.length > 1000)
|
|
172
|
+
if (!Array.isArray(users) || users.length > 1000) {
|
|
161
173
|
return {
|
|
162
174
|
data: null,
|
|
163
175
|
error: new FirebaseEdgeError({
|
|
@@ -165,6 +177,24 @@ export function prepareUserImport(users, options, tenantId) {
|
|
|
165
177
|
message: 'users must be an array of at most 1000 records.'
|
|
166
178
|
})
|
|
167
179
|
};
|
|
180
|
+
}
|
|
181
|
+
const flags = {};
|
|
182
|
+
for (const field of ['allowOverwrite', 'sanityCheck']) {
|
|
183
|
+
const value = options?.[field];
|
|
184
|
+
if (value === undefined) {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
if (typeof value !== 'boolean') {
|
|
188
|
+
return {
|
|
189
|
+
data: null,
|
|
190
|
+
error: new FirebaseEdgeError({
|
|
191
|
+
...FirebaseAdminAuthErrorInfo.ADMIN_API_INVALID_ARGUMENT,
|
|
192
|
+
message: `${field} must be a boolean.`
|
|
193
|
+
})
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
flags[field] = value;
|
|
197
|
+
}
|
|
168
198
|
const records = [];
|
|
169
199
|
const indices = [];
|
|
170
200
|
const errors = [];
|
|
@@ -191,7 +221,15 @@ export function prepareUserImport(users, options, tenantId) {
|
|
|
191
221
|
? buildImportHashOptions(options)
|
|
192
222
|
: {};
|
|
193
223
|
return {
|
|
194
|
-
data: {
|
|
224
|
+
data: {
|
|
225
|
+
body: {
|
|
226
|
+
users: records,
|
|
227
|
+
...hashOptions,
|
|
228
|
+
...flags
|
|
229
|
+
},
|
|
230
|
+
indices,
|
|
231
|
+
errors
|
|
232
|
+
},
|
|
195
233
|
error: null
|
|
196
234
|
};
|
|
197
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-import.js","sourceRoot":"","sources":["../../src/auth/user-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EACH,iBAAiB,EACjB,0BAA0B,EAC1B,WAAW,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EAIlB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-import.js","sourceRoot":"","sources":["../../src/auth/user-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-record.d.ts","sourceRoot":"","sources":["../../src/auth/user-record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,cAAc,EAAE,EAC7B,QAAQ,EAAE,iBAAiB,GAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"user-record.d.ts","sourceRoot":"","sources":["../../src/auth/user-record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,cAAc,EAAE,EAC7B,QAAQ,EAAE,iBAAiB,GAC5B,cAAc,CAmBhB;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,MAAM,IAAI,MAAM,CAAA;CAAE,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC;QAChC,eAAe,EAAE,YAAY,CAAC;YAC1B,GAAG,EAAE,MAAM,CAAC;YACZ,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACtC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,IAAI,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE;YACN,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACtC,EAAE,CAAC;KACP,CAAC,EAAE,CAAC;IACL,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GACtD,UAAU,CAoFZ"}
|