@snap/camera-kit 0.16.2 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +141 -3875
- package/README.md +1 -1
- package/dist/CameraKit.d.ts +334 -0
- package/dist/CameraKit.d.ts.map +1 -0
- package/dist/CameraKit.js +104 -0
- package/dist/CameraKit.js.map +1 -0
- package/dist/benchmark/benchmarkGflops.d.ts +17 -0
- package/dist/benchmark/benchmarkGflops.d.ts.map +1 -0
- package/dist/benchmark/benchmarkGflops.js +116 -0
- package/dist/benchmark/benchmarkGflops.js.map +1 -0
- package/dist/benchmark/estimateLensPerformanceCluster.d.ts +34 -0
- package/dist/benchmark/estimateLensPerformanceCluster.d.ts.map +1 -0
- package/dist/benchmark/estimateLensPerformanceCluster.js +34 -0
- package/dist/benchmark/estimateLensPerformanceCluster.js.map +1 -0
- package/dist/benchmark/webglUtils.d.ts +8 -0
- package/dist/benchmark/webglUtils.d.ts.map +1 -0
- package/dist/bootstrapCameraKit.d.ts +97 -0
- package/dist/bootstrapCameraKit.d.ts.map +1 -0
- package/dist/bootstrapCameraKit.js +117 -0
- package/dist/bootstrapCameraKit.js.map +1 -0
- package/dist/clients/createTsProtoClient.d.ts +41 -0
- package/dist/clients/createTsProtoClient.d.ts.map +1 -0
- package/dist/clients/createTsProtoClient.js +36 -0
- package/dist/clients/createTsProtoClient.js.map +1 -0
- package/dist/clients/grpcHandler.d.ts +27 -0
- package/dist/clients/grpcHandler.d.ts.map +1 -0
- package/dist/clients/grpcHandler.js +79 -0
- package/dist/clients/grpcHandler.js.map +1 -0
- package/dist/clients/lensesClient.d.ts +10 -0
- package/dist/clients/lensesClient.d.ts.map +1 -0
- package/dist/clients/lensesClient.js.map +1 -0
- package/dist/clients/metricsClient.d.ts +27 -0
- package/dist/clients/metricsClient.d.ts.map +1 -0
- package/dist/clients/metricsClient.js +96 -0
- package/dist/clients/metricsClient.js.map +1 -0
- package/dist/common/assertions.d.ts +28 -0
- package/dist/common/assertions.d.ts.map +1 -0
- package/dist/common/assertions.js +14 -0
- package/dist/common/assertions.js.map +1 -0
- package/dist/common/copyDefinedProperties.d.ts +14 -0
- package/dist/common/copyDefinedProperties.d.ts.map +1 -0
- package/dist/common/copyDefinedProperties.js +4 -0
- package/dist/common/copyDefinedProperties.js.map +1 -0
- package/dist/common/date.d.ts +4 -0
- package/dist/common/date.d.ts.map +1 -0
- package/dist/common/dialog.d.ts +60 -0
- package/dist/common/dialog.d.ts.map +1 -0
- package/dist/common/dialog.js +158 -0
- package/dist/common/dialog.js.map +1 -0
- package/dist/common/entries.d.ts +5 -0
- package/dist/common/entries.d.ts.map +1 -0
- package/dist/common/entries.js +3 -0
- package/dist/common/entries.js.map +1 -0
- package/dist/common/errorHelpers.d.ts +18 -0
- package/dist/common/errorHelpers.d.ts.map +1 -0
- package/dist/common/errorHelpers.js +20 -0
- package/dist/common/errorHelpers.js.map +1 -0
- package/dist/common/getFilename.d.ts +2 -0
- package/dist/common/getFilename.d.ts.map +1 -0
- package/dist/common/hash.d.ts +6 -0
- package/dist/common/hash.d.ts.map +1 -0
- package/dist/common/hash.js +13 -0
- package/dist/common/hash.js.map +1 -0
- package/dist/common/loadScript.d.ts +7 -0
- package/dist/common/loadScript.d.ts.map +1 -0
- package/dist/common/loadScript.js +13 -0
- package/dist/common/loadScript.js.map +1 -0
- package/dist/common/localization.d.ts +55 -0
- package/dist/common/localization.d.ts.map +1 -0
- package/dist/common/localization.js +622 -0
- package/dist/common/localization.js.map +1 -0
- package/dist/common/memoize.d.ts +9 -0
- package/dist/common/memoize.d.ts.map +1 -0
- package/dist/common/pageVisibility.d.ts +35 -0
- package/dist/common/pageVisibility.d.ts.map +1 -0
- package/dist/common/pageVisibility.js +52 -0
- package/dist/common/pageVisibility.js.map +1 -0
- package/dist/common/result.d.ts +37 -0
- package/dist/common/result.d.ts.map +1 -0
- package/dist/common/result.js +39 -0
- package/dist/common/result.js.map +1 -0
- package/dist/common/time.d.ts +3 -0
- package/dist/common/time.d.ts.map +1 -0
- package/dist/common/typeguards.d.ts +68 -0
- package/dist/common/typeguards.d.ts.map +1 -0
- package/dist/common/typeguards.js +68 -0
- package/dist/common/typeguards.js.map +1 -0
- package/dist/common/types.d.ts +38 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js.map +1 -0
- package/dist/common/unionBy.d.ts +29 -0
- package/dist/common/unionBy.d.ts.map +1 -0
- package/dist/common/unionBy.js +16 -0
- package/dist/common/unionBy.js.map +1 -0
- package/dist/common/validate.d.ts +16 -0
- package/dist/common/validate.d.ts.map +1 -0
- package/dist/common/validate.js +57 -0
- package/dist/common/validate.js.map +1 -0
- package/dist/configuration.d.ts +102 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/configuration.js +30 -0
- package/dist/configuration.js.map +1 -0
- package/dist/configurationOverrides.d.ts +13 -0
- package/dist/configurationOverrides.d.ts.map +1 -0
- package/dist/configurationOverrides.js +38 -0
- package/dist/configurationOverrides.js.map +1 -0
- package/dist/dependency-injection/Container.d.ts +177 -0
- package/dist/dependency-injection/Container.d.ts.map +1 -0
- package/dist/dependency-injection/Container.js +72 -0
- package/dist/dependency-injection/Container.js.map +1 -0
- package/dist/dependency-injection/Injectable.d.ts +96 -0
- package/dist/dependency-injection/Injectable.d.ts.map +1 -0
- package/dist/dependency-injection/Injectable.js.map +1 -0
- package/dist/dependency-injection/PartialContainer.d.ts +86 -0
- package/dist/dependency-injection/PartialContainer.d.ts.map +1 -0
- package/dist/dependency-injection/PartialContainer.js +28 -0
- package/dist/dependency-injection/PartialContainer.js.map +1 -0
- package/dist/dependency-injection/RootServices.d.ts +74 -0
- package/dist/dependency-injection/RootServices.d.ts.map +1 -0
- package/dist/dependency-injection/RootServices.js +2 -0
- package/dist/dependency-injection/RootServices.js.map +1 -0
- package/dist/dependency-injection/types.d.ts +57 -0
- package/dist/dependency-injection/types.d.ts.map +1 -0
- package/dist/dependency-injection/types.js.map +1 -0
- package/dist/environment.d.ts +5 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/environment.js +2 -0
- package/dist/environment.js.map +1 -0
- package/dist/events/TypedCustomEvent.d.ts +11 -0
- package/dist/events/TypedCustomEvent.d.ts.map +1 -0
- package/dist/events/TypedCustomEvent.js +6 -0
- package/dist/events/TypedCustomEvent.js.map +1 -0
- package/dist/events/TypedEventTarget.d.ts +26 -0
- package/dist/events/TypedEventTarget.d.ts.map +1 -0
- package/dist/events/TypedEventTarget.js +42 -0
- package/dist/events/TypedEventTarget.js.map +1 -0
- package/dist/events/scan.d.ts +18 -0
- package/dist/events/scan.d.ts.map +1 -0
- package/dist/events/scan.js +29 -0
- package/dist/events/scan.js.map +1 -0
- package/dist/extensions/RemoteApiServices.d.ts +88 -0
- package/dist/extensions/RemoteApiServices.d.ts.map +1 -0
- package/dist/extensions/RemoteApiServices.js +155 -0
- package/dist/extensions/RemoteApiServices.js.map +1 -0
- package/dist/extensions/UriHandlers.d.ts +48 -0
- package/dist/extensions/UriHandlers.d.ts.map +1 -0
- package/dist/extensions/UriHandlers.js +34 -0
- package/dist/extensions/UriHandlers.js.map +1 -0
- package/dist/extensions/extensionRequestContext.d.ts +5 -0
- package/dist/extensions/extensionRequestContext.d.ts.map +1 -0
- package/dist/extensions/extensionRequestContext.js +11 -0
- package/dist/extensions/extensionRequestContext.js.map +1 -0
- package/dist/extensions/uriHandlersRegister.d.ts +22 -0
- package/dist/extensions/uriHandlersRegister.d.ts.map +1 -0
- package/dist/extensions/uriHandlersRegister.js +61 -0
- package/dist/extensions/uriHandlersRegister.js.map +1 -0
- package/dist/generated-proto/blizzard/cameraKitEvents.d.ts +9528 -0
- package/dist/generated-proto/blizzard/cameraKitEvents.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +80 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/export.d.ts +529 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/export.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts +35 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js +42 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts +30 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +86 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +385 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/lens.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +179 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +57 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/service.d.ts +2512 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/service.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +79 -0
- package/dist/generated-proto/pb_schema/cdp/cof/benchmark.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts +51 -0
- package/dist/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +25575 -0
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts +280 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts +3726 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts +10224 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/debug_info.d.ts +94 -0
- package/dist/generated-proto/pb_schema/cdp/cof/debug_info.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/namespace.d.ts +9 -0
- package/dist/generated-proto/pb_schema/cdp/cof/namespace.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/common/ruid.d.ts +52 -0
- package/dist/generated-proto/pb_schema/common/ruid.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/common/value.d.ts +145 -0
- package/dist/generated-proto/pb_schema/common/value.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/api/annotations.d.ts +2 -0
- package/dist/generated-proto/pb_schema/google/api/annotations.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/api/annotations.js +8 -0
- package/dist/generated-proto/pb_schema/google/api/annotations.js.map +1 -0
- package/dist/generated-proto/pb_schema/google/api/http.d.ts +3631 -0
- package/dist/generated-proto/pb_schema/google/api/http.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/api/http.js +193 -0
- package/dist/generated-proto/pb_schema/google/api/http.js.map +1 -0
- package/dist/generated-proto/pb_schema/google/protobuf/any.d.ts +33 -0
- package/dist/generated-proto/pb_schema/google/protobuf/any.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +50897 -0
- package/dist/generated-proto/pb_schema/google/protobuf/descriptor.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/protobuf/descriptor.js +1818 -0
- package/dist/generated-proto/pb_schema/google/protobuf/descriptor.js.map +1 -0
- package/dist/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +33 -0
- package/dist/generated-proto/pb_schema/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +120 -0
- package/dist/generated-proto/pb_schema/google/protobuf/wrappers.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/geocircle.d.ts +43 -0
- package/dist/generated-proto/pb_schema/lenses/geocircle.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/geopoint.d.ts +33 -0
- package/dist/generated-proto/pb_schema/lenses/geopoint.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/launch_params.d.ts +30 -0
- package/dist/generated-proto/pb_schema/lenses/launch_params.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts +397 -0
- package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/lures.d.ts +112 -0
- package/dist/generated-proto/pb_schema/lenses/lures.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/persistent_store.d.ts +30 -0
- package/dist/generated-proto/pb_schema/lenses/persistent_store.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts +570 -0
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/snappable.d.ts +903 -0
- package/dist/generated-proto/pb_schema/lenses/snappable.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/user_data.d.ts +230 -0
- package/dist/generated-proto/pb_schema/lenses/user_data.d.ts.map +1 -0
- package/dist/handlers/HandlerChainBuilder.d.ts +111 -0
- package/dist/handlers/HandlerChainBuilder.d.ts.map +1 -0
- package/dist/handlers/HandlerChainBuilder.js +55 -0
- package/dist/handlers/HandlerChainBuilder.js.map +1 -0
- package/dist/handlers/arrayBufferParsingHandler.d.ts +11 -0
- package/dist/handlers/arrayBufferParsingHandler.d.ts.map +1 -0
- package/dist/handlers/arrayBufferParsingHandler.js +13 -0
- package/dist/handlers/arrayBufferParsingHandler.js.map +1 -0
- package/dist/handlers/batchingHandler.d.ts +32 -0
- package/dist/handlers/batchingHandler.d.ts.map +1 -0
- package/dist/handlers/batchingHandler.js +45 -0
- package/dist/handlers/batchingHandler.js.map +1 -0
- package/dist/handlers/cameraKitServiceFetchHandlerFactory.d.ts +13 -0
- package/dist/handlers/cameraKitServiceFetchHandlerFactory.d.ts.map +1 -0
- package/dist/handlers/cameraKitServiceFetchHandlerFactory.js +14 -0
- package/dist/handlers/cameraKitServiceFetchHandlerFactory.js.map +1 -0
- package/dist/handlers/debugHandler.d.ts +9 -0
- package/dist/handlers/debugHandler.d.ts.map +1 -0
- package/dist/handlers/debugHandler.js +18 -0
- package/dist/handlers/debugHandler.js.map +1 -0
- package/dist/handlers/defaultFetchHandler.d.ts +16 -0
- package/dist/handlers/defaultFetchHandler.d.ts.map +1 -0
- package/dist/handlers/defaultFetchHandler.js +25 -0
- package/dist/handlers/defaultFetchHandler.js.map +1 -0
- package/dist/handlers/headersModifyingFetchHandler.d.ts +9 -0
- package/dist/handlers/headersModifyingFetchHandler.d.ts.map +1 -0
- package/dist/handlers/headersModifyingFetchHandler.js +10 -0
- package/dist/handlers/headersModifyingFetchHandler.js.map +1 -0
- package/dist/handlers/mappingHandler.d.ts +20 -0
- package/dist/handlers/mappingHandler.d.ts.map +1 -0
- package/dist/handlers/mappingHandler.js +44 -0
- package/dist/handlers/mappingHandler.js.map +1 -0
- package/dist/handlers/noCorsRetryingFetchHandler.d.ts +49 -0
- package/dist/handlers/noCorsRetryingFetchHandler.d.ts.map +1 -0
- package/dist/handlers/noCorsRetryingFetchHandler.js +33 -0
- package/dist/handlers/noCorsRetryingFetchHandler.js.map +1 -0
- package/dist/handlers/persistingHandler.d.ts +15 -0
- package/dist/handlers/persistingHandler.d.ts.map +1 -0
- package/dist/handlers/persistingHandler.js +43 -0
- package/dist/handlers/persistingHandler.js.map +1 -0
- package/dist/handlers/rateLimitingHandler.d.ts +25 -0
- package/dist/handlers/rateLimitingHandler.d.ts.map +1 -0
- package/dist/handlers/rateLimitingHandler.js +21 -0
- package/dist/handlers/rateLimitingHandler.js.map +1 -0
- package/dist/handlers/requestStateEmittingHandler.d.ts +42 -0
- package/dist/handlers/requestStateEmittingHandler.d.ts.map +1 -0
- package/dist/handlers/requestStateEmittingHandler.js +42 -0
- package/dist/handlers/requestStateEmittingHandler.js.map +1 -0
- package/dist/handlers/responseCachingHandler.d.ts +35 -0
- package/dist/handlers/responseCachingHandler.d.ts.map +1 -0
- package/dist/handlers/responseCachingHandler.js +83 -0
- package/dist/handlers/responseCachingHandler.js.map +1 -0
- package/dist/handlers/retryingHandler.d.ts +49 -0
- package/dist/handlers/retryingHandler.d.ts.map +1 -0
- package/dist/handlers/retryingHandler.js +62 -0
- package/dist/handlers/retryingHandler.js.map +1 -0
- package/dist/handlers/timeoutHandler.d.ts +19 -0
- package/dist/handlers/timeoutHandler.d.ts.map +1 -0
- package/dist/handlers/timeoutHandler.js +20 -0
- package/dist/handlers/timeoutHandler.js.map +1 -0
- package/dist/handlers/utils.d.ts +13 -0
- package/dist/handlers/utils.d.ts.map +1 -0
- package/dist/handlers/utils.js +7 -0
- package/dist/handlers/utils.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/legal/legalPrompt.d.ts +21 -0
- package/dist/legal/legalPrompt.d.ts.map +1 -0
- package/dist/legal/legalPrompt.js +130 -0
- package/dist/legal/legalPrompt.js.map +1 -0
- package/dist/legal/legalState.d.ts +51 -0
- package/dist/legal/legalState.d.ts.map +1 -0
- package/dist/legal/legalState.js +100 -0
- package/dist/legal/legalState.js.map +1 -0
- package/dist/lens/Lens.d.ts +117 -0
- package/dist/lens/Lens.d.ts.map +1 -0
- package/dist/lens/Lens.js +74 -0
- package/dist/lens/Lens.js.map +1 -0
- package/dist/lens/LensLaunchData.d.ts +45 -0
- package/dist/lens/LensLaunchData.d.ts.map +1 -0
- package/dist/lens/LensLaunchData.js +83 -0
- package/dist/lens/LensLaunchData.js.map +1 -0
- package/dist/lens/LensPersistenceStore.d.ts +8 -0
- package/dist/lens/LensPersistenceStore.d.ts.map +1 -0
- package/dist/lens/LensPersistenceStore.js.map +1 -0
- package/dist/lens/LensRepository.d.ts +133 -0
- package/dist/lens/LensRepository.d.ts.map +1 -0
- package/dist/lens/LensRepository.js +147 -0
- package/dist/lens/LensRepository.js.map +1 -0
- package/dist/lens/LensSource.d.ts +44 -0
- package/dist/lens/LensSource.d.ts.map +1 -0
- package/dist/lens/LensSource.js +18 -0
- package/dist/lens/LensSource.js.map +1 -0
- package/dist/lens/assets/LensAssetRepository.d.ts +101 -0
- package/dist/lens/assets/LensAssetRepository.d.ts.map +1 -0
- package/dist/lens/assets/LensAssetRepository.js +139 -0
- package/dist/lens/assets/LensAssetRepository.js.map +1 -0
- package/dist/lens/assets/LensAssetsProvider.d.ts +28 -0
- package/dist/lens/assets/LensAssetsProvider.d.ts.map +1 -0
- package/dist/lens/assets/LensAssetsProvider.js +52 -0
- package/dist/lens/assets/LensAssetsProvider.js.map +1 -0
- package/dist/lens/assets/deviceDependentAssetLoader.d.ts +12 -0
- package/dist/lens/assets/deviceDependentAssetLoader.d.ts.map +1 -0
- package/dist/lens/assets/deviceDependentAssetLoader.js +49 -0
- package/dist/lens/assets/deviceDependentAssetLoader.js.map +1 -0
- package/dist/lens/assets/remoteMediaAssetLoaderFactory.d.ts +11 -0
- package/dist/lens/assets/remoteMediaAssetLoaderFactory.d.ts.map +1 -0
- package/dist/lens/assets/remoteMediaAssetLoaderFactory.js +18 -0
- package/dist/lens/assets/remoteMediaAssetLoaderFactory.js.map +1 -0
- package/dist/lens/assets/staticAssetLoader.d.ts +11 -0
- package/dist/lens/assets/staticAssetLoader.d.ts.map +1 -0
- package/dist/lens/assets/staticAssetLoader.js +21 -0
- package/dist/lens/assets/staticAssetLoader.js.map +1 -0
- package/dist/lens/cameraKitLensSource.d.ts +18 -0
- package/dist/lens/cameraKitLensSource.d.ts.map +1 -0
- package/dist/lens/cameraKitLensSource.js +93 -0
- package/dist/lens/cameraKitLensSource.js.map +1 -0
- package/dist/lens/fetchWatermarkLens.d.ts +12 -0
- package/dist/lens/fetchWatermarkLens.d.ts.map +1 -0
- package/dist/lens/fetchWatermarkLens.js +23 -0
- package/dist/lens/fetchWatermarkLens.js.map +1 -0
- package/dist/lens-client-interface/exif.d.ts +21 -0
- package/dist/lens-client-interface/exif.d.ts.map +1 -0
- package/dist/lens-client-interface/exif.js +51 -0
- package/dist/lens-client-interface/exif.js.map +1 -0
- package/dist/lens-client-interface/imagePicker.d.ts +9 -0
- package/dist/lens-client-interface/imagePicker.d.ts.map +1 -0
- package/dist/lens-client-interface/imagePicker.js +113 -0
- package/dist/lens-client-interface/imagePicker.js.map +1 -0
- package/dist/lens-client-interface/lensClientInterface.d.ts +14 -0
- package/dist/lens-client-interface/lensClientInterface.d.ts.map +1 -0
- package/dist/lens-client-interface/lensClientInterface.js +22 -0
- package/dist/lens-client-interface/lensClientInterface.js.map +1 -0
- package/dist/lens-core-module/generated-types.d.ts +470 -0
- package/dist/lens-core-module/generated-types.d.ts.map +1 -0
- package/dist/lens-core-module/lensCore.d.ts +59 -0
- package/dist/lens-core-module/lensCore.d.ts.map +1 -0
- package/dist/lens-core-module/lensCore.js +95 -0
- package/dist/lens-core-module/lensCore.js.map +1 -0
- package/dist/lens-core-module/lensCoreError.d.ts +16 -0
- package/dist/lens-core-module/lensCoreError.d.ts.map +1 -0
- package/dist/lens-core-module/lensCoreError.js +35 -0
- package/dist/lens-core-module/lensCoreError.js.map +1 -0
- package/dist/lens-core-module/loader/bootstrapURLs.d.ts +13 -0
- package/dist/lens-core-module/loader/bootstrapURLs.d.ts.map +1 -0
- package/dist/lens-core-module/loader/bootstrapURLs.js +32 -0
- package/dist/lens-core-module/loader/bootstrapURLs.js.map +1 -0
- package/dist/lens-core-module/loader/lensCoreFactory.d.ts +18 -0
- package/dist/lens-core-module/loader/lensCoreFactory.d.ts.map +1 -0
- package/dist/lens-core-module/loader/lensCoreFactory.js +54 -0
- package/dist/lens-core-module/loader/lensCoreFactory.js.map +1 -0
- package/dist/lensCoreWasmVersions.d.ts +7 -0
- package/dist/lensCoreWasmVersions.d.ts.map +1 -0
- package/dist/lensCoreWasmVersions.js +6 -0
- package/dist/lensCoreWasmVersions.js.map +1 -0
- package/dist/logger/errorLoggingDecorator.d.ts +10 -0
- package/dist/logger/errorLoggingDecorator.d.ts.map +1 -0
- package/dist/logger/errorLoggingDecorator.js +19 -0
- package/dist/logger/errorLoggingDecorator.js.map +1 -0
- package/dist/logger/logEntries.d.ts +16 -0
- package/dist/logger/logEntries.d.ts.map +1 -0
- package/dist/logger/logEntries.js +4 -0
- package/dist/logger/logEntries.js.map +1 -0
- package/dist/logger/logger.d.ts +41 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.js +27 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/logger/registerLogEntriesSubscriber.d.ts +15 -0
- package/dist/logger/registerLogEntriesSubscriber.d.ts.map +1 -0
- package/dist/logger/registerLogEntriesSubscriber.js +27 -0
- package/dist/logger/registerLogEntriesSubscriber.js.map +1 -0
- package/dist/media-sources/CameraKitSource.d.ts +130 -0
- package/dist/media-sources/CameraKitSource.d.ts.map +1 -0
- package/dist/media-sources/CameraKitSource.js +96 -0
- package/dist/media-sources/CameraKitSource.js.map +1 -0
- package/dist/media-sources/FunctionSource.d.ts +42 -0
- package/dist/media-sources/FunctionSource.d.ts.map +1 -0
- package/dist/media-sources/FunctionSource.js +105 -0
- package/dist/media-sources/FunctionSource.js.map +1 -0
- package/dist/media-sources/ImageSource.d.ts +13 -0
- package/dist/media-sources/ImageSource.d.ts.map +1 -0
- package/dist/media-sources/ImageSource.js +7 -0
- package/dist/media-sources/ImageSource.js.map +1 -0
- package/dist/media-sources/MediaStreamSource.d.ts +31 -0
- package/dist/media-sources/MediaStreamSource.d.ts.map +1 -0
- package/dist/media-sources/MediaStreamSource.js +140 -0
- package/dist/media-sources/MediaStreamSource.js.map +1 -0
- package/dist/media-sources/VideoSource.d.ts +27 -0
- package/dist/media-sources/VideoSource.d.ts.map +1 -0
- package/dist/media-sources/VideoSource.js +12 -0
- package/dist/media-sources/VideoSource.js.map +1 -0
- package/dist/metrics/businessEventsReporter.d.ts +40 -0
- package/dist/metrics/businessEventsReporter.d.ts.map +1 -0
- package/dist/metrics/businessEventsReporter.js +156 -0
- package/dist/metrics/businessEventsReporter.js.map +1 -0
- package/dist/metrics/metricsEventTarget.d.ts +42 -0
- package/dist/metrics/metricsEventTarget.d.ts.map +1 -0
- package/dist/metrics/metricsEventTarget.js +4 -0
- package/dist/metrics/metricsEventTarget.js.map +1 -0
- package/dist/metrics/operational/Count.d.ts +21 -0
- package/dist/metrics/operational/Count.d.ts.map +1 -0
- package/dist/metrics/operational/Count.js +31 -0
- package/dist/metrics/operational/Count.js.map +1 -0
- package/dist/metrics/operational/Histogram.d.ts +19 -0
- package/dist/metrics/operational/Histogram.d.ts.map +1 -0
- package/dist/metrics/operational/Histogram.js +26 -0
- package/dist/metrics/operational/Histogram.js.map +1 -0
- package/dist/metrics/operational/Metric.d.ts +21 -0
- package/dist/metrics/operational/Metric.d.ts.map +1 -0
- package/dist/metrics/operational/Metric.js +23 -0
- package/dist/metrics/operational/Metric.js.map +1 -0
- package/dist/metrics/operational/Timer.d.ts +96 -0
- package/dist/metrics/operational/Timer.d.ts.map +1 -0
- package/dist/metrics/operational/Timer.js +64 -0
- package/dist/metrics/operational/Timer.js.map +1 -0
- package/dist/metrics/reporters/reportBenchmarks.d.ts +11 -0
- package/dist/metrics/reporters/reportBenchmarks.d.ts.map +1 -0
- package/dist/metrics/reporters/reportBenchmarks.js +27 -0
- package/dist/metrics/reporters/reportBenchmarks.js.map +1 -0
- package/dist/metrics/reporters/reportGlobalException.d.ts +27 -0
- package/dist/metrics/reporters/reportGlobalException.d.ts.map +1 -0
- package/dist/metrics/reporters/reportGlobalException.js +82 -0
- package/dist/metrics/reporters/reportGlobalException.js.map +1 -0
- package/dist/metrics/reporters/reportHttpMetrics.d.ts +11 -0
- package/dist/metrics/reporters/reportHttpMetrics.d.ts.map +1 -0
- package/dist/metrics/reporters/reportHttpMetrics.js +107 -0
- package/dist/metrics/reporters/reportHttpMetrics.js.map +1 -0
- package/dist/metrics/reporters/reportLegalState.d.ts +16 -0
- package/dist/metrics/reporters/reportLegalState.d.ts.map +1 -0
- package/dist/metrics/reporters/reportLegalState.js +29 -0
- package/dist/metrics/reporters/reportLegalState.js.map +1 -0
- package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts +39 -0
- package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts.map +1 -0
- package/dist/metrics/reporters/reportLensAndAssetDownload.js +91 -0
- package/dist/metrics/reporters/reportLensAndAssetDownload.js.map +1 -0
- package/dist/metrics/reporters/reportLensValidationFailed.d.ts +21 -0
- package/dist/metrics/reporters/reportLensValidationFailed.d.ts.map +1 -0
- package/dist/metrics/reporters/reportLensValidationFailed.js +21 -0
- package/dist/metrics/reporters/reportLensValidationFailed.js.map +1 -0
- package/dist/metrics/reporters/reportLensView.d.ts +37 -0
- package/dist/metrics/reporters/reportLensView.d.ts.map +1 -0
- package/dist/metrics/reporters/reportLensView.js +102 -0
- package/dist/metrics/reporters/reportLensView.js.map +1 -0
- package/dist/metrics/reporters/reportLensWait.d.ts +33 -0
- package/dist/metrics/reporters/reportLensWait.d.ts.map +1 -0
- package/dist/metrics/reporters/reportLensWait.js +35 -0
- package/dist/metrics/reporters/reportLensWait.js.map +1 -0
- package/dist/metrics/reporters/reportPlatformCapabilities.d.ts +13 -0
- package/dist/metrics/reporters/reportPlatformCapabilities.d.ts.map +1 -0
- package/dist/metrics/reporters/reportPlatformCapabilities.js +13 -0
- package/dist/metrics/reporters/reportPlatformCapabilities.js.map +1 -0
- package/dist/metrics/reporters/reportSessionException.d.ts +18 -0
- package/dist/metrics/reporters/reportSessionException.d.ts.map +1 -0
- package/dist/metrics/reporters/reportSessionException.js +7 -0
- package/dist/metrics/reporters/reportSessionException.js.map +1 -0
- package/dist/metrics/reporters/reportUserSession.d.ts +15 -0
- package/dist/metrics/reporters/reportUserSession.d.ts.map +1 -0
- package/dist/metrics/reporters/reportUserSession.js +61 -0
- package/dist/metrics/reporters/reportUserSession.js.map +1 -0
- package/dist/metrics/reporters/reporters.d.ts +47 -0
- package/dist/metrics/reporters/reporters.d.ts.map +1 -0
- package/dist/metrics/reporters/reporters.js +24 -0
- package/dist/metrics/reporters/reporters.js.map +1 -0
- package/dist/namedErrors.d.ts +131 -0
- package/dist/namedErrors.d.ts.map +1 -0
- package/dist/namedErrors.js +29 -0
- package/dist/namedErrors.js.map +1 -0
- package/dist/observable-operators/debounceTimeAfter.d.ts +26 -0
- package/dist/observable-operators/debounceTimeAfter.d.ts.map +1 -0
- package/dist/observable-operators/debounceTimeAfter.js +22 -0
- package/dist/observable-operators/debounceTimeAfter.js.map +1 -0
- package/dist/observable-operators/unsubscribed.d.ts +13 -0
- package/dist/observable-operators/unsubscribed.d.ts.map +1 -0
- package/dist/observable-operators/unsubscribed.js +15 -0
- package/dist/observable-operators/unsubscribed.js.map +1 -0
- package/dist/persistence/ExpiringPersistence.d.ts +22 -0
- package/dist/persistence/ExpiringPersistence.d.ts.map +1 -0
- package/dist/persistence/ExpiringPersistence.js +64 -0
- package/dist/persistence/ExpiringPersistence.js.map +1 -0
- package/dist/persistence/IndexedDBPersistence.d.ts +48 -0
- package/dist/persistence/IndexedDBPersistence.d.ts.map +1 -0
- package/dist/persistence/IndexedDBPersistence.js +127 -0
- package/dist/persistence/IndexedDBPersistence.js.map +1 -0
- package/dist/persistence/Persistence.d.ts +26 -0
- package/dist/persistence/Persistence.d.ts.map +1 -0
- package/dist/persistence/Persistence.js +4 -0
- package/dist/persistence/Persistence.js.map +1 -0
- package/dist/platform/assertPlatformSupported.d.ts +5 -0
- package/dist/platform/assertPlatformSupported.d.ts.map +1 -0
- package/dist/platform/assertPlatformSupported.js +12 -0
- package/dist/platform/assertPlatformSupported.js.map +1 -0
- package/dist/platform/cameraKitUserAgent.d.ts +3 -0
- package/dist/platform/cameraKitUserAgent.d.ts.map +1 -0
- package/dist/platform/cameraKitUserAgent.js +13 -0
- package/dist/platform/cameraKitUserAgent.js.map +1 -0
- package/dist/platform/platformCapabilities.d.ts +58 -0
- package/dist/platform/platformCapabilities.d.ts.map +1 -0
- package/dist/platform/platformCapabilities.js +98 -0
- package/dist/platform/platformCapabilities.js.map +1 -0
- package/dist/platform/platformInfo.d.ts +44 -0
- package/dist/platform/platformInfo.d.ts.map +1 -0
- package/dist/platform/platformInfo.js +156 -0
- package/dist/platform/platformInfo.js.map +1 -0
- package/dist/remote-configuration/cofHandler.d.ts +30 -0
- package/dist/remote-configuration/cofHandler.d.ts.map +1 -0
- package/dist/remote-configuration/cofHandler.js +83 -0
- package/dist/remote-configuration/cofHandler.js.map +1 -0
- package/dist/remote-configuration/preloadConfiguration.d.ts +8 -0
- package/dist/remote-configuration/preloadConfiguration.d.ts.map +1 -0
- package/dist/remote-configuration/preloadConfiguration.js +20 -0
- package/dist/remote-configuration/preloadConfiguration.js.map +1 -0
- package/dist/remote-configuration/remoteConfiguration.d.ts +36 -0
- package/dist/remote-configuration/remoteConfiguration.d.ts.map +1 -0
- package/dist/remote-configuration/remoteConfiguration.js +59 -0
- package/dist/remote-configuration/remoteConfiguration.js.map +1 -0
- package/dist/session/CameraKitSession.d.ts +257 -0
- package/dist/session/CameraKitSession.d.ts.map +1 -0
- package/dist/session/CameraKitSession.js +242 -0
- package/dist/session/CameraKitSession.js.map +1 -0
- package/dist/session/CameraKitSessionEvents.d.ts +29 -0
- package/dist/session/CameraKitSessionEvents.d.ts.map +1 -0
- package/dist/session/CameraKitSessionEvents.js +15 -0
- package/dist/session/CameraKitSessionEvents.js.map +1 -0
- package/dist/session/LensKeyboard.d.ts +90 -0
- package/dist/session/LensKeyboard.d.ts.map +1 -0
- package/dist/session/LensKeyboard.js +89 -0
- package/dist/session/LensKeyboard.js.map +1 -0
- package/dist/session/LensPerformanceMeasurement.d.ts +58 -0
- package/dist/session/LensPerformanceMeasurement.d.ts.map +1 -0
- package/dist/session/LensPerformanceMeasurement.js +63 -0
- package/dist/session/LensPerformanceMeasurement.js.map +1 -0
- package/dist/session/LensPerformanceMetrics.d.ts +32 -0
- package/dist/session/LensPerformanceMetrics.d.ts.map +1 -0
- package/dist/session/LensPerformanceMetrics.js +39 -0
- package/dist/session/LensPerformanceMetrics.js.map +1 -0
- package/dist/session/lensState.d.ts +32 -0
- package/dist/session/lensState.d.ts.map +1 -0
- package/dist/session/lensState.js +194 -0
- package/dist/session/lensState.js.map +1 -0
- package/dist/session/sessionState.d.ts +11 -0
- package/dist/session/sessionState.d.ts.map +1 -0
- package/dist/session/sessionState.js.map +1 -0
- package/dist/transforms/Transform2D.d.ts +27 -0
- package/dist/transforms/Transform2D.d.ts.map +1 -0
- package/dist/transforms/Transform2D.js +13 -0
- package/dist/transforms/Transform2D.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/docs/html/assets/navigation.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/CameraKit.html +2 -2
- package/docs/html/classes/CameraKitSession.html +2 -2
- package/docs/html/classes/CameraKitSource.html +2 -2
- package/docs/html/classes/LensPerformanceMeasurement.html +2 -2
- package/docs/html/classes/LensPerformanceMetrics.html +2 -2
- package/docs/html/classes/LensRepository.html +3 -3
- package/docs/html/classes/Transform2D.html +2 -2
- package/docs/html/classes/TypedCustomEvent.html +2 -2
- package/docs/html/classes/TypedEventTarget.html +2 -2
- package/docs/html/enums/Lens_CameraFacing.html +2 -2
- package/docs/html/functions/ConcatInjectable.html +2 -2
- package/docs/html/functions/Injectable.html +2 -2
- package/docs/html/functions/bootstrapCameraKit.html +2 -2
- package/docs/html/functions/createExtension.html +2 -2
- package/docs/html/functions/createImageSource.html +2 -2
- package/docs/html/functions/createMediaStreamSource.html +2 -2
- package/docs/html/functions/createVideoSource.html +2 -2
- package/docs/html/functions/estimateLensPerformance.html +2 -2
- package/docs/html/functions/lensSourcesFactory.html +2 -2
- package/docs/html/functions/remoteApiServicesFactory.html +2 -2
- package/docs/html/hierarchy.html +1 -1
- package/docs/html/index.html +3 -3
- package/docs/html/interfaces/BitmojiUserInfo.html +3 -0
- package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +2 -2
- package/docs/html/interfaces/CameraKitDeviceOptions.html +2 -2
- package/docs/html/interfaces/CameraKitSourceInfo.html +2 -2
- package/docs/html/interfaces/CameraKitSourceSubscriber.html +2 -2
- package/docs/html/interfaces/ComputedFrameMetrics.html +2 -2
- package/docs/html/interfaces/CreateSessionOptions.html +2 -2
- package/docs/html/interfaces/EstimatedLensPerformance.html +2 -2
- package/docs/html/interfaces/FriendUserInfo.html +4 -0
- package/docs/html/interfaces/FunctionSourceOptions.html +2 -2
- package/docs/html/interfaces/Lens.html +2 -2
- package/docs/html/interfaces/LensCreator.html +2 -2
- package/docs/html/interfaces/LensLaunchData.html +3 -3
- package/docs/html/interfaces/LensSource.html +2 -2
- package/docs/html/interfaces/LensUserData.html +10 -0
- package/docs/html/interfaces/LoadAssetRequest.html +2 -2
- package/docs/html/interfaces/MediaStreamSourceOptions.html +2 -2
- package/docs/html/interfaces/Preview.html +2 -2
- package/docs/html/interfaces/RemoteApiRequest.html +2 -2
- package/docs/html/interfaces/RemoteApiResponse.html +4 -4
- package/docs/html/interfaces/RemoteApiService.html +3 -3
- package/docs/html/interfaces/Snapcode.html +2 -2
- package/docs/html/interfaces/UriCancelRequest.html +2 -2
- package/docs/html/interfaces/UriRequest.html +2 -2
- package/docs/html/interfaces/UriResponse.html +2 -2
- package/docs/html/interfaces/VideoSourceOptions.html +2 -2
- package/docs/html/modules.html +7 -3
- package/docs/html/types/ArgumentValidationError.html +2 -0
- package/docs/html/types/AssetLoader.html +2 -2
- package/docs/html/types/AssetResponse.html +1 -1
- package/docs/html/types/AssetTiming.html +2 -2
- package/docs/html/types/BenchmarkError.html +1 -1
- package/docs/html/types/BootstrapError.html +2 -2
- package/docs/html/types/CacheKeyNotFoundError.html +1 -1
- package/docs/html/types/CameraKitSessionEventListener.html +2 -2
- package/docs/html/types/CameraKitSessionEvents.html +2 -2
- package/docs/html/types/CameraKitSourceError.html +1 -1
- package/docs/html/types/ConfigurationError.html +2 -2
- package/docs/html/types/FetchHandler.html +1 -1
- package/docs/html/types/Keyboard.html +2 -2
- package/docs/html/types/KeyboardEvents.html +2 -2
- package/docs/html/types/LegalError.html +1 -1
- package/docs/html/types/LensAbortError.html +2 -2
- package/docs/html/types/LensAssetError.html +2 -2
- package/docs/html/types/LensContentValidationError.html +1 -1
- package/docs/html/types/LensError.html +1 -1
- package/docs/html/types/LensExecutionError.html +2 -2
- package/docs/html/types/LensImagePickerError.html +2 -2
- package/docs/html/types/LensLaunchParams.html +2 -2
- package/docs/html/types/LensMetricsEvents.html +2 -2
- package/docs/html/types/LensPerformanceCluster.html +1 -1
- package/docs/html/types/LensView.html +2 -2
- package/docs/html/types/LensWait.html +2 -2
- package/docs/html/types/Matrix.html +2 -2
- package/docs/html/types/PersistentStoreError.html +2 -2
- package/docs/html/types/PlatformNotSupportedError.html +2 -2
- package/docs/html/types/PublicContainer.html +2 -2
- package/docs/html/types/PublicServices.html +2 -2
- package/docs/html/types/RemoteApiCancelRequestHandler.html +2 -2
- package/docs/html/types/RemoteApiRequestHandler.html +2 -2
- package/docs/html/types/RemoteApiServices.html +1 -1
- package/docs/html/types/RemoteApiStatus.html +2 -2
- package/docs/html/types/RenderTarget.html +2 -2
- package/docs/html/types/Uri.html +1 -1
- package/docs/html/types/WebGLError.html +1 -1
- package/docs/html/types/Zodiac.html +1 -0
- package/docs/html/variables/extensionRequestContext.html +2 -2
- package/docs/md/README.md +1 -1
- package/docs/md/classes/CameraKit.md +1 -1
- package/docs/md/classes/CameraKitSession.md +1 -1
- package/docs/md/classes/CameraKitSource.md +1 -1
- package/docs/md/classes/LensPerformanceMeasurement.md +1 -1
- package/docs/md/classes/LensPerformanceMetrics.md +1 -1
- package/docs/md/classes/LensRepository.md +2 -2
- package/docs/md/classes/Transform2D.md +1 -1
- package/docs/md/classes/TypedCustomEvent.md +1 -1
- package/docs/md/classes/TypedEventTarget.md +1 -1
- package/docs/md/enums/Lens_CameraFacing.md +1 -1
- package/docs/md/interfaces/BitmojiUserInfo.md +22 -0
- package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +1 -1
- package/docs/md/interfaces/CameraKitDeviceOptions.md +1 -1
- package/docs/md/interfaces/CameraKitSourceInfo.md +1 -1
- package/docs/md/interfaces/CameraKitSourceSubscriber.md +1 -1
- package/docs/md/interfaces/ComputedFrameMetrics.md +1 -1
- package/docs/md/interfaces/CreateSessionOptions.md +1 -1
- package/docs/md/interfaces/EstimatedLensPerformance.md +1 -1
- package/docs/md/interfaces/FriendUserInfo.md +29 -0
- package/docs/md/interfaces/FunctionSourceOptions.md +1 -1
- package/docs/md/interfaces/Lens.md +1 -1
- package/docs/md/interfaces/LensCreator.md +1 -1
- package/docs/md/interfaces/LensLaunchData.md +2 -21
- package/docs/md/interfaces/LensSource.md +1 -1
- package/docs/md/interfaces/LensUserData.md +71 -0
- package/docs/md/interfaces/LoadAssetRequest.md +1 -1
- package/docs/md/interfaces/MediaStreamSourceOptions.md +1 -1
- package/docs/md/interfaces/Preview.md +1 -1
- package/docs/md/interfaces/RemoteApiRequest.md +1 -1
- package/docs/md/interfaces/RemoteApiResponse.md +2 -2
- package/docs/md/interfaces/RemoteApiService.md +2 -2
- package/docs/md/interfaces/Snapcode.md +1 -1
- package/docs/md/interfaces/UriCancelRequest.md +1 -1
- package/docs/md/interfaces/UriRequest.md +1 -1
- package/docs/md/interfaces/UriResponse.md +1 -1
- package/docs/md/interfaces/VideoSourceOptions.md +1 -1
- package/docs/md/modules.md +23 -5
- package/package.json +14 -12
- package/docs/html/enums/UserData_Zodiac.html +0 -15
- package/docs/md/enums/UserData_Zodiac.md +0 -106
- package/lib/CameraKit.d.ts +0 -333
- package/lib/CameraKit.js +0 -176
- package/lib/CameraKit.js.map +0 -1
- package/lib/__tests__/data.d.ts +0 -14
- package/lib/__tests__/data.js +0 -69
- package/lib/__tests__/data.js.map +0 -1
- package/lib/__tests__/deferred.d.ts +0 -16
- package/lib/__tests__/deferred.js +0 -29
- package/lib/__tests__/deferred.js.map +0 -1
- package/lib/__tests__/jest.matchers.d.ts +0 -17
- package/lib/__tests__/jest.matchers.js +0 -67
- package/lib/__tests__/jest.matchers.js.map +0 -1
- package/lib/benchmark/benchmarkGflops.d.ts +0 -16
- package/lib/benchmark/benchmarkGflops.js +0 -129
- package/lib/benchmark/benchmarkGflops.js.map +0 -1
- package/lib/benchmark/estimateLensPerformanceCluster.d.ts +0 -33
- package/lib/benchmark/estimateLensPerformanceCluster.js +0 -48
- package/lib/benchmark/estimateLensPerformanceCluster.js.map +0 -1
- package/lib/benchmark/webglUtils.d.ts +0 -7
- package/lib/bootstrapCameraKit.d.ts +0 -96
- package/lib/bootstrapCameraKit.js +0 -220
- package/lib/bootstrapCameraKit.js.map +0 -1
- package/lib/clients/createTsProtoClient.d.ts +0 -40
- package/lib/clients/createTsProtoClient.js +0 -52
- package/lib/clients/createTsProtoClient.js.map +0 -1
- package/lib/clients/grpcHandler.d.ts +0 -26
- package/lib/clients/grpcHandler.js +0 -90
- package/lib/clients/grpcHandler.js.map +0 -1
- package/lib/clients/lensesClient.d.ts +0 -9
- package/lib/clients/lensesClient.js.map +0 -1
- package/lib/clients/metricsClient.d.ts +0 -26
- package/lib/clients/metricsClient.js +0 -120
- package/lib/clients/metricsClient.js.map +0 -1
- package/lib/common/__mocks__/loadScript.d.ts +0 -1
- package/lib/common/__mocks__/loadScript.js +0 -10
- package/lib/common/__mocks__/loadScript.js.map +0 -1
- package/lib/common/assertions.d.ts +0 -27
- package/lib/common/assertions.js +0 -39
- package/lib/common/assertions.js.map +0 -1
- package/lib/common/copyDefinedProperties.d.ts +0 -13
- package/lib/common/copyDefinedProperties.js +0 -16
- package/lib/common/copyDefinedProperties.js.map +0 -1
- package/lib/common/date.d.ts +0 -3
- package/lib/common/dialog.d.ts +0 -59
- package/lib/common/dialog.js +0 -160
- package/lib/common/dialog.js.map +0 -1
- package/lib/common/entries.d.ts +0 -4
- package/lib/common/entries.js +0 -5
- package/lib/common/entries.js.map +0 -1
- package/lib/common/errorHelpers.d.ts +0 -10
- package/lib/common/errorHelpers.js +0 -24
- package/lib/common/errorHelpers.js.map +0 -1
- package/lib/common/getFilename.d.ts +0 -1
- package/lib/common/hash.d.ts +0 -5
- package/lib/common/hash.js +0 -17
- package/lib/common/hash.js.map +0 -1
- package/lib/common/loadScript.d.ts +0 -6
- package/lib/common/loadScript.js +0 -18
- package/lib/common/loadScript.js.map +0 -1
- package/lib/common/localization.d.ts +0 -54
- package/lib/common/localization.js +0 -654
- package/lib/common/localization.js.map +0 -1
- package/lib/common/memoize.d.ts +0 -8
- package/lib/common/pageVisibility.d.ts +0 -34
- package/lib/common/pageVisibility.js +0 -71
- package/lib/common/pageVisibility.js.map +0 -1
- package/lib/common/result.d.ts +0 -36
- package/lib/common/result.js +0 -40
- package/lib/common/result.js.map +0 -1
- package/lib/common/time.d.ts +0 -2
- package/lib/common/typeguards.d.ts +0 -53
- package/lib/common/typeguards.js +0 -92
- package/lib/common/typeguards.js.map +0 -1
- package/lib/common/types.d.ts +0 -18
- package/lib/common/types.js.map +0 -1
- package/lib/common/unionBy.d.ts +0 -28
- package/lib/common/unionBy.js +0 -46
- package/lib/common/unionBy.js.map +0 -1
- package/lib/common/validate.d.ts +0 -14
- package/lib/common/validate.js +0 -112
- package/lib/common/validate.js.map +0 -1
- package/lib/configuration.d.ts +0 -101
- package/lib/configuration.js +0 -51
- package/lib/configuration.js.map +0 -1
- package/lib/configurationOverrides.d.ts +0 -12
- package/lib/configurationOverrides.js +0 -46
- package/lib/configurationOverrides.js.map +0 -1
- package/lib/dependency-injection/Container.d.ts +0 -176
- package/lib/dependency-injection/Container.js +0 -160
- package/lib/dependency-injection/Container.js.map +0 -1
- package/lib/dependency-injection/Injectable.d.ts +0 -95
- package/lib/dependency-injection/Injectable.js.map +0 -1
- package/lib/dependency-injection/PartialContainer.d.ts +0 -85
- package/lib/dependency-injection/PartialContainer.js +0 -85
- package/lib/dependency-injection/PartialContainer.js.map +0 -1
- package/lib/dependency-injection/RootServices.d.ts +0 -73
- package/lib/dependency-injection/RootServices.js +0 -2
- package/lib/dependency-injection/RootServices.js.map +0 -1
- package/lib/dependency-injection/types.d.ts +0 -56
- package/lib/dependency-injection/types.js.map +0 -1
- package/lib/environment.d.ts +0 -4
- package/lib/environment.js +0 -2
- package/lib/environment.js.map +0 -1
- package/lib/events/TypedCustomEvent.d.ts +0 -10
- package/lib/events/TypedCustomEvent.js +0 -11
- package/lib/events/TypedCustomEvent.js.map +0 -1
- package/lib/events/TypedEventTarget.d.ts +0 -25
- package/lib/events/TypedEventTarget.js +0 -57
- package/lib/events/TypedEventTarget.js.map +0 -1
- package/lib/events/scan.d.ts +0 -15
- package/lib/events/scan.js +0 -46
- package/lib/events/scan.js.map +0 -1
- package/lib/extensions/RemoteApiServices.d.ts +0 -101
- package/lib/extensions/RemoteApiServices.js +0 -203
- package/lib/extensions/RemoteApiServices.js.map +0 -1
- package/lib/extensions/UriHandlers.d.ts +0 -47
- package/lib/extensions/UriHandlers.js +0 -38
- package/lib/extensions/UriHandlers.js.map +0 -1
- package/lib/extensions/extensionRequestContext.d.ts +0 -4
- package/lib/extensions/extensionRequestContext.js +0 -14
- package/lib/extensions/extensionRequestContext.js.map +0 -1
- package/lib/extensions/uriHandlersRegister.d.ts +0 -21
- package/lib/extensions/uriHandlersRegister.js +0 -72
- package/lib/extensions/uriHandlersRegister.js.map +0 -1
- package/lib/generated-proto/blizzard/cameraKitEvents.d.ts +0 -9527
- package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +0 -79
- package/lib/generated-proto/pb_schema/camera_kit/v3/export.d.ts +0 -528
- package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts +0 -34
- package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js +0 -43
- package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js.map +0 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts +0 -29
- package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +0 -85
- package/lib/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +0 -384
- package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +0 -178
- package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +0 -56
- package/lib/generated-proto/pb_schema/camera_kit/v3/service.d.ts +0 -2511
- package/lib/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +0 -78
- package/lib/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts +0 -50
- package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +0 -25574
- package/lib/generated-proto/pb_schema/cdp/cof/config_request.d.ts +0 -279
- package/lib/generated-proto/pb_schema/cdp/cof/config_response.d.ts +0 -3725
- package/lib/generated-proto/pb_schema/cdp/cof/config_result.d.ts +0 -10223
- package/lib/generated-proto/pb_schema/cdp/cof/debug_info.d.ts +0 -93
- package/lib/generated-proto/pb_schema/cdp/cof/namespace.d.ts +0 -8
- package/lib/generated-proto/pb_schema/common/ruid.d.ts +0 -51
- package/lib/generated-proto/pb_schema/common/value.d.ts +0 -144
- package/lib/generated-proto/pb_schema/google/api/annotations.d.ts +0 -1
- package/lib/generated-proto/pb_schema/google/api/annotations.js +0 -9
- package/lib/generated-proto/pb_schema/google/api/annotations.js.map +0 -1
- package/lib/generated-proto/pb_schema/google/api/http.d.ts +0 -3630
- package/lib/generated-proto/pb_schema/google/api/http.js +0 -194
- package/lib/generated-proto/pb_schema/google/api/http.js.map +0 -1
- package/lib/generated-proto/pb_schema/google/protobuf/any.d.ts +0 -32
- package/lib/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +0 -50896
- package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js +0 -1857
- package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js.map +0 -1
- package/lib/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +0 -32
- package/lib/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +0 -119
- package/lib/generated-proto/pb_schema/lenses/geocircle.d.ts +0 -42
- package/lib/generated-proto/pb_schema/lenses/geopoint.d.ts +0 -32
- package/lib/generated-proto/pb_schema/lenses/launch_params.d.ts +0 -29
- package/lib/generated-proto/pb_schema/lenses/launchdata.d.ts +0 -396
- package/lib/generated-proto/pb_schema/lenses/lures.d.ts +0 -111
- package/lib/generated-proto/pb_schema/lenses/persistent_store.d.ts +0 -29
- package/lib/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts +0 -569
- package/lib/generated-proto/pb_schema/lenses/snappable.d.ts +0 -902
- package/lib/generated-proto/pb_schema/lenses/user_data.d.ts +0 -229
- package/lib/handlers/HandlerChainBuilder.d.ts +0 -110
- package/lib/handlers/HandlerChainBuilder.js +0 -199
- package/lib/handlers/HandlerChainBuilder.js.map +0 -1
- package/lib/handlers/arrayBufferParsingHandler.d.ts +0 -10
- package/lib/handlers/arrayBufferParsingHandler.js +0 -18
- package/lib/handlers/arrayBufferParsingHandler.js.map +0 -1
- package/lib/handlers/batchingHandler.d.ts +0 -31
- package/lib/handlers/batchingHandler.js +0 -76
- package/lib/handlers/batchingHandler.js.map +0 -1
- package/lib/handlers/cameraKitServiceFetchHandlerFactory.d.ts +0 -12
- package/lib/handlers/cameraKitServiceFetchHandlerFactory.js +0 -19
- package/lib/handlers/cameraKitServiceFetchHandlerFactory.js.map +0 -1
- package/lib/handlers/debugHandler.d.ts +0 -8
- package/lib/handlers/debugHandler.js +0 -27
- package/lib/handlers/debugHandler.js.map +0 -1
- package/lib/handlers/defaultFetchHandler.d.ts +0 -15
- package/lib/handlers/defaultFetchHandler.js +0 -38
- package/lib/handlers/defaultFetchHandler.js.map +0 -1
- package/lib/handlers/headersModifyingFetchHandler.d.ts +0 -8
- package/lib/handlers/headersModifyingFetchHandler.js +0 -17
- package/lib/handlers/headersModifyingFetchHandler.js.map +0 -1
- package/lib/handlers/mappingHandler.d.ts +0 -19
- package/lib/handlers/mappingHandler.js +0 -67
- package/lib/handlers/mappingHandler.js.map +0 -1
- package/lib/handlers/noCorsRetryingFetchHandler.d.ts +0 -48
- package/lib/handlers/noCorsRetryingFetchHandler.js +0 -95
- package/lib/handlers/noCorsRetryingFetchHandler.js.map +0 -1
- package/lib/handlers/persistingHandler.d.ts +0 -14
- package/lib/handlers/persistingHandler.js +0 -71
- package/lib/handlers/persistingHandler.js.map +0 -1
- package/lib/handlers/rateLimitingHandler.d.ts +0 -24
- package/lib/handlers/rateLimitingHandler.js +0 -45
- package/lib/handlers/rateLimitingHandler.js.map +0 -1
- package/lib/handlers/requestStateEmittingHandler.d.ts +0 -41
- package/lib/handlers/requestStateEmittingHandler.js +0 -45
- package/lib/handlers/requestStateEmittingHandler.js.map +0 -1
- package/lib/handlers/responseCachingHandler.d.ts +0 -34
- package/lib/handlers/responseCachingHandler.js +0 -109
- package/lib/handlers/responseCachingHandler.js.map +0 -1
- package/lib/handlers/retryingHandler.d.ts +0 -48
- package/lib/handlers/retryingHandler.js +0 -86
- package/lib/handlers/retryingHandler.js.map +0 -1
- package/lib/handlers/timeoutHandler.d.ts +0 -18
- package/lib/handlers/timeoutHandler.js +0 -30
- package/lib/handlers/timeoutHandler.js.map +0 -1
- package/lib/handlers/utils.d.ts +0 -12
- package/lib/handlers/utils.js +0 -19
- package/lib/handlers/utils.js.map +0 -1
- package/lib/index.d.ts +0 -42
- package/lib/index.js +0 -36
- package/lib/index.js.map +0 -1
- package/lib/legal/legalPrompt.d.ts +0 -20
- package/lib/legal/legalPrompt.js +0 -135
- package/lib/legal/legalPrompt.js.map +0 -1
- package/lib/legal/legalState.d.ts +0 -50
- package/lib/legal/legalState.js +0 -163
- package/lib/legal/legalState.js.map +0 -1
- package/lib/lens/Lens.d.ts +0 -115
- package/lib/lens/Lens.js +0 -84
- package/lib/lens/Lens.js.map +0 -1
- package/lib/lens/LensLaunchData.d.ts +0 -40
- package/lib/lens/LensLaunchData.js +0 -37
- package/lib/lens/LensLaunchData.js.map +0 -1
- package/lib/lens/LensPersistenceStore.d.ts +0 -7
- package/lib/lens/LensPersistenceStore.js.map +0 -1
- package/lib/lens/LensRepository.d.ts +0 -137
- package/lib/lens/LensRepository.js +0 -237
- package/lib/lens/LensRepository.js.map +0 -1
- package/lib/lens/LensSource.d.ts +0 -43
- package/lib/lens/LensSource.js +0 -42
- package/lib/lens/LensSource.js.map +0 -1
- package/lib/lens/assets/LensAssetRepository.d.ts +0 -99
- package/lib/lens/assets/LensAssetRepository.js +0 -184
- package/lib/lens/assets/LensAssetRepository.js.map +0 -1
- package/lib/lens/assets/LensAssetsProvider.d.ts +0 -27
- package/lib/lens/assets/LensAssetsProvider.js +0 -68
- package/lib/lens/assets/LensAssetsProvider.js.map +0 -1
- package/lib/lens/assets/deviceDependentAssetLoader.d.ts +0 -11
- package/lib/lens/assets/deviceDependentAssetLoader.js +0 -59
- package/lib/lens/assets/deviceDependentAssetLoader.js.map +0 -1
- package/lib/lens/assets/remoteMediaAssetLoaderFactory.d.ts +0 -10
- package/lib/lens/assets/remoteMediaAssetLoaderFactory.js +0 -27
- package/lib/lens/assets/remoteMediaAssetLoaderFactory.js.map +0 -1
- package/lib/lens/assets/staticAssetLoader.d.ts +0 -10
- package/lib/lens/assets/staticAssetLoader.js +0 -25
- package/lib/lens/assets/staticAssetLoader.js.map +0 -1
- package/lib/lens/cameraKitLensSource.d.ts +0 -16
- package/lib/lens/cameraKitLensSource.js +0 -59
- package/lib/lens/cameraKitLensSource.js.map +0 -1
- package/lib/lens-client-interface/exif.d.ts +0 -20
- package/lib/lens-client-interface/exif.js +0 -61
- package/lib/lens-client-interface/exif.js.map +0 -1
- package/lib/lens-client-interface/imagePicker.d.ts +0 -8
- package/lib/lens-client-interface/imagePicker.js +0 -128
- package/lib/lens-client-interface/imagePicker.js.map +0 -1
- package/lib/lens-client-interface/lensClientInterface.d.ts +0 -13
- package/lib/lens-client-interface/lensClientInterface.js +0 -30
- package/lib/lens-client-interface/lensClientInterface.js.map +0 -1
- package/lib/lens-core-module/generated-types.d.ts +0 -469
- package/lib/lens-core-module/lensCore.d.ts +0 -43
- package/lib/lens-core-module/lensCore.js +0 -59
- package/lib/lens-core-module/lensCore.js.map +0 -1
- package/lib/lens-core-module/lensCoreError.d.ts +0 -15
- package/lib/lens-core-module/lensCoreError.js +0 -43
- package/lib/lens-core-module/lensCoreError.js.map +0 -1
- package/lib/lens-core-module/loader/bootstrapURLs.d.ts +0 -12
- package/lib/lens-core-module/loader/bootstrapURLs.js +0 -48
- package/lib/lens-core-module/loader/bootstrapURLs.js.map +0 -1
- package/lib/lens-core-module/loader/lensCoreFactory.d.ts +0 -17
- package/lib/lens-core-module/loader/lensCoreFactory.js +0 -76
- package/lib/lens-core-module/loader/lensCoreFactory.js.map +0 -1
- package/lib/lensCoreWasmVersions.d.ts +0 -6
- package/lib/lensCoreWasmVersions.js +0 -6
- package/lib/lensCoreWasmVersions.js.map +0 -1
- package/lib/logger/errorLoggingDecorator.d.ts +0 -9
- package/lib/logger/errorLoggingDecorator.js +0 -32
- package/lib/logger/errorLoggingDecorator.js.map +0 -1
- package/lib/logger/logEntries.d.ts +0 -15
- package/lib/logger/logEntries.js +0 -14
- package/lib/logger/logEntries.js.map +0 -1
- package/lib/logger/logger.d.ts +0 -40
- package/lib/logger/logger.js +0 -53
- package/lib/logger/logger.js.map +0 -1
- package/lib/logger/registerLogEntriesSubscriber.d.ts +0 -14
- package/lib/logger/registerLogEntriesSubscriber.js +0 -35
- package/lib/logger/registerLogEntriesSubscriber.js.map +0 -1
- package/lib/media-sources/CameraKitSource.d.ts +0 -126
- package/lib/media-sources/CameraKitSource.js +0 -138
- package/lib/media-sources/CameraKitSource.js.map +0 -1
- package/lib/media-sources/FunctionSource.d.ts +0 -41
- package/lib/media-sources/FunctionSource.js +0 -128
- package/lib/media-sources/FunctionSource.js.map +0 -1
- package/lib/media-sources/ImageSource.d.ts +0 -11
- package/lib/media-sources/ImageSource.js +0 -16
- package/lib/media-sources/ImageSource.js.map +0 -1
- package/lib/media-sources/MediaStreamSource.d.ts +0 -29
- package/lib/media-sources/MediaStreamSource.js +0 -137
- package/lib/media-sources/MediaStreamSource.js.map +0 -1
- package/lib/media-sources/VideoSource.d.ts +0 -25
- package/lib/media-sources/VideoSource.js +0 -22
- package/lib/media-sources/VideoSource.js.map +0 -1
- package/lib/metrics/businessEventsReporter.d.ts +0 -39
- package/lib/metrics/businessEventsReporter.js +0 -195
- package/lib/metrics/businessEventsReporter.js.map +0 -1
- package/lib/metrics/metricsEventTarget.d.ts +0 -41
- package/lib/metrics/metricsEventTarget.js +0 -11
- package/lib/metrics/metricsEventTarget.js.map +0 -1
- package/lib/metrics/operational/Count.d.ts +0 -19
- package/lib/metrics/operational/Count.js +0 -33
- package/lib/metrics/operational/Count.js.map +0 -1
- package/lib/metrics/operational/Histogram.d.ts +0 -17
- package/lib/metrics/operational/Histogram.js +0 -27
- package/lib/metrics/operational/Histogram.js.map +0 -1
- package/lib/metrics/operational/Metric.d.ts +0 -20
- package/lib/metrics/operational/Metric.js +0 -28
- package/lib/metrics/operational/Metric.js.map +0 -1
- package/lib/metrics/operational/Timer.d.ts +0 -94
- package/lib/metrics/operational/Timer.js +0 -108
- package/lib/metrics/operational/Timer.js.map +0 -1
- package/lib/metrics/reporters/reportBenchmarks.d.ts +0 -10
- package/lib/metrics/reporters/reportBenchmarks.js +0 -30
- package/lib/metrics/reporters/reportBenchmarks.js.map +0 -1
- package/lib/metrics/reporters/reportGlobalException.d.ts +0 -26
- package/lib/metrics/reporters/reportGlobalException.js +0 -106
- package/lib/metrics/reporters/reportGlobalException.js.map +0 -1
- package/lib/metrics/reporters/reportHttpMetrics.d.ts +0 -10
- package/lib/metrics/reporters/reportHttpMetrics.js +0 -110
- package/lib/metrics/reporters/reportHttpMetrics.js.map +0 -1
- package/lib/metrics/reporters/reportLegalState.d.ts +0 -15
- package/lib/metrics/reporters/reportLegalState.js +0 -32
- package/lib/metrics/reporters/reportLegalState.js.map +0 -1
- package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +0 -38
- package/lib/metrics/reporters/reportLensAndAssetDownload.js +0 -92
- package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +0 -1
- package/lib/metrics/reporters/reportLensValidationFailed.d.ts +0 -20
- package/lib/metrics/reporters/reportLensValidationFailed.js +0 -24
- package/lib/metrics/reporters/reportLensValidationFailed.js.map +0 -1
- package/lib/metrics/reporters/reportLensView.d.ts +0 -36
- package/lib/metrics/reporters/reportLensView.js +0 -137
- package/lib/metrics/reporters/reportLensView.js.map +0 -1
- package/lib/metrics/reporters/reportLensWait.d.ts +0 -32
- package/lib/metrics/reporters/reportLensWait.js +0 -60
- package/lib/metrics/reporters/reportLensWait.js.map +0 -1
- package/lib/metrics/reporters/reportPlatformCapabilities.d.ts +0 -12
- package/lib/metrics/reporters/reportPlatformCapabilities.js +0 -19
- package/lib/metrics/reporters/reportPlatformCapabilities.js.map +0 -1
- package/lib/metrics/reporters/reportSessionException.d.ts +0 -17
- package/lib/metrics/reporters/reportSessionException.js +0 -12
- package/lib/metrics/reporters/reportSessionException.js.map +0 -1
- package/lib/metrics/reporters/reportUserSession.d.ts +0 -14
- package/lib/metrics/reporters/reportUserSession.js +0 -66
- package/lib/metrics/reporters/reportUserSession.js.map +0 -1
- package/lib/metrics/reporters/reporters.d.ts +0 -46
- package/lib/metrics/reporters/reporters.js +0 -35
- package/lib/metrics/reporters/reporters.js.map +0 -1
- package/lib/namedErrors.d.ts +0 -124
- package/lib/namedErrors.js +0 -58
- package/lib/namedErrors.js.map +0 -1
- package/lib/observable-operators/unsubscribed.d.ts +0 -12
- package/lib/observable-operators/unsubscribed.js +0 -27
- package/lib/observable-operators/unsubscribed.js.map +0 -1
- package/lib/persistence/ExpiringPersistence.d.ts +0 -21
- package/lib/persistence/ExpiringPersistence.js +0 -71
- package/lib/persistence/ExpiringPersistence.js.map +0 -1
- package/lib/persistence/IndexedDBPersistence.d.ts +0 -47
- package/lib/persistence/IndexedDBPersistence.js +0 -190
- package/lib/persistence/IndexedDBPersistence.js.map +0 -1
- package/lib/persistence/Persistence.d.ts +0 -25
- package/lib/persistence/Persistence.js +0 -10
- package/lib/persistence/Persistence.js.map +0 -1
- package/lib/platform/assertPlatformSupported.d.ts +0 -4
- package/lib/platform/assertPlatformSupported.js +0 -15
- package/lib/platform/assertPlatformSupported.js.map +0 -1
- package/lib/platform/cameraKitUserAgent.d.ts +0 -2
- package/lib/platform/cameraKitUserAgent.js +0 -20
- package/lib/platform/cameraKitUserAgent.js.map +0 -1
- package/lib/platform/platformCapabilities.d.ts +0 -50
- package/lib/platform/platformCapabilities.js +0 -128
- package/lib/platform/platformCapabilities.js.map +0 -1
- package/lib/platform/platformInfo.d.ts +0 -43
- package/lib/platform/platformInfo.js +0 -228
- package/lib/platform/platformInfo.js.map +0 -1
- package/lib/remote-configuration/cofHandler.d.ts +0 -29
- package/lib/remote-configuration/cofHandler.js +0 -115
- package/lib/remote-configuration/cofHandler.js.map +0 -1
- package/lib/remote-configuration/preloadConfiguration.d.ts +0 -7
- package/lib/remote-configuration/preloadConfiguration.js +0 -15
- package/lib/remote-configuration/preloadConfiguration.js.map +0 -1
- package/lib/remote-configuration/remoteConfiguration.d.ts +0 -34
- package/lib/remote-configuration/remoteConfiguration.js +0 -73
- package/lib/remote-configuration/remoteConfiguration.js.map +0 -1
- package/lib/session/CameraKitSession.d.ts +0 -255
- package/lib/session/CameraKitSession.js +0 -440
- package/lib/session/CameraKitSession.js.map +0 -1
- package/lib/session/CameraKitSessionEvents.d.ts +0 -37
- package/lib/session/CameraKitSessionEvents.js +0 -38
- package/lib/session/CameraKitSessionEvents.js.map +0 -1
- package/lib/session/LensKeyboard.d.ts +0 -94
- package/lib/session/LensKeyboard.js +0 -95
- package/lib/session/LensKeyboard.js.map +0 -1
- package/lib/session/LensPerformanceMeasurement.d.ts +0 -57
- package/lib/session/LensPerformanceMeasurement.js +0 -114
- package/lib/session/LensPerformanceMeasurement.js.map +0 -1
- package/lib/session/LensPerformanceMetrics.d.ts +0 -31
- package/lib/session/LensPerformanceMetrics.js +0 -59
- package/lib/session/LensPerformanceMetrics.js.map +0 -1
- package/lib/session/lensState.d.ts +0 -30
- package/lib/session/lensState.js +0 -238
- package/lib/session/lensState.js.map +0 -1
- package/lib/session/sessionState.d.ts +0 -10
- package/lib/session/sessionState.js.map +0 -1
- package/lib/transforms/Transform2D.d.ts +0 -22
- package/lib/transforms/Transform2D.js +0 -19
- package/lib/transforms/Transform2D.js.map +0 -1
- package/lib/utils.d.ts +0 -3
- /package/{lib → dist}/benchmark/webglUtils.js +0 -0
- /package/{lib → dist}/benchmark/webglUtils.js.map +0 -0
- /package/{lib → dist}/clients/lensesClient.js +0 -0
- /package/{lib → dist}/common/date.js +0 -0
- /package/{lib → dist}/common/date.js.map +0 -0
- /package/{lib → dist}/common/getFilename.js +0 -0
- /package/{lib → dist}/common/getFilename.js.map +0 -0
- /package/{lib → dist}/common/memoize.js +0 -0
- /package/{lib → dist}/common/memoize.js.map +0 -0
- /package/{lib → dist}/common/time.js +0 -0
- /package/{lib → dist}/common/time.js.map +0 -0
- /package/{lib → dist}/common/types.js +0 -0
- /package/{lib → dist}/dependency-injection/Injectable.js +0 -0
- /package/{lib → dist}/dependency-injection/types.js +0 -0
- /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js +0 -0
- /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/common/value.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/common/value.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js.map +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js +0 -0
- /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js.map +0 -0
- /package/{lib → dist}/lens/LensPersistenceStore.js +0 -0
- /package/{lib → dist}/lens-core-module/generated-types.js +0 -0
- /package/{lib → dist}/lens-core-module/generated-types.js.map +0 -0
- /package/{lib → dist}/session/sessionState.js +0 -0
- /package/{lib → dist}/utils.js +0 -0
- /package/{lib → dist}/utils.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportHttpMetrics.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportHttpMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["import { assertUnreachable } from \"../../common/assertions\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { scan } from \"../../events/scan\";\nimport type { CofDimensions } from \"../../remote-configuration/cofHandler\";\nimport { COF_REQUEST_TYPE } from \"../../remote-configuration/cofHandler\";\nimport type {\n Dimensions,\n RequestStateEventTarget,\n RequestStateEvents,\n} from \"../../handlers/requestStateEmittingHandler\";\nimport { requestStateEventTargetFactory } from \"../../handlers/requestStateEmittingHandler\";\nimport { getPlatformInfo } from \"../../platform/platformInfo\";\nimport type { MetricsClient } from \"../../clients/metricsClient\";\nimport { metricsClientFactory } from \"../../clients/metricsClient\";\nimport { Count } from \"../operational/Count\";\nimport { Histogram } from \"../operational/Histogram\";\nimport type { Timer } from \"../operational/Timer\";\nimport type { AssetDownloadDimensions, LensDownloadDimensions } from \"./reportLensAndAssetDownload\";\nimport { isLensOrAssetRequest } from \"./reportLensAndAssetDownload\";\n\ntype InProgressMap = Map<number, { timer: Timer<\"download_latency\"> }>;\ninterface InProgress {\n name: \"inProgress\";\n inProgress: InProgressMap;\n}\ninterface Completed {\n name: \"completed\";\n inProgress: InProgressMap;\n dimensions: Record<string, string>;\n timer: Timer<\"download_latency\">;\n downloadSizeKb: number;\n}\ntype RequestState = InProgress | Completed;\n\nconst getAdditionalDimensions = (\n dimensions: LensDownloadDimensions | AssetDownloadDimensions | CofDimensions\n): [string, string][] => {\n switch (dimensions.requestType) {\n case \"lens_content\":\n case \"asset\":\n return [];\n case COF_REQUEST_TYPE:\n return [[\"delta\", dimensions.delta]];\n default:\n assertUnreachable(dimensions);\n }\n};\n\nconst getContentType = (dimensions: LensDownloadDimensions | AssetDownloadDimensions | CofDimensions): string => {\n switch (dimensions.requestType) {\n case \"lens_content\":\n return \"lens_content\";\n case \"asset\":\n return dimensions.assetType;\n case COF_REQUEST_TYPE:\n return COF_REQUEST_TYPE;\n default:\n assertUnreachable(dimensions);\n }\n};\n\nconst getSizeKb = (event: RequestStateEvents): number => {\n switch (event.type) {\n case \"started\":\n case \"errored\":\n return 0;\n case \"completed\":\n return event.detail.sizeByte / 1024;\n default:\n assertUnreachable(event);\n }\n};\n\nconst getStatus = (event: RequestStateEvents): string => {\n switch (event.type) {\n case \"started\":\n case \"errored\":\n // We'll use status 0 to indicate that an exception occurred during the request. This is somewhat in keeping\n // with browsers that set the response status to 0 if the request was not able to be made (e.g. CORs\n // preflight failed, or the user canceled the request).\n return \"0\";\n case \"completed\":\n return event.detail.status.toString();\n default:\n assertUnreachable(event);\n }\n};\n\nexport const isRelevantRequest = (\n value: Dimensions\n): value is LensDownloadDimensions | AssetDownloadDimensions | CofDimensions => {\n return isLensOrAssetRequest(value) || value[\"requestType\"] === COF_REQUEST_TYPE;\n};\n\nexport const reportHttpMetrics = Injectable(\n \"reportHttpMetrics\",\n [metricsClientFactory.token, requestStateEventTargetFactory.token] as const,\n (metrics: MetricsClient, requestStateEventTarget: RequestStateEventTarget) => {\n scan<RequestState>({ name: \"inProgress\", inProgress: new Map() })(\n requestStateEventTarget,\n [\"started\", \"completed\", \"errored\"],\n (state, event) => {\n const { inProgress } = state;\n const { dimensions, requestId } = event.detail;\n\n if (!isRelevantRequest(dimensions)) return state;\n\n switch (event.type) {\n case \"started\":\n const timer = event.detail.timer;\n inProgress.set(requestId, { timer });\n return { name: \"inProgress\", inProgress };\n case \"completed\":\n case \"errored\":\n const completedRequest = inProgress.get(requestId);\n if (!completedRequest) return state;\n inProgress.delete(requestId);\n\n const downloadSizeKb = getSizeKb(event);\n const status = getStatus(event);\n const operationalDimensions: Record<string, string> = {\n content_type: getContentType(dimensions),\n network_type: getPlatformInfo().connectionType ?? \"unknown\",\n status,\n };\n\n for (const [key, value] of getAdditionalDimensions(dimensions)) {\n operationalDimensions[key] = value;\n }\n\n completedRequest.timer.measure(operationalDimensions);\n\n return {\n name: \"completed\",\n inProgress: state.inProgress,\n dimensions: operationalDimensions,\n downloadSizeKb,\n timer: completedRequest.timer,\n };\n default:\n assertUnreachable(event);\n }\n }\n ).addEventListener(\"state\", ({ detail: state }) => {\n if (state.name !== \"completed\") return;\n\n const { dimensions, timer, downloadSizeKb } = state;\n\n metrics.setOperationalMetrics(Count.count(\"download_finished\", 1, dimensions));\n metrics.setOperationalMetrics(Histogram.level(\"download_size_kb\", downloadSizeKb, dimensions));\n metrics.setOperationalMetrics(timer);\n });\n }\n);\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
|
|
2
|
+
import type { MetricsEventTarget } from "../metricsEventTarget";
|
|
3
|
+
import type { MetricsClient } from "../../clients/metricsClient";
|
|
4
|
+
/**
|
|
5
|
+
* The LegalPrompt metric reports each time a BIPA legal prompt is shown.
|
|
6
|
+
*/
|
|
7
|
+
export type LegalPrompt = MakeTaggedBusinessEvent<"legalPrompt">;
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const reportLegalState: {
|
|
12
|
+
(args_0: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"requestLegalPrompt", undefined> | import("@snap/state-management").Action<"accept", string> | import("@snap/state-management").Action<"reject", string>, import("@snap/state-management").State<"unknown", undefined> | import("@snap/state-management").State<"accepted", undefined> | import("@snap/state-management").State<"rejected", undefined>>, args_1: MetricsEventTarget, args_2: MetricsClient): void;
|
|
13
|
+
token: "reportLegalState";
|
|
14
|
+
dependencies: readonly ["legalState", "metricsEventTarget", "metricsClient"];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=reportLegalState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLegalState.d.ts","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLegalState.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIjE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;CA8B5B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { forActions } from "@snap/state-management";
|
|
2
|
+
import { map } from "rxjs";
|
|
3
|
+
import { Injectable } from "../../dependency-injection/Injectable";
|
|
4
|
+
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
|
|
5
|
+
import { CameraKitLegalPromptResult } from "../../generated-proto/blizzard/cameraKitEvents";
|
|
6
|
+
import { legalStateFactory } from "../../legal/legalState";
|
|
7
|
+
import { metricsEventTargetFactory } from "../metricsEventTarget";
|
|
8
|
+
import { metricsClientFactory } from "../../clients/metricsClient";
|
|
9
|
+
import { Count } from "../operational/Count";
|
|
10
|
+
export const reportLegalState = Injectable("reportLegalState", [legalStateFactory.token, metricsEventTargetFactory.token, metricsClientFactory.token], (legalState, metricsEventTarget, metrics) => {
|
|
11
|
+
legalState.events
|
|
12
|
+
.pipe(forActions("accept", "reject"), map(([{ data, name }]) => ({
|
|
13
|
+
name: "legalPrompt",
|
|
14
|
+
legalPromptId: data,
|
|
15
|
+
legalPromptResult: name === "accept"
|
|
16
|
+
? CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED
|
|
17
|
+
: CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_DISMISSED,
|
|
18
|
+
})))
|
|
19
|
+
.subscribe({
|
|
20
|
+
next: (legalPromptEvent) => {
|
|
21
|
+
metricsEventTarget.dispatchEvent(new TypedCustomEvent("legalPrompt", legalPromptEvent));
|
|
22
|
+
metrics.setOperationalMetrics(Count.count("legal_prompt_interaction", 1, {
|
|
23
|
+
accepted: (legalPromptEvent.legalPromptResult ===
|
|
24
|
+
CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED).toString(),
|
|
25
|
+
}));
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=reportLegalState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLegalState.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLegalState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAU7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CACtC,kBAAkB,EAClB,CAAC,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAU,EAC/F,CAAC,UAAsB,EAAE,kBAAsC,EAAE,OAAsB,EAAE,EAAE;IACvF,UAAU,CAAC,MAAM;SACZ,IAAI,CACD,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,aAAsB;QAC5B,aAAa,EAAE,IAAI;QACnB,iBAAiB,EACb,IAAI,KAAK,QAAQ;YACb,CAAC,CAAC,0BAA0B,CAAC,gCAAgC;YAC7D,CAAC,CAAC,0BAA0B,CAAC,iCAAiC;KACzE,CAAC,CAAC,CACN;SACA,SAAS,CAAC;QACP,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;YACvB,kBAAkB,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,qBAAqB,CACzB,KAAK,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,EAAE;gBACvC,QAAQ,EAAE,CACN,gBAAgB,CAAC,iBAAiB;oBAClC,0BAA0B,CAAC,gCAAgC,CAC9D,CAAC,QAAQ,EAAE;aACf,CAAC,CACL,CAAC;QACN,CAAC;KACJ,CAAC,CAAC;AACX,CAAC,CACJ,CAAC","sourcesContent":["import { forActions } from \"@snap/state-management\";\nimport { map } from \"rxjs\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../../events/TypedCustomEvent\";\nimport { CameraKitLegalPromptResult } from \"../../generated-proto/blizzard/cameraKitEvents\";\nimport type { LegalState } from \"../../legal/legalState\";\nimport { legalStateFactory } from \"../../legal/legalState\";\nimport type { MakeTaggedBusinessEvent } from \"../businessEventsReporter\";\nimport type { MetricsEventTarget } from \"../metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"../metricsEventTarget\";\nimport type { MetricsClient } from \"../../clients/metricsClient\";\nimport { metricsClientFactory } from \"../../clients/metricsClient\";\nimport { Count } from \"../operational/Count\";\n\n/**\n * The LegalPrompt metric reports each time a BIPA legal prompt is shown.\n */\nexport type LegalPrompt = MakeTaggedBusinessEvent<\"legalPrompt\">;\n\n/**\n * @internal\n */\nexport const reportLegalState = Injectable(\n \"reportLegalState\",\n [legalStateFactory.token, metricsEventTargetFactory.token, metricsClientFactory.token] as const,\n (legalState: LegalState, metricsEventTarget: MetricsEventTarget, metrics: MetricsClient) => {\n legalState.events\n .pipe(\n forActions(\"accept\", \"reject\"),\n map(([{ data, name }]) => ({\n name: \"legalPrompt\" as const,\n legalPromptId: data,\n legalPromptResult:\n name === \"accept\"\n ? CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED\n : CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_DISMISSED,\n }))\n )\n .subscribe({\n next: (legalPromptEvent) => {\n metricsEventTarget.dispatchEvent(new TypedCustomEvent(\"legalPrompt\", legalPromptEvent));\n metrics.setOperationalMetrics(\n Count.count(\"legal_prompt_interaction\", 1, {\n accepted: (\n legalPromptEvent.legalPromptResult ===\n CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED\n ).toString(),\n })\n );\n },\n });\n }\n);\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MetricsClient } from "../../clients/metricsClient";
|
|
2
|
+
import type { Dimensions, RequestStateEventTarget } from "../../handlers/requestStateEmittingHandler";
|
|
3
|
+
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
|
|
4
|
+
import type { MetricsEventTarget } from "../metricsEventTarget";
|
|
5
|
+
export declare const isLensOrAssetRequest: (value: Dimensions) => value is AssetDownloadDimensions | LensDownloadDimensions;
|
|
6
|
+
/**
|
|
7
|
+
* The LensDownload metric is triggered by any download of lens content.
|
|
8
|
+
*
|
|
9
|
+
* It contains download stats, which lens was requested, and whether prefetch was used.
|
|
10
|
+
*
|
|
11
|
+
* It corresponds to the internal CameraKitLensDownload event, described here:
|
|
12
|
+
* https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.stqom49qs91t
|
|
13
|
+
*/
|
|
14
|
+
export type LensDownload = MakeTaggedBusinessEvent<"lensDownload">;
|
|
15
|
+
export type LensDownloadDimensions = {
|
|
16
|
+
requestType: "lens_content";
|
|
17
|
+
lensId: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The AssetDownload metric is triggered by any type of asset download.
|
|
21
|
+
*
|
|
22
|
+
* It contains download stats, which asset was requested, and whether prefetch was used.
|
|
23
|
+
*
|
|
24
|
+
* It corresponds to the internal CameraKitAssetDownload event, described here:
|
|
25
|
+
* https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.vlormd1724fp
|
|
26
|
+
*/
|
|
27
|
+
export type AssetDownload = MakeTaggedBusinessEvent<"assetDownload">;
|
|
28
|
+
export type AssetDownloadDimensions = {
|
|
29
|
+
requestType: "asset";
|
|
30
|
+
assetType: string;
|
|
31
|
+
assetId: string;
|
|
32
|
+
lensId: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const reportLensAndAssetDownload: {
|
|
35
|
+
(args_0: MetricsEventTarget, args_1: MetricsClient, args_2: RequestStateEventTarget): void;
|
|
36
|
+
token: "reportLensAndAssetDownload";
|
|
37
|
+
dependencies: readonly ["metricsEventTarget", "metricsClient", "requestStateEventTarget"];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=reportLensAndAssetDownload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensAndAssetDownload.d.ts","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensAndAssetDownload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAOjE,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAEtG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAyB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAkBvF,eAAO,MAAM,oBAAoB,UAAW,UAAU,8DAIrD,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG;IAAE,WAAW,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnH,eAAO,MAAM,0BAA0B;;;;CAsFtC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { metricsClientFactory } from "../../clients/metricsClient";
|
|
2
|
+
import { assertUnreachable } from "../../common/assertions";
|
|
3
|
+
import { stringifyError } from "../../common/errorHelpers";
|
|
4
|
+
import { Injectable } from "../../dependency-injection/Injectable";
|
|
5
|
+
import { scan } from "../../events/scan";
|
|
6
|
+
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
|
|
7
|
+
import { requestStateEventTargetFactory } from "../../handlers/requestStateEmittingHandler";
|
|
8
|
+
import { metricsEventTargetFactory } from "../metricsEventTarget";
|
|
9
|
+
import { Count } from "../operational/Count";
|
|
10
|
+
const relevantRequestTypes = ["lens_content", "asset"];
|
|
11
|
+
export const isLensOrAssetRequest = (value) => {
|
|
12
|
+
const requestType = value["requestType"];
|
|
13
|
+
return typeof requestType === "string" && relevantRequestTypes.includes(requestType);
|
|
14
|
+
};
|
|
15
|
+
export const reportLensAndAssetDownload = Injectable("reportLensAndAssetDownload", [metricsEventTargetFactory.token, metricsClientFactory.token, requestStateEventTargetFactory.token], (metricsEventTarget, metrics, requestStateEventTarget) => {
|
|
16
|
+
scan({ name: "inProgress", inProgress: new Map() })(requestStateEventTarget, ["started", "completed", "errored"], (state, event) => {
|
|
17
|
+
var _a;
|
|
18
|
+
const { inProgress } = state;
|
|
19
|
+
const { dimensions, requestId } = event.detail;
|
|
20
|
+
if (!isLensOrAssetRequest(dimensions))
|
|
21
|
+
return state;
|
|
22
|
+
switch (event.type) {
|
|
23
|
+
case "started":
|
|
24
|
+
const timer = event.detail.timer;
|
|
25
|
+
inProgress.set(requestId, { timer });
|
|
26
|
+
return { name: "inProgress", inProgress };
|
|
27
|
+
case "completed":
|
|
28
|
+
const completedRequest = inProgress.get(requestId);
|
|
29
|
+
if (!completedRequest)
|
|
30
|
+
return state;
|
|
31
|
+
inProgress.delete(requestId);
|
|
32
|
+
const { duration } = (_a = completedRequest.timer.measure()) !== null && _a !== void 0 ? _a : { duration: 0 };
|
|
33
|
+
const downloadTimeSec = duration / 1000;
|
|
34
|
+
const { sizeByte } = event.detail;
|
|
35
|
+
switch (dimensions.requestType) {
|
|
36
|
+
case "lens_content":
|
|
37
|
+
return {
|
|
38
|
+
name: "completed",
|
|
39
|
+
inProgress,
|
|
40
|
+
event: new TypedCustomEvent("lensDownload", {
|
|
41
|
+
name: "lensDownload",
|
|
42
|
+
lensId: dimensions.lensId,
|
|
43
|
+
automaticDownload: false,
|
|
44
|
+
sizeByte: `${Math.ceil(sizeByte)}`,
|
|
45
|
+
downloadTimeSec,
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
case "asset":
|
|
49
|
+
return {
|
|
50
|
+
name: "completed",
|
|
51
|
+
inProgress,
|
|
52
|
+
event: new TypedCustomEvent("assetDownload", {
|
|
53
|
+
name: "assetDownload",
|
|
54
|
+
assetId: dimensions.assetId,
|
|
55
|
+
automaticDownload: false,
|
|
56
|
+
sizeByte: `${Math.ceil(sizeByte)}`,
|
|
57
|
+
downloadTimeSec,
|
|
58
|
+
}),
|
|
59
|
+
};
|
|
60
|
+
default:
|
|
61
|
+
assertUnreachable(dimensions);
|
|
62
|
+
}
|
|
63
|
+
case "errored":
|
|
64
|
+
const erroredRequest = inProgress.get(requestId);
|
|
65
|
+
if (!erroredRequest)
|
|
66
|
+
return state;
|
|
67
|
+
inProgress.delete(requestId);
|
|
68
|
+
const error = event.detail.error;
|
|
69
|
+
return {
|
|
70
|
+
name: "completed",
|
|
71
|
+
inProgress,
|
|
72
|
+
event: new TypedCustomEvent("exception", {
|
|
73
|
+
name: "exception",
|
|
74
|
+
lensId: dimensions.lensId,
|
|
75
|
+
type: dimensions.requestType === "lens_content" ? "lens" : "asset",
|
|
76
|
+
reason: stringifyError(error),
|
|
77
|
+
}),
|
|
78
|
+
};
|
|
79
|
+
default:
|
|
80
|
+
assertUnreachable(event);
|
|
81
|
+
}
|
|
82
|
+
}).addEventListener("state", ({ detail: state }) => {
|
|
83
|
+
if (state.name !== "completed")
|
|
84
|
+
return;
|
|
85
|
+
metricsEventTarget.dispatchEvent(state.event);
|
|
86
|
+
if (state.event.detail.name === "exception") {
|
|
87
|
+
metrics.setOperationalMetrics(Count.count("handled_exception", 1, { type: state.event.detail.type }));
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=reportLensAndAssetDownload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensAndAssetDownload.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensAndAssetDownload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAG5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAe7C,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,OAAO,CAAU,CAAC;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAiB,EAA6D,EAAE;IACjH,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAEzC,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAK,oBAA0C,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChH,CAAC,CAAC;AAwBF,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAChD,4BAA4B,EAC5B,CAAC,yBAAyB,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE,8BAA8B,CAAC,KAAK,CAAU,EAC5G,CACI,kBAAsC,EACtC,OAAsB,EACtB,uBAAgD,EAClD,EAAE;IACA,IAAI,CAAe,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAC7D,uBAAuB,EACvB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EACnC,CAAC,KAAK,EAAE,KAAK,EAAgB,EAAE;;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAEpD,QAAQ,KAAK,CAAC,IAAI,EAAE;YAChB,KAAK,SAAS;gBACV,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YAC9C,KAAK,WAAW;gBACZ,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,gBAAgB;oBAAE,OAAO,KAAK,CAAC;gBACpC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAA,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,mCAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACzE,MAAM,eAAe,GAAG,QAAQ,GAAG,IAAI,CAAC;gBACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAElC,QAAQ,UAAU,CAAC,WAAW,EAAE;oBAC5B,KAAK,cAAc;wBACf,OAAO;4BACH,IAAI,EAAE,WAAW;4BACjB,UAAU;4BACV,KAAK,EAAE,IAAI,gBAAgB,CAAC,cAAc,EAAE;gCACxC,IAAI,EAAE,cAAc;gCACpB,MAAM,EAAE,UAAU,CAAC,MAAM;gCACzB,iBAAiB,EAAE,KAAK;gCACxB,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gCAClC,eAAe;6BAClB,CAAC;yBACL,CAAC;oBACN,KAAK,OAAO;wBACR,OAAO;4BACH,IAAI,EAAE,WAAW;4BACjB,UAAU;4BACV,KAAK,EAAE,IAAI,gBAAgB,CAAC,eAAe,EAAE;gCACzC,IAAI,EAAE,eAAe;gCACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gCAC3B,iBAAiB,EAAE,KAAK;gCACxB,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gCAClC,eAAe;6BAClB,CAAC;yBACL,CAAC;oBACN;wBACI,iBAAiB,CAAC,UAAU,CAAC,CAAC;iBACrC;YACL,KAAK,SAAS;gBACV,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACjD,IAAI,CAAC,cAAc;oBAAE,OAAO,KAAK,CAAC;gBAClC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,OAAO;oBACH,IAAI,EAAE,WAAW;oBACjB,UAAU;oBACV,KAAK,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE;wBACrC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,IAAI,EAAE,UAAU,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;wBAClE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;qBAChC,CAAC;iBACL,CAAC;YACN;gBACI,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAChC;IACL,CAAC,CACJ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO;QACvC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;YACzC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACzG;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CACJ,CAAC","sourcesContent":["import type { MetricsClient } from \"../../clients/metricsClient\";\nimport { metricsClientFactory } from \"../../clients/metricsClient\";\nimport { assertUnreachable } from \"../../common/assertions\";\nimport { stringifyError } from \"../../common/errorHelpers\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { scan } from \"../../events/scan\";\nimport { TypedCustomEvent } from \"../../events/TypedCustomEvent\";\nimport type { Dimensions, RequestStateEventTarget } from \"../../handlers/requestStateEmittingHandler\";\nimport { requestStateEventTargetFactory } from \"../../handlers/requestStateEmittingHandler\";\nimport type { MakeTaggedBusinessEvent } from \"../businessEventsReporter\";\nimport type { CameraKitMetricEvents, MetricsEventTarget } from \"../metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"../metricsEventTarget\";\nimport { Count } from \"../operational/Count\";\nimport type { Timer } from \"../operational/Timer\";\n\ntype InProgressMap = Map<number, { timer: Timer<string> }>;\ninterface InProgress {\n name: \"inProgress\";\n inProgress: InProgressMap;\n}\ninterface Completed {\n name: \"completed\";\n inProgress: InProgressMap;\n event: CameraKitMetricEvents;\n}\ntype RequestState = InProgress | Completed;\n\nconst relevantRequestTypes = [\"lens_content\", \"asset\"] as const;\nexport const isLensOrAssetRequest = (value: Dimensions): value is LensDownloadDimensions | AssetDownloadDimensions => {\n const requestType = value[\"requestType\"];\n // Safety: the cast makes the type less specific so we can check if any string is present in the tuple.\n return typeof requestType === \"string\" && (relevantRequestTypes as readonly string[]).includes(requestType);\n};\n\n/**\n * The LensDownload metric is triggered by any download of lens content.\n *\n * It contains download stats, which lens was requested, and whether prefetch was used.\n *\n * It corresponds to the internal CameraKitLensDownload event, described here:\n * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.stqom49qs91t\n */\nexport type LensDownload = MakeTaggedBusinessEvent<\"lensDownload\">;\nexport type LensDownloadDimensions = { requestType: \"lens_content\"; lensId: string };\n\n/**\n * The AssetDownload metric is triggered by any type of asset download.\n *\n * It contains download stats, which asset was requested, and whether prefetch was used.\n *\n * It corresponds to the internal CameraKitAssetDownload event, described here:\n * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.vlormd1724fp\n */\nexport type AssetDownload = MakeTaggedBusinessEvent<\"assetDownload\">;\nexport type AssetDownloadDimensions = { requestType: \"asset\"; assetType: string; assetId: string; lensId: string };\n\nexport const reportLensAndAssetDownload = Injectable(\n \"reportLensAndAssetDownload\",\n [metricsEventTargetFactory.token, metricsClientFactory.token, requestStateEventTargetFactory.token] as const,\n (\n metricsEventTarget: MetricsEventTarget,\n metrics: MetricsClient,\n requestStateEventTarget: RequestStateEventTarget\n ) => {\n scan<RequestState>({ name: \"inProgress\", inProgress: new Map() })(\n requestStateEventTarget,\n [\"started\", \"completed\", \"errored\"],\n (state, event): RequestState => {\n const { inProgress } = state;\n const { dimensions, requestId } = event.detail;\n\n if (!isLensOrAssetRequest(dimensions)) return state;\n\n switch (event.type) {\n case \"started\":\n const timer = event.detail.timer;\n inProgress.set(requestId, { timer });\n return { name: \"inProgress\", inProgress };\n case \"completed\":\n const completedRequest = inProgress.get(requestId);\n if (!completedRequest) return state;\n inProgress.delete(requestId);\n\n const { duration } = completedRequest.timer.measure() ?? { duration: 0 };\n const downloadTimeSec = duration / 1000;\n const { sizeByte } = event.detail;\n\n switch (dimensions.requestType) {\n case \"lens_content\":\n return {\n name: \"completed\",\n inProgress,\n event: new TypedCustomEvent(\"lensDownload\", {\n name: \"lensDownload\",\n lensId: dimensions.lensId,\n automaticDownload: false,\n sizeByte: `${Math.ceil(sizeByte)}`,\n downloadTimeSec,\n }),\n };\n case \"asset\":\n return {\n name: \"completed\",\n inProgress,\n event: new TypedCustomEvent(\"assetDownload\", {\n name: \"assetDownload\",\n assetId: dimensions.assetId,\n automaticDownload: false,\n sizeByte: `${Math.ceil(sizeByte)}`,\n downloadTimeSec,\n }),\n };\n default:\n assertUnreachable(dimensions);\n }\n case \"errored\":\n const erroredRequest = inProgress.get(requestId);\n if (!erroredRequest) return state;\n inProgress.delete(requestId);\n const error = event.detail.error;\n return {\n name: \"completed\",\n inProgress,\n event: new TypedCustomEvent(\"exception\", {\n name: \"exception\",\n lensId: dimensions.lensId,\n type: dimensions.requestType === \"lens_content\" ? \"lens\" : \"asset\",\n reason: stringifyError(error),\n }),\n };\n default:\n assertUnreachable(event);\n }\n }\n ).addEventListener(\"state\", ({ detail: state }) => {\n if (state.name !== \"completed\") return;\n metricsEventTarget.dispatchEvent(state.event);\n if (state.event.detail.name === \"exception\") {\n metrics.setOperationalMetrics(Count.count(\"handled_exception\", 1, { type: state.event.detail.type }));\n }\n });\n }\n);\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
|
|
2
|
+
import type { MetricsEventTarget } from "../metricsEventTarget";
|
|
3
|
+
/**
|
|
4
|
+
* The LensContentValidationFailed metric reports every time we handle an lens checksum validation failure.
|
|
5
|
+
*/
|
|
6
|
+
export type LensContentValidationFailed = MakeTaggedBusinessEvent<"lensContentValidationFailed">;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const reportLensValidationFailed: {
|
|
11
|
+
(args_0: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"applyLens", {
|
|
12
|
+
lens: import("../..").Lens;
|
|
13
|
+
launchData?: import("../..").LensLaunchData | undefined;
|
|
14
|
+
}> | import("@snap/state-management").Action<"downloadComplete", import("../..").Lens> | import("@snap/state-management").Action<"turnedOn", import("../..").Lens> | import("@snap/state-management").Action<"resourcesLoaded", import("../..").Lens> | import("@snap/state-management").Action<"firstFrameProcessed", import("../..").Lens> | import("@snap/state-management").Action<"applyLensComplete", import("../..").Lens> | import("@snap/state-management").Action<"applyLensFailed", {
|
|
15
|
+
error: import("../../session/lensState").LensErrors;
|
|
16
|
+
lens: import("../..").Lens;
|
|
17
|
+
}> | import("@snap/state-management").Action<"applyLensAborted", import("../..").Lens> | import("@snap/state-management").Action<"removeLens", undefined> | import("@snap/state-management").Action<"turnedOff", import("../..").Lens> | import("@snap/state-management").Action<"removeLensComplete", undefined> | import("@snap/state-management").Action<"removeLensFailed", Error>, import("@snap/state-management").State<"noLensApplied", undefined> | import("@snap/state-management").State<"applyingLens", import("../..").Lens> | import("@snap/state-management").State<"lensApplied", import("../..").Lens>>, args_1: MetricsEventTarget): void;
|
|
18
|
+
token: "reportLensValidationFailed";
|
|
19
|
+
dependencies: readonly ["lensState", "metricsEventTarget"];
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=reportLensValidationFailed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensValidationFailed.d.ts","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensValidationFailed.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;AAEjG;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;CAsBtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { forActions } from "@snap/state-management";
|
|
2
|
+
import { filter } from "rxjs";
|
|
3
|
+
import { Injectable } from "../../dependency-injection/Injectable";
|
|
4
|
+
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
|
|
5
|
+
import { lensStateFactory } from "../../session/lensState";
|
|
6
|
+
import { metricsEventTargetFactory } from "../metricsEventTarget";
|
|
7
|
+
export const reportLensValidationFailed = Injectable("reportLensValidationFailed", [lensStateFactory.token, metricsEventTargetFactory.token], (lensState, metricsEventTarget) => {
|
|
8
|
+
lensState.events
|
|
9
|
+
.pipe(forActions("applyLensFailed"), filter(([a]) => a.data.error.name === "LensContentValidationError"))
|
|
10
|
+
.subscribe({
|
|
11
|
+
next: ([{ data }]) => {
|
|
12
|
+
const { lens } = data;
|
|
13
|
+
const lensContentValidationFailed = {
|
|
14
|
+
name: "lensContentValidationFailed",
|
|
15
|
+
lensId: lens.id,
|
|
16
|
+
};
|
|
17
|
+
metricsEventTarget.dispatchEvent(new TypedCustomEvent("lensContentValidationFailed", lensContentValidationFailed));
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=reportLensValidationFailed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensValidationFailed.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensValidationFailed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAUlE,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAChD,4BAA4B,EAC5B,CAAC,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAU,EAClE,CAAC,SAAoB,EAAE,kBAAsC,EAAE,EAAE;IAC7D,SAAS,CAAC,MAAM;SACX,IAAI,CACD,UAAU,CAAC,iBAAiB,CAAC,EAC7B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,4BAA4B,CAAC,CACtE;SACA,SAAS,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;YACjB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,MAAM,2BAA2B,GAAgC;gBAC7D,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,IAAI,CAAC,EAAE;aAClB,CAAC;YACF,kBAAkB,CAAC,aAAa,CAC5B,IAAI,gBAAgB,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,CACnF,CAAC;QACN,CAAC;KACJ,CAAC,CAAC;AACX,CAAC,CACJ,CAAC","sourcesContent":["import { forActions } from \"@snap/state-management\";\nimport { filter } from \"rxjs\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../../events/TypedCustomEvent\";\nimport type { LensState } from \"../../session/lensState\";\nimport { lensStateFactory } from \"../../session/lensState\";\nimport type { MakeTaggedBusinessEvent } from \"../businessEventsReporter\";\nimport type { MetricsEventTarget } from \"../metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"../metricsEventTarget\";\n\n/**\n * The LensContentValidationFailed metric reports every time we handle an lens checksum validation failure.\n */\nexport type LensContentValidationFailed = MakeTaggedBusinessEvent<\"lensContentValidationFailed\">;\n\n/**\n * @internal\n */\nexport const reportLensValidationFailed = Injectable(\n \"reportLensValidationFailed\",\n [lensStateFactory.token, metricsEventTargetFactory.token] as const,\n (lensState: LensState, metricsEventTarget: MetricsEventTarget) => {\n lensState.events\n .pipe(\n forActions(\"applyLensFailed\"),\n filter(([a]) => a.data.error.name === \"LensContentValidationError\")\n )\n .subscribe({\n next: ([{ data }]) => {\n const { lens } = data;\n const lensContentValidationFailed: LensContentValidationFailed = {\n name: \"lensContentValidationFailed\",\n lensId: lens.id,\n };\n metricsEventTarget.dispatchEvent(\n new TypedCustomEvent(\"lensContentValidationFailed\", lensContentValidationFailed)\n );\n },\n });\n }\n);\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { MetricsEventTarget } from "../metricsEventTarget";
|
|
2
|
+
import type { CameraKitSession } from "../../session/CameraKitSession";
|
|
3
|
+
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
|
|
4
|
+
import type { CameraKitConfiguration } from "../../configuration";
|
|
5
|
+
import type { MetricsClient } from "../../clients/metricsClient";
|
|
6
|
+
/**
|
|
7
|
+
* The LensView metric is emitted after a lens has been viewed (for longer than 100ms), when the lens is turned off.
|
|
8
|
+
*
|
|
9
|
+
* It contains information about rendering performance.
|
|
10
|
+
*
|
|
11
|
+
* Notes:
|
|
12
|
+
* - If the page is hidden (e.g. user switches to a different tab, or application, or closes the tab, or closes the
|
|
13
|
+
* browser, navigates to a new page, refreshes, etc.) this metric will be emitted at that time. This is to ensure
|
|
14
|
+
* we don't lose the metric if the page is closed.
|
|
15
|
+
* - If the page is hidden and then made visible again later (e.g. user switches to a different tab, then back), we
|
|
16
|
+
* will begin measuring a new LensView. That is, we will not capture the time when the page is hidden even if the
|
|
17
|
+
* lens is still rendering in the background.
|
|
18
|
+
*
|
|
19
|
+
* @category Lenses
|
|
20
|
+
* @category Metrics
|
|
21
|
+
*/
|
|
22
|
+
export type LensView = MakeTaggedBusinessEvent<"lensView">;
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare const reportLensView: {
|
|
27
|
+
(args_0: CameraKitSession, args_1: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"applyLens", {
|
|
28
|
+
lens: import("../..").Lens;
|
|
29
|
+
launchData?: import("../..").LensLaunchData | undefined;
|
|
30
|
+
}> | import("@snap/state-management").Action<"downloadComplete", import("../..").Lens> | import("@snap/state-management").Action<"turnedOn", import("../..").Lens> | import("@snap/state-management").Action<"resourcesLoaded", import("../..").Lens> | import("@snap/state-management").Action<"firstFrameProcessed", import("../..").Lens> | import("@snap/state-management").Action<"applyLensComplete", import("../..").Lens> | import("@snap/state-management").Action<"applyLensFailed", {
|
|
31
|
+
error: import("../../session/lensState").LensErrors;
|
|
32
|
+
lens: import("../..").Lens;
|
|
33
|
+
}> | import("@snap/state-management").Action<"applyLensAborted", import("../..").Lens> | import("@snap/state-management").Action<"removeLens", undefined> | import("@snap/state-management").Action<"turnedOff", import("../..").Lens> | import("@snap/state-management").Action<"removeLensComplete", undefined> | import("@snap/state-management").Action<"removeLensFailed", Error>, import("@snap/state-management").State<"noLensApplied", undefined> | import("@snap/state-management").State<"applyingLens", import("../..").Lens> | import("@snap/state-management").State<"lensApplied", import("../..").Lens>>, args_2: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"suspend", CameraKitSession> | import("@snap/state-management").Action<"resume", CameraKitSession> | import("@snap/state-management").Action<"destroy", undefined>, import("@snap/state-management").State<"inactive", undefined> | import("@snap/state-management").State<"active", CameraKitSession> | import("@snap/state-management").State<"destroyed", undefined>>, args_3: MetricsEventTarget, args_4: MetricsClient, args_5: CameraKitConfiguration): Promise<void>;
|
|
34
|
+
token: "reportLensView";
|
|
35
|
+
dependencies: readonly ["CameraKitSession", "lensState", "sessionState", "metricsEventTarget", "metricsClient", "configuration"];
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=reportLensView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensView.d.ts","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensView.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAUlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAmCjE;;;;;;;;;;;;;;;GAeG;AAGH,MAAM,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CA0K1B,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { combineLatestWith, filter, from, map, merge, mergeMap, of, raceWith, switchMap, take, takeUntil } from "rxjs";
|
|
3
|
+
import { forActions, inStates, isState } from "@snap/state-management";
|
|
4
|
+
import { Injectable } from "../../dependency-injection/Injectable";
|
|
5
|
+
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
|
|
6
|
+
import { metricsEventTargetFactory } from "../metricsEventTarget";
|
|
7
|
+
import { cameraKitSessionFactory } from "../../session/CameraKitSession";
|
|
8
|
+
import { getTimeMs } from "../../common/time";
|
|
9
|
+
import { configurationToken } from "../../configuration";
|
|
10
|
+
import { lensStateFactory } from "../../session/lensState";
|
|
11
|
+
import { sessionStateFactory } from "../../session/sessionState";
|
|
12
|
+
import { Histogram } from "../operational/Histogram";
|
|
13
|
+
import { IndexedDBPersistence } from "../../persistence/IndexedDBPersistence";
|
|
14
|
+
import { ExpiringPersistence } from "../../persistence/ExpiringPersistence";
|
|
15
|
+
import { dayFormatter, monthFormatter } from "../../common/date";
|
|
16
|
+
import { metricsClientFactory } from "../../clients/metricsClient";
|
|
17
|
+
const viewTimeThresholdSec = 0.1;
|
|
18
|
+
function isFirstTimeWithinPeriods(lensId, persistence) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
let isLensFirstWithinDay = false;
|
|
21
|
+
let isLensFirstWithinMonth = false;
|
|
22
|
+
try {
|
|
23
|
+
const lensLastViewDate = yield persistence.retrieve(lensId);
|
|
24
|
+
const currentDate = new Date();
|
|
25
|
+
if (!lensLastViewDate) {
|
|
26
|
+
isLensFirstWithinDay = true;
|
|
27
|
+
isLensFirstWithinMonth = true;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
isLensFirstWithinDay = dayFormatter.format(lensLastViewDate) !== dayFormatter.format(currentDate);
|
|
31
|
+
isLensFirstWithinMonth = monthFormatter.format(lensLastViewDate) !== monthFormatter.format(currentDate);
|
|
32
|
+
}
|
|
33
|
+
yield persistence.store(lensId, currentDate);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error(`Error handling persistence for lensId ${lensId}: ${error}`);
|
|
37
|
+
isLensFirstWithinDay = false;
|
|
38
|
+
isLensFirstWithinMonth = false;
|
|
39
|
+
}
|
|
40
|
+
return { isLensFirstWithinDay, isLensFirstWithinMonth };
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export const reportLensView = Injectable("reportLensView", [
|
|
44
|
+
cameraKitSessionFactory.token,
|
|
45
|
+
lensStateFactory.token,
|
|
46
|
+
sessionStateFactory.token,
|
|
47
|
+
metricsEventTargetFactory.token,
|
|
48
|
+
metricsClientFactory.token,
|
|
49
|
+
configurationToken,
|
|
50
|
+
], (session, lensState, sessionState, metricsEventTarget, metrics, configuration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
var _a;
|
|
52
|
+
const { cluster: performanceCluster, webglRendererInfo } = (_a = (yield configuration.lensPerformance)) !== null && _a !== void 0 ? _a : {
|
|
53
|
+
cluster: 0,
|
|
54
|
+
webglRendererInfo: "unknown",
|
|
55
|
+
};
|
|
56
|
+
const lensViewPersistence = new ExpiringPersistence(() => 60 * 24 * 60 * 60, new IndexedDBPersistence({ databaseName: "recentLensViews" }));
|
|
57
|
+
merge(lensState.events.pipe(forActions("downloadComplete"), map(([a]) => a.data)), lensState.events.pipe(inStates("lensApplied"), switchMap(([, s]) => sessionState.events.pipe(forActions("resume"), takeUntil(lensState.events.pipe(forActions("removeLens"))), map(() => s.data)))))
|
|
58
|
+
.pipe(map((lens) => [getTimeMs(), lens.id, lens.groupId]), mergeMap(([applyLensStartTime, lensId, lensGroupId]) => {
|
|
59
|
+
const alreadyOn = isState(lensState.getState(), "lensApplied");
|
|
60
|
+
const applyDelay = alreadyOn
|
|
61
|
+
? of(0)
|
|
62
|
+
: lensState.events.pipe(forActions("resourcesLoaded"), filter(([a]) => a.data.id === lensId), take(1), map(() => (getTimeMs() - applyLensStartTime) / 1000));
|
|
63
|
+
const viewMetrics = (alreadyOn
|
|
64
|
+
? of([getTimeMs(), session.metrics.beginMeasurement()])
|
|
65
|
+
: lensState.events.pipe(forActions("turnedOn"), filter(([a]) => a.data.id === lensId), map(() => [getTimeMs(), session.metrics.beginMeasurement()]))).pipe(take(1), mergeMap(([lensTurnedOnTime, metricsMeasurement]) => lensState.events.pipe(forActions("turnedOff"), filter(([a]) => a.data.id === lensId), raceWith(sessionState.events.pipe(forActions("suspend"))), map(() => {
|
|
66
|
+
metricsMeasurement.end();
|
|
67
|
+
return Object.assign({ viewTimeSec: (getTimeMs() - lensTurnedOnTime) / 1000 }, metricsMeasurement.measure());
|
|
68
|
+
}))));
|
|
69
|
+
return applyDelay.pipe(combineLatestWith(viewMetrics, from(isFirstTimeWithinPeriods(lensId, lensViewPersistence))), takeUntil(lensState.events.pipe(forActions("turnedOn"), filter(([a]) => a.data.id !== lensId))), take(1), map(([applyDelaySec, viewMetrics, isFirstTimeResults]) => (Object.assign(Object.assign({ applyDelaySec,
|
|
70
|
+
lensId,
|
|
71
|
+
lensGroupId }, viewMetrics), isFirstTimeResults))));
|
|
72
|
+
}))
|
|
73
|
+
.subscribe({
|
|
74
|
+
next: ({ applyDelaySec, lensId, lensGroupId, viewTimeSec, avgFps, lensFrameProcessingTimeMsAvg, lensFrameProcessingTimeMsStd, lensFrameProcessingTimeMsMedian, lensFrameProcessingN, isLensFirstWithinDay, isLensFirstWithinMonth, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
if (viewTimeSec < viewTimeThresholdSec)
|
|
76
|
+
return;
|
|
77
|
+
const lensView = {
|
|
78
|
+
name: "lensView",
|
|
79
|
+
applyDelaySec,
|
|
80
|
+
avgFps,
|
|
81
|
+
lensId,
|
|
82
|
+
lensGroupId,
|
|
83
|
+
lensFrameProcessingTimeMsAvg,
|
|
84
|
+
lensFrameProcessingTimeMsStd,
|
|
85
|
+
recordingTimeSec: 0,
|
|
86
|
+
viewTimeSec,
|
|
87
|
+
isLensFirstWithinDay,
|
|
88
|
+
isLensFirstWithinMonth,
|
|
89
|
+
performanceCluster: `${performanceCluster}`,
|
|
90
|
+
webglRendererInfo,
|
|
91
|
+
};
|
|
92
|
+
metricsEventTarget.dispatchEvent(new TypedCustomEvent("lensView", lensView));
|
|
93
|
+
metrics.setOperationalMetrics(Histogram.level("lens_view", viewTimeSec * 1000));
|
|
94
|
+
if (lensFrameProcessingN >= 30) {
|
|
95
|
+
metrics.setOperationalMetrics(Histogram.level("lens_view_frame-processing-time", lensFrameProcessingTimeMsMedian, {
|
|
96
|
+
performance_cluster: performanceCluster.toString(),
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
}),
|
|
100
|
+
});
|
|
101
|
+
}));
|
|
102
|
+
//# sourceMappingURL=reportLensView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensView.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensView.ts"],"names":[],"mappings":"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","sourcesContent":["import { combineLatestWith, filter, from, map, merge, mergeMap, of, raceWith, switchMap, take, takeUntil } from \"rxjs\";\nimport { forActions, inStates, isState } from \"@snap/state-management\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../../events/TypedCustomEvent\";\nimport type { MetricsEventTarget } from \"../metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"../metricsEventTarget\";\nimport type { CameraKitSession } from \"../../session/CameraKitSession\";\nimport { cameraKitSessionFactory } from \"../../session/CameraKitSession\";\nimport type { MakeTaggedBusinessEvent } from \"../businessEventsReporter\";\nimport { getTimeMs } from \"../../common/time\";\nimport type { CameraKitConfiguration } from \"../../configuration\";\nimport { configurationToken } from \"../../configuration\";\nimport type { LensState } from \"../../session/lensState\";\nimport { lensStateFactory } from \"../../session/lensState\";\nimport type { SessionState } from \"../../session/sessionState\";\nimport { sessionStateFactory } from \"../../session/sessionState\";\nimport { Histogram } from \"../operational/Histogram\";\nimport { IndexedDBPersistence } from \"../../persistence/IndexedDBPersistence\";\nimport { ExpiringPersistence } from \"../../persistence/ExpiringPersistence\";\nimport { dayFormatter, monthFormatter } from \"../../common/date\";\nimport type { MetricsClient } from \"../../clients/metricsClient\";\nimport { metricsClientFactory } from \"../../clients/metricsClient\";\n\n// We ignore short-duration lens views.\n//\n// The value is documented here:\n// https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.q5liip76r9lt\nconst viewTimeThresholdSec = 0.1;\n\nasync function isFirstTimeWithinPeriods(lensId: string, persistence: ExpiringPersistence<Date>) {\n let isLensFirstWithinDay = false;\n let isLensFirstWithinMonth = false;\n\n try {\n const lensLastViewDate = await persistence.retrieve(lensId);\n const currentDate = new Date();\n\n if (!lensLastViewDate) {\n isLensFirstWithinDay = true;\n isLensFirstWithinMonth = true;\n } else {\n isLensFirstWithinDay = dayFormatter.format(lensLastViewDate) !== dayFormatter.format(currentDate);\n isLensFirstWithinMonth = monthFormatter.format(lensLastViewDate) !== monthFormatter.format(currentDate);\n }\n\n await persistence.store(lensId, currentDate);\n } catch (error) {\n console.error(`Error handling persistence for lensId ${lensId}: ${error}`);\n isLensFirstWithinDay = false;\n isLensFirstWithinMonth = false;\n }\n\n return { isLensFirstWithinDay, isLensFirstWithinMonth };\n}\n\n/**\n * The LensView metric is emitted after a lens has been viewed (for longer than 100ms), when the lens is turned off.\n *\n * It contains information about rendering performance.\n *\n * Notes:\n * - If the page is hidden (e.g. user switches to a different tab, or application, or closes the tab, or closes the\n * browser, navigates to a new page, refreshes, etc.) this metric will be emitted at that time. This is to ensure\n * we don't lose the metric if the page is closed.\n * - If the page is hidden and then made visible again later (e.g. user switches to a different tab, then back), we\n * will begin measuring a new LensView. That is, we will not capture the time when the page is hidden even if the\n * lens is still rendering in the background.\n *\n * @category Lenses\n * @category Metrics\n */\n// This type corresponds to the internal CameraKitLensSwipe event, described here:\n// https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY#heading=h.q5liip76r9lt\nexport type LensView = MakeTaggedBusinessEvent<\"lensView\">;\n\n/**\n * @internal\n */\nexport const reportLensView = Injectable(\n \"reportLensView\",\n [\n cameraKitSessionFactory.token,\n lensStateFactory.token,\n sessionStateFactory.token,\n metricsEventTargetFactory.token,\n metricsClientFactory.token,\n configurationToken,\n ] as const,\n async (\n session: CameraKitSession,\n lensState: LensState,\n sessionState: SessionState,\n metricsEventTarget: MetricsEventTarget,\n metrics: MetricsClient,\n configuration: CameraKitConfiguration\n ): Promise<void> => {\n // We need to do this await up front so that it won't interrupt reporting the metric when the session is\n // suspended -- suspension could happen because the tab is closing, in which case we cannot perform await a\n // Promise, because in the case of a tab close the browser will not schedule any work for future turns of the\n // event loop.\n const { cluster: performanceCluster, webglRendererInfo } = (await configuration.lensPerformance) ?? {\n cluster: 0,\n webglRendererInfo: \"unknown\",\n };\n\n const lensViewPersistence = new ExpiringPersistence<Date>(\n // 60 days expiration\n () => 60 * 24 * 60 * 60,\n new IndexedDBPersistence({ databaseName: \"recentLensViews\" })\n );\n\n merge(\n // Begin measuring LensCore apply time once the lens has finished downloading and we actually add the lens\n // to LensCore (LensWait measures the full download + LensCore apply time i.e. perceived UX latency).\n lensState.events.pipe(\n forActions(\"downloadComplete\"),\n map(([a]) => a.data)\n ),\n\n // If the session is resumed (e.g. user returns to this tab while a lens is on), we count this as a new\n // LensView (and applyDelaySec will be 0).\n lensState.events.pipe(\n inStates(\"lensApplied\"),\n switchMap(([, s]) =>\n sessionState.events.pipe(\n forActions(\"resume\"),\n takeUntil(lensState.events.pipe(forActions(\"removeLens\"))),\n map(() => s.data)\n )\n )\n )\n )\n .pipe(\n map((lens): [number, string, string] => [getTimeMs(), lens.id, lens.groupId]),\n mergeMap(([applyLensStartTime, lensId, lensGroupId]) => {\n const alreadyOn = isState(lensState.getState(), \"lensApplied\");\n\n const applyDelay = alreadyOn\n ? of(0)\n : lensState.events.pipe(\n forActions(\"resourcesLoaded\"),\n filter(([a]) => a.data.id === lensId),\n // Applying a new lens may happen before removing the old one, so if we kept taking events\n // we would get the lensResourcesLoaded for the next lens, too.\n take(1),\n map(() => (getTimeMs() - applyLensStartTime) / 1000)\n );\n\n const viewMetrics = (\n alreadyOn\n ? of([getTimeMs(), session.metrics.beginMeasurement()] as const)\n : lensState.events.pipe(\n forActions(\"turnedOn\"),\n filter(([a]) => a.data.id === lensId),\n map(() => [getTimeMs(), session.metrics.beginMeasurement()] as const)\n )\n ).pipe(\n take(1),\n mergeMap(([lensTurnedOnTime, metricsMeasurement]) =>\n lensState.events.pipe(\n forActions(\"turnedOff\"),\n // Applying a new lens may happen before removing the old one, so we'll get a\n // lensTurnedOff for the prior lens (if one was applied), which we must filter out.\n filter(([a]) => a.data.id === lensId),\n // If the session is suspended, we'll count that as the lens turning off.\n raceWith(sessionState.events.pipe(forActions(\"suspend\"))),\n map(() => {\n metricsMeasurement.end();\n return {\n viewTimeSec: (getTimeMs() - lensTurnedOnTime) / 1000,\n ...metricsMeasurement.measure(),\n };\n })\n )\n )\n );\n\n return applyDelay.pipe(\n combineLatestWith(viewMetrics, from(isFirstTimeWithinPeriods(lensId, lensViewPersistence))),\n // This lens should always receive the lensTurnedOff action *before* the next lens is\n // turned on. But just in case that assumption is violated, we'll clean up\n // (and not report) if another lens turns on before our lens is turned off.\n takeUntil(\n lensState.events.pipe(\n forActions(\"turnedOn\"),\n filter(([a]) => a.data.id !== lensId)\n )\n ),\n take(1),\n map(([applyDelaySec, viewMetrics, isFirstTimeResults]) => ({\n applyDelaySec,\n lensId,\n lensGroupId,\n ...viewMetrics,\n ...isFirstTimeResults,\n }))\n );\n })\n )\n .subscribe({\n next: async ({\n applyDelaySec,\n lensId,\n lensGroupId,\n viewTimeSec,\n avgFps,\n lensFrameProcessingTimeMsAvg,\n lensFrameProcessingTimeMsStd,\n lensFrameProcessingTimeMsMedian,\n lensFrameProcessingN,\n isLensFirstWithinDay,\n isLensFirstWithinMonth,\n }) => {\n if (viewTimeSec < viewTimeThresholdSec) return;\n\n const lensView: LensView = {\n name: \"lensView\",\n applyDelaySec,\n avgFps,\n lensId,\n lensGroupId,\n lensFrameProcessingTimeMsAvg,\n lensFrameProcessingTimeMsStd,\n // We don't support recording video, but applications may do this without our knowledge.\n recordingTimeSec: 0,\n viewTimeSec,\n isLensFirstWithinDay,\n isLensFirstWithinMonth,\n performanceCluster: `${performanceCluster}`,\n webglRendererInfo,\n };\n\n metricsEventTarget.dispatchEvent(new TypedCustomEvent(\"lensView\", lensView));\n metrics.setOperationalMetrics(Histogram.level(\"lens_view\", viewTimeSec * 1000));\n\n // The first few frames will typically take much longer to process (as they might involve requesting\n // remote assets to be downloaded, or other high-latency initialization steps) -- so we'll skip\n // reporting views with a very small number of frames.\n if (lensFrameProcessingN >= 30) {\n metrics.setOperationalMetrics(\n Histogram.level(\"lens_view_frame-processing-time\", lensFrameProcessingTimeMsMedian, {\n performance_cluster: performanceCluster.toString(),\n })\n );\n }\n },\n });\n }\n);\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { MakeTaggedBusinessEvent } from "../businessEventsReporter";
|
|
2
|
+
import type { MetricsEventTarget } from "../metricsEventTarget";
|
|
3
|
+
/**
|
|
4
|
+
* The LensWait metric measures the time spent downloading the lens content and required assets. It gives an indication
|
|
5
|
+
* of the real UX impact of download latency. If lens content and assets are pre-loaded, the latency measured here
|
|
6
|
+
* should decrease – we measure between the request to apply a lens and when the lens is ready to render.
|
|
7
|
+
*
|
|
8
|
+
* @category Lenses
|
|
9
|
+
* @category Metrics
|
|
10
|
+
*/
|
|
11
|
+
export type LensWait = MakeTaggedBusinessEvent<"lensWait">;
|
|
12
|
+
/**
|
|
13
|
+
* Each time a lens is applied, we measure the duration until the lens is fully loaded by LensCore. This
|
|
14
|
+
* includes any time spent downloading the lens content and required assets from the lens manifest.
|
|
15
|
+
*
|
|
16
|
+
* The intention of this event is to measure the experienced UX latency between a user requesting a lens and
|
|
17
|
+
* the lens rendering. Of course, the application may call `applyLens` at any time, and may hide/show the
|
|
18
|
+
* rendered result at any time – but this should give us a good baseline for how much UX latency could be seen.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare const reportLensWait: {
|
|
23
|
+
(args_0: import("@snap/state-management").StateMachine<import("@snap/state-management").Action<"applyLens", {
|
|
24
|
+
lens: import("../..").Lens;
|
|
25
|
+
launchData?: import("../..").LensLaunchData | undefined;
|
|
26
|
+
}> | import("@snap/state-management").Action<"downloadComplete", import("../..").Lens> | import("@snap/state-management").Action<"turnedOn", import("../..").Lens> | import("@snap/state-management").Action<"resourcesLoaded", import("../..").Lens> | import("@snap/state-management").Action<"firstFrameProcessed", import("../..").Lens> | import("@snap/state-management").Action<"applyLensComplete", import("../..").Lens> | import("@snap/state-management").Action<"applyLensFailed", {
|
|
27
|
+
error: import("../../session/lensState").LensErrors;
|
|
28
|
+
lens: import("../..").Lens;
|
|
29
|
+
}> | import("@snap/state-management").Action<"applyLensAborted", import("../..").Lens> | import("@snap/state-management").Action<"removeLens", undefined> | import("@snap/state-management").Action<"turnedOff", import("../..").Lens> | import("@snap/state-management").Action<"removeLensComplete", undefined> | import("@snap/state-management").Action<"removeLensFailed", Error>, import("@snap/state-management").State<"noLensApplied", undefined> | import("@snap/state-management").State<"applyingLens", import("../..").Lens> | import("@snap/state-management").State<"lensApplied", import("../..").Lens>>, args_1: MetricsEventTarget): void;
|
|
30
|
+
token: "reportLensWait";
|
|
31
|
+
dependencies: readonly ["lensState", "metricsEventTarget"];
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=reportLensWait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensWait.d.ts","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensWait.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAShE;;;;;;;GAOG;AAGH,MAAM,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CA8C1B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { forActions } from "@snap/state-management";
|
|
2
|
+
import { map, mergeMap, take } from "rxjs";
|
|
3
|
+
import { getTimeMs } from "../../common/time";
|
|
4
|
+
import { Injectable } from "../../dependency-injection/Injectable";
|
|
5
|
+
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
|
|
6
|
+
import { lensStateFactory } from "../../session/lensState";
|
|
7
|
+
import { metricsEventTargetFactory } from "../metricsEventTarget";
|
|
8
|
+
const viewTimeThresholdSec = 0.1;
|
|
9
|
+
export const reportLensWait = Injectable("reportLensWait", [lensStateFactory.token, metricsEventTargetFactory.token], (lensState, metricsEventTarget) => {
|
|
10
|
+
lensState.events
|
|
11
|
+
.pipe(forActions("applyLens"), mergeMap(([a]) => {
|
|
12
|
+
const lensId = a.data.lens.id;
|
|
13
|
+
const lensGroupId = a.data.lens.groupId;
|
|
14
|
+
const applyLensStartTime = getTimeMs();
|
|
15
|
+
return lensState.events.pipe(forActions("firstFrameProcessed", "applyLens"), take(1), map(() => [
|
|
16
|
+
(getTimeMs() - applyLensStartTime) / 1000,
|
|
17
|
+
lensId,
|
|
18
|
+
lensGroupId,
|
|
19
|
+
]));
|
|
20
|
+
}))
|
|
21
|
+
.subscribe({
|
|
22
|
+
next: ([viewTimeSec, lensId, lensGroupId]) => {
|
|
23
|
+
if (viewTimeSec < viewTimeThresholdSec)
|
|
24
|
+
return;
|
|
25
|
+
const lensWait = {
|
|
26
|
+
name: "lensWait",
|
|
27
|
+
lensId,
|
|
28
|
+
viewTimeSec,
|
|
29
|
+
lensGroupId,
|
|
30
|
+
};
|
|
31
|
+
metricsEventTarget.dispatchEvent(new TypedCustomEvent("lensWait", lensWait));
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=reportLensWait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportLensWait.js","sourceRoot":"","sources":["../../../src/metrics/reporters/reportLensWait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAMlE,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAwBjC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CACpC,gBAAgB,EAChB,CAAC,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAU,EAClE,CAAC,SAAoB,EAAE,kBAAsC,EAAE,EAAE;IAC7D,SAAS,CAAC,MAAM;SACX,IAAI,CACD,UAAU,CAAC,WAAW,CAAC,EACvB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,MAAM,kBAAkB,GAAG,SAAS,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAWxB,UAAU,CAAC,qBAAqB,EAAE,WAAW,CAAC,EAC9C,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,GAA6B,EAAE,CAAC;YAChC,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,GAAG,IAAI;YACzC,MAAM;YACN,WAAW;SACd,CAAC,CACL,CAAC;IACN,CAAC,CAAC,CACL;SACA,SAAS,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE;YACzC,IAAI,WAAW,GAAG,oBAAoB;gBAAE,OAAO;YAE/C,MAAM,QAAQ,GAAa;gBACvB,IAAI,EAAE,UAAU;gBAChB,MAAM;gBACN,WAAW;gBACX,WAAW;aACd,CAAC;YACF,kBAAkB,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,CAAC;KACJ,CAAC,CAAC;AACX,CAAC,CACJ,CAAC","sourcesContent":["import { forActions } from \"@snap/state-management\";\nimport { map, mergeMap, take } from \"rxjs\";\nimport { getTimeMs } from \"../../common/time\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../../events/TypedCustomEvent\";\nimport type { LensState } from \"../../session/lensState\";\nimport { lensStateFactory } from \"../../session/lensState\";\nimport type { MakeTaggedBusinessEvent } from \"../businessEventsReporter\";\nimport type { MetricsEventTarget } from \"../metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"../metricsEventTarget\";\n\n// We ignore short-duration lens waits.\n//\n// The value is documented here:\n// https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/edit#heading=h.q5liip76r9lt\nconst viewTimeThresholdSec = 0.1;\n\n/**\n * The LensWait metric measures the time spent downloading the lens content and required assets. It gives an indication\n * of the real UX impact of download latency. If lens content and assets are pre-loaded, the latency measured here\n * should decrease – we measure between the request to apply a lens and when the lens is ready to render.\n *\n * @category Lenses\n * @category Metrics\n */\n// This type corresponds to the internal CameraKitLensSpin event, described here:\n// https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY#heading=h.q5liip76r9lt\nexport type LensWait = MakeTaggedBusinessEvent<\"lensWait\">;\n\n/**\n * Each time a lens is applied, we measure the duration until the lens is fully loaded by LensCore. This\n * includes any time spent downloading the lens content and required assets from the lens manifest.\n *\n * The intention of this event is to measure the experienced UX latency between a user requesting a lens and\n * the lens rendering. Of course, the application may call `applyLens` at any time, and may hide/show the\n * rendered result at any time – but this should give us a good baseline for how much UX latency could be seen.\n *\n * @internal\n */\nexport const reportLensWait = Injectable(\n \"reportLensWait\",\n [lensStateFactory.token, metricsEventTargetFactory.token] as const,\n (lensState: LensState, metricsEventTarget: MetricsEventTarget) => {\n lensState.events\n .pipe(\n forActions(\"applyLens\"),\n mergeMap(([a]) => {\n const lensId = a.data.lens.id;\n const lensGroupId = a.data.lens.groupId;\n const applyLensStartTime = getTimeMs();\n return lensState.events.pipe(\n // We'll measure the time until either the requested lens was rendered, or a new applyLens\n // request was made (in both cases, we're done waiting for this lens).\n //\n // This does have the side-effect that if a user rapidly switches between lenses, we'll record\n // many low-duration lensWait events that are measuring user behavior instead of system latency.\n // But this is a good trade-off so that we can capture those long-duration lensWaits that are\n // terminated by the user trying a different lens.\n //\n // (This effect can be mitigated by increasing the viewtimeThresholdSec to ignore low-duration\n // waits that are likely caused by user behavior).\n forActions(\"firstFrameProcessed\", \"applyLens\"),\n take(1),\n map((): [number, string, string] => [\n (getTimeMs() - applyLensStartTime) / 1000,\n lensId,\n lensGroupId,\n ])\n );\n })\n )\n .subscribe({\n next: ([viewTimeSec, lensId, lensGroupId]) => {\n if (viewTimeSec < viewTimeThresholdSec) return;\n\n const lensWait: LensWait = {\n name: \"lensWait\",\n lensId,\n viewTimeSec,\n lensGroupId,\n };\n metricsEventTarget.dispatchEvent(new TypedCustomEvent(\"lensWait\", lensWait));\n },\n });\n }\n);\n"]}
|