@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/facade/sdkFacade.ts"],"sourcesContent":["import {EvaluatorFacade, TabContextFactory} from './evaluatorFacade';\nimport {TrackerFacade} from './trackerFacade';\nimport {Context, TokenScope} from '../context';\nimport {UserFacade} from './userFacade';\nimport {Token, TokenStore} from '../token';\nimport {formatCause} from '../error';\nimport {sdkFacadeConfigurationSchema} from '../schema';\nimport {Sdk} from '../sdk';\nimport {SessionFacade} from './sessionFacade';\nimport {Logger} from '../logging';\nimport {SdkEventMap} from '../sdkEvents';\nimport {EventManager} from '../eventManager';\nimport {CidAssigner} from '../cid';\nimport {PartialTrackingEvent} from '../trackingEvents';\nimport {UrlSanitizer} from '../tab';\nimport {ContentFetcherFacade} from './contentFetcherFacade';\nimport {CookieCacheConfiguration} from '../cache/cookieCache';\nimport {EventSubjectProcessor} from '../eventSubjectProcessor';\n\nexport type Configuration = {\n appId: string,\n tokenScope?: TokenScope,\n debug?: boolean,\n test?: boolean,\n track?: boolean,\n token?: string | null,\n userId?: string | null,\n clientId?: string,\n eventMetadata?: {[key: string]: string},\n logger?: Logger,\n urlSanitizer?: UrlSanitizer,\n baseEndpointUrl?: string,\n disableCidMirroring?: boolean,\n cidAssignerEndpointUrl?: string,\n cookie?: {\n clientId?: CookieCacheConfiguration,\n userToken?: CookieCacheConfiguration,\n previewToken?: CookieCacheConfiguration,\n },\n defaultFetchTimeout?: number,\n defaultPreferredLocale?: string,\n};\n\nfunction validateConfiguration(configuration: unknown): asserts configuration is Configuration {\n try {\n sdkFacadeConfigurationSchema.validate(configuration);\n } catch (violation) {\n throw new Error(`Invalid configuration: ${formatCause(violation)}`);\n }\n}\n\nexport class SdkFacade {\n private readonly sdk: Sdk;\n\n private trackerFacade?: TrackerFacade;\n\n private userFacade?: UserFacade;\n\n private sessionFacade?: SessionFacade;\n\n private evaluatorFacade?: EvaluatorFacade;\n\n private contentFetcherFacade?: ContentFetcherFacade;\n\n private constructor(sdk: Sdk) {\n this.sdk = sdk;\n }\n\n public static init(configuration: Configuration): SdkFacade {\n validateConfiguration(configuration);\n\n const {track = true, userId, token, ...containerConfiguration} = configuration;\n\n if (userId !== undefined && token !== undefined) {\n throw new Error('Either the user ID or token can be specified, but not both.');\n }\n\n const sdk = new SdkFacade(\n Sdk.init({\n ...containerConfiguration,\n tokenScope: containerConfiguration.tokenScope ?? 'global',\n debug: containerConfiguration.debug ?? false,\n test: containerConfiguration.test ?? false,\n disableCidMirroring: containerConfiguration.disableCidMirroring ?? false,\n eventProcessor: container => new EventSubjectProcessor(container.getLogger('EventSubjectProcessor')),\n }),\n );\n\n if (userId !== undefined) {\n const currentToken = sdk.context.getToken();\n const currentSubject = currentToken?.getSubject() ?? null;\n\n if (currentSubject !== userId) {\n if (userId === null) {\n sdk.unsetToken();\n } else {\n sdk.identify(userId);\n }\n }\n } else if (token !== undefined) {\n if (token === null) {\n sdk.unsetToken();\n } else {\n sdk.setToken(Token.parse(token));\n }\n }\n\n if (track) {\n sdk.tracker.enable();\n }\n\n return sdk;\n }\n\n public get context(): Context {\n return this.sdk.context;\n }\n\n public get cidAssigner(): CidAssigner {\n return this.sdk.cidAssigner;\n }\n\n public get previewTokenStore(): TokenStore {\n return this.sdk.previewTokenStore;\n }\n\n public get userTokenStore(): TokenStore {\n return this.sdk.userTokenStore;\n }\n\n public get tracker(): TrackerFacade {\n if (this.trackerFacade === undefined) {\n this.trackerFacade = new TrackerFacade(this.sdk.tracker);\n }\n\n return this.trackerFacade;\n }\n\n public get user(): UserFacade {\n if (this.userFacade === undefined) {\n this.userFacade = new UserFacade(this.context, this.sdk.tracker);\n }\n\n return this.userFacade;\n }\n\n public get session(): SessionFacade {\n if (this.sessionFacade === undefined) {\n this.sessionFacade = new SessionFacade(this.sdk.tracker);\n }\n\n return this.sessionFacade;\n }\n\n public get evaluator(): EvaluatorFacade {\n if (this.evaluatorFacade === undefined) {\n this.evaluatorFacade = new EvaluatorFacade({\n evaluator: this.sdk.evaluator,\n contextFactory: new TabContextFactory(this.sdk\n .context\n .getTab()),\n cidAssigner: this.sdk.cidAssigner,\n userTokenProvider: this.sdk.userTokenStore,\n });\n }\n\n return this.evaluatorFacade;\n }\n\n public get contentFetcher(): ContentFetcherFacade {\n if (this.contentFetcherFacade === undefined) {\n this.contentFetcherFacade = new ContentFetcherFacade({\n contentFetcher: this.sdk.contentFetcher,\n contextFactory: new TabContextFactory(this.sdk\n .context\n .getTab()),\n cidAssigner: this.sdk.cidAssigner,\n previewTokenProvider: this.sdk.previewTokenStore,\n userTokenProvider: this.sdk.userTokenStore,\n });\n }\n\n return this.contentFetcherFacade;\n }\n\n public get eventManager(): EventManager<Record<string, Record<string, unknown>>, SdkEventMap> {\n const {eventManager} = this.sdk;\n\n return {\n addListener: eventManager.addListener.bind(eventManager),\n removeListener: eventManager.removeListener.bind(eventManager),\n dispatch: (eventName: string, event: Record<string, unknown>): void => {\n if (!/[a-z][a-z_]+\\.[a-z][a-z_]+/i.test(eventName)) {\n throw new Error(\n 'The event name must be in the form of \"namespaced.eventName\", where '\n + 'both the namespace and event name must start with a letter, followed by '\n + 'any series of letters and underscores.',\n );\n }\n\n eventManager.dispatch(eventName, event);\n },\n };\n }\n\n public identify(userId: string): void {\n this.setToken(Token.issue(this.sdk.appId, userId));\n }\n\n public anonymize(): void {\n if (!this.context.isAnonymous()) {\n this.unsetToken();\n }\n }\n\n public getToken(): Token|null {\n return this.context.getToken();\n }\n\n public setToken(token: Token): void {\n const currentToken = this.getToken();\n\n if (currentToken !== null && currentToken.toString() === token.toString()) {\n return;\n }\n\n const currentSubject = currentToken?.getSubject() ?? null;\n const subject = token.getSubject();\n const logger = this.getLogger();\n\n if (subject === currentSubject) {\n this.context.setToken(token);\n\n logger.debug('Token refreshed');\n\n return;\n }\n\n if (currentSubject !== null) {\n this.trackInternalEvent({\n type: 'userSignedOut',\n userId: currentSubject,\n });\n\n logger.info('User signed out');\n }\n\n this.context.setToken(token);\n\n if (subject !== null) {\n this.trackInternalEvent({\n type: 'userSignedIn',\n userId: subject,\n });\n\n logger.info(`User signed in as ${subject}`);\n }\n\n logger.debug('New token saved, ');\n }\n\n public unsetToken(): void {\n const token = this.getToken();\n\n if (token === null) {\n return;\n }\n\n const logger = this.getLogger();\n const subject = token.getSubject();\n\n if (subject !== null) {\n this.trackInternalEvent({\n type: 'userSignedOut',\n userId: subject,\n });\n\n logger.info('User signed out');\n }\n\n this.context.setToken(null);\n\n logger.debug('Token removed');\n }\n\n private trackInternalEvent(event: PartialTrackingEvent): void {\n this.sdk\n .tracker\n .track(event)\n .catch(() => {\n // suppress error as it is already logged by the tracker\n });\n }\n\n public getLogger(...namespace: string[]): Logger {\n return this.sdk.getLogger(...namespace);\n }\n\n public getTabStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.sdk.getTabStorage(namespace, ...subnamespace);\n }\n\n public getBrowserStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.sdk.getBrowserStorage(namespace, ...subnamespace);\n }\n\n public close(): Promise<void> {\n return this.sdk.close();\n }\n}\n"],"mappings":"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","names":[]}
|
package/facade/sdkFacade.d.ts
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
import { EvaluatorFacade } from './evaluatorFacade';
|
|
2
|
-
import { TrackerFacade } from './trackerFacade';
|
|
3
|
-
import {
|
|
4
|
-
import { UserFacade } from './userFacade';
|
|
5
|
-
import {
|
|
6
|
-
import { SessionFacade } from './sessionFacade';
|
|
7
|
-
import { Logger } from '../logging';
|
|
8
|
-
import { SdkEventMap } from '../sdkEvents';
|
|
9
|
-
import { EventManager } from '../eventManager';
|
|
10
|
-
import { CidAssigner } from '../cid';
|
|
11
|
-
import { UrlSanitizer } from '../tab';
|
|
12
|
-
import { ContentFetcherFacade } from './contentFetcherFacade';
|
|
13
|
-
import { CookieCacheConfiguration } from '../cache/cookieCache';
|
|
14
|
-
|
|
1
|
+
import { EvaluatorFacade } from './evaluatorFacade.js';
|
|
2
|
+
import { TrackerFacade } from './trackerFacade.js';
|
|
3
|
+
import { TokenScope, Context } from '../context.js';
|
|
4
|
+
import { UserFacade } from './userFacade.js';
|
|
5
|
+
import { TokenStore, Token } from '../token/token.js';
|
|
6
|
+
import { SessionFacade } from './sessionFacade.js';
|
|
7
|
+
import { Logger } from '../logging/logger.js';
|
|
8
|
+
import { SdkEventMap } from '../sdkEvents.js';
|
|
9
|
+
import { EventManager } from '../eventManager.js';
|
|
10
|
+
import { CidAssigner } from '../cid/assigner.js';
|
|
11
|
+
import { UrlSanitizer } from '../tab.js';
|
|
12
|
+
import { ContentFetcherFacade } from './contentFetcherFacade.js';
|
|
13
|
+
import { CookieCacheConfiguration } from '../cache/cookieCache.js';
|
|
14
|
+
import './sessionPatch.js';
|
|
15
|
+
import './userPatch.js';
|
|
16
|
+
import '@croct/json';
|
|
17
|
+
import '../evaluator.js';
|
|
18
|
+
import '../sourceLocation.js';
|
|
19
|
+
import '../apiKey.js';
|
|
20
|
+
import '../trackingEvents.js';
|
|
21
|
+
import '../patch.js';
|
|
22
|
+
import '../utilityTypes.js';
|
|
23
|
+
import '../tracker.js';
|
|
24
|
+
import '../channel/channel.js';
|
|
25
|
+
import '../retry/policy.js';
|
|
26
|
+
import '../cache/cache.js';
|
|
27
|
+
import '../activeRecord.js';
|
|
28
|
+
import '../contentFetcher.js';
|
|
29
|
+
|
|
30
|
+
type Configuration = {
|
|
15
31
|
appId: string;
|
|
16
32
|
tokenScope?: TokenScope;
|
|
17
33
|
debug?: boolean;
|
|
@@ -36,7 +52,7 @@ export type Configuration = {
|
|
|
36
52
|
defaultFetchTimeout?: number;
|
|
37
53
|
defaultPreferredLocale?: string;
|
|
38
54
|
};
|
|
39
|
-
|
|
55
|
+
declare class SdkFacade {
|
|
40
56
|
private readonly sdk;
|
|
41
57
|
private trackerFacade?;
|
|
42
58
|
private userFacade?;
|
|
@@ -66,3 +82,5 @@ export declare class SdkFacade {
|
|
|
66
82
|
getBrowserStorage(namespace: string, ...subnamespace: string[]): Storage;
|
|
67
83
|
close(): Promise<void>;
|
|
68
84
|
}
|
|
85
|
+
|
|
86
|
+
export { type Configuration, SdkFacade };
|
package/facade/sdkFacade.js
CHANGED
|
@@ -1,219 +1,206 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const sessionFacade_1 = require("./sessionFacade");
|
|
12
|
-
const contentFetcherFacade_1 = require("./contentFetcherFacade");
|
|
13
|
-
const eventSubjectProcessor_1 = require("../eventSubjectProcessor");
|
|
1
|
+
import { EvaluatorFacade, TabContextFactory } from "./evaluatorFacade";
|
|
2
|
+
import { TrackerFacade } from "./trackerFacade";
|
|
3
|
+
import { UserFacade } from "./userFacade";
|
|
4
|
+
import { Token } from "../token";
|
|
5
|
+
import { formatCause } from "../error";
|
|
6
|
+
import { sdkFacadeConfigurationSchema } from "../schema";
|
|
7
|
+
import { Sdk } from "../sdk";
|
|
8
|
+
import { SessionFacade } from "./sessionFacade";
|
|
9
|
+
import { ContentFetcherFacade } from "./contentFetcherFacade";
|
|
10
|
+
import { EventSubjectProcessor } from "../eventSubjectProcessor";
|
|
14
11
|
function validateConfiguration(configuration) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
12
|
+
try {
|
|
13
|
+
sdkFacadeConfigurationSchema.validate(configuration);
|
|
14
|
+
} catch (violation) {
|
|
15
|
+
throw new Error(`Invalid configuration: ${formatCause(violation)}`);
|
|
16
|
+
}
|
|
21
17
|
}
|
|
22
18
|
class SdkFacade {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return this.sdk.getLogger(...namespace);
|
|
207
|
-
}
|
|
208
|
-
getTabStorage(namespace, ...subnamespace) {
|
|
209
|
-
return this.sdk.getTabStorage(namespace, ...subnamespace);
|
|
210
|
-
}
|
|
211
|
-
getBrowserStorage(namespace, ...subnamespace) {
|
|
212
|
-
return this.sdk.getBrowserStorage(namespace, ...subnamespace);
|
|
213
|
-
}
|
|
214
|
-
close() {
|
|
215
|
-
return this.sdk.close();
|
|
216
|
-
}
|
|
19
|
+
constructor(sdk) {
|
|
20
|
+
this.sdk = sdk;
|
|
21
|
+
}
|
|
22
|
+
static init(configuration) {
|
|
23
|
+
validateConfiguration(configuration);
|
|
24
|
+
const { track = true, userId, token, ...containerConfiguration } = configuration;
|
|
25
|
+
if (userId !== void 0 && token !== void 0) {
|
|
26
|
+
throw new Error("Either the user ID or token can be specified, but not both.");
|
|
27
|
+
}
|
|
28
|
+
const sdk = new SdkFacade(
|
|
29
|
+
Sdk.init({
|
|
30
|
+
...containerConfiguration,
|
|
31
|
+
tokenScope: containerConfiguration.tokenScope ?? "global",
|
|
32
|
+
debug: containerConfiguration.debug ?? false,
|
|
33
|
+
test: containerConfiguration.test ?? false,
|
|
34
|
+
disableCidMirroring: containerConfiguration.disableCidMirroring ?? false,
|
|
35
|
+
eventProcessor: (container) => new EventSubjectProcessor(container.getLogger("EventSubjectProcessor"))
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
if (userId !== void 0) {
|
|
39
|
+
const currentToken = sdk.context.getToken();
|
|
40
|
+
const currentSubject = currentToken?.getSubject() ?? null;
|
|
41
|
+
if (currentSubject !== userId) {
|
|
42
|
+
if (userId === null) {
|
|
43
|
+
sdk.unsetToken();
|
|
44
|
+
} else {
|
|
45
|
+
sdk.identify(userId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} else if (token !== void 0) {
|
|
49
|
+
if (token === null) {
|
|
50
|
+
sdk.unsetToken();
|
|
51
|
+
} else {
|
|
52
|
+
sdk.setToken(Token.parse(token));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (track) {
|
|
56
|
+
sdk.tracker.enable();
|
|
57
|
+
}
|
|
58
|
+
return sdk;
|
|
59
|
+
}
|
|
60
|
+
get context() {
|
|
61
|
+
return this.sdk.context;
|
|
62
|
+
}
|
|
63
|
+
get cidAssigner() {
|
|
64
|
+
return this.sdk.cidAssigner;
|
|
65
|
+
}
|
|
66
|
+
get previewTokenStore() {
|
|
67
|
+
return this.sdk.previewTokenStore;
|
|
68
|
+
}
|
|
69
|
+
get userTokenStore() {
|
|
70
|
+
return this.sdk.userTokenStore;
|
|
71
|
+
}
|
|
72
|
+
get tracker() {
|
|
73
|
+
if (this.trackerFacade === void 0) {
|
|
74
|
+
this.trackerFacade = new TrackerFacade(this.sdk.tracker);
|
|
75
|
+
}
|
|
76
|
+
return this.trackerFacade;
|
|
77
|
+
}
|
|
78
|
+
get user() {
|
|
79
|
+
if (this.userFacade === void 0) {
|
|
80
|
+
this.userFacade = new UserFacade(this.context, this.sdk.tracker);
|
|
81
|
+
}
|
|
82
|
+
return this.userFacade;
|
|
83
|
+
}
|
|
84
|
+
get session() {
|
|
85
|
+
if (this.sessionFacade === void 0) {
|
|
86
|
+
this.sessionFacade = new SessionFacade(this.sdk.tracker);
|
|
87
|
+
}
|
|
88
|
+
return this.sessionFacade;
|
|
89
|
+
}
|
|
90
|
+
get evaluator() {
|
|
91
|
+
if (this.evaluatorFacade === void 0) {
|
|
92
|
+
this.evaluatorFacade = new EvaluatorFacade({
|
|
93
|
+
evaluator: this.sdk.evaluator,
|
|
94
|
+
contextFactory: new TabContextFactory(this.sdk.context.getTab()),
|
|
95
|
+
cidAssigner: this.sdk.cidAssigner,
|
|
96
|
+
userTokenProvider: this.sdk.userTokenStore
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return this.evaluatorFacade;
|
|
100
|
+
}
|
|
101
|
+
get contentFetcher() {
|
|
102
|
+
if (this.contentFetcherFacade === void 0) {
|
|
103
|
+
this.contentFetcherFacade = new ContentFetcherFacade({
|
|
104
|
+
contentFetcher: this.sdk.contentFetcher,
|
|
105
|
+
contextFactory: new TabContextFactory(this.sdk.context.getTab()),
|
|
106
|
+
cidAssigner: this.sdk.cidAssigner,
|
|
107
|
+
previewTokenProvider: this.sdk.previewTokenStore,
|
|
108
|
+
userTokenProvider: this.sdk.userTokenStore
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return this.contentFetcherFacade;
|
|
112
|
+
}
|
|
113
|
+
get eventManager() {
|
|
114
|
+
const { eventManager } = this.sdk;
|
|
115
|
+
return {
|
|
116
|
+
addListener: eventManager.addListener.bind(eventManager),
|
|
117
|
+
removeListener: eventManager.removeListener.bind(eventManager),
|
|
118
|
+
dispatch: (eventName, event) => {
|
|
119
|
+
if (!/[a-z][a-z_]+\.[a-z][a-z_]+/i.test(eventName)) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
'The event name must be in the form of "namespaced.eventName", where both the namespace and event name must start with a letter, followed by any series of letters and underscores.'
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
eventManager.dispatch(eventName, event);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
identify(userId) {
|
|
129
|
+
this.setToken(Token.issue(this.sdk.appId, userId));
|
|
130
|
+
}
|
|
131
|
+
anonymize() {
|
|
132
|
+
if (!this.context.isAnonymous()) {
|
|
133
|
+
this.unsetToken();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
getToken() {
|
|
137
|
+
return this.context.getToken();
|
|
138
|
+
}
|
|
139
|
+
setToken(token) {
|
|
140
|
+
const currentToken = this.getToken();
|
|
141
|
+
if (currentToken !== null && currentToken.toString() === token.toString()) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const currentSubject = currentToken?.getSubject() ?? null;
|
|
145
|
+
const subject = token.getSubject();
|
|
146
|
+
const logger = this.getLogger();
|
|
147
|
+
if (subject === currentSubject) {
|
|
148
|
+
this.context.setToken(token);
|
|
149
|
+
logger.debug("Token refreshed");
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (currentSubject !== null) {
|
|
153
|
+
this.trackInternalEvent({
|
|
154
|
+
type: "userSignedOut",
|
|
155
|
+
userId: currentSubject
|
|
156
|
+
});
|
|
157
|
+
logger.info("User signed out");
|
|
158
|
+
}
|
|
159
|
+
this.context.setToken(token);
|
|
160
|
+
if (subject !== null) {
|
|
161
|
+
this.trackInternalEvent({
|
|
162
|
+
type: "userSignedIn",
|
|
163
|
+
userId: subject
|
|
164
|
+
});
|
|
165
|
+
logger.info(`User signed in as ${subject}`);
|
|
166
|
+
}
|
|
167
|
+
logger.debug("New token saved, ");
|
|
168
|
+
}
|
|
169
|
+
unsetToken() {
|
|
170
|
+
const token = this.getToken();
|
|
171
|
+
if (token === null) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const logger = this.getLogger();
|
|
175
|
+
const subject = token.getSubject();
|
|
176
|
+
if (subject !== null) {
|
|
177
|
+
this.trackInternalEvent({
|
|
178
|
+
type: "userSignedOut",
|
|
179
|
+
userId: subject
|
|
180
|
+
});
|
|
181
|
+
logger.info("User signed out");
|
|
182
|
+
}
|
|
183
|
+
this.context.setToken(null);
|
|
184
|
+
logger.debug("Token removed");
|
|
185
|
+
}
|
|
186
|
+
trackInternalEvent(event) {
|
|
187
|
+
this.sdk.tracker.track(event).catch(() => {
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
getLogger(...namespace) {
|
|
191
|
+
return this.sdk.getLogger(...namespace);
|
|
192
|
+
}
|
|
193
|
+
getTabStorage(namespace, ...subnamespace) {
|
|
194
|
+
return this.sdk.getTabStorage(namespace, ...subnamespace);
|
|
195
|
+
}
|
|
196
|
+
getBrowserStorage(namespace, ...subnamespace) {
|
|
197
|
+
return this.sdk.getBrowserStorage(namespace, ...subnamespace);
|
|
198
|
+
}
|
|
199
|
+
close() {
|
|
200
|
+
return this.sdk.close();
|
|
201
|
+
}
|
|
217
202
|
}
|
|
218
|
-
|
|
203
|
+
export {
|
|
204
|
+
SdkFacade
|
|
205
|
+
};
|
|
219
206
|
//# sourceMappingURL=sdkFacade.js.map
|
package/facade/sdkFacade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkFacade.js","sourceRoot":"","sources":["../src/facade/sdkFacade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/facade/sdkFacade.ts"],"sourcesContent":["import {EvaluatorFacade, TabContextFactory} from './evaluatorFacade';\nimport {TrackerFacade} from './trackerFacade';\nimport {Context, TokenScope} from '../context';\nimport {UserFacade} from './userFacade';\nimport {Token, TokenStore} from '../token';\nimport {formatCause} from '../error';\nimport {sdkFacadeConfigurationSchema} from '../schema';\nimport {Sdk} from '../sdk';\nimport {SessionFacade} from './sessionFacade';\nimport {Logger} from '../logging';\nimport {SdkEventMap} from '../sdkEvents';\nimport {EventManager} from '../eventManager';\nimport {CidAssigner} from '../cid';\nimport {PartialTrackingEvent} from '../trackingEvents';\nimport {UrlSanitizer} from '../tab';\nimport {ContentFetcherFacade} from './contentFetcherFacade';\nimport {CookieCacheConfiguration} from '../cache/cookieCache';\nimport {EventSubjectProcessor} from '../eventSubjectProcessor';\n\nexport type Configuration = {\n appId: string,\n tokenScope?: TokenScope,\n debug?: boolean,\n test?: boolean,\n track?: boolean,\n token?: string | null,\n userId?: string | null,\n clientId?: string,\n eventMetadata?: {[key: string]: string},\n logger?: Logger,\n urlSanitizer?: UrlSanitizer,\n baseEndpointUrl?: string,\n disableCidMirroring?: boolean,\n cidAssignerEndpointUrl?: string,\n cookie?: {\n clientId?: CookieCacheConfiguration,\n userToken?: CookieCacheConfiguration,\n previewToken?: CookieCacheConfiguration,\n },\n defaultFetchTimeout?: number,\n defaultPreferredLocale?: string,\n};\n\nfunction validateConfiguration(configuration: unknown): asserts configuration is Configuration {\n try {\n sdkFacadeConfigurationSchema.validate(configuration);\n } catch (violation) {\n throw new Error(`Invalid configuration: ${formatCause(violation)}`);\n }\n}\n\nexport class SdkFacade {\n private readonly sdk: Sdk;\n\n private trackerFacade?: TrackerFacade;\n\n private userFacade?: UserFacade;\n\n private sessionFacade?: SessionFacade;\n\n private evaluatorFacade?: EvaluatorFacade;\n\n private contentFetcherFacade?: ContentFetcherFacade;\n\n private constructor(sdk: Sdk) {\n this.sdk = sdk;\n }\n\n public static init(configuration: Configuration): SdkFacade {\n validateConfiguration(configuration);\n\n const {track = true, userId, token, ...containerConfiguration} = configuration;\n\n if (userId !== undefined && token !== undefined) {\n throw new Error('Either the user ID or token can be specified, but not both.');\n }\n\n const sdk = new SdkFacade(\n Sdk.init({\n ...containerConfiguration,\n tokenScope: containerConfiguration.tokenScope ?? 'global',\n debug: containerConfiguration.debug ?? false,\n test: containerConfiguration.test ?? false,\n disableCidMirroring: containerConfiguration.disableCidMirroring ?? false,\n eventProcessor: container => new EventSubjectProcessor(container.getLogger('EventSubjectProcessor')),\n }),\n );\n\n if (userId !== undefined) {\n const currentToken = sdk.context.getToken();\n const currentSubject = currentToken?.getSubject() ?? null;\n\n if (currentSubject !== userId) {\n if (userId === null) {\n sdk.unsetToken();\n } else {\n sdk.identify(userId);\n }\n }\n } else if (token !== undefined) {\n if (token === null) {\n sdk.unsetToken();\n } else {\n sdk.setToken(Token.parse(token));\n }\n }\n\n if (track) {\n sdk.tracker.enable();\n }\n\n return sdk;\n }\n\n public get context(): Context {\n return this.sdk.context;\n }\n\n public get cidAssigner(): CidAssigner {\n return this.sdk.cidAssigner;\n }\n\n public get previewTokenStore(): TokenStore {\n return this.sdk.previewTokenStore;\n }\n\n public get userTokenStore(): TokenStore {\n return this.sdk.userTokenStore;\n }\n\n public get tracker(): TrackerFacade {\n if (this.trackerFacade === undefined) {\n this.trackerFacade = new TrackerFacade(this.sdk.tracker);\n }\n\n return this.trackerFacade;\n }\n\n public get user(): UserFacade {\n if (this.userFacade === undefined) {\n this.userFacade = new UserFacade(this.context, this.sdk.tracker);\n }\n\n return this.userFacade;\n }\n\n public get session(): SessionFacade {\n if (this.sessionFacade === undefined) {\n this.sessionFacade = new SessionFacade(this.sdk.tracker);\n }\n\n return this.sessionFacade;\n }\n\n public get evaluator(): EvaluatorFacade {\n if (this.evaluatorFacade === undefined) {\n this.evaluatorFacade = new EvaluatorFacade({\n evaluator: this.sdk.evaluator,\n contextFactory: new TabContextFactory(this.sdk\n .context\n .getTab()),\n cidAssigner: this.sdk.cidAssigner,\n userTokenProvider: this.sdk.userTokenStore,\n });\n }\n\n return this.evaluatorFacade;\n }\n\n public get contentFetcher(): ContentFetcherFacade {\n if (this.contentFetcherFacade === undefined) {\n this.contentFetcherFacade = new ContentFetcherFacade({\n contentFetcher: this.sdk.contentFetcher,\n contextFactory: new TabContextFactory(this.sdk\n .context\n .getTab()),\n cidAssigner: this.sdk.cidAssigner,\n previewTokenProvider: this.sdk.previewTokenStore,\n userTokenProvider: this.sdk.userTokenStore,\n });\n }\n\n return this.contentFetcherFacade;\n }\n\n public get eventManager(): EventManager<Record<string, Record<string, unknown>>, SdkEventMap> {\n const {eventManager} = this.sdk;\n\n return {\n addListener: eventManager.addListener.bind(eventManager),\n removeListener: eventManager.removeListener.bind(eventManager),\n dispatch: (eventName: string, event: Record<string, unknown>): void => {\n if (!/[a-z][a-z_]+\\.[a-z][a-z_]+/i.test(eventName)) {\n throw new Error(\n 'The event name must be in the form of \"namespaced.eventName\", where '\n + 'both the namespace and event name must start with a letter, followed by '\n + 'any series of letters and underscores.',\n );\n }\n\n eventManager.dispatch(eventName, event);\n },\n };\n }\n\n public identify(userId: string): void {\n this.setToken(Token.issue(this.sdk.appId, userId));\n }\n\n public anonymize(): void {\n if (!this.context.isAnonymous()) {\n this.unsetToken();\n }\n }\n\n public getToken(): Token|null {\n return this.context.getToken();\n }\n\n public setToken(token: Token): void {\n const currentToken = this.getToken();\n\n if (currentToken !== null && currentToken.toString() === token.toString()) {\n return;\n }\n\n const currentSubject = currentToken?.getSubject() ?? null;\n const subject = token.getSubject();\n const logger = this.getLogger();\n\n if (subject === currentSubject) {\n this.context.setToken(token);\n\n logger.debug('Token refreshed');\n\n return;\n }\n\n if (currentSubject !== null) {\n this.trackInternalEvent({\n type: 'userSignedOut',\n userId: currentSubject,\n });\n\n logger.info('User signed out');\n }\n\n this.context.setToken(token);\n\n if (subject !== null) {\n this.trackInternalEvent({\n type: 'userSignedIn',\n userId: subject,\n });\n\n logger.info(`User signed in as ${subject}`);\n }\n\n logger.debug('New token saved, ');\n }\n\n public unsetToken(): void {\n const token = this.getToken();\n\n if (token === null) {\n return;\n }\n\n const logger = this.getLogger();\n const subject = token.getSubject();\n\n if (subject !== null) {\n this.trackInternalEvent({\n type: 'userSignedOut',\n userId: subject,\n });\n\n logger.info('User signed out');\n }\n\n this.context.setToken(null);\n\n logger.debug('Token removed');\n }\n\n private trackInternalEvent(event: PartialTrackingEvent): void {\n this.sdk\n .tracker\n .track(event)\n .catch(() => {\n // suppress error as it is already logged by the tracker\n });\n }\n\n public getLogger(...namespace: string[]): Logger {\n return this.sdk.getLogger(...namespace);\n }\n\n public getTabStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.sdk.getTabStorage(namespace, ...subnamespace);\n }\n\n public getBrowserStorage(namespace: string, ...subnamespace: string[]): Storage {\n return this.sdk.getBrowserStorage(namespace, ...subnamespace);\n }\n\n public close(): Promise<void> {\n return this.sdk.close();\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/facade/sessionFacade.ts"],"sourcesContent":["import {Tracker} from '../tracker';\nimport {SessionPatch} from './sessionPatch';\n\nexport class SessionFacade {\n private readonly tracker: Tracker;\n\n public constructor(tracker: Tracker) {\n this.tracker = tracker;\n }\n\n public edit(): SessionPatch {\n return new SessionPatch(this.tracker);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA2B;AAEpB,MAAM,cAAc;AAAA,EAGhB,YAAY,SAAkB;AACjC,SAAK,UAAU;AAAA,EACnB;AAAA,EAEO,OAAqB;AACxB,WAAO,IAAI,iCAAa,KAAK,OAAO;AAAA,EACxC;AACJ;","names":[]}
|
|
@@ -1,7 +1,22 @@
|
|
|
1
|
-
import { Tracker } from '../tracker';
|
|
2
|
-
import { SessionPatch } from './sessionPatch';
|
|
3
|
-
|
|
1
|
+
import { Tracker } from '../tracker.js';
|
|
2
|
+
import { SessionPatch } from './sessionPatch.js';
|
|
3
|
+
import '../logging/logger.js';
|
|
4
|
+
import '../tab.js';
|
|
5
|
+
import '../eventManager.js';
|
|
6
|
+
import '../channel/channel.js';
|
|
7
|
+
import '../retry/policy.js';
|
|
8
|
+
import '../token/token.js';
|
|
9
|
+
import '@croct/json';
|
|
10
|
+
import '../apiKey.js';
|
|
11
|
+
import '../trackingEvents.js';
|
|
12
|
+
import '../patch.js';
|
|
13
|
+
import '../utilityTypes.js';
|
|
14
|
+
import '../activeRecord.js';
|
|
15
|
+
|
|
16
|
+
declare class SessionFacade {
|
|
4
17
|
private readonly tracker;
|
|
5
18
|
constructor(tracker: Tracker);
|
|
6
19
|
edit(): SessionPatch;
|
|
7
20
|
}
|
|
21
|
+
|
|
22
|
+
export { SessionFacade };
|
package/facade/sessionFacade.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SessionFacade = void 0;
|
|
4
|
-
const sessionPatch_1 = require("./sessionPatch");
|
|
1
|
+
import { SessionPatch } from "./sessionPatch";
|
|
5
2
|
class SessionFacade {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
constructor(tracker) {
|
|
4
|
+
this.tracker = tracker;
|
|
5
|
+
}
|
|
6
|
+
edit() {
|
|
7
|
+
return new SessionPatch(this.tracker);
|
|
8
|
+
}
|
|
12
9
|
}
|
|
13
|
-
|
|
10
|
+
export {
|
|
11
|
+
SessionFacade
|
|
12
|
+
};
|
|
14
13
|
//# sourceMappingURL=sessionFacade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/facade/sessionFacade.ts"],"sourcesContent":["import {Tracker} from '../tracker';\nimport {SessionPatch} from './sessionPatch';\n\nexport class SessionFacade {\n private readonly tracker: Tracker;\n\n public constructor(tracker: Tracker) {\n this.tracker = tracker;\n }\n\n public edit(): SessionPatch {\n return new SessionPatch(this.tracker);\n }\n}\n"],"mappings":"AACA,SAAQ,oBAAmB;AAEpB,MAAM,cAAc;AAAA,EAGhB,YAAY,SAAkB;AACjC,SAAK,UAAU;AAAA,EACnB;AAAA,EAEO,OAAqB;AACxB,WAAO,IAAI,aAAa,KAAK,OAAO;AAAA,EACxC;AACJ;","names":[]}
|