@croct/sdk 0.17.7 → 0.17.8
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/activeRecord.cjs.map +1 -0
- package/activeRecord.d.ts +8 -4
- package/activeRecord.js +115 -106
- package/activeRecord.js.map +1 -1
- package/apiKey.cjs.map +1 -0
- package/apiKey.d.ts +4 -2
- package/apiKey.js +152 -141
- package/apiKey.js.map +1 -1
- package/base64Url.cjs.map +1 -0
- package/base64Url.d.ts +4 -2
- package/base64Url.js +8 -15
- package/base64Url.js.map +1 -1
- package/cache/cache.cjs.map +1 -0
- package/cache/cache.d.ts +6 -4
- package/cache/cache.js +9 -10
- package/cache/cache.js.map +1 -1
- package/cache/cookieCache.cjs.map +1 -0
- package/cache/cookieCache.d.ts +6 -3
- package/cache/cookieCache.js +52 -54
- package/cache/cookieCache.js.map +1 -1
- package/cache/fallbackCache.cjs.map +1 -0
- package/cache/fallbackCache.d.ts +5 -2
- package/cache/fallbackCache.js +20 -21
- package/cache/fallbackCache.js.map +1 -1
- package/cache/inMemoryCache.cjs.map +1 -0
- package/cache/inMemoryCache.d.ts +5 -2
- package/cache/inMemoryCache.js +15 -17
- package/cache/inMemoryCache.js.map +1 -1
- package/cache/index.cjs.map +1 -0
- package/cache/index.d.ts +4 -4
- package/cache/index.js +9 -11
- package/cache/index.js.map +1 -1
- package/cache/localStorageCache.cjs.map +1 -0
- package/cache/localStorageCache.d.ts +5 -2
- package/cache/localStorageCache.js +55 -63
- package/cache/localStorageCache.js.map +1 -1
- package/channel/channel.cjs.map +1 -0
- package/channel/channel.d.ts +8 -6
- package/channel/channel.js +21 -22
- package/channel/channel.js.map +1 -1
- package/channel/encodedChannel.cjs.map +1 -0
- package/channel/encodedChannel.d.ts +6 -3
- package/channel/encodedChannel.js +13 -14
- package/channel/encodedChannel.js.map +1 -1
- package/channel/guaranteedChannel.cjs.map +1 -0
- package/channel/guaranteedChannel.d.ts +9 -7
- package/channel/guaranteedChannel.js +74 -73
- package/channel/guaranteedChannel.js.map +1 -1
- package/channel/httpBeaconChannel.cjs.map +1 -0
- package/channel/httpBeaconChannel.d.ts +9 -6
- package/channel/httpBeaconChannel.js +82 -83
- package/channel/httpBeaconChannel.js.map +1 -1
- package/channel/index.cjs.map +1 -0
- package/channel/index.d.ts +12 -7
- package/channel/index.js +15 -17
- package/channel/index.js.map +1 -1
- package/channel/queuedChannel.cjs.map +1 -0
- package/channel/queuedChannel.d.ts +7 -4
- package/channel/queuedChannel.js +87 -97
- package/channel/queuedChannel.js.map +1 -1
- package/channel/retryChannel.cjs.map +1 -0
- package/channel/retryChannel.d.ts +7 -5
- package/channel/retryChannel.js +58 -57
- package/channel/retryChannel.js.map +1 -1
- package/channel/sandboxChannel.cjs.map +1 -0
- package/channel/sandboxChannel.d.ts +5 -2
- package/channel/sandboxChannel.js +34 -35
- package/channel/sandboxChannel.js.map +1 -1
- package/cid/assigner.cjs.map +1 -0
- package/cid/assigner.d.ts +3 -1
- package/cid/assigner.js +0 -2
- package/cid/assigner.js.map +1 -1
- package/cid/cachedAssigner.cjs.map +1 -0
- package/cid/cachedAssigner.d.ts +7 -5
- package/cid/cachedAssigner.js +37 -43
- package/cid/cachedAssigner.js.map +1 -1
- package/cid/fixedAssigner.cjs.map +1 -0
- package/cid/fixedAssigner.d.ts +5 -2
- package/cid/fixedAssigner.js +9 -10
- package/cid/fixedAssigner.js.map +1 -1
- package/cid/index.cjs.map +1 -0
- package/cid/index.d.ts +6 -4
- package/cid/index.js +9 -11
- package/cid/index.js.map +1 -1
- package/cid/remoteAssigner.cjs.map +1 -0
- package/cid/remoteAssigner.d.ts +6 -3
- package/cid/remoteAssigner.js +36 -37
- package/cid/remoteAssigner.js.map +1 -1
- package/constants.cjs.map +1 -0
- package/constants.d.ts +6 -4
- package/constants.js +10 -7
- package/constants.js.map +1 -1
- package/container.cjs.map +1 -0
- package/container.d.ts +28 -15
- package/container.js +269 -252
- package/container.js.map +1 -1
- package/contentFetcher.cjs.map +1 -0
- package/contentFetcher.d.ts +17 -14
- package/contentFetcher.js +156 -163
- package/contentFetcher.js.map +1 -1
- package/context.cjs.map +1 -0
- package/context.d.ts +13 -9
- package/context.js +80 -81
- package/context.js.map +1 -1
- package/error.cjs.map +1 -0
- package/error.d.ts +4 -2
- package/error.js +21 -21
- package/error.js.map +1 -1
- package/evaluator.cjs.map +1 -0
- package/evaluator.d.ts +18 -16
- package/evaluator.js +179 -179
- package/evaluator.js.map +1 -1
- package/eventManager.cjs.map +1 -0
- package/eventManager.d.ts +8 -6
- package/eventManager.js +24 -26
- package/eventManager.js.map +1 -1
- package/eventSubjectProcessor.cjs.map +1 -0
- package/eventSubjectProcessor.d.ts +16 -3
- package/eventSubjectProcessor.js +53 -59
- package/eventSubjectProcessor.js.map +1 -1
- package/facade/contentFetcherFacade.cjs.map +1 -0
- package/facade/contentFetcherFacade.d.ts +16 -7
- package/facade/contentFetcherFacade.js +32 -35
- package/facade/contentFetcherFacade.js.map +1 -1
- package/facade/evaluatorFacade.cjs.map +1 -0
- package/facade/evaluatorFacade.d.ts +17 -10
- package/facade/evaluatorFacade.js +56 -60
- package/facade/evaluatorFacade.js.map +1 -1
- package/facade/index.cjs.map +1 -0
- package/facade/index.d.ts +29 -7
- package/facade/index.js +19 -19
- package/facade/index.js.map +1 -1
- package/facade/sdkFacade.cjs.map +1 -0
- package/facade/sdkFacade.d.ts +33 -15
- package/facade/sdkFacade.js +201 -214
- package/facade/sdkFacade.js.map +1 -1
- package/facade/sessionFacade.cjs.map +1 -0
- package/facade/sessionFacade.d.ts +18 -3
- package/facade/sessionFacade.js +10 -11
- package/facade/sessionFacade.js.map +1 -1
- package/facade/sessionPatch.cjs.map +1 -0
- package/facade/sessionPatch.d.ts +17 -4
- package/facade/sessionPatch.js +22 -24
- package/facade/sessionPatch.js.map +1 -1
- package/facade/trackerFacade.cjs.map +1 -0
- package/facade/trackerFacade.d.ts +17 -4
- package/facade/trackerFacade.js +67 -57
- package/facade/trackerFacade.js.map +1 -1
- package/facade/userFacade.cjs.map +1 -0
- package/facade/userFacade.d.ts +21 -4
- package/facade/userFacade.js +17 -18
- package/facade/userFacade.js.map +1 -1
- package/facade/userPatch.cjs.map +1 -0
- package/facade/userPatch.d.ts +17 -4
- package/facade/userPatch.js +22 -24
- package/facade/userPatch.js.map +1 -1
- package/help.cjs.map +1 -0
- package/help.d.ts +3 -1
- package/help.js +19 -23
- package/help.js.map +1 -1
- package/index.cjs.map +1 -0
- package/index.d.ts +25 -3
- package/index.js +7 -7
- package/index.js.map +1 -1
- package/logging/consoleLogger.cjs.map +1 -0
- package/logging/consoleLogger.d.ts +5 -2
- package/logging/consoleLogger.js +23 -24
- package/logging/consoleLogger.js.map +1 -1
- package/logging/filteredLogger.cjs.map +1 -0
- package/logging/filteredLogger.d.ts +8 -5
- package/logging/filteredLogger.js +36 -37
- package/logging/filteredLogger.js.map +1 -1
- package/logging/index.cjs.map +1 -0
- package/logging/index.d.ts +5 -5
- package/logging/index.js +11 -13
- package/logging/index.js.map +1 -1
- package/logging/logger.cjs.map +1 -0
- package/logging/logger.d.ts +4 -2
- package/logging/logger.js +0 -2
- package/logging/logger.js.map +1 -1
- package/logging/namespacedLogger.cjs.map +1 -0
- package/logging/namespacedLogger.d.ts +5 -2
- package/logging/namespacedLogger.js +22 -23
- package/logging/namespacedLogger.js.map +1 -1
- package/logging/nullLogger.cjs.map +1 -0
- package/logging/nullLogger.d.ts +5 -2
- package/logging/nullLogger.js +11 -16
- package/logging/nullLogger.js.map +1 -1
- package/namespacedStorage.cjs.map +1 -0
- package/namespacedStorage.d.ts +3 -1
- package/namespacedStorage.js +51 -52
- package/namespacedStorage.js.map +1 -1
- package/package.json +60 -6
- package/patch.cjs.map +1 -0
- package/patch.d.ts +6 -4
- package/patch.js +0 -2
- package/patch.js.map +1 -1
- package/queue/capacityRestrictedQueue.cjs.map +1 -0
- package/queue/capacityRestrictedQueue.d.ts +5 -2
- package/queue/capacityRestrictedQueue.js +31 -32
- package/queue/capacityRestrictedQueue.js.map +1 -1
- package/queue/inMemoryQueue.cjs.map +1 -0
- package/queue/inMemoryQueue.d.ts +5 -2
- package/queue/inMemoryQueue.js +32 -34
- package/queue/inMemoryQueue.js.map +1 -1
- package/queue/index.cjs.map +1 -0
- package/queue/index.d.ts +6 -5
- package/queue/index.js +11 -13
- package/queue/index.js.map +1 -1
- package/queue/monitoredQueue.cjs.map +1 -0
- package/queue/monitoredQueue.d.ts +8 -5
- package/queue/monitoredQueue.js +104 -110
- package/queue/monitoredQueue.js.map +1 -1
- package/queue/persistentQueue.cjs.map +1 -0
- package/queue/persistentQueue.d.ts +5 -2
- package/queue/persistentQueue.js +52 -54
- package/queue/persistentQueue.js.map +1 -1
- package/queue/queue.cjs.map +1 -0
- package/queue/queue.d.ts +3 -1
- package/queue/queue.js +0 -2
- package/queue/queue.js.map +1 -1
- package/retry/arbitraryPolicy.cjs.map +1 -0
- package/retry/arbitraryPolicy.d.ts +5 -2
- package/retry/arbitraryPolicy.js +14 -15
- package/retry/arbitraryPolicy.js.map +1 -1
- package/retry/backoffPolicy.cjs.map +1 -0
- package/retry/backoffPolicy.d.ts +5 -3
- package/retry/backoffPolicy.js +52 -50
- package/retry/backoffPolicy.js.map +1 -1
- package/retry/index.cjs.map +1 -0
- package/retry/index.d.ts +5 -5
- package/retry/index.js +11 -13
- package/retry/index.js.map +1 -1
- package/retry/maxAttemptsPolicy.cjs.map +1 -0
- package/retry/maxAttemptsPolicy.d.ts +5 -2
- package/retry/maxAttemptsPolicy.js +17 -18
- package/retry/maxAttemptsPolicy.js.map +1 -1
- package/retry/neverPolicy.cjs.map +1 -0
- package/retry/neverPolicy.d.ts +5 -2
- package/retry/neverPolicy.js +9 -10
- package/retry/neverPolicy.js.map +1 -1
- package/retry/policy.cjs.map +1 -0
- package/retry/policy.d.ts +3 -1
- package/retry/policy.js +0 -2
- package/retry/policy.js.map +1 -1
- package/schema/attributeSchema.cjs.map +1 -0
- package/schema/attributeSchema.d.ts +6 -2
- package/schema/attributeSchema.js +7 -7
- package/schema/attributeSchema.js.map +1 -1
- package/schema/contentFetcherSchemas.cjs.map +1 -0
- package/schema/contentFetcherSchemas.d.ts +6 -2
- package/schema/contentFetcherSchemas.js +24 -21
- package/schema/contentFetcherSchemas.js.map +1 -1
- package/schema/contentSchemas.cjs.map +1 -0
- package/schema/contentSchemas.d.ts +6 -2
- package/schema/contentSchemas.js +45 -45
- package/schema/contentSchemas.js.map +1 -1
- package/schema/contextSchemas.cjs.map +1 -0
- package/schema/contextSchemas.d.ts +6 -2
- package/schema/contextSchemas.js +6 -6
- package/schema/contextSchemas.js.map +1 -1
- package/schema/ecommerceSchemas.cjs.map +1 -0
- package/schema/ecommerceSchemas.d.ts +10 -6
- package/schema/ecommerceSchemas.js +176 -172
- package/schema/ecommerceSchemas.js.map +1 -1
- package/schema/evaluatorSchemas.cjs.map +1 -0
- package/schema/evaluatorSchemas.d.ts +6 -2
- package/schema/evaluatorSchemas.js +46 -30
- package/schema/evaluatorSchemas.js.map +1 -1
- package/schema/eventSchemas.cjs.map +1 -0
- package/schema/eventSchemas.d.ts +16 -12
- package/schema/eventSchemas.js +125 -102
- package/schema/eventSchemas.js.map +1 -1
- package/schema/index.cjs.map +1 -0
- package/schema/index.d.ts +14 -11
- package/schema/index.js +11 -14
- package/schema/index.js.map +1 -1
- package/schema/loggerSchema.cjs.map +1 -0
- package/schema/loggerSchema.d.ts +6 -2
- package/schema/loggerSchema.js +13 -13
- package/schema/loggerSchema.js.map +1 -1
- package/schema/operationSchemas.cjs.map +1 -0
- package/schema/operationSchemas.d.ts +14 -10
- package/schema/operationSchemas.js +85 -69
- package/schema/operationSchemas.js.map +1 -1
- package/schema/sdkFacadeSchemas.cjs.map +1 -0
- package/schema/sdkFacadeSchemas.d.ts +6 -2
- package/schema/sdkFacadeSchemas.js +65 -51
- package/schema/sdkFacadeSchemas.js.map +1 -1
- package/schema/sdkSchemas.cjs.map +1 -0
- package/schema/sdkSchemas.d.ts +8 -4
- package/schema/sdkSchemas.js +80 -78
- package/schema/sdkSchemas.js.map +1 -1
- package/schema/tokenSchema.cjs.map +1 -0
- package/schema/tokenSchema.d.ts +6 -2
- package/schema/tokenSchema.js +41 -38
- package/schema/tokenSchema.js.map +1 -1
- package/schema/userSchema.cjs.map +1 -0
- package/schema/userSchema.d.ts +6 -2
- package/schema/userSchema.js +183 -134
- package/schema/userSchema.js.map +1 -1
- package/sdk.cjs.map +1 -0
- package/sdk.d.ts +28 -14
- package/sdk.js +106 -108
- package/sdk.js.map +1 -1
- package/sdkEvents.cjs.map +1 -0
- package/sdkEvents.d.ts +10 -5
- package/sdkEvents.js +0 -2
- package/sdkEvents.js.map +1 -1
- package/sourceLocation.cjs.map +1 -0
- package/sourceLocation.d.ts +7 -5
- package/sourceLocation.js +56 -57
- package/sourceLocation.js.map +1 -1
- package/tab.cjs.map +1 -0
- package/tab.d.ts +9 -7
- package/tab.js +93 -90
- package/tab.js.map +1 -1
- package/token/cachedTokenStore.cjs.map +1 -0
- package/token/cachedTokenStore.d.ts +8 -3
- package/token/cachedTokenStore.js +22 -24
- package/token/cachedTokenStore.js.map +1 -1
- package/token/inMemoryTokenStore.cjs.map +1 -0
- package/token/inMemoryTokenStore.d.ts +7 -2
- package/token/inMemoryTokenStore.js +12 -13
- package/token/inMemoryTokenStore.js.map +1 -1
- package/token/index.cjs.map +1 -0
- package/token/index.d.ts +7 -4
- package/token/index.js +9 -11
- package/token/index.js.map +1 -1
- package/token/replicatedTokenStore.cjs.map +1 -0
- package/token/replicatedTokenStore.d.ts +7 -2
- package/token/replicatedTokenStore.js +14 -15
- package/token/replicatedTokenStore.js.map +1 -1
- package/token/token.cjs.map +1 -0
- package/token/token.d.ts +11 -8
- package/token/token.js +212 -195
- package/token/token.js.map +1 -1
- package/tracker.cjs.map +1 -0
- package/tracker.d.ts +20 -13
- package/tracker.js +307 -307
- package/tracker.js.map +1 -1
- package/trackingEvents.cjs.map +1 -0
- package/trackingEvents.d.ts +65 -62
- package/trackingEvents.js +57 -56
- package/trackingEvents.js.map +1 -1
- package/transformer.cjs.map +1 -0
- package/transformer.d.ts +4 -2
- package/transformer.js +5 -6
- package/transformer.js.map +1 -1
- package/utilityTypes.cjs.map +1 -0
- package/utilityTypes.d.ts +4 -2
- package/utilityTypes.js +0 -2
- package/utilityTypes.js.map +1 -1
- package/uuid.cjs.map +1 -0
- package/uuid.d.ts +3 -1
- package/uuid.js +27 -32
- package/uuid.js.map +1 -1
- package/validation/arrayType.cjs.map +1 -0
- package/validation/arrayType.d.ts +5 -3
- package/validation/arrayType.js +45 -41
- package/validation/arrayType.js.map +1 -1
- package/validation/booleanType.cjs.map +1 -0
- package/validation/booleanType.d.ts +5 -2
- package/validation/booleanType.js +19 -16
- package/validation/booleanType.js.map +1 -1
- package/validation/functionType.cjs.map +1 -0
- package/validation/functionType.d.ts +5 -2
- package/validation/functionType.js +19 -16
- package/validation/functionType.js.map +1 -1
- package/validation/index.cjs.map +1 -0
- package/validation/index.d.ts +12 -12
- package/validation/index.js +27 -29
- package/validation/index.js.map +1 -1
- package/validation/jsonType.cjs.map +1 -0
- package/validation/jsonType.d.ts +8 -6
- package/validation/jsonType.js +89 -82
- package/validation/jsonType.js.map +1 -1
- package/validation/mixedSchema.cjs.map +1 -0
- package/validation/mixedSchema.d.ts +5 -2
- package/validation/mixedSchema.js +5 -7
- package/validation/mixedSchema.js.map +1 -1
- package/validation/nullType.cjs.map +1 -0
- package/validation/nullType.d.ts +5 -2
- package/validation/nullType.js +19 -16
- package/validation/nullType.js.map +1 -1
- package/validation/numberType.cjs.map +1 -0
- package/validation/numberType.d.ts +5 -3
- package/validation/numberType.js +40 -32
- package/validation/numberType.js.map +1 -1
- package/validation/objectType.cjs.map +1 -0
- package/validation/objectType.d.ts +5 -3
- package/validation/objectType.js +84 -85
- package/validation/objectType.js.map +1 -1
- package/validation/schema.cjs.map +1 -0
- package/validation/schema.d.ts +5 -3
- package/validation/schema.js +8 -9
- package/validation/schema.js.map +1 -1
- package/validation/stringType.cjs.map +1 -0
- package/validation/stringType.d.ts +5 -3
- package/validation/stringType.js +74 -70
- package/validation/stringType.js.map +1 -1
- package/validation/unionType.cjs.map +1 -0
- package/validation/unionType.d.ts +5 -2
- package/validation/unionType.js +37 -35
- package/validation/unionType.js.map +1 -1
- package/validation/violation.cjs.map +1 -0
- package/validation/violation.d.ts +4 -2
- package/validation/violation.js +18 -18
- package/validation/violation.js.map +1 -1
package/apiKey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["src/apiKey.ts"],"sourcesContent":["export type ParsedPrivateKey = {\n algorithm: string,\n encodedKey: string,\n};\n\ntype Algorithm = {\n keyAlgorithm: EcKeyImportParams,\n signatureAlgorithm: EcdsaParams,\n};\n\nexport class ApiKey {\n private static readonly IDENTIFIER_PATTERN = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$/i;\n\n private static readonly PRIVATE_KEY_PATTERN = /^[a-z0-9]+;[^;]+$/i;\n\n private static readonly ALGORITHMS: Record<string, Algorithm> = {\n ES256: {\n keyAlgorithm: {\n name: 'ECDSA',\n namedCurve: 'P-256',\n },\n signatureAlgorithm: {\n name: 'ECDSA',\n hash: 'SHA-256',\n },\n },\n };\n\n private readonly identifier: string;\n\n private readonly privateKey?: ParsedPrivateKey;\n\n private importedKey: Promise<CryptoKey>;\n\n private constructor(identifier: string, privateKey?: ParsedPrivateKey) {\n this.identifier = identifier;\n this.privateKey = privateKey;\n }\n\n public static from(apiKey: string | ApiKey): ApiKey {\n if (apiKey instanceof ApiKey) {\n return apiKey;\n }\n\n return ApiKey.parse(apiKey);\n }\n\n public static parse(apiKey: string): ApiKey {\n const parts = apiKey.split(':');\n\n if (parts.length > 2) {\n throw new Error('Invalid API key format.');\n }\n\n return ApiKey.of(parts[0], parts[1]);\n }\n\n public static of(identifier: string, privateKey?: string): ApiKey {\n if (!ApiKey.IDENTIFIER_PATTERN.test(identifier)) {\n throw new Error('The identifier must be a UUID.');\n }\n\n if (privateKey === undefined || privateKey === '') {\n return new ApiKey(identifier);\n }\n\n if (!ApiKey.PRIVATE_KEY_PATTERN.test(privateKey)) {\n throw new Error('The private key is malformed.');\n }\n\n const [algorithmName, encodedKey] = privateKey.split(';');\n\n if (!(algorithmName in ApiKey.ALGORITHMS)) {\n throw new Error(`Unsupported signing algorithm \"${algorithmName}\".`);\n }\n\n return new ApiKey(identifier, {\n algorithm: algorithmName,\n encodedKey: encodedKey,\n });\n }\n\n public getIdentifier(): string {\n return this.identifier;\n }\n\n public async getIdentifierHash(): Promise<string> {\n const identifierBytes = ApiKey.createByteArrayFromHexString(this.identifier.replace(/-/g, ''));\n const rawHash = await crypto.subtle.digest('SHA-256', identifierBytes);\n\n return ApiKey.convertBufferToHexString(rawHash);\n }\n\n public hasPrivateKey(): boolean {\n return this.privateKey !== undefined;\n }\n\n public getPrivateKey(): string {\n if (this.privateKey === undefined) {\n throw new Error('The API key does not have a private key.');\n }\n\n return `${this.privateKey.algorithm};${this.privateKey.encodedKey}`;\n }\n\n public async sign(data: string): Promise<string> {\n const key = await this.importKey();\n const algorithm = this.getSigningAlgorithm();\n\n return ApiKey.convertBufferToString(\n await crypto.subtle.sign(\n ApiKey.ALGORITHMS[algorithm].signatureAlgorithm,\n key,\n ApiKey.createByteArrayFromString(data),\n ),\n );\n }\n\n public getSigningAlgorithm(): string {\n const {algorithm} = this.getParsedPrivateKey();\n\n return algorithm;\n }\n\n private importKey(): Promise<CryptoKey> {\n const {algorithm, encodedKey} = this.getParsedPrivateKey();\n\n if (this.importedKey === undefined) {\n this.importedKey = crypto.subtle\n .importKey(\n 'pkcs8',\n ApiKey.createByteArrayFromString(atob(encodedKey)),\n ApiKey.ALGORITHMS[algorithm].keyAlgorithm,\n false,\n ['sign'],\n );\n }\n\n return this.importedKey;\n }\n\n private getParsedPrivateKey(): ParsedPrivateKey {\n if (this.privateKey === undefined) {\n throw new Error('The API key does not have a private key.');\n }\n\n return this.privateKey;\n }\n\n public export(): string {\n return this.identifier + (this.hasPrivateKey() ? `:${this.getPrivateKey()}` : '');\n }\n\n public toString(): string {\n return '[redacted]';\n }\n\n /**\n * Create an array buffer from a string.\n *\n * @see https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\n *\n * @param data The string to convert.\n * @returns The array buffer.\n */\n private static createByteArrayFromString(data: string): Uint8Array {\n const byteArray = new Uint8Array(data.length);\n\n for (let i = 0; i < byteArray.length; i++) {\n byteArray[i] = data.charCodeAt(i);\n }\n\n return byteArray;\n }\n\n private static createByteArrayFromHexString(data: string): Uint8Array {\n const byteArray = new Uint8Array(data.length / 2);\n\n for (let i = 0; i < byteArray.length; i++) {\n byteArray[i] = parseInt(data.substring(i * 2, i * 2 + 2), 16);\n }\n\n return byteArray;\n }\n\n /**\n * Convert an array buffer to a string.\n *\n * @see https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\n *\n * @param buffer The buffer to convert.\n * @returns The string.\n */\n private static convertBufferToString(buffer: ArrayLike<number> | ArrayBufferLike): string {\n return String.fromCharCode(...new Uint8Array(buffer));\n }\n\n private static convertBufferToHexString(buffer: ArrayLike<number> | ArrayBufferLike): string {\n const bytes = new Uint8Array(buffer);\n let hexString = '';\n\n for (let i = 0; i < bytes.length; i++) {\n hexString += bytes[i].toString(16).padStart(2, '0');\n }\n\n return hexString;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/base64Url.ts"],"sourcesContent":["function base64Unescape(value: string): string {\n return (value + '==='.slice((value.length + 3) % 4)).replace(/-/g, '+').replace(/_/g, '/');\n}\n\nfunction base64Escape(value: string): string {\n return value\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n}\n\nexport function base64UrlEncode(value: string, utf8 = false): string {\n return utf8\n ? base64Escape(btoa(String.fromCodePoint(...new TextEncoder().encode(value))))\n : base64Escape(btoa(value));\n}\n\nexport function base64UrlDecode(value: string, utf8 = false): string {\n return utf8\n ? new TextDecoder().decode(Uint8Array.from(atob(base64Unescape(value)), m => m.codePointAt(0)!))\n : atob(base64Unescape(value));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,eAAe,OAAuB;AAC3C,UAAQ,QAAQ,MAAM,OAAO,MAAM,SAAS,KAAK,CAAC,GAAG,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAC7F;AAEA,SAAS,aAAa,OAAuB;AACzC,SAAO,MACF,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,GAAG,EAClB,QAAQ,MAAM,EAAE;AACzB;AAEO,SAAS,gBAAgB,OAAe,OAAO,OAAe;AACjE,SAAO,OACD,aAAa,KAAK,OAAO,cAAc,GAAG,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,IAC3E,aAAa,KAAK,KAAK,CAAC;AAClC;AAEO,SAAS,gBAAgB,OAAe,OAAO,OAAe;AACjE,SAAO,OACD,IAAI,YAAY,EAAE,OAAO,WAAW,KAAK,KAAK,eAAe,KAAK,CAAC,GAAG,OAAK,EAAE,YAAY,CAAC,CAAE,CAAC,IAC7F,KAAK,eAAe,KAAK,CAAC;AACpC;","names":[]}
|
package/base64Url.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare function base64UrlEncode(value: string, utf8?: boolean): string;
|
|
2
|
+
declare function base64UrlDecode(value: string, utf8?: boolean): string;
|
|
3
|
+
|
|
4
|
+
export { base64UrlDecode, base64UrlEncode };
|
package/base64Url.js
CHANGED
|
@@ -1,24 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.base64UrlEncode = base64UrlEncode;
|
|
4
|
-
exports.base64UrlDecode = base64UrlDecode;
|
|
5
1
|
function base64Unescape(value) {
|
|
6
|
-
|
|
2
|
+
return (value + "===".slice((value.length + 3) % 4)).replace(/-/g, "+").replace(/_/g, "/");
|
|
7
3
|
}
|
|
8
4
|
function base64Escape(value) {
|
|
9
|
-
|
|
10
|
-
.replace(/\+/g, '-')
|
|
11
|
-
.replace(/\//g, '_')
|
|
12
|
-
.replace(/=/g, '');
|
|
5
|
+
return value.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
13
6
|
}
|
|
14
7
|
function base64UrlEncode(value, utf8 = false) {
|
|
15
|
-
|
|
16
|
-
? base64Escape(btoa(String.fromCodePoint(...new TextEncoder().encode(value))))
|
|
17
|
-
: base64Escape(btoa(value));
|
|
8
|
+
return utf8 ? base64Escape(btoa(String.fromCodePoint(...new TextEncoder().encode(value)))) : base64Escape(btoa(value));
|
|
18
9
|
}
|
|
19
10
|
function base64UrlDecode(value, utf8 = false) {
|
|
20
|
-
|
|
21
|
-
? new TextDecoder().decode(Uint8Array.from(atob(base64Unescape(value)), m => m.codePointAt(0)))
|
|
22
|
-
: atob(base64Unescape(value));
|
|
11
|
+
return utf8 ? new TextDecoder().decode(Uint8Array.from(atob(base64Unescape(value)), (m) => m.codePointAt(0))) : atob(base64Unescape(value));
|
|
23
12
|
}
|
|
13
|
+
export {
|
|
14
|
+
base64UrlDecode,
|
|
15
|
+
base64UrlEncode
|
|
16
|
+
};
|
|
24
17
|
//# sourceMappingURL=base64Url.js.map
|
package/base64Url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["src/base64Url.ts"],"sourcesContent":["function base64Unescape(value: string): string {\n return (value + '==='.slice((value.length + 3) % 4)).replace(/-/g, '+').replace(/_/g, '/');\n}\n\nfunction base64Escape(value: string): string {\n return value\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n}\n\nexport function base64UrlEncode(value: string, utf8 = false): string {\n return utf8\n ? base64Escape(btoa(String.fromCodePoint(...new TextEncoder().encode(value))))\n : base64Escape(btoa(value));\n}\n\nexport function base64UrlDecode(value: string, utf8 = false): string {\n return utf8\n ? new TextDecoder().decode(Uint8Array.from(atob(base64Unescape(value)), m => m.codePointAt(0)!))\n : atob(base64Unescape(value));\n}\n"],"mappings":"AAAA,SAAS,eAAe,OAAuB;AAC3C,UAAQ,QAAQ,MAAM,OAAO,MAAM,SAAS,KAAK,CAAC,GAAG,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAC7F;AAEA,SAAS,aAAa,OAAuB;AACzC,SAAO,MACF,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,GAAG,EAClB,QAAQ,MAAM,EAAE;AACzB;AAEO,SAAS,gBAAgB,OAAe,OAAO,OAAe;AACjE,SAAO,OACD,aAAa,KAAK,OAAO,cAAc,GAAG,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,IAC3E,aAAa,KAAK,KAAK,CAAC;AAClC;AAEO,SAAS,gBAAgB,OAAe,OAAO,OAAe;AACjE,SAAO,OACD,IAAI,YAAY,EAAE,OAAO,WAAW,KAAK,KAAK,eAAe,KAAK,CAAC,GAAG,OAAK,EAAE,YAAY,CAAC,CAAE,CAAC,IAC7F,KAAK,eAAe,KAAK,CAAC;AACpC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/cache.ts"],"sourcesContent":["export interface Cache {\n get(): string|null;\n put(value: string): void;\n clear(): void;\n}\n\nexport interface CacheListener {\n (value: string|null): void;\n}\n\nexport interface ObservableCache extends Cache {\n addListener(listener: CacheListener): void;\n\n removeListener(listener: CacheListener): void;\n}\n\nexport namespace ObservableCache {\n export function isObservable(cache: Cache): cache is ObservableCache {\n return typeof (cache as ObservableCache).addListener === 'function'\n && typeof (cache as ObservableCache).removeListener === 'function';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBO,IAAU;AAAA,CAAV,CAAUA,qBAAV;AACI,WAAS,aAAa,OAAwC;AACjE,WAAO,OAAQ,MAA0B,gBAAgB,cAClD,OAAQ,MAA0B,mBAAmB;AAAA,EAChE;AAHO,EAAAA,iBAAS;AAAA,GADH;","names":["ObservableCache"]}
|
package/cache/cache.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
interface Cache {
|
|
2
2
|
get(): string | null;
|
|
3
3
|
put(value: string): void;
|
|
4
4
|
clear(): void;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
interface CacheListener {
|
|
7
7
|
(value: string | null): void;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
interface ObservableCache extends Cache {
|
|
10
10
|
addListener(listener: CacheListener): void;
|
|
11
11
|
removeListener(listener: CacheListener): void;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
declare namespace ObservableCache {
|
|
14
14
|
function isObservable(cache: Cache): cache is ObservableCache;
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
export { type Cache, type CacheListener, ObservableCache };
|
package/cache/cache.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservableCache = void 0;
|
|
4
1
|
var ObservableCache;
|
|
5
|
-
(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
((ObservableCache2) => {
|
|
3
|
+
function isObservable(cache) {
|
|
4
|
+
return typeof cache.addListener === "function" && typeof cache.removeListener === "function";
|
|
5
|
+
}
|
|
6
|
+
ObservableCache2.isObservable = isObservable;
|
|
7
|
+
})(ObservableCache || (ObservableCache = {}));
|
|
8
|
+
export {
|
|
9
|
+
ObservableCache
|
|
10
|
+
};
|
|
12
11
|
//# sourceMappingURL=cache.js.map
|
package/cache/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/cache/cache.ts"],"sourcesContent":["export interface Cache {\n get(): string|null;\n put(value: string): void;\n clear(): void;\n}\n\nexport interface CacheListener {\n (value: string|null): void;\n}\n\nexport interface ObservableCache extends Cache {\n addListener(listener: CacheListener): void;\n\n removeListener(listener: CacheListener): void;\n}\n\nexport namespace ObservableCache {\n export function isObservable(cache: Cache): cache is ObservableCache {\n return typeof (cache as ObservableCache).addListener === 'function'\n && typeof (cache as ObservableCache).removeListener === 'function';\n }\n}\n"],"mappings":"AAgBO,IAAU;AAAA,CAAV,CAAUA,qBAAV;AACI,WAAS,aAAa,OAAwC;AACjE,WAAO,OAAQ,MAA0B,gBAAgB,cAClD,OAAQ,MAA0B,mBAAmB;AAAA,EAChE;AAHO,EAAAA,iBAAS;AAAA,GADH;","names":["ObservableCache"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/cookieCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport type CookieCacheConfiguration = {\n name: string,\n secure?: boolean,\n maxAge?: number,\n domain?: string,\n path?: string,\n sameSite?: 'strict' | 'lax' | 'none',\n};\n\nexport class CookieCache implements Cache {\n private readonly config: CookieCacheConfiguration;\n\n public constructor(config: CookieCacheConfiguration, defaultSecure = window.location.protocol === 'https:') {\n this.config = {\n ...config,\n path: config.path ?? '/',\n };\n\n if (defaultSecure && this.config.secure === undefined) {\n this.config.secure = true;\n }\n\n if (this.config.secure === true && this.config.sameSite === undefined) {\n this.config.sameSite = 'none';\n }\n }\n\n public get(): string | null {\n const entries = document.cookie.split(';');\n\n for (const entry of entries) {\n const [name, value] = entry.split('=');\n\n if (CookieCache.decode(name).trim() === this.config.name) {\n return CookieCache.decode(value.trim());\n }\n }\n\n return null;\n }\n\n public put(value: string): void {\n document.cookie = CookieCache.serializeCookie(value, this.config);\n }\n\n public clear(): void {\n document.cookie = CookieCache.serializeCookie('', {\n ...this.config,\n maxAge: 0,\n });\n }\n\n private static serializeCookie(value: string, config: CookieCacheConfiguration): string {\n const cookie = [`${CookieCache.encode(config.name)}=${CookieCache.encode(value)}`];\n\n if (config.maxAge !== undefined) {\n cookie.push(`Max-Age=${config.maxAge}`);\n }\n\n if (config.domain !== undefined) {\n cookie.push(`Domain=${CookieCache.encode(config.domain)}`);\n }\n\n if (config.path !== undefined) {\n cookie.push(`Path=${CookieCache.encode(config.path)}`);\n }\n\n if (config.secure === true) {\n cookie.push('Secure');\n }\n\n if (config.sameSite !== undefined) {\n cookie.push(`SameSite=${({strict: 'Strict', lax: 'Lax', none: 'None'})[config.sameSite]}`);\n }\n\n return cookie.join('; ');\n }\n\n private static encode(value: string): string {\n return value.replace(/[,; ]+/g, encodeURIComponent);\n }\n\n private static decode(value: string): string {\n return decodeURIComponent(value);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,YAA6B;AAAA,EAG/B,YAAY,QAAkC,gBAAgB,OAAO,SAAS,aAAa,UAAU;AACxG,SAAK,SAAS;AAAA,MACV,GAAG;AAAA,MACH,MAAM,OAAO,QAAQ;AAAA,IACzB;AAEA,QAAI,iBAAiB,KAAK,OAAO,WAAW,QAAW;AACnD,WAAK,OAAO,SAAS;AAAA,IACzB;AAEA,QAAI,KAAK,OAAO,WAAW,QAAQ,KAAK,OAAO,aAAa,QAAW;AACnE,WAAK,OAAO,WAAW;AAAA,IAC3B;AAAA,EACJ;AAAA,EAEO,MAAqB;AACxB,UAAM,UAAU,SAAS,OAAO,MAAM,GAAG;AAEzC,eAAW,SAAS,SAAS;AACzB,YAAM,CAAC,MAAM,KAAK,IAAI,MAAM,MAAM,GAAG;AAErC,UAAI,YAAY,OAAO,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,MAAM;AACtD,eAAO,YAAY,OAAO,MAAM,KAAK,CAAC;AAAA,MAC1C;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,OAAqB;AAC5B,aAAS,SAAS,YAAY,gBAAgB,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAEO,QAAc;AACjB,aAAS,SAAS,YAAY,gBAAgB,IAAI;AAAA,MAC9C,GAAG,KAAK;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,OAAe,gBAAgB,OAAe,QAA0C;AACpF,UAAM,SAAS,CAAC,GAAG,YAAY,OAAO,OAAO,IAAI,CAAC,IAAI,YAAY,OAAO,KAAK,CAAC,EAAE;AAEjF,QAAI,OAAO,WAAW,QAAW;AAC7B,aAAO,KAAK,WAAW,OAAO,MAAM,EAAE;AAAA,IAC1C;AAEA,QAAI,OAAO,WAAW,QAAW;AAC7B,aAAO,KAAK,UAAU,YAAY,OAAO,OAAO,MAAM,CAAC,EAAE;AAAA,IAC7D;AAEA,QAAI,OAAO,SAAS,QAAW;AAC3B,aAAO,KAAK,QAAQ,YAAY,OAAO,OAAO,IAAI,CAAC,EAAE;AAAA,IACzD;AAEA,QAAI,OAAO,WAAW,MAAM;AACxB,aAAO,KAAK,QAAQ;AAAA,IACxB;AAEA,QAAI,OAAO,aAAa,QAAW;AAC/B,aAAO,KAAK,YAAa,EAAC,QAAQ,UAAU,KAAK,OAAO,MAAM,OAAM,EAAG,OAAO,QAAQ,CAAC,EAAE;AAAA,IAC7F;AAEA,WAAO,OAAO,KAAK,IAAI;AAAA,EAC3B;AAAA,EAEA,OAAe,OAAO,OAAuB;AACzC,WAAO,MAAM,QAAQ,WAAW,kBAAkB;AAAA,EACtD;AAAA,EAEA,OAAe,OAAO,OAAuB;AACzC,WAAO,mBAAmB,KAAK;AAAA,EACnC;AACJ;","names":[]}
|
package/cache/cookieCache.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Cache } from './cache';
|
|
2
|
-
|
|
1
|
+
import { Cache } from './cache.js';
|
|
2
|
+
|
|
3
|
+
type CookieCacheConfiguration = {
|
|
3
4
|
name: string;
|
|
4
5
|
secure?: boolean;
|
|
5
6
|
maxAge?: number;
|
|
@@ -7,7 +8,7 @@ export type CookieCacheConfiguration = {
|
|
|
7
8
|
path?: string;
|
|
8
9
|
sameSite?: 'strict' | 'lax' | 'none';
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
+
declare class CookieCache implements Cache {
|
|
11
12
|
private readonly config;
|
|
12
13
|
constructor(config: CookieCacheConfiguration, defaultSecure?: boolean);
|
|
13
14
|
get(): string | null;
|
|
@@ -17,3 +18,5 @@ export declare class CookieCache implements Cache {
|
|
|
17
18
|
private static encode;
|
|
18
19
|
private static decode;
|
|
19
20
|
}
|
|
21
|
+
|
|
22
|
+
export { CookieCache, type CookieCacheConfiguration };
|
package/cache/cookieCache.js
CHANGED
|
@@ -1,64 +1,62 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CookieCache = void 0;
|
|
4
1
|
class CookieCache {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.config.secure = true;
|
|
13
|
-
}
|
|
14
|
-
if (this.config.secure === true && this.config.sameSite === undefined) {
|
|
15
|
-
this.config.sameSite = 'none';
|
|
16
|
-
}
|
|
2
|
+
constructor(config, defaultSecure = window.location.protocol === "https:") {
|
|
3
|
+
this.config = {
|
|
4
|
+
...config,
|
|
5
|
+
path: config.path ?? "/"
|
|
6
|
+
};
|
|
7
|
+
if (defaultSecure && this.config.secure === void 0) {
|
|
8
|
+
this.config.secure = true;
|
|
17
9
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
for (const entry of entries) {
|
|
21
|
-
const [name, value] = entry.split('=');
|
|
22
|
-
if (CookieCache.decode(name).trim() === this.config.name) {
|
|
23
|
-
return CookieCache.decode(value.trim());
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
10
|
+
if (this.config.secure === true && this.config.sameSite === void 0) {
|
|
11
|
+
this.config.sameSite = "none";
|
|
27
12
|
}
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
}
|
|
14
|
+
get() {
|
|
15
|
+
const entries = document.cookie.split(";");
|
|
16
|
+
for (const entry of entries) {
|
|
17
|
+
const [name, value] = entry.split("=");
|
|
18
|
+
if (CookieCache.decode(name).trim() === this.config.name) {
|
|
19
|
+
return CookieCache.decode(value.trim());
|
|
20
|
+
}
|
|
30
21
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
put(value) {
|
|
25
|
+
document.cookie = CookieCache.serializeCookie(value, this.config);
|
|
26
|
+
}
|
|
27
|
+
clear() {
|
|
28
|
+
document.cookie = CookieCache.serializeCookie("", {
|
|
29
|
+
...this.config,
|
|
30
|
+
maxAge: 0
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
static serializeCookie(value, config) {
|
|
34
|
+
const cookie = [`${CookieCache.encode(config.name)}=${CookieCache.encode(value)}`];
|
|
35
|
+
if (config.maxAge !== void 0) {
|
|
36
|
+
cookie.push(`Max-Age=${config.maxAge}`);
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (config.maxAge !== undefined) {
|
|
40
|
-
cookie.push(`Max-Age=${config.maxAge}`);
|
|
41
|
-
}
|
|
42
|
-
if (config.domain !== undefined) {
|
|
43
|
-
cookie.push(`Domain=${CookieCache.encode(config.domain)}`);
|
|
44
|
-
}
|
|
45
|
-
if (config.path !== undefined) {
|
|
46
|
-
cookie.push(`Path=${CookieCache.encode(config.path)}`);
|
|
47
|
-
}
|
|
48
|
-
if (config.secure === true) {
|
|
49
|
-
cookie.push('Secure');
|
|
50
|
-
}
|
|
51
|
-
if (config.sameSite !== undefined) {
|
|
52
|
-
cookie.push(`SameSite=${({ strict: 'Strict', lax: 'Lax', none: 'None' })[config.sameSite]}`);
|
|
53
|
-
}
|
|
54
|
-
return cookie.join('; ');
|
|
38
|
+
if (config.domain !== void 0) {
|
|
39
|
+
cookie.push(`Domain=${CookieCache.encode(config.domain)}`);
|
|
55
40
|
}
|
|
56
|
-
|
|
57
|
-
|
|
41
|
+
if (config.path !== void 0) {
|
|
42
|
+
cookie.push(`Path=${CookieCache.encode(config.path)}`);
|
|
58
43
|
}
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
if (config.secure === true) {
|
|
45
|
+
cookie.push("Secure");
|
|
61
46
|
}
|
|
47
|
+
if (config.sameSite !== void 0) {
|
|
48
|
+
cookie.push(`SameSite=${{ strict: "Strict", lax: "Lax", none: "None" }[config.sameSite]}`);
|
|
49
|
+
}
|
|
50
|
+
return cookie.join("; ");
|
|
51
|
+
}
|
|
52
|
+
static encode(value) {
|
|
53
|
+
return value.replace(/[,; ]+/g, encodeURIComponent);
|
|
54
|
+
}
|
|
55
|
+
static decode(value) {
|
|
56
|
+
return decodeURIComponent(value);
|
|
57
|
+
}
|
|
62
58
|
}
|
|
63
|
-
|
|
59
|
+
export {
|
|
60
|
+
CookieCache
|
|
61
|
+
};
|
|
64
62
|
//# sourceMappingURL=cookieCache.js.map
|
package/cache/cookieCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/cache/cookieCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport type CookieCacheConfiguration = {\n name: string,\n secure?: boolean,\n maxAge?: number,\n domain?: string,\n path?: string,\n sameSite?: 'strict' | 'lax' | 'none',\n};\n\nexport class CookieCache implements Cache {\n private readonly config: CookieCacheConfiguration;\n\n public constructor(config: CookieCacheConfiguration, defaultSecure = window.location.protocol === 'https:') {\n this.config = {\n ...config,\n path: config.path ?? '/',\n };\n\n if (defaultSecure && this.config.secure === undefined) {\n this.config.secure = true;\n }\n\n if (this.config.secure === true && this.config.sameSite === undefined) {\n this.config.sameSite = 'none';\n }\n }\n\n public get(): string | null {\n const entries = document.cookie.split(';');\n\n for (const entry of entries) {\n const [name, value] = entry.split('=');\n\n if (CookieCache.decode(name).trim() === this.config.name) {\n return CookieCache.decode(value.trim());\n }\n }\n\n return null;\n }\n\n public put(value: string): void {\n document.cookie = CookieCache.serializeCookie(value, this.config);\n }\n\n public clear(): void {\n document.cookie = CookieCache.serializeCookie('', {\n ...this.config,\n maxAge: 0,\n });\n }\n\n private static serializeCookie(value: string, config: CookieCacheConfiguration): string {\n const cookie = [`${CookieCache.encode(config.name)}=${CookieCache.encode(value)}`];\n\n if (config.maxAge !== undefined) {\n cookie.push(`Max-Age=${config.maxAge}`);\n }\n\n if (config.domain !== undefined) {\n cookie.push(`Domain=${CookieCache.encode(config.domain)}`);\n }\n\n if (config.path !== undefined) {\n cookie.push(`Path=${CookieCache.encode(config.path)}`);\n }\n\n if (config.secure === true) {\n cookie.push('Secure');\n }\n\n if (config.sameSite !== undefined) {\n cookie.push(`SameSite=${({strict: 'Strict', lax: 'Lax', none: 'None'})[config.sameSite]}`);\n }\n\n return cookie.join('; ');\n }\n\n private static encode(value: string): string {\n return value.replace(/[,; ]+/g, encodeURIComponent);\n }\n\n private static decode(value: string): string {\n return decodeURIComponent(value);\n }\n}\n"],"mappings":"AAWO,MAAM,YAA6B;AAAA,EAG/B,YAAY,QAAkC,gBAAgB,OAAO,SAAS,aAAa,UAAU;AACxG,SAAK,SAAS;AAAA,MACV,GAAG;AAAA,MACH,MAAM,OAAO,QAAQ;AAAA,IACzB;AAEA,QAAI,iBAAiB,KAAK,OAAO,WAAW,QAAW;AACnD,WAAK,OAAO,SAAS;AAAA,IACzB;AAEA,QAAI,KAAK,OAAO,WAAW,QAAQ,KAAK,OAAO,aAAa,QAAW;AACnE,WAAK,OAAO,WAAW;AAAA,IAC3B;AAAA,EACJ;AAAA,EAEO,MAAqB;AACxB,UAAM,UAAU,SAAS,OAAO,MAAM,GAAG;AAEzC,eAAW,SAAS,SAAS;AACzB,YAAM,CAAC,MAAM,KAAK,IAAI,MAAM,MAAM,GAAG;AAErC,UAAI,YAAY,OAAO,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,MAAM;AACtD,eAAO,YAAY,OAAO,MAAM,KAAK,CAAC;AAAA,MAC1C;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,OAAqB;AAC5B,aAAS,SAAS,YAAY,gBAAgB,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAEO,QAAc;AACjB,aAAS,SAAS,YAAY,gBAAgB,IAAI;AAAA,MAC9C,GAAG,KAAK;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,OAAe,gBAAgB,OAAe,QAA0C;AACpF,UAAM,SAAS,CAAC,GAAG,YAAY,OAAO,OAAO,IAAI,CAAC,IAAI,YAAY,OAAO,KAAK,CAAC,EAAE;AAEjF,QAAI,OAAO,WAAW,QAAW;AAC7B,aAAO,KAAK,WAAW,OAAO,MAAM,EAAE;AAAA,IAC1C;AAEA,QAAI,OAAO,WAAW,QAAW;AAC7B,aAAO,KAAK,UAAU,YAAY,OAAO,OAAO,MAAM,CAAC,EAAE;AAAA,IAC7D;AAEA,QAAI,OAAO,SAAS,QAAW;AAC3B,aAAO,KAAK,QAAQ,YAAY,OAAO,OAAO,IAAI,CAAC,EAAE;AAAA,IACzD;AAEA,QAAI,OAAO,WAAW,MAAM;AACxB,aAAO,KAAK,QAAQ;AAAA,IACxB;AAEA,QAAI,OAAO,aAAa,QAAW;AAC/B,aAAO,KAAK,YAAa,EAAC,QAAQ,UAAU,KAAK,OAAO,MAAM,OAAM,EAAG,OAAO,QAAQ,CAAC,EAAE;AAAA,IAC7F;AAEA,WAAO,OAAO,KAAK,IAAI;AAAA,EAC3B;AAAA,EAEA,OAAe,OAAO,OAAuB;AACzC,WAAO,MAAM,QAAQ,WAAW,kBAAkB;AAAA,EACtD;AAAA,EAEA,OAAe,OAAO,OAAuB;AACzC,WAAO,mBAAmB,KAAK;AAAA,EACnC;AACJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/fallbackCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport class FallbackCache implements Cache {\n private readonly caches: Cache[];\n\n public constructor(...caches: Cache[]) {\n this.caches = caches;\n }\n\n public get(): string|null {\n for (const cache of this.caches) {\n const value = cache.get();\n\n if (value !== null) {\n return value;\n }\n }\n\n return null;\n }\n\n public put(value: string): void {\n this.caches.forEach(cache => cache.put(value));\n }\n\n public clear(): void {\n this.caches.forEach(cache => cache.clear());\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,cAA+B;AAAA,EAGjC,eAAe,QAAiB;AACnC,SAAK,SAAS;AAAA,EAClB;AAAA,EAEO,MAAmB;AACtB,eAAW,SAAS,KAAK,QAAQ;AAC7B,YAAM,QAAQ,MAAM,IAAI;AAExB,UAAI,UAAU,MAAM;AAChB,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,OAAqB;AAC5B,SAAK,OAAO,QAAQ,WAAS,MAAM,IAAI,KAAK,CAAC;AAAA,EACjD;AAAA,EAEO,QAAc;AACjB,SAAK,OAAO,QAAQ,WAAS,MAAM,MAAM,CAAC;AAAA,EAC9C;AACJ;","names":[]}
|
package/cache/fallbackCache.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { Cache } from './cache';
|
|
2
|
-
|
|
1
|
+
import { Cache } from './cache.js';
|
|
2
|
+
|
|
3
|
+
declare class FallbackCache implements Cache {
|
|
3
4
|
private readonly caches;
|
|
4
5
|
constructor(...caches: Cache[]);
|
|
5
6
|
get(): string | null;
|
|
6
7
|
put(value: string): void;
|
|
7
8
|
clear(): void;
|
|
8
9
|
}
|
|
10
|
+
|
|
11
|
+
export { FallbackCache };
|
package/cache/fallbackCache.js
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FallbackCache = void 0;
|
|
4
1
|
class FallbackCache {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
put(value) {
|
|
18
|
-
this.caches.forEach(cache => cache.put(value));
|
|
19
|
-
}
|
|
20
|
-
clear() {
|
|
21
|
-
this.caches.forEach(cache => cache.clear());
|
|
2
|
+
constructor(...caches) {
|
|
3
|
+
this.caches = caches;
|
|
4
|
+
}
|
|
5
|
+
get() {
|
|
6
|
+
for (const cache of this.caches) {
|
|
7
|
+
const value = cache.get();
|
|
8
|
+
if (value !== null) {
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
22
11
|
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
put(value) {
|
|
15
|
+
this.caches.forEach((cache) => cache.put(value));
|
|
16
|
+
}
|
|
17
|
+
clear() {
|
|
18
|
+
this.caches.forEach((cache) => cache.clear());
|
|
19
|
+
}
|
|
23
20
|
}
|
|
24
|
-
|
|
21
|
+
export {
|
|
22
|
+
FallbackCache
|
|
23
|
+
};
|
|
25
24
|
//# sourceMappingURL=fallbackCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/cache/fallbackCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport class FallbackCache implements Cache {\n private readonly caches: Cache[];\n\n public constructor(...caches: Cache[]) {\n this.caches = caches;\n }\n\n public get(): string|null {\n for (const cache of this.caches) {\n const value = cache.get();\n\n if (value !== null) {\n return value;\n }\n }\n\n return null;\n }\n\n public put(value: string): void {\n this.caches.forEach(cache => cache.put(value));\n }\n\n public clear(): void {\n this.caches.forEach(cache => cache.clear());\n }\n}\n"],"mappings":"AAEO,MAAM,cAA+B;AAAA,EAGjC,eAAe,QAAiB;AACnC,SAAK,SAAS;AAAA,EAClB;AAAA,EAEO,MAAmB;AACtB,eAAW,SAAS,KAAK,QAAQ;AAC7B,YAAM,QAAQ,MAAM,IAAI;AAExB,UAAI,UAAU,MAAM;AAChB,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,OAAqB;AAC5B,SAAK,OAAO,QAAQ,WAAS,MAAM,IAAI,KAAK,CAAC;AAAA,EACjD;AAAA,EAEO,QAAc;AACjB,SAAK,OAAO,QAAQ,WAAS,MAAM,MAAM,CAAC;AAAA,EAC9C;AACJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/inMemoryCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport class InMemoryCache implements Cache {\n private cache?: string;\n\n public constructor(cache?: string) {\n this.cache = cache;\n }\n\n public get(): string | null {\n return this.cache ?? null;\n }\n\n public put(value: string): void {\n this.cache = value;\n }\n\n public clear(): void {\n delete this.cache;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,cAA+B;AAAA,EAGjC,YAAY,OAAgB;AAC/B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,MAAqB;AACxB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEO,IAAI,OAAqB;AAC5B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,QAAc;AACjB,WAAO,KAAK;AAAA,EAChB;AACJ;","names":[]}
|
package/cache/inMemoryCache.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { Cache } from './cache';
|
|
2
|
-
|
|
1
|
+
import { Cache } from './cache.js';
|
|
2
|
+
|
|
3
|
+
declare class InMemoryCache implements Cache {
|
|
3
4
|
private cache?;
|
|
4
5
|
constructor(cache?: string);
|
|
5
6
|
get(): string | null;
|
|
6
7
|
put(value: string): void;
|
|
7
8
|
clear(): void;
|
|
8
9
|
}
|
|
10
|
+
|
|
11
|
+
export { InMemoryCache };
|
package/cache/inMemoryCache.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryCache = void 0;
|
|
4
1
|
class InMemoryCache {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
2
|
+
constructor(cache) {
|
|
3
|
+
this.cache = cache;
|
|
4
|
+
}
|
|
5
|
+
get() {
|
|
6
|
+
return this.cache ?? null;
|
|
7
|
+
}
|
|
8
|
+
put(value) {
|
|
9
|
+
this.cache = value;
|
|
10
|
+
}
|
|
11
|
+
clear() {
|
|
12
|
+
delete this.cache;
|
|
13
|
+
}
|
|
18
14
|
}
|
|
19
|
-
|
|
15
|
+
export {
|
|
16
|
+
InMemoryCache
|
|
17
|
+
};
|
|
20
18
|
//# sourceMappingURL=inMemoryCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/cache/inMemoryCache.ts"],"sourcesContent":["import {Cache} from './cache';\n\nexport class InMemoryCache implements Cache {\n private cache?: string;\n\n public constructor(cache?: string) {\n this.cache = cache;\n }\n\n public get(): string | null {\n return this.cache ?? null;\n }\n\n public put(value: string): void {\n this.cache = value;\n }\n\n public clear(): void {\n delete this.cache;\n }\n}\n"],"mappings":"AAEO,MAAM,cAA+B;AAAA,EAGjC,YAAY,OAAgB;AAC/B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,MAAqB;AACxB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEO,IAAI,OAAqB;AAC5B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,QAAc;AACjB,WAAO,KAAK;AAAA,EAChB;AACJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/index.ts"],"sourcesContent":["export * from './cache';\nexport {FallbackCache} from './fallbackCache';\nexport {InMemoryCache} from './inMemoryCache';\nexport {LocalStorageCache} from './localStorageCache';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,oBAAd;AACA,2BAA4B;AAC5B,2BAA4B;AAC5B,+BAAgC;","names":[]}
|
package/cache/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export { FallbackCache } from './fallbackCache';
|
|
3
|
-
export { InMemoryCache } from './inMemoryCache';
|
|
4
|
-
export { LocalStorageCache } from './localStorageCache';
|
|
1
|
+
export { Cache, CacheListener, ObservableCache } from './cache.js';
|
|
2
|
+
export { FallbackCache } from './fallbackCache.js';
|
|
3
|
+
export { InMemoryCache } from './inMemoryCache.js';
|
|
4
|
+
export { LocalStorageCache } from './localStorageCache.js';
|
package/cache/index.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var localStorageCache_1 = require("./localStorageCache");
|
|
11
|
-
Object.defineProperty(exports, "LocalStorageCache", { enumerable: true, get: function () { return localStorageCache_1.LocalStorageCache; } });
|
|
1
|
+
export * from "./cache";
|
|
2
|
+
import { FallbackCache } from "./fallbackCache";
|
|
3
|
+
import { InMemoryCache } from "./inMemoryCache";
|
|
4
|
+
import { LocalStorageCache } from "./localStorageCache";
|
|
5
|
+
export {
|
|
6
|
+
FallbackCache,
|
|
7
|
+
InMemoryCache,
|
|
8
|
+
LocalStorageCache
|
|
9
|
+
};
|
|
12
10
|
//# sourceMappingURL=index.js.map
|
package/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/cache/index.ts"],"sourcesContent":["export * from './cache';\nexport {FallbackCache} from './fallbackCache';\nexport {InMemoryCache} from './inMemoryCache';\nexport {LocalStorageCache} from './localStorageCache';\n"],"mappings":"AAAA,cAAc;AACd,SAAQ,qBAAoB;AAC5B,SAAQ,qBAAoB;AAC5B,SAAQ,yBAAwB;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cache/localStorageCache.ts"],"sourcesContent":["import {CacheListener, ObservableCache} from './cache';\n\nexport class LocalStorageCache implements ObservableCache {\n private readonly storage: Storage;\n\n private readonly key: string;\n\n private value: string|null;\n\n private readonly listeners: CacheListener[] = [];\n\n public constructor(storage: Storage, key: string) {\n this.storage = storage;\n this.key = key;\n this.value = storage.getItem(key);\n }\n\n public static autoSync(cache: LocalStorageCache): (() => void) {\n const listener = cache.sync.bind(cache);\n\n window.addEventListener('storage', listener);\n\n return (): void => window.removeEventListener('storage', listener);\n }\n\n public get(): string|null {\n return this.value;\n }\n\n public put(value: string): void {\n this.storage.setItem(this.key, value);\n\n if (this.value !== value) {\n this.value = value;\n this.notifyChange(value);\n }\n }\n\n public clear(): void {\n this.storage.removeItem(this.key);\n\n if (this.value !== null) {\n this.value = null;\n this.notifyChange(null);\n }\n }\n\n public addListener(listener: CacheListener): void {\n if (!this.listeners.includes(listener)) {\n this.listeners.push(listener);\n }\n }\n\n public removeListener(listener: CacheListener): void {\n const index = this.listeners.indexOf(listener);\n\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n }\n\n private notifyChange(value: string|null): void {\n this.listeners.forEach(listener => listener(value));\n }\n\n private sync(event: StorageEvent): void {\n if (event.storageArea !== this.storage || (event.key !== null && event.key !== this.key)) {\n // Ignore unrelated changes\n return;\n }\n\n /*\n * Retrieving the value from the store rather than the event ensures\n * the cache will be in sync with the latest value set.\n * In case of cascading changes, it prevents notifying listeners\n * about intermediate states already outdated at this point.\n */\n const value = this.storage.getItem(this.key);\n\n if (this.value !== value) {\n this.value = value;\n this.notifyChange(value);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,kBAA6C;AAAA,EAS/C,YAAY,SAAkB,KAAa;AAFlD,SAAiB,YAA6B,CAAC;AAG3C,SAAK,UAAU;AACf,SAAK,MAAM;AACX,SAAK,QAAQ,QAAQ,QAAQ,GAAG;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,OAAwC;AAC3D,UAAM,WAAW,MAAM,KAAK,KAAK,KAAK;AAEtC,WAAO,iBAAiB,WAAW,QAAQ;AAE3C,WAAO,MAAY,OAAO,oBAAoB,WAAW,QAAQ;AAAA,EACrE;AAAA,EAEO,MAAmB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,IAAI,OAAqB;AAC5B,SAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK;AAEpC,QAAI,KAAK,UAAU,OAAO;AACtB,WAAK,QAAQ;AACb,WAAK,aAAa,KAAK;AAAA,IAC3B;AAAA,EACJ;AAAA,EAEO,QAAc;AACjB,SAAK,QAAQ,WAAW,KAAK,GAAG;AAEhC,QAAI,KAAK,UAAU,MAAM;AACrB,WAAK,QAAQ;AACb,WAAK,aAAa,IAAI;AAAA,IAC1B;AAAA,EACJ;AAAA,EAEO,YAAY,UAA+B;AAC9C,QAAI,CAAC,KAAK,UAAU,SAAS,QAAQ,GAAG;AACpC,WAAK,UAAU,KAAK,QAAQ;AAAA,IAChC;AAAA,EACJ;AAAA,EAEO,eAAe,UAA+B;AACjD,UAAM,QAAQ,KAAK,UAAU,QAAQ,QAAQ;AAE7C,QAAI,QAAQ,IAAI;AACZ,WAAK,UAAU,OAAO,OAAO,CAAC;AAAA,IAClC;AAAA,EACJ;AAAA,EAEQ,aAAa,OAA0B;AAC3C,SAAK,UAAU,QAAQ,cAAY,SAAS,KAAK,CAAC;AAAA,EACtD;AAAA,EAEQ,KAAK,OAA2B;AACpC,QAAI,MAAM,gBAAgB,KAAK,WAAY,MAAM,QAAQ,QAAQ,MAAM,QAAQ,KAAK,KAAM;AAEtF;AAAA,IACJ;AAQA,UAAM,QAAQ,KAAK,QAAQ,QAAQ,KAAK,GAAG;AAE3C,QAAI,KAAK,UAAU,OAAO;AACtB,WAAK,QAAQ;AACb,WAAK,aAAa,KAAK;AAAA,IAC3B;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ObservableCache, CacheListener } from './cache.js';
|
|
2
|
+
|
|
3
|
+
declare class LocalStorageCache implements ObservableCache {
|
|
3
4
|
private readonly storage;
|
|
4
5
|
private readonly key;
|
|
5
6
|
private value;
|
|
@@ -14,3 +15,5 @@ export declare class LocalStorageCache implements ObservableCache {
|
|
|
14
15
|
private notifyChange;
|
|
15
16
|
private sync;
|
|
16
17
|
}
|
|
18
|
+
|
|
19
|
+
export { LocalStorageCache };
|