firebase-admin-edge 3.0.2 → 3.1.0

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.
Files changed (45) hide show
  1. package/README.md +17 -14
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/firebase-edge-server.d.ts +2 -0
  4. package/dist/firebase-edge-server.d.ts.map +1 -1
  5. package/dist/firebase-edge-server.js +7 -0
  6. package/dist/firebase-edge-server.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/remote-config/condition-evaluator.d.ts +6 -0
  12. package/dist/remote-config/condition-evaluator.d.ts.map +1 -0
  13. package/dist/remote-config/condition-evaluator.js +122 -0
  14. package/dist/remote-config/condition-evaluator.js.map +1 -0
  15. package/dist/remote-config/remote-config-endpoints.d.ts +22 -0
  16. package/dist/remote-config/remote-config-endpoints.d.ts.map +1 -0
  17. package/dist/remote-config/remote-config-endpoints.js +161 -0
  18. package/dist/remote-config/remote-config-endpoints.js.map +1 -0
  19. package/dist/remote-config/remote-config-fetch-response.d.ts +8 -0
  20. package/dist/remote-config/remote-config-fetch-response.d.ts.map +1 -0
  21. package/dist/remote-config/remote-config-fetch-response.js +26 -0
  22. package/dist/remote-config/remote-config-fetch-response.js.map +1 -0
  23. package/dist/remote-config/remote-config-results.d.ts +15 -0
  24. package/dist/remote-config/remote-config-results.d.ts.map +1 -0
  25. package/dist/remote-config/remote-config-results.js +26 -0
  26. package/dist/remote-config/remote-config-results.js.map +1 -0
  27. package/dist/remote-config/remote-config-template.d.ts +20 -0
  28. package/dist/remote-config/remote-config-template.d.ts.map +1 -0
  29. package/dist/remote-config/remote-config-template.js +129 -0
  30. package/dist/remote-config/remote-config-template.js.map +1 -0
  31. package/dist/remote-config/remote-config-types.d.ts +807 -0
  32. package/dist/remote-config/remote-config-types.d.ts.map +1 -0
  33. package/dist/remote-config/remote-config-types.js +119 -0
  34. package/dist/remote-config/remote-config-types.js.map +1 -0
  35. package/dist/remote-config/remote-config.d.ts +34 -0
  36. package/dist/remote-config/remote-config.d.ts.map +1 -0
  37. package/dist/remote-config/remote-config.js +112 -0
  38. package/dist/remote-config/remote-config.js.map +1 -0
  39. package/dist/remote-config/server-template.d.ts +33 -0
  40. package/dist/remote-config/server-template.d.ts.map +1 -0
  41. package/dist/remote-config/server-template.js +145 -0
  42. package/dist/remote-config/server-template.js.map +1 -0
  43. package/dist/rest-fetch.d.ts +1 -1
  44. package/dist/rest-fetch.d.ts.map +1 -1
  45. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config-types.d.ts","sourceRoot":"","sources":["../../src/remote-config/remote-config-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /*!
2
+ * Copyright 2021 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Defines supported operators for percent conditions.
18
+ */
19
+ export var PercentConditionOperator;
20
+ (function (PercentConditionOperator) {
21
+ /**
22
+ * A catchall error case.
23
+ */
24
+ PercentConditionOperator["UNKNOWN"] = "UNKNOWN";
25
+ /**
26
+ * Target percentiles less than or equal to the target percent.
27
+ * A condition using this operator must specify microPercent.
28
+ */
29
+ PercentConditionOperator["LESS_OR_EQUAL"] = "LESS_OR_EQUAL";
30
+ /**
31
+ * Target percentiles greater than the target percent.
32
+ * A condition using this operator must specify microPercent.
33
+ */
34
+ PercentConditionOperator["GREATER_THAN"] = "GREATER_THAN";
35
+ /**
36
+ * Target percentiles within an interval defined by a lower bound and an
37
+ * upper bound. The lower bound is an exclusive (open) bound and the
38
+ * micro_percent_range_upper_bound is an inclusive (closed) bound.
39
+ * A condition using this operator must specify microPercentRange.
40
+ */
41
+ PercentConditionOperator["BETWEEN"] = "BETWEEN";
42
+ })(PercentConditionOperator || (PercentConditionOperator = {}));
43
+ /**
44
+ * Defines supported operators for custom signal conditions.
45
+ */
46
+ export var CustomSignalOperator;
47
+ (function (CustomSignalOperator) {
48
+ /**
49
+ * A catchall error case.
50
+ */
51
+ CustomSignalOperator["UNKNOWN"] = "UNKNOWN";
52
+ /**
53
+ * Matches a numeric value less than the target value.
54
+ */
55
+ CustomSignalOperator["NUMERIC_LESS_THAN"] = "NUMERIC_LESS_THAN";
56
+ /**
57
+ * Matches a numeric value less than or equal to the target value.
58
+ */
59
+ CustomSignalOperator["NUMERIC_LESS_EQUAL"] = "NUMERIC_LESS_EQUAL";
60
+ /**
61
+ * Matches a numeric value equal to the target value.
62
+ */
63
+ CustomSignalOperator["NUMERIC_EQUAL"] = "NUMERIC_EQUAL";
64
+ /**
65
+ * Matches a numeric value not equal to the target value.
66
+ */
67
+ CustomSignalOperator["NUMERIC_NOT_EQUAL"] = "NUMERIC_NOT_EQUAL";
68
+ /**
69
+ * Matches a numeric value greater than the target value.
70
+ */
71
+ CustomSignalOperator["NUMERIC_GREATER_THAN"] = "NUMERIC_GREATER_THAN";
72
+ /**
73
+ * Matches a numeric value greater than or equal to the target value.
74
+ */
75
+ CustomSignalOperator["NUMERIC_GREATER_EQUAL"] = "NUMERIC_GREATER_EQUAL";
76
+ /**
77
+ * Matches if at least one of the target values is a substring of the actual custom
78
+ * signal value (e.g. "abc" contains the string "a", "bc").
79
+ */
80
+ CustomSignalOperator["STRING_CONTAINS"] = "STRING_CONTAINS";
81
+ /**
82
+ * Matches if none of the target values is a substring of the actual custom signal value.
83
+ */
84
+ CustomSignalOperator["STRING_DOES_NOT_CONTAIN"] = "STRING_DOES_NOT_CONTAIN";
85
+ /**
86
+ * Matches if the actual value exactly matches at least one of the target values.
87
+ */
88
+ CustomSignalOperator["STRING_EXACTLY_MATCHES"] = "STRING_EXACTLY_MATCHES";
89
+ /**
90
+ * The target regular expression matches at least one of the actual values.
91
+ * The regex conforms to RE2 format. See https://github.com/google/re2/wiki/Syntax
92
+ */
93
+ CustomSignalOperator["STRING_CONTAINS_REGEX"] = "STRING_CONTAINS_REGEX";
94
+ /**
95
+ * Matches if the actual version value is less than the target value.
96
+ */
97
+ CustomSignalOperator["SEMANTIC_VERSION_LESS_THAN"] = "SEMANTIC_VERSION_LESS_THAN";
98
+ /**
99
+ * Matches if the actual version value is less than or equal to the target value.
100
+ */
101
+ CustomSignalOperator["SEMANTIC_VERSION_LESS_EQUAL"] = "SEMANTIC_VERSION_LESS_EQUAL";
102
+ /**
103
+ * Matches if the actual version value is equal to the target value.
104
+ */
105
+ CustomSignalOperator["SEMANTIC_VERSION_EQUAL"] = "SEMANTIC_VERSION_EQUAL";
106
+ /**
107
+ * Matches if the actual version value is not equal to the target value.
108
+ */
109
+ CustomSignalOperator["SEMANTIC_VERSION_NOT_EQUAL"] = "SEMANTIC_VERSION_NOT_EQUAL";
110
+ /**
111
+ * Matches if the actual version value is greater than the target value.
112
+ */
113
+ CustomSignalOperator["SEMANTIC_VERSION_GREATER_THAN"] = "SEMANTIC_VERSION_GREATER_THAN";
114
+ /**
115
+ * Matches if the actual version value is greater than or equal to the target value.
116
+ */
117
+ CustomSignalOperator["SEMANTIC_VERSION_GREATER_EQUAL"] = "SEMANTIC_VERSION_GREATER_EQUAL";
118
+ })(CustomSignalOperator || (CustomSignalOperator = {}));
119
+ //# sourceMappingURL=remote-config-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config-types.js","sourceRoot":"","sources":["../../src/remote-config/remote-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA+HH;;GAEG;AACH,MAAM,CAAN,IAAY,wBAyBX;AAzBD,WAAY,wBAAwB;IAChC;;OAEG;IACH,+CAAmB,CAAA;IAEnB;;;OAGG;IACH,2DAA+B,CAAA;IAE/B;;;OAGG;IACH,yDAA6B,CAAA;IAE7B;;;;;OAKG;IACH,+CAAmB,CAAA;AACvB,CAAC,EAzBW,wBAAwB,KAAxB,wBAAwB,QAyBnC;AAqDD;;GAEG;AACH,MAAM,CAAN,IAAY,oBAuFX;AAvFD,WAAY,oBAAoB;IAC5B;;OAEG;IACH,2CAAmB,CAAA;IAEnB;;OAEG;IACH,+DAAuC,CAAA;IAEvC;;OAEG;IACH,iEAAyC,CAAA;IAEzC;;OAEG;IACH,uDAA+B,CAAA;IAE/B;;OAEG;IACH,+DAAuC,CAAA;IAEvC;;OAEG;IACH,qEAA6C,CAAA;IAE7C;;OAEG;IACH,uEAA+C,CAAA;IAE/C;;;OAGG;IACH,2DAAmC,CAAA;IAEnC;;OAEG;IACH,2EAAmD,CAAA;IAEnD;;OAEG;IACH,yEAAiD,CAAA;IAEjD;;;OAGG;IACH,uEAA+C,CAAA;IAE/C;;OAEG;IACH,iFAAyD,CAAA;IAEzD;;OAEG;IACH,mFAA2D,CAAA;IAE3D;;OAEG;IACH,yEAAiD,CAAA;IAEjD;;OAEG;IACH,iFAAyD,CAAA;IAEzD;;OAEG;IACH,uFAA+D,CAAA;IAE/D;;OAEG;IACH,yFAAiE,CAAA;AACrE,CAAC,EAvFW,oBAAoB,KAApB,oBAAoB,QAuF/B"}
@@ -0,0 +1,34 @@
1
+ import type { ServiceAccount } from '../auth/firebase-types.js';
2
+ import type { CacheConfig } from '../auth/cache-types.js';
3
+ import { RemoteConfigTemplate } from './remote-config-template.js';
4
+ import { ServerTemplate } from './server-template.js';
5
+ import { type RemoteConfigResult } from './remote-config-results.js';
6
+ import type { RemoteConfigTemplate as TemplateData, GetServerTemplateOptions, InitServerTemplateOptions, ListVersionsOptions, ListVersionsResult } from './remote-config-types.js';
7
+ export * from './remote-config-types.js';
8
+ export type { RemoteConfigResult } from './remote-config-results.js';
9
+ export { RemoteConfigTemplate, ServerTemplate };
10
+ export { RemoteConfigFetchResponse } from './remote-config-fetch-response.js';
11
+ export interface RemoteConfigOptions {
12
+ fetch?: typeof globalThis.fetch;
13
+ cache?: CacheConfig;
14
+ cacheName?: string;
15
+ }
16
+ export declare class RemoteConfig {
17
+ private readonly serviceAccount;
18
+ private readonly options;
19
+ private readonly fetch;
20
+ constructor(serviceAccount: ServiceAccount, options?: RemoteConfigOptions);
21
+ private request;
22
+ getTemplate(): Promise<RemoteConfigResult<RemoteConfigTemplate>>;
23
+ getTemplateAtVersion(versionNumber: string | number): Promise<RemoteConfigResult<RemoteConfigTemplate>>;
24
+ validateTemplate(template: TemplateData): Promise<RemoteConfigResult<RemoteConfigTemplate>>;
25
+ publishTemplate(template: TemplateData, options?: {
26
+ force: boolean;
27
+ }): Promise<RemoteConfigResult<RemoteConfigTemplate>>;
28
+ rollback(versionNumber: string | number): Promise<RemoteConfigResult<RemoteConfigTemplate>>;
29
+ listVersions(options?: ListVersionsOptions): Promise<RemoteConfigResult<ListVersionsResult>>;
30
+ createTemplateFromJSON(json: string): RemoteConfigResult<RemoteConfigTemplate>;
31
+ initServerTemplate(options?: InitServerTemplateOptions): ServerTemplate;
32
+ getServerTemplate(options?: GetServerTemplateOptions): Promise<RemoteConfigResult<ServerTemplate>>;
33
+ }
34
+ //# sourceMappingURL=remote-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config.d.ts","sourceRoot":"","sources":["../../src/remote-config/remote-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAIH,KAAK,kBAAkB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACR,oBAAoB,IAAI,YAAY,EAEpC,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,0BAA0B,CAAC;AAElC,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,YAAY;IAGjB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAE3B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,mBAAwB;YAQxC,OAAO;IAuCrB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAGhE,oBAAoB,CAChB,aAAa,EAAE,MAAM,GAAG,MAAM,GAC/B,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAGpD,gBAAgB,CACZ,QAAQ,EAAE,YAAY,GACvB,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAG9C,eAAe,CACjB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAgBpD,QAAQ,CACJ,aAAa,EAAE,MAAM,GAAG,MAAM,GAC/B,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAGpD,YAAY,CACR,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAIlD,sBAAsB,CAClB,IAAI,EAAE,MAAM,GACb,kBAAkB,CAAC,oBAAoB,CAAC;IAgB3C,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,cAAc;IAOjE,iBAAiB,CACnB,OAAO,CAAC,EAAE,wBAAwB,GACnC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;CAYjD"}
@@ -0,0 +1,112 @@
1
+ import { getToken } from '../auth/google-oauth.js';
2
+ import { FirebaseEdgeError } from '../auth/errors.js';
3
+ import { remoteConfigRequest } from './remote-config-endpoints.js';
4
+ import { RemoteConfigTemplate } from './remote-config-template.js';
5
+ import { ServerTemplate } from './server-template.js';
6
+ import { invalidRemoteConfig, isRemoteConfigObject, remoteConfigError } from './remote-config-results.js';
7
+ export * from './remote-config-types.js';
8
+ export { RemoteConfigTemplate, ServerTemplate };
9
+ export { RemoteConfigFetchResponse } from './remote-config-fetch-response.js';
10
+ export class RemoteConfig {
11
+ serviceAccount;
12
+ options;
13
+ fetch;
14
+ constructor(serviceAccount, options = {}) {
15
+ this.serviceAccount = serviceAccount;
16
+ this.options = options;
17
+ if (!serviceAccount?.project_id?.trim()) {
18
+ invalidRemoteConfig('A service account project ID is required.');
19
+ }
20
+ this.fetch = options.fetch ?? globalThis.fetch;
21
+ }
22
+ async request(operation) {
23
+ try {
24
+ const key = `${this.options.cacheName ?? '__cache'}:remote-config:${this.serviceAccount.client_email}`;
25
+ let token = await this.options.cache?.getCache(key);
26
+ if (!token?.access_token) {
27
+ const { error, data } = await getToken(this.serviceAccount, this.fetch);
28
+ if (error) {
29
+ return { error, data: null };
30
+ }
31
+ token = data;
32
+ const ttl = (data.expires_in - 60) * 1000;
33
+ if (Number.isFinite(ttl) && ttl > 0) {
34
+ await this.options.cache?.setCache(key, data, ttl);
35
+ }
36
+ }
37
+ const data = await remoteConfigRequest(this.serviceAccount.project_id, token.access_token, operation, this.fetch);
38
+ if (operation.type === 'list' || operation.type === 'server') {
39
+ return { error: null, data: data };
40
+ }
41
+ return {
42
+ error: null,
43
+ data: new RemoteConfigTemplate(data)
44
+ };
45
+ }
46
+ catch (cause) {
47
+ return { error: remoteConfigError(cause), data: null };
48
+ }
49
+ }
50
+ getTemplate() {
51
+ return this.request({ type: 'get' });
52
+ }
53
+ getTemplateAtVersion(versionNumber) {
54
+ return this.request({ type: 'get', version: versionNumber });
55
+ }
56
+ validateTemplate(template) {
57
+ return this.request({ type: 'validate', template });
58
+ }
59
+ async publishTemplate(template, options) {
60
+ if (options !== undefined && !isRemoteConfigObject(options)) {
61
+ return {
62
+ error: new FirebaseEdgeError({
63
+ code: 'remote-config/invalid-argument',
64
+ message: 'Publish options must be an object.'
65
+ }),
66
+ data: null
67
+ };
68
+ }
69
+ return this.request({
70
+ type: 'publish',
71
+ template,
72
+ force: options?.force
73
+ });
74
+ }
75
+ rollback(versionNumber) {
76
+ return this.request({ type: 'rollback', version: versionNumber });
77
+ }
78
+ listVersions(options) {
79
+ return this.request({ type: 'list', options });
80
+ }
81
+ createTemplateFromJSON(json) {
82
+ try {
83
+ if (typeof json !== 'string' || !json.trim()) {
84
+ invalidRemoteConfig('Template JSON must be a non-empty string.');
85
+ }
86
+ return {
87
+ error: null,
88
+ data: new RemoteConfigTemplate(JSON.parse(json))
89
+ };
90
+ }
91
+ catch (cause) {
92
+ return { error: remoteConfigError(cause), data: null };
93
+ }
94
+ }
95
+ initServerTemplate(options) {
96
+ return new ServerTemplate(() => this.request({ type: 'server' }), options);
97
+ }
98
+ async getServerTemplate(options) {
99
+ try {
100
+ const template = this.initServerTemplate(options);
101
+ const { error } = await template.load();
102
+ if (error) {
103
+ return { error, data: null };
104
+ }
105
+ return { error: null, data: template };
106
+ }
107
+ catch (cause) {
108
+ return { error: remoteConfigError(cause), data: null };
109
+ }
110
+ }
111
+ }
112
+ //# sourceMappingURL=remote-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/remote-config/remote-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { DefaultConfig, EvaluationContext, ServerTemplateData, ServerTemplateDataType, ServerConfig, Value, ValueSource, InitServerTemplateOptions } from './remote-config-types.js';
2
+ import { type RemoteConfigResult } from './remote-config-results.js';
3
+ /** @internal */
4
+ export declare class ConfigValue implements Value {
5
+ private readonly source;
6
+ private readonly value;
7
+ constructor(source: ValueSource, value?: string);
8
+ asString(): string;
9
+ asBoolean(): boolean;
10
+ asNumber(): number;
11
+ getSource(): ValueSource;
12
+ }
13
+ /** @internal */
14
+ export declare class EvaluatedServerConfig implements ServerConfig {
15
+ private readonly values;
16
+ constructor(values: Record<string, Value>);
17
+ getValue(key: string): Value;
18
+ getString(key: string): string;
19
+ getBoolean(key: string): boolean;
20
+ getNumber(key: string): number;
21
+ getAll(): Record<string, Value>;
22
+ }
23
+ export declare class ServerTemplate {
24
+ private readonly fetchTemplate;
25
+ private template?;
26
+ readonly defaultConfig: DefaultConfig;
27
+ constructor(fetchTemplate: () => Promise<RemoteConfigResult<ServerTemplateData>>, options?: InitServerTemplateOptions);
28
+ load(): Promise<RemoteConfigResult<void>>;
29
+ set(input: ServerTemplateDataType): RemoteConfigResult<void>;
30
+ evaluate(context?: EvaluationContext): Promise<RemoteConfigResult<ServerConfig>>;
31
+ toJSON(): ServerTemplateData | undefined;
32
+ }
33
+ //# sourceMappingURL=server-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-template.d.ts","sourceRoot":"","sources":["../../src/remote-config/server-template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,yBAAyB,EAC5B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAIH,KAAK,kBAAkB,EAC1B,MAAM,4BAA4B,CAAC;AAEpC,gBAAgB;AAChB,qBAAa,WAAY,YAAW,KAAK;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,MAAM,EAAE,WAAW,EACnB,KAAK,SAAK;IAE/B,QAAQ,IAAI,MAAM;IAGlB,SAAS,IAAI,OAAO;IAQpB,QAAQ,IAAI,MAAM;IAOlB,SAAS,IAAI,WAAW;CAG3B;AAED,gBAAgB;AAChB,qBAAa,qBAAsB,YAAW,YAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAK5B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAG9B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAGhC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAG9B,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;CAGlC;AAED,qBAAa,cAAc;IAKnB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJlC,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAGjB,aAAa,EAAE,MAAM,OAAO,CACzC,kBAAkB,CAAC,kBAAkB,CAAC,CACzC,EACD,OAAO,GAAE,yBAA8B;IA2BrC,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAY/C,GAAG,CAAC,KAAK,EAAE,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAWtD,QAAQ,CACV,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IA6C5C,MAAM,IAAI,kBAAkB,GAAG,SAAS;CAM3C"}
@@ -0,0 +1,145 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ import { normalizeTemplate } from './remote-config-template.js';
3
+ import { evaluateCondition } from './condition-evaluator.js';
4
+ import { invalidRemoteConfig, isRemoteConfigObject, remoteConfigError } from './remote-config-results.js';
5
+ /** @internal */
6
+ export class ConfigValue {
7
+ source;
8
+ value;
9
+ constructor(source, value = '') {
10
+ this.source = source;
11
+ this.value = value;
12
+ }
13
+ asString() {
14
+ return this.value;
15
+ }
16
+ asBoolean() {
17
+ return (this.source !== 'static' &&
18
+ ['1', 'true', 't', 'yes', 'y', 'on'].includes(this.value.toLowerCase()));
19
+ }
20
+ asNumber() {
21
+ if (this.source === 'static') {
22
+ return 0;
23
+ }
24
+ const number = Number(this.value);
25
+ return Number.isNaN(number) ? 0 : number;
26
+ }
27
+ getSource() {
28
+ return this.source;
29
+ }
30
+ }
31
+ /** @internal */
32
+ export class EvaluatedServerConfig {
33
+ values;
34
+ constructor(values) {
35
+ this.values = values;
36
+ }
37
+ getValue(key) {
38
+ return Object.hasOwn(this.values, key)
39
+ ? this.values[key]
40
+ : new ConfigValue('static');
41
+ }
42
+ getString(key) {
43
+ return this.getValue(key).asString();
44
+ }
45
+ getBoolean(key) {
46
+ return this.getValue(key).asBoolean();
47
+ }
48
+ getNumber(key) {
49
+ return this.getValue(key).asNumber();
50
+ }
51
+ getAll() {
52
+ return { ...this.values };
53
+ }
54
+ }
55
+ export class ServerTemplate {
56
+ fetchTemplate;
57
+ template;
58
+ defaultConfig;
59
+ constructor(fetchTemplate, options = {}) {
60
+ this.fetchTemplate = fetchTemplate;
61
+ if (!isRemoteConfigObject(options) ||
62
+ (options.defaultConfig !== undefined &&
63
+ !isRemoteConfigObject(options.defaultConfig))) {
64
+ invalidRemoteConfig('Server template options and defaultConfig must be objects.');
65
+ }
66
+ this.defaultConfig = { ...options.defaultConfig };
67
+ for (const value of Object.values(this.defaultConfig)) {
68
+ if (!['string', 'number', 'boolean'].includes(typeof value)) {
69
+ invalidRemoteConfig('Default values must be strings, numbers, or booleans.');
70
+ }
71
+ }
72
+ if (options.template !== undefined) {
73
+ const { error } = this.set(options.template);
74
+ if (error) {
75
+ throw error;
76
+ }
77
+ }
78
+ }
79
+ async load() {
80
+ try {
81
+ const { error, data } = await this.fetchTemplate();
82
+ if (error) {
83
+ return { error, data: null };
84
+ }
85
+ return this.set(data);
86
+ }
87
+ catch (cause) {
88
+ return { error: remoteConfigError(cause), data: null };
89
+ }
90
+ }
91
+ set(input) {
92
+ try {
93
+ const parsed = typeof input === 'string' ? JSON.parse(input) : input;
94
+ this.template = normalizeTemplate(parsed);
95
+ return { error: null, data: undefined };
96
+ }
97
+ catch (cause) {
98
+ return { error: remoteConfigError(cause), data: null };
99
+ }
100
+ }
101
+ async evaluate(context = {}) {
102
+ try {
103
+ if (!this.template) {
104
+ throw new FirebaseEdgeError({
105
+ code: 'remote-config/failed-precondition',
106
+ message: 'Load or set a server template before evaluation.'
107
+ });
108
+ }
109
+ if (!isRemoteConfigObject(context)) {
110
+ invalidRemoteConfig('Evaluation context must be an object.');
111
+ }
112
+ const matches = [];
113
+ for (const named of this.template.conditions) {
114
+ const matched = await evaluateCondition(named.condition, context);
115
+ if (matched) {
116
+ matches.push(named.name);
117
+ }
118
+ }
119
+ const values = Object.create(null);
120
+ for (const [key, value] of Object.entries(this.defaultConfig)) {
121
+ values[key] = new ConfigValue('default', String(value));
122
+ }
123
+ for (const [key, parameter] of Object.entries(this.template.parameters)) {
124
+ const condition = matches.find((name) => Object.hasOwn(parameter.conditionalValues ?? {}, name));
125
+ const selected = condition !== undefined
126
+ ? parameter.conditionalValues?.[condition]
127
+ : parameter.defaultValue;
128
+ if (selected && 'value' in selected) {
129
+ values[key] = new ConfigValue('remote', selected.value);
130
+ }
131
+ }
132
+ return { error: null, data: new EvaluatedServerConfig(values) };
133
+ }
134
+ catch (cause) {
135
+ return { error: remoteConfigError(cause), data: null };
136
+ }
137
+ }
138
+ toJSON() {
139
+ if (!this.template) {
140
+ return undefined;
141
+ }
142
+ return JSON.parse(JSON.stringify(this.template));
143
+ }
144
+ }
145
+ //# sourceMappingURL=server-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-template.js","sourceRoot":"","sources":["../../src/remote-config/server-template.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare const restFetch: <T, A>(url: string, options?: {
4
4
  form?: boolean;
5
5
  acceptJson?: boolean;
6
6
  bearerToken?: string;
7
- method?: "POST" | "GET" | "PATCH" | "DELETE";
7
+ method?: "POST" | "GET" | "PATCH" | "DELETE" | "PUT";
8
8
  global?: {
9
9
  fetch?: typeof fetch;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rest-fetch.d.ts","sourceRoot":"","sources":["../src/rest-fetch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAU,CAAC,EAAE,CAAC,EAChC,KAAK,MAAM,EACX,UAAU;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;;;;;;EAqEJ,CAAC"}
1
+ {"version":3,"file":"rest-fetch.d.ts","sourceRoot":"","sources":["../src/rest-fetch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAU,CAAC,EAAE,CAAC,EAChC,KAAK,MAAM,EACX,UAAU;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrD,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;;;;;;EAqEJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firebase-admin-edge",
3
- "version": "3.0.2",
3
+ "version": "3.1.0",
4
4
  "description": "Firebase Authentication, Firestore, and Admin features for edge runtimes and serverless apps, built with TypeScript and Firebase REST APIs.",
5
5
  "keywords": [
6
6
  "firebase",
@@ -30,7 +30,8 @@
30
30
  "url": "git+https://github.com/jdgamble555/firebase-admin-edge.git"
31
31
  },
32
32
  "files": [
33
- "dist"
33
+ "dist",
34
+ "THIRD_PARTY_NOTICES.md"
34
35
  ],
35
36
  "type": "module",
36
37
  "main": "dist/index.js",