@snap/camera-kit 0.7.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 (554) hide show
  1. package/LICENSE.md +6247 -0
  2. package/README.md +166 -0
  3. package/docs/html/.nojekyll +1 -0
  4. package/docs/html/assets/highlight.css +106 -0
  5. package/docs/html/assets/main.js +54 -0
  6. package/docs/html/assets/search.js +1 -0
  7. package/docs/html/assets/style.css +1225 -0
  8. package/docs/html/assets/widgets.png +0 -0
  9. package/docs/html/assets/widgets@2x.png +0 -0
  10. package/docs/html/classes/CameraKit.html +121 -0
  11. package/docs/html/classes/CameraKitSession.html +347 -0
  12. package/docs/html/classes/CameraKitSource.html +152 -0
  13. package/docs/html/classes/LensPerformanceMeasurement.html +115 -0
  14. package/docs/html/classes/LensPerformanceMetrics.html +76 -0
  15. package/docs/html/classes/LensRepository.html +171 -0
  16. package/docs/html/classes/LensSources.html +82 -0
  17. package/docs/html/classes/Transform2D.html +99 -0
  18. package/docs/html/classes/TypedCustomEvent.html +109 -0
  19. package/docs/html/classes/TypedEventTarget.html +146 -0
  20. package/docs/html/functions/Injectable.html +193 -0
  21. package/docs/html/functions/bootstrapCameraKit.html +158 -0
  22. package/docs/html/functions/createExtension.html +127 -0
  23. package/docs/html/functions/createImageSource.html +123 -0
  24. package/docs/html/functions/createMediaStreamSource.html +123 -0
  25. package/docs/html/functions/createUserMediaSource.html +127 -0
  26. package/docs/html/functions/createVideoSource.html +124 -0
  27. package/docs/html/functions/estimateLensPerformance.html +116 -0
  28. package/docs/html/functions/getRequiredBootstrapURLs.html +124 -0
  29. package/docs/html/functions/lensSourcesFactory.html +116 -0
  30. package/docs/html/functions/uriHandlersFactory.html +118 -0
  31. package/docs/html/index.html +208 -0
  32. package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +132 -0
  33. package/docs/html/interfaces/CameraKitSourceSubscriber.html +121 -0
  34. package/docs/html/interfaces/ComputedFrameMetrics.html +70 -0
  35. package/docs/html/interfaces/CreateSessionOptions.html +77 -0
  36. package/docs/html/interfaces/EstimatedLensPerformance.html +78 -0
  37. package/docs/html/interfaces/Lens.html +115 -0
  38. package/docs/html/interfaces/LensSource.html +113 -0
  39. package/docs/html/interfaces/MediaStreamSourceOptions.html +65 -0
  40. package/docs/html/interfaces/UriCancelRequest.html +65 -0
  41. package/docs/html/interfaces/UriHandler.html +128 -0
  42. package/docs/html/interfaces/UriRequest.html +80 -0
  43. package/docs/html/interfaces/UriResponse.html +80 -0
  44. package/docs/html/interfaces/VideoSourceOptions.html +60 -0
  45. package/docs/html/modules.html +198 -0
  46. package/docs/html/types/AssetLoader.html +126 -0
  47. package/docs/html/types/AssetTiming.html +116 -0
  48. package/docs/html/types/BenchmarkError.html +107 -0
  49. package/docs/html/types/BootstrapError.html +110 -0
  50. package/docs/html/types/CacheKeyNotFoundError.html +107 -0
  51. package/docs/html/types/CameraKitDeviceInfo.html +114 -0
  52. package/docs/html/types/CameraKitSessionEventListener.html +109 -0
  53. package/docs/html/types/CameraKitSessionEvents.html +118 -0
  54. package/docs/html/types/CameraKitSourceError.html +107 -0
  55. package/docs/html/types/CameraKitSourceInfo.html +107 -0
  56. package/docs/html/types/CameraKitSourceOptions.html +113 -0
  57. package/docs/html/types/ConfigurationError.html +109 -0
  58. package/docs/html/types/Keyboard.html +196 -0
  59. package/docs/html/types/KeyboardEvents.html +109 -0
  60. package/docs/html/types/LegalError.html +107 -0
  61. package/docs/html/types/LensAssetError.html +109 -0
  62. package/docs/html/types/LensContentValidationError.html +107 -0
  63. package/docs/html/types/LensError.html +107 -0
  64. package/docs/html/types/LensExecutionError.html +114 -0
  65. package/docs/html/types/LensImagePickerError.html +110 -0
  66. package/docs/html/types/LensLaunchParams.html +109 -0
  67. package/docs/html/types/LensMetricsEvents.html +110 -0
  68. package/docs/html/types/LensPerformanceCluster.html +107 -0
  69. package/docs/html/types/LensView.html +119 -0
  70. package/docs/html/types/LensWait.html +111 -0
  71. package/docs/html/types/PersistentStoreError.html +109 -0
  72. package/docs/html/types/PlatformNotSupportedError.html +110 -0
  73. package/docs/html/types/PublicContainer.html +110 -0
  74. package/docs/html/types/RenderTarget.html +111 -0
  75. package/docs/html/types/Uri.html +107 -0
  76. package/docs/html/types/UriHandlers.html +109 -0
  77. package/docs/html/types/WebGLError.html +107 -0
  78. package/docs/html/variables/extensionRequestContext.html +109 -0
  79. package/docs/md/.nojekyll +1 -0
  80. package/docs/md/README.md +168 -0
  81. package/docs/md/classes/CameraKit.md +94 -0
  82. package/docs/md/classes/CameraKitSession.md +359 -0
  83. package/docs/md/classes/CameraKitSource.md +110 -0
  84. package/docs/md/classes/LensPerformanceMeasurement.md +77 -0
  85. package/docs/md/classes/LensPerformanceMetrics.md +37 -0
  86. package/docs/md/classes/LensRepository.md +145 -0
  87. package/docs/md/classes/LensSources.md +29 -0
  88. package/docs/md/classes/Transform2D.md +55 -0
  89. package/docs/md/classes/TypedCustomEvent.md +65 -0
  90. package/docs/md/classes/TypedEventTarget.md +103 -0
  91. package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +106 -0
  92. package/docs/md/interfaces/CameraKitSourceSubscriber.md +55 -0
  93. package/docs/md/interfaces/ComputedFrameMetrics.md +29 -0
  94. package/docs/md/interfaces/CreateSessionOptions.md +35 -0
  95. package/docs/md/interfaces/EstimatedLensPerformance.md +38 -0
  96. package/docs/md/interfaces/Lens.md +84 -0
  97. package/docs/md/interfaces/LensSource.md +68 -0
  98. package/docs/md/interfaces/MediaStreamSourceOptions.md +22 -0
  99. package/docs/md/interfaces/UriCancelRequest.md +22 -0
  100. package/docs/md/interfaces/UriHandler.md +63 -0
  101. package/docs/md/interfaces/UriRequest.md +43 -0
  102. package/docs/md/interfaces/UriResponse.md +43 -0
  103. package/docs/md/interfaces/VideoSourceOptions.md +15 -0
  104. package/docs/md/modules.md +827 -0
  105. package/lib/CameraKit.d.ts +170 -0
  106. package/lib/CameraKit.js +145 -0
  107. package/lib/CameraKit.js.map +1 -0
  108. package/lib/__tests__/data.d.ts +9 -0
  109. package/lib/__tests__/data.js +50 -0
  110. package/lib/__tests__/data.js.map +1 -0
  111. package/lib/__tests__/deferred.d.ts +16 -0
  112. package/lib/__tests__/deferred.js +29 -0
  113. package/lib/__tests__/deferred.js.map +1 -0
  114. package/lib/__tests__/jest.matchers.d.ts +17 -0
  115. package/lib/__tests__/jest.matchers.js +67 -0
  116. package/lib/__tests__/jest.matchers.js.map +1 -0
  117. package/lib/assertPlatformSupported.d.ts +4 -0
  118. package/lib/assertPlatformSupported.js +10 -0
  119. package/lib/assertPlatformSupported.js.map +1 -0
  120. package/lib/benchmark/benchmarkGflops.d.ts +16 -0
  121. package/lib/benchmark/benchmarkGflops.js +129 -0
  122. package/lib/benchmark/benchmarkGflops.js.map +1 -0
  123. package/lib/benchmark/estimateLensPerformanceCluster.d.ts +33 -0
  124. package/lib/benchmark/estimateLensPerformanceCluster.js +48 -0
  125. package/lib/benchmark/estimateLensPerformanceCluster.js.map +1 -0
  126. package/lib/benchmark/webglUtils.d.ts +7 -0
  127. package/lib/benchmark/webglUtils.js +87 -0
  128. package/lib/benchmark/webglUtils.js.map +1 -0
  129. package/lib/bootstrapCameraKit.d.ts +96 -0
  130. package/lib/bootstrapCameraKit.js +204 -0
  131. package/lib/bootstrapCameraKit.js.map +1 -0
  132. package/lib/common/__mocks__/loadScript.d.ts +1 -0
  133. package/lib/common/__mocks__/loadScript.js +10 -0
  134. package/lib/common/__mocks__/loadScript.js.map +1 -0
  135. package/lib/common/assertions.d.ts +27 -0
  136. package/lib/common/assertions.js +39 -0
  137. package/lib/common/assertions.js.map +1 -0
  138. package/lib/common/cameraKitUserAgent.d.ts +34 -0
  139. package/lib/common/cameraKitUserAgent.js +216 -0
  140. package/lib/common/cameraKitUserAgent.js.map +1 -0
  141. package/lib/common/copyDefinedProperties.d.ts +13 -0
  142. package/lib/common/copyDefinedProperties.js +16 -0
  143. package/lib/common/copyDefinedProperties.js.map +1 -0
  144. package/lib/common/entries.d.ts +3 -0
  145. package/lib/common/entries.js +3 -0
  146. package/lib/common/entries.js.map +1 -0
  147. package/lib/common/errorHelpers.d.ts +10 -0
  148. package/lib/common/errorHelpers.js +24 -0
  149. package/lib/common/errorHelpers.js.map +1 -0
  150. package/lib/common/getFilename.d.ts +1 -0
  151. package/lib/common/getFilename.js +4 -0
  152. package/lib/common/getFilename.js.map +1 -0
  153. package/lib/common/index.d.ts +2 -0
  154. package/lib/common/index.js +3 -0
  155. package/lib/common/index.js.map +1 -0
  156. package/lib/common/loadScript.d.ts +1 -0
  157. package/lib/common/loadScript.js +11 -0
  158. package/lib/common/loadScript.js.map +1 -0
  159. package/lib/common/locale.d.ts +2 -0
  160. package/lib/common/locale.js +11 -0
  161. package/lib/common/locale.js.map +1 -0
  162. package/lib/common/localization.d.ts +43 -0
  163. package/lib/common/localization.js +43 -0
  164. package/lib/common/localization.js.map +1 -0
  165. package/lib/common/memoize.d.ts +8 -0
  166. package/lib/common/memoize.js +15 -0
  167. package/lib/common/memoize.js.map +1 -0
  168. package/lib/common/pageVisibility.d.ts +20 -0
  169. package/lib/common/pageVisibility.js +62 -0
  170. package/lib/common/pageVisibility.js.map +1 -0
  171. package/lib/common/time.d.ts +1 -0
  172. package/lib/common/time.js +2 -0
  173. package/lib/common/time.js.map +1 -0
  174. package/lib/common/typeguards.d.ts +53 -0
  175. package/lib/common/typeguards.js +92 -0
  176. package/lib/common/typeguards.js.map +1 -0
  177. package/lib/common/types.d.ts +10 -0
  178. package/lib/common/types.js +2 -0
  179. package/lib/common/types.js.map +1 -0
  180. package/lib/common/validate.d.ts +14 -0
  181. package/lib/common/validate.js +104 -0
  182. package/lib/common/validate.js.map +1 -0
  183. package/lib/configuration.d.ts +92 -0
  184. package/lib/configuration.js +36 -0
  185. package/lib/configuration.js.map +1 -0
  186. package/lib/configurationOverrides.d.ts +12 -0
  187. package/lib/configurationOverrides.js +41 -0
  188. package/lib/configurationOverrides.js.map +1 -0
  189. package/lib/dependency-injection/Container.d.ts +177 -0
  190. package/lib/dependency-injection/Container.js +160 -0
  191. package/lib/dependency-injection/Container.js.map +1 -0
  192. package/lib/dependency-injection/Injectable.d.ts +39 -0
  193. package/lib/dependency-injection/Injectable.js +18 -0
  194. package/lib/dependency-injection/Injectable.js.map +1 -0
  195. package/lib/dependency-injection/PartialContainer.d.ts +81 -0
  196. package/lib/dependency-injection/PartialContainer.js +85 -0
  197. package/lib/dependency-injection/PartialContainer.js.map +1 -0
  198. package/lib/dependency-injection/RootServices.d.ts +62 -0
  199. package/lib/dependency-injection/RootServices.js +2 -0
  200. package/lib/dependency-injection/RootServices.js.map +1 -0
  201. package/lib/dependency-injection/types.d.ts +56 -0
  202. package/lib/dependency-injection/types.js +2 -0
  203. package/lib/dependency-injection/types.js.map +1 -0
  204. package/lib/environment.json +1 -0
  205. package/lib/events/TypedCustomEvent.d.ts +10 -0
  206. package/lib/events/TypedCustomEvent.js +11 -0
  207. package/lib/events/TypedCustomEvent.js.map +1 -0
  208. package/lib/events/TypedEventTarget.d.ts +25 -0
  209. package/lib/events/TypedEventTarget.js +57 -0
  210. package/lib/events/TypedEventTarget.js.map +1 -0
  211. package/lib/events/scan.d.ts +15 -0
  212. package/lib/events/scan.js +46 -0
  213. package/lib/events/scan.js.map +1 -0
  214. package/lib/extensions/LensSources.d.ts +58 -0
  215. package/lib/extensions/LensSources.js +50 -0
  216. package/lib/extensions/LensSources.js.map +1 -0
  217. package/lib/extensions/UriHandlers.d.ts +54 -0
  218. package/lib/extensions/UriHandlers.js +93 -0
  219. package/lib/extensions/UriHandlers.js.map +1 -0
  220. package/lib/extensions/extensionRequestContext.d.ts +4 -0
  221. package/lib/extensions/extensionRequestContext.js +14 -0
  222. package/lib/extensions/extensionRequestContext.js.map +1 -0
  223. package/lib/generated-proto/blizzard/cameraKitEvents.d.ts +5603 -0
  224. package/lib/generated-proto/blizzard/cameraKitEvents.js +522 -0
  225. package/lib/generated-proto/blizzard/cameraKitEvents.js.map +1 -0
  226. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +98 -0
  227. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js +260 -0
  228. package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +1 -0
  229. package/lib/generated-proto/pb_schema/camera_kit/v3/export.d.ts +543 -0
  230. package/lib/generated-proto/pb_schema/camera_kit/v3/export.js +429 -0
  231. package/lib/generated-proto/pb_schema/camera_kit/v3/export.js.map +1 -0
  232. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.d.ts +100 -0
  233. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js +164 -0
  234. package/lib/generated-proto/pb_schema/camera_kit/v3/legal_prompt.js.map +1 -0
  235. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +395 -0
  236. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js +644 -0
  237. package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js.map +1 -0
  238. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.d.ts +185 -0
  239. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js +172 -0
  240. package/lib/generated-proto/pb_schema/camera_kit/v3/operational_metrics.js.map +1 -0
  241. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.d.ts +86 -0
  242. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.js +234 -0
  243. package/lib/generated-proto/pb_schema/camera_kit/v3/ranking.js.map +1 -0
  244. package/lib/generated-proto/pb_schema/camera_kit/v3/service.d.ts +854 -0
  245. package/lib/generated-proto/pb_schema/camera_kit/v3/service.js +629 -0
  246. package/lib/generated-proto/pb_schema/camera_kit/v3/service.js.map +1 -0
  247. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.d.ts +86 -0
  248. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.js +185 -0
  249. package/lib/generated-proto/pb_schema/cdp/cof/benchmark.js.map +1 -0
  250. package/lib/generated-proto/pb_schema/cdp/cof/benchmark_name.d.ts +95 -0
  251. package/lib/generated-proto/pb_schema/cdp/cof/benchmark_name.js +104 -0
  252. package/lib/generated-proto/pb_schema/cdp/cof/benchmark_name.js.map +1 -0
  253. package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +10212 -0
  254. package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.js +1300 -0
  255. package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +1 -0
  256. package/lib/generated-proto/pb_schema/cdp/cof/config_request.d.ts +401 -0
  257. package/lib/generated-proto/pb_schema/cdp/cof/config_request.js +525 -0
  258. package/lib/generated-proto/pb_schema/cdp/cof/config_request.js.map +1 -0
  259. package/lib/generated-proto/pb_schema/cdp/cof/config_response.d.ts +1287 -0
  260. package/lib/generated-proto/pb_schema/cdp/cof/config_response.js +135 -0
  261. package/lib/generated-proto/pb_schema/cdp/cof/config_response.js.map +1 -0
  262. package/lib/generated-proto/pb_schema/cdp/cof/config_result.d.ts +4208 -0
  263. package/lib/generated-proto/pb_schema/cdp/cof/config_result.js +1053 -0
  264. package/lib/generated-proto/pb_schema/cdp/cof/config_result.js.map +1 -0
  265. package/lib/generated-proto/pb_schema/cdp/cof/debug_info.d.ts +102 -0
  266. package/lib/generated-proto/pb_schema/cdp/cof/debug_info.js +165 -0
  267. package/lib/generated-proto/pb_schema/cdp/cof/debug_info.js.map +1 -0
  268. package/lib/generated-proto/pb_schema/cdp/cof/namespace.d.ts +8 -0
  269. package/lib/generated-proto/pb_schema/cdp/cof/namespace.js +17 -0
  270. package/lib/generated-proto/pb_schema/cdp/cof/namespace.js.map +1 -0
  271. package/lib/generated-proto/pb_schema/common/ruid.d.ts +75 -0
  272. package/lib/generated-proto/pb_schema/common/ruid.js +96 -0
  273. package/lib/generated-proto/pb_schema/common/ruid.js.map +1 -0
  274. package/lib/generated-proto/pb_schema/common/value.d.ts +131 -0
  275. package/lib/generated-proto/pb_schema/common/value.js +204 -0
  276. package/lib/generated-proto/pb_schema/common/value.js.map +1 -0
  277. package/lib/generated-proto/pb_schema/google/api/annotations.d.ts +1 -0
  278. package/lib/generated-proto/pb_schema/google/api/annotations.js +9 -0
  279. package/lib/generated-proto/pb_schema/google/api/annotations.js.map +1 -0
  280. package/lib/generated-proto/pb_schema/google/api/http.d.ts +3636 -0
  281. package/lib/generated-proto/pb_schema/google/api/http.js +271 -0
  282. package/lib/generated-proto/pb_schema/google/api/http.js.map +1 -0
  283. package/lib/generated-proto/pb_schema/google/protobuf/any.d.ts +139 -0
  284. package/lib/generated-proto/pb_schema/google/protobuf/any.js +94 -0
  285. package/lib/generated-proto/pb_schema/google/protobuf/any.js.map +1 -0
  286. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.d.ts +50968 -0
  287. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js +2962 -0
  288. package/lib/generated-proto/pb_schema/google/protobuf/descriptor.js.map +1 -0
  289. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.d.ts +98 -0
  290. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.js +82 -0
  291. package/lib/generated-proto/pb_schema/google/protobuf/timestamp.js.map +1 -0
  292. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.d.ts +173 -0
  293. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.js +332 -0
  294. package/lib/generated-proto/pb_schema/google/protobuf/wrappers.js.map +1 -0
  295. package/lib/generated-proto/pb_schema/lenses/geocircle.d.ts +42 -0
  296. package/lib/generated-proto/pb_schema/lenses/geocircle.js +52 -0
  297. package/lib/generated-proto/pb_schema/lenses/geocircle.js.map +1 -0
  298. package/lib/generated-proto/pb_schema/lenses/geopoint.d.ts +32 -0
  299. package/lib/generated-proto/pb_schema/lenses/geopoint.js +50 -0
  300. package/lib/generated-proto/pb_schema/lenses/geopoint.js.map +1 -0
  301. package/lib/generated-proto/pb_schema/lenses/launch_params.d.ts +29 -0
  302. package/lib/generated-proto/pb_schema/lenses/launch_params.js +43 -0
  303. package/lib/generated-proto/pb_schema/lenses/launch_params.js.map +1 -0
  304. package/lib/generated-proto/pb_schema/lenses/launchdata.d.ts +365 -0
  305. package/lib/generated-proto/pb_schema/lenses/launchdata.js +216 -0
  306. package/lib/generated-proto/pb_schema/lenses/launchdata.js.map +1 -0
  307. package/lib/generated-proto/pb_schema/lenses/lures.d.ts +113 -0
  308. package/lib/generated-proto/pb_schema/lenses/lures.js +64 -0
  309. package/lib/generated-proto/pb_schema/lenses/lures.js.map +1 -0
  310. package/lib/generated-proto/pb_schema/lenses/persistent_store.d.ts +29 -0
  311. package/lib/generated-proto/pb_schema/lenses/persistent_store.js +43 -0
  312. package/lib/generated-proto/pb_schema/lenses/persistent_store.js.map +1 -0
  313. package/lib/generated-proto/pb_schema/lenses/snappable.d.ts +921 -0
  314. package/lib/generated-proto/pb_schema/lenses/snappable.js +954 -0
  315. package/lib/generated-proto/pb_schema/lenses/snappable.js.map +1 -0
  316. package/lib/generated-proto/pb_schema/lenses/user_data.d.ts +247 -0
  317. package/lib/generated-proto/pb_schema/lenses/user_data.js +362 -0
  318. package/lib/generated-proto/pb_schema/lenses/user_data.js.map +1 -0
  319. package/lib/handlers/HandlerChainBuilder.d.ts +95 -0
  320. package/lib/handlers/HandlerChainBuilder.js +187 -0
  321. package/lib/handlers/HandlerChainBuilder.js.map +1 -0
  322. package/lib/handlers/arrayBufferParsingHandler.d.ts +10 -0
  323. package/lib/handlers/arrayBufferParsingHandler.js +18 -0
  324. package/lib/handlers/arrayBufferParsingHandler.js.map +1 -0
  325. package/lib/handlers/batchingHandler.d.ts +25 -0
  326. package/lib/handlers/batchingHandler.js +79 -0
  327. package/lib/handlers/batchingHandler.js.map +1 -0
  328. package/lib/handlers/cameraKitServiceFetchHandlerFactory.d.ts +12 -0
  329. package/lib/handlers/cameraKitServiceFetchHandlerFactory.js +19 -0
  330. package/lib/handlers/cameraKitServiceFetchHandlerFactory.js.map +1 -0
  331. package/lib/handlers/debugHandler.d.ts +8 -0
  332. package/lib/handlers/debugHandler.js +27 -0
  333. package/lib/handlers/debugHandler.js.map +1 -0
  334. package/lib/handlers/defaultFetchHandler.d.ts +15 -0
  335. package/lib/handlers/defaultFetchHandler.js +29 -0
  336. package/lib/handlers/defaultFetchHandler.js.map +1 -0
  337. package/lib/handlers/headersModifyingFetchHandler.d.ts +8 -0
  338. package/lib/handlers/headersModifyingFetchHandler.js +13 -0
  339. package/lib/handlers/headersModifyingFetchHandler.js.map +1 -0
  340. package/lib/handlers/index.d.ts +2 -0
  341. package/lib/handlers/index.js +3 -0
  342. package/lib/handlers/index.js.map +1 -0
  343. package/lib/handlers/mappingHandler.d.ts +15 -0
  344. package/lib/handlers/mappingHandler.js +65 -0
  345. package/lib/handlers/mappingHandler.js.map +1 -0
  346. package/lib/handlers/noCorsRetryingFetchHandler.d.ts +48 -0
  347. package/lib/handlers/noCorsRetryingFetchHandler.js +94 -0
  348. package/lib/handlers/noCorsRetryingFetchHandler.js.map +1 -0
  349. package/lib/handlers/persistingHandler.d.ts +14 -0
  350. package/lib/handlers/persistingHandler.js +71 -0
  351. package/lib/handlers/persistingHandler.js.map +1 -0
  352. package/lib/handlers/rateLimitingHandler.d.ts +20 -0
  353. package/lib/handlers/rateLimitingHandler.js +43 -0
  354. package/lib/handlers/rateLimitingHandler.js.map +1 -0
  355. package/lib/handlers/requestStateEmittingHandler.d.ts +29 -0
  356. package/lib/handlers/requestStateEmittingHandler.js +43 -0
  357. package/lib/handlers/requestStateEmittingHandler.js.map +1 -0
  358. package/lib/handlers/responseCachingHandler.d.ts +27 -0
  359. package/lib/handlers/responseCachingHandler.js +94 -0
  360. package/lib/handlers/responseCachingHandler.js.map +1 -0
  361. package/lib/handlers/retryingHandler.d.ts +37 -0
  362. package/lib/handlers/retryingHandler.js +73 -0
  363. package/lib/handlers/retryingHandler.js.map +1 -0
  364. package/lib/handlers/timeoutHandler.d.ts +18 -0
  365. package/lib/handlers/timeoutHandler.js +30 -0
  366. package/lib/handlers/timeoutHandler.js.map +1 -0
  367. package/lib/index.d.ts +33 -0
  368. package/lib/index.js +32 -0
  369. package/lib/index.js.map +1 -0
  370. package/lib/legal/legalPrompt.d.ts +17 -0
  371. package/lib/legal/legalPrompt.js +144 -0
  372. package/lib/legal/legalPrompt.js.map +1 -0
  373. package/lib/legal/legalState.d.ts +50 -0
  374. package/lib/legal/legalState.js +149 -0
  375. package/lib/legal/legalState.js.map +1 -0
  376. package/lib/lens/Lens.d.ts +71 -0
  377. package/lib/lens/Lens.js +63 -0
  378. package/lib/lens/Lens.js.map +1 -0
  379. package/lib/lens/LensLaunchParams.d.ts +19 -0
  380. package/lib/lens/LensLaunchParams.js +38 -0
  381. package/lib/lens/LensLaunchParams.js.map +1 -0
  382. package/lib/lens/LensPersistenceStore.d.ts +7 -0
  383. package/lib/lens/LensPersistenceStore.js +20 -0
  384. package/lib/lens/LensPersistenceStore.js.map +1 -0
  385. package/lib/lens/LensRepository.d.ts +134 -0
  386. package/lib/lens/LensRepository.js +239 -0
  387. package/lib/lens/LensRepository.js.map +1 -0
  388. package/lib/lens/assets/LensAssetRepository.d.ts +66 -0
  389. package/lib/lens/assets/LensAssetRepository.js +179 -0
  390. package/lib/lens/assets/LensAssetRepository.js.map +1 -0
  391. package/lib/lens/assets/LensAssetsProvider.d.ts +21 -0
  392. package/lib/lens/assets/LensAssetsProvider.js +41 -0
  393. package/lib/lens/assets/LensAssetsProvider.js.map +1 -0
  394. package/lib/lens/assets/deviceDependentAssetLoader.d.ts +11 -0
  395. package/lib/lens/assets/deviceDependentAssetLoader.js +58 -0
  396. package/lib/lens/assets/deviceDependentAssetLoader.js.map +1 -0
  397. package/lib/lens/assets/remoteMediaAssetLoaderFactory.d.ts +10 -0
  398. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js +26 -0
  399. package/lib/lens/assets/remoteMediaAssetLoaderFactory.js.map +1 -0
  400. package/lib/lens/assets/staticAssetLoader.d.ts +10 -0
  401. package/lib/lens/assets/staticAssetLoader.js +24 -0
  402. package/lib/lens/assets/staticAssetLoader.js.map +1 -0
  403. package/lib/lens/index.d.ts +7 -0
  404. package/lib/lens/index.js +7 -0
  405. package/lib/lens/index.js.map +1 -0
  406. package/lib/lens/lensEnvelopeUtil.d.ts +5 -0
  407. package/lib/lens/lensEnvelopeUtil.js +19 -0
  408. package/lib/lens/lensEnvelopeUtil.js.map +1 -0
  409. package/lib/lens/lensHttpUtil.d.ts +4 -0
  410. package/lib/lens/lensHttpUtil.js +30 -0
  411. package/lib/lens/lensHttpUtil.js.map +1 -0
  412. package/lib/lens-client-interface/exif.d.ts +20 -0
  413. package/lib/lens-client-interface/exif.js +61 -0
  414. package/lib/lens-client-interface/exif.js.map +1 -0
  415. package/lib/lens-client-interface/imagePicker.d.ts +7 -0
  416. package/lib/lens-client-interface/imagePicker.js +128 -0
  417. package/lib/lens-client-interface/imagePicker.js.map +1 -0
  418. package/lib/lens-client-interface/lensClientInterface.d.ts +13 -0
  419. package/lib/lens-client-interface/lensClientInterface.js +30 -0
  420. package/lib/lens-client-interface/lensClientInterface.js.map +1 -0
  421. package/lib/lens-core-module/generated-types.d.ts +426 -0
  422. package/lib/lens-core-module/generated-types.js +2 -0
  423. package/lib/lens-core-module/generated-types.js.map +1 -0
  424. package/lib/lens-core-module/index.d.ts +2 -0
  425. package/lib/lens-core-module/index.js +3 -0
  426. package/lib/lens-core-module/index.js.map +1 -0
  427. package/lib/lens-core-module/loader/index.d.ts +1 -0
  428. package/lib/lens-core-module/loader/index.js +2 -0
  429. package/lib/lens-core-module/loader/index.js.map +1 -0
  430. package/lib/lens-core-module/loader/lensCoreFactory.d.ts +30 -0
  431. package/lib/lens-core-module/loader/lensCoreFactory.js +121 -0
  432. package/lib/lens-core-module/loader/lensCoreFactory.js.map +1 -0
  433. package/lib/lensCoreWasmVersions.json +5 -0
  434. package/lib/logger/errorLoggingDecorator.d.ts +9 -0
  435. package/lib/logger/errorLoggingDecorator.js +32 -0
  436. package/lib/logger/errorLoggingDecorator.js.map +1 -0
  437. package/lib/logger/logEntries.d.ts +15 -0
  438. package/lib/logger/logEntries.js +14 -0
  439. package/lib/logger/logEntries.js.map +1 -0
  440. package/lib/logger/logger.d.ts +35 -0
  441. package/lib/logger/logger.js +48 -0
  442. package/lib/logger/logger.js.map +1 -0
  443. package/lib/logger/registerLogEntriesSubscriber.d.ts +14 -0
  444. package/lib/logger/registerLogEntriesSubscriber.js +23 -0
  445. package/lib/logger/registerLogEntriesSubscriber.js.map +1 -0
  446. package/lib/media-sources/CameraKitSource.d.ts +88 -0
  447. package/lib/media-sources/CameraKitSource.js +140 -0
  448. package/lib/media-sources/CameraKitSource.js.map +1 -0
  449. package/lib/media-sources/FunctionSource.d.ts +30 -0
  450. package/lib/media-sources/FunctionSource.js +132 -0
  451. package/lib/media-sources/FunctionSource.js.map +1 -0
  452. package/lib/media-sources/ImageSource.d.ts +13 -0
  453. package/lib/media-sources/ImageSource.js +28 -0
  454. package/lib/media-sources/ImageSource.js.map +1 -0
  455. package/lib/media-sources/MediaStreamSource.d.ts +41 -0
  456. package/lib/media-sources/MediaStreamSource.js +146 -0
  457. package/lib/media-sources/MediaStreamSource.js.map +1 -0
  458. package/lib/media-sources/VideoSource.d.ts +21 -0
  459. package/lib/media-sources/VideoSource.js +38 -0
  460. package/lib/media-sources/VideoSource.js.map +1 -0
  461. package/lib/metrics/businessEventsReporter.d.ts +37 -0
  462. package/lib/metrics/businessEventsReporter.js +160 -0
  463. package/lib/metrics/businessEventsReporter.js.map +1 -0
  464. package/lib/metrics/metricsEventTarget.d.ts +41 -0
  465. package/lib/metrics/metricsEventTarget.js +11 -0
  466. package/lib/metrics/metricsEventTarget.js.map +1 -0
  467. package/lib/metrics/metricsHandler.d.ts +9 -0
  468. package/lib/metrics/metricsHandler.js +13 -0
  469. package/lib/metrics/metricsHandler.js.map +1 -0
  470. package/lib/metrics/operationalMetricsReporter.d.ts +52 -0
  471. package/lib/metrics/operationalMetricsReporter.js +108 -0
  472. package/lib/metrics/operationalMetricsReporter.js.map +1 -0
  473. package/lib/metrics/reporters/reportBenchmarks.d.ts +10 -0
  474. package/lib/metrics/reporters/reportBenchmarks.js +29 -0
  475. package/lib/metrics/reporters/reportBenchmarks.js.map +1 -0
  476. package/lib/metrics/reporters/reportGlobalException.d.ts +19 -0
  477. package/lib/metrics/reporters/reportGlobalException.js +68 -0
  478. package/lib/metrics/reporters/reportGlobalException.js.map +1 -0
  479. package/lib/metrics/reporters/reportHttpMetrics.d.ts +17 -0
  480. package/lib/metrics/reporters/reportHttpMetrics.js +92 -0
  481. package/lib/metrics/reporters/reportHttpMetrics.js.map +1 -0
  482. package/lib/metrics/reporters/reportLegalState.d.ts +15 -0
  483. package/lib/metrics/reporters/reportLegalState.js +34 -0
  484. package/lib/metrics/reporters/reportLegalState.js.map +1 -0
  485. package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +38 -0
  486. package/lib/metrics/reporters/reportLensAndAssetDownload.js +88 -0
  487. package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +1 -0
  488. package/lib/metrics/reporters/reportLensValidationFailed.d.ts +20 -0
  489. package/lib/metrics/reporters/reportLensValidationFailed.js +24 -0
  490. package/lib/metrics/reporters/reportLensValidationFailed.js.map +1 -0
  491. package/lib/metrics/reporters/reportLensView.d.ts +36 -0
  492. package/lib/metrics/reporters/reportLensView.js +101 -0
  493. package/lib/metrics/reporters/reportLensView.js.map +1 -0
  494. package/lib/metrics/reporters/reportLensWait.d.ts +33 -0
  495. package/lib/metrics/reporters/reportLensWait.js +56 -0
  496. package/lib/metrics/reporters/reportLensWait.js.map +1 -0
  497. package/lib/metrics/reporters/reportSessionException.d.ts +17 -0
  498. package/lib/metrics/reporters/reportSessionException.js +12 -0
  499. package/lib/metrics/reporters/reportSessionException.js.map +1 -0
  500. package/lib/metrics/reporters/reportUserSession.d.ts +14 -0
  501. package/lib/metrics/reporters/reportUserSession.js +67 -0
  502. package/lib/metrics/reporters/reportUserSession.js.map +1 -0
  503. package/lib/metrics/reporters/reporters.d.ts +44 -0
  504. package/lib/metrics/reporters/reporters.js +33 -0
  505. package/lib/metrics/reporters/reporters.js.map +1 -0
  506. package/lib/namedErrors.d.ts +107 -0
  507. package/lib/namedErrors.js +56 -0
  508. package/lib/namedErrors.js.map +1 -0
  509. package/lib/persistence/ExpiringPersistence.d.ts +20 -0
  510. package/lib/persistence/ExpiringPersistence.js +58 -0
  511. package/lib/persistence/ExpiringPersistence.js.map +1 -0
  512. package/lib/persistence/IndexedDBPersistence.d.ts +47 -0
  513. package/lib/persistence/IndexedDBPersistence.js +180 -0
  514. package/lib/persistence/IndexedDBPersistence.js.map +1 -0
  515. package/lib/persistence/Persistence.d.ts +25 -0
  516. package/lib/persistence/Persistence.js +10 -0
  517. package/lib/persistence/Persistence.js.map +1 -0
  518. package/lib/remote-configuration/cofHandler.d.ts +21 -0
  519. package/lib/remote-configuration/cofHandler.js +75 -0
  520. package/lib/remote-configuration/cofHandler.js.map +1 -0
  521. package/lib/remote-configuration/remoteConfiguration.d.ts +13 -0
  522. package/lib/remote-configuration/remoteConfiguration.js +43 -0
  523. package/lib/remote-configuration/remoteConfiguration.js.map +1 -0
  524. package/lib/session/CameraKitSession.d.ts +252 -0
  525. package/lib/session/CameraKitSession.js +439 -0
  526. package/lib/session/CameraKitSession.js.map +1 -0
  527. package/lib/session/CameraKitSessionEvents.d.ts +33 -0
  528. package/lib/session/CameraKitSessionEvents.js +21 -0
  529. package/lib/session/CameraKitSessionEvents.js.map +1 -0
  530. package/lib/session/LensKeyboard.d.ts +89 -0
  531. package/lib/session/LensKeyboard.js +95 -0
  532. package/lib/session/LensKeyboard.js.map +1 -0
  533. package/lib/session/LensPerformanceMeasurement.d.ts +55 -0
  534. package/lib/session/LensPerformanceMeasurement.js +91 -0
  535. package/lib/session/LensPerformanceMeasurement.js.map +1 -0
  536. package/lib/session/LensPerformanceMetrics.d.ts +31 -0
  537. package/lib/session/LensPerformanceMetrics.js +58 -0
  538. package/lib/session/LensPerformanceMetrics.js.map +1 -0
  539. package/lib/session/index.d.ts +1 -0
  540. package/lib/session/index.js +2 -0
  541. package/lib/session/index.js.map +1 -0
  542. package/lib/session/lensState.d.ts +29 -0
  543. package/lib/session/lensState.js +160 -0
  544. package/lib/session/lensState.js.map +1 -0
  545. package/lib/session/sessionState.d.ts +10 -0
  546. package/lib/session/sessionState.js +12 -0
  547. package/lib/session/sessionState.js.map +1 -0
  548. package/lib/transforms/Transform2D.d.ts +17 -0
  549. package/lib/transforms/Transform2D.js +18 -0
  550. package/lib/transforms/Transform2D.js.map +1 -0
  551. package/lib/transforms/index.d.ts +1 -0
  552. package/lib/transforms/index.js +2 -0
  553. package/lib/transforms/index.js.map +1 -0
  554. package/package.json +62 -0
@@ -0,0 +1,426 @@
1
+ /// <reference types="dom-webcodecs" />
2
+ export declare type DefaultEventHandler = (...data: any[]) => void;
3
+ export declare type DefaultErrorHandler = (err: LensCoreError) => void;
4
+ export declare type LensCoreEnumValue = {
5
+ value: number;
6
+ };
7
+ export declare type GetOutputCanvasesOutput = Record<number, HTMLCanvasElement>;
8
+ export declare type SetRenderSizeInput = SetRenderSizeMatchInputResolutionInput | SetRenderSizeExplicitInput;
9
+ export declare type SetRemoteAssetsProviderInput = (assetDescriptor: AssetDescriptor) => void;
10
+ export declare type ContentType = "text/plain" | "text/html" | "application/json" | "application/octet-stream" | "application/x-protobuf" | "application/grpc";
11
+ export declare type SavePersistentStoreCallback = (id: string, data: ArrayBuffer) => void;
12
+ export declare type ShowHintCallback = (effectId: string, hintId: string) => void;
13
+ export declare type HideHintCallback = (effectId: string) => void;
14
+ export declare type ReceiveInstanceCallback = (instance: WebAssembly.Instance, module: WebAssembly.Module) => void;
15
+ export declare type AssetType = LensCoreEnumValue;
16
+ export declare type CanvasType = LensCoreEnumValue;
17
+ export declare type RenderLoopMode = LensCoreEnumValue;
18
+ export declare type LensApiVisibility = LensCoreEnumValue;
19
+ export declare type DeviceClass = LensCoreEnumValue;
20
+ export declare type UserDataAccess = LensCoreEnumValue;
21
+ export declare type InterfaceControl = LensCoreEnumValue;
22
+ export declare type InterfaceAction = LensCoreEnumValue;
23
+ export declare type ExternalMediaOrientation = LensCoreEnumValue;
24
+ export declare type ErrorType = LensCoreEnumValue;
25
+ export declare type Uri = `${string}://${string}`;
26
+ export declare type Dimensions = {
27
+ width: number;
28
+ height: number;
29
+ };
30
+ export declare type Size2D = {
31
+ width: number;
32
+ height: number;
33
+ };
34
+ export declare type Vec2D = {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ export declare type Rect = {
39
+ origin: Vec2D;
40
+ size: Size2D;
41
+ };
42
+ export interface ClearAllLensesInput {
43
+ onSuccess?: DefaultEventHandler;
44
+ onFailure?: DefaultErrorHandler;
45
+ }
46
+ export interface OnFrameProcessedParam {
47
+ processingTimeMs: number;
48
+ }
49
+ export interface InitializeInput {
50
+ canvas?: HTMLCanvasElement | string;
51
+ outputResolution?: Dimensions;
52
+ showFpsPanel?: boolean;
53
+ shouldUseWorker?: boolean;
54
+ onFrameProcessed?: (arg: OnFrameProcessedParam) => void;
55
+ onFailure?: DefaultErrorHandler;
56
+ onSuccess?: DefaultEventHandler;
57
+ exceptionHandler?: (error: LensCoreError) => void;
58
+ }
59
+ export interface PlayCanvasInput {
60
+ type: CanvasType;
61
+ onReady?: () => void;
62
+ onSuccess?: DefaultEventHandler;
63
+ onFailure?: DefaultErrorHandler;
64
+ }
65
+ export interface PauseCanvasInput {
66
+ type: CanvasType;
67
+ onSuccess?: DefaultEventHandler;
68
+ onFailure?: DefaultErrorHandler;
69
+ }
70
+ export interface SetFpsLimitInput {
71
+ fps: number;
72
+ onSuccess?: DefaultEventHandler;
73
+ onFailure?: DefaultErrorHandler;
74
+ }
75
+ export interface SetInputTransformInput {
76
+ matrix: Float32Array | ArrayBuffer;
77
+ onSuccess?: DefaultEventHandler;
78
+ onFailure?: DefaultErrorHandler;
79
+ }
80
+ export interface SetOnFrameProcessedInput {
81
+ onFrameProcessed: (arg: OnFrameProcessedParam) => void;
82
+ onSuccess?: DefaultEventHandler;
83
+ onFailure?: DefaultErrorHandler;
84
+ }
85
+ export interface SetRenderSizeMatchInputResolutionInput {
86
+ mode: "matchInputResolution";
87
+ onSuccess?: DefaultEventHandler;
88
+ onFailure?: DefaultErrorHandler;
89
+ }
90
+ export interface SetRenderSizeExplicitInput {
91
+ mode: "explicit";
92
+ target: Dimensions;
93
+ onSuccess?: DefaultEventHandler;
94
+ onFailure?: DefaultErrorHandler;
95
+ }
96
+ export interface SetRenderLoopInput {
97
+ mode: RenderLoopMode;
98
+ onSuccess?: DefaultEventHandler;
99
+ onFailure?: DefaultErrorHandler;
100
+ }
101
+ export interface TeardownInput {
102
+ onSuccess?: DefaultEventHandler;
103
+ onFailure?: DefaultEventHandler;
104
+ }
105
+ export interface ReplayTrackingDataInput {
106
+ buffer: Uint8Array | ArrayBuffer;
107
+ }
108
+ export interface UseMediaElementInput {
109
+ media?: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | MediaStream;
110
+ requestWebcam?: boolean;
111
+ startOnFrontCamera?: boolean;
112
+ mirrorMedia?: boolean;
113
+ pauseExistingMedia?: boolean;
114
+ autoplayNewMedia?: boolean;
115
+ autoplayPreviewCanvas?: boolean;
116
+ useManualFrameProcessing?: boolean;
117
+ replayTrackingData?: ReplayTrackingDataInput;
118
+ onFailure?: DefaultErrorHandler;
119
+ onSuccess?: DefaultEventHandler;
120
+ }
121
+ export interface UriListener {
122
+ handleRequest: (request: UriRequest) => void;
123
+ cancelRequest?: (request: UriCancelRequest) => void;
124
+ }
125
+ export interface UriRequest {
126
+ uri: Uri;
127
+ identifier: string;
128
+ method: "GET" | "POST";
129
+ contentType: ContentType;
130
+ data: ArrayBuffer;
131
+ }
132
+ export interface UriResponse {
133
+ code: number;
134
+ description: string;
135
+ contentType: ContentType;
136
+ data: ArrayBuffer;
137
+ metadata?: Record<string, string>;
138
+ }
139
+ export interface UriCancelRequest {
140
+ uri: Uri;
141
+ requestId: string;
142
+ }
143
+ export interface LensDescriptor {
144
+ lensId: string;
145
+ lensChecksum: string;
146
+ lensPath?: string;
147
+ lensDataBuffer?: Uint8Array | ArrayBuffer;
148
+ onTurnOn?: DefaultEventHandler;
149
+ onTurnOff?: DefaultEventHandler;
150
+ onFirstFrameProcessed?: DefaultEventHandler;
151
+ onResourcesLoaded?: DefaultEventHandler;
152
+ launchData?: Uint8Array | ArrayBuffer;
153
+ apiVisibility?: LensApiVisibility;
154
+ publicApiUserDataAccess?: UserDataAccess;
155
+ }
156
+ export interface AddLensInput extends LensDescriptor {
157
+ onSuccess?: DefaultEventHandler;
158
+ onFailure?: DefaultErrorHandler;
159
+ }
160
+ export interface ReplaceLensesInput {
161
+ lenses: LensDescriptor | Array<LensDescriptor>;
162
+ onSuccess?: DefaultEventHandler;
163
+ onFailure?: DefaultErrorHandler;
164
+ }
165
+ export interface RemoveLensInput {
166
+ lensId: string;
167
+ onSuccess?: DefaultEventHandler;
168
+ onFailure?: DefaultErrorHandler;
169
+ }
170
+ export interface AssetDescriptor {
171
+ assetId: string;
172
+ assetType: AssetType;
173
+ avatarId?: string;
174
+ effectId?: string;
175
+ }
176
+ export interface ProvideRemoteAssetsResponseInput {
177
+ assetId: string;
178
+ assetType: AssetType;
179
+ assetBuffer?: ArrayBuffer;
180
+ assetChecksum?: string;
181
+ onFailure?: DefaultErrorHandler;
182
+ }
183
+ export interface ProcessFrameInput {
184
+ inputFrame: ImageBitmap | HTMLCanvasElement | HTMLImageElement | VideoFrame;
185
+ timestampMillis: number;
186
+ onSuccess?: DefaultEventHandler;
187
+ onFailure?: DefaultErrorHandler;
188
+ }
189
+ export interface LensCoreError extends Error {
190
+ otherExceptions?: Array<Error>;
191
+ cause: {
192
+ type: ErrorType;
193
+ metadata?: any;
194
+ };
195
+ }
196
+ export interface ImageToYuvBufferInput {
197
+ image: Uint8Array | ArrayBuffer | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap;
198
+ width: number;
199
+ height: number;
200
+ outputBuffer?: Uint8Array | ArrayBuffer;
201
+ onSuccess: (buffer: ArrayBuffer) => void;
202
+ onFailure?: DefaultErrorHandler;
203
+ }
204
+ export interface YuvBufferToBitmapInput {
205
+ buffer: Uint8Array | ArrayBuffer;
206
+ width: number;
207
+ height: number;
208
+ targetWidth?: number;
209
+ targetHeight?: number;
210
+ preserveCanvasState?: boolean;
211
+ allowBufferTransfer?: boolean;
212
+ onSuccess: (bitmap: ImageBitmap) => void;
213
+ onFailure?: DefaultErrorHandler;
214
+ }
215
+ export interface SetInterfaceControlVisibilityInput {
216
+ effectId: string;
217
+ interfaceControl: InterfaceControl;
218
+ visibility: boolean;
219
+ }
220
+ export interface HandleClientInterfaceActionInput {
221
+ effectId: string;
222
+ interfaceControl: InterfaceControl;
223
+ interfaceAction: InterfaceAction;
224
+ }
225
+ export interface ProvideExternalImageInput {
226
+ data: Uint8Array | ArrayBuffer;
227
+ orientation: ExternalMediaOrientation;
228
+ faceRects?: Array<Rect>;
229
+ }
230
+ export interface ProvideExternalVideoInput {
231
+ data: Uint8Array | ArrayBuffer;
232
+ orientation: ExternalMediaOrientation;
233
+ relStartPosition?: number;
234
+ relEndPosition?: number;
235
+ volume?: number;
236
+ }
237
+ export interface ScreenDimmingRequestInput {
238
+ effectId: string;
239
+ enabled: boolean;
240
+ }
241
+ export declare type ScreenDimmingRequestHandler = (config: ScreenDimmingRequestInput) => void;
242
+ export interface ClientInterfaceData {
243
+ HeaderId?: string;
244
+ DescriptionId?: string;
245
+ FaceFilteringEnabled?: "0" | "1";
246
+ FaceFilteringMultipleFaces?: "0" | "1";
247
+ ImageEnabled?: "0" | "1";
248
+ VideoEnabled?: "0" | "1";
249
+ }
250
+ export interface ClientInterfaceRequestInput {
251
+ effectId: string;
252
+ interfaceControl: InterfaceControl;
253
+ interfaceAction: InterfaceAction;
254
+ data: ClientInterfaceData;
255
+ }
256
+ export declare type ClientInterfaceRequestHandler = (config: ClientInterfaceRequestInput) => void;
257
+ export interface LensCoreConfig {
258
+ configId: string;
259
+ value: {
260
+ stringValue: string;
261
+ } | {
262
+ boolValue: boolean;
263
+ } | {
264
+ intValue: number;
265
+ } | {
266
+ longValue: number;
267
+ } | {
268
+ floatValue: number;
269
+ } | {
270
+ anyValue: {
271
+ typeUrl: string;
272
+ value: Uint8Array | ArrayBuffer;
273
+ };
274
+ };
275
+ }
276
+ export declare type SetPreloadedConfigurationInput = Array<LensCoreConfig>;
277
+ export interface SetAllSoundsMutedInput {
278
+ muted: boolean;
279
+ fade: boolean;
280
+ }
281
+ export interface SetDeviceClassInput {
282
+ deviceClass: DeviceClass;
283
+ onSuccess?: DefaultEventHandler;
284
+ onFailure?: DefaultErrorHandler;
285
+ }
286
+ export interface SetAudioParametersInput {
287
+ parameters: {
288
+ numChannels?: number;
289
+ sampleRate?: number;
290
+ };
291
+ onSuccess?: DefaultEventHandler;
292
+ onFailure?: DefaultErrorHandler;
293
+ }
294
+ export interface SystemFont {
295
+ name: string;
296
+ data: Uint8Array | ArrayBuffer;
297
+ }
298
+ export interface SetSystemFontsInput {
299
+ fonts: SystemFont[];
300
+ }
301
+ export interface ProcessAudioSampleBufferInput {
302
+ input: Float32Array[] | ArrayBuffer[];
303
+ output?: Float32Array[] | ArrayBuffer[];
304
+ onSuccess?: DefaultEventHandler;
305
+ onFailure?: DefaultErrorHandler;
306
+ }
307
+ export interface InitialEmscriptenModule {
308
+ mainScriptUrlOrBlob: string;
309
+ compiledModule?: WebAssembly.Module;
310
+ pthreadWorkerScriptUrl?: string;
311
+ instantiateWasm?: (importObject: WebAssembly.Imports, receiveInstance: ReceiveInstanceCallback) => void;
312
+ print?: (text: string) => void;
313
+ printErr?: (text: string) => void;
314
+ }
315
+ export interface LensCoreModule extends InitialEmscriptenModule {
316
+ AssetType: {
317
+ RemoteMediaByUrl: AssetType;
318
+ DeviceDependent: AssetType;
319
+ Static: AssetType;
320
+ URL: AssetType;
321
+ BitmojiDynamicAsset: AssetType;
322
+ };
323
+ CanvasType: {
324
+ None: CanvasType;
325
+ Preview: CanvasType;
326
+ Capture: CanvasType;
327
+ All: CanvasType;
328
+ };
329
+ LensApiVisibility: {
330
+ Dev: LensApiVisibility;
331
+ Private: LensApiVisibility;
332
+ Public: LensApiVisibility;
333
+ };
334
+ DeviceClass: {
335
+ Undefined: DeviceClass;
336
+ BarelyWorking: DeviceClass;
337
+ LowEnd: DeviceClass;
338
+ MidEnd: DeviceClass;
339
+ HighEnd: DeviceClass;
340
+ };
341
+ RenderLoopMode: {
342
+ SetTimeout: RenderLoopMode;
343
+ RequestAnimationFrame: RenderLoopMode;
344
+ };
345
+ UserDataAccess: {
346
+ Restricted: UserDataAccess;
347
+ Unrestricted: UserDataAccess;
348
+ };
349
+ InterfaceControl: {
350
+ ToggleCameraButton: InterfaceControl;
351
+ ImagePicker: InterfaceControl;
352
+ Hint: InterfaceControl;
353
+ Modal: InterfaceControl;
354
+ LinkBitmojiCallToAction: InterfaceControl;
355
+ SnapButton: InterfaceControl;
356
+ PlayButton: InterfaceControl;
357
+ All: InterfaceControl;
358
+ ExitFullScreenButton: InterfaceControl;
359
+ MemoriesButton: InterfaceControl;
360
+ LensAttachmentButton: InterfaceControl;
361
+ ReverseCamera: InterfaceControl;
362
+ };
363
+ InterfaceAction: {
364
+ EnableHighlight: InterfaceAction;
365
+ DisableHighlight: InterfaceAction;
366
+ Trigger: InterfaceAction;
367
+ Show: InterfaceAction;
368
+ Hide: InterfaceAction;
369
+ };
370
+ ExternalMediaOrientation: {
371
+ CW0: ExternalMediaOrientation;
372
+ CW90: ExternalMediaOrientation;
373
+ CW180: ExternalMediaOrientation;
374
+ CW270: ExternalMediaOrientation;
375
+ };
376
+ ErrorType: {
377
+ LensDeserialization: ErrorType;
378
+ Validation: ErrorType;
379
+ Uncategorized: ErrorType;
380
+ LensExecution: ErrorType;
381
+ Abort: ErrorType;
382
+ };
383
+ initialize: (config: InitializeInput) => void;
384
+ processFrame: (config: ProcessFrameInput) => void;
385
+ addLens: (config: AddLensInput) => void;
386
+ replaceLenses: (config: ReplaceLensesInput) => void;
387
+ removeLens: (config: RemoveLensInput) => void;
388
+ clearAllLenses: (config: ClearAllLensesInput) => void;
389
+ teardown: (config: TeardownInput) => void;
390
+ useMediaElement: (config: UseMediaElementInput) => void;
391
+ setFPSLimit: (config: SetFpsLimitInput) => void;
392
+ setRenderLoopMode: (config: SetRenderLoopInput) => void;
393
+ getCoreVersion: () => number;
394
+ playCanvas: (input: PlayCanvasInput) => void;
395
+ pauseCanvas: (input: PauseCanvasInput) => void;
396
+ getOutputCanvases: () => GetOutputCanvasesOutput;
397
+ setRenderSize: (input: SetRenderSizeInput) => void;
398
+ startProfiling: () => void;
399
+ endProfiling: () => void;
400
+ setInputTransform: (config: SetInputTransformInput) => void;
401
+ registerUriListener: (scheme: string, route: string, listener: UriListener) => void;
402
+ provideUriResponse: (requestId: string, response: UriResponse) => void;
403
+ setRemoteAssetsProvider: (provider: SetRemoteAssetsProviderInput) => void;
404
+ provideRemoteAssetsResponse: (assetResponse: ProvideRemoteAssetsResponseInput) => void;
405
+ registerShowHintCallback: (callback: ShowHintCallback) => void;
406
+ registerHideHintCallback: (callback: HideHintCallback) => void;
407
+ registerSavePersistentStoreCallback: (callback: SavePersistentStoreCallback) => void;
408
+ imageToYuvBuffer: (config: ImageToYuvBufferInput) => void;
409
+ yuvBufferToBitmap: (config: YuvBufferToBitmapInput) => void;
410
+ setOnFrameProcessedCallback: (config: SetOnFrameProcessedInput) => void;
411
+ setInterfaceControlVisibility: (config: SetInterfaceControlVisibilityInput) => void;
412
+ handleClientInterfaceAction: (config: HandleClientInterfaceActionInput) => void;
413
+ provideExternalImage: (config: ProvideExternalImageInput) => void;
414
+ provideExternalVideo: (config: ProvideExternalVideoInput) => void;
415
+ setScreenDimmingRequestHandler: (callback: ScreenDimmingRequestHandler) => void;
416
+ setClientInterfaceRequestHandler: (callback: ClientInterfaceRequestHandler) => void;
417
+ setPreloadedConfiguration: (config: SetPreloadedConfigurationInput) => void;
418
+ setAllSoundsMuted: (config: SetAllSoundsMutedInput) => void;
419
+ setDeviceClass: (config: SetDeviceClassInput) => void;
420
+ setSystemFonts: (config: SetSystemFontsInput) => void;
421
+ setAudioParameters: (config: SetAudioParametersInput) => void;
422
+ processAudioSampleBuffer: (config: ProcessAudioSampleBufferInput) => void;
423
+ }
424
+ declare global {
425
+ function createLensesModule(module: InitialEmscriptenModule): Promise<InitialEmscriptenModule & LensCoreModule>;
426
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generated-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../src/lens-core-module/generated-types.ts"],"names":[],"mappings":"","sourcesContent":["export type DefaultEventHandler = (...data: any[]) => void;\n\nexport type DefaultErrorHandler = (err: LensCoreError) => void;\n\nexport type LensCoreEnumValue = { value: number };\n\nexport type GetOutputCanvasesOutput = Record<number, HTMLCanvasElement>;\n\nexport type SetRenderSizeInput = SetRenderSizeMatchInputResolutionInput | SetRenderSizeExplicitInput;\n\nexport type SetRemoteAssetsProviderInput = (assetDescriptor: AssetDescriptor) => void;\n\nexport type ContentType =\n | \"text/plain\"\n | \"text/html\"\n | \"application/json\"\n | \"application/octet-stream\"\n | \"application/x-protobuf\"\n | \"application/grpc\";\n\nexport type SavePersistentStoreCallback = (id: string, data: ArrayBuffer) => void;\n\nexport type ShowHintCallback = (effectId: string, hintId: string) => void;\n\nexport type HideHintCallback = (effectId: string) => void;\n\nexport type ReceiveInstanceCallback = (instance: WebAssembly.Instance, module: WebAssembly.Module) => void;\n\nexport type AssetType = LensCoreEnumValue;\n\nexport type CanvasType = LensCoreEnumValue;\n\nexport type RenderLoopMode = LensCoreEnumValue;\n\nexport type LensApiVisibility = LensCoreEnumValue;\n\nexport type DeviceClass = LensCoreEnumValue;\n\nexport type UserDataAccess = LensCoreEnumValue;\n\nexport type InterfaceControl = LensCoreEnumValue;\n\nexport type InterfaceAction = LensCoreEnumValue;\n\nexport type ExternalMediaOrientation = LensCoreEnumValue;\n\nexport type ErrorType = LensCoreEnumValue;\n\nexport type Uri = `${string}://${string}`;\n\nexport type Dimensions = { width: number; height: number };\n\nexport type Size2D = { width: number; height: number };\n\nexport type Vec2D = { x: number; y: number };\n\nexport type Rect = { origin: Vec2D; size: Size2D };\n\nexport interface ClearAllLensesInput {\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface OnFrameProcessedParam {\n processingTimeMs: number;\n}\n\nexport interface InitializeInput {\n canvas?: HTMLCanvasElement | string;\n outputResolution?: Dimensions;\n showFpsPanel?: boolean;\n shouldUseWorker?: boolean;\n onFrameProcessed?: (arg: OnFrameProcessedParam) => void;\n onFailure?: DefaultErrorHandler;\n onSuccess?: DefaultEventHandler;\n exceptionHandler?: (error: LensCoreError) => void;\n}\n\nexport interface PlayCanvasInput {\n type: CanvasType;\n onReady?: () => void;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface PauseCanvasInput {\n type: CanvasType;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetFpsLimitInput {\n fps: number;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetInputTransformInput {\n matrix: Float32Array | ArrayBuffer;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetOnFrameProcessedInput {\n onFrameProcessed: (arg: OnFrameProcessedParam) => void;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetRenderSizeMatchInputResolutionInput {\n mode: \"matchInputResolution\";\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetRenderSizeExplicitInput {\n mode: \"explicit\";\n target: Dimensions;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetRenderLoopInput {\n mode: RenderLoopMode;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface TeardownInput {\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultEventHandler;\n}\n\nexport interface ReplayTrackingDataInput {\n buffer: Uint8Array | ArrayBuffer;\n}\n\nexport interface UseMediaElementInput {\n media?: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | MediaStream;\n requestWebcam?: boolean;\n startOnFrontCamera?: boolean;\n mirrorMedia?: boolean;\n pauseExistingMedia?: boolean;\n autoplayNewMedia?: boolean;\n autoplayPreviewCanvas?: boolean;\n useManualFrameProcessing?: boolean;\n replayTrackingData?: ReplayTrackingDataInput;\n onFailure?: DefaultErrorHandler;\n onSuccess?: DefaultEventHandler;\n}\n\nexport interface UriListener {\n handleRequest: (request: UriRequest) => void;\n cancelRequest?: (request: UriCancelRequest) => void;\n}\n\nexport interface UriRequest {\n uri: Uri;\n identifier: string;\n method: \"GET\" | \"POST\";\n contentType: ContentType;\n data: ArrayBuffer;\n}\n\nexport interface UriResponse {\n code: number;\n description: string;\n contentType: ContentType;\n data: ArrayBuffer;\n metadata?: Record<string, string>;\n}\n\nexport interface UriCancelRequest {\n uri: Uri;\n requestId: string;\n}\n\nexport interface LensDescriptor {\n lensId: string;\n lensChecksum: string;\n lensPath?: string;\n lensDataBuffer?: Uint8Array | ArrayBuffer;\n onTurnOn?: DefaultEventHandler;\n onTurnOff?: DefaultEventHandler;\n onFirstFrameProcessed?: DefaultEventHandler;\n onResourcesLoaded?: DefaultEventHandler;\n launchData?: Uint8Array | ArrayBuffer;\n apiVisibility?: LensApiVisibility;\n publicApiUserDataAccess?: UserDataAccess;\n}\n\nexport interface AddLensInput extends LensDescriptor {\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface ReplaceLensesInput {\n lenses: LensDescriptor | Array<LensDescriptor>;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface RemoveLensInput {\n lensId: string;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface AssetDescriptor {\n assetId: string;\n assetType: AssetType;\n avatarId?: string;\n effectId?: string;\n}\n\nexport interface ProvideRemoteAssetsResponseInput {\n assetId: string;\n assetType: AssetType;\n assetBuffer?: ArrayBuffer;\n assetChecksum?: string;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface ProcessFrameInput {\n inputFrame: ImageBitmap | HTMLCanvasElement | HTMLImageElement | VideoFrame;\n timestampMillis: number;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface LensCoreError extends Error {\n otherExceptions?: Array<Error>;\n cause: { type: ErrorType; metadata?: any };\n}\n\nexport interface ImageToYuvBufferInput {\n image: Uint8Array | ArrayBuffer | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap;\n width: number;\n height: number;\n outputBuffer?: Uint8Array | ArrayBuffer;\n onSuccess: (buffer: ArrayBuffer) => void;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface YuvBufferToBitmapInput {\n buffer: Uint8Array | ArrayBuffer;\n width: number;\n height: number;\n targetWidth?: number;\n targetHeight?: number;\n preserveCanvasState?: boolean;\n allowBufferTransfer?: boolean;\n onSuccess: (bitmap: ImageBitmap) => void;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetInterfaceControlVisibilityInput {\n effectId: string;\n interfaceControl: InterfaceControl;\n visibility: boolean;\n}\n\nexport interface HandleClientInterfaceActionInput {\n effectId: string;\n interfaceControl: InterfaceControl;\n interfaceAction: InterfaceAction;\n}\n\nexport interface ProvideExternalImageInput {\n data: Uint8Array | ArrayBuffer;\n orientation: ExternalMediaOrientation;\n faceRects?: Array<Rect>;\n}\n\nexport interface ProvideExternalVideoInput {\n data: Uint8Array | ArrayBuffer;\n orientation: ExternalMediaOrientation;\n relStartPosition?: number;\n relEndPosition?: number;\n volume?: number;\n}\n\nexport interface ScreenDimmingRequestInput {\n effectId: string;\n enabled: boolean;\n}\n\nexport type ScreenDimmingRequestHandler = (config: ScreenDimmingRequestInput) => void;\n\nexport interface ClientInterfaceData {\n HeaderId?: string;\n DescriptionId?: string;\n FaceFilteringEnabled?: \"0\" | \"1\";\n FaceFilteringMultipleFaces?: \"0\" | \"1\";\n ImageEnabled?: \"0\" | \"1\";\n VideoEnabled?: \"0\" | \"1\";\n}\n\nexport interface ClientInterfaceRequestInput {\n effectId: string;\n interfaceControl: InterfaceControl;\n interfaceAction: InterfaceAction;\n data: ClientInterfaceData;\n}\n\nexport type ClientInterfaceRequestHandler = (config: ClientInterfaceRequestInput) => void;\n\nexport interface LensCoreConfig {\n configId: string;\n value:\n | { stringValue: string }\n | { boolValue: boolean }\n | { intValue: number }\n | { longValue: number }\n | { floatValue: number }\n | {\n anyValue: {\n typeUrl: string;\n value: Uint8Array | ArrayBuffer;\n };\n };\n}\n\nexport type SetPreloadedConfigurationInput = Array<LensCoreConfig>;\n\nexport interface SetAllSoundsMutedInput {\n muted: boolean;\n fade: boolean;\n}\n\nexport interface SetDeviceClassInput {\n deviceClass: DeviceClass;\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SetAudioParametersInput {\n parameters: {\n numChannels?: number;\n sampleRate?: number;\n };\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface SystemFont {\n name: string;\n data: Uint8Array | ArrayBuffer;\n}\n\nexport interface SetSystemFontsInput {\n fonts: SystemFont[];\n}\nexport interface ProcessAudioSampleBufferInput {\n input: Float32Array[] | ArrayBuffer[];\n output?: Float32Array[] | ArrayBuffer[];\n onSuccess?: DefaultEventHandler;\n onFailure?: DefaultErrorHandler;\n}\n\nexport interface InitialEmscriptenModule {\n mainScriptUrlOrBlob: string;\n compiledModule?: WebAssembly.Module;\n pthreadWorkerScriptUrl?: string;\n instantiateWasm?: (importObject: WebAssembly.Imports, receiveInstance: ReceiveInstanceCallback) => void;\n print?: (text: string) => void;\n printErr?: (text: string) => void;\n}\n\nexport interface LensCoreModule extends InitialEmscriptenModule {\n AssetType: {\n RemoteMediaByUrl: AssetType;\n DeviceDependent: AssetType;\n Static: AssetType;\n URL: AssetType;\n BitmojiDynamicAsset: AssetType;\n };\n\n CanvasType: {\n None: CanvasType;\n Preview: CanvasType;\n Capture: CanvasType;\n All: CanvasType;\n };\n\n LensApiVisibility: {\n Dev: LensApiVisibility;\n Private: LensApiVisibility;\n Public: LensApiVisibility;\n };\n\n DeviceClass: {\n Undefined: DeviceClass;\n BarelyWorking: DeviceClass;\n LowEnd: DeviceClass;\n MidEnd: DeviceClass;\n HighEnd: DeviceClass;\n };\n\n RenderLoopMode: {\n SetTimeout: RenderLoopMode;\n RequestAnimationFrame: RenderLoopMode;\n };\n\n UserDataAccess: {\n Restricted: UserDataAccess;\n Unrestricted: UserDataAccess;\n };\n\n InterfaceControl: {\n ToggleCameraButton: InterfaceControl;\n ImagePicker: InterfaceControl;\n Hint: InterfaceControl;\n Modal: InterfaceControl;\n LinkBitmojiCallToAction: InterfaceControl;\n SnapButton: InterfaceControl;\n PlayButton: InterfaceControl;\n All: InterfaceControl;\n ExitFullScreenButton: InterfaceControl;\n MemoriesButton: InterfaceControl;\n LensAttachmentButton: InterfaceControl;\n ReverseCamera: InterfaceControl;\n };\n\n InterfaceAction: {\n EnableHighlight: InterfaceAction;\n DisableHighlight: InterfaceAction;\n Trigger: InterfaceAction;\n Show: InterfaceAction;\n Hide: InterfaceAction;\n };\n\n ExternalMediaOrientation: {\n CW0: ExternalMediaOrientation;\n CW90: ExternalMediaOrientation;\n CW180: ExternalMediaOrientation;\n CW270: ExternalMediaOrientation;\n };\n\n ErrorType: {\n LensDeserialization: ErrorType;\n Validation: ErrorType;\n Uncategorized: ErrorType;\n LensExecution: ErrorType;\n Abort: ErrorType;\n };\n\n initialize: (config: InitializeInput) => void;\n processFrame: (config: ProcessFrameInput) => void;\n addLens: (config: AddLensInput) => void;\n replaceLenses: (config: ReplaceLensesInput) => void;\n removeLens: (config: RemoveLensInput) => void;\n clearAllLenses: (config: ClearAllLensesInput) => void;\n teardown: (config: TeardownInput) => void;\n useMediaElement: (config: UseMediaElementInput) => void;\n setFPSLimit: (config: SetFpsLimitInput) => void;\n setRenderLoopMode: (config: SetRenderLoopInput) => void;\n getCoreVersion: () => number;\n playCanvas: (input: PlayCanvasInput) => void;\n pauseCanvas: (input: PauseCanvasInput) => void;\n getOutputCanvases: () => GetOutputCanvasesOutput;\n setRenderSize: (input: SetRenderSizeInput) => void;\n startProfiling: () => void;\n endProfiling: () => void;\n setInputTransform: (config: SetInputTransformInput) => void;\n registerUriListener: (scheme: string, route: string, listener: UriListener) => void;\n provideUriResponse: (requestId: string, response: UriResponse) => void;\n setRemoteAssetsProvider: (provider: SetRemoteAssetsProviderInput) => void;\n provideRemoteAssetsResponse: (assetResponse: ProvideRemoteAssetsResponseInput) => void;\n registerShowHintCallback: (callback: ShowHintCallback) => void;\n registerHideHintCallback: (callback: HideHintCallback) => void;\n registerSavePersistentStoreCallback: (callback: SavePersistentStoreCallback) => void;\n imageToYuvBuffer: (config: ImageToYuvBufferInput) => void;\n yuvBufferToBitmap: (config: YuvBufferToBitmapInput) => void;\n setOnFrameProcessedCallback: (config: SetOnFrameProcessedInput) => void;\n setInterfaceControlVisibility: (config: SetInterfaceControlVisibilityInput) => void;\n handleClientInterfaceAction: (config: HandleClientInterfaceActionInput) => void;\n provideExternalImage: (config: ProvideExternalImageInput) => void;\n provideExternalVideo: (config: ProvideExternalVideoInput) => void;\n setScreenDimmingRequestHandler: (callback: ScreenDimmingRequestHandler) => void;\n setClientInterfaceRequestHandler: (callback: ClientInterfaceRequestHandler) => void;\n setPreloadedConfiguration: (config: SetPreloadedConfigurationInput) => void;\n setAllSoundsMuted: (config: SetAllSoundsMutedInput) => void;\n setDeviceClass: (config: SetDeviceClassInput) => void;\n setSystemFonts: (config: SetSystemFontsInput) => void;\n setAudioParameters: (config: SetAudioParametersInput) => void;\n processAudioSampleBuffer: (config: ProcessAudioSampleBufferInput) => void;\n}\n\ndeclare global {\n // This function is provided by the Emscripten glue file and responsible for initialization, will be fullfiled\n // when everything is loaded and it is safe to call compiled functions\n // eslint-disable-next-line max-len\n // https://emscripten.org/docs/getting_started/FAQ.html#how-can-i-tell-when-the-page-is-fully-loaded-and-it-is-safe-to-call-compiled-functions\n // Function is defined by the LensCore web assembly\n // eslint-disable-next-line max-len\n // https://github.sc-corp.net/Snapchat/LensCore/blob/6715da8c877d593e4fe133f4145eb3022204525d/Platforms/WebAssembly/LookserySDK/CMakeLists.txt#L65\n function createLensesModule(module: InitialEmscriptenModule): Promise<InitialEmscriptenModule & LensCoreModule>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./loader";
2
+ export * from "./generated-types";
@@ -0,0 +1,3 @@
1
+ export * from "./loader";
2
+ export * from "./generated-types";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lens-core-module/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./loader\";\nexport * from \"./generated-types\";\n"]}
@@ -0,0 +1 @@
1
+ export * from "./lensCoreFactory";
@@ -0,0 +1,2 @@
1
+ export * from "./lensCoreFactory";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lens-core-module/loader/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./lensCoreFactory\";\n"]}
@@ -0,0 +1,30 @@
1
+ import { CameraKitConfiguration } from "../../configuration";
2
+ import { FetchHandler } from "../../handlers/defaultFetchHandler";
3
+ import { InitialEmscriptenModule, LensCoreModule } from "../generated-types";
4
+ /**
5
+ * Returns a list of URLs for resources which will be fetched during {@link bootstrapCameraKit}.
6
+ *
7
+ * When CameraKit is used on a website, these URLs much be reachable in order for CameraKit to be successfully
8
+ * bootstrapped.
9
+ *
10
+ * @param endpointOverride Optional endpoint override to load the assets from.
11
+ * @returns An array of asset URLs.
12
+ *
13
+ * @category Bootstrapping and Configuration
14
+ */
15
+ export declare function getRequiredBootstrapURLs(endpointOverride?: string): Promise<string[]>;
16
+ /**
17
+ * This component is responsible for:
18
+ * 1) Loading LensCore WebAssembly (WASM) assets
19
+ * 2) Using the WASM assets to initialize the LensCore WASM module
20
+ *
21
+ * By default, WASM assets will be loaded from the Bolt CDN – but if `endpoint` is provided, assets will be loaded
22
+ * using it as a base URL.
23
+ *
24
+ * @internal
25
+ */
26
+ export declare const lensCoreFactory: {
27
+ (args_0: FetchHandler<Response>, args_1: CameraKitConfiguration): Promise<InitialEmscriptenModule & LensCoreModule>;
28
+ token: "lensCore";
29
+ dependencies: readonly ["defaultFetchHandler", "configuration"];
30
+ };
@@ -0,0 +1,121 @@
1
+ import { __awaiter } from "tslib";
2
+ import { simd, exceptions } from "wasm-feature-detect";
3
+ import lensCoreWasm from "../../lensCoreWasmVersions.json";
4
+ import { loadScript } from "../../common";
5
+ import { configurationToken } from "../../configuration";
6
+ import { Injectable } from "../../dependency-injection/Injectable";
7
+ import { defaultFetchHandlerFactory } from "../../handlers/defaultFetchHandler";
8
+ import { getLogger } from "../../logger/logger";
9
+ import { cameraKitUserAgent } from "../../common/cameraKitUserAgent";
10
+ const logger = getLogger("lensCoreFactory");
11
+ const wasmAssets = ["LensCoreWebAssembly.js", "LensCoreWebAssembly.wasm"];
12
+ const findMatch = (regex, strings) => strings.find((s) => regex.test(s));
13
+ const PlatformFeatures = {
14
+ Default: 0,
15
+ Simd: 0b01,
16
+ Exceptions: 0b10,
17
+ };
18
+ const platformFeaturesToFlavour = {
19
+ [PlatformFeatures.Exceptions | PlatformFeatures.Simd]: "rel-simd-neh",
20
+ [PlatformFeatures.Simd]: "release-simd",
21
+ [PlatformFeatures.Exceptions]: "rel-neh",
22
+ [PlatformFeatures.Default]: "release",
23
+ };
24
+ /**
25
+ * Returns a list of URLs for resources which will be fetched during {@link bootstrapCameraKit}.
26
+ *
27
+ * When CameraKit is used on a website, these URLs much be reachable in order for CameraKit to be successfully
28
+ * bootstrapped.
29
+ *
30
+ * @param endpointOverride Optional endpoint override to load the assets from.
31
+ * @returns An array of asset URLs.
32
+ *
33
+ * @category Bootstrapping and Configuration
34
+ */
35
+ export function getRequiredBootstrapURLs(endpointOverride) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ // If we have an endpoint override, remove trailing `/` so we can construct a valid URL.
38
+ const endpoint = endpointOverride === null || endpointOverride === void 0 ? void 0 : endpointOverride.replace(/[\/]+$/, "");
39
+ let [simdFeature, exceptionsFeature] = yield Promise.all([
40
+ simd().then((supported) => (supported ? PlatformFeatures.Simd : PlatformFeatures.Default)),
41
+ exceptions().then((supported) => (supported ? PlatformFeatures.Exceptions : PlatformFeatures.Default)),
42
+ ]);
43
+ // Although Safari 16.4 reports SIMD support, LensCore encounters rendering bugs when using SIMD in Safari 16.4.
44
+ // Therefore, we have made the decision to disable SIMD for now until Safari stabilizes the feature.
45
+ const { brand } = cameraKitUserAgent.browser;
46
+ if (brand === "Safari")
47
+ simdFeature = PlatformFeatures.Default;
48
+ const flavor = platformFeaturesToFlavour[simdFeature | exceptionsFeature];
49
+ const version = lensCoreWasm.version;
50
+ const buildNumber = lensCoreWasm.buildNumber;
51
+ return wasmAssets.map((asset) => {
52
+ if (endpoint)
53
+ return `${endpoint}/${asset}`;
54
+ const { origin, pathname, search } = new URL(lensCoreWasm.baseUrl);
55
+ return `${origin}${pathname}/${version}/${buildNumber}/${flavor}/${asset}${search}`;
56
+ });
57
+ });
58
+ }
59
+ /**
60
+ * This component is responsible for:
61
+ * 1) Loading LensCore WebAssembly (WASM) assets
62
+ * 2) Using the WASM assets to initialize the LensCore WASM module
63
+ *
64
+ * By default, WASM assets will be loaded from the Bolt CDN – but if `endpoint` is provided, assets will be loaded
65
+ * using it as a base URL.
66
+ *
67
+ * @internal
68
+ */
69
+ export const lensCoreFactory = Injectable("lensCore", [defaultFetchHandlerFactory.token, configurationToken], (handler, { lensCoreOverrideUrls, wasmEndpointOverride }) => __awaiter(void 0, void 0, void 0, function* () {
70
+ var _a, _b;
71
+ let lensCoreJS;
72
+ let lensCoreWASM;
73
+ if (lensCoreOverrideUrls) {
74
+ lensCoreJS = lensCoreOverrideUrls.js;
75
+ lensCoreWASM = lensCoreOverrideUrls.wasm;
76
+ }
77
+ else {
78
+ const endpointOverride = wasmEndpointOverride !== null && wasmEndpointOverride !== void 0 ? wasmEndpointOverride : undefined;
79
+ const assetURLs = yield getRequiredBootstrapURLs(endpointOverride);
80
+ lensCoreJS = (_a = findMatch(/\.js/, assetURLs)) !== null && _a !== void 0 ? _a : "";
81
+ lensCoreWASM = (_b = findMatch(/\.wasm/, assetURLs)) !== null && _b !== void 0 ? _b : "";
82
+ if (!lensCoreJS || !lensCoreWASM) {
83
+ throw new Error(`Cannot fetch required LensCore assets. Either the JS or WASM filename is missing from ` +
84
+ `this list: ${assetURLs}`);
85
+ }
86
+ // Fetching here and creating an Object URL lets LensCore optimized loading itself in a WebWorker,
87
+ // otherwise the glue script would need to be downloaded again.
88
+ const glueScript = yield handler(lensCoreJS).then((r) => r.blob());
89
+ lensCoreJS = URL.createObjectURL(glueScript);
90
+ }
91
+ yield loadScript(lensCoreJS);
92
+ const lensCore = yield new Promise((resolve, reject) => {
93
+ let initialModule;
94
+ // will trigger WASM initialization and data loading,
95
+ // after completion it will be safe to call imported WASM functions
96
+ // More about emscripten initialization:
97
+ // eslint-disable-next-line max-len
98
+ // https://emscripten.org/docs/getting_started/FAQ.html?highlight=modularize#how-can-i-tell-when-the-page-is-fully-loaded-and-it-is-safe-to-call-compiled-functions
99
+ const moduleInit = globalThis.createLensesModule((initialModule = {
100
+ // url will be used for loading glue JS during Worker inialization
101
+ mainScriptUrlOrBlob: lensCoreJS,
102
+ // will be triggered by Emscripten during the initialization
103
+ instantiateWasm: (importObject, receiveInstance) => {
104
+ WebAssembly.instantiateStreaming(handler(lensCoreWASM), importObject)
105
+ .then(function ({ instance, module }) {
106
+ receiveInstance(instance, module);
107
+ // compiled module will be reused in Worker
108
+ initialModule.compiledModule = module;
109
+ resolve(moduleInit);
110
+ })
111
+ .catch(reject);
112
+ },
113
+ }));
114
+ });
115
+ // print warning if loaded version differs from hardcoded one
116
+ if (lensCoreWasm.version != `${lensCore.getCoreVersion()}`) {
117
+ logger.warn(`Loaded LensCore version (${lensCore.getCoreVersion()}) differs from expected one (${lensCoreWasm.version})`);
118
+ }
119
+ return lensCore;
120
+ }));
121
+ //# sourceMappingURL=lensCoreFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lensCoreFactory.js","sourceRoot":"","sources":["../../../src/lens-core-module/loader/lensCoreFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { simd, exceptions } from \"wasm-feature-detect\";\nimport lensCoreWasm from \"../../lensCoreWasmVersions.json\";\nimport { loadScript } from \"../../common\";\nimport { CameraKitConfiguration, configurationToken } from \"../../configuration\";\nimport { Injectable } from \"../../dependency-injection/Injectable\";\nimport { defaultFetchHandlerFactory, FetchHandler } from \"../../handlers/defaultFetchHandler\";\nimport { InitialEmscriptenModule, LensCoreModule } from \"../generated-types\";\nimport { getLogger } from \"../../logger/logger\";\nimport { cameraKitUserAgent } from \"../../common/cameraKitUserAgent\";\n\nconst logger = getLogger(\"lensCoreFactory\");\n\nconst wasmAssets = [\"LensCoreWebAssembly.js\", \"LensCoreWebAssembly.wasm\"];\n\nconst findMatch = (regex: RegExp, strings: string[]) => strings.find((s) => regex.test(s));\n\nconst PlatformFeatures = {\n Default: 0,\n Simd: 0b01,\n Exceptions: 0b10,\n};\n\nconst platformFeaturesToFlavour = {\n [PlatformFeatures.Exceptions | PlatformFeatures.Simd]: \"rel-simd-neh\",\n [PlatformFeatures.Simd]: \"release-simd\",\n [PlatformFeatures.Exceptions]: \"rel-neh\",\n [PlatformFeatures.Default]: \"release\",\n};\n\n/**\n * Returns a list of URLs for resources which will be fetched during {@link bootstrapCameraKit}.\n *\n * When CameraKit is used on a website, these URLs much be reachable in order for CameraKit to be successfully\n * bootstrapped.\n *\n * @param endpointOverride Optional endpoint override to load the assets from.\n * @returns An array of asset URLs.\n *\n * @category Bootstrapping and Configuration\n */\nexport async function getRequiredBootstrapURLs(endpointOverride?: string): Promise<string[]> {\n // If we have an endpoint override, remove trailing `/` so we can construct a valid URL.\n const endpoint = endpointOverride?.replace(/[\\/]+$/, \"\");\n\n let [simdFeature, exceptionsFeature] = await Promise.all([\n simd().then((supported) => (supported ? PlatformFeatures.Simd : PlatformFeatures.Default)),\n exceptions().then((supported) => (supported ? PlatformFeatures.Exceptions : PlatformFeatures.Default)),\n ]);\n\n // Although Safari 16.4 reports SIMD support, LensCore encounters rendering bugs when using SIMD in Safari 16.4.\n // Therefore, we have made the decision to disable SIMD for now until Safari stabilizes the feature.\n const { brand } = cameraKitUserAgent.browser;\n if (brand === \"Safari\") simdFeature = PlatformFeatures.Default;\n\n const flavor = platformFeaturesToFlavour[simdFeature | exceptionsFeature];\n\n const version = lensCoreWasm.version;\n const buildNumber = lensCoreWasm.buildNumber;\n return wasmAssets.map((asset) => {\n if (endpoint) return `${endpoint}/${asset}`;\n const { origin, pathname, search } = new URL(lensCoreWasm.baseUrl);\n return `${origin}${pathname}/${version}/${buildNumber}/${flavor}/${asset}${search}`;\n });\n}\n\n/**\n * This component is responsible for:\n * 1) Loading LensCore WebAssembly (WASM) assets\n * 2) Using the WASM assets to initialize the LensCore WASM module\n *\n * By default, WASM assets will be loaded from the Bolt CDN – but if `endpoint` is provided, assets will be loaded\n * using it as a base URL.\n *\n * @internal\n */\nexport const lensCoreFactory = Injectable(\n \"lensCore\",\n [defaultFetchHandlerFactory.token, configurationToken] as const,\n async (handler: FetchHandler, { lensCoreOverrideUrls, wasmEndpointOverride }: CameraKitConfiguration) => {\n let lensCoreJS: string;\n let lensCoreWASM: string;\n\n if (lensCoreOverrideUrls) {\n lensCoreJS = lensCoreOverrideUrls.js;\n lensCoreWASM = lensCoreOverrideUrls.wasm;\n } else {\n const endpointOverride = wasmEndpointOverride ?? undefined;\n const assetURLs = await getRequiredBootstrapURLs(endpointOverride);\n\n lensCoreJS = findMatch(/\\.js/, assetURLs) ?? \"\";\n lensCoreWASM = findMatch(/\\.wasm/, assetURLs) ?? \"\";\n\n if (!lensCoreJS || !lensCoreWASM) {\n throw new Error(\n `Cannot fetch required LensCore assets. Either the JS or WASM filename is missing from ` +\n `this list: ${assetURLs}`\n );\n }\n\n // Fetching here and creating an Object URL lets LensCore optimized loading itself in a WebWorker,\n // otherwise the glue script would need to be downloaded again.\n const glueScript = await handler(lensCoreJS).then((r) => r.blob());\n lensCoreJS = URL.createObjectURL(glueScript);\n }\n\n await loadScript(lensCoreJS);\n\n const lensCore = await new Promise<InitialEmscriptenModule & LensCoreModule>((resolve, reject) => {\n let initialModule: Partial<InitialEmscriptenModule>;\n // will trigger WASM initialization and data loading,\n // after completion it will be safe to call imported WASM functions\n // More about emscripten initialization:\n // eslint-disable-next-line max-len\n // https://emscripten.org/docs/getting_started/FAQ.html?highlight=modularize#how-can-i-tell-when-the-page-is-fully-loaded-and-it-is-safe-to-call-compiled-functions\n const moduleInit = globalThis.createLensesModule(\n (initialModule = {\n // url will be used for loading glue JS during Worker inialization\n mainScriptUrlOrBlob: lensCoreJS,\n // will be triggered by Emscripten during the initialization\n instantiateWasm: (importObject, receiveInstance) => {\n WebAssembly.instantiateStreaming(handler(lensCoreWASM), importObject)\n .then(function ({ instance, module }) {\n receiveInstance(instance, module);\n // compiled module will be reused in Worker\n initialModule.compiledModule = module;\n resolve(moduleInit);\n })\n .catch(reject);\n },\n })\n );\n });\n\n // print warning if loaded version differs from hardcoded one\n if (lensCoreWasm.version != `${lensCore.getCoreVersion()}`) {\n logger.warn(\n `Loaded LensCore version (${lensCore.getCoreVersion()}) differs from expected one (${\n lensCoreWasm.version\n })`\n );\n }\n\n return lensCore;\n }\n);\n"]}