@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,64 @@
1
+ import { __awaiter } from "tslib";
2
+ import { getLogger } from "../logger/logger";
3
+ const logger = getLogger("ExpiringPersistence");
4
+ export class ExpiringPersistence {
5
+ constructor(expiration, persistence) {
6
+ this.expiration = expiration;
7
+ this.persistence = persistence;
8
+ this.removeExpired().catch((error) => {
9
+ logger.warn("Failed to cleanup expired entries on startup.", error);
10
+ });
11
+ }
12
+ get size() {
13
+ return this.persistence.size;
14
+ }
15
+ retrieve(key) {
16
+ var _a;
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const [expiry, value] = (_a = (yield this.persistence.retrieve(key))) !== null && _a !== void 0 ? _a : [];
19
+ if (value === undefined || expiry === undefined)
20
+ return undefined;
21
+ if (Date.now() > expiry) {
22
+ yield this.persistence.remove(key).catch((error) => {
23
+ logger.warn(`Key ${key} is expired, but removing it from persistence failed.`, error);
24
+ });
25
+ return undefined;
26
+ }
27
+ return value;
28
+ });
29
+ }
30
+ retrieveAll() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const now = Date.now();
33
+ return (yield this.persistence.retrieveAll()).filter(([, [expiry]]) => expiry >= now).map(([, v]) => v);
34
+ });
35
+ }
36
+ remove(key) {
37
+ return this.persistence.remove(key);
38
+ }
39
+ removeAll() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const results = yield this.persistence.removeAll();
42
+ return results.map(([, v]) => v);
43
+ });
44
+ }
45
+ removeExpired() {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ for (const [key, [expiry]] of yield this.persistence.retrieveAll()) {
48
+ if (Date.now() >= expiry) {
49
+ yield this.persistence
50
+ .remove(key)
51
+ .catch((error) => logger.warn(`Failed to remove expired key ${key}.`, error));
52
+ }
53
+ }
54
+ });
55
+ }
56
+ store(keyOrValue, maybeValue) {
57
+ const [key, value] = maybeValue === undefined ? [undefined, keyOrValue] : [keyOrValue, maybeValue];
58
+ const expiry = Date.now() + this.expiration(value) * 1000;
59
+ return key === undefined
60
+ ? this.persistence.store([expiry, value])
61
+ : this.persistence.store(key, [expiry, value]);
62
+ }
63
+ }
64
+ //# sourceMappingURL=ExpiringPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiringPersistence.js","sourceRoot":"","sources":["../../src/persistence/ExpiringPersistence.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAShD,MAAM,OAAO,mBAAmB;IAC5B,YACqB,UAAgC,EAChC,WAAqC;QADrC,eAAU,GAAV,UAAU,CAAsB;QAChC,gBAAW,GAAX,WAAW,CAA0B;QAEtD,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACjC,CAAC;IAEK,QAAQ,CAAC,GAAa;;;YACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAA,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;YACrE,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAElE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE;gBACrB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,uDAAuD,EAAE,KAAK,CAAC,CAAC;gBAC1F,CAAC,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC;aACpB;YACD,OAAO,KAAK,CAAC;;KAChB;IAEK,WAAW;;YACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC;KAAA;IAED,MAAM,CAAC,GAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEK,SAAS;;YACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;KAAA;IAEK,aAAa;;YACf,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;gBAChE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE;oBACtB,MAAM,IAAI,CAAC,WAAW;yBACjB,MAAM,CAAC,GAAG,CAAC;yBACX,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC;KAAA;IAID,KAAK,CAAC,UAAwB,EAAE,UAAc;QAC1C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GACd,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAe,CAAC,CAAC,CAAC,CAAC,CAAC,UAAsB,EAAE,UAAU,CAAC,CAAC;QACnG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1D,OAAO,GAAG,KAAK,SAAS;YACpB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ","sourcesContent":["import { getLogger } from \"../logger/logger\";\nimport type { Persistence, ValidKey } from \"./Persistence\";\n\nconst logger = getLogger(\"ExpiringPersistence\");\n\n/**\n * Create a Persistence that will remove entries after they expire.\n *\n * An expiration function must be provided, which is called each time a value is stored. It must return the expiration\n * time for that value, given in seconds from now. For example, to expire a value 24 hours after it is stored, the\n * expiration function should return 86400 (the number of seconds in 24 hours).\n */\nexport class ExpiringPersistence<T> implements Persistence<T> {\n constructor(\n private readonly expiration: (value: T) => number,\n private readonly persistence: Persistence<[number, T]>\n ) {\n this.removeExpired().catch((error) => {\n logger.warn(\"Failed to cleanup expired entries on startup.\", error);\n });\n }\n\n get size(): number {\n return this.persistence.size;\n }\n\n async retrieve(key: ValidKey): Promise<T | undefined> {\n const [expiry, value] = (await this.persistence.retrieve(key)) ?? [];\n if (value === undefined || expiry === undefined) return undefined;\n\n if (Date.now() > expiry) {\n await this.persistence.remove(key).catch((error) => {\n logger.warn(`Key ${key} is expired, but removing it from persistence failed.`, error);\n });\n return undefined;\n }\n return value;\n }\n\n async retrieveAll(): Promise<Array<[ValidKey, T]>> {\n const now = Date.now();\n return (await this.persistence.retrieveAll()).filter(([, [expiry]]) => expiry >= now).map(([, v]) => v);\n }\n\n remove(key: ValidKey): Promise<void> {\n return this.persistence.remove(key);\n }\n\n async removeAll(): Promise<T[]> {\n const results = await this.persistence.removeAll();\n return results.map(([, v]) => v);\n }\n\n async removeExpired(): Promise<void> {\n for (const [key, [expiry]] of await this.persistence.retrieveAll()) {\n if (Date.now() >= expiry) {\n await this.persistence\n .remove(key)\n .catch((error) => logger.warn(`Failed to remove expired key ${key}.`, error));\n }\n }\n }\n\n store(value: T): Promise<ValidKey>;\n store(key: ValidKey, value: T): Promise<ValidKey>;\n store(keyOrValue: T | ValidKey, maybeValue?: T): Promise<ValidKey> {\n const [key, value] =\n maybeValue === undefined ? [undefined, keyOrValue as T] : [keyOrValue as ValidKey, maybeValue];\n const expiry = Date.now() + this.expiration(value) * 1000;\n return key === undefined\n ? this.persistence.store([expiry, value])\n : this.persistence.store(key, [expiry, value]);\n }\n}\n"]}
@@ -0,0 +1,48 @@
1
+ import type { Persistence, ValidKey } from "./Persistence";
2
+ /**
3
+ * Specify a database name for this {@link IndexedDBPersistence} instance to use.
4
+ * This will be prefixed by `Snap.CameraKit`.
5
+ *
6
+ * A databaseVersion and objectStore may also be specified. Keep in mind the following limitations:
7
+ * - IndexedDBPersistence currently does nothing to migrate data between versions.
8
+ * - If two different IndexedDBPersistence instances use the same databaseName, they must also use the same objectStore.
9
+ * Otherwise a race condition will occur which prevents the creation of all but one objectStore per database.
10
+ */
11
+ export interface IndexedDBPersistenceOptions {
12
+ databaseName: string;
13
+ databaseVersion?: number;
14
+ objectStore?: string;
15
+ }
16
+ /**
17
+ * A simple key/value persistence using an IndexedDB storage backend.
18
+ *
19
+ * See [Using IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB) for an
20
+ * introduction to how IndexedDB works, its APIs, and how to use it.
21
+ *
22
+ * Note: Currently there is no support for database upgrades. Each instance of this class uses a single IDBObjectStore
23
+ * object set at instantiation time, and there are no hooks for performing migrations between versions. This may be
24
+ * added in the future if such functionality is needed.
25
+ */
26
+ export declare class IndexedDBPersistence<T> implements Persistence<T> {
27
+ size: number;
28
+ private db;
29
+ private readonly databaseName;
30
+ private readonly databaseVersion?;
31
+ private readonly objectStore;
32
+ /**
33
+ * Construct an {@link IndexedDBPersistence} instance corresponding to a given IndexedDB database version.
34
+ *
35
+ * Throws `ConstraintError` if the version number is invalid (e.g. NaN, or less than 1).
36
+ */
37
+ constructor(options: IndexedDBPersistenceOptions);
38
+ retrieve(key: ValidKey): Promise<T | undefined>;
39
+ retrieveAll(): Promise<Array<[ValidKey, T]>>;
40
+ remove(key: ValidKey): Promise<void>;
41
+ removeAll(): Promise<T[]>;
42
+ store(value: T): Promise<ValidKey>;
43
+ store(key: ValidKey, value: T): Promise<ValidKey>;
44
+ private openDatabase;
45
+ private simpleTransaction;
46
+ private transaction;
47
+ }
48
+ //# sourceMappingURL=IndexedDBPersistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBPersistence.d.ts","sourceRoot":"","sources":["../../src/persistence/IndexedDBPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4D3D;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;;;OAIG;gBACS,OAAO,EAAE,2BAA2B;IAchD,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAc5C,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,SAAS,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAmBzB,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YAgBzC,YAAY;YA8BZ,iBAAiB;YASjB,WAAW;CAwB5B"}
@@ -0,0 +1,127 @@
1
+ import { __awaiter } from "tslib";
2
+ import { isValidKey } from "./Persistence";
3
+ function wrapRequest(request) {
4
+ const p = new Promise((resolve, reject) => {
5
+ request.onsuccess = () => resolve(request.result);
6
+ request.onerror = () => reject(request.error);
7
+ });
8
+ p.request = request;
9
+ return p;
10
+ }
11
+ function wrapCursorRequest(request) {
12
+ return new Promise((resolve, reject) => {
13
+ request.onsuccess = () => {
14
+ const cursor = request.result;
15
+ if (!cursor)
16
+ resolve({ cursor: null, continue: () => Promise.reject() });
17
+ else
18
+ resolve({
19
+ cursor,
20
+ continue: () => {
21
+ cursor.continue();
22
+ return wrapCursorRequest(request);
23
+ },
24
+ });
25
+ };
26
+ request.onerror = () => reject(request.error);
27
+ });
28
+ }
29
+ export class IndexedDBPersistence {
30
+ constructor(options) {
31
+ var _a;
32
+ this.databaseName = `Snap.CameraKit.${options.databaseName}`;
33
+ this.databaseVersion = options.databaseVersion;
34
+ this.objectStore = (_a = options.objectStore) !== null && _a !== void 0 ? _a : options.databaseName;
35
+ this.db = this.openDatabase(indexedDB.open(this.databaseName, this.databaseVersion));
36
+ this.size = 0;
37
+ }
38
+ retrieve(key) {
39
+ return this.simpleTransaction("readonly", (store) => store.get(key));
40
+ }
41
+ retrieveAll() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const results = [];
44
+ const { store, done } = yield this.transaction("readonly");
45
+ let request = yield wrapCursorRequest(store.openCursor());
46
+ while (request.cursor) {
47
+ results.push([request.cursor.primaryKey, request.cursor.value]);
48
+ request = yield request.continue();
49
+ }
50
+ yield done;
51
+ return results;
52
+ });
53
+ }
54
+ remove(key) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ yield this.simpleTransaction("readwrite", (store) => store.delete(key));
57
+ this.size--;
58
+ });
59
+ }
60
+ removeAll() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const results = [];
63
+ const { store, done } = yield this.transaction("readwrite");
64
+ let request = yield wrapCursorRequest(store.openCursor());
65
+ const deleteRequests = [];
66
+ while (request.cursor) {
67
+ results.push(request.cursor.value);
68
+ deleteRequests.push(wrapRequest(store.delete(request.cursor.key)));
69
+ request = yield request.continue();
70
+ }
71
+ yield Promise.all(deleteRequests.concat(done));
72
+ this.size = 0;
73
+ return results;
74
+ });
75
+ }
76
+ store(keyOrValue, maybeValue) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const [key, value] = maybeValue === undefined ? [undefined, keyOrValue] : [keyOrValue, maybeValue];
79
+ if (!isValidKey(key) && typeof key !== "undefined")
80
+ throw new TypeError(`IndexedDBPersistence failed to ` + `store a value. Invalid key type: ${typeof key}`);
81
+ const storedKey = yield this.simpleTransaction("readwrite", (store) => store.put(value, key));
82
+ this.size++;
83
+ return storedKey;
84
+ });
85
+ }
86
+ openDatabase(request) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const dbPromise = wrapRequest(request);
89
+ dbPromise.request.onupgradeneeded = () => {
90
+ try {
91
+ dbPromise.request.result.createObjectStore(this.objectStore, { autoIncrement: true });
92
+ }
93
+ catch (error) {
94
+ if (error instanceof DOMException && error.name === "ConstraintError")
95
+ return;
96
+ throw error;
97
+ }
98
+ };
99
+ const db = yield dbPromise;
100
+ db.onclose = () => {
101
+ this.db = this.openDatabase(indexedDB.open(this.databaseName, this.databaseVersion));
102
+ };
103
+ return db;
104
+ });
105
+ }
106
+ simpleTransaction(mode, operation) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ const { store, done } = yield this.transaction(mode);
109
+ const [result] = yield Promise.all([wrapRequest(operation(store)), done]);
110
+ return result;
111
+ });
112
+ }
113
+ transaction(mode) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ const db = yield this.db;
116
+ const tx = db.transaction(this.objectStore, mode);
117
+ const store = tx.objectStore(this.objectStore);
118
+ const done = new Promise((resolve, reject) => {
119
+ tx.oncomplete = () => resolve();
120
+ tx.onerror = () => reject(tx.error);
121
+ tx.onabort = () => reject(new DOMException("The transaction was aborted", "AbortError"));
122
+ });
123
+ return { tx, store, done };
124
+ });
125
+ }
126
+ }
127
+ //# sourceMappingURL=IndexedDBPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBPersistence.js","sourceRoot":"","sources":["../../src/persistence/IndexedDBPersistence.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Persistence, ValidKey } from \"./Persistence\";\nimport { isValidKey } from \"./Persistence\";\n\ntype IDBRequestPromise<T = any> = Promise<T> & { request: IDBRequest<T> };\n\ninterface EnhancedIDBTransaction {\n tx: IDBTransaction;\n store: IDBObjectStore;\n done: Promise<void>;\n}\n\ninterface EnhancedIDBCursor<T> {\n cursor: (IDBCursor & { readonly value: T }) | null;\n continue: () => Promise<EnhancedIDBCursor<T>>;\n}\n\n/**\n * The IndexedDB API makes use of event callbacks that can be cumbersome to use. This method wraps an IDBRequest in a\n * Promise, making it easier to use.\n */\nfunction wrapRequest(request: IDBOpenDBRequest): Promise<IDBDatabase> & { request: IDBOpenDBRequest };\nfunction wrapRequest<T>(request: IDBRequest<T>): IDBRequestPromise<T>;\nfunction wrapRequest(request: IDBRequest): IDBRequestPromise {\n const p = new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n (p as IDBRequestPromise).request = request;\n return p as IDBRequestPromise;\n}\n\n/**\n * IndexedDB cursor requests are unique, in that their `onsuccess` handler may be called multiple times. To support\n * this, and allow for an easier-to-use Promise-based API, we wrap the cursor request to support usage like:\n * ```ts\n * let request = await wrapCursorRequest(store.openCursor())\n * while (request.cursor) {\n * console.log(request.cursor.key, request.cursor.value)\n * request = await request.continue()\n * }\n * ```\n */\nfunction wrapCursorRequest<T>(request: IDBRequest<IDBCursorWithValue | null>): Promise<EnhancedIDBCursor<T>> {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => {\n const cursor = request.result;\n if (!cursor) resolve({ cursor: null, continue: () => Promise.reject() });\n else\n resolve({\n cursor,\n continue: () => {\n cursor.continue();\n return wrapCursorRequest<T>(request);\n },\n });\n };\n request.onerror = () => reject(request.error);\n });\n}\n\n/**\n * Specify a database name for this {@link IndexedDBPersistence} instance to use.\n * This will be prefixed by `Snap.CameraKit`.\n *\n * A databaseVersion and objectStore may also be specified. Keep in mind the following limitations:\n * - IndexedDBPersistence currently does nothing to migrate data between versions.\n * - If two different IndexedDBPersistence instances use the same databaseName, they must also use the same objectStore.\n * Otherwise a race condition will occur which prevents the creation of all but one objectStore per database.\n */\nexport interface IndexedDBPersistenceOptions {\n databaseName: string;\n databaseVersion?: number;\n objectStore?: string;\n}\n\n/**\n * A simple key/value persistence using an IndexedDB storage backend.\n *\n * See [Using IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB) for an\n * introduction to how IndexedDB works, its APIs, and how to use it.\n *\n * Note: Currently there is no support for database upgrades. Each instance of this class uses a single IDBObjectStore\n * object set at instantiation time, and there are no hooks for performing migrations between versions. This may be\n * added in the future if such functionality is needed.\n */\nexport class IndexedDBPersistence<T> implements Persistence<T> {\n size: number;\n\n private db: Promise<IDBDatabase>;\n private readonly databaseName: string;\n private readonly databaseVersion?: number;\n private readonly objectStore: string;\n\n /**\n * Construct an {@link IndexedDBPersistence} instance corresponding to a given IndexedDB database version.\n *\n * Throws `ConstraintError` if the version number is invalid (e.g. NaN, or less than 1).\n */\n constructor(options: IndexedDBPersistenceOptions) {\n // We'll namespace our DB names to A) avoid collisions with host applications and B) be transparent about who\n // is using persistence.\n this.databaseName = `Snap.CameraKit.${options.databaseName}`;\n this.databaseVersion = options.databaseVersion;\n this.objectStore = options.objectStore ?? options.databaseName;\n\n // `open()` will throw if the version is invalid -- this is desirable vs. rejecting the `db` promise, since then\n // the error is only reported when callers try to perform some operation. Instead, we want the instantiating\n // code to see the error.\n this.db = this.openDatabase(indexedDB.open(this.databaseName, this.databaseVersion));\n this.size = 0;\n }\n\n retrieve(key: ValidKey): Promise<T | undefined> {\n return this.simpleTransaction(\"readonly\", (store) => store.get(key));\n }\n\n async retrieveAll(): Promise<Array<[ValidKey, T]>> {\n const results: Array<[ValidKey, T]> = [];\n const { store, done } = await this.transaction(\"readonly\");\n let request = await wrapCursorRequest<T>(store.openCursor());\n\n while (request.cursor) {\n results.push([request.cursor.primaryKey as ValidKey, request.cursor.value]);\n request = await request.continue();\n }\n\n await done;\n return results;\n }\n\n async remove(key: ValidKey): Promise<void> {\n await this.simpleTransaction(\"readwrite\", (store) => store.delete(key));\n this.size--;\n }\n\n async removeAll(): Promise<T[]> {\n const results: T[] = [];\n const { store, done } = await this.transaction(\"readwrite\");\n let request = await wrapCursorRequest<T>(store.openCursor());\n const deleteRequests: Promise<any>[] = [];\n while (request.cursor) {\n results.push(request.cursor.value);\n // If any of the deletes fail (e.g. if the user deletes the object store during the transaction), it will\n // fail the whole transaction. Since the primary expected cause of this failure mode is that the entire\n // object store no longer exists, it's unlikely this will result in unbounded DB growth. That said, callers\n // may want to attempt to retry the removal, or raise an alarm if the persistence size grows unexpectedly.\n deleteRequests.push(wrapRequest(store.delete(request.cursor.key)));\n request = await request.continue();\n }\n await Promise.all(deleteRequests.concat(done));\n this.size = 0;\n return results;\n }\n\n async store(value: T): Promise<ValidKey>;\n async store(key: ValidKey, value: T): Promise<ValidKey>;\n async store(keyOrValue: T | ValidKey, maybeValue?: T): Promise<ValidKey> {\n const [key, value] = maybeValue === undefined ? [undefined, keyOrValue] : [keyOrValue, maybeValue];\n\n // The key must be ValidKey | undefined.\n if (!isValidKey(key) && typeof key !== \"undefined\")\n throw new TypeError(`IndexedDBPersistence failed to ` + `store a value. Invalid key type: ${typeof key}`);\n\n const storedKey = await this.simpleTransaction(\"readwrite\", (store) => store.put(value, key));\n this.size++;\n\n // Type safety: we already assert any given key is valid, and if the key is undefined IndexedDB will generate\n // a numeric key (https://w3c.github.io/IndexedDB/#key-generator).\n return storedKey as ValidKey;\n }\n\n private async openDatabase(request: IDBOpenDBRequest): Promise<IDBDatabase> {\n // The `open()` call will throw if databaseVersion is invalid (e.g. < 1).\n const dbPromise = wrapRequest(request);\n dbPromise.request.onupgradeneeded = () => {\n try {\n // The following DOMExceptions may be thrown by `createObjectStore()` – they should all be logically\n // impossible. We handle the one recoverable exception which could occur below.\n //\n // TransactionInactiveError: the database does not exist.\n // InvalidStateError: `createObjectStore` was called outside a `versionchange` transaction.\n // InvalidAccessError: `autoIncrement` is true and `keyPath` contains an empty string.\n dbPromise.request.result.createObjectStore(this.objectStore, { autoIncrement: true });\n } catch (error) {\n // ConstraintError is thrown if the object store already exists. Could happen if multiple tabs to the\n // same domain are opened and race to create the object store. In this case we can safely ignore the\n // error and continue.\n if (error instanceof DOMException && error.name === \"ConstraintError\") return;\n throw error;\n }\n };\n const db = await dbPromise;\n db.onclose = () => {\n // The 'close` event fires when the DB is unexpectedly closed (e.g. user clears application data). We'll\n // attempt to re-open it (which may fail, in which case no further attempts will be made, and all future\n // transactions will fail).\n this.db = this.openDatabase(indexedDB.open(this.databaseName, this.databaseVersion));\n };\n return db;\n }\n\n private async simpleTransaction<R>(\n mode: IDBTransactionMode,\n operation: (tx: IDBObjectStore) => IDBRequest<R>\n ): Promise<R> {\n const { store, done } = await this.transaction(mode);\n const [result] = await Promise.all([wrapRequest(operation(store)), done]);\n return result;\n }\n\n private async transaction(mode: IDBTransactionMode): Promise<EnhancedIDBTransaction> {\n const db = await this.db;\n // The following DOMExceptions may be thrown – they should all be logically impossible, or could be\n // triggered by the user deleting or modifying the database (e.g. via DevTools) at the right time. We won't\n // attempt to recover from them now, but may decide to do so in the future (if we see them in the wild).\n //\n // InvalidStateError: `close()` has previously been called on the IDBDatabase\n // NotFoundError: the object store does not exist.\n // TypeError: the `mode` parameter is invalid.\n // InvalidAccessError: the function was called with an empty list of object stores.\n const tx = db.transaction(this.objectStore, mode);\n\n // Similarly, the following DOMExceptions may be thrown by `objectStore()`:\n //\n // InvalidStateError: the transaction has already completed.\n // NotFoundError: the object store is not in the transaction's scope.\n const store = tx.objectStore(this.objectStore);\n const done = new Promise<void>((resolve, reject) => {\n tx.oncomplete = () => resolve();\n tx.onerror = () => reject(tx.error);\n tx.onabort = () => reject(new DOMException(\"The transaction was aborted\", \"AbortError\"));\n });\n return { tx, store, done };\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Different persistence mechanisms (e.g. localStorage, IndexedDB) may support different key types. This type should be
3
+ * a valid key across all concrete Persistence implementations.
4
+ */
5
+ export type ValidKey = string | number;
6
+ export declare const isValidKey: (key: unknown) => key is ValidKey;
7
+ /**
8
+ * The abstract Persistence class defines an async interface for interacting with persistent client-side storage. This
9
+ * is modeled as a simple key/value store.
10
+ *
11
+ * Subclasses may be implemented to support a variety of persistence mechanisms – e.g. localStorage, IndexedDB, etc.
12
+ */
13
+ export declare abstract class Persistence<T> {
14
+ abstract size: number;
15
+ abstract retrieve(key: ValidKey): Promise<T | undefined>;
16
+ abstract retrieveAll(): Promise<Array<[ValidKey, T]>>;
17
+ abstract remove(key: ValidKey): Promise<void>;
18
+ abstract removeAll(): Promise<T[]>;
19
+ /**
20
+ * Persistence implementations must be capable of generating unique keys, or accepting a unique key from the
21
+ * caller.
22
+ */
23
+ abstract store(value: T): Promise<ValidKey>;
24
+ abstract store(key: ValidKey, value: T): Promise<ValidKey>;
25
+ }
26
+ //# sourceMappingURL=Persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistence.d.ts","sourceRoot":"","sources":["../../src/persistence/Persistence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,QAAS,OAAO,oBAAwE,CAAC;AAEhH;;;;;GAKG;AACH,8BAAsB,WAAW,CAAC,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAExD,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7C,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;CAC7D"}
@@ -0,0 +1,4 @@
1
+ export const isValidKey = (key) => typeof key === "string" || typeof key === "number";
2
+ export class Persistence {
3
+ }
4
+ //# sourceMappingURL=Persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Persistence.js","sourceRoot":"","sources":["../../src/persistence/Persistence.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAY,EAAmB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AAQhH,MAAM,OAAgB,WAAW;CAiBhC","sourcesContent":["/**\n * Different persistence mechanisms (e.g. localStorage, IndexedDB) may support different key types. This type should be\n * a valid key across all concrete Persistence implementations.\n */\nexport type ValidKey = string | number;\n\nexport const isValidKey = (key: unknown): key is ValidKey => typeof key === \"string\" || typeof key === \"number\";\n\n/**\n * The abstract Persistence class defines an async interface for interacting with persistent client-side storage. This\n * is modeled as a simple key/value store.\n *\n * Subclasses may be implemented to support a variety of persistence mechanisms – e.g. localStorage, IndexedDB, etc.\n */\nexport abstract class Persistence<T> {\n abstract size: number;\n\n abstract retrieve(key: ValidKey): Promise<T | undefined>;\n\n abstract retrieveAll(): Promise<Array<[ValidKey, T]>>;\n\n abstract remove(key: ValidKey): Promise<void>;\n\n abstract removeAll(): Promise<T[]>;\n\n /**\n * Persistence implementations must be capable of generating unique keys, or accepting a unique key from the\n * caller.\n */\n abstract store(value: T): Promise<ValidKey>;\n abstract store(key: ValidKey, value: T): Promise<ValidKey>;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Throw if the current platform is not capable of running Camera Kit.
3
+ */
4
+ export declare function assertPlatformSupported(): Promise<void>;
5
+ //# sourceMappingURL=assertPlatformSupported.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertPlatformSupported.d.ts","sourceRoot":"","sources":["../../src/platform/assertPlatformSupported.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7D"}
@@ -0,0 +1,12 @@
1
+ import { __awaiter } from "tslib";
2
+ import { getPlatformCapabilities } from "./platformCapabilities";
3
+ export function assertPlatformSupported() {
4
+ return __awaiter(this, void 0, void 0, function* () {
5
+ const { wasm, webgl } = yield getPlatformCapabilities();
6
+ if (!wasm.supported)
7
+ throw wasm.error;
8
+ if (!webgl.supported)
9
+ throw webgl.error;
10
+ });
11
+ }
12
+ //# sourceMappingURL=assertPlatformSupported.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertPlatformSupported.js","sourceRoot":"","sources":["../../src/platform/assertPlatformSupported.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKjE,MAAM,UAAgB,uBAAuB;;QACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,MAAM,KAAK,CAAC,KAAK,CAAC;IAC5C,CAAC;CAAA","sourcesContent":["import { getPlatformCapabilities } from \"./platformCapabilities\";\n\n/**\n * Throw if the current platform is not capable of running Camera Kit.\n */\nexport async function assertPlatformSupported(): Promise<void> {\n const { wasm, webgl } = await getPlatformCapabilities();\n if (!wasm.supported) throw wasm.error;\n if (!webgl.supported) throw webgl.error;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ /** @internal */
2
+ export declare const getCameraKitUserAgent: import("../common/memoize").Memoized<() => string>;
3
+ //# sourceMappingURL=cameraKitUserAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cameraKitUserAgent.d.ts","sourceRoot":"","sources":["../../src/platform/cameraKitUserAgent.ts"],"names":[],"mappings":"AAIA,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,6CAA6C,MAAM,CAiBnF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { memoize } from "../common/memoize";
2
+ import { getConfigurationOverrides } from "../configurationOverrides";
3
+ import { getPlatformInfo } from "./platformInfo";
4
+ export const getCameraKitUserAgent = memoize(function getCameraKitUserAgent() {
5
+ var _a;
6
+ const { browser, deviceModel, origin, osName, osVersion, sdkShortVersion, lensCore } = getPlatformInfo();
7
+ const { userAgentFlavor } = (_a = getConfigurationOverrides()) !== null && _a !== void 0 ? _a : { userAgentFlavor: "release" };
8
+ const flavor = userAgentFlavor === "release" ? "" : "DEBUG ";
9
+ return (`CameraKitWeb/${sdkShortVersion} ${flavor}(${deviceModel}; ${osName} ${osVersion}) ` +
10
+ `${browser.brand}/${browser.version} Core/${lensCore.version} ` +
11
+ `AppId/${origin}`);
12
+ });
13
+ //# sourceMappingURL=cameraKitUserAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cameraKitUserAgent.js","sourceRoot":"","sources":["../../src/platform/cameraKitUserAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,SAAS,qBAAqB;;IACvE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAC;IAGzG,MAAM,EAAE,eAAe,EAAE,GAAG,MAAA,yBAAyB,EAAE,mCAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IAC1F,MAAM,MAAM,GAAkB,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAK5E,OAAO,CACH,gBAAgB,eAAe,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,IAAI,SAAS,IAAI;QACpF,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,SAAS,QAAQ,CAAC,OAAO,GAAG;QAG/D,SAAS,MAAM,EAAE,CACpB,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import { memoize } from \"../common/memoize\";\nimport { getConfigurationOverrides } from \"../configurationOverrides\";\nimport { getPlatformInfo } from \"./platformInfo\";\n\n/** @internal */\nexport const getCameraKitUserAgent = memoize(function getCameraKitUserAgent(): string {\n const { browser, deviceModel, origin, osName, osVersion, sdkShortVersion, lensCore } = getPlatformInfo();\n\n // Set this to `DEBUG` manually while testing / root-causing.\n const { userAgentFlavor } = getConfigurationOverrides() ?? { userAgentFlavor: \"release\" };\n const flavor: \"\" | \"DEBUG \" = userAgentFlavor === \"release\" ? \"\" : \"DEBUG \";\n\n // This full string is defined here:\n // eslint-disable-next-line max-len\n // https://github.sc-corp.net/Snapchat/useragent/blob/9333afe7cc6ac00503ad46cb234bcf94006dff98/java/useragent/src/main/java/snapchat/client/UserAgent.java#L124\n return (\n `CameraKitWeb/${sdkShortVersion} ${flavor}(${deviceModel}; ${osName} ${osVersion}) ` +\n `${browser.brand}/${browser.version} Core/${lensCore.version} ` +\n // We overload appId, using the origin instead of the true appId parsed from the apiToken -- we do this because\n // origin is human-readable, and this is used to populate the appId dimension in operational metrics.\n `AppId/${origin}`\n );\n});\n"]}
@@ -0,0 +1,58 @@
1
+ import type { XrCapabilities } from "../lens-core-module/generated-types";
2
+ /** @internal */
3
+ export type SupportedCapability<T> = T & {
4
+ supported: true;
5
+ };
6
+ /** @internal */
7
+ export type UnsupportedCapability = {
8
+ supported: false;
9
+ error: Error;
10
+ };
11
+ /** @internal */
12
+ export type Capability<T = void> = SupportedCapability<T> | UnsupportedCapability;
13
+ type WebGlCapability = Capability<{
14
+ maxTextureSize: number;
15
+ }>;
16
+ type WasmCapability = Capability<{
17
+ wasmFeatures: number;
18
+ }>;
19
+ /**
20
+ * Because there may be a large number of WASM-related capabilities, and because these may correspond to various builds
21
+ * of LensCore, we encode the various WASM capabilities into a single number by bitwise OR-ing together the numbers
22
+ * corresponding to each capability.
23
+ *
24
+ * Since each combindation of capabilities is represented by a single number, we can easily map between that number and
25
+ * the corresponding LensCore build name that makes use of those capabilities.
26
+ *
27
+ * @internal
28
+ */
29
+ export declare enum WasmFeatures {
30
+ Default = 0,
31
+ SIMD = 1,
32
+ ExceptionHandling = 2
33
+ }
34
+ type WebXrCapability = Capability<XrCapabilities>;
35
+ /**
36
+ * @returns A Promise containing an object with fields describing the support of various WebXR features. This object's
37
+ * type is defined by LensCore, as they consume these capabilities and adjust behavior accordingly.
38
+ *
39
+ * @internal
40
+ */
41
+ export declare function getWebXrCapabilities(): Promise<WebXrCapability>;
42
+ /** @internal */
43
+ export interface PlatformCapabilities {
44
+ webgl: WebGlCapability;
45
+ wasm: WasmCapability;
46
+ webxr: WebXrCapability;
47
+ }
48
+ /**
49
+ * Get information about the current platform capabilities, including:
50
+ * - WebGL support and various WebGL parameters.
51
+ * - WASM support and support for various WASM features.
52
+ * - WebXR support and support for various WebXR features.
53
+ *
54
+ * @internal
55
+ */
56
+ export declare const getPlatformCapabilities: import("../common/memoize").Memoized<() => Promise<PlatformCapabilities>>;
57
+ export {};
58
+ //# sourceMappingURL=platformCapabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformCapabilities.d.ts","sourceRoot":"","sources":["../../src/platform/platformCapabilities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAI1E,gBAAgB;AAChB,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAC7D,gBAAgB;AAChB,MAAM,MAAM,qBAAqB,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AACvE,gBAAgB;AAChB,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;AAMlF,KAAK,eAAe,GAAG,UAAU,CAAC;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA8C9D,KAAK,cAAc,GAAG,UAAU,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AACH,oBAAY,YAAY;IACpB,OAAO,IAAa;IACpB,IAAI,IAAa;IACjB,iBAAiB,IAAa;CACjC;AAoCD,KAAK,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAalD;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CAuBrE;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,6CAAqD,QAAQ,oBAAoB,CAAC,CAMpH,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { __awaiter } from "tslib";
2
+ import { exceptions, simd } from "wasm-feature-detect";
3
+ import { memoize } from "../common/memoize";
4
+ import { platformNotSupportedError } from "../namedErrors";
5
+ import { getPlatformInfo } from "./platformInfo";
6
+ const minRequiredMaxTextureSize = 1024;
7
+ function getWebGlSupport() {
8
+ var _a, _b;
9
+ const ctx = (_a = globalThis.document) === null || _a === void 0 ? void 0 : _a.createElement("canvas").getContext("webgl2");
10
+ if (!ctx) {
11
+ const cause = ((_b = globalThis.document) === null || _b === void 0 ? void 0 : _b.createElement("canvas").getContext("webgl"))
12
+ ? "platform_not_supported_only_webgl1"
13
+ : typeof globalThis.WebGLRenderingContext === "function"
14
+ ? "platform_not_supported_likely_no_hw_accel"
15
+ : "platform_not_supported_no_webgl_browser_support";
16
+ return {
17
+ supported: false,
18
+ error: platformNotSupportedError("CameraKit requires WebGL2, but this browser does not support WebGL2.", new Error(cause)),
19
+ };
20
+ }
21
+ const maxTextureSize = ctx.getParameter(ctx.MAX_TEXTURE_SIZE);
22
+ const supported = maxTextureSize >= minRequiredMaxTextureSize;
23
+ return supported
24
+ ? { supported, maxTextureSize }
25
+ : {
26
+ supported,
27
+ error: platformNotSupportedError(`CameraKit requires WebGL's MAX_TEXTURE_SIZE exceed a minimum value of ` +
28
+ `${minRequiredMaxTextureSize}, but the browser's reported MAX_TEXTURE_SIZE is ${maxTextureSize}.`),
29
+ };
30
+ }
31
+ export var WasmFeatures;
32
+ (function (WasmFeatures) {
33
+ WasmFeatures[WasmFeatures["Default"] = 0] = "Default";
34
+ WasmFeatures[WasmFeatures["SIMD"] = 1] = "SIMD";
35
+ WasmFeatures[WasmFeatures["ExceptionHandling"] = 2] = "ExceptionHandling";
36
+ })(WasmFeatures || (WasmFeatures = {}));
37
+ function getWebAssemblyCapabilities() {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ if (globalThis.WebAssembly === undefined)
40
+ return {
41
+ supported: false,
42
+ error: platformNotSupportedError("CameraKit requires WebAssembly, but this browser does not support WebAssembly."),
43
+ };
44
+ return {
45
+ supported: true,
46
+ wasmFeatures: (yield Promise.all([
47
+ simd().then((supported) => {
48
+ if (getPlatformInfo().browser.brand === "Safari")
49
+ return WasmFeatures.Default;
50
+ return supported ? WasmFeatures.SIMD : WasmFeatures.Default;
51
+ }),
52
+ exceptions().then((supported) => (supported ? WasmFeatures.ExceptionHandling : WasmFeatures.Default)),
53
+ ])).reduce((features, feature) => features | feature, WasmFeatures.Default),
54
+ };
55
+ });
56
+ }
57
+ function getGenericWebXrNotSupported(cause) {
58
+ return {
59
+ supported: false,
60
+ error: platformNotSupportedError(`Use of this feature requires WebXR support for immersive AR sessions, but ` +
61
+ `this browser does not support immersive AR sessions.`, cause),
62
+ };
63
+ }
64
+ export function getWebXrCapabilities() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ try {
67
+ if (!isSecureContext || !navigator.xr)
68
+ return getGenericWebXrNotSupported();
69
+ const isImmersiveArSupported = yield navigator.xr.isSessionSupported("immersive-ar");
70
+ return isImmersiveArSupported
71
+ ? {
72
+ supported: true,
73
+ sixDofSupported: true,
74
+ sceneDepthSupported: true,
75
+ }
76
+ : getGenericWebXrNotSupported();
77
+ }
78
+ catch (error) {
79
+ if (error instanceof Error && error.name === "SecurityError") {
80
+ return {
81
+ supported: false,
82
+ error: platformNotSupportedError("Failed to check XR capabilities due to permissions or other issues.", error),
83
+ };
84
+ }
85
+ return getGenericWebXrNotSupported(error);
86
+ }
87
+ });
88
+ }
89
+ export const getPlatformCapabilities = memoize(function getPlatformCapabilities() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ return {
92
+ webgl: getWebGlSupport(),
93
+ wasm: yield getWebAssemblyCapabilities(),
94
+ webxr: yield getWebXrCapabilities(),
95
+ };
96
+ });
97
+ });
98
+ //# sourceMappingURL=platformCapabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformCapabilities.js","sourceRoot":"","sources":["../../src/platform/platformCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { exceptions, simd } from \"wasm-feature-detect\";\nimport { memoize } from \"../common/memoize\";\nimport type { XrCapabilities } from \"../lens-core-module/generated-types\";\nimport { platformNotSupportedError } from \"../namedErrors\";\nimport { getPlatformInfo } from \"./platformInfo\";\n\n/** @internal */\nexport type SupportedCapability<T> = T & { supported: true };\n/** @internal */\nexport type UnsupportedCapability = { supported: false; error: Error };\n/** @internal */\nexport type Capability<T = void> = SupportedCapability<T> | UnsupportedCapability;\n\n//-----------\n// WebGL\n//-----------\n\ntype WebGlCapability = Capability<{ maxTextureSize: number }>;\n\n// This required minimum max texture size is based on data from\n// https://web3dsurvey.com/webgl/parameters/MAX_TEXTURE_SIZE. Checking for a reasonable minimum MAX_TEXTURE_SIZE avoids\n// attempting to run lenses on platforms that will not support them -- most commonly, we've seen some platforms that\n// report 0 MAX_TEXTURE_SIZE, which will cause errors for all lenses.\nconst minRequiredMaxTextureSize = 1024;\n\n/**\n * @returns An object with fields describing support for various WebGL features.\n *\n * @internal\n */\nfunction getWebGlSupport(): WebGlCapability {\n const ctx = globalThis.document?.createElement(\"canvas\").getContext(\"webgl2\");\n if (!ctx) {\n const cause = globalThis.document?.createElement(\"canvas\").getContext(\"webgl\")\n ? \"platform_not_supported_only_webgl1\"\n : typeof globalThis.WebGLRenderingContext === \"function\"\n ? \"platform_not_supported_likely_no_hw_accel\"\n : \"platform_not_supported_no_webgl_browser_support\";\n return {\n supported: false,\n error: platformNotSupportedError(\n \"CameraKit requires WebGL2, but this browser does not support WebGL2.\",\n new Error(cause)\n ),\n };\n }\n const maxTextureSize = ctx.getParameter(ctx.MAX_TEXTURE_SIZE);\n const supported = maxTextureSize >= minRequiredMaxTextureSize;\n return supported\n ? { supported, maxTextureSize }\n : {\n supported,\n error: platformNotSupportedError(\n `CameraKit requires WebGL's MAX_TEXTURE_SIZE exceed a minimum value of ` +\n `${minRequiredMaxTextureSize}, but the browser's reported MAX_TEXTURE_SIZE is ${maxTextureSize}.`\n ),\n };\n}\n\n//-----------\n// WASM\n//-----------\n\ntype WasmCapability = Capability<{ wasmFeatures: number }>;\n\n/**\n * Because there may be a large number of WASM-related capabilities, and because these may correspond to various builds\n * of LensCore, we encode the various WASM capabilities into a single number by bitwise OR-ing together the numbers\n * corresponding to each capability.\n *\n * Since each combindation of capabilities is represented by a single number, we can easily map between that number and\n * the corresponding LensCore build name that makes use of those capabilities.\n *\n * @internal\n */\nexport enum WasmFeatures {\n Default = 0b00000000,\n SIMD = 0b00000001,\n ExceptionHandling = 0b00000010,\n}\n\n/**\n * @returns A non-negative integer representing the combination of supported WebAssembly features, or -1 if WebAssembly\n * is not supported at all.\n *\n * @internal\n */\nasync function getWebAssemblyCapabilities(): Promise<WasmCapability> {\n if (globalThis.WebAssembly === undefined)\n return {\n supported: false,\n error: platformNotSupportedError(\n \"CameraKit requires WebAssembly, but this browser does not support WebAssembly.\"\n ),\n };\n return {\n supported: true,\n wasmFeatures: (\n await Promise.all([\n simd().then((supported) => {\n // Although Safari 16.4 reports SIMD support, LensCore encounters rendering bugs when using\n // SIMD in Safari 16.4. We will disable SIMD for now until Safari stabilizes the feature.\n if (getPlatformInfo().browser.brand === \"Safari\") return WasmFeatures.Default;\n return supported ? WasmFeatures.SIMD : WasmFeatures.Default;\n }),\n exceptions().then((supported) => (supported ? WasmFeatures.ExceptionHandling : WasmFeatures.Default)),\n ])\n ).reduce((features, feature) => features | feature, WasmFeatures.Default),\n };\n}\n\n//-----------\n// WebXR\n//-----------\n\ntype WebXrCapability = Capability<XrCapabilities>;\n\nfunction getGenericWebXrNotSupported(cause?: unknown): WebXrCapability {\n return {\n supported: false,\n error: platformNotSupportedError(\n `Use of this feature requires WebXR support for immersive AR sessions, but ` +\n `this browser does not support immersive AR sessions.`,\n cause\n ),\n };\n}\n\n/**\n * @returns A Promise containing an object with fields describing the support of various WebXR features. This object's\n * type is defined by LensCore, as they consume these capabilities and adjust behavior accordingly.\n *\n * @internal\n */\nexport async function getWebXrCapabilities(): Promise<WebXrCapability> {\n try {\n if (!isSecureContext || !navigator.xr) return getGenericWebXrNotSupported();\n const isImmersiveArSupported = await navigator.xr.isSessionSupported(\"immersive-ar\");\n return isImmersiveArSupported\n ? {\n supported: true,\n sixDofSupported: true,\n sceneDepthSupported: true,\n }\n : getGenericWebXrNotSupported();\n } catch (error) {\n if (error instanceof Error && error.name === \"SecurityError\") {\n return {\n supported: false,\n error: platformNotSupportedError(\n \"Failed to check XR capabilities due to permissions or other issues.\",\n error\n ),\n };\n }\n return getGenericWebXrNotSupported(error);\n }\n}\n\n/** @internal */\nexport interface PlatformCapabilities {\n webgl: WebGlCapability;\n wasm: WasmCapability;\n webxr: WebXrCapability;\n}\n\n/**\n * Get information about the current platform capabilities, including:\n * - WebGL support and various WebGL parameters.\n * - WASM support and support for various WASM features.\n * - WebXR support and support for various WebXR features.\n *\n * @internal\n */\nexport const getPlatformCapabilities = memoize(async function getPlatformCapabilities(): Promise<PlatformCapabilities> {\n return {\n webgl: getWebGlSupport(),\n wasm: await getWebAssemblyCapabilities(),\n webxr: await getWebXrCapabilities(),\n };\n});\n"]}
@@ -0,0 +1,44 @@
1
+ type BrandArray = Array<{
2
+ brand: string;
3
+ version: string;
4
+ }>;
5
+ interface NavigatorUAData {
6
+ brands: BrandArray;
7
+ mobile: boolean;
8
+ platform: string;
9
+ }
10
+ /** @internal */
11
+ export type ConnectionType = "bluetooth" | "cellular" | "ethernet" | "none" | "wifi" | "wimax" | "other" | "unknown";
12
+ declare global {
13
+ interface Navigator {
14
+ userAgentData?: NavigatorUAData;
15
+ connection?: {
16
+ type?: ConnectionType;
17
+ };
18
+ }
19
+ }
20
+ /** @internal */
21
+ export interface PlatformInfo {
22
+ sdkShortVersion: string;
23
+ sdkLongVersion: string;
24
+ lensCore: {
25
+ version: string;
26
+ buildNumber: string;
27
+ baseUrl: string;
28
+ };
29
+ browser: {
30
+ brand: string;
31
+ version: string;
32
+ };
33
+ osName: string;
34
+ osVersion: string;
35
+ deviceModel: string;
36
+ locale: string;
37
+ fullLocale: string;
38
+ origin: string;
39
+ connectionType: ConnectionType;
40
+ }
41
+ /** @internal */
42
+ export declare const getPlatformInfo: import("../common/memoize").Memoized<() => PlatformInfo>;
43
+ export {};
44
+ //# sourceMappingURL=platformInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformInfo.d.ts","sourceRoot":"","sources":["../../src/platform/platformInfo.ts"],"names":[],"mappings":"AAKA,KAAK,UAAU,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5D,UAAU,eAAe;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAErH,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,SAAS;QACf,aAAa,CAAC,EAAE,eAAe,CAAC;QAChC,UAAU,CAAC,EAAE;YAGT,IAAI,CAAC,EAAE,cAAc,CAAC;SACzB,CAAC;KACL;CACJ;AAsOD,gBAAgB;AAChB,MAAM,WAAW,YAAY;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;CAClC;AAED,gBAAgB;AAChB,eAAO,MAAM,eAAe,6CAAsC,YAAY,CA0C5E,CAAC"}