@snap/camera-kit 0.18.1 → 0.21.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/README.md +1 -1
- package/dist/CameraKit.d.ts +2 -2
- package/dist/bootstrapCameraKit.d.ts.map +1 -1
- package/dist/bootstrapCameraKit.js +3 -1
- package/dist/bootstrapCameraKit.js.map +1 -1
- package/dist/clients/grpcHandler.d.ts +9 -3
- package/dist/clients/grpcHandler.d.ts.map +1 -1
- package/dist/clients/grpcHandler.js +20 -3
- package/dist/clients/grpcHandler.js.map +1 -1
- package/dist/dependency-injection/RootServices.d.ts +2 -0
- package/dist/dependency-injection/RootServices.d.ts.map +1 -1
- package/dist/dependency-injection/RootServices.js.map +1 -1
- package/dist/environment.js +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/generated-proto/pb_schema/camera_kit/v3/remote_api_spec.d.ts +644 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/remote_api_spec.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/remote_api_spec.js +320 -0
- package/dist/generated-proto/pb_schema/camera_kit/v3/remote_api_spec.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/app_launch_type.d.ts +10 -0
- package/dist/generated-proto/pb_schema/cdp/cof/app_launch_type.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/app_launch_type.js +17 -0
- package/dist/generated-proto/pb_schema/cdp/cof/app_launch_type.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/billboard_provided_signals.d.ts +167 -0
- package/dist/generated-proto/pb_schema/cdp/cof/billboard_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/billboard_provided_signals.js +423 -0
- package/dist/generated-proto/pb_schema/cdp/cof/billboard_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/bolt_provided_signals.d.ts +34 -0
- package/dist/generated-proto/pb_schema/cdp/cof/bolt_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/bolt_provided_signals.js +63 -0
- package/dist/generated-proto/pb_schema/cdp/cof/bolt_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/camera_provided_signals.d.ts +109 -0
- package/dist/generated-proto/pb_schema/cdp/cof/camera_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/camera_provided_signals.js +192 -0
- package/dist/generated-proto/pb_schema/cdp/cof/camera_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +3203 -0
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.js +290 -0
- package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/cognac_provided_signals.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/cognac_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/cognac_provided_signals.js +42 -0
- package/dist/generated-proto/pb_schema/cdp/cof/cognac_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.js +54 -1
- package/dist/generated-proto/pb_schema/cdp/cof/config_request.js.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts +97 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts +277 -0
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.js +39 -2
- package/dist/generated-proto/pb_schema/cdp/cof/config_result.js.map +1 -1
- package/dist/generated-proto/pb_schema/cdp/cof/contact_authorization_status.d.ts +11 -0
- package/dist/generated-proto/pb_schema/cdp/cof/contact_authorization_status.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/contact_authorization_status.js +18 -0
- package/dist/generated-proto/pb_schema/cdp/cof/contact_authorization_status.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/content_manager_provided_signals.d.ts +89 -0
- package/dist/generated-proto/pb_schema/cdp/cof/content_manager_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/content_manager_provided_signals.js +108 -0
- package/dist/generated-proto/pb_schema/cdp/cof/content_manager_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/creative_tools_provided_signals.d.ts +27 -0
- package/dist/generated-proto/pb_schema/cdp/cof/creative_tools_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/creative_tools_provided_signals.js +49 -0
- package/dist/generated-proto/pb_schema/cdp/cof/creative_tools_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/feature_provided_signals.d.ts +1184 -0
- package/dist/generated-proto/pb_schema/cdp/cof/feature_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/feature_provided_signals.js +507 -0
- package/dist/generated-proto/pb_schema/cdp/cof/feature_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/lenses_provided_signals.d.ts +30 -0
- package/dist/generated-proto/pb_schema/cdp/cof/lenses_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/lenses_provided_signals.js +59 -0
- package/dist/generated-proto/pb_schema/cdp/cof/lenses_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/mdp_media_attribution.d.ts +29 -0
- package/dist/generated-proto/pb_schema/cdp/cof/mdp_media_attribution.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/mdp_media_attribution.js +49 -0
- package/dist/generated-proto/pb_schema/cdp/cof/mdp_media_attribution.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/media_provided_signals.d.ts +35 -0
- package/dist/generated-proto/pb_schema/cdp/cof/media_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/media_provided_signals.js +58 -0
- package/dist/generated-proto/pb_schema/cdp/cof/media_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/opera_provided_signals.d.ts +30 -0
- package/dist/generated-proto/pb_schema/cdp/cof/opera_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/opera_provided_signals.js +56 -0
- package/dist/generated-proto/pb_schema/cdp/cof/opera_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/perception_provided_signals.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/perception_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/perception_provided_signals.js +42 -0
- package/dist/generated-proto/pb_schema/cdp/cof/perception_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/recipients_provided_signals.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/recipients_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/recipients_provided_signals.js +42 -0
- package/dist/generated-proto/pb_schema/cdp/cof/recipients_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/routing_provided_signals.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/routing_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/routing_provided_signals.js +42 -0
- package/dist/generated-proto/pb_schema/cdp/cof/routing_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/snap_kit_provided_signals.d.ts +24 -0
- package/dist/generated-proto/pb_schema/cdp/cof/snap_kit_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/snap_kit_provided_signals.js +42 -0
- package/dist/generated-proto/pb_schema/cdp/cof/snap_kit_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/upload_provided_signals.d.ts +40 -0
- package/dist/generated-proto/pb_schema/cdp/cof/upload_provided_signals.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/cof/upload_provided_signals.js +71 -0
- package/dist/generated-proto/pb_schema/cdp/cof/upload_provided_signals.js.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/media/snap_source.d.ts +14 -0
- package/dist/generated-proto/pb_schema/cdp/media/snap_source.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/cdp/media/snap_source.js +21 -0
- package/dist/generated-proto/pb_schema/cdp/media/snap_source.js.map +1 -0
- package/dist/generated-proto/pb_schema/content/asset.d.ts +51 -0
- package/dist/generated-proto/pb_schema/content/asset.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/content/asset.js +74 -0
- package/dist/generated-proto/pb_schema/content/asset.js.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_reference.d.ts +103 -0
- package/dist/generated-proto/pb_schema/content/media_reference.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_reference.js +183 -0
- package/dist/generated-proto/pb_schema/content/media_reference.js.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_source.d.ts +19 -0
- package/dist/generated-proto/pb_schema/content/media_source.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_source.js +26 -0
- package/dist/generated-proto/pb_schema/content/media_source.js.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_types.d.ts +63 -0
- package/dist/generated-proto/pb_schema/content/media_types.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/content/media_types.js +71 -0
- package/dist/generated-proto/pb_schema/content/media_types.js.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts +3 -0
- package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts.map +1 -1
- package/dist/generated-proto/pb_schema/lenses/launchdata.js +20 -1
- package/dist/generated-proto/pb_schema/lenses/launchdata.js.map +1 -1
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_spec.d.ts +2983 -0
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_spec.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_spec.js +2107 -0
- package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_spec.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/capture_characteristics.d.ts +27 -0
- package/dist/generated-proto/pb_schema/snapdoc/capture_characteristics.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/capture_characteristics.js +49 -0
- package/dist/generated-proto/pb_schema/snapdoc/capture_characteristics.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/extensions.d.ts +31 -0
- package/dist/generated-proto/pb_schema/snapdoc/extensions.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/extensions.js +56 -0
- package/dist/generated-proto/pb_schema/snapdoc/extensions.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media.d.ts +703 -0
- package/dist/generated-proto/pb_schema/snapdoc/media.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media.js +992 -0
- package/dist/generated-proto/pb_schema/snapdoc/media.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_codec_formats.d.ts +27 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_codec_formats.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_codec_formats.js +36 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_codec_formats.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_file_formats.d.ts +8 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_file_formats.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_file_formats.js +15 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_file_formats.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_id.d.ts +24 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_id.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_id.js +45 -0
- package/dist/generated-proto/pb_schema/snapdoc/media_id.js.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/snap_component_type.d.ts +68 -0
- package/dist/generated-proto/pb_schema/snapdoc/snap_component_type.d.ts.map +1 -0
- package/dist/generated-proto/pb_schema/snapdoc/snap_component_type.js +66 -0
- package/dist/generated-proto/pb_schema/snapdoc/snap_component_type.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lens-client-interface/filePicker.d.ts +31 -0
- package/dist/lens-client-interface/filePicker.d.ts.map +1 -0
- package/dist/lens-client-interface/filePicker.js +3 -0
- package/dist/lens-client-interface/filePicker.js.map +1 -0
- package/dist/lens-client-interface/imagePicker.d.ts +2 -1
- package/dist/lens-client-interface/imagePicker.d.ts.map +1 -1
- package/dist/lens-client-interface/imagePicker.js +6 -3
- package/dist/lens-client-interface/imagePicker.js.map +1 -1
- package/dist/lens-client-interface/lensClientInterface.d.ts +3 -2
- package/dist/lens-client-interface/lensClientInterface.d.ts.map +1 -1
- package/dist/lens-client-interface/lensClientInterface.js +3 -2
- package/dist/lens-client-interface/lensClientInterface.js.map +1 -1
- package/dist/lens-core-module/loader/lensCoreFactory.d.ts +9 -2
- package/dist/lens-core-module/loader/lensCoreFactory.d.ts.map +1 -1
- package/dist/lens-core-module/loader/lensCoreFactory.js +18 -6
- package/dist/lens-core-module/loader/lensCoreFactory.js.map +1 -1
- package/dist/lensCoreWasmVersions.js +3 -3
- package/dist/lensCoreWasmVersions.js.map +1 -1
- package/dist/metrics/reporters/reportHttpMetrics.d.ts +5 -1
- package/dist/metrics/reporters/reportHttpMetrics.d.ts.map +1 -1
- package/dist/metrics/reporters/reportHttpMetrics.js +21 -15
- package/dist/metrics/reporters/reportHttpMetrics.js.map +1 -1
- package/dist/metrics/reporters/reporters.d.ts +1 -1
- package/dist/remote-configuration/cofHandler.d.ts.map +1 -1
- package/dist/remote-configuration/cofHandler.js +1 -1
- package/dist/remote-configuration/cofHandler.js.map +1 -1
- 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 +2 -2
- 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/filePickerFactory.html +5 -0
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/docs/html/interfaces/LensSource.html +2 -2
- package/docs/html/interfaces/LensUserData.html +2 -2
- 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 +2 -2
- package/docs/html/interfaces/RemoteApiService.html +2 -2
- 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 +6 -2
- package/docs/html/types/ArgumentValidationError.html +2 -2
- 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/FilePicker.html +6 -0
- package/docs/html/types/FilePickerOptions.html +2 -0
- package/docs/html/types/FilePickerResult.html +2 -0
- 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 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/docs/md/interfaces/LensSource.md +1 -1
- package/docs/md/interfaces/LensUserData.md +1 -1
- 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 +1 -1
- package/docs/md/interfaces/RemoteApiService.md +1 -1
- 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 +65 -3
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -181,7 +181,7 @@ session.pause('capture');
|
|
|
181
181
|
|
|
182
182
|
## Error Handling
|
|
183
183
|
|
|
184
|
-
Camera Kit Web SDK methods may throw errors, or return rejected Promises -- these are documented in the [API docs](https://kit.snapchat.com/reference/CameraKit/web/0.
|
|
184
|
+
Camera Kit Web SDK methods may throw errors, or return rejected Promises -- these are documented in the [API docs](https://kit.snapchat.com/reference/CameraKit/web/0.21.0/index.html). It is good practice to handle such cases, to provide a good experience to your users.
|
|
185
185
|
|
|
186
186
|
Errors may also occur during Lens rendering. For example, Lenses contain their own scripting, which could throw an error. A rendering error could also occur if a Lens attempts to use a feature that is not supported by Camera Kit Web SDK.
|
|
187
187
|
|
package/dist/CameraKit.d.ts
CHANGED
|
@@ -266,9 +266,9 @@ export declare const cameraKitFactory: {
|
|
|
266
266
|
token: "cameraKitServiceFetchHandler";
|
|
267
267
|
dependencies: readonly ["configuration", "defaultFetchHandler"];
|
|
268
268
|
}, {
|
|
269
|
-
(args_0: import("./configuration").CameraKitConfiguration, args_1: import(".").FetchHandler): import("./clients/grpcHandler").GrpcHandler;
|
|
269
|
+
(args_0: import("./configuration").CameraKitConfiguration, args_1: import(".").FetchHandler, args_2: import("./handlers/requestStateEmittingHandler").RequestStateEventTarget): import("./clients/grpcHandler").GrpcHandler;
|
|
270
270
|
token: "grpcHandlerFactory";
|
|
271
|
-
dependencies: readonly ["configuration", "cameraKitServiceFetchHandler"];
|
|
271
|
+
dependencies: readonly ["configuration", "cameraKitServiceFetchHandler", "requestStateEventTarget"];
|
|
272
272
|
}, {
|
|
273
273
|
(args_0: import("./clients/grpcHandler").GrpcHandler): import("./clients/lensesClient").LensesClient;
|
|
274
274
|
token: "lensesClient";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapCameraKit.d.ts","sourceRoot":"","sources":["../src/bootstrapCameraKit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrapCameraKit.d.ts","sourceRoot":"","sources":["../src/bootstrapCameraKit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAkD3E;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,kBAAkB,CACpC,aAAa,EAAE,+BAA+B,EAC9C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,eAAe,GAClD,OAAO,CAAC,SAAS,CAAC,CA2FpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAElD"}
|
|
@@ -41,6 +41,7 @@ import { cameraKitLensSourceFactory } from "./lens/cameraKitLensSource";
|
|
|
41
41
|
import { externalMetricsSubjectFactory, metricsClientFactory } from "./clients/metricsClient";
|
|
42
42
|
import { Timer } from "./metrics/operational/Timer";
|
|
43
43
|
import { fetchWatermarkLens } from "./lens/fetchWatermarkLens";
|
|
44
|
+
import { filePickerFactory } from "./lens-client-interface/filePicker";
|
|
44
45
|
const logger = getLogger("bootstrapCameraKit");
|
|
45
46
|
const nonWrappableErrors = [
|
|
46
47
|
"ConfigurationError",
|
|
@@ -60,6 +61,7 @@ export function bootstrapCameraKit(configuration, provide) {
|
|
|
60
61
|
assert(isSafeString(configuration.apiToken), configurationError("Invalid or unsafe apiToken provided."));
|
|
61
62
|
const configurationFactory = createCameraKitConfigurationFactory(configuration);
|
|
62
63
|
const defaultPublicContainer = Container.provides(configurationFactory)
|
|
64
|
+
.provides(filePickerFactory)
|
|
63
65
|
.provides(defaultFetchHandlerFactory)
|
|
64
66
|
.provides(remoteMediaAssetLoaderFactory)
|
|
65
67
|
.provides(lensSourcesFactory)
|
|
@@ -70,11 +72,11 @@ export function bootstrapCameraKit(configuration, provide) {
|
|
|
70
72
|
const telemetryContainer = Container.provides(publicContainer)
|
|
71
73
|
.provides(pageVisibilityFactory)
|
|
72
74
|
.provides(cameraKitServiceFetchHandlerFactory)
|
|
75
|
+
.provides(requestStateEventTargetFactory)
|
|
73
76
|
.provides(grpcHandlerFactory)
|
|
74
77
|
.provides(metricsClientFactory)
|
|
75
78
|
.provides(logEntriesFactory)
|
|
76
79
|
.run(registerLogEntriesSubscriber)
|
|
77
|
-
.provides(requestStateEventTargetFactory)
|
|
78
80
|
.provides(metricsEventTargetFactory)
|
|
79
81
|
.provides(reportGlobalException)
|
|
80
82
|
.provides(cofHandlerFactory)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapCameraKit.js","sourceRoot":"","sources":["../src/bootstrapCameraKit.ts"],"names":[],"mappings":"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","sourcesContent":["import environment from \"./environment\";\nimport lensCoreWasm from \"./lensCoreWasmVersions\";\nimport { lensRepositoryFactory } from \"./lens/LensRepository\";\nimport { Container } from \"./dependency-injection/Container\";\nimport type { CameraKit } from \"./CameraKit\";\nimport { cameraKitFactory } from \"./CameraKit\";\nimport { lensCoreFactory } from \"./lens-core-module/loader/lensCoreFactory\";\nimport { Injectable } from \"./dependency-injection/Injectable\";\nimport { remoteMediaAssetLoaderFactory } from \"./lens/assets/remoteMediaAssetLoaderFactory\";\nimport { deviceDependentAssetLoaderFactory } from \"./lens/assets/deviceDependentAssetLoader\";\nimport { staticAssetLoaderFactory } from \"./lens/assets/staticAssetLoader\";\nimport { defaultFetchHandlerFactory } from \"./handlers/defaultFetchHandler\";\nimport { cameraKitServiceFetchHandlerFactory } from \"./handlers/cameraKitServiceFetchHandlerFactory\";\nimport type { CameraKitBootstrapConfiguration } from \"./configuration\";\nimport { createCameraKitConfigurationFactory } from \"./configuration\";\nimport type { PublicServices } from \"./dependency-injection/RootServices\";\nimport { PartialContainer } from \"./dependency-injection/PartialContainer\";\nimport { uriHandlersFactory } from \"./extensions/UriHandlers\";\nimport { assert } from \"./common/assertions\";\nimport { isSafeString } from \"./common/typeguards\";\nimport { metricsEventTargetFactory } from \"./metrics/metricsEventTarget\";\nimport { reportGloballyScopedMetrics } from \"./metrics/reporters/reporters\";\nimport { getLogger } from \"./logger/logger\";\nimport { logEntriesFactory } from \"./logger/logEntries\";\nimport { assertPlatformSupported } from \"./platform/assertPlatformSupported\";\nimport { lensPersistenceStoreFactory } from \"./lens/LensPersistenceStore\";\nimport { remoteConfigurationFactory } from \"./remote-configuration/remoteConfiguration\";\nimport { lensAssetRepositoryFactory } from \"./lens/assets/LensAssetRepository\";\nimport { legalStateFactory } from \"./legal/legalState\";\nimport { legalPromptFactory } from \"./legal/legalPrompt\";\nimport type { ConfigurationError, PlatformNotSupportedError } from \"./namedErrors\";\nimport { bootstrapError, configurationError } from \"./namedErrors\";\nimport { businessEventsReporterFactory } from \"./metrics/businessEventsReporter\";\nimport { reportGlobalException } from \"./metrics/reporters/reportGlobalException\";\nimport { registerLogEntriesSubscriber } from \"./logger/registerLogEntriesSubscriber\";\nimport { requestStateEventTargetFactory } from \"./handlers/requestStateEmittingHandler\";\nimport { pageVisibilityFactory } from \"./common/pageVisibility\";\nimport { cofHandlerFactory } from \"./remote-configuration/cofHandler\";\nimport { remoteApiServicesFactory } from \"./extensions/RemoteApiServices\";\nimport { lensesClientFactory } from \"./clients/lensesClient\";\nimport { grpcHandlerFactory } from \"./clients/grpcHandler\";\nimport { lensSourcesFactory } from \"./lens/LensSource\";\nimport { cameraKitLensSourceFactory } from \"./lens/cameraKitLensSource\";\nimport { externalMetricsSubjectFactory, metricsClientFactory } from \"./clients/metricsClient\";\nimport { Timer } from \"./metrics/operational/Timer\";\nimport { fetchWatermarkLens } from \"./lens/fetchWatermarkLens\";\n\nconst logger = getLogger(\"bootstrapCameraKit\");\n\n// The following errors are not wrapped with BootstrapError and bubble up as is.\nconst nonWrappableErrors: [ConfigurationError[\"name\"], PlatformNotSupportedError[\"name\"]] = [\n \"ConfigurationError\",\n \"PlatformNotSupportedError\",\n];\n\n/**\n * Returns true if given error has to be wrapped with BootstrapError.\n */\nfunction shouldWrapError(error: unknown): boolean {\n if (error instanceof Error) {\n return !nonWrappableErrors.some((name) => error.name === name);\n }\n return true;\n}\n\n/**\n * For more advanced use-cases, this DI Container holds services for which a custom implementation may be provided by\n * the application.\n *\n * @category Bootstrapping and Configuration\n */\nexport type PublicContainer = Container<PublicServices>;\n\n/**\n * Bootstrap CameraKit. This will download the WebAssembly code which powers CameraKit's rendering engine, and return\n * an instance of {@link CameraKit}.\n *\n * CameraKit must be provided with some configuration (the application's API token), and there are some additional\n * configurations which are optional.\n *\n * Descriptions of the available configurations can be found in the documentation for\n * {@link CameraKitBootstrapConfiguration}\n *\n * ---\n *\n * There is also a second, more advanced way to modify CameraKit to provide greater flexibility to support less common\n * use cases.\n *\n * This requires some knowledge of CameraKit's dependency injection system, and allows applications to provide their\n * own custom implementations of certain CameraKit components. This functionality will only be needed by applications\n * with very specific, more advanced requirements.\n *\n * @example\n * ```ts\n * // The most common way to bootstrap:\n * const cameraKit = await bootstrapCameraKit({ apiToken: myApiToken })\n *\n * // For special advanced use-cases, it is possible to provide custom implementations for certain CameraKit components.\n * const cameraKit = await bootstrapCameraKit(config, (container) => {\n * return container.provides(myCustomRemoteMediaAssetLoaderFactory)\n * })\n * ```\n *\n * @param configuration Configure CameraKit with e.g. credentials, global resource endpoints, etc.\n * @param provide Optional function that can make modifications to CameraKit's root DI container.\n * @returns A {@link CameraKit} instance, which is the entry point to CameraKit's API.\n *\n * @throws\n * - {@link ConfigurationError} when provided configuration object is invalid\n * - {@link PlatformNotSupportedError} when current platform is not supported by CameraKit\n * - {@link BootstrapError} when a failure occurs while initializing CameraKit and downloading the render engine\n * WebAssembly binary.\n *\n * @category Bootstrapping and Configuration\n */\nexport async function bootstrapCameraKit(\n configuration: CameraKitBootstrapConfiguration,\n provide?: (c: PublicContainer) => PublicContainer\n): Promise<CameraKit> {\n console.info(\n `Camera Kit SDK: ${environment.PACKAGE_VERSION} (${lensCoreWasm.version}/${lensCoreWasm.buildNumber})`\n );\n\n try {\n const bootstrapLatency = new Timer(\"bootstrap_time\");\n\n assert(isSafeString(configuration.apiToken), configurationError(\"Invalid or unsafe apiToken provided.\"));\n\n const configurationFactory = createCameraKitConfigurationFactory(configuration);\n\n // Public container holds services which applications can overwrite with their own implementations.\n const defaultPublicContainer = Container.provides(configurationFactory)\n .provides(defaultFetchHandlerFactory)\n .provides(remoteMediaAssetLoaderFactory)\n .provides(lensSourcesFactory)\n .provides(remoteApiServicesFactory)\n .provides(uriHandlersFactory)\n .provides(externalMetricsSubjectFactory);\n\n const publicContainer = provide ? provide(defaultPublicContainer) : defaultPublicContainer;\n\n // Now that the client's provide() function has completed and the configuration override is ready,\n // we create another container to initialize the logger. This ensures that logging is available\n // as we continue bootstrapping. We don't initialize the logger as part of the defaultPublicContainer\n // because we don't want applications to provide their own logger implementations,\n // and we're not interested in errors thrown by their provide() function.\n // Below is the minimum required container to report errors to Blizzard.\n const telemetryContainer = Container.provides(publicContainer)\n .provides(pageVisibilityFactory)\n .provides(cameraKitServiceFetchHandlerFactory)\n .provides(grpcHandlerFactory)\n .provides(metricsClientFactory)\n .provides(logEntriesFactory)\n .run(registerLogEntriesSubscriber)\n .provides(requestStateEventTargetFactory)\n .provides(metricsEventTargetFactory)\n .provides(reportGlobalException)\n .provides(cofHandlerFactory)\n .provides(remoteConfigurationFactory)\n .provides(legalPromptFactory)\n .provides(legalStateFactory)\n // We'll run a PartialContainer containing reporters for globally-scoped metrics. Running this container\n // allows each metric reporter to initialize itself (e.g. by adding event listeners to detect when certain\n // actions occur). This PartialContainer also includes the service which listens to locally-reported metrics\n // and sends them to our backend.\n .run(reportGloballyScopedMetrics)\n .run(businessEventsReporterFactory);\n\n // Run the exception logger so that it can subscribe to log events -- we can't use `Container.run()` because\n // reportGlobalException is also used as a dependency by other Services (and run does not provide Services,\n // it just runs them once).\n telemetryContainer.get(reportGlobalException.token);\n\n // At this point, logger is configured to report to console and Blizzard.\n\n await assertPlatformSupported();\n\n // LensCore is a foundational component which must be created asynchronously.\n // But it's annoying for every consumer of LensCore to have to wait on Promise<LensCore>\n // (which means they become async themselves). So we'll create a DI container which provides Promise<LensCore>,\n // wait for that promise once here, then create a new DI container that just contains LensCore.\n const lensCore = await telemetryContainer.provides(lensCoreFactory).get(lensCoreFactory.token);\n\n const container = telemetryContainer\n .provides(Injectable(lensCoreFactory.token, () => lensCore))\n .provides(lensesClientFactory)\n .provides(cameraKitLensSourceFactory)\n .provides(lensPersistenceStoreFactory)\n .provides(deviceDependentAssetLoaderFactory)\n .provides(staticAssetLoaderFactory)\n .provides(lensAssetRepositoryFactory)\n .provides(lensRepositoryFactory)\n .provides(cameraKitFactory)\n .run(fetchWatermarkLens);\n\n const cameraKit = container.get(cameraKitFactory.token);\n\n bootstrapLatency.measure();\n container.get(metricsClientFactory.token).setOperationalMetrics(bootstrapLatency);\n\n return cameraKit;\n } catch (error) {\n if (shouldWrapError(error)) {\n error = bootstrapError(\"Error occurred during Camera Kit bootstrapping.\", error);\n }\n logger.error(error);\n throw error;\n }\n}\n\n/**\n * Extensions offer a way to provide custom implementations of certain parts of the CameraKit SDK.\n *\n * This enables more advanced use-cases, in which the default behavior of the SDK is substantially altered. For example,\n * replacing the default implementation that loads remote lens assets with a custom implementation that returns\n * different assets based on some business logic within the application.\n *\n * An extension is implemented as a {@link PartialContainer} – a collection of factory functions, each with its own\n * dependencies, which each provide some \"Service\". A Service can be of any type, and the CameraKit SDK defines its\n * own Services, some of which can be overridden by providing a custom implementation of the type via an extension.\n *\n * Here's an example of how extensions might be used:\n * ```ts\n * import { bootstrapCameraKit, createExtension, remoteMediaAssetLoaderFactory } from '@snap/camera-kit'\n *\n * const myCustomRemoteAssetLoader = Injectable(\n * remoteMediaAssetLoaderFactory.token,\n * [remoteMediaAssetLoaderFactory.token] as const,\n * (defaultLoader: AssetLoader): AssetLoader => {\n * return async (asset, lens) => {\n * if (lens?.id === MY_SPECIAL_LENS) {\n * return (await fetch('my/asset.glb')).arrayBuffer()\n * }\n * return defaultLoader(asset, lens)\n * }\n * },\n * )\n *\n * const myExtension = createExtension().provides(myCustomRemoteAssetLoader);\n * const cameraKit = bootstrapCameraKit(config, container => container.provides(myExtension));\n * ```\n *\n * This also enables greater modularity – the person/team creating the extension can do so in their own package, which\n * could be shared by many applications that all require the same functionality.\n *\n * @returns A {@link PartialContainer} which can be used to create a collection of Services, and can later be provided\n * to CameraKit's DI container during {@link bootstrapCameraKit}.\n *\n * @category Bootstrapping and Configuration\n */\nexport function createExtension(): PartialContainer {\n return new PartialContainer({});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bootstrapCameraKit.js","sourceRoot":"","sources":["../src/bootstrapCameraKit.ts"],"names":[],"mappings":";AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAErG,OAAO,EAAE,mCAAmC,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAG/C,MAAM,kBAAkB,GAAoE;IACxF,oBAAoB;IACpB,2BAA2B;CAC9B,CAAC;AAKF,SAAS,eAAe,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE;QACxB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KAClE;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAoDD,MAAM,UAAgB,kBAAkB,CACpC,aAA8C,EAC9C,OAAiD;;QAEjD,OAAO,CAAC,IAAI,CACR,mBAAmB,WAAW,CAAC,eAAe,KAAK,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,WAAW,GAAG,CACzG,CAAC;QAEF,IAAI;YACA,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAErD,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAEzG,MAAM,oBAAoB,GAAG,mCAAmC,CAAC,aAAa,CAAC,CAAC;YAGhF,MAAM,sBAAsB,GAAG,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;iBAClE,QAAQ,CAAC,iBAAiB,CAAC;iBAC3B,QAAQ,CAAC,0BAA0B,CAAC;iBACpC,QAAQ,CAAC,6BAA6B,CAAC;iBACvC,QAAQ,CAAC,kBAAkB,CAAC;iBAC5B,QAAQ,CAAC,wBAAwB,CAAC;iBAClC,QAAQ,CAAC,kBAAkB,CAAC;iBAC5B,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YAE7C,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAQ3F,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;iBACzD,QAAQ,CAAC,qBAAqB,CAAC;iBAC/B,QAAQ,CAAC,mCAAmC,CAAC;iBAC7C,QAAQ,CAAC,8BAA8B,CAAC;iBACxC,QAAQ,CAAC,kBAAkB,CAAC;iBAC5B,QAAQ,CAAC,oBAAoB,CAAC;iBAC9B,QAAQ,CAAC,iBAAiB,CAAC;iBAC3B,GAAG,CAAC,4BAA4B,CAAC;iBACjC,QAAQ,CAAC,yBAAyB,CAAC;iBACnC,QAAQ,CAAC,qBAAqB,CAAC;iBAC/B,QAAQ,CAAC,iBAAiB,CAAC;iBAC3B,QAAQ,CAAC,0BAA0B,CAAC;iBACpC,QAAQ,CAAC,kBAAkB,CAAC;iBAC5B,QAAQ,CAAC,iBAAiB,CAAC;iBAK3B,GAAG,CAAC,2BAA2B,CAAC;iBAChC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAKxC,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAIpD,MAAM,uBAAuB,EAAE,CAAC;YAMhC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE/F,MAAM,SAAS,GAAG,kBAAkB;iBAC/B,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;iBAC3D,QAAQ,CAAC,mBAAmB,CAAC;iBAC7B,QAAQ,CAAC,0BAA0B,CAAC;iBACpC,QAAQ,CAAC,2BAA2B,CAAC;iBACrC,QAAQ,CAAC,iCAAiC,CAAC;iBAC3C,QAAQ,CAAC,wBAAwB,CAAC;iBAClC,QAAQ,CAAC,0BAA0B,CAAC;iBACpC,QAAQ,CAAC,qBAAqB,CAAC;iBAC/B,QAAQ,CAAC,gBAAgB,CAAC;iBAC1B,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAExD,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC3B,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;YAElF,OAAO,SAAS,CAAC;SACpB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,GAAG,cAAc,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;aACpF;YACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;CAAA;AA0CD,MAAM,UAAU,eAAe;IAC3B,OAAO,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import environment from \"./environment\";\nimport lensCoreWasm from \"./lensCoreWasmVersions\";\nimport { lensRepositoryFactory } from \"./lens/LensRepository\";\nimport { Container } from \"./dependency-injection/Container\";\nimport type { CameraKit } from \"./CameraKit\";\nimport { cameraKitFactory } from \"./CameraKit\";\nimport { lensCoreFactory } from \"./lens-core-module/loader/lensCoreFactory\";\nimport { Injectable } from \"./dependency-injection/Injectable\";\nimport { remoteMediaAssetLoaderFactory } from \"./lens/assets/remoteMediaAssetLoaderFactory\";\nimport { deviceDependentAssetLoaderFactory } from \"./lens/assets/deviceDependentAssetLoader\";\nimport { staticAssetLoaderFactory } from \"./lens/assets/staticAssetLoader\";\nimport { defaultFetchHandlerFactory } from \"./handlers/defaultFetchHandler\";\nimport { cameraKitServiceFetchHandlerFactory } from \"./handlers/cameraKitServiceFetchHandlerFactory\";\nimport type { CameraKitBootstrapConfiguration } from \"./configuration\";\nimport { createCameraKitConfigurationFactory } from \"./configuration\";\nimport type { PublicServices } from \"./dependency-injection/RootServices\";\nimport { PartialContainer } from \"./dependency-injection/PartialContainer\";\nimport { uriHandlersFactory } from \"./extensions/UriHandlers\";\nimport { assert } from \"./common/assertions\";\nimport { isSafeString } from \"./common/typeguards\";\nimport { metricsEventTargetFactory } from \"./metrics/metricsEventTarget\";\nimport { reportGloballyScopedMetrics } from \"./metrics/reporters/reporters\";\nimport { getLogger } from \"./logger/logger\";\nimport { logEntriesFactory } from \"./logger/logEntries\";\nimport { assertPlatformSupported } from \"./platform/assertPlatformSupported\";\nimport { lensPersistenceStoreFactory } from \"./lens/LensPersistenceStore\";\nimport { remoteConfigurationFactory } from \"./remote-configuration/remoteConfiguration\";\nimport { lensAssetRepositoryFactory } from \"./lens/assets/LensAssetRepository\";\nimport { legalStateFactory } from \"./legal/legalState\";\nimport { legalPromptFactory } from \"./legal/legalPrompt\";\nimport type { ConfigurationError, PlatformNotSupportedError } from \"./namedErrors\";\nimport { bootstrapError, configurationError } from \"./namedErrors\";\nimport { businessEventsReporterFactory } from \"./metrics/businessEventsReporter\";\nimport { reportGlobalException } from \"./metrics/reporters/reportGlobalException\";\nimport { registerLogEntriesSubscriber } from \"./logger/registerLogEntriesSubscriber\";\nimport { requestStateEventTargetFactory } from \"./handlers/requestStateEmittingHandler\";\nimport { pageVisibilityFactory } from \"./common/pageVisibility\";\nimport { cofHandlerFactory } from \"./remote-configuration/cofHandler\";\nimport { remoteApiServicesFactory } from \"./extensions/RemoteApiServices\";\nimport { lensesClientFactory } from \"./clients/lensesClient\";\nimport { grpcHandlerFactory } from \"./clients/grpcHandler\";\nimport { lensSourcesFactory } from \"./lens/LensSource\";\nimport { cameraKitLensSourceFactory } from \"./lens/cameraKitLensSource\";\nimport { externalMetricsSubjectFactory, metricsClientFactory } from \"./clients/metricsClient\";\nimport { Timer } from \"./metrics/operational/Timer\";\nimport { fetchWatermarkLens } from \"./lens/fetchWatermarkLens\";\nimport { filePickerFactory } from \"./lens-client-interface/filePicker\";\n\nconst logger = getLogger(\"bootstrapCameraKit\");\n\n// The following errors are not wrapped with BootstrapError and bubble up as is.\nconst nonWrappableErrors: [ConfigurationError[\"name\"], PlatformNotSupportedError[\"name\"]] = [\n \"ConfigurationError\",\n \"PlatformNotSupportedError\",\n];\n\n/**\n * Returns true if given error has to be wrapped with BootstrapError.\n */\nfunction shouldWrapError(error: unknown): boolean {\n if (error instanceof Error) {\n return !nonWrappableErrors.some((name) => error.name === name);\n }\n return true;\n}\n\n/**\n * For more advanced use-cases, this DI Container holds services for which a custom implementation may be provided by\n * the application.\n *\n * @category Bootstrapping and Configuration\n */\nexport type PublicContainer = Container<PublicServices>;\n\n/**\n * Bootstrap CameraKit. This will download the WebAssembly code which powers CameraKit's rendering engine, and return\n * an instance of {@link CameraKit}.\n *\n * CameraKit must be provided with some configuration (the application's API token), and there are some additional\n * configurations which are optional.\n *\n * Descriptions of the available configurations can be found in the documentation for\n * {@link CameraKitBootstrapConfiguration}\n *\n * ---\n *\n * There is also a second, more advanced way to modify CameraKit to provide greater flexibility to support less common\n * use cases.\n *\n * This requires some knowledge of CameraKit's dependency injection system, and allows applications to provide their\n * own custom implementations of certain CameraKit components. This functionality will only be needed by applications\n * with very specific, more advanced requirements.\n *\n * @example\n * ```ts\n * // The most common way to bootstrap:\n * const cameraKit = await bootstrapCameraKit({ apiToken: myApiToken })\n *\n * // For special advanced use-cases, it is possible to provide custom implementations for certain CameraKit components.\n * const cameraKit = await bootstrapCameraKit(config, (container) => {\n * return container.provides(myCustomRemoteMediaAssetLoaderFactory)\n * })\n * ```\n *\n * @param configuration Configure CameraKit with e.g. credentials, global resource endpoints, etc.\n * @param provide Optional function that can make modifications to CameraKit's root DI container.\n * @returns A {@link CameraKit} instance, which is the entry point to CameraKit's API.\n *\n * @throws\n * - {@link ConfigurationError} when provided configuration object is invalid\n * - {@link PlatformNotSupportedError} when current platform is not supported by CameraKit\n * - {@link BootstrapError} when a failure occurs while initializing CameraKit and downloading the render engine\n * WebAssembly binary.\n *\n * @category Bootstrapping and Configuration\n */\nexport async function bootstrapCameraKit(\n configuration: CameraKitBootstrapConfiguration,\n provide?: (c: PublicContainer) => PublicContainer\n): Promise<CameraKit> {\n console.info(\n `Camera Kit SDK: ${environment.PACKAGE_VERSION} (${lensCoreWasm.version}/${lensCoreWasm.buildNumber})`\n );\n\n try {\n const bootstrapLatency = new Timer(\"bootstrap_time\");\n\n assert(isSafeString(configuration.apiToken), configurationError(\"Invalid or unsafe apiToken provided.\"));\n\n const configurationFactory = createCameraKitConfigurationFactory(configuration);\n\n // Public container holds services which applications can overwrite with their own implementations.\n const defaultPublicContainer = Container.provides(configurationFactory)\n .provides(filePickerFactory)\n .provides(defaultFetchHandlerFactory)\n .provides(remoteMediaAssetLoaderFactory)\n .provides(lensSourcesFactory)\n .provides(remoteApiServicesFactory)\n .provides(uriHandlersFactory)\n .provides(externalMetricsSubjectFactory);\n\n const publicContainer = provide ? provide(defaultPublicContainer) : defaultPublicContainer;\n\n // Now that the client's provide() function has completed and the configuration override is ready,\n // we create another container to initialize the logger. This ensures that logging is available\n // as we continue bootstrapping. We don't initialize the logger as part of the defaultPublicContainer\n // because we don't want applications to provide their own logger implementations,\n // and we're not interested in errors thrown by their provide() function.\n // Below is the minimum required container to report errors to Blizzard.\n const telemetryContainer = Container.provides(publicContainer)\n .provides(pageVisibilityFactory)\n .provides(cameraKitServiceFetchHandlerFactory)\n .provides(requestStateEventTargetFactory)\n .provides(grpcHandlerFactory)\n .provides(metricsClientFactory)\n .provides(logEntriesFactory)\n .run(registerLogEntriesSubscriber)\n .provides(metricsEventTargetFactory)\n .provides(reportGlobalException)\n .provides(cofHandlerFactory)\n .provides(remoteConfigurationFactory)\n .provides(legalPromptFactory)\n .provides(legalStateFactory)\n // We'll run a PartialContainer containing reporters for globally-scoped metrics. Running this container\n // allows each metric reporter to initialize itself (e.g. by adding event listeners to detect when certain\n // actions occur). This PartialContainer also includes the service which listens to locally-reported metrics\n // and sends them to our backend.\n .run(reportGloballyScopedMetrics)\n .run(businessEventsReporterFactory);\n\n // Run the exception logger so that it can subscribe to log events -- we can't use `Container.run()` because\n // reportGlobalException is also used as a dependency by other Services (and run does not provide Services,\n // it just runs them once).\n telemetryContainer.get(reportGlobalException.token);\n\n // At this point, logger is configured to report to console and Blizzard.\n\n await assertPlatformSupported();\n\n // LensCore is a foundational component which must be created asynchronously.\n // But it's annoying for every consumer of LensCore to have to wait on Promise<LensCore>\n // (which means they become async themselves). So we'll create a DI container which provides Promise<LensCore>,\n // wait for that promise once here, then create a new DI container that just contains LensCore.\n const lensCore = await telemetryContainer.provides(lensCoreFactory).get(lensCoreFactory.token);\n\n const container = telemetryContainer\n .provides(Injectable(lensCoreFactory.token, () => lensCore))\n .provides(lensesClientFactory)\n .provides(cameraKitLensSourceFactory)\n .provides(lensPersistenceStoreFactory)\n .provides(deviceDependentAssetLoaderFactory)\n .provides(staticAssetLoaderFactory)\n .provides(lensAssetRepositoryFactory)\n .provides(lensRepositoryFactory)\n .provides(cameraKitFactory)\n .run(fetchWatermarkLens);\n\n const cameraKit = container.get(cameraKitFactory.token);\n\n bootstrapLatency.measure();\n container.get(metricsClientFactory.token).setOperationalMetrics(bootstrapLatency);\n\n return cameraKit;\n } catch (error) {\n if (shouldWrapError(error)) {\n error = bootstrapError(\"Error occurred during Camera Kit bootstrapping.\", error);\n }\n logger.error(error);\n throw error;\n }\n}\n\n/**\n * Extensions offer a way to provide custom implementations of certain parts of the CameraKit SDK.\n *\n * This enables more advanced use-cases, in which the default behavior of the SDK is substantially altered. For example,\n * replacing the default implementation that loads remote lens assets with a custom implementation that returns\n * different assets based on some business logic within the application.\n *\n * An extension is implemented as a {@link PartialContainer} – a collection of factory functions, each with its own\n * dependencies, which each provide some \"Service\". A Service can be of any type, and the CameraKit SDK defines its\n * own Services, some of which can be overridden by providing a custom implementation of the type via an extension.\n *\n * Here's an example of how extensions might be used:\n * ```ts\n * import { bootstrapCameraKit, createExtension, remoteMediaAssetLoaderFactory } from '@snap/camera-kit'\n *\n * const myCustomRemoteAssetLoader = Injectable(\n * remoteMediaAssetLoaderFactory.token,\n * [remoteMediaAssetLoaderFactory.token] as const,\n * (defaultLoader: AssetLoader): AssetLoader => {\n * return async (asset, lens) => {\n * if (lens?.id === MY_SPECIAL_LENS) {\n * return (await fetch('my/asset.glb')).arrayBuffer()\n * }\n * return defaultLoader(asset, lens)\n * }\n * },\n * )\n *\n * const myExtension = createExtension().provides(myCustomRemoteAssetLoader);\n * const cameraKit = bootstrapCameraKit(config, container => container.provides(myExtension));\n * ```\n *\n * This also enables greater modularity – the person/team creating the extension can do so in their own package, which\n * could be shared by many applications that all require the same functionality.\n *\n * @returns A {@link PartialContainer} which can be used to create a collection of Services, and can later be provided\n * to CameraKit's DI container during {@link bootstrapCameraKit}.\n *\n * @category Bootstrapping and Configuration\n */\nexport function createExtension(): PartialContainer {\n return new PartialContainer({});\n}\n"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { grpc } from "@improbable-eng/grpc-web";
|
|
2
|
-
import type
|
|
2
|
+
import { type Handler, type RequestMetadata } from "../handlers/HandlerChainBuilder";
|
|
3
3
|
import type { CameraKitConfiguration } from "../configuration";
|
|
4
4
|
import type { Result } from "../common/result";
|
|
5
5
|
import type { FetchHandler } from "../handlers/defaultFetchHandler";
|
|
6
|
+
import type { RequestStateEventTarget } from "../handlers/requestStateEmittingHandler";
|
|
6
7
|
export interface GrpcRequest {
|
|
7
8
|
serviceName: string;
|
|
8
9
|
methodName: string;
|
|
@@ -13,6 +14,11 @@ export type GrpcHandler = Handler<GrpcRequest, GrpcResult, RequestMetadata>;
|
|
|
13
14
|
export type GrpcResult = Result<grpc.UnaryOutput<grpc.ProtobufMessage> & {
|
|
14
15
|
status: grpc.Code.OK;
|
|
15
16
|
}, grpc.UnaryOutput<grpc.ProtobufMessage>>;
|
|
17
|
+
export declare const GRPC_CALL_REQUEST_TYPE = "grpc_call";
|
|
18
|
+
export interface GrpcRequestDimensions extends Record<string, string> {
|
|
19
|
+
requestType: typeof GRPC_CALL_REQUEST_TYPE;
|
|
20
|
+
methodName: string;
|
|
21
|
+
}
|
|
16
22
|
/**
|
|
17
23
|
* An Injectable handler that can make requests to the CameraKit backend service via grpc-web. This handler can be
|
|
18
24
|
* passed to {@link createTsProtoClient} to produce a well-typed service client.
|
|
@@ -20,8 +26,8 @@ export type GrpcResult = Result<grpc.UnaryOutput<grpc.ProtobufMessage> & {
|
|
|
20
26
|
* @internal
|
|
21
27
|
*/
|
|
22
28
|
export declare const grpcHandlerFactory: {
|
|
23
|
-
(args_0: CameraKitConfiguration, args_1: FetchHandler): GrpcHandler;
|
|
29
|
+
(args_0: CameraKitConfiguration, args_1: FetchHandler, args_2: RequestStateEventTarget): GrpcHandler;
|
|
24
30
|
token: "grpcHandlerFactory";
|
|
25
|
-
dependencies: readonly ["configuration", "cameraKitServiceFetchHandler"];
|
|
31
|
+
dependencies: readonly ["configuration", "cameraKitServiceFetchHandler", "requestStateEventTarget"];
|
|
26
32
|
};
|
|
27
33
|
//# sourceMappingURL=grpcHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcHandler.d.ts","sourceRoot":"","sources":["../../src/clients/grpcHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"grpcHandler.d.ts","sourceRoot":"","sources":["../../src/clients/grpcHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAuB,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAE1G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAOvF,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7D,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;AAE5E,MAAM,MAAM,UAAU,GAAG,MAAM,CAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;CAAE,EACjE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CACzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACjE,WAAW,EAAE,OAAO,sBAAsB,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACtB;AAYD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;CAoG9B,CAAC"}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { grpc } from "@improbable-eng/grpc-web";
|
|
3
|
+
import { HandlerChainBuilder } from "../handlers/HandlerChainBuilder";
|
|
3
4
|
import { Injectable } from "../dependency-injection/Injectable";
|
|
4
5
|
import { configurationToken } from "../configuration";
|
|
5
6
|
import { Err, Ok } from "../common/result";
|
|
6
7
|
import { cameraKitServiceFetchHandlerFactory } from "../handlers/cameraKitServiceFetchHandlerFactory";
|
|
7
|
-
|
|
8
|
+
import { createRequestStateEmittingHandler, requestStateEventTargetFactory, } from "../handlers/requestStateEmittingHandler";
|
|
9
|
+
import { MetricsDefinition } from "../generated-proto/pb_schema/camera_kit/v3/service";
|
|
10
|
+
export const GRPC_CALL_REQUEST_TYPE = "grpc_call";
|
|
11
|
+
function isMetricsGrpcMethod(method) {
|
|
12
|
+
return (method === MetricsDefinition.methods.setOperationalMetrics.name ||
|
|
13
|
+
method === MetricsDefinition.methods.setBusinessEvents.name);
|
|
14
|
+
}
|
|
15
|
+
export const grpcHandlerFactory = Injectable("grpcHandlerFactory", [configurationToken, cameraKitServiceFetchHandlerFactory.token, requestStateEventTargetFactory.token], (configuration, fetchHandler, requestStateEventTarget) => {
|
|
8
16
|
const host = `https://${configuration.apiHostname}`;
|
|
17
|
+
const fetchHandlerWithMetrics = new HandlerChainBuilder(fetchHandler).map(createRequestStateEmittingHandler(requestStateEventTarget)).handler;
|
|
9
18
|
const transport = (options) => {
|
|
10
19
|
let metadata = undefined;
|
|
11
20
|
const controller = globalThis.AbortController ? new AbortController() : undefined;
|
|
@@ -13,12 +22,20 @@ export const grpcHandlerFactory = Injectable("grpcHandlerFactory", [configuratio
|
|
|
13
22
|
return {
|
|
14
23
|
sendMessage(msgBytes) {
|
|
15
24
|
var _a;
|
|
16
|
-
|
|
25
|
+
const requestInit = {
|
|
17
26
|
headers: (_a = metadata === null || metadata === void 0 ? void 0 : metadata.toHeaders()) !== null && _a !== void 0 ? _a : {},
|
|
18
27
|
method: "POST",
|
|
19
28
|
body: msgBytes,
|
|
20
29
|
signal: controller === null || controller === void 0 ? void 0 : controller.signal,
|
|
21
|
-
}
|
|
30
|
+
};
|
|
31
|
+
const metricsDimensions = {
|
|
32
|
+
requestType: GRPC_CALL_REQUEST_TYPE,
|
|
33
|
+
methodName: options.methodDefinition.methodName,
|
|
34
|
+
};
|
|
35
|
+
const request = isMetricsGrpcMethod(options.methodDefinition.methodName)
|
|
36
|
+
? fetchHandler(options.url, requestInit)
|
|
37
|
+
: fetchHandlerWithMetrics([options.url, metricsDimensions], requestInit);
|
|
38
|
+
request
|
|
22
39
|
.then((response) => {
|
|
23
40
|
options.onHeaders(new grpc.Metadata(response.headers), response.status);
|
|
24
41
|
return response.arrayBuffer();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcHandler.js","sourceRoot":"","sources":["../../src/clients/grpcHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { grpc } from \"@improbable-eng/grpc-web\";\nimport type { Handler, RequestMetadata } from \"../handlers/HandlerChainBuilder\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport type { CameraKitConfiguration } from \"../configuration\";\nimport { configurationToken } from \"../configuration\";\nimport type { Result } from \"../common/result\";\nimport { Err, Ok } from \"../common/result\";\nimport type { FetchHandler } from \"../handlers/defaultFetchHandler\";\nimport { cameraKitServiceFetchHandlerFactory } from \"../handlers/cameraKitServiceFetchHandlerFactory\";\n\nexport interface GrpcRequest {\n serviceName: string;\n methodName: string;\n requestType: grpc.ProtobufMessageClass<grpc.ProtobufMessage>;\n responseType: grpc.ProtobufMessageClass<grpc.ProtobufMessage>;\n}\n\nexport type GrpcHandler = Handler<GrpcRequest, GrpcResult, RequestMetadata>;\n\nexport type GrpcResult = Result<\n grpc.UnaryOutput<grpc.ProtobufMessage> & { status: grpc.Code.OK },\n grpc.UnaryOutput<grpc.ProtobufMessage>\n>;\n\n/**\n * An Injectable handler that can make requests to the CameraKit backend service via grpc-web. This handler can be\n * passed to {@link createTsProtoClient} to produce a well-typed service client.\n *\n * @internal\n */\nexport const grpcHandlerFactory = Injectable(\n \"grpcHandlerFactory\",\n [configurationToken, cameraKitServiceFetchHandlerFactory.token] as const,\n (configuration: CameraKitConfiguration, handler: FetchHandler): GrpcHandler => {\n const host = `https://${configuration.apiHostname}`;\n\n // We define our own Transport so that we can use our custom `fetch` implementation. This is important for two\n // reasons:\n // 1. Our custom fetch includes features like retries that we want to use for these requests.\n // 2. Applications may override this fetch implementation (via our DI system) to support more advanced\n // use-cases.\n const transport: grpc.TransportFactory = (options) => {\n let metadata: grpc.Metadata | undefined = undefined;\n const controller = globalThis.AbortController ? new AbortController() : undefined;\n let cancelled = false;\n return {\n sendMessage(msgBytes) {\n handler(options.url, {\n headers: metadata?.toHeaders() ?? {},\n method: \"POST\",\n body: msgBytes,\n signal: controller?.signal,\n })\n .then((response) => {\n options.onHeaders(new grpc.Metadata(response.headers), response.status);\n return response.arrayBuffer();\n })\n .then((body) => {\n if (cancelled) return;\n options.onChunk(new Uint8Array(body));\n options.onEnd();\n })\n .catch((error) => {\n if (cancelled) return;\n cancelled = true;\n options.onEnd(error);\n });\n },\n\n start(m) {\n metadata = m;\n },\n\n finishSend() {},\n\n cancel() {\n if (cancelled) return;\n cancelled = true;\n controller?.abort();\n },\n };\n };\n\n return async (request) =>\n new Promise((resolve) => {\n grpc.unary(\n {\n methodName: request.methodName,\n service: { serviceName: request.serviceName },\n requestStream: false,\n responseStream: false,\n requestType: request.requestType,\n responseType: request.responseType,\n },\n {\n request: new request.requestType(),\n host,\n onEnd: (response) => {\n if (isUnaryOutputOk(response)) {\n resolve(Ok(response));\n } else {\n resolve(Err(response));\n }\n },\n transport,\n }\n );\n });\n }\n);\n\nfunction isUnaryOutputOk(\n value: grpc.UnaryOutput<grpc.ProtobufMessage>\n): value is grpc.UnaryOutput<grpc.ProtobufMessage> & { status: grpc.Code.OK } {\n return value.status === grpc.Code.OK;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"grpcHandler.js","sourceRoot":"","sources":["../../src/clients/grpcHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { grpc } from \"@improbable-eng/grpc-web\";\nimport { HandlerChainBuilder, type Handler, type RequestMetadata } from \"../handlers/HandlerChainBuilder\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport type { CameraKitConfiguration } from \"../configuration\";\nimport { configurationToken } from \"../configuration\";\nimport type { Result } from \"../common/result\";\nimport { Err, Ok } from \"../common/result\";\nimport type { FetchHandler } from \"../handlers/defaultFetchHandler\";\nimport { cameraKitServiceFetchHandlerFactory } from \"../handlers/cameraKitServiceFetchHandlerFactory\";\nimport type { RequestStateEventTarget } from \"../handlers/requestStateEmittingHandler\";\nimport {\n createRequestStateEmittingHandler,\n requestStateEventTargetFactory,\n} from \"../handlers/requestStateEmittingHandler\";\nimport { MetricsDefinition } from \"../generated-proto/pb_schema/camera_kit/v3/service\";\n\nexport interface GrpcRequest {\n serviceName: string;\n methodName: string;\n requestType: grpc.ProtobufMessageClass<grpc.ProtobufMessage>;\n responseType: grpc.ProtobufMessageClass<grpc.ProtobufMessage>;\n}\n\nexport type GrpcHandler = Handler<GrpcRequest, GrpcResult, RequestMetadata>;\n\nexport type GrpcResult = Result<\n grpc.UnaryOutput<grpc.ProtobufMessage> & { status: grpc.Code.OK },\n grpc.UnaryOutput<grpc.ProtobufMessage>\n>;\n\nexport const GRPC_CALL_REQUEST_TYPE = \"grpc_call\";\n\nexport interface GrpcRequestDimensions extends Record<string, string> {\n requestType: typeof GRPC_CALL_REQUEST_TYPE;\n methodName: string;\n}\n\n/**\n * Returns true if the given string is the name of a metric gRPC method.\n */\nfunction isMetricsGrpcMethod(method: string) {\n return (\n method === MetricsDefinition.methods.setOperationalMetrics.name ||\n method === MetricsDefinition.methods.setBusinessEvents.name\n );\n}\n\n/**\n * An Injectable handler that can make requests to the CameraKit backend service via grpc-web. This handler can be\n * passed to {@link createTsProtoClient} to produce a well-typed service client.\n *\n * @internal\n */\nexport const grpcHandlerFactory = Injectable(\n \"grpcHandlerFactory\",\n [configurationToken, cameraKitServiceFetchHandlerFactory.token, requestStateEventTargetFactory.token] as const,\n (\n configuration: CameraKitConfiguration,\n fetchHandler: FetchHandler,\n requestStateEventTarget: RequestStateEventTarget\n ): GrpcHandler => {\n const host = `https://${configuration.apiHostname}`;\n\n const fetchHandlerWithMetrics = new HandlerChainBuilder(fetchHandler).map(\n // TODO: ideally we don't need it here: https://jira.sc-corp.net/browse/CAMKIT-6350\n createRequestStateEmittingHandler<GrpcRequestDimensions>(requestStateEventTarget)\n ).handler;\n\n // We define our own Transport so that we can use our custom `fetch` implementation. This is important for two\n // reasons:\n // 1. Our custom fetch includes features like retries that we want to use for these requests.\n // 2. Applications may override this fetch implementation (via our DI system) to support more advanced\n // use-cases.\n const transport: grpc.TransportFactory = (options) => {\n let metadata: grpc.Metadata | undefined = undefined;\n const controller = globalThis.AbortController ? new AbortController() : undefined;\n let cancelled = false;\n return {\n sendMessage(msgBytes) {\n const requestInit = {\n headers: metadata?.toHeaders() ?? {},\n method: \"POST\",\n body: msgBytes,\n signal: controller?.signal,\n };\n const metricsDimensions: GrpcRequestDimensions = {\n requestType: GRPC_CALL_REQUEST_TYPE,\n methodName: options.methodDefinition.methodName,\n };\n // Note: Currently, we do not report network metrics for the metrics requests\n // themselves because that triggers an infinite loop of metrics reporting. Ideally,\n // we still want to report them, but attach them to the next metrics request without\n // triggering it.\n const request = isMetricsGrpcMethod(options.methodDefinition.methodName)\n ? fetchHandler(options.url, requestInit)\n : fetchHandlerWithMetrics([options.url, metricsDimensions], requestInit);\n request\n .then((response) => {\n options.onHeaders(new grpc.Metadata(response.headers), response.status);\n return response.arrayBuffer();\n })\n .then((body) => {\n if (cancelled) return;\n options.onChunk(new Uint8Array(body));\n options.onEnd();\n })\n .catch((error) => {\n if (cancelled) return;\n cancelled = true;\n options.onEnd(error);\n });\n },\n\n start(m) {\n metadata = m;\n },\n\n finishSend() {},\n\n cancel() {\n if (cancelled) return;\n cancelled = true;\n controller?.abort();\n },\n };\n };\n\n return async (request) =>\n new Promise((resolve) => {\n grpc.unary(\n {\n methodName: request.methodName,\n service: { serviceName: request.serviceName },\n requestStream: false,\n responseStream: false,\n requestType: request.requestType,\n responseType: request.responseType,\n },\n {\n request: new request.requestType(),\n host,\n onEnd: (response) => {\n if (isUnaryOutputOk(response)) {\n resolve(Ok(response));\n } else {\n resolve(Err(response));\n }\n },\n transport,\n }\n );\n });\n }\n);\n\nfunction isUnaryOutputOk(\n value: grpc.UnaryOutput<grpc.ProtobufMessage>\n): value is grpc.UnaryOutput<grpc.ProtobufMessage> & { status: grpc.Code.OK } {\n return value.status === grpc.Code.OK;\n}\n"]}
|
|
@@ -24,12 +24,14 @@ import type { lensesClientFactory } from "../clients/lensesClient";
|
|
|
24
24
|
import type { pageVisibilityFactory } from "../common/pageVisibility";
|
|
25
25
|
import type { remoteApiServicesFactory } from "../extensions/RemoteApiServices";
|
|
26
26
|
import type { grpcHandlerFactory } from "../clients/grpcHandler";
|
|
27
|
+
import type { filePickerFactory } from "../lens-client-interface/filePicker";
|
|
27
28
|
import type { ServicesFromInjectables } from "./types";
|
|
28
29
|
/**
|
|
29
30
|
* All services available to be customized by client app.
|
|
30
31
|
*/
|
|
31
32
|
export type PublicServices = ServicesFromInjectables<[
|
|
32
33
|
ReturnType<typeof createCameraKitConfigurationFactory>,
|
|
34
|
+
typeof filePickerFactory,
|
|
33
35
|
typeof defaultFetchHandlerFactory,
|
|
34
36
|
typeof remoteMediaAssetLoaderFactory,
|
|
35
37
|
typeof lensSourcesFactory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootServices.d.ts","sourceRoot":"","sources":["../../src/dependency-injection/RootServices.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RootServices.d.ts","sourceRoot":"","sources":["../../src/dependency-injection/RootServices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootServices.js","sourceRoot":"","sources":["../../src/dependency-injection/RootServices.ts"],"names":[],"mappings":"","sourcesContent":["import type { lensRepositoryFactory } from \"../lens/LensRepository\";\nimport type { lensCoreFactory } from \"../lens-core-module/loader/lensCoreFactory\";\nimport type { remoteMediaAssetLoaderFactory } from \"../lens/assets/remoteMediaAssetLoaderFactory\";\nimport type { deviceDependentAssetLoaderFactory } from \"../lens/assets/deviceDependentAssetLoader\";\nimport type { staticAssetLoaderFactory } from \"../lens/assets/staticAssetLoader\";\nimport type { defaultFetchHandlerFactory } from \"../handlers/defaultFetchHandler\";\nimport type { cameraKitServiceFetchHandlerFactory } from \"../handlers/cameraKitServiceFetchHandlerFactory\";\nimport type { createCameraKitConfigurationFactory } from \"../configuration\";\nimport type { externalMetricsSubjectFactory, metricsClientFactory } from \"../clients/metricsClient\";\nimport type { LensCore } from \"../lens-core-module/lensCore\";\nimport type { metricsEventTargetFactory } from \"../metrics/metricsEventTarget\";\nimport type { lensSourcesFactory } from \"../lens/LensSource\";\nimport type { uriHandlersFactory } from \"../extensions/UriHandlers\";\nimport type { lensPersistenceStoreFactory } from \"../lens/LensPersistenceStore\";\nimport type { cofHandlerFactory } from \"../remote-configuration/cofHandler\";\nimport type { remoteConfigurationFactory } from \"../remote-configuration/remoteConfiguration\";\nimport type { lensAssetRepositoryFactory } from \"../lens/assets/LensAssetRepository\";\nimport type { legalStateFactory } from \"../legal/legalState\";\nimport type { legalPromptFactory } from \"../legal/legalPrompt\";\nimport type { logEntriesFactory } from \"../logger/logEntries\";\nimport type { reportGlobalException } from \"../metrics/reporters/reportGlobalException\";\nimport type { requestStateEventTargetFactory } from \"../handlers/requestStateEmittingHandler\";\nimport type { lensesClientFactory } from \"../clients/lensesClient\";\nimport type { pageVisibilityFactory } from \"../common/pageVisibility\";\nimport type { remoteApiServicesFactory } from \"../extensions/RemoteApiServices\";\nimport type { grpcHandlerFactory } from \"../clients/grpcHandler\";\nimport type { ServicesFromInjectables } from \"./types\";\n\n/**\n * All services available to be customized by client app.\n */\nexport type PublicServices = ServicesFromInjectables<\n [\n ReturnType<typeof createCameraKitConfigurationFactory>,\n typeof defaultFetchHandlerFactory,\n typeof remoteMediaAssetLoaderFactory,\n typeof lensSourcesFactory,\n typeof remoteApiServicesFactory,\n typeof uriHandlersFactory,\n typeof externalMetricsSubjectFactory\n ]\n>;\n\n/**\n * Define all the Services contained in CameraKit's root dependency injection container.\n *\n * Note: we do end up defining this list of Services twice (once here to create the type, once when we actually\n * create the Container inside the `bootstrapCameraKit` function). We could avoid doing this and just infer the\n * RootContainer type from the constructed container – but since we can only do that *inside* `bootstrapCameraKit`, it\n * makes it more awkward to provide a type for the `provide` user-supplied function (or use the type elsewhere, like in\n * CameraKitSession).\n *\n * There may be a way to eliminate this extra boilerplate, but for now it's required in order to present a cleaner\n * `bootstrapCameraKit` API to applications.\n */\nexport type RootServices = {\n // bootstrapCameraKit replaces the lensCoreFactory token's value with the resolved LensCore (rather than the\n // Promise of the LensCore), so we need to do the same re-mapping here.\n [lensCoreFactory.token]: LensCore;\n} & PublicServices &\n ServicesFromInjectables<\n [\n typeof pageVisibilityFactory,\n typeof metricsEventTargetFactory,\n typeof requestStateEventTargetFactory,\n typeof cameraKitServiceFetchHandlerFactory,\n typeof grpcHandlerFactory,\n typeof lensesClientFactory,\n typeof cofHandlerFactory,\n typeof remoteConfigurationFactory,\n typeof lensRepositoryFactory,\n typeof lensPersistenceStoreFactory,\n typeof metricsClientFactory,\n typeof lensAssetRepositoryFactory,\n typeof deviceDependentAssetLoaderFactory,\n typeof staticAssetLoaderFactory,\n typeof legalStateFactory,\n typeof legalPromptFactory,\n typeof logEntriesFactory,\n typeof reportGlobalException\n ]\n >;\n"]}
|
|
1
|
+
{"version":3,"file":"RootServices.js","sourceRoot":"","sources":["../../src/dependency-injection/RootServices.ts"],"names":[],"mappings":"","sourcesContent":["import type { lensRepositoryFactory } from \"../lens/LensRepository\";\nimport type { lensCoreFactory } from \"../lens-core-module/loader/lensCoreFactory\";\nimport type { remoteMediaAssetLoaderFactory } from \"../lens/assets/remoteMediaAssetLoaderFactory\";\nimport type { deviceDependentAssetLoaderFactory } from \"../lens/assets/deviceDependentAssetLoader\";\nimport type { staticAssetLoaderFactory } from \"../lens/assets/staticAssetLoader\";\nimport type { defaultFetchHandlerFactory } from \"../handlers/defaultFetchHandler\";\nimport type { cameraKitServiceFetchHandlerFactory } from \"../handlers/cameraKitServiceFetchHandlerFactory\";\nimport type { createCameraKitConfigurationFactory } from \"../configuration\";\nimport type { externalMetricsSubjectFactory, metricsClientFactory } from \"../clients/metricsClient\";\nimport type { LensCore } from \"../lens-core-module/lensCore\";\nimport type { metricsEventTargetFactory } from \"../metrics/metricsEventTarget\";\nimport type { lensSourcesFactory } from \"../lens/LensSource\";\nimport type { uriHandlersFactory } from \"../extensions/UriHandlers\";\nimport type { lensPersistenceStoreFactory } from \"../lens/LensPersistenceStore\";\nimport type { cofHandlerFactory } from \"../remote-configuration/cofHandler\";\nimport type { remoteConfigurationFactory } from \"../remote-configuration/remoteConfiguration\";\nimport type { lensAssetRepositoryFactory } from \"../lens/assets/LensAssetRepository\";\nimport type { legalStateFactory } from \"../legal/legalState\";\nimport type { legalPromptFactory } from \"../legal/legalPrompt\";\nimport type { logEntriesFactory } from \"../logger/logEntries\";\nimport type { reportGlobalException } from \"../metrics/reporters/reportGlobalException\";\nimport type { requestStateEventTargetFactory } from \"../handlers/requestStateEmittingHandler\";\nimport type { lensesClientFactory } from \"../clients/lensesClient\";\nimport type { pageVisibilityFactory } from \"../common/pageVisibility\";\nimport type { remoteApiServicesFactory } from \"../extensions/RemoteApiServices\";\nimport type { grpcHandlerFactory } from \"../clients/grpcHandler\";\nimport type { filePickerFactory } from \"../lens-client-interface/filePicker\";\nimport type { ServicesFromInjectables } from \"./types\";\n\n/**\n * All services available to be customized by client app.\n */\nexport type PublicServices = ServicesFromInjectables<\n [\n ReturnType<typeof createCameraKitConfigurationFactory>,\n typeof filePickerFactory,\n typeof defaultFetchHandlerFactory,\n typeof remoteMediaAssetLoaderFactory,\n typeof lensSourcesFactory,\n typeof remoteApiServicesFactory,\n typeof uriHandlersFactory,\n typeof externalMetricsSubjectFactory\n ]\n>;\n\n/**\n * Define all the Services contained in CameraKit's root dependency injection container.\n *\n * Note: we do end up defining this list of Services twice (once here to create the type, once when we actually\n * create the Container inside the `bootstrapCameraKit` function). We could avoid doing this and just infer the\n * RootContainer type from the constructed container – but since we can only do that *inside* `bootstrapCameraKit`, it\n * makes it more awkward to provide a type for the `provide` user-supplied function (or use the type elsewhere, like in\n * CameraKitSession).\n *\n * There may be a way to eliminate this extra boilerplate, but for now it's required in order to present a cleaner\n * `bootstrapCameraKit` API to applications.\n */\nexport type RootServices = {\n // bootstrapCameraKit replaces the lensCoreFactory token's value with the resolved LensCore (rather than the\n // Promise of the LensCore), so we need to do the same re-mapping here.\n [lensCoreFactory.token]: LensCore;\n} & PublicServices &\n ServicesFromInjectables<\n [\n typeof pageVisibilityFactory,\n typeof metricsEventTargetFactory,\n typeof requestStateEventTargetFactory,\n typeof cameraKitServiceFetchHandlerFactory,\n typeof grpcHandlerFactory,\n typeof lensesClientFactory,\n typeof cofHandlerFactory,\n typeof remoteConfigurationFactory,\n typeof lensRepositoryFactory,\n typeof lensPersistenceStoreFactory,\n typeof metricsClientFactory,\n typeof lensAssetRepositoryFactory,\n typeof deviceDependentAssetLoaderFactory,\n typeof staticAssetLoaderFactory,\n typeof legalStateFactory,\n typeof legalPromptFactory,\n typeof logEntriesFactory,\n typeof reportGlobalException\n ]\n >;\n"]}
|
package/dist/environment.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default { PACKAGE_VERSION: "0.
|
|
1
|
+
export default { PACKAGE_VERSION: "0.21.0" };
|
|
2
2
|
//# sourceMappingURL=environment.js.map
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["export default { PACKAGE_VERSION: \"0.
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["export default { PACKAGE_VERSION: \"0.21.0\" };\n"]}
|