@snap/camera-kit 0.17.0 → 0.18.1

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 (1223) hide show
  1. package/LICENSE.md +13 -391
  2. package/README.md +1 -1
  3. package/dist/CameraKit.d.ts +334 -0
  4. package/dist/CameraKit.d.ts.map +1 -0
  5. package/dist/CameraKit.js +104 -0
  6. package/dist/CameraKit.js.map +1 -0
  7. package/dist/benchmark/benchmarkGflops.d.ts +17 -0
  8. package/dist/benchmark/benchmarkGflops.d.ts.map +1 -0
  9. package/dist/benchmark/benchmarkGflops.js +116 -0
  10. package/dist/benchmark/benchmarkGflops.js.map +1 -0
  11. package/dist/benchmark/estimateLensPerformanceCluster.d.ts +34 -0
  12. package/dist/benchmark/estimateLensPerformanceCluster.d.ts.map +1 -0
  13. package/dist/benchmark/estimateLensPerformanceCluster.js +34 -0
  14. package/dist/benchmark/estimateLensPerformanceCluster.js.map +1 -0
  15. package/dist/benchmark/webglUtils.d.ts +8 -0
  16. package/dist/benchmark/webglUtils.d.ts.map +1 -0
  17. package/dist/bootstrapCameraKit.d.ts +97 -0
  18. package/dist/bootstrapCameraKit.d.ts.map +1 -0
  19. package/dist/bootstrapCameraKit.js +117 -0
  20. package/dist/bootstrapCameraKit.js.map +1 -0
  21. package/dist/clients/createTsProtoClient.d.ts +41 -0
  22. package/dist/clients/createTsProtoClient.d.ts.map +1 -0
  23. package/dist/clients/createTsProtoClient.js +36 -0
  24. package/dist/clients/createTsProtoClient.js.map +1 -0
  25. package/dist/clients/grpcHandler.d.ts +27 -0
  26. package/dist/clients/grpcHandler.d.ts.map +1 -0
  27. package/dist/clients/grpcHandler.js +79 -0
  28. package/dist/clients/grpcHandler.js.map +1 -0
  29. package/dist/clients/lensesClient.d.ts +10 -0
  30. package/dist/clients/lensesClient.d.ts.map +1 -0
  31. package/dist/clients/lensesClient.js.map +1 -0
  32. package/dist/clients/metricsClient.d.ts +27 -0
  33. package/dist/clients/metricsClient.d.ts.map +1 -0
  34. package/dist/clients/metricsClient.js +96 -0
  35. package/dist/clients/metricsClient.js.map +1 -0
  36. package/dist/common/assertions.d.ts +28 -0
  37. package/dist/common/assertions.d.ts.map +1 -0
  38. package/dist/common/assertions.js +14 -0
  39. package/dist/common/assertions.js.map +1 -0
  40. package/dist/common/copyDefinedProperties.d.ts +14 -0
  41. package/dist/common/copyDefinedProperties.d.ts.map +1 -0
  42. package/dist/common/copyDefinedProperties.js +4 -0
  43. package/dist/common/copyDefinedProperties.js.map +1 -0
  44. package/dist/common/date.d.ts +4 -0
  45. package/dist/common/date.d.ts.map +1 -0
  46. package/dist/common/dialog.d.ts +60 -0
  47. package/dist/common/dialog.d.ts.map +1 -0
  48. package/dist/common/dialog.js +158 -0
  49. package/dist/common/dialog.js.map +1 -0
  50. package/dist/common/entries.d.ts +5 -0
  51. package/dist/common/entries.d.ts.map +1 -0
  52. package/dist/common/entries.js +3 -0
  53. package/dist/common/entries.js.map +1 -0
  54. package/dist/common/errorHelpers.d.ts +18 -0
  55. package/dist/common/errorHelpers.d.ts.map +1 -0
  56. package/dist/common/errorHelpers.js +20 -0
  57. package/dist/common/errorHelpers.js.map +1 -0
  58. package/dist/common/getFilename.d.ts +2 -0
  59. package/dist/common/getFilename.d.ts.map +1 -0
  60. package/dist/common/hash.d.ts +6 -0
  61. package/dist/common/hash.d.ts.map +1 -0
  62. package/dist/common/hash.js +13 -0
  63. package/dist/common/hash.js.map +1 -0
  64. package/dist/common/loadScript.d.ts +7 -0
  65. package/dist/common/loadScript.d.ts.map +1 -0
  66. package/dist/common/loadScript.js +13 -0
  67. package/dist/common/loadScript.js.map +1 -0
  68. package/dist/common/localization.d.ts +55 -0
  69. package/dist/common/localization.d.ts.map +1 -0
  70. package/dist/common/localization.js +622 -0
  71. package/dist/common/localization.js.map +1 -0
  72. package/dist/common/memoize.d.ts +9 -0
  73. package/dist/common/memoize.d.ts.map +1 -0
  74. package/dist/common/pageVisibility.d.ts +35 -0
  75. package/dist/common/pageVisibility.d.ts.map +1 -0
  76. package/dist/common/pageVisibility.js +52 -0
  77. package/dist/common/pageVisibility.js.map +1 -0
  78. package/dist/common/result.d.ts +37 -0
  79. package/dist/common/result.d.ts.map +1 -0
  80. package/dist/common/result.js +39 -0
  81. package/dist/common/result.js.map +1 -0
  82. package/dist/common/time.d.ts +3 -0
  83. package/dist/common/time.d.ts.map +1 -0
  84. package/dist/common/typeguards.d.ts +68 -0
  85. package/dist/common/typeguards.d.ts.map +1 -0
  86. package/dist/common/typeguards.js +68 -0
  87. package/dist/common/typeguards.js.map +1 -0
  88. package/dist/common/types.d.ts +38 -0
  89. package/dist/common/types.d.ts.map +1 -0
  90. package/dist/common/types.js.map +1 -0
  91. package/dist/common/unionBy.d.ts +29 -0
  92. package/dist/common/unionBy.d.ts.map +1 -0
  93. package/dist/common/unionBy.js +16 -0
  94. package/dist/common/unionBy.js.map +1 -0
  95. package/dist/common/validate.d.ts +16 -0
  96. package/dist/common/validate.d.ts.map +1 -0
  97. package/dist/common/validate.js +57 -0
  98. package/dist/common/validate.js.map +1 -0
  99. package/dist/configuration.d.ts +102 -0
  100. package/dist/configuration.d.ts.map +1 -0
  101. package/dist/configuration.js +30 -0
  102. package/dist/configuration.js.map +1 -0
  103. package/dist/configurationOverrides.d.ts +13 -0
  104. package/dist/configurationOverrides.d.ts.map +1 -0
  105. package/dist/configurationOverrides.js +38 -0
  106. package/dist/configurationOverrides.js.map +1 -0
  107. package/dist/dependency-injection/Container.d.ts +177 -0
  108. package/dist/dependency-injection/Container.d.ts.map +1 -0
  109. package/dist/dependency-injection/Container.js +72 -0
  110. package/dist/dependency-injection/Container.js.map +1 -0
  111. package/dist/dependency-injection/Injectable.d.ts +96 -0
  112. package/dist/dependency-injection/Injectable.d.ts.map +1 -0
  113. package/dist/dependency-injection/Injectable.js.map +1 -0
  114. package/dist/dependency-injection/PartialContainer.d.ts +86 -0
  115. package/dist/dependency-injection/PartialContainer.d.ts.map +1 -0
  116. package/dist/dependency-injection/PartialContainer.js +28 -0
  117. package/dist/dependency-injection/PartialContainer.js.map +1 -0
  118. package/dist/dependency-injection/RootServices.d.ts +74 -0
  119. package/dist/dependency-injection/RootServices.d.ts.map +1 -0
  120. package/dist/dependency-injection/RootServices.js +2 -0
  121. package/dist/dependency-injection/RootServices.js.map +1 -0
  122. package/dist/dependency-injection/types.d.ts +57 -0
  123. package/dist/dependency-injection/types.d.ts.map +1 -0
  124. package/dist/dependency-injection/types.js.map +1 -0
  125. package/dist/environment.d.ts +5 -0
  126. package/dist/environment.d.ts.map +1 -0
  127. package/dist/environment.js +2 -0
  128. package/dist/environment.js.map +1 -0
  129. package/dist/events/TypedCustomEvent.d.ts +11 -0
  130. package/dist/events/TypedCustomEvent.d.ts.map +1 -0
  131. package/dist/events/TypedCustomEvent.js +6 -0
  132. package/dist/events/TypedCustomEvent.js.map +1 -0
  133. package/dist/events/TypedEventTarget.d.ts +26 -0
  134. package/dist/events/TypedEventTarget.d.ts.map +1 -0
  135. package/dist/events/TypedEventTarget.js +42 -0
  136. package/dist/events/TypedEventTarget.js.map +1 -0
  137. package/dist/events/scan.d.ts +18 -0
  138. package/dist/events/scan.d.ts.map +1 -0
  139. package/dist/events/scan.js +29 -0
  140. package/dist/events/scan.js.map +1 -0
  141. package/dist/extensions/RemoteApiServices.d.ts +88 -0
  142. package/dist/extensions/RemoteApiServices.d.ts.map +1 -0
  143. package/dist/extensions/RemoteApiServices.js +159 -0
  144. package/dist/extensions/RemoteApiServices.js.map +1 -0
  145. package/dist/extensions/UriHandlers.d.ts +48 -0
  146. package/dist/extensions/UriHandlers.d.ts.map +1 -0
  147. package/dist/extensions/UriHandlers.js +34 -0
  148. package/dist/extensions/UriHandlers.js.map +1 -0
  149. package/dist/extensions/extensionRequestContext.d.ts +5 -0
  150. package/dist/extensions/extensionRequestContext.d.ts.map +1 -0
  151. package/dist/extensions/extensionRequestContext.js +11 -0
  152. package/dist/extensions/extensionRequestContext.js.map +1 -0
  153. package/dist/extensions/uriHandlersRegister.d.ts +22 -0
  154. package/dist/extensions/uriHandlersRegister.d.ts.map +1 -0
  155. package/dist/extensions/uriHandlersRegister.js +61 -0
  156. package/dist/extensions/uriHandlersRegister.js.map +1 -0
  157. package/dist/generated-proto/blizzard/cameraKitEvents.d.ts +9528 -0
  158. package/dist/generated-proto/blizzard/cameraKitEvents.d.ts.map +1 -0
  159. package/dist/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +80 -0
  160. package/dist/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts.map +1 -0
  161. package/dist/generated-proto/pb_schema/camera_kit/v3/export.d.ts +529 -0
  162. package/dist/generated-proto/pb_schema/camera_kit/v3/export.d.ts.map +1 -0
  163. package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts +35 -0
  164. package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts.map +1 -0
  165. package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js +42 -0
  166. package/dist/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js.map +1 -0
  167. package/dist/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts +30 -0
  168. package/dist/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts.map +1 -0
  169. package/dist/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +86 -0
  170. package/dist/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts.map +1 -0
  171. package/dist/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +385 -0
  172. package/dist/generated-proto/pb_schema/camera_kit/v3/lens.d.ts.map +1 -0
  173. package/dist/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +179 -0
  174. package/dist/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts.map +1 -0
  175. package/dist/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +57 -0
  176. package/dist/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts.map +1 -0
  177. package/dist/generated-proto/pb_schema/camera_kit/v3/service.d.ts +2512 -0
  178. package/dist/generated-proto/pb_schema/camera_kit/v3/service.d.ts.map +1 -0
  179. package/dist/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +79 -0
  180. package/dist/generated-proto/pb_schema/cdp/cof/benchmark.d.ts.map +1 -0
  181. package/dist/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts +51 -0
  182. package/dist/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts.map +1 -0
  183. package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +25575 -0
  184. package/dist/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts.map +1 -0
  185. package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts +280 -0
  186. package/dist/generated-proto/pb_schema/cdp/cof/config_request.d.ts.map +1 -0
  187. package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts +3726 -0
  188. package/dist/generated-proto/pb_schema/cdp/cof/config_response.d.ts.map +1 -0
  189. package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts +10224 -0
  190. package/dist/generated-proto/pb_schema/cdp/cof/config_result.d.ts.map +1 -0
  191. package/dist/generated-proto/pb_schema/cdp/cof/debug_info.d.ts +94 -0
  192. package/dist/generated-proto/pb_schema/cdp/cof/debug_info.d.ts.map +1 -0
  193. package/dist/generated-proto/pb_schema/cdp/cof/namespace.d.ts +9 -0
  194. package/dist/generated-proto/pb_schema/cdp/cof/namespace.d.ts.map +1 -0
  195. package/dist/generated-proto/pb_schema/common/ruid.d.ts +52 -0
  196. package/dist/generated-proto/pb_schema/common/ruid.d.ts.map +1 -0
  197. package/dist/generated-proto/pb_schema/common/value.d.ts +145 -0
  198. package/dist/generated-proto/pb_schema/common/value.d.ts.map +1 -0
  199. package/dist/generated-proto/pb_schema/google/api/annotations.d.ts +2 -0
  200. package/dist/generated-proto/pb_schema/google/api/annotations.d.ts.map +1 -0
  201. package/dist/generated-proto/pb_schema/google/api/annotations.js +8 -0
  202. package/dist/generated-proto/pb_schema/google/api/annotations.js.map +1 -0
  203. package/dist/generated-proto/pb_schema/google/api/http.d.ts +3631 -0
  204. package/dist/generated-proto/pb_schema/google/api/http.d.ts.map +1 -0
  205. package/dist/generated-proto/pb_schema/google/api/http.js +193 -0
  206. package/dist/generated-proto/pb_schema/google/api/http.js.map +1 -0
  207. package/dist/generated-proto/pb_schema/google/protobuf/any.d.ts +33 -0
  208. package/dist/generated-proto/pb_schema/google/protobuf/any.d.ts.map +1 -0
  209. package/dist/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +50897 -0
  210. package/dist/generated-proto/pb_schema/google/protobuf/descriptor.d.ts.map +1 -0
  211. package/dist/generated-proto/pb_schema/google/protobuf/descriptor.js +1818 -0
  212. package/dist/generated-proto/pb_schema/google/protobuf/descriptor.js.map +1 -0
  213. package/dist/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +33 -0
  214. package/dist/generated-proto/pb_schema/google/protobuf/timestamp.d.ts.map +1 -0
  215. package/dist/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +120 -0
  216. package/dist/generated-proto/pb_schema/google/protobuf/wrappers.d.ts.map +1 -0
  217. package/dist/generated-proto/pb_schema/lenses/geocircle.d.ts +43 -0
  218. package/dist/generated-proto/pb_schema/lenses/geocircle.d.ts.map +1 -0
  219. package/dist/generated-proto/pb_schema/lenses/geopoint.d.ts +33 -0
  220. package/dist/generated-proto/pb_schema/lenses/geopoint.d.ts.map +1 -0
  221. package/dist/generated-proto/pb_schema/lenses/launch_params.d.ts +30 -0
  222. package/dist/generated-proto/pb_schema/lenses/launch_params.d.ts.map +1 -0
  223. package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts +397 -0
  224. package/dist/generated-proto/pb_schema/lenses/launchdata.d.ts.map +1 -0
  225. package/dist/generated-proto/pb_schema/lenses/lures.d.ts +112 -0
  226. package/dist/generated-proto/pb_schema/lenses/lures.d.ts.map +1 -0
  227. package/dist/generated-proto/pb_schema/lenses/persistent_store.d.ts +30 -0
  228. package/dist/generated-proto/pb_schema/lenses/persistent_store.d.ts.map +1 -0
  229. package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts +570 -0
  230. package/dist/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts.map +1 -0
  231. package/dist/generated-proto/pb_schema/lenses/snappable.d.ts +903 -0
  232. package/dist/generated-proto/pb_schema/lenses/snappable.d.ts.map +1 -0
  233. package/dist/generated-proto/pb_schema/lenses/user_data.d.ts +230 -0
  234. package/dist/generated-proto/pb_schema/lenses/user_data.d.ts.map +1 -0
  235. package/dist/handlers/HandlerChainBuilder.d.ts +111 -0
  236. package/dist/handlers/HandlerChainBuilder.d.ts.map +1 -0
  237. package/dist/handlers/HandlerChainBuilder.js +55 -0
  238. package/dist/handlers/HandlerChainBuilder.js.map +1 -0
  239. package/dist/handlers/arrayBufferParsingHandler.d.ts +11 -0
  240. package/dist/handlers/arrayBufferParsingHandler.d.ts.map +1 -0
  241. package/dist/handlers/arrayBufferParsingHandler.js +13 -0
  242. package/dist/handlers/arrayBufferParsingHandler.js.map +1 -0
  243. package/dist/handlers/batchingHandler.d.ts +32 -0
  244. package/dist/handlers/batchingHandler.d.ts.map +1 -0
  245. package/dist/handlers/batchingHandler.js +45 -0
  246. package/dist/handlers/batchingHandler.js.map +1 -0
  247. package/dist/handlers/cameraKitServiceFetchHandlerFactory.d.ts +13 -0
  248. package/dist/handlers/cameraKitServiceFetchHandlerFactory.d.ts.map +1 -0
  249. package/dist/handlers/cameraKitServiceFetchHandlerFactory.js +14 -0
  250. package/dist/handlers/cameraKitServiceFetchHandlerFactory.js.map +1 -0
  251. package/dist/handlers/customLensCoreHandler.d.ts +8 -0
  252. package/dist/handlers/customLensCoreHandler.d.ts.map +1 -0
  253. package/dist/handlers/customLensCoreHandler.js +12 -0
  254. package/dist/handlers/customLensCoreHandler.js.map +1 -0
  255. package/dist/handlers/defaultFetchHandler.d.ts +16 -0
  256. package/dist/handlers/defaultFetchHandler.d.ts.map +1 -0
  257. package/dist/handlers/defaultFetchHandler.js +23 -0
  258. package/dist/handlers/defaultFetchHandler.js.map +1 -0
  259. package/dist/handlers/headersModifyingFetchHandler.d.ts +9 -0
  260. package/dist/handlers/headersModifyingFetchHandler.d.ts.map +1 -0
  261. package/dist/handlers/headersModifyingFetchHandler.js +10 -0
  262. package/dist/handlers/headersModifyingFetchHandler.js.map +1 -0
  263. package/dist/handlers/mappingHandler.d.ts +20 -0
  264. package/dist/handlers/mappingHandler.d.ts.map +1 -0
  265. package/dist/handlers/mappingHandler.js +44 -0
  266. package/dist/handlers/mappingHandler.js.map +1 -0
  267. package/dist/handlers/noCorsRetryingFetchHandler.d.ts +49 -0
  268. package/dist/handlers/noCorsRetryingFetchHandler.d.ts.map +1 -0
  269. package/dist/handlers/noCorsRetryingFetchHandler.js +33 -0
  270. package/dist/handlers/noCorsRetryingFetchHandler.js.map +1 -0
  271. package/dist/handlers/persistingHandler.d.ts +15 -0
  272. package/dist/handlers/persistingHandler.d.ts.map +1 -0
  273. package/dist/handlers/persistingHandler.js +43 -0
  274. package/dist/handlers/persistingHandler.js.map +1 -0
  275. package/dist/handlers/rateLimitingHandler.d.ts +25 -0
  276. package/dist/handlers/rateLimitingHandler.d.ts.map +1 -0
  277. package/dist/handlers/rateLimitingHandler.js +21 -0
  278. package/dist/handlers/rateLimitingHandler.js.map +1 -0
  279. package/dist/handlers/requestStateEmittingHandler.d.ts +42 -0
  280. package/dist/handlers/requestStateEmittingHandler.d.ts.map +1 -0
  281. package/dist/handlers/requestStateEmittingHandler.js +42 -0
  282. package/dist/handlers/requestStateEmittingHandler.js.map +1 -0
  283. package/dist/handlers/responseCachingHandler.d.ts +35 -0
  284. package/dist/handlers/responseCachingHandler.d.ts.map +1 -0
  285. package/dist/handlers/responseCachingHandler.js +83 -0
  286. package/dist/handlers/responseCachingHandler.js.map +1 -0
  287. package/dist/handlers/retryingHandler.d.ts +49 -0
  288. package/dist/handlers/retryingHandler.d.ts.map +1 -0
  289. package/dist/handlers/retryingHandler.js +62 -0
  290. package/dist/handlers/retryingHandler.js.map +1 -0
  291. package/dist/handlers/timeoutHandler.d.ts +19 -0
  292. package/dist/handlers/timeoutHandler.d.ts.map +1 -0
  293. package/dist/handlers/timeoutHandler.js +20 -0
  294. package/dist/handlers/timeoutHandler.js.map +1 -0
  295. package/dist/handlers/utils.d.ts +13 -0
  296. package/dist/handlers/utils.d.ts.map +1 -0
  297. package/dist/handlers/utils.js +7 -0
  298. package/dist/handlers/utils.js.map +1 -0
  299. package/dist/index.d.ts +43 -0
  300. package/dist/index.d.ts.map +1 -0
  301. package/dist/index.js +35 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/legal/legalPrompt.d.ts +21 -0
  304. package/dist/legal/legalPrompt.d.ts.map +1 -0
  305. package/dist/legal/legalPrompt.js +130 -0
  306. package/dist/legal/legalPrompt.js.map +1 -0
  307. package/dist/legal/legalState.d.ts +51 -0
  308. package/dist/legal/legalState.d.ts.map +1 -0
  309. package/dist/legal/legalState.js +100 -0
  310. package/dist/legal/legalState.js.map +1 -0
  311. package/dist/lens/Lens.d.ts +117 -0
  312. package/dist/lens/Lens.d.ts.map +1 -0
  313. package/dist/lens/Lens.js +74 -0
  314. package/dist/lens/Lens.js.map +1 -0
  315. package/dist/lens/LensLaunchData.d.ts +45 -0
  316. package/dist/lens/LensLaunchData.d.ts.map +1 -0
  317. package/dist/lens/LensLaunchData.js +83 -0
  318. package/dist/lens/LensLaunchData.js.map +1 -0
  319. package/dist/lens/LensPersistenceStore.d.ts +8 -0
  320. package/dist/lens/LensPersistenceStore.d.ts.map +1 -0
  321. package/dist/lens/LensPersistenceStore.js.map +1 -0
  322. package/dist/lens/LensRepository.d.ts +133 -0
  323. package/dist/lens/LensRepository.d.ts.map +1 -0
  324. package/dist/lens/LensRepository.js +147 -0
  325. package/dist/lens/LensRepository.js.map +1 -0
  326. package/dist/lens/LensSource.d.ts +44 -0
  327. package/dist/lens/LensSource.d.ts.map +1 -0
  328. package/dist/lens/LensSource.js +18 -0
  329. package/dist/lens/LensSource.js.map +1 -0
  330. package/dist/lens/assets/LensAssetRepository.d.ts +101 -0
  331. package/dist/lens/assets/LensAssetRepository.d.ts.map +1 -0
  332. package/dist/lens/assets/LensAssetRepository.js +139 -0
  333. package/dist/lens/assets/LensAssetRepository.js.map +1 -0
  334. package/dist/lens/assets/LensAssetsProvider.d.ts +28 -0
  335. package/dist/lens/assets/LensAssetsProvider.d.ts.map +1 -0
  336. package/dist/lens/assets/LensAssetsProvider.js +52 -0
  337. package/dist/lens/assets/LensAssetsProvider.js.map +1 -0
  338. package/dist/lens/assets/deviceDependentAssetLoader.d.ts +12 -0
  339. package/dist/lens/assets/deviceDependentAssetLoader.d.ts.map +1 -0
  340. package/dist/lens/assets/deviceDependentAssetLoader.js +49 -0
  341. package/dist/lens/assets/deviceDependentAssetLoader.js.map +1 -0
  342. package/dist/lens/assets/remoteMediaAssetLoaderFactory.d.ts +11 -0
  343. package/dist/lens/assets/remoteMediaAssetLoaderFactory.d.ts.map +1 -0
  344. package/dist/lens/assets/remoteMediaAssetLoaderFactory.js +18 -0
  345. package/dist/lens/assets/remoteMediaAssetLoaderFactory.js.map +1 -0
  346. package/dist/lens/assets/staticAssetLoader.d.ts +11 -0
  347. package/dist/lens/assets/staticAssetLoader.d.ts.map +1 -0
  348. package/dist/lens/assets/staticAssetLoader.js +21 -0
  349. package/dist/lens/assets/staticAssetLoader.js.map +1 -0
  350. package/dist/lens/cameraKitLensSource.d.ts +18 -0
  351. package/dist/lens/cameraKitLensSource.d.ts.map +1 -0
  352. package/dist/lens/cameraKitLensSource.js +93 -0
  353. package/dist/lens/cameraKitLensSource.js.map +1 -0
  354. package/dist/lens/fetchWatermarkLens.d.ts +12 -0
  355. package/dist/lens/fetchWatermarkLens.d.ts.map +1 -0
  356. package/dist/lens/fetchWatermarkLens.js +23 -0
  357. package/dist/lens/fetchWatermarkLens.js.map +1 -0
  358. package/dist/lens-client-interface/exif.d.ts +21 -0
  359. package/dist/lens-client-interface/exif.d.ts.map +1 -0
  360. package/dist/lens-client-interface/exif.js +51 -0
  361. package/dist/lens-client-interface/exif.js.map +1 -0
  362. package/dist/lens-client-interface/imagePicker.d.ts +9 -0
  363. package/dist/lens-client-interface/imagePicker.d.ts.map +1 -0
  364. package/dist/lens-client-interface/imagePicker.js +113 -0
  365. package/dist/lens-client-interface/imagePicker.js.map +1 -0
  366. package/dist/lens-client-interface/lensClientInterface.d.ts +14 -0
  367. package/dist/lens-client-interface/lensClientInterface.d.ts.map +1 -0
  368. package/dist/lens-client-interface/lensClientInterface.js +22 -0
  369. package/dist/lens-client-interface/lensClientInterface.js.map +1 -0
  370. package/dist/lens-core-module/generated-types.d.ts +474 -0
  371. package/dist/lens-core-module/generated-types.d.ts.map +1 -0
  372. package/dist/lens-core-module/generated-types.js.map +1 -0
  373. package/dist/lens-core-module/lensCore.d.ts +59 -0
  374. package/dist/lens-core-module/lensCore.d.ts.map +1 -0
  375. package/dist/lens-core-module/lensCore.js +95 -0
  376. package/dist/lens-core-module/lensCore.js.map +1 -0
  377. package/dist/lens-core-module/lensCoreError.d.ts +16 -0
  378. package/dist/lens-core-module/lensCoreError.d.ts.map +1 -0
  379. package/dist/lens-core-module/lensCoreError.js +35 -0
  380. package/dist/lens-core-module/lensCoreError.js.map +1 -0
  381. package/dist/lens-core-module/loader/bootstrapURLs.d.ts +13 -0
  382. package/dist/lens-core-module/loader/bootstrapURLs.d.ts.map +1 -0
  383. package/dist/lens-core-module/loader/bootstrapURLs.js +32 -0
  384. package/dist/lens-core-module/loader/bootstrapURLs.js.map +1 -0
  385. package/dist/lens-core-module/loader/lensCoreFactory.d.ts +18 -0
  386. package/dist/lens-core-module/loader/lensCoreFactory.d.ts.map +1 -0
  387. package/dist/lens-core-module/loader/lensCoreFactory.js +59 -0
  388. package/dist/lens-core-module/loader/lensCoreFactory.js.map +1 -0
  389. package/dist/lensCoreWasmVersions.d.ts +7 -0
  390. package/dist/lensCoreWasmVersions.d.ts.map +1 -0
  391. package/dist/lensCoreWasmVersions.js +6 -0
  392. package/dist/lensCoreWasmVersions.js.map +1 -0
  393. package/dist/logger/errorLoggingDecorator.d.ts +10 -0
  394. package/dist/logger/errorLoggingDecorator.d.ts.map +1 -0
  395. package/dist/logger/errorLoggingDecorator.js +19 -0
  396. package/dist/logger/errorLoggingDecorator.js.map +1 -0
  397. package/dist/logger/logEntries.d.ts +16 -0
  398. package/dist/logger/logEntries.d.ts.map +1 -0
  399. package/dist/logger/logEntries.js +4 -0
  400. package/dist/logger/logEntries.js.map +1 -0
  401. package/dist/logger/logger.d.ts +41 -0
  402. package/dist/logger/logger.d.ts.map +1 -0
  403. package/dist/logger/logger.js +27 -0
  404. package/dist/logger/logger.js.map +1 -0
  405. package/dist/logger/registerLogEntriesSubscriber.d.ts +15 -0
  406. package/dist/logger/registerLogEntriesSubscriber.d.ts.map +1 -0
  407. package/dist/logger/registerLogEntriesSubscriber.js +27 -0
  408. package/dist/logger/registerLogEntriesSubscriber.js.map +1 -0
  409. package/dist/media-sources/CameraKitSource.d.ts +130 -0
  410. package/dist/media-sources/CameraKitSource.d.ts.map +1 -0
  411. package/dist/media-sources/CameraKitSource.js +96 -0
  412. package/dist/media-sources/CameraKitSource.js.map +1 -0
  413. package/dist/media-sources/FunctionSource.d.ts +42 -0
  414. package/dist/media-sources/FunctionSource.d.ts.map +1 -0
  415. package/dist/media-sources/FunctionSource.js +105 -0
  416. package/dist/media-sources/FunctionSource.js.map +1 -0
  417. package/dist/media-sources/ImageSource.d.ts +13 -0
  418. package/dist/media-sources/ImageSource.d.ts.map +1 -0
  419. package/dist/media-sources/ImageSource.js +7 -0
  420. package/dist/media-sources/ImageSource.js.map +1 -0
  421. package/dist/media-sources/MediaStreamSource.d.ts +31 -0
  422. package/dist/media-sources/MediaStreamSource.d.ts.map +1 -0
  423. package/dist/media-sources/MediaStreamSource.js +140 -0
  424. package/dist/media-sources/MediaStreamSource.js.map +1 -0
  425. package/dist/media-sources/VideoSource.d.ts +27 -0
  426. package/dist/media-sources/VideoSource.d.ts.map +1 -0
  427. package/dist/media-sources/VideoSource.js +12 -0
  428. package/dist/media-sources/VideoSource.js.map +1 -0
  429. package/dist/metrics/businessEventsReporter.d.ts +40 -0
  430. package/dist/metrics/businessEventsReporter.d.ts.map +1 -0
  431. package/dist/metrics/businessEventsReporter.js +156 -0
  432. package/dist/metrics/businessEventsReporter.js.map +1 -0
  433. package/dist/metrics/metricsEventTarget.d.ts +42 -0
  434. package/dist/metrics/metricsEventTarget.d.ts.map +1 -0
  435. package/dist/metrics/metricsEventTarget.js +4 -0
  436. package/dist/metrics/metricsEventTarget.js.map +1 -0
  437. package/dist/metrics/operational/Count.d.ts +21 -0
  438. package/dist/metrics/operational/Count.d.ts.map +1 -0
  439. package/dist/metrics/operational/Count.js +31 -0
  440. package/dist/metrics/operational/Count.js.map +1 -0
  441. package/dist/metrics/operational/Histogram.d.ts +19 -0
  442. package/dist/metrics/operational/Histogram.d.ts.map +1 -0
  443. package/dist/metrics/operational/Histogram.js +26 -0
  444. package/dist/metrics/operational/Histogram.js.map +1 -0
  445. package/dist/metrics/operational/Metric.d.ts +21 -0
  446. package/dist/metrics/operational/Metric.d.ts.map +1 -0
  447. package/dist/metrics/operational/Metric.js +23 -0
  448. package/dist/metrics/operational/Metric.js.map +1 -0
  449. package/dist/metrics/operational/Timer.d.ts +96 -0
  450. package/dist/metrics/operational/Timer.d.ts.map +1 -0
  451. package/dist/metrics/operational/Timer.js +64 -0
  452. package/dist/metrics/operational/Timer.js.map +1 -0
  453. package/dist/metrics/reporters/reportBenchmarks.d.ts +11 -0
  454. package/dist/metrics/reporters/reportBenchmarks.d.ts.map +1 -0
  455. package/dist/metrics/reporters/reportBenchmarks.js +27 -0
  456. package/dist/metrics/reporters/reportBenchmarks.js.map +1 -0
  457. package/dist/metrics/reporters/reportGlobalException.d.ts +27 -0
  458. package/dist/metrics/reporters/reportGlobalException.d.ts.map +1 -0
  459. package/dist/metrics/reporters/reportGlobalException.js +82 -0
  460. package/dist/metrics/reporters/reportGlobalException.js.map +1 -0
  461. package/dist/metrics/reporters/reportHttpMetrics.d.ts +11 -0
  462. package/dist/metrics/reporters/reportHttpMetrics.d.ts.map +1 -0
  463. package/dist/metrics/reporters/reportHttpMetrics.js +107 -0
  464. package/dist/metrics/reporters/reportHttpMetrics.js.map +1 -0
  465. package/dist/metrics/reporters/reportLegalState.d.ts +16 -0
  466. package/dist/metrics/reporters/reportLegalState.d.ts.map +1 -0
  467. package/dist/metrics/reporters/reportLegalState.js +29 -0
  468. package/dist/metrics/reporters/reportLegalState.js.map +1 -0
  469. package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts +39 -0
  470. package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts.map +1 -0
  471. package/dist/metrics/reporters/reportLensAndAssetDownload.js +91 -0
  472. package/dist/metrics/reporters/reportLensAndAssetDownload.js.map +1 -0
  473. package/dist/metrics/reporters/reportLensValidationFailed.d.ts +21 -0
  474. package/dist/metrics/reporters/reportLensValidationFailed.d.ts.map +1 -0
  475. package/dist/metrics/reporters/reportLensValidationFailed.js +21 -0
  476. package/dist/metrics/reporters/reportLensValidationFailed.js.map +1 -0
  477. package/dist/metrics/reporters/reportLensView.d.ts +37 -0
  478. package/dist/metrics/reporters/reportLensView.d.ts.map +1 -0
  479. package/dist/metrics/reporters/reportLensView.js +102 -0
  480. package/dist/metrics/reporters/reportLensView.js.map +1 -0
  481. package/dist/metrics/reporters/reportLensWait.d.ts +33 -0
  482. package/dist/metrics/reporters/reportLensWait.d.ts.map +1 -0
  483. package/dist/metrics/reporters/reportLensWait.js +35 -0
  484. package/dist/metrics/reporters/reportLensWait.js.map +1 -0
  485. package/dist/metrics/reporters/reportPlatformCapabilities.d.ts +13 -0
  486. package/dist/metrics/reporters/reportPlatformCapabilities.d.ts.map +1 -0
  487. package/dist/metrics/reporters/reportPlatformCapabilities.js +13 -0
  488. package/dist/metrics/reporters/reportPlatformCapabilities.js.map +1 -0
  489. package/dist/metrics/reporters/reportSessionException.d.ts +18 -0
  490. package/dist/metrics/reporters/reportSessionException.d.ts.map +1 -0
  491. package/dist/metrics/reporters/reportSessionException.js +7 -0
  492. package/dist/metrics/reporters/reportSessionException.js.map +1 -0
  493. package/dist/metrics/reporters/reportUserSession.d.ts +15 -0
  494. package/dist/metrics/reporters/reportUserSession.d.ts.map +1 -0
  495. package/dist/metrics/reporters/reportUserSession.js +61 -0
  496. package/dist/metrics/reporters/reportUserSession.js.map +1 -0
  497. package/dist/metrics/reporters/reporters.d.ts +47 -0
  498. package/dist/metrics/reporters/reporters.d.ts.map +1 -0
  499. package/dist/metrics/reporters/reporters.js +24 -0
  500. package/dist/metrics/reporters/reporters.js.map +1 -0
  501. package/dist/namedErrors.d.ts +131 -0
  502. package/dist/namedErrors.d.ts.map +1 -0
  503. package/dist/namedErrors.js +29 -0
  504. package/dist/namedErrors.js.map +1 -0
  505. package/dist/observable-operators/debounceTimeAfter.d.ts +26 -0
  506. package/dist/observable-operators/debounceTimeAfter.d.ts.map +1 -0
  507. package/dist/observable-operators/debounceTimeAfter.js +22 -0
  508. package/dist/observable-operators/debounceTimeAfter.js.map +1 -0
  509. package/dist/observable-operators/unsubscribed.d.ts +13 -0
  510. package/dist/observable-operators/unsubscribed.d.ts.map +1 -0
  511. package/dist/observable-operators/unsubscribed.js +15 -0
  512. package/dist/observable-operators/unsubscribed.js.map +1 -0
  513. package/dist/persistence/ExpiringPersistence.d.ts +22 -0
  514. package/dist/persistence/ExpiringPersistence.d.ts.map +1 -0
  515. package/dist/persistence/ExpiringPersistence.js +64 -0
  516. package/dist/persistence/ExpiringPersistence.js.map +1 -0
  517. package/dist/persistence/IndexedDBPersistence.d.ts +48 -0
  518. package/dist/persistence/IndexedDBPersistence.d.ts.map +1 -0
  519. package/dist/persistence/IndexedDBPersistence.js +127 -0
  520. package/dist/persistence/IndexedDBPersistence.js.map +1 -0
  521. package/dist/persistence/Persistence.d.ts +26 -0
  522. package/dist/persistence/Persistence.d.ts.map +1 -0
  523. package/dist/persistence/Persistence.js +4 -0
  524. package/dist/persistence/Persistence.js.map +1 -0
  525. package/dist/platform/assertPlatformSupported.d.ts +5 -0
  526. package/dist/platform/assertPlatformSupported.d.ts.map +1 -0
  527. package/dist/platform/assertPlatformSupported.js +12 -0
  528. package/dist/platform/assertPlatformSupported.js.map +1 -0
  529. package/dist/platform/cameraKitUserAgent.d.ts +3 -0
  530. package/dist/platform/cameraKitUserAgent.d.ts.map +1 -0
  531. package/dist/platform/cameraKitUserAgent.js +13 -0
  532. package/dist/platform/cameraKitUserAgent.js.map +1 -0
  533. package/dist/platform/platformCapabilities.d.ts +58 -0
  534. package/dist/platform/platformCapabilities.d.ts.map +1 -0
  535. package/dist/platform/platformCapabilities.js +98 -0
  536. package/dist/platform/platformCapabilities.js.map +1 -0
  537. package/dist/platform/platformInfo.d.ts +44 -0
  538. package/dist/platform/platformInfo.d.ts.map +1 -0
  539. package/dist/platform/platformInfo.js +156 -0
  540. package/dist/platform/platformInfo.js.map +1 -0
  541. package/dist/remote-configuration/cofHandler.d.ts +30 -0
  542. package/dist/remote-configuration/cofHandler.d.ts.map +1 -0
  543. package/dist/remote-configuration/cofHandler.js +83 -0
  544. package/dist/remote-configuration/cofHandler.js.map +1 -0
  545. package/dist/remote-configuration/preloadConfiguration.d.ts +8 -0
  546. package/dist/remote-configuration/preloadConfiguration.d.ts.map +1 -0
  547. package/dist/remote-configuration/preloadConfiguration.js.map +1 -0
  548. package/dist/remote-configuration/remoteConfiguration.d.ts +36 -0
  549. package/dist/remote-configuration/remoteConfiguration.d.ts.map +1 -0
  550. package/dist/remote-configuration/remoteConfiguration.js +59 -0
  551. package/dist/remote-configuration/remoteConfiguration.js.map +1 -0
  552. package/dist/session/CameraKitSession.d.ts +257 -0
  553. package/dist/session/CameraKitSession.d.ts.map +1 -0
  554. package/dist/session/CameraKitSession.js +242 -0
  555. package/dist/session/CameraKitSession.js.map +1 -0
  556. package/dist/session/CameraKitSessionEvents.d.ts +29 -0
  557. package/dist/session/CameraKitSessionEvents.d.ts.map +1 -0
  558. package/dist/session/CameraKitSessionEvents.js +15 -0
  559. package/dist/session/CameraKitSessionEvents.js.map +1 -0
  560. package/dist/session/LensKeyboard.d.ts +90 -0
  561. package/dist/session/LensKeyboard.d.ts.map +1 -0
  562. package/dist/session/LensKeyboard.js +89 -0
  563. package/dist/session/LensKeyboard.js.map +1 -0
  564. package/dist/session/LensPerformanceMeasurement.d.ts +58 -0
  565. package/dist/session/LensPerformanceMeasurement.d.ts.map +1 -0
  566. package/dist/session/LensPerformanceMeasurement.js +63 -0
  567. package/dist/session/LensPerformanceMeasurement.js.map +1 -0
  568. package/dist/session/LensPerformanceMetrics.d.ts +32 -0
  569. package/dist/session/LensPerformanceMetrics.d.ts.map +1 -0
  570. package/dist/session/LensPerformanceMetrics.js +39 -0
  571. package/dist/session/LensPerformanceMetrics.js.map +1 -0
  572. package/dist/session/lensState.d.ts +32 -0
  573. package/dist/session/lensState.d.ts.map +1 -0
  574. package/dist/session/lensState.js +194 -0
  575. package/dist/session/lensState.js.map +1 -0
  576. package/dist/session/sessionState.d.ts +11 -0
  577. package/dist/session/sessionState.d.ts.map +1 -0
  578. package/dist/session/sessionState.js.map +1 -0
  579. package/dist/transforms/Transform2D.d.ts +27 -0
  580. package/dist/transforms/Transform2D.d.ts.map +1 -0
  581. package/dist/transforms/Transform2D.js +13 -0
  582. package/dist/transforms/Transform2D.js.map +1 -0
  583. package/dist/utils.d.ts +4 -0
  584. package/dist/utils.d.ts.map +1 -0
  585. package/docs/html/assets/navigation.js +1 -1
  586. package/docs/html/assets/search.js +1 -1
  587. package/docs/html/classes/CameraKit.html +2 -2
  588. package/docs/html/classes/CameraKitSession.html +2 -2
  589. package/docs/html/classes/CameraKitSource.html +2 -2
  590. package/docs/html/classes/LensPerformanceMeasurement.html +2 -2
  591. package/docs/html/classes/LensPerformanceMetrics.html +2 -2
  592. package/docs/html/classes/LensRepository.html +3 -3
  593. package/docs/html/classes/Transform2D.html +2 -2
  594. package/docs/html/classes/TypedCustomEvent.html +2 -2
  595. package/docs/html/classes/TypedEventTarget.html +2 -2
  596. package/docs/html/enums/Lens_CameraFacing.html +2 -2
  597. package/docs/html/functions/ConcatInjectable.html +2 -2
  598. package/docs/html/functions/Injectable.html +2 -2
  599. package/docs/html/functions/bootstrapCameraKit.html +2 -2
  600. package/docs/html/functions/createExtension.html +2 -2
  601. package/docs/html/functions/createImageSource.html +2 -2
  602. package/docs/html/functions/createMediaStreamSource.html +2 -2
  603. package/docs/html/functions/createVideoSource.html +2 -2
  604. package/docs/html/functions/estimateLensPerformance.html +2 -2
  605. package/docs/html/functions/lensSourcesFactory.html +2 -2
  606. package/docs/html/functions/remoteApiServicesFactory.html +2 -2
  607. package/docs/html/hierarchy.html +1 -1
  608. package/docs/html/index.html +3 -3
  609. package/docs/html/interfaces/BitmojiUserInfo.html +3 -0
  610. package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +2 -2
  611. package/docs/html/interfaces/CameraKitDeviceOptions.html +2 -2
  612. package/docs/html/interfaces/CameraKitSourceInfo.html +2 -2
  613. package/docs/html/interfaces/CameraKitSourceSubscriber.html +2 -2
  614. package/docs/html/interfaces/ComputedFrameMetrics.html +2 -2
  615. package/docs/html/interfaces/CreateSessionOptions.html +2 -2
  616. package/docs/html/interfaces/EstimatedLensPerformance.html +2 -2
  617. package/docs/html/interfaces/FriendUserInfo.html +4 -0
  618. package/docs/html/interfaces/FunctionSourceOptions.html +2 -2
  619. package/docs/html/interfaces/Lens.html +2 -2
  620. package/docs/html/interfaces/LensCreator.html +2 -2
  621. package/docs/html/interfaces/LensLaunchData.html +3 -3
  622. package/docs/html/interfaces/LensSource.html +2 -2
  623. package/docs/html/interfaces/LensUserData.html +10 -0
  624. package/docs/html/interfaces/LoadAssetRequest.html +2 -2
  625. package/docs/html/interfaces/MediaStreamSourceOptions.html +2 -2
  626. package/docs/html/interfaces/Preview.html +2 -2
  627. package/docs/html/interfaces/RemoteApiRequest.html +2 -2
  628. package/docs/html/interfaces/RemoteApiResponse.html +4 -4
  629. package/docs/html/interfaces/RemoteApiService.html +3 -3
  630. package/docs/html/interfaces/Snapcode.html +2 -2
  631. package/docs/html/interfaces/UriCancelRequest.html +2 -2
  632. package/docs/html/interfaces/UriRequest.html +2 -2
  633. package/docs/html/interfaces/UriResponse.html +2 -2
  634. package/docs/html/interfaces/VideoSourceOptions.html +2 -2
  635. package/docs/html/modules.html +7 -3
  636. package/docs/html/types/ArgumentValidationError.html +2 -0
  637. package/docs/html/types/AssetLoader.html +2 -2
  638. package/docs/html/types/AssetResponse.html +1 -1
  639. package/docs/html/types/AssetTiming.html +2 -2
  640. package/docs/html/types/BenchmarkError.html +1 -1
  641. package/docs/html/types/BootstrapError.html +2 -2
  642. package/docs/html/types/CacheKeyNotFoundError.html +1 -1
  643. package/docs/html/types/CameraKitSessionEventListener.html +2 -2
  644. package/docs/html/types/CameraKitSessionEvents.html +2 -2
  645. package/docs/html/types/CameraKitSourceError.html +1 -1
  646. package/docs/html/types/ConfigurationError.html +2 -2
  647. package/docs/html/types/FetchHandler.html +1 -1
  648. package/docs/html/types/Keyboard.html +2 -2
  649. package/docs/html/types/KeyboardEvents.html +2 -2
  650. package/docs/html/types/LegalError.html +1 -1
  651. package/docs/html/types/LensAbortError.html +2 -2
  652. package/docs/html/types/LensAssetError.html +2 -2
  653. package/docs/html/types/LensContentValidationError.html +1 -1
  654. package/docs/html/types/LensError.html +1 -1
  655. package/docs/html/types/LensExecutionError.html +2 -2
  656. package/docs/html/types/LensImagePickerError.html +2 -2
  657. package/docs/html/types/LensLaunchParams.html +2 -2
  658. package/docs/html/types/LensMetricsEvents.html +2 -2
  659. package/docs/html/types/LensPerformanceCluster.html +1 -1
  660. package/docs/html/types/LensView.html +2 -2
  661. package/docs/html/types/LensWait.html +2 -2
  662. package/docs/html/types/Matrix.html +2 -2
  663. package/docs/html/types/PersistentStoreError.html +2 -2
  664. package/docs/html/types/PlatformNotSupportedError.html +2 -2
  665. package/docs/html/types/PublicContainer.html +2 -2
  666. package/docs/html/types/PublicServices.html +2 -2
  667. package/docs/html/types/RemoteApiCancelRequestHandler.html +2 -2
  668. package/docs/html/types/RemoteApiRequestHandler.html +2 -2
  669. package/docs/html/types/RemoteApiServices.html +1 -1
  670. package/docs/html/types/RemoteApiStatus.html +2 -2
  671. package/docs/html/types/RenderTarget.html +2 -2
  672. package/docs/html/types/Uri.html +1 -1
  673. package/docs/html/types/WebGLError.html +1 -1
  674. package/docs/html/types/Zodiac.html +1 -0
  675. package/docs/html/variables/extensionRequestContext.html +2 -2
  676. package/docs/md/README.md +1 -1
  677. package/docs/md/classes/CameraKit.md +1 -1
  678. package/docs/md/classes/CameraKitSession.md +1 -1
  679. package/docs/md/classes/CameraKitSource.md +1 -1
  680. package/docs/md/classes/LensPerformanceMeasurement.md +1 -1
  681. package/docs/md/classes/LensPerformanceMetrics.md +1 -1
  682. package/docs/md/classes/LensRepository.md +2 -2
  683. package/docs/md/classes/Transform2D.md +1 -1
  684. package/docs/md/classes/TypedCustomEvent.md +1 -1
  685. package/docs/md/classes/TypedEventTarget.md +1 -1
  686. package/docs/md/enums/Lens_CameraFacing.md +1 -1
  687. package/docs/md/interfaces/BitmojiUserInfo.md +22 -0
  688. package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +1 -1
  689. package/docs/md/interfaces/CameraKitDeviceOptions.md +1 -1
  690. package/docs/md/interfaces/CameraKitSourceInfo.md +1 -1
  691. package/docs/md/interfaces/CameraKitSourceSubscriber.md +1 -1
  692. package/docs/md/interfaces/ComputedFrameMetrics.md +1 -1
  693. package/docs/md/interfaces/CreateSessionOptions.md +1 -1
  694. package/docs/md/interfaces/EstimatedLensPerformance.md +1 -1
  695. package/docs/md/interfaces/FriendUserInfo.md +29 -0
  696. package/docs/md/interfaces/FunctionSourceOptions.md +1 -1
  697. package/docs/md/interfaces/Lens.md +1 -1
  698. package/docs/md/interfaces/LensCreator.md +1 -1
  699. package/docs/md/interfaces/LensLaunchData.md +2 -21
  700. package/docs/md/interfaces/LensSource.md +1 -1
  701. package/docs/md/interfaces/LensUserData.md +71 -0
  702. package/docs/md/interfaces/LoadAssetRequest.md +1 -1
  703. package/docs/md/interfaces/MediaStreamSourceOptions.md +1 -1
  704. package/docs/md/interfaces/Preview.md +1 -1
  705. package/docs/md/interfaces/RemoteApiRequest.md +1 -1
  706. package/docs/md/interfaces/RemoteApiResponse.md +2 -2
  707. package/docs/md/interfaces/RemoteApiService.md +2 -2
  708. package/docs/md/interfaces/Snapcode.md +1 -1
  709. package/docs/md/interfaces/UriCancelRequest.md +1 -1
  710. package/docs/md/interfaces/UriRequest.md +1 -1
  711. package/docs/md/interfaces/UriResponse.md +1 -1
  712. package/docs/md/interfaces/VideoSourceOptions.md +1 -1
  713. package/docs/md/modules.md +23 -5
  714. package/package.json +14 -12
  715. package/docs/html/enums/UserData_Zodiac.html +0 -15
  716. package/docs/md/enums/UserData_Zodiac.md +0 -106
  717. package/lib/CameraKit.d.ts +0 -333
  718. package/lib/CameraKit.js +0 -176
  719. package/lib/CameraKit.js.map +0 -1
  720. package/lib/__tests__/data.d.ts +0 -14
  721. package/lib/__tests__/data.js +0 -69
  722. package/lib/__tests__/data.js.map +0 -1
  723. package/lib/__tests__/deferred.d.ts +0 -16
  724. package/lib/__tests__/deferred.js +0 -29
  725. package/lib/__tests__/deferred.js.map +0 -1
  726. package/lib/__tests__/jest.matchers.d.ts +0 -17
  727. package/lib/__tests__/jest.matchers.js +0 -67
  728. package/lib/__tests__/jest.matchers.js.map +0 -1
  729. package/lib/benchmark/benchmarkGflops.d.ts +0 -16
  730. package/lib/benchmark/benchmarkGflops.js +0 -129
  731. package/lib/benchmark/benchmarkGflops.js.map +0 -1
  732. package/lib/benchmark/estimateLensPerformanceCluster.d.ts +0 -33
  733. package/lib/benchmark/estimateLensPerformanceCluster.js +0 -48
  734. package/lib/benchmark/estimateLensPerformanceCluster.js.map +0 -1
  735. package/lib/benchmark/webglUtils.d.ts +0 -7
  736. package/lib/bootstrapCameraKit.d.ts +0 -96
  737. package/lib/bootstrapCameraKit.js +0 -222
  738. package/lib/bootstrapCameraKit.js.map +0 -1
  739. package/lib/clients/createTsProtoClient.d.ts +0 -40
  740. package/lib/clients/createTsProtoClient.js +0 -52
  741. package/lib/clients/createTsProtoClient.js.map +0 -1
  742. package/lib/clients/grpcHandler.d.ts +0 -26
  743. package/lib/clients/grpcHandler.js +0 -90
  744. package/lib/clients/grpcHandler.js.map +0 -1
  745. package/lib/clients/lensesClient.d.ts +0 -9
  746. package/lib/clients/lensesClient.js.map +0 -1
  747. package/lib/clients/metricsClient.d.ts +0 -26
  748. package/lib/clients/metricsClient.js +0 -120
  749. package/lib/clients/metricsClient.js.map +0 -1
  750. package/lib/common/__mocks__/loadScript.d.ts +0 -1
  751. package/lib/common/__mocks__/loadScript.js +0 -10
  752. package/lib/common/__mocks__/loadScript.js.map +0 -1
  753. package/lib/common/assertions.d.ts +0 -27
  754. package/lib/common/assertions.js +0 -39
  755. package/lib/common/assertions.js.map +0 -1
  756. package/lib/common/copyDefinedProperties.d.ts +0 -13
  757. package/lib/common/copyDefinedProperties.js +0 -16
  758. package/lib/common/copyDefinedProperties.js.map +0 -1
  759. package/lib/common/date.d.ts +0 -3
  760. package/lib/common/dialog.d.ts +0 -59
  761. package/lib/common/dialog.js +0 -160
  762. package/lib/common/dialog.js.map +0 -1
  763. package/lib/common/entries.d.ts +0 -4
  764. package/lib/common/entries.js +0 -5
  765. package/lib/common/entries.js.map +0 -1
  766. package/lib/common/errorHelpers.d.ts +0 -10
  767. package/lib/common/errorHelpers.js +0 -24
  768. package/lib/common/errorHelpers.js.map +0 -1
  769. package/lib/common/getFilename.d.ts +0 -1
  770. package/lib/common/hash.d.ts +0 -5
  771. package/lib/common/hash.js +0 -17
  772. package/lib/common/hash.js.map +0 -1
  773. package/lib/common/loadScript.d.ts +0 -6
  774. package/lib/common/loadScript.js +0 -18
  775. package/lib/common/loadScript.js.map +0 -1
  776. package/lib/common/localization.d.ts +0 -54
  777. package/lib/common/localization.js +0 -654
  778. package/lib/common/localization.js.map +0 -1
  779. package/lib/common/memoize.d.ts +0 -8
  780. package/lib/common/pageVisibility.d.ts +0 -34
  781. package/lib/common/pageVisibility.js +0 -71
  782. package/lib/common/pageVisibility.js.map +0 -1
  783. package/lib/common/result.d.ts +0 -36
  784. package/lib/common/result.js +0 -40
  785. package/lib/common/result.js.map +0 -1
  786. package/lib/common/time.d.ts +0 -2
  787. package/lib/common/typeguards.d.ts +0 -53
  788. package/lib/common/typeguards.js +0 -92
  789. package/lib/common/typeguards.js.map +0 -1
  790. package/lib/common/types.d.ts +0 -18
  791. package/lib/common/types.js.map +0 -1
  792. package/lib/common/unionBy.d.ts +0 -28
  793. package/lib/common/unionBy.js +0 -46
  794. package/lib/common/unionBy.js.map +0 -1
  795. package/lib/common/validate.d.ts +0 -14
  796. package/lib/common/validate.js +0 -112
  797. package/lib/common/validate.js.map +0 -1
  798. package/lib/configuration.d.ts +0 -101
  799. package/lib/configuration.js +0 -51
  800. package/lib/configuration.js.map +0 -1
  801. package/lib/configurationOverrides.d.ts +0 -12
  802. package/lib/configurationOverrides.js +0 -46
  803. package/lib/configurationOverrides.js.map +0 -1
  804. package/lib/dependency-injection/Container.d.ts +0 -176
  805. package/lib/dependency-injection/Container.js +0 -160
  806. package/lib/dependency-injection/Container.js.map +0 -1
  807. package/lib/dependency-injection/Injectable.d.ts +0 -95
  808. package/lib/dependency-injection/Injectable.js.map +0 -1
  809. package/lib/dependency-injection/PartialContainer.d.ts +0 -85
  810. package/lib/dependency-injection/PartialContainer.js +0 -85
  811. package/lib/dependency-injection/PartialContainer.js.map +0 -1
  812. package/lib/dependency-injection/RootServices.d.ts +0 -73
  813. package/lib/dependency-injection/RootServices.js +0 -2
  814. package/lib/dependency-injection/RootServices.js.map +0 -1
  815. package/lib/dependency-injection/types.d.ts +0 -56
  816. package/lib/dependency-injection/types.js.map +0 -1
  817. package/lib/environment.d.ts +0 -4
  818. package/lib/environment.js +0 -2
  819. package/lib/environment.js.map +0 -1
  820. package/lib/events/TypedCustomEvent.d.ts +0 -10
  821. package/lib/events/TypedCustomEvent.js +0 -11
  822. package/lib/events/TypedCustomEvent.js.map +0 -1
  823. package/lib/events/TypedEventTarget.d.ts +0 -25
  824. package/lib/events/TypedEventTarget.js +0 -57
  825. package/lib/events/TypedEventTarget.js.map +0 -1
  826. package/lib/events/scan.d.ts +0 -15
  827. package/lib/events/scan.js +0 -46
  828. package/lib/events/scan.js.map +0 -1
  829. package/lib/extensions/RemoteApiServices.d.ts +0 -101
  830. package/lib/extensions/RemoteApiServices.js +0 -203
  831. package/lib/extensions/RemoteApiServices.js.map +0 -1
  832. package/lib/extensions/UriHandlers.d.ts +0 -47
  833. package/lib/extensions/UriHandlers.js +0 -38
  834. package/lib/extensions/UriHandlers.js.map +0 -1
  835. package/lib/extensions/extensionRequestContext.d.ts +0 -4
  836. package/lib/extensions/extensionRequestContext.js +0 -14
  837. package/lib/extensions/extensionRequestContext.js.map +0 -1
  838. package/lib/extensions/uriHandlersRegister.d.ts +0 -21
  839. package/lib/extensions/uriHandlersRegister.js +0 -72
  840. package/lib/extensions/uriHandlersRegister.js.map +0 -1
  841. package/lib/generated-proto/blizzard/cameraKitEvents.d.ts +0 -9527
  842. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +0 -79
  843. package/lib/generated-proto/pb_schema/camera_kit/v3/export.d.ts +0 -528
  844. package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.d.ts +0 -34
  845. package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js +0 -43
  846. package/lib/generated-proto/pb_schema/camera_kit/v3/features/ranking_info.js.map +0 -1
  847. package/lib/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.d.ts +0 -29
  848. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +0 -85
  849. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +0 -384
  850. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +0 -178
  851. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +0 -56
  852. package/lib/generated-proto/pb_schema/camera_kit/v3/service.d.ts +0 -2511
  853. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +0 -78
  854. package/lib/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts +0 -50
  855. package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +0 -25574
  856. package/lib/generated-proto/pb_schema/cdp/cof/config_request.d.ts +0 -279
  857. package/lib/generated-proto/pb_schema/cdp/cof/config_response.d.ts +0 -3725
  858. package/lib/generated-proto/pb_schema/cdp/cof/config_result.d.ts +0 -10223
  859. package/lib/generated-proto/pb_schema/cdp/cof/debug_info.d.ts +0 -93
  860. package/lib/generated-proto/pb_schema/cdp/cof/namespace.d.ts +0 -8
  861. package/lib/generated-proto/pb_schema/common/ruid.d.ts +0 -51
  862. package/lib/generated-proto/pb_schema/common/value.d.ts +0 -144
  863. package/lib/generated-proto/pb_schema/google/api/annotations.d.ts +0 -1
  864. package/lib/generated-proto/pb_schema/google/api/annotations.js +0 -9
  865. package/lib/generated-proto/pb_schema/google/api/annotations.js.map +0 -1
  866. package/lib/generated-proto/pb_schema/google/api/http.d.ts +0 -3630
  867. package/lib/generated-proto/pb_schema/google/api/http.js +0 -194
  868. package/lib/generated-proto/pb_schema/google/api/http.js.map +0 -1
  869. package/lib/generated-proto/pb_schema/google/protobuf/any.d.ts +0 -32
  870. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +0 -50896
  871. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js +0 -1857
  872. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js.map +0 -1
  873. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +0 -32
  874. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +0 -119
  875. package/lib/generated-proto/pb_schema/lenses/geocircle.d.ts +0 -42
  876. package/lib/generated-proto/pb_schema/lenses/geopoint.d.ts +0 -32
  877. package/lib/generated-proto/pb_schema/lenses/launch_params.d.ts +0 -29
  878. package/lib/generated-proto/pb_schema/lenses/launchdata.d.ts +0 -396
  879. package/lib/generated-proto/pb_schema/lenses/lures.d.ts +0 -111
  880. package/lib/generated-proto/pb_schema/lenses/persistent_store.d.ts +0 -29
  881. package/lib/generated-proto/pb_schema/lenses/remote_api/remote_api_service.d.ts +0 -569
  882. package/lib/generated-proto/pb_schema/lenses/snappable.d.ts +0 -902
  883. package/lib/generated-proto/pb_schema/lenses/user_data.d.ts +0 -229
  884. package/lib/handlers/HandlerChainBuilder.d.ts +0 -110
  885. package/lib/handlers/HandlerChainBuilder.js +0 -199
  886. package/lib/handlers/HandlerChainBuilder.js.map +0 -1
  887. package/lib/handlers/arrayBufferParsingHandler.d.ts +0 -10
  888. package/lib/handlers/arrayBufferParsingHandler.js +0 -18
  889. package/lib/handlers/arrayBufferParsingHandler.js.map +0 -1
  890. package/lib/handlers/batchingHandler.d.ts +0 -31
  891. package/lib/handlers/batchingHandler.js +0 -76
  892. package/lib/handlers/batchingHandler.js.map +0 -1
  893. package/lib/handlers/cameraKitServiceFetchHandlerFactory.d.ts +0 -12
  894. package/lib/handlers/cameraKitServiceFetchHandlerFactory.js +0 -19
  895. package/lib/handlers/cameraKitServiceFetchHandlerFactory.js.map +0 -1
  896. package/lib/handlers/debugHandler.d.ts +0 -8
  897. package/lib/handlers/debugHandler.js +0 -27
  898. package/lib/handlers/debugHandler.js.map +0 -1
  899. package/lib/handlers/defaultFetchHandler.d.ts +0 -15
  900. package/lib/handlers/defaultFetchHandler.js +0 -38
  901. package/lib/handlers/defaultFetchHandler.js.map +0 -1
  902. package/lib/handlers/headersModifyingFetchHandler.d.ts +0 -8
  903. package/lib/handlers/headersModifyingFetchHandler.js +0 -17
  904. package/lib/handlers/headersModifyingFetchHandler.js.map +0 -1
  905. package/lib/handlers/mappingHandler.d.ts +0 -19
  906. package/lib/handlers/mappingHandler.js +0 -67
  907. package/lib/handlers/mappingHandler.js.map +0 -1
  908. package/lib/handlers/noCorsRetryingFetchHandler.d.ts +0 -48
  909. package/lib/handlers/noCorsRetryingFetchHandler.js +0 -95
  910. package/lib/handlers/noCorsRetryingFetchHandler.js.map +0 -1
  911. package/lib/handlers/persistingHandler.d.ts +0 -14
  912. package/lib/handlers/persistingHandler.js +0 -71
  913. package/lib/handlers/persistingHandler.js.map +0 -1
  914. package/lib/handlers/rateLimitingHandler.d.ts +0 -24
  915. package/lib/handlers/rateLimitingHandler.js +0 -45
  916. package/lib/handlers/rateLimitingHandler.js.map +0 -1
  917. package/lib/handlers/requestStateEmittingHandler.d.ts +0 -41
  918. package/lib/handlers/requestStateEmittingHandler.js +0 -45
  919. package/lib/handlers/requestStateEmittingHandler.js.map +0 -1
  920. package/lib/handlers/responseCachingHandler.d.ts +0 -34
  921. package/lib/handlers/responseCachingHandler.js +0 -109
  922. package/lib/handlers/responseCachingHandler.js.map +0 -1
  923. package/lib/handlers/retryingHandler.d.ts +0 -48
  924. package/lib/handlers/retryingHandler.js +0 -86
  925. package/lib/handlers/retryingHandler.js.map +0 -1
  926. package/lib/handlers/timeoutHandler.d.ts +0 -18
  927. package/lib/handlers/timeoutHandler.js +0 -30
  928. package/lib/handlers/timeoutHandler.js.map +0 -1
  929. package/lib/handlers/utils.d.ts +0 -12
  930. package/lib/handlers/utils.js +0 -19
  931. package/lib/handlers/utils.js.map +0 -1
  932. package/lib/index.d.ts +0 -42
  933. package/lib/index.js +0 -36
  934. package/lib/index.js.map +0 -1
  935. package/lib/legal/legalPrompt.d.ts +0 -20
  936. package/lib/legal/legalPrompt.js +0 -135
  937. package/lib/legal/legalPrompt.js.map +0 -1
  938. package/lib/legal/legalState.d.ts +0 -50
  939. package/lib/legal/legalState.js +0 -163
  940. package/lib/legal/legalState.js.map +0 -1
  941. package/lib/lens/Lens.d.ts +0 -115
  942. package/lib/lens/Lens.js +0 -84
  943. package/lib/lens/Lens.js.map +0 -1
  944. package/lib/lens/LensLaunchData.d.ts +0 -40
  945. package/lib/lens/LensLaunchData.js +0 -37
  946. package/lib/lens/LensLaunchData.js.map +0 -1
  947. package/lib/lens/LensPersistenceStore.d.ts +0 -7
  948. package/lib/lens/LensPersistenceStore.js.map +0 -1
  949. package/lib/lens/LensRepository.d.ts +0 -137
  950. package/lib/lens/LensRepository.js +0 -237
  951. package/lib/lens/LensRepository.js.map +0 -1
  952. package/lib/lens/LensSource.d.ts +0 -43
  953. package/lib/lens/LensSource.js +0 -42
  954. package/lib/lens/LensSource.js.map +0 -1
  955. package/lib/lens/assets/LensAssetRepository.d.ts +0 -99
  956. package/lib/lens/assets/LensAssetRepository.js +0 -184
  957. package/lib/lens/assets/LensAssetRepository.js.map +0 -1
  958. package/lib/lens/assets/LensAssetsProvider.d.ts +0 -27
  959. package/lib/lens/assets/LensAssetsProvider.js +0 -68
  960. package/lib/lens/assets/LensAssetsProvider.js.map +0 -1
  961. package/lib/lens/assets/deviceDependentAssetLoader.d.ts +0 -11
  962. package/lib/lens/assets/deviceDependentAssetLoader.js +0 -59
  963. package/lib/lens/assets/deviceDependentAssetLoader.js.map +0 -1
  964. package/lib/lens/assets/remoteMediaAssetLoaderFactory.d.ts +0 -10
  965. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js +0 -27
  966. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js.map +0 -1
  967. package/lib/lens/assets/staticAssetLoader.d.ts +0 -10
  968. package/lib/lens/assets/staticAssetLoader.js +0 -25
  969. package/lib/lens/assets/staticAssetLoader.js.map +0 -1
  970. package/lib/lens/cameraKitLensSource.d.ts +0 -17
  971. package/lib/lens/cameraKitLensSource.js +0 -104
  972. package/lib/lens/cameraKitLensSource.js.map +0 -1
  973. package/lib/lens/fetchWatermarkLens.d.ts +0 -11
  974. package/lib/lens/fetchWatermarkLens.js +0 -27
  975. package/lib/lens/fetchWatermarkLens.js.map +0 -1
  976. package/lib/lens-client-interface/exif.d.ts +0 -20
  977. package/lib/lens-client-interface/exif.js +0 -61
  978. package/lib/lens-client-interface/exif.js.map +0 -1
  979. package/lib/lens-client-interface/imagePicker.d.ts +0 -8
  980. package/lib/lens-client-interface/imagePicker.js +0 -128
  981. package/lib/lens-client-interface/imagePicker.js.map +0 -1
  982. package/lib/lens-client-interface/lensClientInterface.d.ts +0 -13
  983. package/lib/lens-client-interface/lensClientInterface.js +0 -30
  984. package/lib/lens-client-interface/lensClientInterface.js.map +0 -1
  985. package/lib/lens-core-module/generated-types.d.ts +0 -469
  986. package/lib/lens-core-module/generated-types.js.map +0 -1
  987. package/lib/lens-core-module/lensCore.d.ts +0 -43
  988. package/lib/lens-core-module/lensCore.js +0 -59
  989. package/lib/lens-core-module/lensCore.js.map +0 -1
  990. package/lib/lens-core-module/lensCoreError.d.ts +0 -15
  991. package/lib/lens-core-module/lensCoreError.js +0 -43
  992. package/lib/lens-core-module/lensCoreError.js.map +0 -1
  993. package/lib/lens-core-module/loader/bootstrapURLs.d.ts +0 -12
  994. package/lib/lens-core-module/loader/bootstrapURLs.js +0 -48
  995. package/lib/lens-core-module/loader/bootstrapURLs.js.map +0 -1
  996. package/lib/lens-core-module/loader/lensCoreFactory.d.ts +0 -17
  997. package/lib/lens-core-module/loader/lensCoreFactory.js +0 -76
  998. package/lib/lens-core-module/loader/lensCoreFactory.js.map +0 -1
  999. package/lib/lensCoreWasmVersions.d.ts +0 -6
  1000. package/lib/lensCoreWasmVersions.js +0 -6
  1001. package/lib/lensCoreWasmVersions.js.map +0 -1
  1002. package/lib/logger/errorLoggingDecorator.d.ts +0 -9
  1003. package/lib/logger/errorLoggingDecorator.js +0 -32
  1004. package/lib/logger/errorLoggingDecorator.js.map +0 -1
  1005. package/lib/logger/logEntries.d.ts +0 -15
  1006. package/lib/logger/logEntries.js +0 -14
  1007. package/lib/logger/logEntries.js.map +0 -1
  1008. package/lib/logger/logger.d.ts +0 -40
  1009. package/lib/logger/logger.js +0 -53
  1010. package/lib/logger/logger.js.map +0 -1
  1011. package/lib/logger/registerLogEntriesSubscriber.d.ts +0 -14
  1012. package/lib/logger/registerLogEntriesSubscriber.js +0 -35
  1013. package/lib/logger/registerLogEntriesSubscriber.js.map +0 -1
  1014. package/lib/media-sources/CameraKitSource.d.ts +0 -126
  1015. package/lib/media-sources/CameraKitSource.js +0 -138
  1016. package/lib/media-sources/CameraKitSource.js.map +0 -1
  1017. package/lib/media-sources/FunctionSource.d.ts +0 -41
  1018. package/lib/media-sources/FunctionSource.js +0 -128
  1019. package/lib/media-sources/FunctionSource.js.map +0 -1
  1020. package/lib/media-sources/ImageSource.d.ts +0 -11
  1021. package/lib/media-sources/ImageSource.js +0 -16
  1022. package/lib/media-sources/ImageSource.js.map +0 -1
  1023. package/lib/media-sources/MediaStreamSource.d.ts +0 -29
  1024. package/lib/media-sources/MediaStreamSource.js +0 -137
  1025. package/lib/media-sources/MediaStreamSource.js.map +0 -1
  1026. package/lib/media-sources/VideoSource.d.ts +0 -25
  1027. package/lib/media-sources/VideoSource.js +0 -22
  1028. package/lib/media-sources/VideoSource.js.map +0 -1
  1029. package/lib/metrics/businessEventsReporter.d.ts +0 -39
  1030. package/lib/metrics/businessEventsReporter.js +0 -195
  1031. package/lib/metrics/businessEventsReporter.js.map +0 -1
  1032. package/lib/metrics/metricsEventTarget.d.ts +0 -41
  1033. package/lib/metrics/metricsEventTarget.js +0 -11
  1034. package/lib/metrics/metricsEventTarget.js.map +0 -1
  1035. package/lib/metrics/operational/Count.d.ts +0 -19
  1036. package/lib/metrics/operational/Count.js +0 -33
  1037. package/lib/metrics/operational/Count.js.map +0 -1
  1038. package/lib/metrics/operational/Histogram.d.ts +0 -17
  1039. package/lib/metrics/operational/Histogram.js +0 -27
  1040. package/lib/metrics/operational/Histogram.js.map +0 -1
  1041. package/lib/metrics/operational/Metric.d.ts +0 -20
  1042. package/lib/metrics/operational/Metric.js +0 -28
  1043. package/lib/metrics/operational/Metric.js.map +0 -1
  1044. package/lib/metrics/operational/Timer.d.ts +0 -94
  1045. package/lib/metrics/operational/Timer.js +0 -108
  1046. package/lib/metrics/operational/Timer.js.map +0 -1
  1047. package/lib/metrics/reporters/reportBenchmarks.d.ts +0 -10
  1048. package/lib/metrics/reporters/reportBenchmarks.js +0 -30
  1049. package/lib/metrics/reporters/reportBenchmarks.js.map +0 -1
  1050. package/lib/metrics/reporters/reportGlobalException.d.ts +0 -26
  1051. package/lib/metrics/reporters/reportGlobalException.js +0 -106
  1052. package/lib/metrics/reporters/reportGlobalException.js.map +0 -1
  1053. package/lib/metrics/reporters/reportHttpMetrics.d.ts +0 -10
  1054. package/lib/metrics/reporters/reportHttpMetrics.js +0 -110
  1055. package/lib/metrics/reporters/reportHttpMetrics.js.map +0 -1
  1056. package/lib/metrics/reporters/reportLegalState.d.ts +0 -15
  1057. package/lib/metrics/reporters/reportLegalState.js +0 -32
  1058. package/lib/metrics/reporters/reportLegalState.js.map +0 -1
  1059. package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +0 -38
  1060. package/lib/metrics/reporters/reportLensAndAssetDownload.js +0 -92
  1061. package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +0 -1
  1062. package/lib/metrics/reporters/reportLensValidationFailed.d.ts +0 -20
  1063. package/lib/metrics/reporters/reportLensValidationFailed.js +0 -24
  1064. package/lib/metrics/reporters/reportLensValidationFailed.js.map +0 -1
  1065. package/lib/metrics/reporters/reportLensView.d.ts +0 -36
  1066. package/lib/metrics/reporters/reportLensView.js +0 -137
  1067. package/lib/metrics/reporters/reportLensView.js.map +0 -1
  1068. package/lib/metrics/reporters/reportLensWait.d.ts +0 -32
  1069. package/lib/metrics/reporters/reportLensWait.js +0 -60
  1070. package/lib/metrics/reporters/reportLensWait.js.map +0 -1
  1071. package/lib/metrics/reporters/reportPlatformCapabilities.d.ts +0 -12
  1072. package/lib/metrics/reporters/reportPlatformCapabilities.js +0 -19
  1073. package/lib/metrics/reporters/reportPlatformCapabilities.js.map +0 -1
  1074. package/lib/metrics/reporters/reportSessionException.d.ts +0 -17
  1075. package/lib/metrics/reporters/reportSessionException.js +0 -12
  1076. package/lib/metrics/reporters/reportSessionException.js.map +0 -1
  1077. package/lib/metrics/reporters/reportUserSession.d.ts +0 -14
  1078. package/lib/metrics/reporters/reportUserSession.js +0 -66
  1079. package/lib/metrics/reporters/reportUserSession.js.map +0 -1
  1080. package/lib/metrics/reporters/reporters.d.ts +0 -46
  1081. package/lib/metrics/reporters/reporters.js +0 -35
  1082. package/lib/metrics/reporters/reporters.js.map +0 -1
  1083. package/lib/namedErrors.d.ts +0 -124
  1084. package/lib/namedErrors.js +0 -58
  1085. package/lib/namedErrors.js.map +0 -1
  1086. package/lib/observable-operators/unsubscribed.d.ts +0 -12
  1087. package/lib/observable-operators/unsubscribed.js +0 -27
  1088. package/lib/observable-operators/unsubscribed.js.map +0 -1
  1089. package/lib/persistence/ExpiringPersistence.d.ts +0 -21
  1090. package/lib/persistence/ExpiringPersistence.js +0 -71
  1091. package/lib/persistence/ExpiringPersistence.js.map +0 -1
  1092. package/lib/persistence/IndexedDBPersistence.d.ts +0 -47
  1093. package/lib/persistence/IndexedDBPersistence.js +0 -190
  1094. package/lib/persistence/IndexedDBPersistence.js.map +0 -1
  1095. package/lib/persistence/Persistence.d.ts +0 -25
  1096. package/lib/persistence/Persistence.js +0 -10
  1097. package/lib/persistence/Persistence.js.map +0 -1
  1098. package/lib/platform/assertPlatformSupported.d.ts +0 -4
  1099. package/lib/platform/assertPlatformSupported.js +0 -15
  1100. package/lib/platform/assertPlatformSupported.js.map +0 -1
  1101. package/lib/platform/cameraKitUserAgent.d.ts +0 -2
  1102. package/lib/platform/cameraKitUserAgent.js +0 -20
  1103. package/lib/platform/cameraKitUserAgent.js.map +0 -1
  1104. package/lib/platform/platformCapabilities.d.ts +0 -50
  1105. package/lib/platform/platformCapabilities.js +0 -128
  1106. package/lib/platform/platformCapabilities.js.map +0 -1
  1107. package/lib/platform/platformInfo.d.ts +0 -43
  1108. package/lib/platform/platformInfo.js +0 -228
  1109. package/lib/platform/platformInfo.js.map +0 -1
  1110. package/lib/remote-configuration/cofHandler.d.ts +0 -29
  1111. package/lib/remote-configuration/cofHandler.js +0 -115
  1112. package/lib/remote-configuration/cofHandler.js.map +0 -1
  1113. package/lib/remote-configuration/preloadConfiguration.d.ts +0 -7
  1114. package/lib/remote-configuration/preloadConfiguration.js.map +0 -1
  1115. package/lib/remote-configuration/remoteConfiguration.d.ts +0 -34
  1116. package/lib/remote-configuration/remoteConfiguration.js +0 -73
  1117. package/lib/remote-configuration/remoteConfiguration.js.map +0 -1
  1118. package/lib/session/CameraKitSession.d.ts +0 -255
  1119. package/lib/session/CameraKitSession.js +0 -440
  1120. package/lib/session/CameraKitSession.js.map +0 -1
  1121. package/lib/session/CameraKitSessionEvents.d.ts +0 -37
  1122. package/lib/session/CameraKitSessionEvents.js +0 -38
  1123. package/lib/session/CameraKitSessionEvents.js.map +0 -1
  1124. package/lib/session/LensKeyboard.d.ts +0 -89
  1125. package/lib/session/LensKeyboard.js +0 -95
  1126. package/lib/session/LensKeyboard.js.map +0 -1
  1127. package/lib/session/LensPerformanceMeasurement.d.ts +0 -57
  1128. package/lib/session/LensPerformanceMeasurement.js +0 -114
  1129. package/lib/session/LensPerformanceMeasurement.js.map +0 -1
  1130. package/lib/session/LensPerformanceMetrics.d.ts +0 -31
  1131. package/lib/session/LensPerformanceMetrics.js +0 -59
  1132. package/lib/session/LensPerformanceMetrics.js.map +0 -1
  1133. package/lib/session/lensState.d.ts +0 -31
  1134. package/lib/session/lensState.js +0 -261
  1135. package/lib/session/lensState.js.map +0 -1
  1136. package/lib/session/sessionState.d.ts +0 -10
  1137. package/lib/session/sessionState.js.map +0 -1
  1138. package/lib/transforms/Transform2D.d.ts +0 -22
  1139. package/lib/transforms/Transform2D.js +0 -19
  1140. package/lib/transforms/Transform2D.js.map +0 -1
  1141. package/lib/utils.d.ts +0 -3
  1142. /package/{lib → dist}/benchmark/webglUtils.js +0 -0
  1143. /package/{lib → dist}/benchmark/webglUtils.js.map +0 -0
  1144. /package/{lib → dist}/clients/lensesClient.js +0 -0
  1145. /package/{lib → dist}/common/date.js +0 -0
  1146. /package/{lib → dist}/common/date.js.map +0 -0
  1147. /package/{lib → dist}/common/getFilename.js +0 -0
  1148. /package/{lib → dist}/common/getFilename.js.map +0 -0
  1149. /package/{lib → dist}/common/memoize.js +0 -0
  1150. /package/{lib → dist}/common/memoize.js.map +0 -0
  1151. /package/{lib → dist}/common/time.js +0 -0
  1152. /package/{lib → dist}/common/time.js.map +0 -0
  1153. /package/{lib → dist}/common/types.js +0 -0
  1154. /package/{lib → dist}/dependency-injection/Injectable.js +0 -0
  1155. /package/{lib → dist}/dependency-injection/types.js +0 -0
  1156. /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js +0 -0
  1157. /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js.map +0 -0
  1158. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js +0 -0
  1159. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +0 -0
  1160. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js +0 -0
  1161. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js.map +0 -0
  1162. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js +0 -0
  1163. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js.map +0 -0
  1164. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js +0 -0
  1165. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js.map +0 -0
  1166. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js +0 -0
  1167. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js.map +0 -0
  1168. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js +0 -0
  1169. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js.map +0 -0
  1170. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js +0 -0
  1171. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js.map +0 -0
  1172. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js +0 -0
  1173. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js.map +0 -0
  1174. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js +0 -0
  1175. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js.map +0 -0
  1176. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js +0 -0
  1177. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js.map +0 -0
  1178. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js +0 -0
  1179. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +0 -0
  1180. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js +0 -0
  1181. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js.map +0 -0
  1182. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js +0 -0
  1183. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js.map +0 -0
  1184. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js +0 -0
  1185. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js.map +0 -0
  1186. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js +0 -0
  1187. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js.map +0 -0
  1188. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js +0 -0
  1189. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js.map +0 -0
  1190. /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js +0 -0
  1191. /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js.map +0 -0
  1192. /package/{lib → dist}/generated-proto/pb_schema/common/value.js +0 -0
  1193. /package/{lib → dist}/generated-proto/pb_schema/common/value.js.map +0 -0
  1194. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js +0 -0
  1195. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js.map +0 -0
  1196. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js +0 -0
  1197. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js.map +0 -0
  1198. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js +0 -0
  1199. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js.map +0 -0
  1200. /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js +0 -0
  1201. /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js.map +0 -0
  1202. /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js +0 -0
  1203. /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js.map +0 -0
  1204. /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js +0 -0
  1205. /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js.map +0 -0
  1206. /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js +0 -0
  1207. /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js.map +0 -0
  1208. /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js +0 -0
  1209. /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js.map +0 -0
  1210. /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js +0 -0
  1211. /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js.map +0 -0
  1212. /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js +0 -0
  1213. /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js.map +0 -0
  1214. /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js +0 -0
  1215. /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js.map +0 -0
  1216. /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js +0 -0
  1217. /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js.map +0 -0
  1218. /package/{lib → dist}/lens/LensPersistenceStore.js +0 -0
  1219. /package/{lib → dist}/lens-core-module/generated-types.js +0 -0
  1220. /package/{lib → dist}/remote-configuration/preloadConfiguration.js +0 -0
  1221. /package/{lib → dist}/session/sessionState.js +0 -0
  1222. /package/{lib → dist}/utils.js +0 -0
  1223. /package/{lib → dist}/utils.js.map +0 -0
@@ -0,0 +1,140 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Subject, map } from "rxjs";
3
+ import { copyDefinedProperties } from "../common/copyDefinedProperties";
4
+ import { ensureError, stringifyErrorMessage } from "../common/errorHelpers";
5
+ import { Transform2D } from "../transforms/Transform2D";
6
+ import { debounceTimeAfter } from "../observable-operators/debounceTimeAfter";
7
+ import { CameraKitSource, defaultDeviceInfo } from "./CameraKitSource";
8
+ const defaultOptions = Object.assign(Object.assign({}, defaultDeviceInfo), { transform: Transform2D.Identity, disableSourceAudio: false });
9
+ function closeWorklet(worklet) {
10
+ if (!worklet)
11
+ return;
12
+ worklet.port.close();
13
+ worklet.port.onmessage = null;
14
+ worklet.disconnect();
15
+ }
16
+ function closeAudioContext(audioContext) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ if (!audioContext || audioContext.state === "closed")
19
+ return;
20
+ return audioContext.close();
21
+ });
22
+ }
23
+ function handleAudioProcessingErrors(errors, reportError) {
24
+ return errors
25
+ .pipe(debounceTimeAfter(1, 1000), map((event) => {
26
+ if (event.type === "initial") {
27
+ reportError(new Error("The first audio processing error before debouncing.", { cause: event.value }));
28
+ }
29
+ else if (event.type === "debounced") {
30
+ const errorMessages = [...new Set(event.values.map(stringifyErrorMessage))].join("\n");
31
+ reportError(new Error(`Debounced ${event.values.length} audio processing errors.`, {
32
+ cause: new Error(errorMessages),
33
+ }));
34
+ }
35
+ }))
36
+ .subscribe();
37
+ }
38
+ export function createMediaStreamSource(stream, options = {}) {
39
+ var _a;
40
+ const { facingMode } = stream.getVideoTracks().length > 0 ? stream.getVideoTracks()[0].getSettings() : { facingMode: undefined };
41
+ const detectedCameraType = facingMode === "user" || facingMode === "environment" ? facingMode : undefined;
42
+ const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaultOptions), copyDefinedProperties(options)), { cameraType: (_a = options.cameraType) !== null && _a !== void 0 ? _a : detectedCameraType });
43
+ const enableSourceAudio = stream.getAudioTracks().length > 0 && !optionsWithDefaults.disableSourceAudio;
44
+ const simulateStereoAudio = true;
45
+ const sampleRate = 44100;
46
+ let audioContext = undefined;
47
+ let audioSource = undefined;
48
+ let worklet = undefined;
49
+ let microphoneRecorderUrl;
50
+ if (enableSourceAudio) {
51
+ const microphoneRecorderWorklet = `
52
+ class MicrophoneWorkletProcessor extends AudioWorkletProcessor {
53
+ process(inputs, outputs, parameters) {
54
+ this.port.postMessage({
55
+ eventType: 'data',
56
+ buffer: inputs
57
+ });
58
+ return true;
59
+ }
60
+ }
61
+ registerProcessor('microphone-worklet', MicrophoneWorkletProcessor);`;
62
+ const microphoneRecorderBlob = new Blob([microphoneRecorderWorklet], {
63
+ type: "application/javascript",
64
+ });
65
+ microphoneRecorderUrl = URL.createObjectURL(microphoneRecorderBlob);
66
+ }
67
+ let audioProcessingErrorSubscription = undefined;
68
+ return new CameraKitSource({ media: stream }, {
69
+ onAttach: (source, lensCore, reportError) => __awaiter(this, void 0, void 0, function* () {
70
+ yield source.setTransform(optionsWithDefaults.transform);
71
+ if (enableSourceAudio) {
72
+ const audioProcessingErrors = new Subject();
73
+ audioProcessingErrorSubscription = handleAudioProcessingErrors(audioProcessingErrors, reportError);
74
+ yield lensCore.setAudioParameters({
75
+ parameters: {
76
+ numChannels: simulateStereoAudio ? 2 : 1,
77
+ sampleRate,
78
+ },
79
+ });
80
+ try {
81
+ closeWorklet(worklet);
82
+ audioSource === null || audioSource === void 0 ? void 0 : audioSource.disconnect();
83
+ yield closeAudioContext(audioContext);
84
+ }
85
+ catch (error) {
86
+ reportError(ensureError(error));
87
+ }
88
+ audioContext = new AudioContext();
89
+ audioSource = audioContext.createMediaStreamSource(stream);
90
+ const scopedAudioSource = audioSource;
91
+ audioContext.audioWorklet
92
+ .addModule(microphoneRecorderUrl)
93
+ .then(() => {
94
+ if (audioContext) {
95
+ worklet = new AudioWorkletNode(audioContext, "microphone-worklet");
96
+ scopedAudioSource.connect(worklet);
97
+ worklet.connect(audioContext.destination);
98
+ worklet.port.onmessage = (e) => {
99
+ if (e.data.eventType === "data") {
100
+ const leftSamples = e.data.buffer[0][0];
101
+ if (!leftSamples)
102
+ return;
103
+ let inputBuffers = [leftSamples];
104
+ if (simulateStereoAudio) {
105
+ const rightSamples = e.data.buffer[0].length > 1 ? e.data.buffer[0][1] : leftSamples.slice();
106
+ inputBuffers.push(rightSamples);
107
+ }
108
+ lensCore
109
+ .processAudioSampleBuffer({ input: inputBuffers })
110
+ .catch((error) => audioProcessingErrors.next(error));
111
+ }
112
+ };
113
+ }
114
+ })
115
+ .catch((error) => {
116
+ reportError(error);
117
+ });
118
+ }
119
+ }),
120
+ onDetach: (reportError) => __awaiter(this, void 0, void 0, function* () {
121
+ if (worklet) {
122
+ closeWorklet(worklet);
123
+ worklet = undefined;
124
+ }
125
+ if (audioSource) {
126
+ audioSource.disconnect();
127
+ audioSource = undefined;
128
+ }
129
+ if (audioContext) {
130
+ yield closeAudioContext(audioContext).catch(reportError);
131
+ audioContext = undefined;
132
+ }
133
+ if (audioProcessingErrorSubscription) {
134
+ audioProcessingErrorSubscription.unsubscribe();
135
+ audioProcessingErrorSubscription = undefined;
136
+ }
137
+ }),
138
+ }, optionsWithDefaults);
139
+ }
140
+ //# sourceMappingURL=MediaStreamSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaStreamSource.js","sourceRoot":"","sources":["../../src/media-sources/MediaStreamSource.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,cAAc,mCACb,iBAAiB,KACpB,SAAS,EAAE,WAAW,CAAC,QAAQ,EAC/B,kBAAkB,EAAE,KAAK,GAC5B,CAAC;AAEF,SAAS,YAAY,CAAC,OAAqC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;AACzB,CAAC;AAED,SAAe,iBAAiB,CAAC,YAAsC;;QACnE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QAC7D,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CAAA;AAED,SAAS,2BAA2B,CAAC,MAAiC,EAAE,WAAmC;IACvG,OAAO,MAAM;SACR,IAAI,CAED,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EAE1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACV,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC1B,WAAW,CACP,IAAI,KAAK,CAAC,qDAAqD,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC;SACL;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YACnC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,WAAW,CACP,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,2BAA2B,EAAE;gBACnE,KAAK,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC;aAClC,CAAC,CACL,CAAC;SACL;IACL,CAAC,CAAC,CACL;SACA,SAAS,EAAE,CAAC;AACrB,CAAC;AA8BD,MAAM,UAAU,uBAAuB,CACnC,MAAmB,EACnB,UAA6C,EAAE;;IAE/C,MAAM,EAAE,UAAU,EAAE,GAChB,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAE9G,MAAM,kBAAkB,GAAG,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1G,MAAM,mBAAmB,iDAClB,cAAc,GACd,qBAAqB,CAAC,OAAO,CAAC,KACjC,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,kBAAkB,GACvD,CAAC;IAEF,MAAM,iBAAiB,GAAY,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;IAEjH,MAAM,mBAAmB,GAAG,IAAI,CAAC;IACjC,MAAM,UAAU,GAAW,KAAK,CAAC;IAEjC,IAAI,YAAY,GAA6B,SAAS,CAAC;IACvD,IAAI,WAAW,GAA2C,SAAS,CAAC;IACpE,IAAI,OAAO,GAAiC,SAAS,CAAC;IACtD,IAAI,qBAA6B,CAAC;IAElC,IAAI,iBAAiB,EAAE;QAEnB,MAAM,yBAAyB,GAAG;;;;;;;;;;6EAUmC,CAAC;QACtE,MAAM,sBAAsB,GAAG,IAAI,IAAI,CAAC,CAAC,yBAAyB,CAAC,EAAE;YACjE,IAAI,EAAE,wBAAwB;SACjC,CAAC,CAAC;QACH,qBAAqB,GAAG,GAAG,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;KACvE;IAGD,IAAI,gCAAgC,GAA6B,SAAS,CAAC;IAE3E,OAAO,IAAI,eAAe,CACtB,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB;QACI,QAAQ,EAAE,CAAO,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;YAC9C,MAAM,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAEzD,IAAI,iBAAiB,EAAE;gBASnB,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAiB,CAAC;gBAC3D,gCAAgC,GAAG,2BAA2B,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;gBAGnG,MAAM,QAAQ,CAAC,kBAAkB,CAAC;oBAC9B,UAAU,EAAE;wBACR,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxC,UAAU;qBACb;iBACJ,CAAC,CAAC;gBAEH,IAAI;oBAGA,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE,CAAC;oBAC1B,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;iBACzC;gBAAC,OAAO,KAAK,EAAE;oBAEZ,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnC;gBAED,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;gBAClC,WAAW,GAAG,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,iBAAiB,GAAG,WAAW,CAAC;gBACtC,YAAY,CAAC,YAAY;qBACpB,SAAS,CAAC,qBAAqB,CAAC;qBAChC,IAAI,CAAC,GAAG,EAAE;oBACP,IAAI,YAAY,EAAE;wBACd,OAAO,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;wBACnE,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBAM1C,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;4BAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;gCAG7B,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC;gCAIxD,IAAI,CAAC,WAAW;oCAAE,OAAO;gCAEzB,IAAI,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;gCACjC,IAAI,mBAAmB,EAAE;oCACrB,MAAM,YAAY,GACd,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oCAC5E,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iCACnC;gCAED,QAAQ;qCACH,wBAAwB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;qCACjD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;6BAC5D;wBACL,CAAC,CAAC;qBACL;gBACL,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;oBACpB,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACV;QACL,CAAC,CAAA;QACD,QAAQ,EAAE,CAAO,WAAW,EAAE,EAAE;YAC5B,IAAI,OAAO,EAAE;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,GAAG,SAAS,CAAC;aACvB;YACD,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,UAAU,EAAE,CAAC;gBACzB,WAAW,GAAG,SAAS,CAAC;aAC3B;YACD,IAAI,YAAY,EAAE;gBACd,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACzD,YAAY,GAAG,SAAS,CAAC;aAC5B;YACD,IAAI,gCAAgC,EAAE;gBAClC,gCAAgC,CAAC,WAAW,EAAE,CAAC;gBAC/C,gCAAgC,GAAG,SAAS,CAAC;aAChD;QACL,CAAC,CAAA;KACJ,EACD,mBAAmB,CACtB,CAAC;AACN,CAAC","sourcesContent":["import type { Observable, Subscription } from \"rxjs\";\nimport { Subject, map } from \"rxjs\";\nimport { copyDefinedProperties } from \"../common/copyDefinedProperties\";\nimport { ensureError, stringifyErrorMessage } from \"../common/errorHelpers\";\nimport type { LensCoreError } from \"../lens-core-module/lensCoreError\";\nimport { Transform2D } from \"../transforms/Transform2D\";\nimport { debounceTimeAfter } from \"../observable-operators/debounceTimeAfter\";\nimport type { CameraKitDeviceOptions } from \"./CameraKitSource\";\nimport { CameraKitSource, defaultDeviceInfo } from \"./CameraKitSource\";\n\nconst defaultOptions: MediaStreamSourceOptions = {\n ...defaultDeviceInfo,\n transform: Transform2D.Identity,\n disableSourceAudio: false,\n};\n\nfunction closeWorklet(worklet: AudioWorkletNode | undefined) {\n if (!worklet) return;\n worklet.port.close();\n worklet.port.onmessage = null;\n worklet.disconnect();\n}\n\nasync function closeAudioContext(audioContext: AudioContext | undefined) {\n if (!audioContext || audioContext.state === \"closed\") return;\n return audioContext.close();\n}\n\nfunction handleAudioProcessingErrors(errors: Observable<LensCoreError>, reportError: (error: Error) => void) {\n return errors\n .pipe(\n // Emit the first error immediately and debounce any subsequent errors for 1 second.\n debounceTimeAfter(1, 1000),\n\n map((event) => {\n if (event.type === \"initial\") {\n reportError(\n new Error(\"The first audio processing error before debouncing.\", { cause: event.value })\n );\n } else if (event.type === \"debounced\") {\n const errorMessages = [...new Set(event.values.map(stringifyErrorMessage))].join(\"\\n\");\n reportError(\n new Error(`Debounced ${event.values.length} audio processing errors.`, {\n cause: new Error(errorMessages),\n })\n );\n }\n })\n )\n .subscribe();\n}\n\n/**\n * Media stream source options.\n *\n * @category Rendering\n */\nexport interface MediaStreamSourceOptions extends CameraKitDeviceOptions {\n /**\n * Specifies the 2D transformation to apply to the Lens.\n * By default, CameraKit applies no transformation.\n */\n transform: Transform2D;\n\n /**\n * Indicates whether the audio from the source should be disabled.\n * By default, CameraKit passes audio to the Lens.\n */\n disableSourceAudio: boolean;\n}\n\n/**\n * Create a {@link CameraKitSource} from any\n * [MediaStream](https://developer.mozilla.org/en-US/docs/Web/API/MediaStream).\n *\n * @param stream Any MediaStream, such as obtained via `canvas.captureStream()` or `mediaDevices.getUserMedia()`.\n * @param options Options.\n *\n * @category Rendering\n */\nexport function createMediaStreamSource(\n stream: MediaStream,\n options: Partial<MediaStreamSourceOptions> = {}\n): CameraKitSource {\n const { facingMode } =\n stream.getVideoTracks().length > 0 ? stream.getVideoTracks()[0].getSettings() : { facingMode: undefined };\n\n const detectedCameraType = facingMode === \"user\" || facingMode === \"environment\" ? facingMode : undefined;\n\n const optionsWithDefaults = {\n ...defaultOptions,\n ...copyDefinedProperties(options),\n cameraType: options.cameraType ?? detectedCameraType,\n };\n\n const enableSourceAudio: boolean = stream.getAudioTracks().length > 0 && !optionsWithDefaults.disableSourceAudio;\n\n const simulateStereoAudio = true;\n const sampleRate: number = 44100;\n\n let audioContext: AudioContext | undefined = undefined;\n let audioSource: MediaStreamAudioSourceNode | undefined = undefined;\n let worklet: AudioWorkletNode | undefined = undefined;\n let microphoneRecorderUrl: string;\n\n if (enableSourceAudio) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Using_AudioWorklet\n const microphoneRecorderWorklet = `\n class MicrophoneWorkletProcessor extends AudioWorkletProcessor {\n process(inputs, outputs, parameters) {\n this.port.postMessage({\n eventType: 'data',\n buffer: inputs\n });\n return true;\n }\n }\n registerProcessor('microphone-worklet', MicrophoneWorkletProcessor);`;\n const microphoneRecorderBlob = new Blob([microphoneRecorderWorklet], {\n type: \"application/javascript\",\n });\n microphoneRecorderUrl = URL.createObjectURL(microphoneRecorderBlob);\n }\n\n // Subscription for audio processing errors.\n let audioProcessingErrorSubscription: Subscription | undefined = undefined;\n\n return new CameraKitSource(\n { media: stream },\n {\n onAttach: async (source, lensCore, reportError) => {\n await source.setTransform(optionsWithDefaults.transform);\n\n if (enableSourceAudio) {\n // We call LensCore.processAudioSampleBuffer every time microphone data appears,\n // which occurs multiple times per second.\n // It may happen that LensCore enters an inoperable state, resulting in the call failing with\n // the same error over and over again.\n // Instead of reporting all errors, we debounce them within a second and only report two errors:\n // 1. The initial error when the debounce starts.\n // 2. An aggregated error that includes unique error messages from all errors\n // within the debounce period.\n const audioProcessingErrors = new Subject<LensCoreError>();\n audioProcessingErrorSubscription = handleAudioProcessingErrors(audioProcessingErrors, reportError);\n\n // Audio parameters set has to be called before lens is applied\n await lensCore.setAudioParameters({\n parameters: {\n numChannels: simulateStereoAudio ? 2 : 1,\n sampleRate,\n },\n });\n\n try {\n // There is a possibility of the onAttach method being called twice in a row due to a bug.\n // To ensure there are not leaks, it is better to close any existing connections.\n closeWorklet(worklet);\n audioSource?.disconnect();\n await closeAudioContext(audioContext);\n } catch (error) {\n // We still want to continue if anything above failed\n reportError(ensureError(error));\n }\n\n audioContext = new AudioContext();\n audioSource = audioContext.createMediaStreamSource(stream);\n const scopedAudioSource = audioSource;\n audioContext.audioWorklet\n .addModule(microphoneRecorderUrl)\n .then(() => {\n if (audioContext) {\n worklet = new AudioWorkletNode(audioContext, \"microphone-worklet\");\n scopedAudioSource.connect(worklet);\n worklet.connect(audioContext.destination);\n // NOTE: We subscribe to messages here, and they will continue to arrive\n // even after audioContext.close() is called. To disconnect the audio worklets\n // created here, we need to track two variables - worklet and audioSource.\n // By calling disconnect() on them, we can properly\n // disconnect the audio worklets.\n worklet.port.onmessage = (e) => {\n if (e.data.eventType === \"data\") {\n // developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor/process\n // inputs[n][m] is the list of samples in the n-th input at the m-th channel.\n const leftSamples = e.data.buffer[0][0] as Float32Array;\n\n // Firefox might have leftSamples undefined:\n // https://jira.sc-corp.net/browse/CAMKIT-5189\n if (!leftSamples) return;\n\n let inputBuffers = [leftSamples];\n if (simulateStereoAudio) {\n const rightSamples =\n e.data.buffer[0].length > 1 ? e.data.buffer[0][1] : leftSamples.slice();\n inputBuffers.push(rightSamples);\n }\n\n lensCore\n .processAudioSampleBuffer({ input: inputBuffers })\n .catch((error) => audioProcessingErrors.next(error));\n }\n };\n }\n })\n .catch((error: Error) => {\n reportError(error);\n });\n }\n },\n onDetach: async (reportError) => {\n if (worklet) {\n closeWorklet(worklet);\n worklet = undefined;\n }\n if (audioSource) {\n audioSource.disconnect();\n audioSource = undefined;\n }\n if (audioContext) {\n await closeAudioContext(audioContext).catch(reportError);\n audioContext = undefined;\n }\n if (audioProcessingErrorSubscription) {\n audioProcessingErrorSubscription.unsubscribe();\n audioProcessingErrorSubscription = undefined;\n }\n },\n },\n optionsWithDefaults\n );\n}\n"]}
@@ -0,0 +1,27 @@
1
+ import type { CameraKitDeviceOptions } from "./CameraKitSource";
2
+ import { CameraKitSource } from "./CameraKitSource";
3
+ /**
4
+ * Video source options.
5
+ *
6
+ * @category Rendering
7
+ */
8
+ export interface VideoSourceOptions extends CameraKitDeviceOptions {
9
+ /**
10
+ * Optional pre-computed tracking data to enhance rendering performance.
11
+ * While not commonly provided, this can be used in specific scenarios
12
+ * where such data is available to optimize video processing.
13
+ */
14
+ trackingData: ArrayBuffer;
15
+ }
16
+ /**
17
+ * Create a {@link CameraKitSource} from an
18
+ * [HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement).
19
+ *
20
+ * @param video CameraKit performs best when the source video is 720p – arbitrary resolutions are supported, but very
21
+ * high resolutions may not perform well.
22
+ * @param options Options.
23
+ *
24
+ * @category Rendering
25
+ */
26
+ export declare function createVideoSource(video: HTMLVideoElement, options?: Partial<VideoSourceOptions>): CameraKitSource;
27
+ //# sourceMappingURL=VideoSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoSource.d.ts","sourceRoot":"","sources":["../../src/media-sources/VideoSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAC;AAOvE;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAC9D;;;;OAIG;IACH,YAAY,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,eAAe,CAYrH"}
@@ -0,0 +1,12 @@
1
+ import { copyDefinedProperties } from "../common/copyDefinedProperties";
2
+ import { CameraKitSource, defaultDeviceInfo } from "./CameraKitSource";
3
+ const defaultOptions = Object.assign(Object.assign({}, defaultDeviceInfo), { trackingData: new ArrayBuffer(0) });
4
+ export function createVideoSource(video, options = {}) {
5
+ const { trackingData } = Object.assign(Object.assign({}, defaultOptions), copyDefinedProperties(options));
6
+ const replayTrackingData = trackingData.byteLength > 0 ? { buffer: trackingData } : undefined;
7
+ return new CameraKitSource({
8
+ media: video,
9
+ replayTrackingData,
10
+ }, {}, options);
11
+ }
12
+ //# sourceMappingURL=VideoSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoSource.js","sourceRoot":"","sources":["../../src/media-sources/VideoSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,cAAc,mCACb,iBAAiB,KACpB,YAAY,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,GACnC,CAAC;AA0BF,MAAM,UAAU,iBAAiB,CAAC,KAAuB,EAAE,UAAuC,EAAE;IAChG,MAAM,EAAE,YAAY,EAAE,mCAAQ,cAAc,GAAK,qBAAqB,CAAC,OAAO,CAAC,CAAE,CAAC;IAClF,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9F,OAAO,IAAI,eAAe,CACtB;QACI,KAAK,EAAE,KAAK;QACZ,kBAAkB;KACrB,EACD,EAAE,EACF,OAAO,CACV,CAAC;AACN,CAAC","sourcesContent":["import { copyDefinedProperties } from \"../common/copyDefinedProperties\";\nimport type { CameraKitDeviceOptions } from \"./CameraKitSource\";\nimport { CameraKitSource, defaultDeviceInfo } from \"./CameraKitSource\";\n\nconst defaultOptions: VideoSourceOptions = {\n ...defaultDeviceInfo,\n trackingData: new ArrayBuffer(0),\n};\n\n/**\n * Video source options.\n *\n * @category Rendering\n */\nexport interface VideoSourceOptions extends CameraKitDeviceOptions {\n /**\n * Optional pre-computed tracking data to enhance rendering performance.\n * While not commonly provided, this can be used in specific scenarios\n * where such data is available to optimize video processing.\n */\n trackingData: ArrayBuffer;\n}\n\n/**\n * Create a {@link CameraKitSource} from an\n * [HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement).\n *\n * @param video CameraKit performs best when the source video is 720p – arbitrary resolutions are supported, but very\n * high resolutions may not perform well.\n * @param options Options.\n *\n * @category Rendering\n */\nexport function createVideoSource(video: HTMLVideoElement, options: Partial<VideoSourceOptions> = {}): CameraKitSource {\n const { trackingData } = { ...defaultOptions, ...copyDefinedProperties(options) };\n const replayTrackingData = trackingData.byteLength > 0 ? { buffer: trackingData } : undefined;\n\n return new CameraKitSource(\n {\n media: video,\n replayTrackingData,\n },\n {},\n options\n );\n}\n"]}
@@ -0,0 +1,40 @@
1
+ import * as blizzard from "../generated-proto/blizzard/cameraKitEvents";
2
+ import type { MetricsClient } from "../clients/metricsClient";
3
+ import type { CameraKitConfiguration } from "../configuration";
4
+ import type { RemoteConfiguration } from "../remote-configuration/remoteConfiguration";
5
+ import type { MetricsEventTarget } from "./metricsEventTarget";
6
+ /**
7
+ * Translate between an external metric name, which is exposed to SDK users, and an internal Blizzard event name,
8
+ * property name, and constructor.
9
+ *
10
+ * It is very important that we do this, since the naming of these internal business events are unintuitive and will
11
+ * not make sense to SDK users.
12
+ *
13
+ * For a full list of business events (using their internal names), see:
14
+ * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/
15
+ */
16
+ type CameraKitBusinessEventMap = {
17
+ assetDownload: MakeBusinessEvent<blizzard.CameraKitAssetDownload>;
18
+ assetValidationFailed: MakeBusinessEvent<blizzard.CameraKitAssetValidationFailed>;
19
+ benchmarkComplete: MakeBusinessEvent<blizzard.CameraKitWebBenchmarkComplete>;
20
+ exception: MakeBusinessEvent<blizzard.CameraKitException>;
21
+ legalPrompt: MakeBusinessEvent<blizzard.CameraKitLegalPrompt>;
22
+ lensDownload: MakeBusinessEvent<blizzard.CameraKitLensDownload>;
23
+ lensView: MakeBusinessEvent<blizzard.CameraKitWebLensSwipe>;
24
+ lensWait: MakeBusinessEvent<blizzard.CameraKitLensSpin>;
25
+ lensContentValidationFailed: MakeBusinessEvent<blizzard.CameraKitLensContentValidationFailed>;
26
+ session: MakeBusinessEvent<blizzard.CameraKitSession>;
27
+ };
28
+ export type MakeBusinessEvent<E> = Omit<{
29
+ [K in keyof E]: Exclude<E[K], undefined> extends Record<keyof any, any> ? MakeBusinessEvent<Exclude<E[K], undefined>> : E[K];
30
+ }, "cameraKitEventBase">;
31
+ export type MakeTaggedBusinessEvent<K extends keyof CameraKitBusinessEventMap> = {
32
+ name: K;
33
+ } & CameraKitBusinessEventMap[K];
34
+ export declare const businessEventsReporterFactory: {
35
+ (args_0: MetricsEventTarget, args_1: MetricsClient, args_2: CameraKitConfiguration, args_3: RemoteConfiguration): void;
36
+ token: "businessEventsReporter";
37
+ dependencies: readonly ["metricsEventTarget", "metricsClient", "configuration", "remoteConfiguration"];
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=businessEventsReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"businessEventsReporter.d.ts","sourceRoot":"","sources":["../../src/metrics/businessEventsReporter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,QAAQ,MAAM,6CAA6C,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAOvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAoB/D;;;;;;;;;GASG;AACH,KAAK,yBAAyB,GAAG;IAC7B,aAAa,EAAE,iBAAiB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAClE,qBAAqB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IAClF,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC7E,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1D,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC9D,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAChE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5D,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACxD,2BAA2B,EAAE,iBAAiB,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAC9F,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CACzD,CAAC;AAqIF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,IAAI,CACnC;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,GACjE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAC3C,CAAC,CAAC,CAAC,CAAC;CACb,EACD,oBAAoB,CACvB,CAAC;AA+BF,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,MAAM,yBAAyB,IAAI;IAC7E,IAAI,EAAE,CAAC,CAAC;CACX,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAEjC,eAAO,MAAM,6BAA6B;;;;CAyFzC,CAAC"}
@@ -0,0 +1,156 @@
1
+ import { __awaiter } from "tslib";
2
+ import { v4 } from "uuid";
3
+ import { catchError, combineLatestWith, from, fromEvent, map, merge, of, switchMap, take } from "rxjs";
4
+ import { entries } from "../common/entries";
5
+ import { Injectable } from "../dependency-injection/Injectable";
6
+ import * as blizzard from "../generated-proto/blizzard/cameraKitEvents";
7
+ import { getLogger } from "../logger/logger";
8
+ import { metricsClientFactory } from "../clients/metricsClient";
9
+ import { configurationToken } from "../configuration";
10
+ import { remoteConfigurationFactory } from "../remote-configuration/remoteConfiguration";
11
+ import { IndexedDBPersistence } from "../persistence/IndexedDBPersistence";
12
+ import { ExpiringPersistence } from "../persistence/ExpiringPersistence";
13
+ import { convertDaysToSeconds } from "../common/time";
14
+ import { getPlatformInfo } from "../platform/platformInfo";
15
+ import { metricsEventTargetFactory } from "./metricsEventTarget";
16
+ const logger = getLogger("BusinessEventsReporter");
17
+ const connectivityTypeMapping = {
18
+ cellular: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_MOBILE,
19
+ bluetooth: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_BLUETOOTH,
20
+ wifi: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_WIFI,
21
+ unknown: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNKNOWN,
22
+ none: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNREACHABLE,
23
+ };
24
+ const vendorUuidKey = "vendorUuid";
25
+ const vendorUuidExpiry = convertDaysToSeconds(60);
26
+ const getOrGenerateVendorUuid = (persistence) => __awaiter(void 0, void 0, void 0, function* () {
27
+ try {
28
+ const storedUuid = yield persistence.retrieve(vendorUuidKey);
29
+ if (storedUuid) {
30
+ return storedUuid;
31
+ }
32
+ const newUuid = v4();
33
+ yield persistence.store(vendorUuidKey, newUuid);
34
+ return newUuid;
35
+ }
36
+ catch (error) {
37
+ throw new Error("Failed to generate vendor UUID");
38
+ }
39
+ });
40
+ function listenAndReport(metricsEventTarget, metricsClient, eventHandlers, appVendorAndPartnerUuid) {
41
+ const sessionId = v4();
42
+ logger.log(`Session ID: ${sessionId}`);
43
+ let sequenceId = 1;
44
+ const makeBlizzardEvent = (event, appVendorUuid, partnerUuid) => {
45
+ var _a;
46
+ const { sdkShortVersion, sdkLongVersion, lensCore, locale, origin, deviceModel, connectionType } = getPlatformInfo();
47
+ const deviceConnectivity = (_a = connectivityTypeMapping[connectionType]) !== null && _a !== void 0 ? _a : blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNKNOWN;
48
+ return Object.assign(Object.assign({}, event), { cameraKitEventBase: blizzard.CameraKitEventBase.fromPartial({
49
+ kitEventBase: blizzard.KitEventBase.fromPartial({
50
+ locale,
51
+ kitVariant: blizzard.KitType.CAMERA_KIT_WEB,
52
+ kitVariantVersion: sdkShortVersion,
53
+ kitClientTimestampMillis: `${Date.now()}`,
54
+ }),
55
+ deviceCluster: "0",
56
+ cameraKitVersion: sdkLongVersion,
57
+ lensCoreVersion: lensCore.version,
58
+ deviceModel,
59
+ cameraKitVariant: blizzard.CameraKitVariant.CAMERA_KIT_VARIANT_PARTNER,
60
+ cameraKitFlavor: blizzard.CameraKitFlavor.CAMERA_KIT_FLAVOR_DEBUG,
61
+ appId: origin,
62
+ deviceConnectivity,
63
+ sessionId,
64
+ appVendorUuid,
65
+ partnerUuid,
66
+ }) });
67
+ };
68
+ const sendServerEvent = (eventName, eventData) => {
69
+ const { osName: osType, osVersion } = getPlatformInfo();
70
+ return metricsClient.setBusinessEvents(blizzard.ServerEvent.fromPartial({
71
+ eventName,
72
+ osType,
73
+ osVersion,
74
+ maxSequenceIdOnInstance: "0",
75
+ sequenceId: `${sequenceId++}`,
76
+ eventData,
77
+ }));
78
+ };
79
+ const metricsEvents = entries(eventHandlers).map(([eventType, createEventData]) => fromEvent(metricsEventTarget, eventType).pipe(map((event) => ({ event, createEventData }))));
80
+ merge(...metricsEvents)
81
+ .pipe(combineLatestWith(appVendorAndPartnerUuid))
82
+ .subscribe(([{ event, createEventData }, { appVendorUuid, partnerUuid }]) => {
83
+ const [eventName, eventData] = createEventData(makeBlizzardEvent(event.detail, appVendorUuid, partnerUuid));
84
+ sendServerEvent(eventName, eventData);
85
+ });
86
+ }
87
+ function getAppVendorAndPartnerUuid(configuration, remoteConfiguration) {
88
+ const vendorAnalyticsPersistence = new ExpiringPersistence(() => vendorUuidExpiry, new IndexedDBPersistence({ databaseName: "VendorAnalytics" }));
89
+ return remoteConfiguration.getInitializationConfig().pipe(take(1), switchMap(({ appVendorUuidOptIn }) => {
90
+ const partnerUuid = configuration.analyticsId;
91
+ if (appVendorUuidOptIn) {
92
+ return from(getOrGenerateVendorUuid(vendorAnalyticsPersistence)).pipe(map((appVendorUuid) => ({ appVendorUuid, partnerUuid })));
93
+ }
94
+ return of({ appVendorUuid: undefined, partnerUuid });
95
+ }), catchError((error) => {
96
+ logger.warn(`Failed to retrieve or generate vendor UUID.`, error);
97
+ return of({ appVendorUuid: undefined, partnerUuid: configuration.analyticsId });
98
+ }));
99
+ }
100
+ export const businessEventsReporterFactory = Injectable("businessEventsReporter", [
101
+ metricsEventTargetFactory.token,
102
+ metricsClientFactory.token,
103
+ configurationToken,
104
+ remoteConfigurationFactory.token,
105
+ ], (metricsEventTarget, metricsClient, configuration, remoteConfiguration) => {
106
+ const appVendorAndPartnerUuid = getAppVendorAndPartnerUuid(configuration, remoteConfiguration);
107
+ listenAndReport(metricsEventTarget, metricsClient, {
108
+ assetDownload: (event) => [
109
+ "CAMERA_KIT_ASSET_DOWNLOAD",
110
+ { cameraKitAssetDownload: blizzard.CameraKitAssetDownload.fromPartial(event) },
111
+ ],
112
+ assetValidationFailed: (event) => [
113
+ "CAMERA_KIT_ASSET_VALIDATION_FAILED",
114
+ {
115
+ cameraKitAssetValidationFailed: blizzard.CameraKitAssetValidationFailed.fromPartial(event),
116
+ },
117
+ ],
118
+ benchmarkComplete: (event) => [
119
+ "CAMERA_KIT_WEB_BENCHMARK_COMPLETE",
120
+ {
121
+ cameraKitWebBenchmarkComplete: blizzard.CameraKitWebBenchmarkComplete.fromPartial(event),
122
+ },
123
+ ],
124
+ exception: (event) => [
125
+ "CAMERA_KIT_EXCEPTION",
126
+ { cameraKitException: blizzard.CameraKitException.fromPartial(event) },
127
+ ],
128
+ legalPrompt: (event) => [
129
+ "CAMERA_KIT_LEGAL_PROMPT",
130
+ { cameraKitLegalPrompt: blizzard.CameraKitLegalPrompt.fromPartial(event) },
131
+ ],
132
+ lensDownload: (event) => [
133
+ "CAMERA_KIT_LENS_DOWNLOAD",
134
+ { cameraKitLensDownload: blizzard.CameraKitLensDownload.fromPartial(event) },
135
+ ],
136
+ lensView: (event) => [
137
+ "CAMERA_KIT_WEB_LENS_SWIPE",
138
+ { cameraKitWebLensSwipe: blizzard.CameraKitWebLensSwipe.fromPartial(event) },
139
+ ],
140
+ lensWait: (event) => [
141
+ "CAMERA_KIT_LENS_SPIN",
142
+ { cameraKitLensSpin: blizzard.CameraKitLensSpin.fromPartial(event) },
143
+ ],
144
+ lensContentValidationFailed: (event) => [
145
+ "CAMERA_KIT_LENS_CONTENT_VALIDATION_FAILED",
146
+ {
147
+ cameraKitLensContentValidationFailed: blizzard.CameraKitLensContentValidationFailed.fromPartial(event),
148
+ },
149
+ ],
150
+ session: (event) => [
151
+ "CAMERA_KIT_SESSION",
152
+ { cameraKitSession: blizzard.CameraKitSession.fromPartial(event) },
153
+ ],
154
+ }, appVendorAndPartnerUuid);
155
+ });
156
+ //# sourceMappingURL=businessEventsReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"businessEventsReporter.js","sourceRoot":"","sources":["../../src/metrics/businessEventsReporter.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 } from \"uuid\";\nimport type { Observable } from \"rxjs\";\nimport { catchError, combineLatestWith, from, fromEvent, map, merge, of, switchMap, take } from \"rxjs\";\nimport { entries } from \"../common/entries\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport type { EventOfType } from \"../events/TypedCustomEvent\";\nimport type { EventsFromTarget } from \"../events/TypedEventTarget\";\nimport * as blizzard from \"../generated-proto/blizzard/cameraKitEvents\";\nimport { getLogger } from \"../logger/logger\";\nimport type { MetricsClient } from \"../clients/metricsClient\";\nimport { metricsClientFactory } from \"../clients/metricsClient\";\nimport type { CameraKitConfiguration } from \"../configuration\";\nimport { configurationToken } from \"../configuration\";\nimport type { RemoteConfiguration } from \"../remote-configuration/remoteConfiguration\";\nimport { remoteConfigurationFactory } from \"../remote-configuration/remoteConfiguration\";\nimport { IndexedDBPersistence } from \"../persistence/IndexedDBPersistence\";\nimport { ExpiringPersistence } from \"../persistence/ExpiringPersistence\";\nimport { convertDaysToSeconds } from \"../common/time\";\nimport type { ConnectionType } from \"../platform/platformInfo\";\nimport { getPlatformInfo } from \"../platform/platformInfo\";\nimport type { MetricsEventTarget } from \"./metricsEventTarget\";\nimport { metricsEventTargetFactory } from \"./metricsEventTarget\";\n\nconst logger = getLogger(\"BusinessEventsReporter\");\n\ntype Nullables<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T];\ntype UndefinedToOptional<T> = Partial<Pick<T, Nullables<T>>> & Omit<T, Nullables<T>>;\n\ntype CameraKitBusinessEvents = EventsFromTarget<MetricsEventTarget>[\"detail\"];\n\ntype MakeBlizzardEvent<E> = Omit<E, \"name\"> & { cameraKitEventBase: blizzard.CameraKitEventBase };\n\ntype CreateEventData<EventType extends EventsFromTarget<MetricsEventTarget>[\"type\"]> = (\n event: MakeBlizzardEvent<EventOfType<EventType, EventsFromTarget<MetricsEventTarget>>[\"detail\"]>\n) => [string, UndefinedToOptional<blizzard.ServerEventData>];\n\ntype EventHandlers = {\n [EventType in EventsFromTarget<MetricsEventTarget>[\"type\"]]: CreateEventData<EventType>;\n};\n\n/**\n * Translate between an external metric name, which is exposed to SDK users, and an internal Blizzard event name,\n * property name, and constructor.\n *\n * It is very important that we do this, since the naming of these internal business events are unintuitive and will\n * not make sense to SDK users.\n *\n * For a full list of business events (using their internal names), see:\n * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/\n */\ntype CameraKitBusinessEventMap = {\n assetDownload: MakeBusinessEvent<blizzard.CameraKitAssetDownload>;\n assetValidationFailed: MakeBusinessEvent<blizzard.CameraKitAssetValidationFailed>;\n benchmarkComplete: MakeBusinessEvent<blizzard.CameraKitWebBenchmarkComplete>;\n exception: MakeBusinessEvent<blizzard.CameraKitException>;\n legalPrompt: MakeBusinessEvent<blizzard.CameraKitLegalPrompt>;\n lensDownload: MakeBusinessEvent<blizzard.CameraKitLensDownload>;\n lensView: MakeBusinessEvent<blizzard.CameraKitWebLensSwipe>;\n lensWait: MakeBusinessEvent<blizzard.CameraKitLensSpin>;\n lensContentValidationFailed: MakeBusinessEvent<blizzard.CameraKitLensContentValidationFailed>;\n session: MakeBusinessEvent<blizzard.CameraKitSession>;\n};\n\ninterface AppVendorAndPartnerUuid {\n appVendorUuid: string | undefined;\n partnerUuid: string | undefined;\n}\n\nconst connectivityTypeMapping: Partial<Record<ConnectionType, blizzard.CameraKitConnectivityType>> = {\n cellular: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_MOBILE,\n bluetooth: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_BLUETOOTH,\n wifi: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_WIFI,\n unknown: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNKNOWN,\n none: blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNREACHABLE,\n};\n\nconst vendorUuidKey = \"vendorUuid\";\nconst vendorUuidExpiry = convertDaysToSeconds(60);\n\n/**\n * Retrieves or generates a vendor UUID (Universally Unique Identifier).\n *\n * @param persistence - The persistence storage interface where UUID is stored.\n * @returns {Promise<string | undefined>} - A Promise that resolves to the vendor UUID or undefined,\n * if any failure occurs or opt-in is not enabled.\n */\nconst getOrGenerateVendorUuid = async (persistence: ExpiringPersistence<string>): Promise<string | undefined> => {\n try {\n const storedUuid = await persistence.retrieve(vendorUuidKey);\n if (storedUuid) {\n return storedUuid;\n }\n\n const newUuid = v4();\n await persistence.store(vendorUuidKey, newUuid);\n\n return newUuid;\n } catch (error) {\n throw new Error(\"Failed to generate vendor UUID\");\n }\n};\n\nfunction listenAndReport(\n metricsEventTarget: MetricsEventTarget,\n metricsClient: MetricsClient,\n eventHandlers: EventHandlers,\n appVendorAndPartnerUuid: Observable<AppVendorAndPartnerUuid>\n): void {\n const sessionId = v4();\n logger.log(`Session ID: ${sessionId}`);\n\n // Blizzard convention is to start the sequenceId at 1.\n let sequenceId = 1;\n\n const makeBlizzardEvent = <E extends CameraKitBusinessEvents>(\n event: E,\n appVendorUuid: string | undefined,\n partnerUuid: string | undefined\n ): MakeBlizzardEvent<E> => {\n const { sdkShortVersion, sdkLongVersion, lensCore, locale, origin, deviceModel, connectionType } =\n getPlatformInfo();\n\n const deviceConnectivity =\n connectivityTypeMapping[connectionType!] ??\n blizzard.CameraKitConnectivityType.CAMERA_KIT_CONNECTIVITY_TYPE_UNKNOWN;\n\n return {\n ...event,\n cameraKitEventBase: blizzard.CameraKitEventBase.fromPartial({\n kitEventBase: blizzard.KitEventBase.fromPartial({\n locale,\n kitVariant: blizzard.KitType.CAMERA_KIT_WEB,\n kitVariantVersion: sdkShortVersion,\n kitClientTimestampMillis: `${Date.now()}`,\n }),\n deviceCluster: \"0\",\n cameraKitVersion: sdkLongVersion,\n lensCoreVersion: lensCore.version,\n deviceModel,\n cameraKitVariant: blizzard.CameraKitVariant.CAMERA_KIT_VARIANT_PARTNER,\n cameraKitFlavor: blizzard.CameraKitFlavor.CAMERA_KIT_FLAVOR_DEBUG,\n // We overload appId, using the origin instead because it's nice and human-readable (our backed adds\n // the true appId as oauth_client_id before forwarding events to Blizzard).\n appId: origin,\n deviceConnectivity,\n sessionId,\n appVendorUuid,\n partnerUuid,\n }),\n };\n };\n\n const sendServerEvent = (\n eventName: string,\n eventData: UndefinedToOptional<blizzard.ServerEventData>\n ): Promise<void> => {\n const { osName: osType, osVersion } = getPlatformInfo();\n return metricsClient.setBusinessEvents(\n blizzard.ServerEvent.fromPartial({\n eventName,\n osType,\n osVersion,\n maxSequenceIdOnInstance: \"0\",\n sequenceId: `${sequenceId++}`,\n eventData,\n })\n );\n };\n\n // Add event listeners for each event type and turn those listeners into Observables\n const metricsEvents = entries(eventHandlers).map(([eventType, createEventData]) =>\n fromEvent(metricsEventTarget, eventType).pipe(map((event) => ({ event, createEventData })))\n );\n\n // Subscribe to all the metrics events and combine them with the app/partner IDs obtained\n // from remote configuration -- this means we'll queue up any metrics events that occur\n // before remote config is downloaded, and send them once that config is available.\n merge(...metricsEvents)\n .pipe(combineLatestWith(appVendorAndPartnerUuid))\n .subscribe(([{ event, createEventData }, { appVendorUuid, partnerUuid }]) => {\n // Safety: When iterating over object keys in a mapped type, we lose the association between the key type\n // and the value type – at each iteration, the key type is a union of all possible keys and the value type\n // is a union of all possible values. When the value is a function with an argument, and that argument\n // depends on the key type (which is a union), the contravariance of the argument type means that the union\n // becomes an intersection. In our case here, this means the compiler expects each argument to contain all\n // properties from all event types. The cast is safe because the mapped `EventHandlers` type ensures that\n // `createEventData` takes an argument of the type corresponding its key's `eventType`'s event detail.\n const [eventName, eventData] = createEventData(\n makeBlizzardEvent(event.detail, appVendorUuid, partnerUuid) as any\n );\n sendServerEvent(eventName, eventData);\n });\n}\n\nexport type MakeBusinessEvent<E> = Omit<\n {\n [K in keyof E]: Exclude<E[K], undefined> extends Record<keyof any, any>\n ? MakeBusinessEvent<Exclude<E[K], undefined>>\n : E[K];\n },\n \"cameraKitEventBase\"\n>;\n\nfunction getAppVendorAndPartnerUuid(\n configuration: CameraKitConfiguration,\n remoteConfiguration: RemoteConfiguration\n): Observable<AppVendorAndPartnerUuid> {\n const vendorAnalyticsPersistence = new ExpiringPersistence<string>(\n () => vendorUuidExpiry,\n new IndexedDBPersistence({ databaseName: \"VendorAnalytics\" })\n );\n\n return remoteConfiguration.getInitializationConfig().pipe(\n take(1),\n\n switchMap(({ appVendorUuidOptIn }) => {\n const partnerUuid = configuration.analyticsId;\n if (appVendorUuidOptIn) {\n return from(getOrGenerateVendorUuid(vendorAnalyticsPersistence)).pipe(\n map((appVendorUuid) => ({ appVendorUuid, partnerUuid }))\n );\n }\n return of({ appVendorUuid: undefined, partnerUuid });\n }),\n\n catchError((error) => {\n logger.warn(`Failed to retrieve or generate vendor UUID.`, error);\n return of({ appVendorUuid: undefined, partnerUuid: configuration.analyticsId });\n })\n );\n}\n\nexport type MakeTaggedBusinessEvent<K extends keyof CameraKitBusinessEventMap> = {\n name: K;\n} & CameraKitBusinessEventMap[K];\n\nexport const businessEventsReporterFactory = Injectable(\n \"businessEventsReporter\",\n [\n metricsEventTargetFactory.token,\n metricsClientFactory.token,\n configurationToken,\n remoteConfigurationFactory.token,\n ] as const,\n (\n metricsEventTarget: MetricsEventTarget,\n metricsClient: MetricsClient,\n configuration: CameraKitConfiguration,\n remoteConfiguration: RemoteConfiguration\n ) => {\n const appVendorAndPartnerUuid = getAppVendorAndPartnerUuid(configuration, remoteConfiguration);\n\n /**\n * This defines a mapping from a business event's external name (the name we document in public\n * API docs), to its internal representation as a Blizzard ServerEvent.\n *\n * It is important that we do this, since the naming of these internal business events are\n * unintuitive and will not make sense to SDK users.\n *\n * To specify the internal event, we must give the ServerEvent's eventName, the specific property\n * name which contains the event data (this is a \"oneof\" property on ServerEvent), and use the\n * correct event type's `fromPartial` method (this is generated from the ServerEvent protobuf).\n *\n * These events are documented here:\n * https://docs.google.com/document/d/1-kSzFWCWw9Qo3D08FR1_cqeHTsUtk9p3p3uOptzWDTY/\n *\n * They are defined in code here:\n * https://github.sc-corp.net/Snapchat/snapchat/tree/master/blizzard/schema/blizzard-schema/\n * codeGen/src/main/java/com/snapchat/analytics/schema/events/cameraKit\n */\n listenAndReport(\n metricsEventTarget,\n metricsClient,\n {\n assetDownload: (event) => [\n \"CAMERA_KIT_ASSET_DOWNLOAD\",\n { cameraKitAssetDownload: blizzard.CameraKitAssetDownload.fromPartial(event) },\n ],\n assetValidationFailed: (event) => [\n \"CAMERA_KIT_ASSET_VALIDATION_FAILED\",\n {\n cameraKitAssetValidationFailed: blizzard.CameraKitAssetValidationFailed.fromPartial(event),\n },\n ],\n benchmarkComplete: (event) => [\n \"CAMERA_KIT_WEB_BENCHMARK_COMPLETE\",\n {\n cameraKitWebBenchmarkComplete: blizzard.CameraKitWebBenchmarkComplete.fromPartial(event),\n },\n ],\n exception: (event) => [\n \"CAMERA_KIT_EXCEPTION\",\n { cameraKitException: blizzard.CameraKitException.fromPartial(event) },\n ],\n legalPrompt: (event) => [\n \"CAMERA_KIT_LEGAL_PROMPT\",\n { cameraKitLegalPrompt: blizzard.CameraKitLegalPrompt.fromPartial(event) },\n ],\n lensDownload: (event) => [\n \"CAMERA_KIT_LENS_DOWNLOAD\",\n { cameraKitLensDownload: blizzard.CameraKitLensDownload.fromPartial(event) },\n ],\n lensView: (event) => [\n \"CAMERA_KIT_WEB_LENS_SWIPE\",\n { cameraKitWebLensSwipe: blizzard.CameraKitWebLensSwipe.fromPartial(event) },\n ],\n lensWait: (event) => [\n \"CAMERA_KIT_LENS_SPIN\",\n { cameraKitLensSpin: blizzard.CameraKitLensSpin.fromPartial(event) },\n ],\n lensContentValidationFailed: (event) => [\n \"CAMERA_KIT_LENS_CONTENT_VALIDATION_FAILED\",\n {\n cameraKitLensContentValidationFailed:\n blizzard.CameraKitLensContentValidationFailed.fromPartial(event),\n },\n ],\n session: (event) => [\n \"CAMERA_KIT_SESSION\",\n { cameraKitSession: blizzard.CameraKitSession.fromPartial(event) },\n ],\n },\n appVendorAndPartnerUuid\n );\n }\n);\n"]}
@@ -0,0 +1,42 @@
1
+ import type { TypedCustomEvent } from "../events/TypedCustomEvent";
2
+ import { TypedEventTarget } from "../events/TypedEventTarget";
3
+ import type { AssetValidationFailed } from "../lens/assets/LensAssetsProvider";
4
+ import type { AssetDownload, LensDownload } from "./reporters/reportLensAndAssetDownload";
5
+ import type { LensContentValidationFailed } from "./reporters/reportLensValidationFailed";
6
+ import type { LensView } from "./reporters/reportLensView";
7
+ import type { LensWait } from "./reporters/reportLensWait";
8
+ import type { Session } from "./reporters/reportUserSession";
9
+ import type { BenchmarkComplete } from "./reporters/reportBenchmarks";
10
+ import type { LegalPrompt } from "./reporters/reportLegalState";
11
+ import type { MakeTaggedBusinessEvent } from "./businessEventsReporter";
12
+ /**
13
+ * The Exception metric reports every time we handle an exception.
14
+ */
15
+ export type Exception = MakeTaggedBusinessEvent<"exception">;
16
+ export type CameraKitBootstrapMetricEvents = TypedCustomEvent<BenchmarkComplete["name"], BenchmarkComplete>;
17
+ export type CameraKitSessionMetricEvents = TypedCustomEvent<LegalPrompt["name"], LegalPrompt> | TypedCustomEvent<LensView["name"], LensView> | TypedCustomEvent<LensWait["name"], LensWait> | TypedCustomEvent<LensDownload["name"], LensDownload> | TypedCustomEvent<AssetDownload["name"], AssetDownload> | TypedCustomEvent<AssetValidationFailed["name"], AssetValidationFailed> | TypedCustomEvent<LensContentValidationFailed["name"], LensContentValidationFailed> | TypedCustomEvent<Session["name"], Session>;
18
+ /**
19
+ * A union of all event types emitted by the {@link CameraKit.events} event emitter.
20
+ *
21
+ * @internal
22
+ */
23
+ export type CameraKitMetricEvents = CameraKitSessionMetricEvents | CameraKitBootstrapMetricEvents | TypedCustomEvent<Exception["name"], Exception>;
24
+ /**
25
+ * This event target may be used to listen for any of the metrics events reported by CameraKit.
26
+ *
27
+ * @internal
28
+ */
29
+ export type MetricsEventTarget = TypedEventTarget<CameraKitMetricEvents>;
30
+ /**
31
+ * Any metrics that we wish to emit to applications should be dispatched on this event target.
32
+ *
33
+ * Our business events reporter also listens to this event target, and may report the emitted metrics to our backend.
34
+ *
35
+ * @internal
36
+ */
37
+ export declare const metricsEventTargetFactory: {
38
+ (): MetricsEventTarget;
39
+ token: "metricsEventTarget";
40
+ dependencies: [];
41
+ };
42
+ //# sourceMappingURL=metricsEventTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricsEventTarget.d.ts","sourceRoot":"","sources":["../../src/metrics/metricsEventTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAE7D,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAE5G,MAAM,MAAM,4BAA4B,GAClC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,GAClD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAC5C,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAC5C,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,GACpD,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,GACtD,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,GACtE,gBAAgB,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,GAClF,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC3B,4BAA4B,GAC5B,8BAA8B,GAC9B,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;CAGrC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Injectable } from "../dependency-injection/Injectable";
2
+ import { TypedEventTarget } from "../events/TypedEventTarget";
3
+ export const metricsEventTargetFactory = Injectable("metricsEventTarget", () => new TypedEventTarget());
4
+ //# sourceMappingURL=metricsEventTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricsEventTarget.js","sourceRoot":"","sources":["../../src/metrics/metricsEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAoD9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAC/C,oBAAoB,EACpB,GAAuB,EAAE,CAAC,IAAI,gBAAgB,EAAE,CACnD,CAAC","sourcesContent":["import { Injectable } from \"../dependency-injection/Injectable\";\nimport type { TypedCustomEvent } from \"../events/TypedCustomEvent\";\nimport { TypedEventTarget } from \"../events/TypedEventTarget\";\nimport type { AssetValidationFailed } from \"../lens/assets/LensAssetsProvider\";\nimport type { AssetDownload, LensDownload } from \"./reporters/reportLensAndAssetDownload\";\nimport type { LensContentValidationFailed } from \"./reporters/reportLensValidationFailed\";\nimport type { LensView } from \"./reporters/reportLensView\";\nimport type { LensWait } from \"./reporters/reportLensWait\";\nimport type { Session } from \"./reporters/reportUserSession\";\nimport type { BenchmarkComplete } from \"./reporters/reportBenchmarks\";\nimport type { LegalPrompt } from \"./reporters/reportLegalState\";\nimport type { MakeTaggedBusinessEvent } from \"./businessEventsReporter\";\n\n/**\n * The Exception metric reports every time we handle an exception.\n */\nexport type Exception = MakeTaggedBusinessEvent<\"exception\">;\n\nexport type CameraKitBootstrapMetricEvents = TypedCustomEvent<BenchmarkComplete[\"name\"], BenchmarkComplete>;\n\nexport type CameraKitSessionMetricEvents =\n | TypedCustomEvent<LegalPrompt[\"name\"], LegalPrompt>\n | TypedCustomEvent<LensView[\"name\"], LensView>\n | TypedCustomEvent<LensWait[\"name\"], LensWait>\n | TypedCustomEvent<LensDownload[\"name\"], LensDownload>\n | TypedCustomEvent<AssetDownload[\"name\"], AssetDownload>\n | TypedCustomEvent<AssetValidationFailed[\"name\"], AssetValidationFailed>\n | TypedCustomEvent<LensContentValidationFailed[\"name\"], LensContentValidationFailed>\n | TypedCustomEvent<Session[\"name\"], Session>;\n\n/**\n * A union of all event types emitted by the {@link CameraKit.events} event emitter.\n *\n * @internal\n */\nexport type CameraKitMetricEvents =\n | CameraKitSessionMetricEvents\n | CameraKitBootstrapMetricEvents\n | TypedCustomEvent<Exception[\"name\"], Exception>;\n\n/**\n * This event target may be used to listen for any of the metrics events reported by CameraKit.\n *\n * @internal\n */\nexport type MetricsEventTarget = TypedEventTarget<CameraKitMetricEvents>;\n\n/**\n * Any metrics that we wish to emit to applications should be dispatched on this event target.\n *\n * Our business events reporter also listens to this event target, and may report the emitted metrics to our backend.\n *\n * @internal\n */\nexport const metricsEventTargetFactory = Injectable(\n \"metricsEventTarget\",\n (): MetricsEventTarget => new TypedEventTarget()\n);\n"]}
@@ -0,0 +1,21 @@
1
+ import type { OperationalMetric } from "../../generated-proto/pb_schema/camera_kit/v3/operational_metrics";
2
+ import type { MetricDimensions } from "./Metric";
3
+ import { Metric } from "./Metric";
4
+ /** @internal */
5
+ export type CountMetric = OperationalMetric & {
6
+ metric: Extract<OperationalMetric["metric"], {
7
+ $case: "count";
8
+ }>;
9
+ };
10
+ /** @internal */
11
+ export declare function isCountMetric(value: OperationalMetric): value is CountMetric;
12
+ /** @internal */
13
+ export declare class Count extends Metric {
14
+ readonly name: string;
15
+ static count(name: string, n: number, dimensions?: MetricDimensions): Count;
16
+ private count;
17
+ constructor(name: string, dimensions?: MetricDimensions);
18
+ increment(count: number): number;
19
+ toOperationalMetric(): CountMetric[];
20
+ }
21
+ //# sourceMappingURL=Count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Count.d.ts","sourceRoot":"","sources":["../../../src/metrics/operational/Count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAA6B,MAAM,UAAU,CAAC;AAE7D,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC1C,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpE,CAAC;AAEF,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,KAAK,IAAI,WAAW,CAE5E;AAED,gBAAgB;AAChB,qBAAa,KAAM,SAAQ,MAAM;IASjB,QAAQ,CAAC,IAAI,EAAE,MAAM;IARjC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,gBAAqB,GAAG,KAAK;IAM/E,OAAO,CAAC,KAAK,CAAK;gBAEG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,gBAAqB;IAIpE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKhC,mBAAmB,IAAI,WAAW,EAAE;CASvC"}
@@ -0,0 +1,31 @@
1
+ import { Metric, serializeMetricDimensions } from "./Metric";
2
+ export function isCountMetric(value) {
3
+ var _a;
4
+ return ((_a = value.metric) === null || _a === void 0 ? void 0 : _a.$case) === "count";
5
+ }
6
+ export class Count extends Metric {
7
+ static count(name, n, dimensions = {}) {
8
+ const count = new Count(name, dimensions);
9
+ count.increment(n);
10
+ return count;
11
+ }
12
+ constructor(name, dimensions = {}) {
13
+ super(name, dimensions);
14
+ this.name = name;
15
+ this.count = 0;
16
+ }
17
+ increment(count) {
18
+ this.count += count;
19
+ return this.count;
20
+ }
21
+ toOperationalMetric() {
22
+ return [
23
+ {
24
+ name: `${this.name}${serializeMetricDimensions(this.dimensions)}`,
25
+ timestamp: new Date(),
26
+ metric: { $case: "count", count: `${Math.ceil(this.count)}` },
27
+ },
28
+ ];
29
+ }
30
+ }
31
+ //# sourceMappingURL=Count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Count.js","sourceRoot":"","sources":["../../../src/metrics/operational/Count.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAQ7D,MAAM,UAAU,aAAa,CAAC,KAAwB;;IAClD,OAAO,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,MAAK,OAAO,CAAC;AAC3C,CAAC;AAGD,MAAM,OAAO,KAAM,SAAQ,MAAM;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,CAAS,EAAE,aAA+B,EAAE;QACnE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,YAAqB,IAAY,EAAE,aAA+B,EAAE;QAChE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QADP,SAAI,GAAJ,IAAI,CAAQ;QAFzB,UAAK,GAAG,CAAC,CAAC;IAIlB,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,mBAAmB;QACf,OAAO;YACH;gBACI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACjE,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;aAChE;SACJ,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { OperationalMetric } from \"../../generated-proto/pb_schema/camera_kit/v3/operational_metrics\";\nimport type { MetricDimensions } from \"./Metric\";\nimport { Metric, serializeMetricDimensions } from \"./Metric\";\n\n/** @internal */\nexport type CountMetric = OperationalMetric & {\n metric: Extract<OperationalMetric[\"metric\"], { $case: \"count\" }>;\n};\n\n/** @internal */\nexport function isCountMetric(value: OperationalMetric): value is CountMetric {\n return value.metric?.$case === \"count\";\n}\n\n/** @internal */\nexport class Count extends Metric {\n static count(name: string, n: number, dimensions: MetricDimensions = {}): Count {\n const count = new Count(name, dimensions);\n count.increment(n);\n return count;\n }\n\n private count = 0;\n\n constructor(readonly name: string, dimensions: MetricDimensions = {}) {\n super(name, dimensions);\n }\n\n increment(count: number): number {\n this.count += count;\n return this.count;\n }\n\n toOperationalMetric(): CountMetric[] {\n return [\n {\n name: `${this.name}${serializeMetricDimensions(this.dimensions)}`,\n timestamp: new Date(),\n metric: { $case: \"count\", count: `${Math.ceil(this.count)}` },\n },\n ];\n }\n}\n"]}