@snap/camera-kit 0.15.0 → 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/README.md +3 -3
  2. package/docs/html/assets/main.js +4 -3
  3. package/docs/html/assets/navigation.js +1 -0
  4. package/docs/html/assets/search.js +1 -1
  5. package/docs/html/assets/style.css +72 -25
  6. package/docs/html/classes/CameraKit.html +11 -196
  7. package/docs/html/classes/CameraKitSession.html +43 -366
  8. package/docs/html/classes/CameraKitSource.html +14 -223
  9. package/docs/html/classes/LensPerformanceMeasurement.html +9 -184
  10. package/docs/html/classes/LensPerformanceMetrics.html +7 -148
  11. package/docs/html/classes/LensRepository.html +17 -234
  12. package/docs/html/classes/Transform2D.html +7 -176
  13. package/docs/html/classes/TypedCustomEvent.html +4 -178
  14. package/docs/html/classes/TypedEventTarget.html +4 -209
  15. package/docs/html/enums/Lens_CameraFacing.html +5 -0
  16. package/docs/html/enums/UserData_Zodiac.html +15 -0
  17. package/docs/html/functions/ConcatInjectable.html +10 -193
  18. package/docs/html/functions/Injectable.html +9 -192
  19. package/docs/html/functions/bootstrapCameraKit.html +6 -147
  20. package/docs/html/functions/createExtension.html +6 -123
  21. package/docs/html/functions/createImageSource.html +4 -130
  22. package/docs/html/functions/createMediaStreamSource.html +4 -130
  23. package/docs/html/functions/createVideoSource.html +4 -130
  24. package/docs/html/functions/estimateLensPerformance.html +3 -120
  25. package/docs/html/functions/lensSourcesFactory.html +6 -127
  26. package/docs/html/functions/remoteApiServicesFactory.html +3 -121
  27. package/docs/html/hierarchy.html +1 -0
  28. package/docs/html/index.html +8 -165
  29. package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +11 -192
  30. package/docs/html/interfaces/CameraKitDeviceOptions.html +11 -0
  31. package/docs/html/interfaces/CameraKitSourceInfo.html +9 -0
  32. package/docs/html/interfaces/CameraKitSourceSubscriber.html +3 -194
  33. package/docs/html/interfaces/ComputedFrameMetrics.html +2 -150
  34. package/docs/html/interfaces/CreateSessionOptions.html +5 -148
  35. package/docs/html/interfaces/EstimatedLensPerformance.html +3 -146
  36. package/docs/html/interfaces/FunctionSourceOptions.html +7 -0
  37. package/docs/html/interfaces/Lens.html +12 -205
  38. package/docs/html/interfaces/LensCreator.html +3 -0
  39. package/docs/html/interfaces/LensLaunchData.html +3 -179
  40. package/docs/html/interfaces/LensSource.html +3 -172
  41. package/docs/html/interfaces/LoadAssetRequest.html +13 -0
  42. package/docs/html/interfaces/MediaStreamSourceOptions.html +16 -138
  43. package/docs/html/interfaces/Preview.html +4 -141
  44. package/docs/html/interfaces/RemoteApiRequest.html +7 -162
  45. package/docs/html/interfaces/RemoteApiResponse.html +6 -155
  46. package/docs/html/interfaces/RemoteApiService.html +9 -171
  47. package/docs/html/interfaces/Snapcode.html +5 -148
  48. package/docs/html/interfaces/UriCancelRequest.html +2 -138
  49. package/docs/html/interfaces/UriRequest.html +2 -154
  50. package/docs/html/interfaces/UriResponse.html +2 -150
  51. package/docs/html/interfaces/VideoSourceOptions.html +15 -134
  52. package/docs/html/modules.html +57 -175
  53. package/docs/html/types/AssetLoader.html +5 -132
  54. package/docs/html/types/AssetResponse.html +1 -0
  55. package/docs/html/types/AssetTiming.html +2 -115
  56. package/docs/html/types/BenchmarkError.html +1 -112
  57. package/docs/html/types/BootstrapError.html +2 -115
  58. package/docs/html/types/CacheKeyNotFoundError.html +1 -112
  59. package/docs/html/types/CameraKitSessionEventListener.html +2 -115
  60. package/docs/html/types/CameraKitSessionEvents.html +2 -122
  61. package/docs/html/types/CameraKitSourceError.html +1 -112
  62. package/docs/html/types/ConfigurationError.html +2 -115
  63. package/docs/html/types/FetchHandler.html +1 -0
  64. package/docs/html/types/Keyboard.html +14 -194
  65. package/docs/html/types/KeyboardEvents.html +2 -124
  66. package/docs/html/types/LegalError.html +1 -112
  67. package/docs/html/types/LensAbortError.html +2 -115
  68. package/docs/html/types/LensAssetError.html +2 -115
  69. package/docs/html/types/LensContentValidationError.html +1 -112
  70. package/docs/html/types/LensError.html +1 -112
  71. package/docs/html/types/LensExecutionError.html +2 -115
  72. package/docs/html/types/LensImagePickerError.html +2 -115
  73. package/docs/html/types/LensLaunchParams.html +2 -0
  74. package/docs/html/types/LensMetricsEvents.html +2 -115
  75. package/docs/html/types/LensPerformanceCluster.html +1 -113
  76. package/docs/html/types/LensView.html +2 -115
  77. package/docs/html/types/LensWait.html +2 -115
  78. package/docs/html/types/Matrix.html +3 -0
  79. package/docs/html/types/PersistentStoreError.html +2 -115
  80. package/docs/html/types/PlatformNotSupportedError.html +2 -115
  81. package/docs/html/types/PublicContainer.html +2 -115
  82. package/docs/html/types/PublicServices.html +2 -0
  83. package/docs/html/types/RemoteApiCancelRequestHandler.html +2 -0
  84. package/docs/html/types/RemoteApiRequestHandler.html +2 -139
  85. package/docs/html/types/RemoteApiServices.html +1 -112
  86. package/docs/html/types/RemoteApiStatus.html +2 -115
  87. package/docs/html/types/RenderTarget.html +2 -115
  88. package/docs/html/types/Uri.html +1 -112
  89. package/docs/html/types/WebGLError.html +1 -112
  90. package/docs/html/variables/extensionRequestContext.html +2 -115
  91. package/docs/md/README.md +3 -3
  92. package/docs/md/classes/CameraKit.md +15 -15
  93. package/docs/md/classes/CameraKitSession.md +38 -38
  94. package/docs/md/classes/CameraKitSource.md +22 -30
  95. package/docs/md/classes/LensPerformanceMeasurement.md +10 -6
  96. package/docs/md/classes/LensPerformanceMetrics.md +2 -2
  97. package/docs/md/classes/LensRepository.md +18 -18
  98. package/docs/md/classes/Transform2D.md +7 -3
  99. package/docs/md/classes/TypedCustomEvent.md +10 -6
  100. package/docs/md/classes/TypedEventTarget.md +12 -8
  101. package/docs/md/enums/Lens_CameraFacing.md +36 -0
  102. package/docs/md/enums/UserData_Zodiac.md +106 -0
  103. package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +2 -2
  104. package/docs/md/interfaces/CameraKitDeviceOptions.md +41 -0
  105. package/docs/md/interfaces/CameraKitSourceInfo.md +43 -0
  106. package/docs/md/interfaces/CameraKitSourceSubscriber.md +7 -7
  107. package/docs/md/interfaces/ComputedFrameMetrics.md +1 -1
  108. package/docs/md/interfaces/CreateSessionOptions.md +1 -1
  109. package/docs/md/interfaces/EstimatedLensPerformance.md +1 -1
  110. package/docs/md/interfaces/FunctionSourceOptions.md +22 -0
  111. package/docs/md/interfaces/Lens.md +4 -4
  112. package/docs/md/interfaces/LensCreator.md +17 -0
  113. package/docs/md/interfaces/LensLaunchData.md +6 -6
  114. package/docs/md/interfaces/LensSource.md +5 -5
  115. package/docs/md/interfaces/LoadAssetRequest.md +49 -0
  116. package/docs/md/interfaces/MediaStreamSourceOptions.md +46 -1
  117. package/docs/md/interfaces/Preview.md +1 -1
  118. package/docs/md/interfaces/RemoteApiRequest.md +2 -2
  119. package/docs/md/interfaces/RemoteApiResponse.md +2 -2
  120. package/docs/md/interfaces/RemoteApiService.md +1 -1
  121. package/docs/md/interfaces/Snapcode.md +1 -1
  122. package/docs/md/interfaces/UriCancelRequest.md +2 -2
  123. package/docs/md/interfaces/UriRequest.md +3 -3
  124. package/docs/md/interfaces/UriResponse.md +2 -2
  125. package/docs/md/interfaces/VideoSourceOptions.md +44 -1
  126. package/docs/md/modules.md +183 -201
  127. package/lib/CameraKit.d.ts +108 -108
  128. package/lib/CameraKit.js +1 -1
  129. package/lib/CameraKit.js.map +1 -1
  130. package/lib/bootstrapCameraKit.d.ts +4 -4
  131. package/lib/bootstrapCameraKit.js +18 -19
  132. package/lib/bootstrapCameraKit.js.map +1 -1
  133. package/lib/clients/createTsProtoClient.d.ts +5 -12
  134. package/lib/clients/createTsProtoClient.js +1 -2
  135. package/lib/clients/createTsProtoClient.js.map +1 -1
  136. package/lib/clients/grpcHandler.d.ts +7 -4
  137. package/lib/clients/grpcHandler.js +8 -5
  138. package/lib/clients/grpcHandler.js.map +1 -1
  139. package/lib/clients/lensesClient.d.ts +3 -3
  140. package/lib/clients/lensesClient.js +2 -2
  141. package/lib/clients/lensesClient.js.map +1 -1
  142. package/lib/clients/metricsClient.d.ts +26 -0
  143. package/lib/clients/metricsClient.js +120 -0
  144. package/lib/clients/metricsClient.js.map +1 -0
  145. package/lib/configuration.js +1 -1
  146. package/lib/configuration.js.map +1 -1
  147. package/lib/dependency-injection/Container.d.ts +1 -1
  148. package/lib/dependency-injection/Container.js +1 -1
  149. package/lib/dependency-injection/Container.js.map +1 -1
  150. package/lib/dependency-injection/Injectable.d.ts +6 -6
  151. package/lib/dependency-injection/Injectable.js.map +1 -1
  152. package/lib/dependency-injection/RootServices.d.ts +7 -8
  153. package/lib/dependency-injection/RootServices.js.map +1 -1
  154. package/lib/environment.d.ts +4 -0
  155. package/lib/environment.js +2 -0
  156. package/lib/environment.js.map +1 -0
  157. package/lib/extensions/RemoteApiServices.d.ts +2 -2
  158. package/lib/extensions/RemoteApiServices.js +11 -6
  159. package/lib/extensions/RemoteApiServices.js.map +1 -1
  160. package/lib/extensions/uriHandlersRegister.d.ts +4 -4
  161. package/lib/extensions/uriHandlersRegister.js +6 -6
  162. package/lib/extensions/uriHandlersRegister.js.map +1 -1
  163. package/lib/generated-proto/blizzard/cameraKitEvents.d.ts +4330 -678
  164. package/lib/generated-proto/blizzard/cameraKitEvents.js +515 -72
  165. package/lib/generated-proto/blizzard/cameraKitEvents.js.map +1 -1
  166. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +3 -11
  167. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js +6 -156
  168. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +1 -1
  169. package/lib/generated-proto/pb_schema/camera_kit/v3/export.d.ts +19 -19
  170. package/lib/generated-proto/pb_schema/camera_kit/v3/export.js +13 -27
  171. package/lib/generated-proto/pb_schema/camera_kit/v3/export.js.map +1 -1
  172. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +0 -6
  173. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js +2 -83
  174. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js.map +1 -1
  175. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +0 -22
  176. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js +0 -263
  177. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js.map +1 -1
  178. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +30 -34
  179. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js +7 -73
  180. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js.map +1 -1
  181. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +0 -6
  182. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.js +0 -110
  183. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.js.map +1 -1
  184. package/lib/generated-proto/pb_schema/camera_kit/v3/service.d.ts +48 -114
  185. package/lib/generated-proto/pb_schema/camera_kit/v3/service.js +0 -225
  186. package/lib/generated-proto/pb_schema/camera_kit/v3/service.js.map +1 -1
  187. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +6 -6
  188. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.js +5 -19
  189. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.js.map +1 -1
  190. package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +1422 -1422
  191. package/lib/generated-proto/pb_schema/cdp/cof/config_request.d.ts +12 -12
  192. package/lib/generated-proto/pb_schema/cdp/cof/config_request.js +10 -24
  193. package/lib/generated-proto/pb_schema/cdp/cof/config_request.js.map +1 -1
  194. package/lib/generated-proto/pb_schema/cdp/cof/config_response.d.ts +207 -207
  195. package/lib/generated-proto/pb_schema/cdp/cof/config_result.d.ts +530 -530
  196. package/lib/generated-proto/pb_schema/cdp/cof/config_result.js +10 -24
  197. package/lib/generated-proto/pb_schema/cdp/cof/config_result.js.map +1 -1
  198. package/lib/generated-proto/pb_schema/common/value.d.ts +6 -6
  199. package/lib/generated-proto/pb_schema/common/value.js +4 -18
  200. package/lib/generated-proto/pb_schema/common/value.js.map +1 -1
  201. package/lib/generated-proto/pb_schema/google/api/http.d.ts +0 -6
  202. package/lib/generated-proto/pb_schema/google/api/http.js +0 -77
  203. package/lib/generated-proto/pb_schema/google/api/http.js.map +1 -1
  204. package/lib/generated-proto/pb_schema/google/protobuf/any.d.ts +0 -2
  205. package/lib/generated-proto/pb_schema/google/protobuf/any.js +0 -44
  206. package/lib/generated-proto/pb_schema/google/protobuf/any.js.map +1 -1
  207. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +4830 -4896
  208. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js +10 -997
  209. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js.map +1 -1
  210. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +3 -5
  211. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.js +6 -35
  212. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.js.map +1 -1
  213. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +6 -6
  214. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.js +10 -24
  215. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.js.map +1 -1
  216. package/lib/generated-proto/pb_schema/lenses/launchdata.d.ts +9 -9
  217. package/lib/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts +11 -11
  218. package/lib/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js +6 -20
  219. package/lib/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js.map +1 -1
  220. package/lib/generated-proto/pb_schema/lenses/snappable.d.ts +42 -42
  221. package/lib/generated-proto/pb_schema/lenses/snappable.js +14 -28
  222. package/lib/generated-proto/pb_schema/lenses/snappable.js.map +1 -1
  223. package/lib/generated-proto/pb_schema/lenses/user_data.d.ts +8 -8
  224. package/lib/generated-proto/pb_schema/lenses/user_data.js +8 -22
  225. package/lib/generated-proto/pb_schema/lenses/user_data.js.map +1 -1
  226. package/lib/handlers/defaultFetchHandler.d.ts +1 -1
  227. package/lib/handlers/defaultFetchHandler.js.map +1 -1
  228. package/lib/handlers/requestStateEmittingHandler.d.ts +5 -6
  229. package/lib/handlers/requestStateEmittingHandler.js +6 -8
  230. package/lib/handlers/requestStateEmittingHandler.js.map +1 -1
  231. package/lib/handlers/responseCachingHandler.d.ts +9 -10
  232. package/lib/handlers/responseCachingHandler.js +9 -3
  233. package/lib/handlers/responseCachingHandler.js.map +1 -1
  234. package/lib/handlers/utils.d.ts +12 -0
  235. package/lib/handlers/utils.js +19 -0
  236. package/lib/handlers/utils.js.map +1 -0
  237. package/lib/index.d.ts +21 -15
  238. package/lib/index.js +17 -12
  239. package/lib/index.js.map +1 -1
  240. package/lib/lens/Lens.d.ts +12 -2
  241. package/lib/lens/Lens.js +5 -0
  242. package/lib/lens/Lens.js.map +1 -1
  243. package/lib/lens/LensLaunchData.d.ts +6 -3
  244. package/lib/lens/LensLaunchData.js +2 -0
  245. package/lib/lens/LensLaunchData.js.map +1 -1
  246. package/lib/lens/LensPersistenceStore.d.ts +1 -1
  247. package/lib/lens/LensPersistenceStore.js +1 -1
  248. package/lib/lens/LensPersistenceStore.js.map +1 -1
  249. package/lib/lens/LensRepository.d.ts +5 -1
  250. package/lib/lens/LensRepository.js +9 -5
  251. package/lib/lens/LensRepository.js.map +1 -1
  252. package/lib/lens/LensSource.d.ts +2 -2
  253. package/lib/lens/LensSource.js +2 -2
  254. package/lib/lens/LensSource.js.map +1 -1
  255. package/lib/lens/assets/LensAssetRepository.d.ts +35 -4
  256. package/lib/lens/assets/LensAssetRepository.js +9 -9
  257. package/lib/lens/assets/LensAssetRepository.js.map +1 -1
  258. package/lib/lens/assets/LensAssetsProvider.d.ts +1 -1
  259. package/lib/lens/assets/LensAssetsProvider.js +9 -4
  260. package/lib/lens/assets/LensAssetsProvider.js.map +1 -1
  261. package/lib/lens/assets/deviceDependentAssetLoader.js +3 -2
  262. package/lib/lens/assets/deviceDependentAssetLoader.js.map +1 -1
  263. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js +4 -3
  264. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js.map +1 -1
  265. package/lib/lens/assets/staticAssetLoader.js +5 -4
  266. package/lib/lens/assets/staticAssetLoader.js.map +1 -1
  267. package/lib/lens/cameraKitLensSource.js.map +1 -1
  268. package/lib/lens-client-interface/imagePicker.d.ts +2 -1
  269. package/lib/lens-client-interface/imagePicker.js.map +1 -1
  270. package/lib/lens-client-interface/lensClientInterface.d.ts +1 -1
  271. package/lib/lens-client-interface/lensClientInterface.js +1 -1
  272. package/lib/lens-client-interface/lensClientInterface.js.map +1 -1
  273. package/lib/lens-core-module/lensCore.d.ts +2 -1
  274. package/lib/lens-core-module/lensCore.js.map +1 -1
  275. package/lib/lens-core-module/loader/bootstrapURLs.d.ts +12 -0
  276. package/lib/lens-core-module/loader/bootstrapURLs.js +48 -0
  277. package/lib/lens-core-module/loader/bootstrapURLs.js.map +1 -0
  278. package/lib/lens-core-module/loader/lensCoreFactory.d.ts +0 -12
  279. package/lib/lens-core-module/loader/lensCoreFactory.js +4 -49
  280. package/lib/lens-core-module/loader/lensCoreFactory.js.map +1 -1
  281. package/lib/lensCoreWasmVersions.d.ts +6 -0
  282. package/lib/lensCoreWasmVersions.js +6 -0
  283. package/lib/lensCoreWasmVersions.js.map +1 -0
  284. package/lib/media-sources/CameraKitSource.d.ts +39 -17
  285. package/lib/media-sources/CameraKitSource.js +8 -2
  286. package/lib/media-sources/CameraKitSource.js.map +1 -1
  287. package/lib/media-sources/FunctionSource.d.ts +15 -4
  288. package/lib/media-sources/FunctionSource.js +1 -2
  289. package/lib/media-sources/FunctionSource.js.map +1 -1
  290. package/lib/media-sources/ImageSource.d.ts +3 -5
  291. package/lib/media-sources/ImageSource.js +1 -3
  292. package/lib/media-sources/ImageSource.js.map +1 -1
  293. package/lib/media-sources/MediaStreamSource.d.ts +17 -33
  294. package/lib/media-sources/MediaStreamSource.js +6 -41
  295. package/lib/media-sources/MediaStreamSource.js.map +1 -1
  296. package/lib/media-sources/VideoSource.d.ts +14 -10
  297. package/lib/media-sources/VideoSource.js +5 -11
  298. package/lib/media-sources/VideoSource.js.map +1 -1
  299. package/lib/metrics/businessEventsReporter.d.ts +3 -4
  300. package/lib/metrics/businessEventsReporter.js +11 -55
  301. package/lib/metrics/businessEventsReporter.js.map +1 -1
  302. package/lib/metrics/operational/Count.d.ts +2 -0
  303. package/lib/metrics/operational/Count.js +6 -1
  304. package/lib/metrics/operational/Count.js.map +1 -1
  305. package/lib/metrics/operational/Histogram.d.ts +1 -1
  306. package/lib/metrics/operational/Histogram.js +7 -3
  307. package/lib/metrics/operational/Histogram.js.map +1 -1
  308. package/lib/metrics/operational/Metric.js +2 -0
  309. package/lib/metrics/operational/Metric.js.map +1 -1
  310. package/lib/metrics/operational/Timer.d.ts +9 -6
  311. package/lib/metrics/operational/Timer.js +12 -26
  312. package/lib/metrics/operational/Timer.js.map +1 -1
  313. package/lib/metrics/reporters/reportBenchmarks.d.ts +3 -3
  314. package/lib/metrics/reporters/reportBenchmarks.js +6 -5
  315. package/lib/metrics/reporters/reportBenchmarks.js.map +1 -1
  316. package/lib/metrics/reporters/reportGlobalException.d.ts +4 -4
  317. package/lib/metrics/reporters/reportGlobalException.js +13 -11
  318. package/lib/metrics/reporters/reportGlobalException.js.map +1 -1
  319. package/lib/metrics/reporters/reportHttpMetrics.d.ts +3 -3
  320. package/lib/metrics/reporters/reportHttpMetrics.js +19 -16
  321. package/lib/metrics/reporters/reportHttpMetrics.js.map +1 -1
  322. package/lib/metrics/reporters/reportLegalState.d.ts +3 -3
  323. package/lib/metrics/reporters/reportLegalState.js +7 -9
  324. package/lib/metrics/reporters/reportLegalState.js.map +1 -1
  325. package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +3 -3
  326. package/lib/metrics/reporters/reportLensAndAssetDownload.js +12 -12
  327. package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +1 -1
  328. package/lib/metrics/reporters/reportLensView.d.ts +3 -3
  329. package/lib/metrics/reporters/reportLensView.js +6 -6
  330. package/lib/metrics/reporters/reportLensView.js.map +1 -1
  331. package/lib/metrics/reporters/reportLensWait.d.ts +2 -3
  332. package/lib/metrics/reporters/reportLensWait.js +1 -3
  333. package/lib/metrics/reporters/reportLensWait.js.map +1 -1
  334. package/lib/metrics/reporters/reportPlatformCapabilities.d.ts +3 -3
  335. package/lib/metrics/reporters/reportPlatformCapabilities.js +6 -5
  336. package/lib/metrics/reporters/reportPlatformCapabilities.js.map +1 -1
  337. package/lib/metrics/reporters/reportUserSession.js +3 -3
  338. package/lib/metrics/reporters/reportUserSession.js.map +1 -1
  339. package/lib/metrics/reporters/reporters.d.ts +2 -2
  340. package/lib/namedErrors.d.ts +1 -1
  341. package/lib/namedErrors.js +1 -1
  342. package/lib/namedErrors.js.map +1 -1
  343. package/lib/observable-operators/unsubscribed.d.ts +1 -1
  344. package/lib/observable-operators/unsubscribed.js +1 -1
  345. package/lib/observable-operators/unsubscribed.js.map +1 -1
  346. package/lib/platform/platformCapabilities.d.ts +1 -1
  347. package/lib/platform/platformCapabilities.js +9 -3
  348. package/lib/platform/platformCapabilities.js.map +1 -1
  349. package/lib/platform/platformInfo.d.ts +1 -0
  350. package/lib/platform/platformInfo.js +3 -3
  351. package/lib/platform/platformInfo.js.map +1 -1
  352. package/lib/remote-configuration/cofHandler.d.ts +3 -3
  353. package/lib/remote-configuration/cofHandler.js +6 -4
  354. package/lib/remote-configuration/cofHandler.js.map +1 -1
  355. package/lib/remote-configuration/preloadConfiguration.d.ts +1 -1
  356. package/lib/remote-configuration/preloadConfiguration.js +1 -1
  357. package/lib/remote-configuration/preloadConfiguration.js.map +1 -1
  358. package/lib/remote-configuration/remoteConfiguration.d.ts +7 -6
  359. package/lib/remote-configuration/remoteConfiguration.js +18 -15
  360. package/lib/remote-configuration/remoteConfiguration.js.map +1 -1
  361. package/lib/session/CameraKitSession.d.ts +8 -8
  362. package/lib/session/CameraKitSession.js +11 -9
  363. package/lib/session/CameraKitSession.js.map +1 -1
  364. package/lib/session/LensKeyboard.d.ts +2 -3
  365. package/lib/session/LensKeyboard.js.map +1 -1
  366. package/lib/session/LensPerformanceMeasurement.d.ts +1 -1
  367. package/lib/session/LensPerformanceMeasurement.js +3 -3
  368. package/lib/session/LensPerformanceMeasurement.js.map +1 -1
  369. package/lib/session/LensPerformanceMetrics.d.ts +1 -1
  370. package/lib/session/LensPerformanceMetrics.js.map +1 -1
  371. package/lib/session/lensState.d.ts +4 -4
  372. package/lib/session/lensState.js +10 -10
  373. package/lib/session/lensState.js.map +1 -1
  374. package/lib/transforms/Transform2D.d.ts +8 -3
  375. package/lib/transforms/Transform2D.js +1 -1
  376. package/lib/transforms/Transform2D.js.map +1 -1
  377. package/lib/utils.d.ts +3 -0
  378. package/lib/utils.js +4 -0
  379. package/lib/utils.js.map +1 -0
  380. package/package.json +27 -6
  381. package/docs/html/functions/createUserMediaSource.html +0 -138
  382. package/docs/html/functions/getRequiredBootstrapURLs.html +0 -130
  383. package/docs/html/types/CameraKitDeviceInfo.html +0 -125
  384. package/docs/html/types/CameraKitDeviceOptions.html +0 -120
  385. package/docs/html/types/CameraKitSourceInfo.html +0 -112
  386. package/docs/html/types/CameraKitSourceOptions.html +0 -118
  387. package/lib/common/index.d.ts +0 -2
  388. package/lib/common/index.js +0 -3
  389. package/lib/common/index.js.map +0 -1
  390. package/lib/environment.json +0 -1
  391. package/lib/handlers/index.d.ts +0 -2
  392. package/lib/handlers/index.js +0 -3
  393. package/lib/handlers/index.js.map +0 -1
  394. package/lib/lens-core-module/index.d.ts +0 -3
  395. package/lib/lens-core-module/index.js +0 -4
  396. package/lib/lens-core-module/index.js.map +0 -1
  397. package/lib/lens-core-module/loader/index.d.ts +0 -1
  398. package/lib/lens-core-module/loader/index.js +0 -2
  399. package/lib/lens-core-module/loader/index.js.map +0 -1
  400. package/lib/lensCoreWasmVersions.json +0 -5
  401. package/lib/metrics/metricsHandler.d.ts +0 -10
  402. package/lib/metrics/metricsHandler.js +0 -13
  403. package/lib/metrics/metricsHandler.js.map +0 -1
  404. package/lib/metrics/operational/operationalMetricsReporter.d.ts +0 -64
  405. package/lib/metrics/operational/operationalMetricsReporter.js +0 -144
  406. package/lib/metrics/operational/operationalMetricsReporter.js.map +0 -1
  407. package/lib/session/index.d.ts +0 -1
  408. package/lib/session/index.js +0 -2
  409. package/lib/session/index.js.map +0 -1
  410. package/lib/transforms/index.d.ts +0 -1
  411. package/lib/transforms/index.js +0 -2
  412. package/lib/transforms/index.js.map +0 -1
@@ -1,144 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "../../dependency-injection/Injectable";
3
- import { HandlerChainBuilder } from "../../handlers/HandlerChainBuilder";
4
- import { createBatchingHandler } from "../../handlers/batchingHandler";
5
- import { SetOperationalMetricsRequest } from "../../generated-proto/pb_schema/camera_kit/v3/service";
6
- import { createMappingHandler } from "../../handlers/mappingHandler";
7
- import { pageVisibilityFactory } from "../../common/pageVisibility";
8
- import { metricsHandlerFactory } from "../metricsHandler";
9
- import { configurationToken } from "../../configuration";
10
- // CameraKit's prod metrics endpoint.
11
- // See: https://github.sc-corp.net/Snapchat/pb_schema/blob/c390b9c/proto/camera_kit/v3/service.proto#L126
12
- const DIMENSION_DELIMITER = ".";
13
- // These values are (currently) arbitrarily selected.
14
- // TODO: Once we have gathered a sufficient quantity of metrics data, we should tune these numbers to ensure we're
15
- // operating with the right cost vs. alarming SLA vs. IDB storage size tradeoffs.
16
- const METRIC_BATCH_MAX_SIZE = 100;
17
- const METRIC_BATCH_MAX_AGE_MS = 5000;
18
- /**
19
- * Use this class to report operational metrics – these are metrics that describe aspects of the SDK's performance,
20
- * which may be used to assess and investigate operational issues.
21
- */
22
- /** @internal */
23
- export class OperationalMetricsReporter {
24
- constructor(metricsHandler) {
25
- this.metricsHandler = metricsHandler;
26
- }
27
- /**
28
- * Record a count.
29
- *
30
- * @param name
31
- * @param count
32
- * @param dimensions An optional Map containing dimensions which describe the metric.
33
- * For example: `new Map([['status', '200']])`
34
- * @returns Promise which resolves when the metric has been handled.
35
- */
36
- count(name, count, dimensions) {
37
- return this.record(name, { $case: "count", count }, dimensions);
38
- }
39
- /**
40
- * Record a duration in milliseconds.
41
- *
42
- * @param name
43
- * @param latencyMillis
44
- * @param dimensions An optional Map containing dimensions which describe the metric.
45
- * For example: `new Map([['status', '200']])`
46
- * @returns Promise which resolves when the metric has been handled.
47
- */
48
- timer(name, latencyMillis, dimensions) {
49
- return this.record(name, { $case: "latencyMillis", latencyMillis }, dimensions);
50
- }
51
- /**
52
- * Record a histogram.
53
- *
54
- * @param name
55
- * @param histogram
56
- * @param dimensions An optional Map containing dimensions which describe the metric.
57
- * For example: `new Map([['status', '200']])`
58
- * @returns Promise which resolves when the metric has been handled.
59
- */
60
- histogram(name, histogram, dimensions) {
61
- return this.record(name, { $case: "histogram", histogram }, dimensions);
62
- }
63
- /**
64
- * TODO: This entire class in no longer necessary, since the new Timer/Count/Histogram classes offer a cleaner API
65
- * for recording metrics. Once we migrate all operational metrics to use those new APIs, this class can be removed
66
- * and call sites will just call the metrics handler directly.
67
- *
68
- * @param metric Any concrete Metric (e.g. Count, Timer, Histogram)
69
- * @returns
70
- */
71
- report(metric) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- yield Promise.all(metric.toOperationalMetric().map((metric) => this.metricsHandler(metric)));
74
- });
75
- }
76
- record(name, metric, dimensions) {
77
- // The naming convention (metricName.dimensionName.dimensionValue.dimensionName.dimensionValue...) is mentioned
78
- // the Graphene docs here https://wiki.sc-corp.net/display/METRICS/Graphene
79
- // TODO: find explicit documentation of the API, if it exists.
80
- const serializedDimensions = dimensions
81
- ? `.${Array.from(dimensions.entries())
82
- .map((d) => d.join(DIMENSION_DELIMITER))
83
- .join(DIMENSION_DELIMITER)}`
84
- : "";
85
- return this.metricsHandler({
86
- name: `${name}${serializedDimensions}`,
87
- timestamp: new Date(),
88
- metric,
89
- });
90
- }
91
- }
92
- /**
93
- * @internal
94
- */
95
- export const operationalMetricReporterFactory = Injectable("operationalMetricsReporter", [metricsHandlerFactory.token, pageVisibilityFactory.token, configurationToken], (metricsHandler, pageVisibility, configuration) => {
96
- const handler = new HandlerChainBuilder(metricsHandler)
97
- .map(createMappingHandler((metrics) => {
98
- const request = { metrics };
99
- return new Request(
100
- // eslint-disable-next-line max-len
101
- `https://${configuration.apiHostname}/com.snap.camerakit.v3.Metrics/metrics/operational_metrics`, {
102
- method: "POST",
103
- body: JSON.stringify(SetOperationalMetricsRequest.toJSON(request)),
104
- credentials: "include",
105
- // When this is true it makes fetch behave like `Navigator.sendBeacon` – that is, the
106
- // request will still be made even if the page terminates.
107
- // https://developer.mozilla.org/en-US/docs/Web/API/fetch
108
- keepalive: pageVisibility.isDuringVisibilityTransition("hidden"),
109
- });
110
- }, pageVisibility))
111
- .map(createBatchingHandler({
112
- // The batching logic here is very simple – it could be improved by e.g.
113
- // computing statistics to reduce overall data sent, etc. Right now this is
114
- // premature optimization, but could become a good idea in the future.
115
- batchReduce: (previousBundle, metric) => {
116
- var _a, _b;
117
- let metrics = [...((_a = previousBundle === null || previousBundle === void 0 ? void 0 : previousBundle.metrics) !== null && _a !== void 0 ? _a : [])];
118
- // For "count" metrics, it's straightforward to merge them into
119
- // a single metric with the same name.
120
- const existingCountIndex = ((_b = metric.metric) === null || _b === void 0 ? void 0 : _b.$case) === "count"
121
- ? metrics.findIndex((m) => { var _a; return metric.name === m.name && ((_a = m.metric) === null || _a === void 0 ? void 0 : _a.$case) === "count"; })
122
- : -1;
123
- if (existingCountIndex >= 0) {
124
- // Safety: Given the condition above, we can be sure that both the existing and new metrics
125
- // are of the "count" type.
126
- const existingValue = metrics[existingCountIndex].metric;
127
- const newValue = metric.metric;
128
- metrics.splice(existingCountIndex, 1, Object.assign(Object.assign({}, metric), { metric: {
129
- $case: "count",
130
- count: existingValue.count + newValue.count,
131
- } }));
132
- }
133
- else {
134
- metrics.push(metric);
135
- }
136
- return { metrics };
137
- },
138
- isBatchComplete: (bundle) => bundle.metrics.length >= METRIC_BATCH_MAX_SIZE,
139
- maxBatchAge: METRIC_BATCH_MAX_AGE_MS,
140
- pageVisibility,
141
- })).handler;
142
- return new OperationalMetricsReporter(handler);
143
- });
144
- //# sourceMappingURL=operationalMetricsReporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operationalMetricsReporter.js","sourceRoot":"","sources":["../../../src/metrics/operational/operationalMetricsReporter.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"../../dependency-injection/Injectable\";\nimport { FetchHandler } from \"../../handlers/defaultFetchHandler\";\nimport { HandlerChainBuilder } from \"../../handlers/HandlerChainBuilder\";\nimport { createBatchingHandler } from \"../../handlers/batchingHandler\";\nimport {\n OperationalMetric,\n OperationalMetricsBundle,\n} from \"../../generated-proto/pb_schema/camera_kit/v3/operational_metrics\";\nimport { SetOperationalMetricsRequest } from \"../../generated-proto/pb_schema/camera_kit/v3/service\";\nimport { createMappingHandler } from \"../../handlers/mappingHandler\";\nimport { PageVisibility, pageVisibilityFactory } from \"../../common/pageVisibility\";\nimport { metricsHandlerFactory } from \"../metricsHandler\";\nimport { CameraKitConfiguration, configurationToken } from \"../../configuration\";\nimport { Metric } from \"./Metric\";\n\ntype MetricsHandler = (metric: OperationalMetric) => Promise<void>;\ntype CountMetricValue = Extract<OperationalMetric[\"metric\"], { $case: \"count\" }>;\n\n// CameraKit's prod metrics endpoint.\n// See: https://github.sc-corp.net/Snapchat/pb_schema/blob/c390b9c/proto/camera_kit/v3/service.proto#L126\n\nconst DIMENSION_DELIMITER = \".\";\n\n// These values are (currently) arbitrarily selected.\n// TODO: Once we have gathered a sufficient quantity of metrics data, we should tune these numbers to ensure we're\n// operating with the right cost vs. alarming SLA vs. IDB storage size tradeoffs.\nconst METRIC_BATCH_MAX_SIZE = 100;\nconst METRIC_BATCH_MAX_AGE_MS = 5000;\n\n/**\n * Use this class to report operational metrics – these are metrics that describe aspects of the SDK's performance,\n * which may be used to assess and investigate operational issues.\n */\n/** @internal */\nexport class OperationalMetricsReporter {\n constructor(private readonly metricsHandler: MetricsHandler) {}\n\n /**\n * Record a count.\n *\n * @param name\n * @param count\n * @param dimensions An optional Map containing dimensions which describe the metric.\n * For example: `new Map([['status', '200']])`\n * @returns Promise which resolves when the metric has been handled.\n */\n count(name: string, count: number, dimensions?: Map<string, string>): Promise<void> {\n return this.record(name, { $case: \"count\", count }, dimensions);\n }\n\n /**\n * Record a duration in milliseconds.\n *\n * @param name\n * @param latencyMillis\n * @param dimensions An optional Map containing dimensions which describe the metric.\n * For example: `new Map([['status', '200']])`\n * @returns Promise which resolves when the metric has been handled.\n */\n timer(name: string, latencyMillis: number, dimensions?: Map<string, string>): Promise<void> {\n return this.record(name, { $case: \"latencyMillis\", latencyMillis }, dimensions);\n }\n\n /**\n * Record a histogram.\n *\n * @param name\n * @param histogram\n * @param dimensions An optional Map containing dimensions which describe the metric.\n * For example: `new Map([['status', '200']])`\n * @returns Promise which resolves when the metric has been handled.\n */\n histogram(name: string, histogram: number, dimensions?: Map<string, string>): Promise<void> {\n return this.record(name, { $case: \"histogram\", histogram }, dimensions);\n }\n\n /**\n * TODO: This entire class in no longer necessary, since the new Timer/Count/Histogram classes offer a cleaner API\n * for recording metrics. Once we migrate all operational metrics to use those new APIs, this class can be removed\n * and call sites will just call the metrics handler directly.\n *\n * @param metric Any concrete Metric (e.g. Count, Timer, Histogram)\n * @returns\n */\n async report(metric: Metric): Promise<void> {\n await Promise.all(metric.toOperationalMetric().map((metric) => this.metricsHandler(metric)));\n }\n\n private record(\n name: string,\n metric: Required<OperationalMetric>[\"metric\"],\n dimensions?: Map<string, string | number>\n ): Promise<void> {\n // The naming convention (metricName.dimensionName.dimensionValue.dimensionName.dimensionValue...) is mentioned\n // the Graphene docs here https://wiki.sc-corp.net/display/METRICS/Graphene\n // TODO: find explicit documentation of the API, if it exists.\n const serializedDimensions = dimensions\n ? `.${Array.from(dimensions.entries())\n .map((d) => d.join(DIMENSION_DELIMITER))\n .join(DIMENSION_DELIMITER)}`\n : \"\";\n\n return this.metricsHandler({\n name: `${name}${serializedDimensions}`,\n timestamp: new Date(),\n metric,\n });\n }\n}\n\n/**\n * @internal\n */\nexport const operationalMetricReporterFactory = Injectable(\n \"operationalMetricsReporter\",\n [metricsHandlerFactory.token, pageVisibilityFactory.token, configurationToken] as const,\n (metricsHandler: FetchHandler, pageVisibility: PageVisibility, configuration: CameraKitConfiguration) => {\n const handler = new HandlerChainBuilder(metricsHandler)\n .map(\n createMappingHandler((metrics: OperationalMetricsBundle) => {\n const request: SetOperationalMetricsRequest = { metrics };\n return new Request(\n // eslint-disable-next-line max-len\n `https://${configuration.apiHostname}/com.snap.camerakit.v3.Metrics/metrics/operational_metrics`,\n {\n method: \"POST\",\n body: JSON.stringify(SetOperationalMetricsRequest.toJSON(request)),\n credentials: \"include\",\n\n // When this is true it makes fetch behave like `Navigator.sendBeacon` – that is, the\n // request will still be made even if the page terminates.\n // https://developer.mozilla.org/en-US/docs/Web/API/fetch\n keepalive: pageVisibility.isDuringVisibilityTransition(\"hidden\"),\n }\n );\n }, pageVisibility)\n )\n .map(\n createBatchingHandler({\n // The batching logic here is very simple – it could be improved by e.g.\n // computing statistics to reduce overall data sent, etc. Right now this is\n // premature optimization, but could become a good idea in the future.\n batchReduce: (previousBundle: OperationalMetricsBundle | undefined, metric: OperationalMetric) => {\n let metrics = [...(previousBundle?.metrics ?? [])];\n\n // For \"count\" metrics, it's straightforward to merge them into\n // a single metric with the same name.\n const existingCountIndex =\n metric.metric?.$case === \"count\"\n ? metrics.findIndex((m) => metric.name === m.name && m.metric?.$case === \"count\")\n : -1;\n if (existingCountIndex >= 0) {\n // Safety: Given the condition above, we can be sure that both the existing and new metrics\n // are of the \"count\" type.\n const existingValue = metrics[existingCountIndex].metric as CountMetricValue;\n const newValue = metric.metric as CountMetricValue;\n metrics.splice(existingCountIndex, 1, {\n ...metric,\n metric: {\n $case: \"count\",\n count: existingValue.count + newValue.count,\n },\n });\n } else {\n metrics.push(metric);\n }\n\n return { metrics };\n },\n isBatchComplete: (bundle) => bundle.metrics.length >= METRIC_BATCH_MAX_SIZE,\n maxBatchAge: METRIC_BATCH_MAX_AGE_MS,\n pageVisibility,\n })\n ).handler;\n\n return new OperationalMetricsReporter(handler);\n }\n);\n"]}
@@ -1 +0,0 @@
1
- export { Keyboard } from "./LensKeyboard";
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"","sourcesContent":["export { Keyboard } from \"./LensKeyboard\";\n"]}
@@ -1 +0,0 @@
1
- export * from "./Transform2D";
@@ -1,2 +0,0 @@
1
- export * from "./Transform2D";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./Transform2D\";\n"]}