@tern-secure/backend 1.2.0-canary.v20250919134427 → 1.2.0-canary.v20251002175916

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 (78) hide show
  1. package/auth/package.json +5 -0
  2. package/dist/admin/index.d.ts +1 -1
  3. package/dist/admin/index.d.ts.map +1 -1
  4. package/dist/admin/index.js +200 -182
  5. package/dist/admin/index.js.map +1 -1
  6. package/dist/admin/index.mjs +23 -489
  7. package/dist/admin/index.mjs.map +1 -1
  8. package/dist/admin/nextSessionTernSecure.d.ts.map +1 -1
  9. package/dist/admin/sessionTernSecure.d.ts +27 -5
  10. package/dist/admin/sessionTernSecure.d.ts.map +1 -1
  11. package/dist/auth/getauth.d.ts +15 -0
  12. package/dist/auth/getauth.d.ts.map +1 -0
  13. package/dist/auth/index.d.ts +2 -0
  14. package/dist/auth/index.d.ts.map +1 -0
  15. package/dist/auth/index.js +694 -0
  16. package/dist/auth/index.js.map +1 -0
  17. package/dist/auth/index.mjs +53 -0
  18. package/dist/auth/index.mjs.map +1 -0
  19. package/dist/{chunk-ZIO4EKS5.mjs → chunk-4SGWLAJG.mjs} +8 -31
  20. package/dist/chunk-4SGWLAJG.mjs.map +1 -0
  21. package/dist/chunk-NEPV6OWI.mjs +550 -0
  22. package/dist/chunk-NEPV6OWI.mjs.map +1 -0
  23. package/dist/chunk-YKIA5EBF.mjs +142 -0
  24. package/dist/chunk-YKIA5EBF.mjs.map +1 -0
  25. package/dist/constants.d.ts +4 -5
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/fireRestApi/createFireApi.d.ts +12 -0
  28. package/dist/fireRestApi/createFireApi.d.ts.map +1 -0
  29. package/dist/fireRestApi/emulator.d.ts +4 -0
  30. package/dist/fireRestApi/emulator.d.ts.map +1 -0
  31. package/dist/fireRestApi/endpointUrl.d.ts +6 -0
  32. package/dist/fireRestApi/endpointUrl.d.ts.map +1 -0
  33. package/dist/fireRestApi/endpoints/AbstractApi.d.ts +7 -0
  34. package/dist/fireRestApi/endpoints/AbstractApi.d.ts.map +1 -0
  35. package/dist/fireRestApi/endpoints/EmailApi.d.ts +14 -0
  36. package/dist/fireRestApi/endpoints/EmailApi.d.ts.map +1 -0
  37. package/dist/fireRestApi/endpoints/PasswordApi.d.ts +20 -0
  38. package/dist/fireRestApi/endpoints/PasswordApi.d.ts.map +1 -0
  39. package/dist/fireRestApi/endpoints/SignInTokenApi.d.ts +11 -0
  40. package/dist/fireRestApi/endpoints/SignInTokenApi.d.ts.map +1 -0
  41. package/dist/fireRestApi/endpoints/SignUpApi.d.ts +11 -0
  42. package/dist/fireRestApi/endpoints/SignUpApi.d.ts.map +1 -0
  43. package/dist/fireRestApi/endpoints/TokenApi.d.ts +21 -0
  44. package/dist/fireRestApi/endpoints/TokenApi.d.ts.map +1 -0
  45. package/dist/fireRestApi/endpoints/index.d.ts +6 -0
  46. package/dist/fireRestApi/endpoints/index.d.ts.map +1 -0
  47. package/dist/fireRestApi/index.d.ts +2 -0
  48. package/dist/fireRestApi/index.d.ts.map +1 -0
  49. package/dist/fireRestApi/request.d.ts +34 -0
  50. package/dist/fireRestApi/request.d.ts.map +1 -0
  51. package/dist/fireRestApi/resources/JSON.d.ts +50 -0
  52. package/dist/fireRestApi/resources/JSON.d.ts.map +1 -0
  53. package/dist/fireRestApi/resources/Token.d.ts +13 -0
  54. package/dist/fireRestApi/resources/Token.d.ts.map +1 -0
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +271 -75
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +257 -179
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/instance/backendFireInstance.d.ts +4 -4
  62. package/dist/instance/backendFireInstance.d.ts.map +1 -1
  63. package/dist/instance/backendInstanceEdge.d.ts +2 -2
  64. package/dist/instance/backendInstanceEdge.d.ts.map +1 -1
  65. package/dist/tokens/authstate.d.ts +1 -1
  66. package/dist/tokens/authstate.d.ts.map +1 -1
  67. package/dist/tokens/keys.d.ts.map +1 -1
  68. package/dist/tokens/request.d.ts +3 -3
  69. package/dist/tokens/request.d.ts.map +1 -1
  70. package/dist/tokens/requestFire.d.ts.map +1 -1
  71. package/dist/tokens/types.d.ts +5 -2
  72. package/dist/tokens/types.d.ts.map +1 -1
  73. package/dist/utils/options.d.ts +1 -1
  74. package/dist/utils/options.d.ts.map +1 -1
  75. package/package.json +14 -3
  76. package/dist/admin/gemini.sessionTernSecure.d.ts +0 -8
  77. package/dist/admin/gemini.sessionTernSecure.d.ts.map +0 -1
  78. package/dist/chunk-ZIO4EKS5.mjs.map +0 -1
@@ -0,0 +1,142 @@
1
+ import {
2
+ CACHE_CONTROL_REGEX,
3
+ DEFAULT_CACHE_DURATION,
4
+ GOOGLE_PUBLIC_KEYS_URL,
5
+ MAX_CACHE_LAST_UPDATED_AT_SECONDS
6
+ } from "./chunk-4SGWLAJG.mjs";
7
+ import {
8
+ TokenVerificationError,
9
+ TokenVerificationErrorReason,
10
+ ternDecodeJwt,
11
+ verifyJwt
12
+ } from "./chunk-WZYVAHZ3.mjs";
13
+
14
+ // src/tokens/keys.ts
15
+ var cache = {};
16
+ var lastUpdatedAt = 0;
17
+ var googleExpiresAt = 0;
18
+ function getFromCache(kid) {
19
+ return cache[kid];
20
+ }
21
+ function getCacheValues() {
22
+ return Object.values(cache);
23
+ }
24
+ function setInCache(kid, certificate, shouldExpire = true) {
25
+ cache[kid] = certificate;
26
+ lastUpdatedAt = shouldExpire ? Date.now() : -1;
27
+ }
28
+ async function fetchPublicKeys(keyUrl) {
29
+ const url = new URL(keyUrl);
30
+ const response = await fetch(url);
31
+ if (!response.ok) {
32
+ throw new TokenVerificationError({
33
+ message: `Error loading public keys from ${url.href} with code=${response.status} `,
34
+ reason: TokenVerificationErrorReason.TokenInvalid
35
+ });
36
+ }
37
+ const data = await response.json();
38
+ const expiresAt = getExpiresAt(response);
39
+ return {
40
+ keys: data,
41
+ expiresAt
42
+ };
43
+ }
44
+ async function loadJWKFromRemote({
45
+ keyURL = GOOGLE_PUBLIC_KEYS_URL,
46
+ skipJwksCache,
47
+ kid
48
+ }) {
49
+ if (skipJwksCache || isCacheExpired() || !getFromCache(kid)) {
50
+ const { keys, expiresAt } = await fetchPublicKeys(keyURL);
51
+ if (!keys || Object.keys(keys).length === 0) {
52
+ throw new TokenVerificationError({
53
+ message: `The JWKS endpoint ${keyURL} returned no keys`,
54
+ reason: TokenVerificationErrorReason.RemoteJWKFailedToLoad
55
+ });
56
+ }
57
+ googleExpiresAt = expiresAt;
58
+ Object.entries(keys).forEach(([keyId, cert2]) => {
59
+ setInCache(keyId, cert2);
60
+ });
61
+ }
62
+ const cert = getFromCache(kid);
63
+ if (!cert) {
64
+ getCacheValues();
65
+ const availableKids = Object.keys(cache).sort().join(", ");
66
+ throw new TokenVerificationError({
67
+ message: `No public key found for kid "${kid}". Available kids: [${availableKids}]`,
68
+ reason: TokenVerificationErrorReason.TokenInvalid
69
+ });
70
+ }
71
+ return cert;
72
+ }
73
+ function isCacheExpired() {
74
+ const now = Date.now();
75
+ if (lastUpdatedAt === -1) {
76
+ return false;
77
+ }
78
+ const cacheAge = now - lastUpdatedAt;
79
+ const maxCacheAge = MAX_CACHE_LAST_UPDATED_AT_SECONDS * 1e3;
80
+ const localCacheExpired = cacheAge >= maxCacheAge;
81
+ const googleCacheExpired = now >= googleExpiresAt;
82
+ const isExpired = localCacheExpired || googleCacheExpired;
83
+ if (isExpired) {
84
+ cache = {};
85
+ }
86
+ return isExpired;
87
+ }
88
+ function getExpiresAt(res) {
89
+ const cacheControlHeader = res.headers.get("cache-control");
90
+ if (!cacheControlHeader) {
91
+ return Date.now() + DEFAULT_CACHE_DURATION;
92
+ }
93
+ const maxAgeMatch = cacheControlHeader.match(CACHE_CONTROL_REGEX);
94
+ const maxAge = maxAgeMatch ? parseInt(maxAgeMatch[1], 10) : DEFAULT_CACHE_DURATION / 1e3;
95
+ return Date.now() + maxAge * 1e3;
96
+ }
97
+
98
+ // src/tokens/verify.ts
99
+ async function verifyToken(token, options) {
100
+ const { data: decodedResult, errors } = ternDecodeJwt(token);
101
+ if (errors) {
102
+ return { errors };
103
+ }
104
+ const { header } = decodedResult;
105
+ const { kid } = header;
106
+ if (!kid) {
107
+ return {
108
+ errors: [
109
+ new TokenVerificationError({
110
+ reason: TokenVerificationErrorReason.TokenInvalid,
111
+ message: 'JWT "kid" header is missing.'
112
+ })
113
+ ]
114
+ };
115
+ }
116
+ try {
117
+ const key = options.jwtKey || await loadJWKFromRemote({ ...options, kid });
118
+ if (!key) {
119
+ return {
120
+ errors: [
121
+ new TokenVerificationError({
122
+ reason: TokenVerificationErrorReason.TokenInvalid,
123
+ message: `No public key found for kid "${kid}".`
124
+ })
125
+ ]
126
+ };
127
+ }
128
+ return await verifyJwt(token, { ...options, key });
129
+ } catch (error) {
130
+ if (error instanceof TokenVerificationError) {
131
+ return { errors: [error] };
132
+ }
133
+ return {
134
+ errors: [error]
135
+ };
136
+ }
137
+ }
138
+
139
+ export {
140
+ verifyToken
141
+ };
142
+ //# sourceMappingURL=chunk-YKIA5EBF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tokens/keys.ts","../src/tokens/verify.ts"],"sourcesContent":["import { type RemoteJWKSetOptions } from 'jose';\n\nimport {\n CACHE_CONTROL_REGEX,\n DEFAULT_CACHE_DURATION,\n GOOGLE_PUBLIC_KEYS_URL,\n MAX_CACHE_LAST_UPDATED_AT_SECONDS\n} from '../constants';\nimport { TokenVerificationError, TokenVerificationErrorReason } from '../utils/errors';\n\nexport type PublicKeys = { [key: string]: string };\n\ninterface PublicKeysResponse {\n keys: PublicKeys;\n expiresAt: number;\n}\n\nexport type LoadJWKFromRemoteOptions = RemoteJWKSetOptions & {\n kid: string;\n keyURL?: string;\n skipJwksCache?: boolean;\n};\n\ntype CertificateCache = Record<string, string>;\n\nlet cache: CertificateCache = {};\nlet lastUpdatedAt = 0;\nlet googleExpiresAt = 0;\n\nfunction getFromCache(kid: string) {\n return cache[kid];\n}\n\nfunction getCacheValues() {\n return Object.values(cache);\n}\n\nfunction setInCache(kid: string, certificate: string, shouldExpire = true) {\n cache[kid] = certificate;\n lastUpdatedAt = shouldExpire ? Date.now() : -1;\n}\n\nasync function fetchPublicKeys(keyUrl: string): Promise<PublicKeysResponse> {\n const url = new URL(keyUrl);\n const response = await fetch(url);\n if (!response.ok) {\n throw new TokenVerificationError({\n message: `Error loading public keys from ${url.href} with code=${response.status} `,\n reason: TokenVerificationErrorReason.TokenInvalid,\n });\n }\n\n const data = await response.json();\n const expiresAt = getExpiresAt(response);\n\n return {\n keys: data,\n expiresAt,\n };\n}\n\nexport async function loadJWKFromRemote({\n keyURL = GOOGLE_PUBLIC_KEYS_URL,\n skipJwksCache,\n kid,\n}: LoadJWKFromRemoteOptions): Promise<string> {\n if (skipJwksCache || isCacheExpired() || !getFromCache(kid)) {\n const { keys, expiresAt } = await fetchPublicKeys(keyURL);\n\n if (!keys || Object.keys(keys).length === 0) {\n throw new TokenVerificationError({\n message: `The JWKS endpoint ${keyURL} returned no keys`,\n reason: TokenVerificationErrorReason.RemoteJWKFailedToLoad,\n });\n }\n googleExpiresAt = expiresAt;\n\n Object.entries(keys).forEach(([keyId, cert]) => {\n setInCache(keyId, cert);\n });\n }\n const cert = getFromCache(kid);\n if (!cert) {\n getCacheValues();\n const availableKids = Object.keys(cache).sort().join(', ');\n\n throw new TokenVerificationError({\n message: `No public key found for kid \"${kid}\". Available kids: [${availableKids}]`,\n reason: TokenVerificationErrorReason.TokenInvalid,\n });\n }\n return cert;\n}\n\nfunction isCacheExpired() {\n const now = Date.now();\n if (lastUpdatedAt === -1) {\n return false;\n }\n\n const cacheAge = now - lastUpdatedAt;\n const maxCacheAge = MAX_CACHE_LAST_UPDATED_AT_SECONDS * 1000;\n const localCacheExpired = cacheAge >= maxCacheAge;\n const googleCacheExpired = now >= googleExpiresAt;\n\n const isExpired = localCacheExpired || googleCacheExpired;\n\n if (isExpired) {\n cache = {};\n }\n\n return isExpired;\n}\n\nfunction getExpiresAt(res: Response) {\n const cacheControlHeader = res.headers.get('cache-control');\n if (!cacheControlHeader) {\n return Date.now() + DEFAULT_CACHE_DURATION;\n }\n const maxAgeMatch = cacheControlHeader.match(CACHE_CONTROL_REGEX);\n const maxAge = maxAgeMatch ? parseInt(maxAgeMatch[1], 10) : DEFAULT_CACHE_DURATION / 1000;\n\n return Date.now() + maxAge * 1000;\n}\n\nexport const getCacheStats = () => ({\n localExpiry: lastUpdatedAt + MAX_CACHE_LAST_UPDATED_AT_SECONDS * 1000,\n googleExpiry: googleExpiresAt,\n cacheCount: Object.keys(cache).length,\n});\n","import type { DecodedIdToken, TernSecureConfig } from '@tern-secure/types';\n\nimport type { JwtReturnType } from '../jwt/types';\nimport { ternDecodeJwt, verifyJwt, type VerifyJwtOptions } from '../jwt/verifyJwt';\nimport { TokenVerificationError, TokenVerificationErrorReason } from '../utils/errors';\nimport type { LoadJWKFromRemoteOptions } from './keys';\nimport { loadJWKFromRemote } from './keys';\n\nexport type VerifyTokenVOptions = Omit<VerifyJwtOptions, 'key'> & Omit<LoadJWKFromRemoteOptions, 'kid'> & {\n jwtKey?: string;\n};\n\nexport { TernSecureConfig };\n\nexport async function verifyToken(\n token: string,\n options: VerifyTokenVOptions,\n): Promise<JwtReturnType<DecodedIdToken, TokenVerificationError>> {\n const { data: decodedResult, errors } = ternDecodeJwt(token);\n\n if (errors) {\n return { errors };\n }\n\n const { header } = decodedResult;\n const { kid } = header;\n\n if (!kid) {\n return {\n errors: [\n new TokenVerificationError({\n reason: TokenVerificationErrorReason.TokenInvalid,\n message: 'JWT \"kid\" header is missing.',\n }),\n ],\n };\n }\n\n try {\n const key = options.jwtKey || (await loadJWKFromRemote({ ...options, kid }));\n\n if (!key) {\n return {\n errors: [\n new TokenVerificationError({\n reason: TokenVerificationErrorReason.TokenInvalid,\n message: `No public key found for kid \"${kid}\".`,\n }),\n ],\n };\n }\n return await verifyJwt(token, { ...options, key });\n } catch (error) {\n if (error instanceof TokenVerificationError) {\n return { errors: [error] };\n }\n return {\n errors: [error as TokenVerificationError],\n };\n }\n}\n"],"mappings":"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","names":["cert"]}
@@ -17,11 +17,10 @@ export declare const constants: {
17
17
  };
18
18
  readonly Cookies: {
19
19
  readonly Session: "__session";
20
- readonly IdToken: "_tern";
21
- readonly CsrfToken: "_session_terncf";
22
- readonly SessionCookie: "_session_cookie";
23
- readonly SessionToken: "_session_token";
24
- readonly Refresh: "__refresh";
20
+ readonly CsrfToken: "__session_terncf";
21
+ readonly IdToken: "FIREBASE_[DEFAULT]";
22
+ readonly Refresh: "FIREBASEID_[DEFAULT]";
23
+ readonly Custom: "__custom";
25
24
  readonly Handshake: "__ternsecure_handshake";
26
25
  readonly DevBrowser: "__ternsecure_db_jwt";
27
26
  readonly RedirectCount: "__ternsecure_redirect_count";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,6FACyD,CAAC;AAC7F,eAAO,MAAM,8BAA8B,0EAC8B,CAAC;AAC1E,eAAO,MAAM,iCAAiC,QAAS,CAAC;AACxD,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,QAAkB,CAAC;AA0DnD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,6FACyD,CAAC;AAC7F,eAAO,MAAM,8BAA8B,0EAC8B,CAAC;AAE1E,eAAO,MAAM,iCAAiC,QAAS,CAAC;AACxD,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,QAAkB,CAAC;AAyDnD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { EmailApi, PasswordApi, SignInTokenApi, SignUpApi, TokenApi } from './endpoints';
2
+ import { createRequest } from './request';
3
+ export type CreateFireApiOptions = Parameters<typeof createRequest>[0];
4
+ export type ApiClient = ReturnType<typeof createFireApi>;
5
+ export declare function createFireApi(options: CreateFireApiOptions): {
6
+ email: EmailApi;
7
+ password: PasswordApi;
8
+ signIn: SignInTokenApi;
9
+ signUp: SignUpApi;
10
+ tokens: TokenApi;
11
+ };
12
+ //# sourceMappingURL=createFireApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFireApi.d.ts","sourceRoot":"","sources":["../../src/fireRestApi/createFireApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;;;EAS1D"}
@@ -0,0 +1,4 @@
1
+ export declare const FIREBASE_AUTH_EMULATOR_HOST: string | undefined;
2
+ export declare function emulatorHost(): string | undefined;
3
+ export declare function useEmulator(): boolean;
4
+ //# sourceMappingURL=emulator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulator.d.ts","sourceRoot":"","sources":["../../src/fireRestApi/emulator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,oBAA0C,CAAC;AAEnF,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAGjD;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC"}
@@ -0,0 +1,6 @@
1
+ export declare const getRefreshTokenEndpoint: (apiKey: string) => string;
2
+ export declare const signInWithPassword: (apiKey: string) => string;
3
+ export declare const signUpEndpoint: (apiKey: string) => string;
4
+ export declare const getCustomTokenEndpoint: (apiKey: string) => string;
5
+ export declare const passwordResetEndpoint: (apiKey: string) => string;
6
+ //# sourceMappingURL=endpointUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpointUrl.d.ts","sourceRoot":"","sources":["../../src/fireRestApi/endpointUrl.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,WAErD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,WAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,WAE5C,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,WAUpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,WAEnD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { RequestFunction } from '../request';
2
+ export declare abstract class AbstractAPI {
3
+ protected request: RequestFunction;
4
+ constructor(request: RequestFunction);
5
+ protected requireApiKey(apiKey: string): void;
6
+ }
7
+ //# sourceMappingURL=AbstractApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/AbstractApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,8BAAsB,WAAW;IACnB,SAAS,CAAC,OAAO,EAAE,eAAe;gBAAxB,OAAO,EAAE,eAAe;IAE9C,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM;CAKvC"}
@@ -0,0 +1,14 @@
1
+ import { AbstractAPI } from "./AbstractApi";
2
+ type sendEmailVerificationParams = {
3
+ idToken: string;
4
+ requestType: 'VERIFY_EMAIL';
5
+ };
6
+ type ConfirmEmailVerificationParams = {
7
+ oobCode: string;
8
+ };
9
+ export declare class EmailApi extends AbstractAPI {
10
+ verifyEmailVerification(apiKey: string, params: sendEmailVerificationParams): Promise<import("../request").BackendApiResponse<unknown>>;
11
+ confirmEmailVerification(apiKey: string, params: ConfirmEmailVerificationParams): Promise<import("../request").BackendApiResponse<unknown>>;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=EmailApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/EmailApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,qBAAa,QAAS,SAAQ,WAAW;IAC1B,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B;IAU3E,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;CAS7F"}
@@ -0,0 +1,20 @@
1
+ import { AbstractAPI } from "./AbstractApi";
2
+ type ConfirmPasswordResetParams = {
3
+ oobCode: string;
4
+ newPassword: string;
5
+ };
6
+ type VerifyPasswordResetCodeParams = {
7
+ oobCode: string;
8
+ };
9
+ type ChangePasswordParams = {
10
+ idToken: string;
11
+ password: string;
12
+ returnSecureToken?: boolean;
13
+ };
14
+ export declare class PasswordApi extends AbstractAPI {
15
+ verifyPasswordResetCode(apiKey: string, params: VerifyPasswordResetCodeParams): Promise<import("../request").BackendApiResponse<unknown>>;
16
+ confirmPasswordReset(apiKey: string, params: ConfirmPasswordResetParams): Promise<import("../request").BackendApiResponse<unknown>>;
17
+ changePassword(apiKey: string, params: ChangePasswordParams): Promise<import("../request").BackendApiResponse<unknown>>;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=PasswordApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/PasswordApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,0BAA0B,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,qBAAa,WAAY,SAAQ,WAAW;IAC7B,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,6BAA6B;IAU7E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B;IAUrE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAS3E"}
@@ -0,0 +1,11 @@
1
+ import type { IdAndRefreshTokens } from '../resources/Token';
2
+ import { AbstractAPI } from './AbstractApi';
3
+ type CreateSignInTokenParams = {
4
+ token: string;
5
+ returnSecureToken?: boolean;
6
+ };
7
+ export declare class SignInTokenApi extends AbstractAPI {
8
+ createCustomToken(apiKey: string, params: CreateSignInTokenParams): Promise<IdAndRefreshTokens>;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=SignInTokenApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignInTokenApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/SignInTokenApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW;IAChC,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;CAsB/B"}
@@ -0,0 +1,11 @@
1
+ import { AbstractAPI } from "./AbstractApi";
2
+ type CreateSignUpTokenParams = {
3
+ email: string;
4
+ password: string;
5
+ returnSecureToken?: boolean;
6
+ };
7
+ export declare class SignUpApi extends AbstractAPI {
8
+ createCustomToken(apiKey: string, params: CreateSignUpTokenParams): Promise<import("../request").BackendApiResponse<unknown>>;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=SignUpApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignUpApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/SignUpApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAGF,qBAAa,SAAU,SAAQ,WAAW;IAC3B,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB;CAU/E"}
@@ -0,0 +1,21 @@
1
+ import type { IdAndRefreshTokens } from '../resources/Token';
2
+ import { AbstractAPI } from './AbstractApi';
3
+ type RefreshTokenParams = {
4
+ expired_token: string;
5
+ refresh_token: string;
6
+ request_origin: string;
7
+ request_originating_ip?: string;
8
+ request_headers?: Record<string, string[]>;
9
+ suffixed_cookies?: boolean;
10
+ format?: 'token' | 'cookie';
11
+ };
12
+ type IdAndRefreshTokensParams = {
13
+ token: string;
14
+ returnSecureToken?: boolean;
15
+ };
16
+ export declare class TokenApi extends AbstractAPI {
17
+ refreshToken(apiKey: string, params: RefreshTokenParams): Promise<import("../request").BackendApiResponse<unknown>>;
18
+ exchangeCustomForIdAndRefreshTokens(apiKey: string, params: IdAndRefreshTokensParams): Promise<IdAndRefreshTokens>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=TokenApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenApi.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/TokenApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,qBAAa,QAAS,SAAQ,WAAW;IAC1B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB;IAUvD,mCAAmC,CAC9C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;CAyB/B"}
@@ -0,0 +1,6 @@
1
+ export * from './EmailApi';
2
+ export * from './PasswordApi';
3
+ export * from './SignInTokenApi';
4
+ export * from './SignUpApi';
5
+ export * from './TokenApi';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './createFireApi';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fireRestApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { TernSecureAPIError, TernSecureApiErrorJSON } from "@tern-secure/types";
2
+ export type HTTPMethod = "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
3
+ export type FirebaseEndpoint = "refreshToken" | "signInWithPassword" | "signUp" | "signInWithCustomToken" | "passwordReset" | "sendOobCode";
4
+ export type BackendApiRequestOptions = {
5
+ endpoint: FirebaseEndpoint;
6
+ method?: HTTPMethod;
7
+ apiKey?: string;
8
+ queryParams?: Record<string, unknown>;
9
+ headerParams?: Record<string, string>;
10
+ bodyParams?: Record<string, unknown>;
11
+ formData?: FormData;
12
+ };
13
+ export type BackendApiResponse<T> = {
14
+ data: T;
15
+ errors: null;
16
+ totalCount?: number;
17
+ } | {
18
+ data: null;
19
+ errors: TernSecureAPIError[];
20
+ totalCount?: never;
21
+ status?: number;
22
+ statusText?: string;
23
+ retryAfter?: number;
24
+ };
25
+ export type RequestFunction = ReturnType<typeof createRequest>;
26
+ type CreateRequestOptions = {
27
+ apiKey?: string;
28
+ apiUrl?: string;
29
+ apiVersion?: string;
30
+ };
31
+ export declare function createRequest(options: CreateRequestOptions): <T>(requestOptions: BackendApiRequestOptions) => Promise<BackendApiResponse<T>>;
32
+ export declare function parseError(error: TernSecureApiErrorJSON): TernSecureAPIError;
33
+ export {};
34
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/fireRestApi/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAY5B,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AACrE,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,oBAAoB,GACpB,QAAQ,GACR,uBAAuB,GACvB,eAAe,GACf,aAAa,CAAA;AAEjB,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAC5B;IACE,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAE/D,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAYF,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,IAChC,CAAC,kBACR,wBAAwB,KACvC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAkGlC;AAUD,wBAAgB,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,kBAAkB,CAK5E"}
@@ -0,0 +1,50 @@
1
+ export declare const ObjectType: {
2
+ readonly Client: "client";
3
+ readonly Cookies: "cookies";
4
+ readonly Domain: "domain";
5
+ readonly Email: "email";
6
+ readonly EmailAddress: "email_address";
7
+ readonly Invitation: "invitation";
8
+ readonly PhoneNumber: "phone_number";
9
+ readonly ProxyCheck: "proxy_check";
10
+ readonly RedirectUrl: "redirect_url";
11
+ readonly SamlAccount: "saml_account";
12
+ readonly Session: "session";
13
+ readonly SignInAttempt: "sign_in_attempt";
14
+ readonly SignInToken: "sign_in_token";
15
+ readonly SignUpAttempt: "sign_up_attempt";
16
+ readonly SmsMessage: "sms_message";
17
+ readonly User: "user";
18
+ readonly IdAndRefreshTokens: "id_and_refresh_tokens";
19
+ readonly Token: "token";
20
+ readonly TotalCount: "total_count";
21
+ readonly TestingToken: "testing_token";
22
+ readonly Role: "role";
23
+ readonly Permission: "permission";
24
+ };
25
+ export type ObjectType = (typeof ObjectType)[keyof typeof ObjectType];
26
+ export interface CookiesJSON {
27
+ object: typeof ObjectType.Cookies;
28
+ cookies: string[];
29
+ }
30
+ export interface TokenJSON {
31
+ object: typeof ObjectType.Token;
32
+ jwt: string;
33
+ }
34
+ export interface JwksJSON {
35
+ keys?: JwksKeyJSON[];
36
+ }
37
+ export interface JwksKeyJSON {
38
+ use: string;
39
+ kty: string;
40
+ kid: string;
41
+ alg: string;
42
+ n: string;
43
+ e: string;
44
+ }
45
+ export interface IdAndRefreshTokenJSON {
46
+ object: typeof ObjectType.IdAndRefreshTokens;
47
+ idToken: string;
48
+ refreshToken: string;
49
+ }
50
+ //# sourceMappingURL=JSON.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSON.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/resources/JSON.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAGtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,13 @@
1
+ import type { IdAndRefreshTokenJSON, TokenJSON } from './JSON';
2
+ export declare class Token {
3
+ readonly jwt: string;
4
+ constructor(jwt: string);
5
+ static fromJSON(data: TokenJSON): Token;
6
+ }
7
+ export declare class IdAndRefreshTokens {
8
+ readonly idToken: string;
9
+ readonly refreshToken: string;
10
+ constructor(idToken: string, refreshToken: string);
11
+ static fromJSON(data: IdAndRefreshTokenJSON): IdAndRefreshTokens;
12
+ }
13
+ //# sourceMappingURL=Token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../../src/fireRestApi/resources/Token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAC,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9D,qBAAa,KAAK;IACJ,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAEhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK;CAGxC;AAED,qBAAa,kBAAkB;IAE3B,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM;gBADpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM;IAG/B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,kBAAkB;CAGjE"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export type { AuthObject, RequestState, SignedInAuthObject, SignedOutAuthObject
6
6
  export { signedIn, signedInAuthObject, signedOutAuthObject, AuthStatus } from './tokens/authstate';
7
7
  export { createBackendInstanceClient } from "./instance/backendInstanceEdge";
8
8
  export { createFireClient } from "./instance/backendFireInstance";
9
- export type { BackendInstance, } from "./instance/backendInstanceEdge";
9
+ export type { BackendInstance, TernSecureBackendOptions } from "./instance/backendInstanceEdge";
10
10
  export { enableDebugLogging, disableDebugLogging, setLogLevel, } from "./utils/enableDebugLogging";
11
11
  export { LogLevel } from "./utils/logger";
12
12
  export { RedisAdapter, PostgresAdapter, createAdapter, validateCheckRevokedOptions, } from "./adapters";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjF,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAA;AAEjG,OAAO,EACL,2BAA2B,EAC5B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,YAAY,EACV,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjF,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAA;AAEjG,OAAO,EACL,2BAA2B,EAC5B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,YAAY,EACV,eAAe,EACf,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}