@snap/camera-kit 0.16.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1220) hide show
  1. package/LICENSE.md +141 -3875
  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 +155 -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/debugHandler.d.ts +9 -0
  252. package/dist/handlers/debugHandler.d.ts.map +1 -0
  253. package/dist/handlers/debugHandler.js +18 -0
  254. package/dist/handlers/debugHandler.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 +25 -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 +470 -0
  371. package/dist/lens-core-module/generated-types.d.ts.map +1 -0
  372. package/dist/lens-core-module/lensCore.d.ts +59 -0
  373. package/dist/lens-core-module/lensCore.d.ts.map +1 -0
  374. package/dist/lens-core-module/lensCore.js +95 -0
  375. package/dist/lens-core-module/lensCore.js.map +1 -0
  376. package/dist/lens-core-module/lensCoreError.d.ts +16 -0
  377. package/dist/lens-core-module/lensCoreError.d.ts.map +1 -0
  378. package/dist/lens-core-module/lensCoreError.js +35 -0
  379. package/dist/lens-core-module/lensCoreError.js.map +1 -0
  380. package/dist/lens-core-module/loader/bootstrapURLs.d.ts +13 -0
  381. package/dist/lens-core-module/loader/bootstrapURLs.d.ts.map +1 -0
  382. package/dist/lens-core-module/loader/bootstrapURLs.js +32 -0
  383. package/dist/lens-core-module/loader/bootstrapURLs.js.map +1 -0
  384. package/dist/lens-core-module/loader/lensCoreFactory.d.ts +18 -0
  385. package/dist/lens-core-module/loader/lensCoreFactory.d.ts.map +1 -0
  386. package/dist/lens-core-module/loader/lensCoreFactory.js +54 -0
  387. package/dist/lens-core-module/loader/lensCoreFactory.js.map +1 -0
  388. package/dist/lensCoreWasmVersions.d.ts +7 -0
  389. package/dist/lensCoreWasmVersions.d.ts.map +1 -0
  390. package/dist/lensCoreWasmVersions.js +6 -0
  391. package/dist/lensCoreWasmVersions.js.map +1 -0
  392. package/dist/logger/errorLoggingDecorator.d.ts +10 -0
  393. package/dist/logger/errorLoggingDecorator.d.ts.map +1 -0
  394. package/dist/logger/errorLoggingDecorator.js +19 -0
  395. package/dist/logger/errorLoggingDecorator.js.map +1 -0
  396. package/dist/logger/logEntries.d.ts +16 -0
  397. package/dist/logger/logEntries.d.ts.map +1 -0
  398. package/dist/logger/logEntries.js +4 -0
  399. package/dist/logger/logEntries.js.map +1 -0
  400. package/dist/logger/logger.d.ts +41 -0
  401. package/dist/logger/logger.d.ts.map +1 -0
  402. package/dist/logger/logger.js +27 -0
  403. package/dist/logger/logger.js.map +1 -0
  404. package/dist/logger/registerLogEntriesSubscriber.d.ts +15 -0
  405. package/dist/logger/registerLogEntriesSubscriber.d.ts.map +1 -0
  406. package/dist/logger/registerLogEntriesSubscriber.js +27 -0
  407. package/dist/logger/registerLogEntriesSubscriber.js.map +1 -0
  408. package/dist/media-sources/CameraKitSource.d.ts +130 -0
  409. package/dist/media-sources/CameraKitSource.d.ts.map +1 -0
  410. package/dist/media-sources/CameraKitSource.js +96 -0
  411. package/dist/media-sources/CameraKitSource.js.map +1 -0
  412. package/dist/media-sources/FunctionSource.d.ts +42 -0
  413. package/dist/media-sources/FunctionSource.d.ts.map +1 -0
  414. package/dist/media-sources/FunctionSource.js +105 -0
  415. package/dist/media-sources/FunctionSource.js.map +1 -0
  416. package/dist/media-sources/ImageSource.d.ts +13 -0
  417. package/dist/media-sources/ImageSource.d.ts.map +1 -0
  418. package/dist/media-sources/ImageSource.js +7 -0
  419. package/dist/media-sources/ImageSource.js.map +1 -0
  420. package/dist/media-sources/MediaStreamSource.d.ts +31 -0
  421. package/dist/media-sources/MediaStreamSource.d.ts.map +1 -0
  422. package/dist/media-sources/MediaStreamSource.js +140 -0
  423. package/dist/media-sources/MediaStreamSource.js.map +1 -0
  424. package/dist/media-sources/VideoSource.d.ts +27 -0
  425. package/dist/media-sources/VideoSource.d.ts.map +1 -0
  426. package/dist/media-sources/VideoSource.js +12 -0
  427. package/dist/media-sources/VideoSource.js.map +1 -0
  428. package/dist/metrics/businessEventsReporter.d.ts +40 -0
  429. package/dist/metrics/businessEventsReporter.d.ts.map +1 -0
  430. package/dist/metrics/businessEventsReporter.js +156 -0
  431. package/dist/metrics/businessEventsReporter.js.map +1 -0
  432. package/dist/metrics/metricsEventTarget.d.ts +42 -0
  433. package/dist/metrics/metricsEventTarget.d.ts.map +1 -0
  434. package/dist/metrics/metricsEventTarget.js +4 -0
  435. package/dist/metrics/metricsEventTarget.js.map +1 -0
  436. package/dist/metrics/operational/Count.d.ts +21 -0
  437. package/dist/metrics/operational/Count.d.ts.map +1 -0
  438. package/dist/metrics/operational/Count.js +31 -0
  439. package/dist/metrics/operational/Count.js.map +1 -0
  440. package/dist/metrics/operational/Histogram.d.ts +19 -0
  441. package/dist/metrics/operational/Histogram.d.ts.map +1 -0
  442. package/dist/metrics/operational/Histogram.js +26 -0
  443. package/dist/metrics/operational/Histogram.js.map +1 -0
  444. package/dist/metrics/operational/Metric.d.ts +21 -0
  445. package/dist/metrics/operational/Metric.d.ts.map +1 -0
  446. package/dist/metrics/operational/Metric.js +23 -0
  447. package/dist/metrics/operational/Metric.js.map +1 -0
  448. package/dist/metrics/operational/Timer.d.ts +96 -0
  449. package/dist/metrics/operational/Timer.d.ts.map +1 -0
  450. package/dist/metrics/operational/Timer.js +64 -0
  451. package/dist/metrics/operational/Timer.js.map +1 -0
  452. package/dist/metrics/reporters/reportBenchmarks.d.ts +11 -0
  453. package/dist/metrics/reporters/reportBenchmarks.d.ts.map +1 -0
  454. package/dist/metrics/reporters/reportBenchmarks.js +27 -0
  455. package/dist/metrics/reporters/reportBenchmarks.js.map +1 -0
  456. package/dist/metrics/reporters/reportGlobalException.d.ts +27 -0
  457. package/dist/metrics/reporters/reportGlobalException.d.ts.map +1 -0
  458. package/dist/metrics/reporters/reportGlobalException.js +82 -0
  459. package/dist/metrics/reporters/reportGlobalException.js.map +1 -0
  460. package/dist/metrics/reporters/reportHttpMetrics.d.ts +11 -0
  461. package/dist/metrics/reporters/reportHttpMetrics.d.ts.map +1 -0
  462. package/dist/metrics/reporters/reportHttpMetrics.js +107 -0
  463. package/dist/metrics/reporters/reportHttpMetrics.js.map +1 -0
  464. package/dist/metrics/reporters/reportLegalState.d.ts +16 -0
  465. package/dist/metrics/reporters/reportLegalState.d.ts.map +1 -0
  466. package/dist/metrics/reporters/reportLegalState.js +29 -0
  467. package/dist/metrics/reporters/reportLegalState.js.map +1 -0
  468. package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts +39 -0
  469. package/dist/metrics/reporters/reportLensAndAssetDownload.d.ts.map +1 -0
  470. package/dist/metrics/reporters/reportLensAndAssetDownload.js +91 -0
  471. package/dist/metrics/reporters/reportLensAndAssetDownload.js.map +1 -0
  472. package/dist/metrics/reporters/reportLensValidationFailed.d.ts +21 -0
  473. package/dist/metrics/reporters/reportLensValidationFailed.d.ts.map +1 -0
  474. package/dist/metrics/reporters/reportLensValidationFailed.js +21 -0
  475. package/dist/metrics/reporters/reportLensValidationFailed.js.map +1 -0
  476. package/dist/metrics/reporters/reportLensView.d.ts +37 -0
  477. package/dist/metrics/reporters/reportLensView.d.ts.map +1 -0
  478. package/dist/metrics/reporters/reportLensView.js +102 -0
  479. package/dist/metrics/reporters/reportLensView.js.map +1 -0
  480. package/dist/metrics/reporters/reportLensWait.d.ts +33 -0
  481. package/dist/metrics/reporters/reportLensWait.d.ts.map +1 -0
  482. package/dist/metrics/reporters/reportLensWait.js +35 -0
  483. package/dist/metrics/reporters/reportLensWait.js.map +1 -0
  484. package/dist/metrics/reporters/reportPlatformCapabilities.d.ts +13 -0
  485. package/dist/metrics/reporters/reportPlatformCapabilities.d.ts.map +1 -0
  486. package/dist/metrics/reporters/reportPlatformCapabilities.js +13 -0
  487. package/dist/metrics/reporters/reportPlatformCapabilities.js.map +1 -0
  488. package/dist/metrics/reporters/reportSessionException.d.ts +18 -0
  489. package/dist/metrics/reporters/reportSessionException.d.ts.map +1 -0
  490. package/dist/metrics/reporters/reportSessionException.js +7 -0
  491. package/dist/metrics/reporters/reportSessionException.js.map +1 -0
  492. package/dist/metrics/reporters/reportUserSession.d.ts +15 -0
  493. package/dist/metrics/reporters/reportUserSession.d.ts.map +1 -0
  494. package/dist/metrics/reporters/reportUserSession.js +61 -0
  495. package/dist/metrics/reporters/reportUserSession.js.map +1 -0
  496. package/dist/metrics/reporters/reporters.d.ts +47 -0
  497. package/dist/metrics/reporters/reporters.d.ts.map +1 -0
  498. package/dist/metrics/reporters/reporters.js +24 -0
  499. package/dist/metrics/reporters/reporters.js.map +1 -0
  500. package/dist/namedErrors.d.ts +131 -0
  501. package/dist/namedErrors.d.ts.map +1 -0
  502. package/dist/namedErrors.js +29 -0
  503. package/dist/namedErrors.js.map +1 -0
  504. package/dist/observable-operators/debounceTimeAfter.d.ts +26 -0
  505. package/dist/observable-operators/debounceTimeAfter.d.ts.map +1 -0
  506. package/dist/observable-operators/debounceTimeAfter.js +22 -0
  507. package/dist/observable-operators/debounceTimeAfter.js.map +1 -0
  508. package/dist/observable-operators/unsubscribed.d.ts +13 -0
  509. package/dist/observable-operators/unsubscribed.d.ts.map +1 -0
  510. package/dist/observable-operators/unsubscribed.js +15 -0
  511. package/dist/observable-operators/unsubscribed.js.map +1 -0
  512. package/dist/persistence/ExpiringPersistence.d.ts +22 -0
  513. package/dist/persistence/ExpiringPersistence.d.ts.map +1 -0
  514. package/dist/persistence/ExpiringPersistence.js +64 -0
  515. package/dist/persistence/ExpiringPersistence.js.map +1 -0
  516. package/dist/persistence/IndexedDBPersistence.d.ts +48 -0
  517. package/dist/persistence/IndexedDBPersistence.d.ts.map +1 -0
  518. package/dist/persistence/IndexedDBPersistence.js +127 -0
  519. package/dist/persistence/IndexedDBPersistence.js.map +1 -0
  520. package/dist/persistence/Persistence.d.ts +26 -0
  521. package/dist/persistence/Persistence.d.ts.map +1 -0
  522. package/dist/persistence/Persistence.js +4 -0
  523. package/dist/persistence/Persistence.js.map +1 -0
  524. package/dist/platform/assertPlatformSupported.d.ts +5 -0
  525. package/dist/platform/assertPlatformSupported.d.ts.map +1 -0
  526. package/dist/platform/assertPlatformSupported.js +12 -0
  527. package/dist/platform/assertPlatformSupported.js.map +1 -0
  528. package/dist/platform/cameraKitUserAgent.d.ts +3 -0
  529. package/dist/platform/cameraKitUserAgent.d.ts.map +1 -0
  530. package/dist/platform/cameraKitUserAgent.js +13 -0
  531. package/dist/platform/cameraKitUserAgent.js.map +1 -0
  532. package/dist/platform/platformCapabilities.d.ts +58 -0
  533. package/dist/platform/platformCapabilities.d.ts.map +1 -0
  534. package/dist/platform/platformCapabilities.js +98 -0
  535. package/dist/platform/platformCapabilities.js.map +1 -0
  536. package/dist/platform/platformInfo.d.ts +44 -0
  537. package/dist/platform/platformInfo.d.ts.map +1 -0
  538. package/dist/platform/platformInfo.js +156 -0
  539. package/dist/platform/platformInfo.js.map +1 -0
  540. package/dist/remote-configuration/cofHandler.d.ts +30 -0
  541. package/dist/remote-configuration/cofHandler.d.ts.map +1 -0
  542. package/dist/remote-configuration/cofHandler.js +83 -0
  543. package/dist/remote-configuration/cofHandler.js.map +1 -0
  544. package/dist/remote-configuration/preloadConfiguration.d.ts +8 -0
  545. package/dist/remote-configuration/preloadConfiguration.d.ts.map +1 -0
  546. package/dist/remote-configuration/preloadConfiguration.js +20 -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 -220
  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 -16
  971. package/lib/lens/cameraKitLensSource.js +0 -59
  972. package/lib/lens/cameraKitLensSource.js.map +0 -1
  973. package/lib/lens-client-interface/exif.d.ts +0 -20
  974. package/lib/lens-client-interface/exif.js +0 -61
  975. package/lib/lens-client-interface/exif.js.map +0 -1
  976. package/lib/lens-client-interface/imagePicker.d.ts +0 -8
  977. package/lib/lens-client-interface/imagePicker.js +0 -128
  978. package/lib/lens-client-interface/imagePicker.js.map +0 -1
  979. package/lib/lens-client-interface/lensClientInterface.d.ts +0 -13
  980. package/lib/lens-client-interface/lensClientInterface.js +0 -30
  981. package/lib/lens-client-interface/lensClientInterface.js.map +0 -1
  982. package/lib/lens-core-module/generated-types.d.ts +0 -469
  983. package/lib/lens-core-module/lensCore.d.ts +0 -43
  984. package/lib/lens-core-module/lensCore.js +0 -59
  985. package/lib/lens-core-module/lensCore.js.map +0 -1
  986. package/lib/lens-core-module/lensCoreError.d.ts +0 -15
  987. package/lib/lens-core-module/lensCoreError.js +0 -43
  988. package/lib/lens-core-module/lensCoreError.js.map +0 -1
  989. package/lib/lens-core-module/loader/bootstrapURLs.d.ts +0 -12
  990. package/lib/lens-core-module/loader/bootstrapURLs.js +0 -48
  991. package/lib/lens-core-module/loader/bootstrapURLs.js.map +0 -1
  992. package/lib/lens-core-module/loader/lensCoreFactory.d.ts +0 -17
  993. package/lib/lens-core-module/loader/lensCoreFactory.js +0 -76
  994. package/lib/lens-core-module/loader/lensCoreFactory.js.map +0 -1
  995. package/lib/lensCoreWasmVersions.d.ts +0 -6
  996. package/lib/lensCoreWasmVersions.js +0 -6
  997. package/lib/lensCoreWasmVersions.js.map +0 -1
  998. package/lib/logger/errorLoggingDecorator.d.ts +0 -9
  999. package/lib/logger/errorLoggingDecorator.js +0 -32
  1000. package/lib/logger/errorLoggingDecorator.js.map +0 -1
  1001. package/lib/logger/logEntries.d.ts +0 -15
  1002. package/lib/logger/logEntries.js +0 -14
  1003. package/lib/logger/logEntries.js.map +0 -1
  1004. package/lib/logger/logger.d.ts +0 -40
  1005. package/lib/logger/logger.js +0 -53
  1006. package/lib/logger/logger.js.map +0 -1
  1007. package/lib/logger/registerLogEntriesSubscriber.d.ts +0 -14
  1008. package/lib/logger/registerLogEntriesSubscriber.js +0 -35
  1009. package/lib/logger/registerLogEntriesSubscriber.js.map +0 -1
  1010. package/lib/media-sources/CameraKitSource.d.ts +0 -126
  1011. package/lib/media-sources/CameraKitSource.js +0 -138
  1012. package/lib/media-sources/CameraKitSource.js.map +0 -1
  1013. package/lib/media-sources/FunctionSource.d.ts +0 -41
  1014. package/lib/media-sources/FunctionSource.js +0 -128
  1015. package/lib/media-sources/FunctionSource.js.map +0 -1
  1016. package/lib/media-sources/ImageSource.d.ts +0 -11
  1017. package/lib/media-sources/ImageSource.js +0 -16
  1018. package/lib/media-sources/ImageSource.js.map +0 -1
  1019. package/lib/media-sources/MediaStreamSource.d.ts +0 -29
  1020. package/lib/media-sources/MediaStreamSource.js +0 -137
  1021. package/lib/media-sources/MediaStreamSource.js.map +0 -1
  1022. package/lib/media-sources/VideoSource.d.ts +0 -25
  1023. package/lib/media-sources/VideoSource.js +0 -22
  1024. package/lib/media-sources/VideoSource.js.map +0 -1
  1025. package/lib/metrics/businessEventsReporter.d.ts +0 -39
  1026. package/lib/metrics/businessEventsReporter.js +0 -195
  1027. package/lib/metrics/businessEventsReporter.js.map +0 -1
  1028. package/lib/metrics/metricsEventTarget.d.ts +0 -41
  1029. package/lib/metrics/metricsEventTarget.js +0 -11
  1030. package/lib/metrics/metricsEventTarget.js.map +0 -1
  1031. package/lib/metrics/operational/Count.d.ts +0 -19
  1032. package/lib/metrics/operational/Count.js +0 -33
  1033. package/lib/metrics/operational/Count.js.map +0 -1
  1034. package/lib/metrics/operational/Histogram.d.ts +0 -17
  1035. package/lib/metrics/operational/Histogram.js +0 -27
  1036. package/lib/metrics/operational/Histogram.js.map +0 -1
  1037. package/lib/metrics/operational/Metric.d.ts +0 -20
  1038. package/lib/metrics/operational/Metric.js +0 -28
  1039. package/lib/metrics/operational/Metric.js.map +0 -1
  1040. package/lib/metrics/operational/Timer.d.ts +0 -94
  1041. package/lib/metrics/operational/Timer.js +0 -108
  1042. package/lib/metrics/operational/Timer.js.map +0 -1
  1043. package/lib/metrics/reporters/reportBenchmarks.d.ts +0 -10
  1044. package/lib/metrics/reporters/reportBenchmarks.js +0 -30
  1045. package/lib/metrics/reporters/reportBenchmarks.js.map +0 -1
  1046. package/lib/metrics/reporters/reportGlobalException.d.ts +0 -26
  1047. package/lib/metrics/reporters/reportGlobalException.js +0 -106
  1048. package/lib/metrics/reporters/reportGlobalException.js.map +0 -1
  1049. package/lib/metrics/reporters/reportHttpMetrics.d.ts +0 -10
  1050. package/lib/metrics/reporters/reportHttpMetrics.js +0 -110
  1051. package/lib/metrics/reporters/reportHttpMetrics.js.map +0 -1
  1052. package/lib/metrics/reporters/reportLegalState.d.ts +0 -15
  1053. package/lib/metrics/reporters/reportLegalState.js +0 -32
  1054. package/lib/metrics/reporters/reportLegalState.js.map +0 -1
  1055. package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +0 -38
  1056. package/lib/metrics/reporters/reportLensAndAssetDownload.js +0 -92
  1057. package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +0 -1
  1058. package/lib/metrics/reporters/reportLensValidationFailed.d.ts +0 -20
  1059. package/lib/metrics/reporters/reportLensValidationFailed.js +0 -24
  1060. package/lib/metrics/reporters/reportLensValidationFailed.js.map +0 -1
  1061. package/lib/metrics/reporters/reportLensView.d.ts +0 -36
  1062. package/lib/metrics/reporters/reportLensView.js +0 -137
  1063. package/lib/metrics/reporters/reportLensView.js.map +0 -1
  1064. package/lib/metrics/reporters/reportLensWait.d.ts +0 -32
  1065. package/lib/metrics/reporters/reportLensWait.js +0 -60
  1066. package/lib/metrics/reporters/reportLensWait.js.map +0 -1
  1067. package/lib/metrics/reporters/reportPlatformCapabilities.d.ts +0 -12
  1068. package/lib/metrics/reporters/reportPlatformCapabilities.js +0 -19
  1069. package/lib/metrics/reporters/reportPlatformCapabilities.js.map +0 -1
  1070. package/lib/metrics/reporters/reportSessionException.d.ts +0 -17
  1071. package/lib/metrics/reporters/reportSessionException.js +0 -12
  1072. package/lib/metrics/reporters/reportSessionException.js.map +0 -1
  1073. package/lib/metrics/reporters/reportUserSession.d.ts +0 -14
  1074. package/lib/metrics/reporters/reportUserSession.js +0 -66
  1075. package/lib/metrics/reporters/reportUserSession.js.map +0 -1
  1076. package/lib/metrics/reporters/reporters.d.ts +0 -46
  1077. package/lib/metrics/reporters/reporters.js +0 -35
  1078. package/lib/metrics/reporters/reporters.js.map +0 -1
  1079. package/lib/namedErrors.d.ts +0 -124
  1080. package/lib/namedErrors.js +0 -58
  1081. package/lib/namedErrors.js.map +0 -1
  1082. package/lib/observable-operators/unsubscribed.d.ts +0 -12
  1083. package/lib/observable-operators/unsubscribed.js +0 -27
  1084. package/lib/observable-operators/unsubscribed.js.map +0 -1
  1085. package/lib/persistence/ExpiringPersistence.d.ts +0 -21
  1086. package/lib/persistence/ExpiringPersistence.js +0 -71
  1087. package/lib/persistence/ExpiringPersistence.js.map +0 -1
  1088. package/lib/persistence/IndexedDBPersistence.d.ts +0 -47
  1089. package/lib/persistence/IndexedDBPersistence.js +0 -190
  1090. package/lib/persistence/IndexedDBPersistence.js.map +0 -1
  1091. package/lib/persistence/Persistence.d.ts +0 -25
  1092. package/lib/persistence/Persistence.js +0 -10
  1093. package/lib/persistence/Persistence.js.map +0 -1
  1094. package/lib/platform/assertPlatformSupported.d.ts +0 -4
  1095. package/lib/platform/assertPlatformSupported.js +0 -15
  1096. package/lib/platform/assertPlatformSupported.js.map +0 -1
  1097. package/lib/platform/cameraKitUserAgent.d.ts +0 -2
  1098. package/lib/platform/cameraKitUserAgent.js +0 -20
  1099. package/lib/platform/cameraKitUserAgent.js.map +0 -1
  1100. package/lib/platform/platformCapabilities.d.ts +0 -50
  1101. package/lib/platform/platformCapabilities.js +0 -128
  1102. package/lib/platform/platformCapabilities.js.map +0 -1
  1103. package/lib/platform/platformInfo.d.ts +0 -43
  1104. package/lib/platform/platformInfo.js +0 -228
  1105. package/lib/platform/platformInfo.js.map +0 -1
  1106. package/lib/remote-configuration/cofHandler.d.ts +0 -29
  1107. package/lib/remote-configuration/cofHandler.js +0 -115
  1108. package/lib/remote-configuration/cofHandler.js.map +0 -1
  1109. package/lib/remote-configuration/preloadConfiguration.d.ts +0 -7
  1110. package/lib/remote-configuration/preloadConfiguration.js +0 -15
  1111. package/lib/remote-configuration/preloadConfiguration.js.map +0 -1
  1112. package/lib/remote-configuration/remoteConfiguration.d.ts +0 -34
  1113. package/lib/remote-configuration/remoteConfiguration.js +0 -73
  1114. package/lib/remote-configuration/remoteConfiguration.js.map +0 -1
  1115. package/lib/session/CameraKitSession.d.ts +0 -255
  1116. package/lib/session/CameraKitSession.js +0 -440
  1117. package/lib/session/CameraKitSession.js.map +0 -1
  1118. package/lib/session/CameraKitSessionEvents.d.ts +0 -37
  1119. package/lib/session/CameraKitSessionEvents.js +0 -38
  1120. package/lib/session/CameraKitSessionEvents.js.map +0 -1
  1121. package/lib/session/LensKeyboard.d.ts +0 -94
  1122. package/lib/session/LensKeyboard.js +0 -95
  1123. package/lib/session/LensKeyboard.js.map +0 -1
  1124. package/lib/session/LensPerformanceMeasurement.d.ts +0 -57
  1125. package/lib/session/LensPerformanceMeasurement.js +0 -114
  1126. package/lib/session/LensPerformanceMeasurement.js.map +0 -1
  1127. package/lib/session/LensPerformanceMetrics.d.ts +0 -31
  1128. package/lib/session/LensPerformanceMetrics.js +0 -59
  1129. package/lib/session/LensPerformanceMetrics.js.map +0 -1
  1130. package/lib/session/lensState.d.ts +0 -30
  1131. package/lib/session/lensState.js +0 -238
  1132. package/lib/session/lensState.js.map +0 -1
  1133. package/lib/session/sessionState.d.ts +0 -10
  1134. package/lib/session/sessionState.js.map +0 -1
  1135. package/lib/transforms/Transform2D.d.ts +0 -22
  1136. package/lib/transforms/Transform2D.js +0 -19
  1137. package/lib/transforms/Transform2D.js.map +0 -1
  1138. package/lib/utils.d.ts +0 -3
  1139. /package/{lib → dist}/benchmark/webglUtils.js +0 -0
  1140. /package/{lib → dist}/benchmark/webglUtils.js.map +0 -0
  1141. /package/{lib → dist}/clients/lensesClient.js +0 -0
  1142. /package/{lib → dist}/common/date.js +0 -0
  1143. /package/{lib → dist}/common/date.js.map +0 -0
  1144. /package/{lib → dist}/common/getFilename.js +0 -0
  1145. /package/{lib → dist}/common/getFilename.js.map +0 -0
  1146. /package/{lib → dist}/common/memoize.js +0 -0
  1147. /package/{lib → dist}/common/memoize.js.map +0 -0
  1148. /package/{lib → dist}/common/time.js +0 -0
  1149. /package/{lib → dist}/common/time.js.map +0 -0
  1150. /package/{lib → dist}/common/types.js +0 -0
  1151. /package/{lib → dist}/dependency-injection/Injectable.js +0 -0
  1152. /package/{lib → dist}/dependency-injection/types.js +0 -0
  1153. /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js +0 -0
  1154. /package/{lib → dist}/generated-proto/blizzard/cameraKitEvents.js.map +0 -0
  1155. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js +0 -0
  1156. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +0 -0
  1157. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js +0 -0
  1158. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/export.js.map +0 -0
  1159. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js +0 -0
  1160. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/features/remote_api_info.js.map +0 -0
  1161. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js +0 -0
  1162. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js.map +0 -0
  1163. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js +0 -0
  1164. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/lens.js.map +0 -0
  1165. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js +0 -0
  1166. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js.map +0 -0
  1167. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js +0 -0
  1168. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/ranking.js.map +0 -0
  1169. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js +0 -0
  1170. /package/{lib → dist}/generated-proto/pb_schema/camera_kit/v3/service.js.map +0 -0
  1171. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js +0 -0
  1172. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark.js.map +0 -0
  1173. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js +0 -0
  1174. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/benchmark_name.js.map +0 -0
  1175. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js +0 -0
  1176. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +0 -0
  1177. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js +0 -0
  1178. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_request.js.map +0 -0
  1179. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js +0 -0
  1180. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_response.js.map +0 -0
  1181. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js +0 -0
  1182. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/config_result.js.map +0 -0
  1183. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js +0 -0
  1184. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/debug_info.js.map +0 -0
  1185. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js +0 -0
  1186. /package/{lib → dist}/generated-proto/pb_schema/cdp/cof/namespace.js.map +0 -0
  1187. /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js +0 -0
  1188. /package/{lib → dist}/generated-proto/pb_schema/common/ruid.js.map +0 -0
  1189. /package/{lib → dist}/generated-proto/pb_schema/common/value.js +0 -0
  1190. /package/{lib → dist}/generated-proto/pb_schema/common/value.js.map +0 -0
  1191. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js +0 -0
  1192. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/any.js.map +0 -0
  1193. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js +0 -0
  1194. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/timestamp.js.map +0 -0
  1195. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js +0 -0
  1196. /package/{lib → dist}/generated-proto/pb_schema/google/protobuf/wrappers.js.map +0 -0
  1197. /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js +0 -0
  1198. /package/{lib → dist}/generated-proto/pb_schema/lenses/geocircle.js.map +0 -0
  1199. /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js +0 -0
  1200. /package/{lib → dist}/generated-proto/pb_schema/lenses/geopoint.js.map +0 -0
  1201. /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js +0 -0
  1202. /package/{lib → dist}/generated-proto/pb_schema/lenses/launch_params.js.map +0 -0
  1203. /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js +0 -0
  1204. /package/{lib → dist}/generated-proto/pb_schema/lenses/launchdata.js.map +0 -0
  1205. /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js +0 -0
  1206. /package/{lib → dist}/generated-proto/pb_schema/lenses/lures.js.map +0 -0
  1207. /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js +0 -0
  1208. /package/{lib → dist}/generated-proto/pb_schema/lenses/persistent_store.js.map +0 -0
  1209. /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js +0 -0
  1210. /package/{lib → dist}/generated-proto/pb_schema/lenses/remote_api/remote_api_service.js.map +0 -0
  1211. /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js +0 -0
  1212. /package/{lib → dist}/generated-proto/pb_schema/lenses/snappable.js.map +0 -0
  1213. /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js +0 -0
  1214. /package/{lib → dist}/generated-proto/pb_schema/lenses/user_data.js.map +0 -0
  1215. /package/{lib → dist}/lens/LensPersistenceStore.js +0 -0
  1216. /package/{lib → dist}/lens-core-module/generated-types.js +0 -0
  1217. /package/{lib → dist}/lens-core-module/generated-types.js.map +0 -0
  1218. /package/{lib → dist}/session/sessionState.js +0 -0
  1219. /package/{lib → dist}/utils.js +0 -0
  1220. /package/{lib → dist}/utils.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cameraKitServiceFetchHandlerFactory.js","sourceRoot":"","sources":["../../src/handlers/cameraKitServiceFetchHandlerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kCAAkC,EAAE,MAAM,gCAAgC,CAAC;AAOpF,MAAM,CAAC,MAAM,mCAAmC,GAAG,UAAU,CACzD,8BAA8B,EAC9B,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,KAAK,CAAU,EAC/D,CAAC,EAAE,QAAQ,EAA0B,EAAE,mBAAiC,EAAE,EAAE;IACxE,OAAO,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,GAAG,CACnD,kCAAkC,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3C,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CACL,CAAC,OAAO,CAAC;AACd,CAAC,CACJ,CAAC","sourcesContent":["import { getCameraKitUserAgent } from \"../platform/cameraKitUserAgent\";\nimport type { CameraKitConfiguration } from \"../configuration\";\nimport { configurationToken } from \"../configuration\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport type { FetchHandler } from \"./defaultFetchHandler\";\nimport { defaultFetchHandlerFactory } from \"./defaultFetchHandler\";\nimport { HandlerChainBuilder } from \"./HandlerChainBuilder\";\nimport { createHeadersModifyingFetchHandler } from \"./headersModifyingFetchHandler\";\n\n/**\n * A Fetch implementation which adds headers required to make authenticated calls to the CameraKit backend service.\n *\n * @internal\n */\nexport const cameraKitServiceFetchHandlerFactory = Injectable(\n \"cameraKitServiceFetchHandler\",\n [configurationToken, defaultFetchHandlerFactory.token] as const,\n ({ apiToken }: CameraKitConfiguration, defaultFetchHandler: FetchHandler) => {\n return new HandlerChainBuilder(defaultFetchHandler).map(\n createHeadersModifyingFetchHandler((headers) => {\n headers.append(\"x-snap-client-user-agent\", getCameraKitUserAgent());\n headers.append(\"authorization\", `Bearer ${apiToken}`);\n return headers;\n })\n ).handler;\n }\n);\n"]}
@@ -0,0 +1,9 @@
1
+ import type { ChainableHandler } from "./HandlerChainBuilder";
2
+ /**
3
+ * Addes cookies to auth requests to custom LensCore binaries
4
+ * when there are debugging overrides.
5
+ *
6
+ * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}
7
+ */
8
+ export declare const createDebugHandler: <Res>() => ChainableHandler<RequestInfo, Res, RequestInfo, Res, RequestInit | undefined>;
9
+ //# sourceMappingURL=debugHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/debugHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,0FAyB9B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { isString } from "../common/typeguards";
2
+ import { getConfigurationOverrides } from "../configurationOverrides";
3
+ export const createDebugHandler = () => {
4
+ var _a;
5
+ const noCustomWasmEndpoint = !((_a = getConfigurationOverrides()) === null || _a === void 0 ? void 0 : _a.wasmEndpointOverride);
6
+ if (noCustomWasmEndpoint) {
7
+ return (next) => next;
8
+ }
9
+ return (next) => (input, init) => {
10
+ var _a;
11
+ const url = isString(input) ? input : (_a = input === null || input === void 0 ? void 0 : input.url) !== null && _a !== void 0 ? _a : "";
12
+ if (url.startsWith("https://lens-core-wasm.sc-corp.net/")) {
13
+ return next(input, Object.assign(Object.assign({}, init), { credentials: "include" }));
14
+ }
15
+ return next(input, init);
16
+ };
17
+ };
18
+ //# sourceMappingURL=debugHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugHandler.js","sourceRoot":"","sources":["../../src/handlers/debugHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAUtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAMhC,EAAE;;IACA,MAAM,oBAAoB,GAAG,CAAC,CAAA,MAAA,yBAAyB,EAAE,0CAAE,oBAAoB,CAAA,CAAC;IAEhF,IAAI,oBAAoB,EAAE;QACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;KACzB;IACD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,EAAE,CAAC;QAIvD,IAAI,GAAG,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAAE;YACvD,OAAO,IAAI,CAAC,KAAK,kCACV,IAAI,KACP,WAAW,EAAE,SAAS,IACxB,CAAC;SACN;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { isString } from \"../common/typeguards\";\nimport { getConfigurationOverrides } from \"../configurationOverrides\";\nimport type { ChainableHandler } from \"./HandlerChainBuilder\";\nimport { HandlerChainBuilder } from \"./HandlerChainBuilder\";\n\n/**\n * Addes cookies to auth requests to custom LensCore binaries\n * when there are debugging overrides.\n *\n * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}\n */\nexport const createDebugHandler = <Res>(): ChainableHandler<\n RequestInfo,\n Res,\n RequestInfo,\n Res,\n RequestInit | undefined\n> => {\n const noCustomWasmEndpoint = !getConfigurationOverrides()?.wasmEndpointOverride;\n\n if (noCustomWasmEndpoint) {\n return (next) => next;\n }\n return (next) => (input, init) => {\n const url = isString(input) ? input : input?.url ?? \"\";\n // if requests are made to internal LensCore binaries site\n // we have to include cookies for auth purposes\n // as per https://wiki.sc-corp.net/x/KsnRCg\n if (url.startsWith(\"https://lens-core-wasm.sc-corp.net/\")) {\n return next(input, {\n ...init,\n credentials: \"include\",\n });\n }\n return next(input, init);\n };\n};\n"]}
@@ -0,0 +1,16 @@
1
+ export type FetchHandler<R = Response> = (input: RequestInfo, init?: RequestInit) => Promise<R>;
2
+ /**
3
+ * The default Fetch implementation, used to make a simple HTTP requests without any custom headers. This can be passed
4
+ * to `HandlerChainBuilder` to form the basis for other Fetch implementations (e.g. with custom headers, which extract
5
+ * the Response body, etc.)
6
+ *
7
+ * Has support for retries, client-side timeout, and navigating federated auth flows that may not support CORs requests.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare const defaultFetchHandlerFactory: {
12
+ (): FetchHandler<Response>;
13
+ token: "defaultFetchHandler";
14
+ dependencies: [];
15
+ };
16
+ //# sourceMappingURL=defaultFetchHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultFetchHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/defaultFetchHandler.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhG;;;;;;;;GAQG;AAEH,eAAO,MAAM,0BAA0B;;;;CAuBrC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Injectable } from "../dependency-injection/Injectable";
2
+ import { createDebugHandler } from "./debugHandler";
3
+ import { HandlerChainBuilder } from "./HandlerChainBuilder";
4
+ import { createNoCorsRetryingFetchHandler } from "./noCorsRetryingFetchHandler";
5
+ import { createRetryingHandler } from "./retryingHandler";
6
+ import { createTimeoutHandler } from "./timeoutHandler";
7
+ export const defaultFetchHandlerFactory = Injectable("defaultFetchHandler", () => {
8
+ return (new HandlerChainBuilder(fetch)
9
+ .map(createDebugHandler())
10
+ .map(createTimeoutHandler({ timeout: 20 * 1000 }))
11
+ .map(createNoCorsRetryingFetchHandler())
12
+ .map(createRetryingHandler({
13
+ maxRetries: 3,
14
+ retryPredicate: (responseOrError) => {
15
+ if (responseOrError instanceof Response) {
16
+ if (responseOrError.ok)
17
+ return false;
18
+ if (responseOrError.status % 400 < 100)
19
+ return false;
20
+ }
21
+ return true;
22
+ },
23
+ })).handler);
24
+ });
25
+ //# sourceMappingURL=defaultFetchHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultFetchHandler.js","sourceRoot":"","sources":["../../src/handlers/defaultFetchHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAcxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,qBAAqB,EAAE,GAAiB,EAAE;IAC3F,OAAO,CACH,IAAI,mBAAmB,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,kBAAkB,EAAE,CAAC;SAGzB,GAAG,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;SACjD,GAAG,CAAC,gCAAgC,EAAE,CAAC;SACvC,GAAG,CACA,qBAAqB,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC,eAAe,EAAE,EAAE;YAGhC,IAAI,eAAe,YAAY,QAAQ,EAAE;gBACrC,IAAI,eAAe,CAAC,EAAE;oBAAE,OAAO,KAAK,CAAC;gBACrC,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG;oBAAE,OAAO,KAAK,CAAC;aACxD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC,CACL,CAAC,OAAO,CAChB,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import { Injectable } from \"../dependency-injection/Injectable\";\nimport { createDebugHandler } from \"./debugHandler\";\nimport { HandlerChainBuilder } from \"./HandlerChainBuilder\";\nimport { createNoCorsRetryingFetchHandler } from \"./noCorsRetryingFetchHandler\";\nimport { createRetryingHandler } from \"./retryingHandler\";\nimport { createTimeoutHandler } from \"./timeoutHandler\";\n\nexport type FetchHandler<R = Response> = (input: RequestInfo, init?: RequestInit) => Promise<R>;\n\n/**\n * The default Fetch implementation, used to make a simple HTTP requests without any custom headers. This can be passed\n * to `HandlerChainBuilder` to form the basis for other Fetch implementations (e.g. with custom headers, which extract\n * the Response body, etc.)\n *\n * Has support for retries, client-side timeout, and navigating federated auth flows that may not support CORs requests.\n *\n * @internal\n */\n\nexport const defaultFetchHandlerFactory = Injectable(\"defaultFetchHandler\", (): FetchHandler => {\n return (\n new HandlerChainBuilder(fetch)\n .map(createDebugHandler())\n // The 20-second per-request timeout is pretty arbitrary, it's just set to be longer than our API gateway\n // timeout (15s) and lower than the browsers own timeout (variable, Chrome's is 5m).\n .map(createTimeoutHandler({ timeout: 20 * 1000 }))\n .map(createNoCorsRetryingFetchHandler())\n .map(\n createRetryingHandler({\n maxRetries: 3,\n retryPredicate: (responseOrError) => {\n // Don't retry successful Responses or Responses with a 4xx HTTP status code (indicating a\n // client error). Do retry all 5xx HTTP status codes.\n if (responseOrError instanceof Response) {\n if (responseOrError.ok) return false;\n if (responseOrError.status % 400 < 100) return false;\n }\n return true;\n },\n })\n ).handler\n );\n});\n"]}
@@ -0,0 +1,9 @@
1
+ import type { ChainableHandler } from "./HandlerChainBuilder";
2
+ /**
3
+ * Modify a Fetch Request's headers.
4
+ *
5
+ * @param modifyHeaders
6
+ * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}
7
+ */
8
+ export declare const createHeadersModifyingFetchHandler: <Res>(modifyHeaders: (headers: Headers) => Headers) => ChainableHandler<RequestInfo, Res, RequestInfo, Res, RequestInit | undefined>;
9
+ //# sourceMappingURL=headersModifyingFetchHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headersModifyingFetchHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/headersModifyingFetchHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,iCAEd,OAAO,KAAK,OAAO,kFAe/C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const createHeadersModifyingFetchHandler = (modifyHeaders) => (next) => (input, init) => {
2
+ const headers = init && init.headers
3
+ ? new Headers(init.headers)
4
+ : typeof input === "string"
5
+ ? new Headers()
6
+ : input.headers;
7
+ const modifiedHeaders = modifyHeaders(headers);
8
+ return next(input, Object.assign(Object.assign({}, init), { headers: modifiedHeaders }));
9
+ };
10
+ //# sourceMappingURL=headersModifyingFetchHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headersModifyingFetchHandler.js","sourceRoot":"","sources":["../../src/handlers/headersModifyingFetchHandler.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kCAAkC,GAC3C,CACI,aAA4C,EACiC,EAAE,CACnF,CAAC,IAAI,EAAE,EAAE,CACT,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACZ,MAAM,OAAO,GACT,IAAI,IAAI,IAAI,CAAC,OAAO;QAChB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YAC3B,CAAC,CAAC,IAAI,OAAO,EAAE;YACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAExB,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAG/C,OAAO,IAAI,CAAC,KAAK,kCAAO,IAAI,KAAE,OAAO,EAAE,eAAe,IAAG,CAAC;AAC9D,CAAC,CAAC","sourcesContent":["import type { ChainableHandler } from \"./HandlerChainBuilder\";\n\n/**\n * Modify a Fetch Request's headers.\n *\n * @param modifyHeaders\n * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}\n */\nexport const createHeadersModifyingFetchHandler =\n <Res>(\n modifyHeaders: (headers: Headers) => Headers\n ): ChainableHandler<RequestInfo, Res, RequestInfo, Res, RequestInit | undefined> =>\n (next) =>\n (input, init) => {\n const headers =\n init && init.headers\n ? new Headers(init.headers)\n : typeof input === \"string\"\n ? new Headers()\n : input.headers;\n\n const modifiedHeaders = modifyHeaders(headers);\n\n // When `init` contains headers, `fetch` uses these *instead* of any headers found in the `input` Request.\n return next(input, { ...init, headers: modifiedHeaders });\n };\n"]}
@@ -0,0 +1,20 @@
1
+ import type { PageVisibility } from "../common/pageVisibility";
2
+ import type { ChainableHandler, RequestMetadata } from "./HandlerChainBuilder";
3
+ /**
4
+ * Map from one request type to another, potentially asynchronously.
5
+ *
6
+ * **NOTE:** If `maxMapConcurrency` is set to some finite number, and more requests are handled than are allowed to
7
+ * be concurrently mapped, the waiting requests will be placed into a unbounded buffer. If, for example, requests are
8
+ * handled with high frequency, `maxMapConcurrency` is low, and the `map` function returns a long-running Promise, this
9
+ * buffer could use a large amount of memory. Keep this in mind when using this handler.
10
+ *
11
+ * @param map Transform each request, may be sync or async.
12
+ * @param pageVisibility Determines whether to flush buffered requests when the page becomes hidden.
13
+ * `false` value indicates that page visibility handling is avoided, while
14
+ * a {@link PageVisibility} instance is used to subscribe to page visibility change events.
15
+ * @param maxMapConcurrency If the `map` function is async, it will be invoked at most this number of times
16
+ * concurrently. Setting this to 1 could be useful if it's important for `map` to be called in serial.
17
+ * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}
18
+ */
19
+ export declare const createMappingHandler: <Req, MappedReq, Res, Meta extends RequestMetadata>(map: (request: Req) => MappedReq | Promise<MappedReq>, pageVisibility: PageVisibility | false, maxMapConcurrency?: number) => ChainableHandler<Req, Res, MappedReq, Res, Meta>;
20
+ //# sourceMappingURL=mappingHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappingHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/mappingHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAW,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,6HAEb,cAAc,GAAG,KAAK,sBACnB,MAAM,qDA6C5B,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { __awaiter } from "tslib";
2
+ export const createMappingHandler = (map, pageVisibility, maxMapConcurrency = Number.POSITIVE_INFINITY) => {
3
+ const buffer = [];
4
+ let mapConcurrency = 0;
5
+ const processRequest = (request) => __awaiter(void 0, void 0, void 0, function* () {
6
+ try {
7
+ mapConcurrency++;
8
+ const mapped = request.map();
9
+ if (mapped instanceof Promise)
10
+ request.next(yield mapped);
11
+ else if (mapped)
12
+ request.next(mapped);
13
+ }
14
+ catch (error) {
15
+ request.reject(error);
16
+ }
17
+ finally {
18
+ mapConcurrency--;
19
+ }
20
+ while (buffer.length > 0 && mapConcurrency < maxMapConcurrency) {
21
+ processRequest(buffer.shift());
22
+ }
23
+ });
24
+ if (pageVisibility) {
25
+ pageVisibility.onPageHidden(() => {
26
+ while (buffer.length > 0)
27
+ processRequest(buffer.shift());
28
+ });
29
+ }
30
+ return (next) => (request, metadata) => {
31
+ return new Promise((resolve, reject) => {
32
+ const mappableRequest = {
33
+ map: () => map(request),
34
+ next: (mappedRequest) => next(mappedRequest, metadata).then(resolve).catch(reject),
35
+ reject,
36
+ };
37
+ if (mapConcurrency < maxMapConcurrency)
38
+ processRequest(mappableRequest);
39
+ else
40
+ buffer.push(mappableRequest);
41
+ });
42
+ };
43
+ };
44
+ //# sourceMappingURL=mappingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappingHandler.js","sourceRoot":"","sources":["../../src/handlers/mappingHandler.ts"],"names":[],"mappings":";AAyBA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,GAAqD,EACrD,cAAsC,EACtC,oBAA4B,MAAM,CAAC,iBAAiB,EACJ,EAAE;IAClD,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,cAAc,GAAG,CAAO,OAAmC,EAAE,EAAE;QACjE,IAAI;YACA,cAAc,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAK7B,IAAI,MAAM,YAAY,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;iBACrD,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;gBAAS;YACN,cAAc,EAAE,CAAC;SACpB;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,GAAG,iBAAiB,EAAE;YAE5D,cAAc,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC,CAAC;SACnC;IACL,CAAC,CAAA,CAAC;IAIF,IAAI,cAAc,EAAE;QAChB,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE;YAC7B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;KACN;IAED,OAAO,CAAC,IAAmC,EAAE,EAAE,CAAC,CAAC,OAAY,EAAE,QAAe,EAAE,EAAE;QAC9E,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,eAAe,GAA+B;gBAChD,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvB,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBAClF,MAAM;aACT,CAAC;YACF,IAAI,cAAc,GAAG,iBAAiB;gBAAE,cAAc,CAAC,eAAe,CAAC,CAAC;;gBACnE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type { PageVisibility } from \"../common/pageVisibility\";\nimport type { ChainableHandler, Handler, RequestMetadata } from \"./HandlerChainBuilder\";\n\ninterface MappableRequest<T> {\n map: () => T | Promise<T>;\n next: (request: T) => Promise<void>;\n reject: (reason: unknown) => void;\n}\n\n/**\n * Map from one request type to another, potentially asynchronously.\n *\n * **NOTE:** If `maxMapConcurrency` is set to some finite number, and more requests are handled than are allowed to\n * be concurrently mapped, the waiting requests will be placed into a unbounded buffer. If, for example, requests are\n * handled with high frequency, `maxMapConcurrency` is low, and the `map` function returns a long-running Promise, this\n * buffer could use a large amount of memory. Keep this in mind when using this handler.\n *\n * @param map Transform each request, may be sync or async.\n * @param pageVisibility Determines whether to flush buffered requests when the page becomes hidden.\n * `false` value indicates that page visibility handling is avoided, while\n * a {@link PageVisibility} instance is used to subscribe to page visibility change events.\n * @param maxMapConcurrency If the `map` function is async, it will be invoked at most this number of times\n * concurrently. Setting this to 1 could be useful if it's important for `map` to be called in serial.\n * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}\n */\nexport const createMappingHandler = <Req, MappedReq, Res, Meta extends RequestMetadata>(\n map: (request: Req) => MappedReq | Promise<MappedReq>,\n pageVisibility: PageVisibility | false,\n maxMapConcurrency: number = Number.POSITIVE_INFINITY\n): ChainableHandler<Req, Res, MappedReq, Res, Meta> => {\n const buffer: MappableRequest<MappedReq>[] = [];\n let mapConcurrency = 0;\n\n const processRequest = async (request: MappableRequest<MappedReq>) => {\n try {\n mapConcurrency++;\n const mapped = request.map();\n // We want to make sure that if the mapping operation is not async, we don't introduce asynchronicity here\n // (which unfortunately happens even if you `await` a non-Promise value). This is important so that e.g.\n // handlers which run when the page is terminated can send requests synchronously, since the browser may\n // not pick up any async handlers registered to run on the following event loop.\n if (mapped instanceof Promise) request.next(await mapped);\n else if (mapped) request.next(mapped);\n } catch (error) {\n request.reject(error);\n } finally {\n mapConcurrency--;\n }\n while (buffer.length > 0 && mapConcurrency < maxMapConcurrency) {\n // Safety: we just checked for `buffer.length > 0`, so the shifted value will never be undefined.\n processRequest(buffer.shift()!);\n }\n };\n\n // This may indicate that the page is being unloaded, in which case we may want to flush any buffered requests\n // regardless of our max concurrency – otherwise those requests will be lost when the page terminates.\n if (pageVisibility) {\n pageVisibility.onPageHidden(() => {\n while (buffer.length > 0) processRequest(buffer.shift()!);\n });\n }\n\n return (next: Handler<MappedReq, Res, Meta>) => (request: Req, metadata?: Meta) => {\n return new Promise<Res>((resolve, reject) => {\n const mappableRequest: MappableRequest<MappedReq> = {\n map: () => map(request),\n next: (mappedRequest) => next(mappedRequest, metadata).then(resolve).catch(reject),\n reject,\n };\n if (mapConcurrency < maxMapConcurrency) processRequest(mappableRequest);\n else buffer.push(mappableRequest);\n });\n };\n};\n"]}
@@ -0,0 +1,49 @@
1
+ import type { ChainableHandler } from "./HandlerChainBuilder";
2
+ /**
3
+ * Some requests may require a no-cors pre-flight (which are allowed to follow redirects) before they can be
4
+ * successful.
5
+ *
6
+ * An example is a federated identity authentication flow, like OpenID Connect or OAuth. In many such schemes,
7
+ * an unauthenticated request will not include CORs headers. Instead, a redirect to an Identity Provider will be
8
+ * returned. In order follow this redirect, the Fetch request must be made with "no-cors" mode.
9
+ *
10
+ * Once the "no-cors" request is made, redirects are followed resulting in authentication cookies being set on the
11
+ * original domain. Then, the original request can be retried and the server will authenticate the request and set
12
+ * proper CORs headers on the response.
13
+ *
14
+ * Here's an example request flow, in which the page already has cookies for IdentityProvider.com (if that wasn't
15
+ * the case, IdentityProvider.com would prompt the user for credentials and the rest of the flow would be the same):
16
+ *
17
+ * ```
18
+ * WebPage a.com MyServer b.com IdentityProvider c.com
19
+ * | | |
20
+ * Original request, | |
21
+ * unauthenticated: | |
22
+ * |------------------------>| |
23
+ * |<--302: c.com, no CORs---| |
24
+ * | | |
25
+ * | | |
26
+ * No CORs headers in | |
27
+ * response. Retry in | |
28
+ * "no-cors" mode: | |
29
+ * |-----"no-cors" mode----->| |
30
+ * |<--302: c.com, no CORs---| |
31
+ * | | |
32
+ * | | |
33
+ * |------------------IdP cookies------------->|
34
+ * |<----------302: b.com?token=foo------------|
35
+ * | |
36
+ * | | |
37
+ * |----b.com?token=foo----->| |
38
+ * |<-302: b.com, set cookie-| |
39
+ * | | |
40
+ * | | |
41
+ * Retry original request, | |
42
+ * now authenticated: | |
43
+ * |-----------cookie------->| |
44
+ * |<-----------200----------| |
45
+ * | |
46
+ * ```
47
+ */
48
+ export declare const createNoCorsRetryingFetchHandler: <Res>() => ChainableHandler<RequestInfo, Res, RequestInfo, Res, RequestInit | undefined>;
49
+ //# sourceMappingURL=noCorsRetryingFetchHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noCorsRetryingFetchHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/noCorsRetryingFetchHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,gCAAgC,0FA+C5C,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { __awaiter } from "tslib";
2
+ import { getLogger } from "../logger/logger";
3
+ import { ensureClonedRequest } from "./retryingHandler";
4
+ const logger = getLogger("noCorsRetryingFetchHandler");
5
+ const logRetry = (error) => {
6
+ logger.warn(`NoCorsRetrying handler got failed response:`, error, `Retrying request with {mode: "no-cors"}.`);
7
+ };
8
+ export const createNoCorsRetryingFetchHandler = () => {
9
+ const noCorsRequests = new Map();
10
+ return (next) => (input, init = {}) => __awaiter(void 0, void 0, void 0, function* () {
11
+ var _a;
12
+ let requestKey = typeof input === "string" ? input : input.url;
13
+ try {
14
+ requestKey = new URL(requestKey, location.origin).host;
15
+ }
16
+ catch (_) {
17
+ }
18
+ try {
19
+ return yield next(ensureClonedRequest(input), init);
20
+ }
21
+ catch (error) {
22
+ if (error instanceof Error && error.name === "AbortError")
23
+ throw error;
24
+ logRetry(error);
25
+ const noCorsRequest = (_a = noCorsRequests.get(requestKey)) !== null && _a !== void 0 ? _a : next(ensureClonedRequest(input), Object.assign(Object.assign({}, init), { mode: "no-cors" }));
26
+ noCorsRequests.set(requestKey, noCorsRequest);
27
+ yield noCorsRequest;
28
+ noCorsRequests.delete(requestKey);
29
+ return next(ensureClonedRequest(input), init);
30
+ }
31
+ });
32
+ };
33
+ //# sourceMappingURL=noCorsRetryingFetchHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noCorsRetryingFetchHandler.js","sourceRoot":"","sources":["../../src/handlers/noCorsRetryingFetchHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,GAAG,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAEvD,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,EAAE;IAC5B,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,0CAA0C,CAAC,CAAC;AAClH,CAAC,CAAC;AAgDF,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAM9C,EAAE;IAIA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEvD,OAAO,CAAC,IAAI,EAAE,EAAE,CACZ,CAAO,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;;QAIvB,IAAI,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/D,IAAI;YACA,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;SAEX;QAED,IAAI;YAKA,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SACvD;QAAC,OAAO,KAAK,EAAE;YAEZ,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,MAAM,KAAK,CAAC;YAMvE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,aAAa,GACf,MAAA,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,kCAAO,IAAI,KAAE,IAAI,EAAE,SAAS,IAAG,CAAC;YACrG,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC9C,MAAM,aAAa,CAAC;YACpB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SACjD;IACL,CAAC,CAAA,CAAC;AACV,CAAC,CAAC","sourcesContent":["import { getLogger } from \"../logger/logger\";\nimport type { ChainableHandler } from \"./HandlerChainBuilder\";\nimport { ensureClonedRequest } from \"./retryingHandler\";\n\nconst logger = getLogger(\"noCorsRetryingFetchHandler\");\n\nconst logRetry = (error: any) => {\n logger.warn(`NoCorsRetrying handler got failed response:`, error, `Retrying request with {mode: \"no-cors\"}.`);\n};\n\n/**\n * Some requests may require a no-cors pre-flight (which are allowed to follow redirects) before they can be\n * successful.\n *\n * An example is a federated identity authentication flow, like OpenID Connect or OAuth. In many such schemes,\n * an unauthenticated request will not include CORs headers. Instead, a redirect to an Identity Provider will be\n * returned. In order follow this redirect, the Fetch request must be made with \"no-cors\" mode.\n *\n * Once the \"no-cors\" request is made, redirects are followed resulting in authentication cookies being set on the\n * original domain. Then, the original request can be retried and the server will authenticate the request and set\n * proper CORs headers on the response.\n *\n * Here's an example request flow, in which the page already has cookies for IdentityProvider.com (if that wasn't\n * the case, IdentityProvider.com would prompt the user for credentials and the rest of the flow would be the same):\n *\n * ```\n * WebPage a.com MyServer b.com IdentityProvider c.com\n * | | |\n * Original request, | |\n * unauthenticated: | |\n * |------------------------>| |\n * |<--302: c.com, no CORs---| |\n * | | |\n * | | |\n * No CORs headers in | |\n * response. Retry in | |\n * \"no-cors\" mode: | |\n * |-----\"no-cors\" mode----->| |\n * |<--302: c.com, no CORs---| |\n * | | |\n * | | |\n * |------------------IdP cookies------------->|\n * |<----------302: b.com?token=foo------------|\n * | |\n * | | |\n * |----b.com?token=foo----->| |\n * |<-302: b.com, set cookie-| |\n * | | |\n * | | |\n * Retry original request, | |\n * now authenticated: | |\n * |-----------cookie------->| |\n * |<-----------200----------| |\n * | |\n * ```\n */\nexport const createNoCorsRetryingFetchHandler = <Res>(): ChainableHandler<\n RequestInfo,\n Res,\n RequestInfo,\n Res,\n RequestInit | undefined\n> => {\n // If concurrent requests are made to the same domain, we only want to perform one \"no-cors\" request. We assume\n // requests to the same domain will set the same authentication cookies. To support this, we'll store any\n // in-flight \"no-cors\" retries and re-use them for concurrent requests.\n const noCorsRequests = new Map<string, Promise<Res>>();\n\n return (next) =>\n async (input, init = {}) => {\n // `host` includes domain:port, so works for local development. If the input is a relative path, we'll\n // use `location.origin` to resolve into a fully qualified URL (although of course we don't actually\n // anticipate any CORs issues in that case -- but this is cleaner than special-casing).\n let requestKey = typeof input === \"string\" ? input : input.url;\n try {\n requestKey = new URL(requestKey, location.origin).host;\n } catch (_) {\n /* no-op, use the full input URL as the requestKey */\n }\n\n try {\n // By always attempting the request first, we avoid needing to maintain any state about the validity\n // of the request (e.g. the expiration time for a credential). We just make the request, and if it\n // fails, this tells us we've made an invalid request. This does result in one additional request, but\n // it makes this much more flexible and avoids having to maintain state (which can be a source of bugs).\n return await next(ensureClonedRequest(input), init);\n } catch (error) {\n // If the request fails because it was aborted, we assume this was done intentionally and we can stop.\n if (error instanceof Error && error.name === \"AbortError\") throw error;\n\n // Otherwise we don't actually care what error occurred – we know this will be an error thrown by\n // `fetch` itself (rather than some error encountered on the server, which wouldn't cause `next` to\n // throw), and we'll just assume it's a CORs error. If it's not, we'll perform a \"no-cors\" retry anyway,\n // which will presumably also fail, and that failure will be returned to the caller.\n logRetry(error);\n const noCorsRequest =\n noCorsRequests.get(requestKey) ?? next(ensureClonedRequest(input), { ...init, mode: \"no-cors\" });\n noCorsRequests.set(requestKey, noCorsRequest);\n await noCorsRequest;\n noCorsRequests.delete(requestKey);\n return next(ensureClonedRequest(input), init);\n }\n };\n};\n"]}
@@ -0,0 +1,15 @@
1
+ import type { Persistence } from "../persistence/Persistence";
2
+ import type { ChainableHandler, RequestMetadata } from "./HandlerChainBuilder";
3
+ /**
4
+ * This handler persists in-flight requests locally, so that if there is an unexpected termination of the process (e.g.
5
+ * the browser tab crashes or is closed) those requests can be recovered and retried on the next page load.
6
+ *
7
+ * Keep in mind, using this handler means some *successful* requests may be repeated (e.g. if the request made it to a
8
+ * server, which responded, but the response didn't reach the browser before the tab closed). Any handler chain making
9
+ * use of this handler should only handle idempotent requests.
10
+ *
11
+ * @param persistence Requests will be temporarily stored here while they are in-flight.
12
+ * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}
13
+ */
14
+ export declare const createPersistingHandler: <Req, Res, Meta extends RequestMetadata>(persistence: Persistence<[Req, Meta | undefined]>) => ChainableHandler<Req, Res, Req, Res, Meta>;
15
+ //# sourceMappingURL=persistingHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistingHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/persistingHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAW,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,2IAyDnC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { __awaiter } from "tslib";
2
+ import { getLogger } from "../logger/logger";
3
+ const logger = getLogger("persistingHandler");
4
+ export const createPersistingHandler = (persistence) => {
5
+ let needsRecovery = true;
6
+ const maybePerformRecovery = (next) => __awaiter(void 0, void 0, void 0, function* () {
7
+ if (!needsRecovery)
8
+ return;
9
+ needsRecovery = false;
10
+ try {
11
+ const requests = yield persistence.removeAll();
12
+ if (requests.length === 0)
13
+ return;
14
+ requests.forEach(([request, metadata]) => performRequest(next)(request, metadata).catch((error) => {
15
+ logger.error(error);
16
+ }));
17
+ }
18
+ catch (error) {
19
+ logger.error(error);
20
+ }
21
+ });
22
+ const performRequest = (next) => (req, metadata) => __awaiter(void 0, void 0, void 0, function* () {
23
+ maybePerformRecovery(next);
24
+ const keyPromise = persistence.store([req, metadata]).catch((error) => {
25
+ logger.error(error);
26
+ return null;
27
+ });
28
+ try {
29
+ return yield next(req, metadata);
30
+ }
31
+ finally {
32
+ keyPromise
33
+ .then((key) => {
34
+ if (key !== null)
35
+ return persistence.remove(key);
36
+ return;
37
+ })
38
+ .catch((error) => logger.error(error));
39
+ }
40
+ });
41
+ return performRequest;
42
+ };
43
+ //# sourceMappingURL=persistingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistingHandler.js","sourceRoot":"","sources":["../../src/handlers/persistingHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAa9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,WAAiD,EACP,EAAE;IAC5C,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,MAAM,oBAAoB,GAAG,CAAO,IAA6B,EAAE,EAAE;QACjE,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,aAAa,GAAG,KAAK,CAAC;QACtB,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAGlC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CACrC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CACL,CAAC;SAIL;QAAC,OAAO,KAAK,EAAE;YAGZ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACvB;IACL,CAAC,CAAA,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAO,GAAQ,EAAE,QAAe,EAAE,EAAE;QAG1F,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAM3B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAClE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACpC;gBAAS;YAGN,UAAU;iBACL,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjD,OAAO;YACX,CAAC,CAAC;iBAID,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC,CAAA,CAAC;IACF,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC","sourcesContent":["import { getLogger } from \"../logger/logger\";\nimport type { Persistence } from \"../persistence/Persistence\";\nimport type { ChainableHandler, Handler, RequestMetadata } from \"./HandlerChainBuilder\";\n\nconst logger = getLogger(\"persistingHandler\");\n\n/**\n * This handler persists in-flight requests locally, so that if there is an unexpected termination of the process (e.g.\n * the browser tab crashes or is closed) those requests can be recovered and retried on the next page load.\n *\n * Keep in mind, using this handler means some *successful* requests may be repeated (e.g. if the request made it to a\n * server, which responded, but the response didn't reach the browser before the tab closed). Any handler chain making\n * use of this handler should only handle idempotent requests.\n *\n * @param persistence Requests will be temporarily stored here while they are in-flight.\n * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}\n */\nexport const createPersistingHandler = <Req, Res, Meta extends RequestMetadata>(\n persistence: Persistence<[Req, Meta | undefined]>\n): ChainableHandler<Req, Res, Req, Res, Meta> => {\n let needsRecovery = true;\n const maybePerformRecovery = async (next: Handler<Req, Res, Meta>) => {\n if (!needsRecovery) return;\n needsRecovery = false;\n try {\n const requests = await persistence.removeAll();\n if (requests.length === 0) return;\n // If a recovered request fails, we'll report the error and prevent it from disrupting other requests. We\n // won't re-persist to avoid a poison-pill request that remains in storage forever.\n requests.forEach(([request, metadata]) =>\n performRequest(next)(request, metadata).catch((error) => {\n logger.error(error);\n })\n );\n\n // If we fail to retrieve, we have no option but to report the error and proceed. Since we can't tell here\n // if there were any requests to recover, we cannot say if an error here will actually result in data loss.\n } catch (error) {\n // TODO: we will also want to report persistence size (either here or elsewhere) to detect scenarious that\n // could result in unbounded DB growth.\n logger.error(error);\n }\n };\n\n const performRequest = (next: Handler<Req, Res, Meta>) => async (req: Req, metadata?: Meta) => {\n // If there are requests to be recovered (e.g. a prior session crashed while requests were in-flight), they will\n // be passed to the next handler in the chain. This will happen at most once per page load.\n maybePerformRecovery(next);\n\n // Whether the persistence succeeds or fails, we always want to make the request – so we don't need to wait for\n // the request to be stored before passing it to the `next` handler. This is why we're not awaiting the store\n // call here. We'll also swallow any errors, simply returning `null` for the key – persistence and recovery are\n // always best-effort, and failure should not disrupt other application behavior.\n const keyPromise = persistence.store([req, metadata]).catch((error) => {\n logger.error(error);\n return null;\n });\n try {\n return await next(req, metadata);\n } finally {\n // We don't care if the request was successful or not, either way once it is completed we will remove\n // the request from the persistent store.\n keyPromise\n .then((key) => {\n if (key !== null) return persistence.remove(key);\n return;\n })\n // If removal fails, we will recover and re-send the request – failure could occur if the OS cannot\n // complete the DB transaction (e.g. power loss), or potentially in other exceptional scenarios.\n // Therefore it's important that requests handled by this handler be idempotent.\n .catch((error) => logger.error(error));\n }\n };\n return performRequest;\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import type { PageVisibility } from "../common/pageVisibility";
2
+ import type { ChainableHandler, RequestMetadata } from "./HandlerChainBuilder";
3
+ /**
4
+ * Limit the rate at which requests are passed to the next handler in the chain.
5
+ *
6
+ * During any page transitions to "hidden" – possibly indicating the page is about to terminate – requests will not be
7
+ * rate limited, to ensure that they are not lost.
8
+ *
9
+ * TODO: If there are requests in the queue waiting to be sent when the page transitions to "hidden," these will not
10
+ * be immediately sent. This means there still is an edge case in which a request may be lost on page termination. This
11
+ * can be fixed with changes to `createMappingHandler`.
12
+ *
13
+ * **NOTE:** Under the hood, requests that come in faster than the set `duration` are placed in an unbounded buffer.
14
+ * If many requests are made quickly and `duration` is long, this could result in high memory usage. Keep this in mind
15
+ * when using this handler.
16
+ *
17
+ * @param duration In milliseconds. Requests will be passed to the next handler in the chain no faster than this. That
18
+ * is, if `duration` is `1000`, the next handler will be called at most once per second.
19
+ * @param pageVisibility Determines whether to flush buffered requests when the page becomes hidden.
20
+ * `false` value indicates that page visibility handling is avoided, while
21
+ * a {@link PageVisibility} instance is used to subscribe to page visibility change events.
22
+ * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}
23
+ */
24
+ export declare const createRateLimitingHandler: <Req, Res, Meta extends RequestMetadata>(duration: number, pageVisibility: PageVisibility | false) => ChainableHandler<Req, Res, Req, Res, Meta>;
25
+ //# sourceMappingURL=rateLimitingHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimitingHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/rateLimitingHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,yBAAyB,qDACxB,MAAM,kBACA,cAAc,GAAG,KAAK,+CAwBzC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { __awaiter } from "tslib";
2
+ import { createMappingHandler } from "./mappingHandler";
3
+ const delay = (duration) => new Promise((resolve) => setTimeout(resolve, duration));
4
+ export const createRateLimitingHandler = (duration, pageVisibility) => {
5
+ let mostRecentSendTime = undefined;
6
+ const mappingHandler = createMappingHandler((request) => __awaiter(void 0, void 0, void 0, function* () {
7
+ if (mostRecentSendTime !== undefined) {
8
+ const millisUntilNextSend = duration - (Date.now() - mostRecentSendTime);
9
+ if (millisUntilNextSend > 0)
10
+ yield delay(millisUntilNextSend);
11
+ }
12
+ mostRecentSendTime = Date.now();
13
+ return request;
14
+ }), pageVisibility, 1);
15
+ return (next) => (request, metadata) => {
16
+ if (pageVisibility && pageVisibility.isDuringVisibilityTransition("hidden"))
17
+ return next(request, metadata);
18
+ return mappingHandler(next)(request, metadata);
19
+ };
20
+ };
21
+ //# sourceMappingURL=rateLimitingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimitingHandler.js","sourceRoot":"","sources":["../../src/handlers/rateLimitingHandler.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAuBlG,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,QAAgB,EAChB,cAAsC,EACI,EAAE;IAC5C,IAAI,kBAAkB,GAAuB,SAAS,CAAC;IAEvD,MAAM,cAAc,GAAG,oBAAoB,CACvC,CAAO,OAAO,EAAE,EAAE;QACd,IAAI,kBAAkB,KAAK,SAAS,EAAE;YAClC,MAAM,mBAAmB,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;YACzE,IAAI,mBAAmB,GAAG,CAAC;gBAAE,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACjE;QACD,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA,EACD,cAAc,EACd,CAAC,CACJ,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAInC,IAAI,cAAc,IAAI,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5G,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type { PageVisibility } from \"../common/pageVisibility\";\nimport type { ChainableHandler, RequestMetadata } from \"./HandlerChainBuilder\";\nimport { createMappingHandler } from \"./mappingHandler\";\n\nconst delay = (duration: number) => new Promise<void>((resolve) => setTimeout(resolve, duration));\n\n/**\n * Limit the rate at which requests are passed to the next handler in the chain.\n *\n * During any page transitions to \"hidden\" – possibly indicating the page is about to terminate – requests will not be\n * rate limited, to ensure that they are not lost.\n *\n * TODO: If there are requests in the queue waiting to be sent when the page transitions to \"hidden,\" these will not\n * be immediately sent. This means there still is an edge case in which a request may be lost on page termination. This\n * can be fixed with changes to `createMappingHandler`.\n *\n * **NOTE:** Under the hood, requests that come in faster than the set `duration` are placed in an unbounded buffer.\n * If many requests are made quickly and `duration` is long, this could result in high memory usage. Keep this in mind\n * when using this handler.\n *\n * @param duration In milliseconds. Requests will be passed to the next handler in the chain no faster than this. That\n * is, if `duration` is `1000`, the next handler will be called at most once per second.\n * @param pageVisibility Determines whether to flush buffered requests when the page becomes hidden.\n * `false` value indicates that page visibility handling is avoided, while\n * a {@link PageVisibility} instance is used to subscribe to page visibility change events.\n * @returns {@link ChainableHandler}, suitable for use in {@link HandlerChainBuilder.map}\n */\nexport const createRateLimitingHandler = <Req, Res, Meta extends RequestMetadata>(\n duration: number,\n pageVisibility: PageVisibility | false\n): ChainableHandler<Req, Res, Req, Res, Meta> => {\n let mostRecentSendTime: number | undefined = undefined;\n\n const mappingHandler = createMappingHandler<Req, Req, Res, Meta>(\n async (request) => {\n if (mostRecentSendTime !== undefined) {\n const millisUntilNextSend = duration - (Date.now() - mostRecentSendTime);\n if (millisUntilNextSend > 0) await delay(millisUntilNextSend);\n }\n mostRecentSendTime = Date.now();\n return request;\n },\n pageVisibility,\n 1\n );\n\n return (next) => (request, metadata) => {\n // Requests may be made while the page is transitioning to hidden – for example, the page is being unloaded and\n // we're reporting final metrics. In this case, we need to skip rate limiting and synchronously call `next`\n // so that the request is not lost.\n if (pageVisibility && pageVisibility.isDuringVisibilityTransition(\"hidden\")) return next(request, metadata);\n return mappingHandler(next)(request, metadata);\n };\n};\n"]}
@@ -0,0 +1,42 @@
1
+ import { TypedCustomEvent } from "../events/TypedCustomEvent";
2
+ import { TypedEventTarget } from "../events/TypedEventTarget";
3
+ import { Timer } from "../metrics/operational/Timer";
4
+ import type { ChainableHandler, RequestMetadata } from "./HandlerChainBuilder";
5
+ interface Started {
6
+ requestId: number;
7
+ timer: Timer<"download_latency">;
8
+ dimensions: Dimensions;
9
+ }
10
+ interface Completed {
11
+ requestId: number;
12
+ dimensions: Dimensions;
13
+ status: number;
14
+ sizeByte: number;
15
+ }
16
+ interface Errored {
17
+ requestId: number;
18
+ dimensions: Dimensions;
19
+ error: Error;
20
+ }
21
+ export type Dimensions = Record<string, string | undefined>;
22
+ export type RequestStateEvents = TypedCustomEvent<"started", Started> | TypedCustomEvent<"completed", Completed> | TypedCustomEvent<"errored", Errored>;
23
+ export declare const dispatchRequestStarted: (requestStateEventTarget: RequestStateEventTarget, data: Omit<Started, "requestId" | "timer">) => Started;
24
+ export declare const dispatchRequestCompleted: (requestStateEventTarget: RequestStateEventTarget, data: Completed) => Completed;
25
+ export declare const dispatchRequestErrored: (requestStateEventTarget: RequestStateEventTarget, data: Errored) => Errored;
26
+ export declare const createRequestStateEmittingHandler: <D extends Dimensions = Dimensions>(requestStateEventTarget: RequestStateEventTarget) => ChainableHandler<[RequestInfo, D], Response, RequestInfo, Response, RequestMetadata>;
27
+ /**
28
+ * This event target may be used to listen for any network request state changes initiated by CameraKit.
29
+ *
30
+ * @internal
31
+ */
32
+ export type RequestStateEventTarget = TypedEventTarget<RequestStateEvents>;
33
+ /**
34
+ * @internal
35
+ */
36
+ export declare const requestStateEventTargetFactory: {
37
+ (): RequestStateEventTarget;
38
+ token: "requestStateEventTarget";
39
+ dependencies: [];
40
+ };
41
+ export {};
42
+ //# sourceMappingURL=requestStateEmittingHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestStateEmittingHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/requestStateEmittingHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS/E,UAAU,OAAO;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,SAAS;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,OAAO;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GACxB,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,GACpC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,GACxC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3C,eAAO,MAAM,sBAAsB,4BACN,uBAAuB,QAC1C,KAAK,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,KAC3C,OAIF,CAAC;AAEF,eAAO,MAAM,wBAAwB,4BACR,uBAAuB,QAC1C,SAAS,KAChB,SAGF,CAAC;AAEF,eAAO,MAAM,sBAAsB,4BAA6B,uBAAuB,QAAQ,OAAO,KAAG,OAGxG,CAAC;AAEF,eAAO,MAAM,iCAAiC,+DAEb,uBAAuB,yFAenD,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;CAG1C,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { __awaiter } from "tslib";
2
+ import { ensureError } from "../common/errorHelpers";
3
+ import { Injectable } from "../dependency-injection/Injectable";
4
+ import { TypedCustomEvent } from "../events/TypedCustomEvent";
5
+ import { TypedEventTarget } from "../events/TypedEventTarget";
6
+ import { Timer } from "../metrics/operational/Timer";
7
+ let requestId = 0;
8
+ const safeParseInt = (str) => {
9
+ if (str == null)
10
+ return 0;
11
+ const maybeInt = parseInt(str);
12
+ return isNaN(maybeInt) ? 0 : maybeInt;
13
+ };
14
+ export const dispatchRequestStarted = (requestStateEventTarget, data) => {
15
+ const started = Object.assign(Object.assign({}, data), { requestId: requestId++, timer: new Timer("download_latency") });
16
+ requestStateEventTarget.dispatchEvent(new TypedCustomEvent("started", started));
17
+ return started;
18
+ };
19
+ export const dispatchRequestCompleted = (requestStateEventTarget, data) => {
20
+ requestStateEventTarget.dispatchEvent(new TypedCustomEvent("completed", data));
21
+ return data;
22
+ };
23
+ export const dispatchRequestErrored = (requestStateEventTarget, data) => {
24
+ requestStateEventTarget.dispatchEvent(new TypedCustomEvent("errored", data));
25
+ return data;
26
+ };
27
+ export const createRequestStateEmittingHandler = (requestStateEventTarget) => (next) => ([request, dimensions], metadata) => __awaiter(void 0, void 0, void 0, function* () {
28
+ const { requestId } = dispatchRequestStarted(requestStateEventTarget, { dimensions });
29
+ try {
30
+ const response = yield next(request, metadata);
31
+ const status = response.status;
32
+ const sizeByte = safeParseInt(response.headers.get("content-length"));
33
+ dispatchRequestCompleted(requestStateEventTarget, { requestId, dimensions, status, sizeByte });
34
+ return response;
35
+ }
36
+ catch (error) {
37
+ dispatchRequestErrored(requestStateEventTarget, { requestId, dimensions, error: ensureError(error) });
38
+ throw error;
39
+ }
40
+ });
41
+ export const requestStateEventTargetFactory = Injectable("requestStateEventTarget", () => new TypedEventTarget());
42
+ //# sourceMappingURL=requestStateEmittingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestStateEmittingHandler.js","sourceRoot":"","sources":["../../src/handlers/requestStateEmittingHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAGrD,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,EAAE;IACxC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1C,CAAC,CAAC;AA4BF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,uBAAgD,EAChD,IAA0C,EACnC,EAAE;IACT,MAAM,OAAO,mCAAiB,IAAI,KAAE,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAE,CAAC;IACnG,uBAAuB,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,uBAAgD,EAChD,IAAe,EACN,EAAE;IACX,uBAAuB,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,uBAAgD,EAAE,IAAa,EAAW,EAAE;IAC/G,uBAAuB,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAC1C,CACI,uBAAgD,EACoC,EAAE,CAC1F,CAAC,IAAI,EAAE,EAAE,CACT,CAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACtF,IAAI;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,wBAAwB,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC;KACnB;IAAC,OAAO,KAAK,EAAE;QACZ,sBAAsB,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtG,MAAM,KAAK,CAAC;KACf;AACL,CAAC,CAAA,CAAC;AAYN,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,CACpD,yBAAyB,EACzB,GAA4B,EAAE,CAAC,IAAI,gBAAgB,EAAE,CACxD,CAAC","sourcesContent":["import { ensureError } from \"../common/errorHelpers\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../events/TypedCustomEvent\";\nimport { TypedEventTarget } from \"../events/TypedEventTarget\";\nimport { Timer } from \"../metrics/operational/Timer\";\nimport type { ChainableHandler, RequestMetadata } from \"./HandlerChainBuilder\";\n\nlet requestId = 0;\nconst safeParseInt = (str: string | null) => {\n if (str == null) return 0;\n const maybeInt = parseInt(str);\n return isNaN(maybeInt) ? 0 : maybeInt;\n};\n\ninterface Started {\n requestId: number;\n timer: Timer<\"download_latency\">;\n dimensions: Dimensions;\n}\n\ninterface Completed {\n requestId: number;\n dimensions: Dimensions;\n status: number;\n sizeByte: number;\n}\n\ninterface Errored {\n requestId: number;\n dimensions: Dimensions;\n error: Error;\n}\n\nexport type Dimensions = Record<string, string | undefined>;\n\nexport type RequestStateEvents =\n | TypedCustomEvent<\"started\", Started>\n | TypedCustomEvent<\"completed\", Completed>\n | TypedCustomEvent<\"errored\", Errored>;\n\nexport const dispatchRequestStarted = (\n requestStateEventTarget: RequestStateEventTarget,\n data: Omit<Started, \"requestId\" | \"timer\">\n): Started => {\n const started: Started = { ...data, requestId: requestId++, timer: new Timer(\"download_latency\") };\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"started\", started));\n return started;\n};\n\nexport const dispatchRequestCompleted = (\n requestStateEventTarget: RequestStateEventTarget,\n data: Completed\n): Completed => {\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"completed\", data));\n return data;\n};\n\nexport const dispatchRequestErrored = (requestStateEventTarget: RequestStateEventTarget, data: Errored): Errored => {\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"errored\", data));\n return data;\n};\n\nexport const createRequestStateEmittingHandler =\n <D extends Dimensions = Dimensions>(\n requestStateEventTarget: RequestStateEventTarget\n ): ChainableHandler<[RequestInfo, D], Response, RequestInfo, Response, RequestMetadata> =>\n (next) =>\n async ([request, dimensions], metadata) => {\n const { requestId } = dispatchRequestStarted(requestStateEventTarget, { dimensions });\n try {\n const response = await next(request, metadata);\n const status = response.status;\n const sizeByte = safeParseInt(response.headers.get(\"content-length\"));\n dispatchRequestCompleted(requestStateEventTarget, { requestId, dimensions, status, sizeByte });\n return response;\n } catch (error) {\n dispatchRequestErrored(requestStateEventTarget, { requestId, dimensions, error: ensureError(error) });\n throw error;\n }\n };\n\n/**\n * This event target may be used to listen for any network request state changes initiated by CameraKit.\n *\n * @internal\n */\nexport type RequestStateEventTarget = TypedEventTarget<RequestStateEvents>;\n\n/**\n * @internal\n */\nexport const requestStateEventTargetFactory = Injectable(\n \"requestStateEventTarget\",\n (): RequestStateEventTarget => new TypedEventTarget()\n);\n"]}