@dereekb/firebase 13.28.0 → 13.30.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.
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase/eslint",
3
- "version": "13.28.0",
3
+ "version": "13.30.0",
4
4
  "peerDependencies": {
5
- "@dereekb/util": "13.28.0",
5
+ "@dereekb/util": "13.30.0",
6
6
  "@marcbachmann/cel-js": "^7.6.1",
7
7
  "@typescript-eslint/parser": "8.59.3",
8
8
  "@typescript-eslint/utils": "8.59.3",
9
9
  "typescript": "5.9.3"
10
10
  },
11
11
  "devDependencies": {
12
- "@dereekb/firebase": "13.28.0",
12
+ "@dereekb/firebase": "13.30.0",
13
13
  "eslint": "10.4.0",
14
14
  "firebase": "^12.12.1"
15
15
  },
package/index.cjs.js CHANGED
@@ -11904,6 +11904,180 @@ function _class_call_check$c(instance, Constructor) {
11904
11904
  * `model.*` scope for a callModel CRUD operation.
11905
11905
  */ var CALL_MODEL_MISSING_OIDC_SCOPE_ERROR_CODE = 'CALL_MODEL_MISSING_OIDC_SCOPE';
11906
11906
 
11907
+ /**
11908
+ * The `client_secret_basic` confidential-client auth method (RFC 6749 §2.3.1, the
11909
+ * OAuth 2.0 default): the client sends its `client_id` and `client_secret` in the
11910
+ * `Authorization: Basic` header on token-endpoint requests. Standard pick for
11911
+ * server-side confidential clients.
11912
+ *
11913
+ * @example
11914
+ * ```ts
11915
+ * await oidcClientService.createClient({
11916
+ * token_endpoint_auth_method: CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD,
11917
+ * // ...
11918
+ * });
11919
+ * ```
11920
+ */ var CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_basic';
11921
+ /**
11922
+ * The `client_secret_post` confidential-client auth method (RFC 6749 §2.3.1, the
11923
+ * form-body variant): the client sends `client_id` and `client_secret` as form-encoded
11924
+ * parameters in the token-endpoint request body. Equivalent in security to
11925
+ * {@link CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD}; pick it for clients that
11926
+ * cannot set the `Authorization` header (some older HTTP stacks).
11927
+ *
11928
+ * @example
11929
+ * ```ts
11930
+ * await oidcClientService.createClient({
11931
+ * token_endpoint_auth_method: CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD,
11932
+ * // ...
11933
+ * });
11934
+ * ```
11935
+ */ var CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_post';
11936
+ /**
11937
+ * The `client_secret_jwt` confidential-client auth method (OIDC Core §9): the client
11938
+ * signs a JWT client assertion using its `client_secret` as the HMAC key (HS256/HS384/HS512)
11939
+ * and sends it as `client_assertion` on token-endpoint requests. The secret never goes on
11940
+ * the wire — only the signed assertion — which is the upgrade over the plain
11941
+ * `client_secret_*` methods, without requiring asymmetric keys like
11942
+ * {@link PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD}.
11943
+ *
11944
+ * @example
11945
+ * ```ts
11946
+ * await oidcClientService.createClient({
11947
+ * token_endpoint_auth_method: CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD,
11948
+ * // ...
11949
+ * });
11950
+ * ```
11951
+ */ var CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_jwt';
11952
+ /**
11953
+ * The `private_key_jwt` confidential-client auth method (OIDC Core §9): the client signs
11954
+ * a JWT client assertion with its private key (RS256/ES256/PS256) and sends it as
11955
+ * `client_assertion`; the server verifies via the client's published `jwks` / `jwks_uri`.
11956
+ * Strongest of the confidential-client methods — no shared secret is ever held by the
11957
+ * server — and the canonical pick for high-trust server-to-server integrations.
11958
+ *
11959
+ * @example
11960
+ * ```ts
11961
+ * await oidcClientService.createClient({
11962
+ * token_endpoint_auth_method: PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD,
11963
+ * jwks: { keys: [publicJwk] },
11964
+ * // ...
11965
+ * });
11966
+ * ```
11967
+ */ var PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD = 'private_key_jwt';
11968
+ /**
11969
+ * The public-client auth method (`'none'`): no client secret, PKCE-only. The client
11970
+ * authenticates the `authorization_code` flow with PKCE (RFC 7636) alone — there is no
11971
+ * shared secret and no client assertion. Canonical pick for clients that cannot keep a
11972
+ * secret (native apps, SPAs, CLIs) and what the MCP / Claude connector ecosystem
11973
+ * (claude.ai connector, Claude Code CLI, mcp-inspector via DCR) registers as.
11974
+ *
11975
+ * Mirrors {@link PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD}. `oidc-provider` still
11976
+ * enforces PKCE on the `authorization_code` flow for every client regardless of auth
11977
+ * method, so `'none'` simply unlocks the secret-less variant rather than disabling any
11978
+ * client authentication.
11979
+ *
11980
+ * @example
11981
+ * ```ts
11982
+ * await oidcClientService.createClient({
11983
+ * token_endpoint_auth_method: PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD,
11984
+ * // no client_secret — public PKCE client
11985
+ * // ...
11986
+ * });
11987
+ * ```
11988
+ */ var PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD = 'none';
11989
+ /**
11990
+ * All available token endpoint auth method options with display labels.
11991
+ */ var ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS = [
11992
+ {
11993
+ label: 'Client Secret Basic',
11994
+ value: CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD
11995
+ },
11996
+ {
11997
+ label: 'Client Secret Post',
11998
+ value: CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD
11999
+ },
12000
+ {
12001
+ label: 'Client Secret JWT',
12002
+ value: CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD
12003
+ },
12004
+ {
12005
+ label: 'Private Key JWT',
12006
+ value: PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD
12007
+ },
12008
+ {
12009
+ label: 'None (Public PKCE)',
12010
+ value: PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD
12011
+ }
12012
+ ];
12013
+ /**
12014
+ * All available OIDC token endpoint auth methods for the demo app, suitable for use in auth method picker fields.
12015
+ */ var ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHODS = ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS.map(function(x) {
12016
+ return x.value;
12017
+ });
12018
+
12019
+ // MARK: Utility
12020
+ /**
12021
+ * Filters the provider-profile registry to the profiles matching the given assigned keys.
12022
+ *
12023
+ * @param profiles - The full provider-profile registry.
12024
+ * @param keys - The profile keys assigned to a client (e.g. `OidcEntry` `dbx_provider_profiles`).
12025
+ * @returns The registry profiles whose key is in `keys`.
12026
+ */ function oidcProviderProfilesForKeys(profiles, keys) {
12027
+ var keySet = new Set(keys !== null && keys !== void 0 ? keys : []);
12028
+ return profiles.filter(function(profile) {
12029
+ return keySet.has(profile.key);
12030
+ });
12031
+ }
12032
+ /**
12033
+ * Collects every scope referenced by the given profiles.
12034
+ *
12035
+ * Passed the full registry, this is the set of "profile-gated" scopes — scopes a client may only
12036
+ * obtain via a profile. Passed a client's assigned profiles, this is the set of scopes those
12037
+ * profiles unlock for that client.
12038
+ *
12039
+ * @param profiles - The profiles to collect scopes from.
12040
+ * @returns The union of every profile's scopes.
12041
+ */ function scopesForOidcProviderProfiles(profiles) {
12042
+ var result = new Set();
12043
+ profiles.forEach(function(profile) {
12044
+ return profile.scopes.forEach(function(scopeConfig) {
12045
+ return result.add(scopeConfig.scope);
12046
+ });
12047
+ });
12048
+ return result;
12049
+ }
12050
+ /**
12051
+ * Collects the scopes marked `require: 'required'` across the given profiles.
12052
+ *
12053
+ * @param profiles - The profiles to collect required scopes from (typically a client's assigned profiles).
12054
+ * @returns The union of every profile's `required` scopes.
12055
+ */ function requiredScopesForOidcProviderProfiles(profiles) {
12056
+ var result = new Set();
12057
+ profiles.forEach(function(profile) {
12058
+ return profile.scopes.forEach(function(scopeConfig) {
12059
+ if (scopeConfig.require === 'required') {
12060
+ result.add(scopeConfig.scope);
12061
+ }
12062
+ });
12063
+ });
12064
+ return result;
12065
+ }
12066
+ /**
12067
+ * Builds picker entries for the given provider profiles, suitable for an admin profile-selection field.
12068
+ *
12069
+ * @param profiles - The provider-profile registry.
12070
+ * @returns One {@link OidcProviderProfileDetails} per profile.
12071
+ */ function oidcProviderProfileDetails(profiles) {
12072
+ return profiles.map(function(profile) {
12073
+ return {
12074
+ value: profile.key,
12075
+ label: profile.label,
12076
+ description: profile.description
12077
+ };
12078
+ });
12079
+ }
12080
+
11907
12081
  /**
11908
12082
  * Prefix shared by every callModel OIDC scope (e.g., `model.create`).
11909
12083
  *
@@ -12074,6 +12248,100 @@ var OFFLINE_ACCESS_OIDC_SCOPE_DETAILS = {
12074
12248
  value: SERVICE_TOKEN_OIDC_SCOPE,
12075
12249
  description: 'Admin-only: issue a long-lived, non-rotating token for server/API use'
12076
12250
  };
12251
+ /**
12252
+ * Parses a raw OIDC `scope` claim (a space-delimited string) into the granted scope set consumed by
12253
+ * {@link oidcScopeTermSatisfied} / {@link oidcScopeTermsSatisfied}.
12254
+ *
12255
+ * The single source of truth for scope-string parsing, shared by the server-side `getOidcScopesFromRequest`
12256
+ * (which reads `request.auth.token.scope`) and the model-api-layer enforcement (which reads the OIDC-validated
12257
+ * token off the request auth). Returns `undefined` when the claim is not a string — i.e. the caller is not
12258
+ * OIDC-authenticated (a regular Firebase ID token carries no `scope` claim) — so callers can distinguish
12259
+ * "no OIDC scopes to enforce against" (bypass) from "OIDC caller that was granted zero scopes" (empty set).
12260
+ *
12261
+ * @param scope - The raw `scope` claim value, typically a space-delimited string.
12262
+ * @returns A `Set` of the granted scopes, or `undefined` when `scope` is not a string.
12263
+ */ function oidcScopesFromScopeClaim(scope) {
12264
+ var result = typeof scope === 'string' ? new Set(scope.split(' ').filter(function(value) {
12265
+ return value.length > 0;
12266
+ })) : undefined;
12267
+ return result;
12268
+ }
12269
+ /**
12270
+ * Returns whether a single {@link OidcScopeTerm} is satisfied by the granted scope set.
12271
+ *
12272
+ * A string term requires that exact scope; an array term is an OR-group satisfied by ANY member (an
12273
+ * empty group is vacuously satisfied — no requirement).
12274
+ *
12275
+ * @param term - The scope term to test.
12276
+ * @param grantedScopes - The scopes the caller holds.
12277
+ * @returns `true` when the caller satisfies the term.
12278
+ */ function oidcScopeTermSatisfied(term, grantedScopes) {
12279
+ return typeof term === 'string' ? grantedScopes.has(term) : term.length === 0 || term.some(function(scope) {
12280
+ return grantedScopes.has(scope);
12281
+ });
12282
+ }
12283
+ /**
12284
+ * Returns whether EVERY {@link OidcScopeTerm} is satisfied by the granted scope set (AND-of-ORs).
12285
+ *
12286
+ * The single source of truth shared by the server-side callModel scope enforcement
12287
+ * (`assertModelApiOidcScope`) and the MCP tool-visibility filter, so enforcement and tool-list
12288
+ * visibility never drift. An empty term list is vacuously satisfied.
12289
+ *
12290
+ * @param terms - The AND-ed scope terms; each is a single scope or an OR-group.
12291
+ * @param grantedScopes - The scopes the caller holds.
12292
+ * @returns `true` when the caller satisfies every term.
12293
+ */ function oidcScopeTermsSatisfied(terms, grantedScopes) {
12294
+ return terms.every(function(term) {
12295
+ return oidcScopeTermSatisfied(term, grantedScopes);
12296
+ });
12297
+ }
12298
+ /**
12299
+ * Resolves the effective {@link OidcScopeTerm} an {@link OidcModelScopeRequirement} imposes for a
12300
+ * given call verb.
12301
+ *
12302
+ * A single-term requirement applies to every verb; a verb-keyed requirement returns the matching
12303
+ * verb entry, falling back to its `default`. Returns `undefined` when the requirement imposes no
12304
+ * term for the verb.
12305
+ *
12306
+ * @param requirement - The per-model requirement.
12307
+ * @param call - The call verb being resolved.
12308
+ * @returns The effective term for the verb, or `undefined`.
12309
+ */ function resolveOidcModelScopeRequirement(requirement, call) {
12310
+ var _verbMap_call;
12311
+ var isTerm = typeof requirement === 'string' || Array.isArray(requirement);
12312
+ var verbMap = requirement;
12313
+ return isTerm ? requirement : (_verbMap_call = verbMap[call]) !== null && _verbMap_call !== void 0 ? _verbMap_call : verbMap.default;
12314
+ }
12315
+ /**
12316
+ * Resolves the full AND-ed list of {@link OidcScopeTerm}s enforced for one callModel op — the single
12317
+ * composition rule shared by the server model-api scope gate and the MCP visibility filter (no drift).
12318
+ *
12319
+ * The list is the per-verb scope AND the effective GROUP term, where the group term is resolved by
12320
+ * precedence: per-function `requiredScope` (finest) > model-level requirement (verb-resolved; covers
12321
+ * plain reads) > configured default. Nullish and empty-OR-group terms are dropped, so an op with no
12322
+ * requirement yields an empty list (no scope gate — the caller can skip reading scopes). With no
12323
+ * config supplied and no per-function scope, the list is exactly `[perVerbScope]` (or empty), matching
12324
+ * the pre-grouping behavior.
12325
+ *
12326
+ * @param input - The per-verb scope, per-function scope, model requirement, verb, and default.
12327
+ * @returns The AND-ed scope terms to enforce (possibly empty).
12328
+ */ function resolveEffectiveOidcScopeTerms(input) {
12329
+ var _ref;
12330
+ var perVerbScope = input.perVerbScope, requiredScope = input.requiredScope, modelRequirement = input.modelRequirement, call = input.call, defaultRequiredScope = input.defaultRequiredScope;
12331
+ var modelTerm = modelRequirement == null ? undefined : resolveOidcModelScopeRequirement(modelRequirement, call);
12332
+ var effectiveGroupTerm = (_ref = requiredScope !== null && requiredScope !== void 0 ? requiredScope : modelTerm) !== null && _ref !== void 0 ? _ref : defaultRequiredScope;
12333
+ var result = [];
12334
+ for(var _i = 0, _iter = [
12335
+ perVerbScope,
12336
+ effectiveGroupTerm
12337
+ ]; _i < _iter.length; _i++){
12338
+ var term = _iter[_i];
12339
+ if (term != null && !(Array.isArray(term) && term.length === 0)) {
12340
+ result.push(term);
12341
+ }
12342
+ }
12343
+ return result;
12344
+ }
12077
12345
 
12078
12346
  function _array_like_to_array$6(arr, len) {
12079
12347
  if (len == null || len > arr.length) len = arr.length;
@@ -18822,7 +19090,8 @@ var updateOidcClientFieldParamsType = /* @__PURE__ */ arktype.type({
18822
19090
  redirect_uris: 'string[]',
18823
19091
  'logo_uri?': model.clearable('string'),
18824
19092
  'client_uri?': model.clearable('string'),
18825
- 'dbx_max_session_ttl?': model.clearable('number')
19093
+ 'dbx_max_session_ttl?': model.clearable('number'),
19094
+ 'dbx_provider_profiles?': model.clearable('string[]')
18826
19095
  });
18827
19096
  var createOidcClientFieldParamsType = updateOidcClientFieldParamsType.merge(arktype.type({
18828
19097
  token_endpoint_auth_method: "'client_secret_basic' | 'client_secret_post' | 'client_secret_jwt' | 'private_key_jwt' | 'none'"
@@ -18857,118 +19126,6 @@ var OIDC_MODEL_CRUD_FUNCTIONS_CONFIG = {
18857
19126
  * ```
18858
19127
  */ var oidcModelFunctionMap = callModelFirebaseFunctionMapFactory(OIDC_FUNCTION_TYPE_CONFIG_MAP, OIDC_MODEL_CRUD_FUNCTIONS_CONFIG);
18859
19128
 
18860
- /**
18861
- * The `client_secret_basic` confidential-client auth method (RFC 6749 §2.3.1, the
18862
- * OAuth 2.0 default): the client sends its `client_id` and `client_secret` in the
18863
- * `Authorization: Basic` header on token-endpoint requests. Standard pick for
18864
- * server-side confidential clients.
18865
- *
18866
- * @example
18867
- * ```ts
18868
- * await oidcClientService.createClient({
18869
- * token_endpoint_auth_method: CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD,
18870
- * // ...
18871
- * });
18872
- * ```
18873
- */ var CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_basic';
18874
- /**
18875
- * The `client_secret_post` confidential-client auth method (RFC 6749 §2.3.1, the
18876
- * form-body variant): the client sends `client_id` and `client_secret` as form-encoded
18877
- * parameters in the token-endpoint request body. Equivalent in security to
18878
- * {@link CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD}; pick it for clients that
18879
- * cannot set the `Authorization` header (some older HTTP stacks).
18880
- *
18881
- * @example
18882
- * ```ts
18883
- * await oidcClientService.createClient({
18884
- * token_endpoint_auth_method: CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD,
18885
- * // ...
18886
- * });
18887
- * ```
18888
- */ var CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_post';
18889
- /**
18890
- * The `client_secret_jwt` confidential-client auth method (OIDC Core §9): the client
18891
- * signs a JWT client assertion using its `client_secret` as the HMAC key (HS256/HS384/HS512)
18892
- * and sends it as `client_assertion` on token-endpoint requests. The secret never goes on
18893
- * the wire — only the signed assertion — which is the upgrade over the plain
18894
- * `client_secret_*` methods, without requiring asymmetric keys like
18895
- * {@link PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD}.
18896
- *
18897
- * @example
18898
- * ```ts
18899
- * await oidcClientService.createClient({
18900
- * token_endpoint_auth_method: CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD,
18901
- * // ...
18902
- * });
18903
- * ```
18904
- */ var CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD = 'client_secret_jwt';
18905
- /**
18906
- * The `private_key_jwt` confidential-client auth method (OIDC Core §9): the client signs
18907
- * a JWT client assertion with its private key (RS256/ES256/PS256) and sends it as
18908
- * `client_assertion`; the server verifies via the client's published `jwks` / `jwks_uri`.
18909
- * Strongest of the confidential-client methods — no shared secret is ever held by the
18910
- * server — and the canonical pick for high-trust server-to-server integrations.
18911
- *
18912
- * @example
18913
- * ```ts
18914
- * await oidcClientService.createClient({
18915
- * token_endpoint_auth_method: PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD,
18916
- * jwks: { keys: [publicJwk] },
18917
- * // ...
18918
- * });
18919
- * ```
18920
- */ var PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD = 'private_key_jwt';
18921
- /**
18922
- * The public-client auth method (`'none'`): no client secret, PKCE-only. The client
18923
- * authenticates the `authorization_code` flow with PKCE (RFC 7636) alone — there is no
18924
- * shared secret and no client assertion. Canonical pick for clients that cannot keep a
18925
- * secret (native apps, SPAs, CLIs) and what the MCP / Claude connector ecosystem
18926
- * (claude.ai connector, Claude Code CLI, mcp-inspector via DCR) registers as.
18927
- *
18928
- * Mirrors {@link PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD}. `oidc-provider` still
18929
- * enforces PKCE on the `authorization_code` flow for every client regardless of auth
18930
- * method, so `'none'` simply unlocks the secret-less variant rather than disabling any
18931
- * client authentication.
18932
- *
18933
- * @example
18934
- * ```ts
18935
- * await oidcClientService.createClient({
18936
- * token_endpoint_auth_method: PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD,
18937
- * // no client_secret — public PKCE client
18938
- * // ...
18939
- * });
18940
- * ```
18941
- */ var PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD = 'none';
18942
- /**
18943
- * All available token endpoint auth method options with display labels.
18944
- */ var ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS = [
18945
- {
18946
- label: 'Client Secret Basic',
18947
- value: CLIENT_SECRET_BASIC_TOKEN_ENDPOINT_AUTH_METHOD
18948
- },
18949
- {
18950
- label: 'Client Secret Post',
18951
- value: CLIENT_SECRET_POST_TOKEN_ENDPOINT_AUTH_METHOD
18952
- },
18953
- {
18954
- label: 'Client Secret JWT',
18955
- value: CLIENT_SECRET_JWT_TOKEN_ENDPOINT_AUTH_METHOD
18956
- },
18957
- {
18958
- label: 'Private Key JWT',
18959
- value: PRIVATE_KEY_JWT_TOKEN_ENDPOINT_AUTH_METHOD
18960
- },
18961
- {
18962
- label: 'None (Public PKCE)',
18963
- value: PUBLIC_PKCE_TOKEN_ENDPOINT_AUTH_METHOD
18964
- }
18965
- ];
18966
- /**
18967
- * All available OIDC token endpoint auth methods for the demo app, suitable for use in auth method picker fields.
18968
- */ var ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHODS = ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS.map(function(x) {
18969
- return x.value;
18970
- });
18971
-
18972
19129
  /**
18973
19130
  * Thrown if the target uploaded file does not exist.
18974
19131
  */ var UPLOADED_FILE_DOES_NOT_EXIST_ERROR_CODE = 'UPLOADED_FILE_DOES_NOT_EXIST';
@@ -22158,6 +22315,11 @@ exports.oidcEntryFirestoreCollection = oidcEntryFirestoreCollection;
22158
22315
  exports.oidcEntryIdentity = oidcEntryIdentity;
22159
22316
  exports.oidcGrantEntriesByUidQuery = oidcGrantEntriesByUidQuery;
22160
22317
  exports.oidcModelFunctionMap = oidcModelFunctionMap;
22318
+ exports.oidcProviderProfileDetails = oidcProviderProfileDetails;
22319
+ exports.oidcProviderProfilesForKeys = oidcProviderProfilesForKeys;
22320
+ exports.oidcScopeTermSatisfied = oidcScopeTermSatisfied;
22321
+ exports.oidcScopeTermsSatisfied = oidcScopeTermsSatisfied;
22322
+ exports.oidcScopesFromScopeClaim = oidcScopesFromScopeClaim;
22161
22323
  exports.onCallCreateModelParams = onCallCreateModelParams;
22162
22324
  exports.onCallCreateModelResult = onCallCreateModelResult;
22163
22325
  exports.onCallCreateModelResultWithDocs = onCallCreateModelResultWithDocs;
@@ -22194,10 +22356,14 @@ exports.readStorageFileMetadataParamsType = readStorageFileMetadataParamsType;
22194
22356
  exports.regenerateAllFlaggedStorageFileGroupsContentParamsType = regenerateAllFlaggedStorageFileGroupsContentParamsType;
22195
22357
  exports.regenerateStorageFileGroupContentParamsType = regenerateStorageFileGroupContentParamsType;
22196
22358
  exports.replaceConstraints = replaceConstraints;
22359
+ exports.requiredScopesForOidcProviderProfiles = requiredScopesForOidcProviderProfiles;
22360
+ exports.resolveEffectiveOidcScopeTerms = resolveEffectiveOidcScopeTerms;
22361
+ exports.resolveOidcModelScopeRequirement = resolveOidcModelScopeRequirement;
22197
22362
  exports.resyncAllNotificationUserParamsType = resyncAllNotificationUserParamsType;
22198
22363
  exports.resyncNotificationUserParamsType = targetModelParamsType;
22199
22364
  exports.rotateOidcClientSecretParamsType = targetModelParamsType;
22200
22365
  exports.scheduledFunctionDevelopmentFirebaseFunctionParamsType = scheduledFunctionDevelopmentFirebaseFunctionParamsType;
22366
+ exports.scopesForOidcProviderProfiles = scopesForOidcProviderProfiles;
22201
22367
  exports.selectFromFirebaseModelsService = selectFromFirebaseModelsService;
22202
22368
  exports.sendNotificationParamsType = sendNotificationParamsType;
22203
22369
  exports.sendQueuedNotificationsParamsType = sendQueuedNotificationsParamsType;