@hexclave/shared 1.0.41 → 1.0.43

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 (1067) hide show
  1. package/dist/admin-interface-Bv8rBJo-.d.ts +379 -0
  2. package/dist/admin-interface-Bv8rBJo-.d.ts.map +1 -0
  3. package/dist/admin-metrics-DyW8_G82.d.ts +807 -0
  4. package/dist/admin-metrics-DyW8_G82.d.ts.map +1 -0
  5. package/dist/ai/image-limits.d.ts.map +1 -1
  6. package/dist/ai/image-limits.js +6 -7
  7. package/dist/ai/image-limits.js.map +1 -1
  8. package/dist/ai/llms/llms.d.ts.map +1 -1
  9. package/dist/ai/llms/llms.js +2 -4
  10. package/dist/ai/llms/llms.js.map +1 -1
  11. package/dist/ai/unified-prompts/reminders.js +2 -4
  12. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +2 -5
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +3 -6
  17. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  18. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +3 -6
  19. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  20. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +3 -6
  21. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  22. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +3 -6
  23. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  24. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +3 -6
  25. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  26. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  27. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +5 -6
  28. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  29. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -2
  30. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  31. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +3 -6
  32. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  33. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +3 -6
  34. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  35. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  36. package/dist/ai/unified-prompts/skill-site-prompt.js +2 -4
  37. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  38. package/dist/analytics-IjkAsefy.d.ts +14 -0
  39. package/dist/analytics-IjkAsefy.d.ts.map +1 -0
  40. package/dist/apps/apps-config.d.ts.map +1 -1
  41. package/dist/apps/apps-config.js +2 -3
  42. package/dist/apps/apps-config.js.map +1 -1
  43. package/dist/apps/apps-ui.d.ts +1 -2
  44. package/dist/apps/apps-ui.d.ts.map +1 -1
  45. package/dist/apps/apps-ui.js +4 -5
  46. package/dist/apps/apps-ui.js.map +1 -1
  47. package/dist/client-interface-CGrvUtX0.d.ts +447 -0
  48. package/dist/client-interface-CGrvUtX0.d.ts.map +1 -0
  49. package/dist/config/db-sync-mappings.js +2 -3
  50. package/dist/config/db-sync-mappings.js.map +1 -1
  51. package/dist/config/format.d.ts +2 -61
  52. package/dist/config/format.js +2 -192
  53. package/dist/config/format.js.map +1 -1
  54. package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  55. package/dist/config/migrate-catalogs-to-product-lines.js +2 -196
  56. package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -1
  57. package/dist/config/schema-fuzzer.test.js +18 -172
  58. package/dist/config/schema-fuzzer.test.js.map +1 -1
  59. package/dist/config/schema.d.ts +2 -2328
  60. package/dist/config/schema.js +6 -351
  61. package/dist/config/schema.js.map +1 -1
  62. package/dist/config-authoring.d.ts +1 -1
  63. package/dist/config-authoring.d.ts.map +1 -1
  64. package/dist/config-authoring.js +2 -3
  65. package/dist/config-authoring.js.map +1 -1
  66. package/dist/config-authoring.test.js +1 -3
  67. package/dist/config-authoring.test.js.map +1 -1
  68. package/dist/config-eval.d.ts.map +1 -1
  69. package/dist/config-eval.js +4 -46
  70. package/dist/config-eval.js.map +1 -1
  71. package/dist/config-rendering.d.ts.map +1 -1
  72. package/dist/config-rendering.js +2 -48
  73. package/dist/config-rendering.js.map +1 -1
  74. package/dist/connected-accounts-D5CKe50A.d.ts +67 -0
  75. package/dist/connected-accounts-D5CKe50A.d.ts.map +1 -0
  76. package/dist/contact-channels-DW8yQxlc.d.ts +180 -0
  77. package/dist/contact-channels-DW8yQxlc.d.ts.map +1 -0
  78. package/dist/country-codes-CRWDroBE.d.ts +11 -0
  79. package/dist/country-codes-CRWDroBE.d.ts.map +1 -0
  80. package/dist/crud-CqmEW9s6.d.ts +98 -0
  81. package/dist/crud-CqmEW9s6.d.ts.map +1 -0
  82. package/dist/crud.d.ts +2 -98
  83. package/dist/crud.js +3 -71
  84. package/dist/crud.js.map +1 -1
  85. package/dist/currency-constants-Cq_q8twn.d.ts +45 -0
  86. package/dist/currency-constants-Cq_q8twn.d.ts.map +1 -0
  87. package/dist/current-user-Dvf8Ttjo.d.ts +284 -0
  88. package/dist/current-user-Dvf8Ttjo.d.ts.map +1 -0
  89. package/dist/dates-B6ne9iOR.d.ts +23 -0
  90. package/dist/dates-B6ne9iOR.d.ts.map +1 -0
  91. package/dist/email-outbox-BVqBaXpn.d.ts +1464 -0
  92. package/dist/{interface/crud/email-outbox.d.ts.map → email-outbox-BVqBaXpn.d.ts.map} +1 -1
  93. package/dist/emails-Ba4yEaCS.d.ts +40 -0
  94. package/dist/emails-Ba4yEaCS.d.ts.map +1 -0
  95. package/dist/errors-Cl-RUyed.d.ts +238 -0
  96. package/dist/errors-Cl-RUyed.d.ts.map +1 -0
  97. package/dist/esm/ai/image-limits.d.ts.map +1 -1
  98. package/dist/esm/ai/image-limits.js +5 -5
  99. package/dist/esm/ai/image-limits.js.map +1 -1
  100. package/dist/esm/ai/llms/llms.d.ts +1 -1
  101. package/dist/esm/ai/llms/llms.d.ts.map +1 -1
  102. package/dist/esm/ai/llms/llms.js +1 -2
  103. package/dist/esm/ai/llms/llms.js.map +1 -1
  104. package/dist/esm/ai/unified-prompts/reminders.js +1 -2
  105. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  106. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  107. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +25 -28
  108. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  109. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +1 -2
  110. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  111. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +1 -2
  112. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  113. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +1 -2
  114. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  115. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +1 -2
  116. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  117. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +1 -2
  118. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  119. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  120. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +2 -3
  121. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  122. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -1
  123. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  124. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +1 -2
  125. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  126. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +1 -2
  127. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  128. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  129. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +1 -2
  130. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  131. package/dist/esm/apps/apps-config.d.ts.map +1 -1
  132. package/dist/esm/apps/apps-config.js +1 -1
  133. package/dist/esm/apps/apps-config.js.map +1 -1
  134. package/dist/esm/apps/apps-ui.d.ts +2 -3
  135. package/dist/esm/apps/apps-ui.d.ts.map +1 -1
  136. package/dist/esm/apps/apps-ui.js +2 -3
  137. package/dist/esm/apps/apps-ui.js.map +1 -1
  138. package/dist/esm/config/db-sync-mappings.js +1 -1
  139. package/dist/esm/config/db-sync-mappings.js.map +1 -1
  140. package/dist/esm/config/format.d.ts +1 -1
  141. package/dist/esm/config/format.d.ts.map +1 -1
  142. package/dist/esm/config/format.js +1 -190
  143. package/dist/esm/config/format.js.map +1 -1
  144. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  145. package/dist/esm/config/migrate-catalogs-to-product-lines.js +1 -194
  146. package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -1
  147. package/dist/esm/config/schema-fuzzer.test.js +20 -173
  148. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  149. package/dist/esm/config/schema.d.ts +249 -250
  150. package/dist/esm/config/schema.d.ts.map +1 -1
  151. package/dist/esm/config/schema.js +2 -347
  152. package/dist/esm/config/schema.js.map +1 -1
  153. package/dist/esm/config-authoring.d.ts +1 -1
  154. package/dist/esm/config-authoring.d.ts.map +1 -1
  155. package/dist/esm/config-authoring.js +1 -1
  156. package/dist/esm/config-authoring.js.map +1 -1
  157. package/dist/esm/config-authoring.test.js +2 -3
  158. package/dist/esm/config-authoring.test.js.map +1 -1
  159. package/dist/esm/config-eval.d.ts +1 -1
  160. package/dist/esm/config-eval.d.ts.map +1 -1
  161. package/dist/esm/config-eval.js +1 -43
  162. package/dist/esm/config-eval.js.map +1 -1
  163. package/dist/esm/config-rendering.d.ts.map +1 -1
  164. package/dist/esm/config-rendering.js +1 -46
  165. package/dist/esm/config-rendering.js.map +1 -1
  166. package/dist/esm/crud.d.ts +1 -1
  167. package/dist/esm/crud.d.ts.map +1 -1
  168. package/dist/esm/crud.js +2 -69
  169. package/dist/esm/crud.js.map +1 -1
  170. package/dist/esm/helpers/emails.js +1 -2
  171. package/dist/esm/helpers/emails.js.map +1 -1
  172. package/dist/esm/helpers/init-prompt.d.ts.map +1 -1
  173. package/dist/esm/helpers/init-prompt.js +1 -2
  174. package/dist/esm/helpers/init-prompt.js.map +1 -1
  175. package/dist/esm/helpers/password.d.ts +1 -1
  176. package/dist/esm/helpers/password.d.ts.map +1 -1
  177. package/dist/esm/helpers/password.js +1 -2
  178. package/dist/esm/helpers/password.js.map +1 -1
  179. package/dist/esm/helpers/production-mode.d.ts +1 -1
  180. package/dist/esm/helpers/production-mode.d.ts.map +1 -1
  181. package/dist/esm/helpers/production-mode.js +1 -2
  182. package/dist/esm/helpers/production-mode.js.map +1 -1
  183. package/dist/esm/helpers/support-sla.d.ts.map +1 -1
  184. package/dist/esm/helpers/support-sla.js +1 -1
  185. package/dist/esm/helpers/support-sla.js.map +1 -1
  186. package/dist/esm/helpers/support-sla.test.js +2 -3
  187. package/dist/esm/helpers/support-sla.test.js.map +1 -1
  188. package/dist/esm/helpers/vault/client-side.d.ts.map +1 -1
  189. package/dist/esm/helpers/vault/client-side.js +1 -20
  190. package/dist/esm/helpers/vault/client-side.js.map +1 -1
  191. package/dist/esm/helpers/vault/server-side.js +1 -2
  192. package/dist/esm/helpers/vault/server-side.js.map +1 -1
  193. package/dist/esm/hooks/use-async-callback.d.ts.map +1 -1
  194. package/dist/esm/hooks/use-async-callback.js +1 -2
  195. package/dist/esm/hooks/use-async-callback.js.map +1 -1
  196. package/dist/esm/hooks/use-async-external-store.d.ts +1 -1
  197. package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -1
  198. package/dist/esm/hooks/use-async-external-store.js +1 -2
  199. package/dist/esm/hooks/use-async-external-store.js.map +1 -1
  200. package/dist/esm/hooks/use-hash.js +1 -2
  201. package/dist/esm/hooks/use-hash.js.map +1 -1
  202. package/dist/esm/hooks/use-hover.d.ts.map +1 -1
  203. package/dist/esm/hooks/use-hover.js +1 -2
  204. package/dist/esm/hooks/use-hover.js.map +1 -1
  205. package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -1
  206. package/dist/esm/hooks/use-strict-memo.js +1 -70
  207. package/dist/esm/hooks/use-strict-memo.js.map +1 -1
  208. package/dist/esm/index.d.ts +4 -4
  209. package/dist/esm/index.js +1 -2
  210. package/dist/esm/interface/admin-interface.d.ts +19 -19
  211. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  212. package/dist/esm/interface/admin-interface.js +1 -2
  213. package/dist/esm/interface/admin-interface.js.map +1 -1
  214. package/dist/esm/interface/admin-metrics.d.ts +11 -11
  215. package/dist/esm/interface/admin-metrics.d.ts.map +1 -1
  216. package/dist/esm/interface/admin-metrics.js +1 -2
  217. package/dist/esm/interface/admin-metrics.js.map +1 -1
  218. package/dist/esm/interface/client-interface.d.ts +22 -22
  219. package/dist/esm/interface/client-interface.d.ts.map +1 -1
  220. package/dist/esm/interface/client-interface.js +31 -15
  221. package/dist/esm/interface/client-interface.js.map +1 -1
  222. package/dist/esm/interface/client-interface.test.js +84 -13
  223. package/dist/esm/interface/client-interface.test.js.map +1 -1
  224. package/dist/esm/interface/conversations.d.ts +33 -33
  225. package/dist/esm/interface/conversations.d.ts.map +1 -1
  226. package/dist/esm/interface/conversations.js +1 -2
  227. package/dist/esm/interface/conversations.js.map +1 -1
  228. package/dist/esm/interface/crud/analytics.d.ts.map +1 -1
  229. package/dist/esm/interface/crud/analytics.js +1 -1
  230. package/dist/esm/interface/crud/connected-accounts.d.ts +15 -17
  231. package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -1
  232. package/dist/esm/interface/crud/connected-accounts.js +1 -2
  233. package/dist/esm/interface/crud/connected-accounts.js.map +1 -1
  234. package/dist/esm/interface/crud/contact-channels.d.ts +24 -26
  235. package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -1
  236. package/dist/esm/interface/crud/contact-channels.js +1 -2
  237. package/dist/esm/interface/crud/contact-channels.js.map +1 -1
  238. package/dist/esm/interface/crud/current-user.d.ts +20 -22
  239. package/dist/esm/interface/crud/current-user.d.ts.map +1 -1
  240. package/dist/esm/interface/crud/current-user.js +25 -29
  241. package/dist/esm/interface/crud/current-user.js.map +1 -1
  242. package/dist/esm/interface/crud/email-outbox.d.ts +32 -34
  243. package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -1
  244. package/dist/esm/interface/crud/email-outbox.js +1 -2
  245. package/dist/esm/interface/crud/email-outbox.js.map +1 -1
  246. package/dist/esm/interface/crud/email-templates.d.ts +16 -18
  247. package/dist/esm/interface/crud/email-templates.d.ts.map +1 -1
  248. package/dist/esm/interface/crud/email-templates.js +1 -2
  249. package/dist/esm/interface/crud/email-templates.js.map +1 -1
  250. package/dist/esm/interface/crud/emails.d.ts +6 -8
  251. package/dist/esm/interface/crud/emails.d.ts.map +1 -1
  252. package/dist/esm/interface/crud/emails.js +1 -2
  253. package/dist/esm/interface/crud/emails.js.map +1 -1
  254. package/dist/esm/interface/crud/internal-api-keys.d.ts +16 -18
  255. package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -1
  256. package/dist/esm/interface/crud/internal-api-keys.js +1 -2
  257. package/dist/esm/interface/crud/internal-api-keys.js.map +1 -1
  258. package/dist/esm/interface/crud/invoices.d.ts +2 -2
  259. package/dist/esm/interface/crud/invoices.d.ts.map +1 -1
  260. package/dist/esm/interface/crud/invoices.js +1 -2
  261. package/dist/esm/interface/crud/invoices.js.map +1 -1
  262. package/dist/esm/interface/crud/items.d.ts +6 -8
  263. package/dist/esm/interface/crud/items.d.ts.map +1 -1
  264. package/dist/esm/interface/crud/items.js +12 -16
  265. package/dist/esm/interface/crud/items.js.map +1 -1
  266. package/dist/esm/interface/crud/notification-preferences.d.ts +6 -8
  267. package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -1
  268. package/dist/esm/interface/crud/notification-preferences.js +8 -12
  269. package/dist/esm/interface/crud/notification-preferences.js.map +1 -1
  270. package/dist/esm/interface/crud/oauth-providers.d.ts +24 -26
  271. package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -1
  272. package/dist/esm/interface/crud/oauth-providers.js +1 -2
  273. package/dist/esm/interface/crud/oauth-providers.js.map +1 -1
  274. package/dist/esm/interface/crud/products.d.ts +21 -22
  275. package/dist/esm/interface/crud/products.d.ts.map +1 -1
  276. package/dist/esm/interface/crud/products.js +3 -2
  277. package/dist/esm/interface/crud/products.js.map +1 -1
  278. package/dist/esm/interface/crud/project-api-keys.d.ts +5 -6
  279. package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -1
  280. package/dist/esm/interface/crud/project-api-keys.js +1 -2
  281. package/dist/esm/interface/crud/project-api-keys.js.map +1 -1
  282. package/dist/esm/interface/crud/project-permissions.d.ts +29 -31
  283. package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -1
  284. package/dist/esm/interface/crud/project-permissions.js +1 -2
  285. package/dist/esm/interface/crud/project-permissions.js.map +1 -1
  286. package/dist/esm/interface/crud/projects.d.ts +71 -73
  287. package/dist/esm/interface/crud/projects.d.ts.map +1 -1
  288. package/dist/esm/interface/crud/projects.js +3 -2
  289. package/dist/esm/interface/crud/projects.js.map +1 -1
  290. package/dist/esm/interface/crud/session-replays.d.ts.map +1 -1
  291. package/dist/esm/interface/crud/session-replays.js +1 -1
  292. package/dist/esm/interface/crud/sessions.d.ts +15 -17
  293. package/dist/esm/interface/crud/sessions.d.ts.map +1 -1
  294. package/dist/esm/interface/crud/sessions.js +1 -2
  295. package/dist/esm/interface/crud/sessions.js.map +1 -1
  296. package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -1
  297. package/dist/esm/interface/crud/sign-up-rules.js +1 -1
  298. package/dist/esm/interface/crud/svix-token.d.ts +8 -10
  299. package/dist/esm/interface/crud/svix-token.d.ts.map +1 -1
  300. package/dist/esm/interface/crud/svix-token.js +1 -2
  301. package/dist/esm/interface/crud/svix-token.js.map +1 -1
  302. package/dist/esm/interface/crud/team-invitation-details.d.ts +6 -8
  303. package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -1
  304. package/dist/esm/interface/crud/team-invitation-details.js +1 -2
  305. package/dist/esm/interface/crud/team-invitation-details.js.map +1 -1
  306. package/dist/esm/interface/crud/team-invitation.d.ts +7 -9
  307. package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -1
  308. package/dist/esm/interface/crud/team-invitation.js +1 -2
  309. package/dist/esm/interface/crud/team-invitation.js.map +1 -1
  310. package/dist/esm/interface/crud/team-member-profiles.d.ts +26 -28
  311. package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -1
  312. package/dist/esm/interface/crud/team-member-profiles.js +1 -2
  313. package/dist/esm/interface/crud/team-member-profiles.js.map +1 -1
  314. package/dist/esm/interface/crud/team-memberships.d.ts +14 -16
  315. package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -1
  316. package/dist/esm/interface/crud/team-memberships.js +1 -2
  317. package/dist/esm/interface/crud/team-memberships.js.map +1 -1
  318. package/dist/esm/interface/crud/team-permissions.d.ts +29 -31
  319. package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -1
  320. package/dist/esm/interface/crud/team-permissions.js +1 -2
  321. package/dist/esm/interface/crud/team-permissions.js.map +1 -1
  322. package/dist/esm/interface/crud/teams.d.ts +36 -38
  323. package/dist/esm/interface/crud/teams.d.ts.map +1 -1
  324. package/dist/esm/interface/crud/teams.js +2 -4
  325. package/dist/esm/interface/crud/teams.js.map +1 -1
  326. package/dist/esm/interface/crud/transactions.d.ts +14 -16
  327. package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
  328. package/dist/esm/interface/crud/transactions.js +7 -13
  329. package/dist/esm/interface/crud/transactions.js.map +1 -1
  330. package/dist/esm/interface/crud/users.d.ts +11 -12
  331. package/dist/esm/interface/crud/users.d.ts.map +1 -1
  332. package/dist/esm/interface/crud/users.js +9 -5
  333. package/dist/esm/interface/crud/users.js.map +1 -1
  334. package/dist/esm/interface/handler-urls.d.ts +1 -1
  335. package/dist/esm/interface/handler-urls.d.ts.map +1 -1
  336. package/dist/esm/interface/handler-urls.js +1 -2
  337. package/dist/esm/interface/page-component-versions.d.ts +1 -1
  338. package/dist/esm/interface/page-component-versions.d.ts.map +1 -1
  339. package/dist/esm/interface/page-component-versions.js +1 -2
  340. package/dist/esm/interface/page-component-versions.js.map +1 -1
  341. package/dist/esm/interface/plan-usage.d.ts +1 -1
  342. package/dist/esm/interface/plan-usage.d.ts.map +1 -1
  343. package/dist/esm/interface/plan-usage.js +1 -2
  344. package/dist/esm/interface/plan-usage.js.map +1 -1
  345. package/dist/esm/interface/server-interface.d.ts +19 -19
  346. package/dist/esm/interface/server-interface.d.ts.map +1 -1
  347. package/dist/esm/interface/server-interface.js +1 -2
  348. package/dist/esm/interface/server-interface.js.map +1 -1
  349. package/dist/esm/interface/webhooks.d.ts +2 -2
  350. package/dist/esm/interface/webhooks.d.ts.map +1 -1
  351. package/dist/esm/interface/webhooks.js +1 -2
  352. package/dist/esm/interface/webhooks.js.map +1 -1
  353. package/dist/esm/known-errors.d.ts +2 -2
  354. package/dist/esm/known-errors.d.ts.map +1 -1
  355. package/dist/esm/known-errors.js +10 -21
  356. package/dist/esm/known-errors.js.map +1 -1
  357. package/dist/esm/payments/payment-methods.d.ts.map +1 -1
  358. package/dist/esm/payments/payment-methods.js +1 -1
  359. package/dist/esm/payments/payment-methods.js.map +1 -1
  360. package/dist/esm/payments/stripe-limits.d.ts.map +1 -1
  361. package/dist/esm/payments/stripe-limits.js +1 -1
  362. package/dist/esm/payments/stripe-limits.js.map +1 -1
  363. package/dist/esm/plans.d.ts.map +1 -1
  364. package/dist/esm/plans.js +1 -1
  365. package/dist/esm/plans.js.map +1 -1
  366. package/dist/esm/schema-fields.d.ts +14 -14
  367. package/dist/esm/schema-fields.d.ts.map +1 -1
  368. package/dist/esm/schema-fields.js +3 -64
  369. package/dist/esm/schema-fields.js.map +1 -1
  370. package/dist/esm/sessions.d.ts +6 -6
  371. package/dist/esm/sessions.d.ts.map +1 -1
  372. package/dist/esm/sessions.js +1 -2
  373. package/dist/esm/sessions.js.map +1 -1
  374. package/dist/esm/sessions.test.js +2 -3
  375. package/dist/esm/sessions.test.js.map +1 -1
  376. package/dist/esm/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  377. package/dist/esm/utils/analytics-clickmap-overlay.js +1 -1
  378. package/dist/esm/utils/api-keys.d.ts.map +1 -1
  379. package/dist/esm/utils/api-keys.js +1 -2
  380. package/dist/esm/utils/api-keys.js.map +1 -1
  381. package/dist/esm/utils/arrays.d.ts.map +1 -1
  382. package/dist/esm/utils/arrays.js +1 -470
  383. package/dist/esm/utils/arrays.js.map +1 -1
  384. package/dist/esm/utils/auth-methods.d.ts.map +1 -1
  385. package/dist/esm/utils/auth-methods.js +1 -1
  386. package/dist/esm/utils/auth-methods.js.map +1 -1
  387. package/dist/esm/utils/base64.d.ts.map +1 -1
  388. package/dist/esm/utils/base64.js +1 -10
  389. package/dist/esm/utils/base64.js.map +1 -1
  390. package/dist/esm/utils/booleans.d.ts.map +1 -1
  391. package/dist/esm/utils/booleans.js +1 -25
  392. package/dist/esm/utils/booleans.js.map +1 -1
  393. package/dist/esm/utils/browser-compat.d.ts.map +1 -1
  394. package/dist/esm/utils/browser-compat.js +1 -1
  395. package/dist/esm/utils/browser-compat.js.map +1 -1
  396. package/dist/esm/utils/bytes.d.ts.map +1 -1
  397. package/dist/esm/utils/bytes.js +3 -198
  398. package/dist/esm/utils/bytes.js.map +1 -1
  399. package/dist/esm/utils/caches.d.ts +1 -1
  400. package/dist/esm/utils/caches.d.ts.map +1 -1
  401. package/dist/esm/utils/caches.js +1 -27
  402. package/dist/esm/utils/caches.js.map +1 -1
  403. package/dist/esm/utils/cel-fields.d.ts.map +1 -1
  404. package/dist/esm/utils/cel-fields.js +1 -2
  405. package/dist/esm/utils/cel-fields.js.map +1 -1
  406. package/dist/esm/utils/cloud-hosts.d.ts.map +1 -1
  407. package/dist/esm/utils/cloud-hosts.js +1 -27
  408. package/dist/esm/utils/cloud-hosts.js.map +1 -1
  409. package/dist/esm/utils/compile-time.d.ts.map +1 -1
  410. package/dist/esm/utils/compile-time.js +1 -1
  411. package/dist/esm/utils/compile-time.js.map +1 -1
  412. package/dist/esm/utils/country-codes.d.ts.map +1 -1
  413. package/dist/esm/utils/country-codes.js +1 -16
  414. package/dist/esm/utils/country-codes.js.map +1 -1
  415. package/dist/esm/utils/crypto.d.ts.map +1 -1
  416. package/dist/esm/utils/crypto.js +3 -113
  417. package/dist/esm/utils/crypto.js.map +1 -1
  418. package/dist/esm/utils/currencies.d.ts +1 -1
  419. package/dist/esm/utils/currencies.d.ts.map +1 -1
  420. package/dist/esm/utils/currencies.js +2 -37
  421. package/dist/esm/utils/currencies.js.map +1 -1
  422. package/dist/esm/utils/currency-constants.d.ts.map +1 -1
  423. package/dist/esm/utils/currency-constants.js +1 -1
  424. package/dist/esm/utils/currency-constants.js.map +1 -1
  425. package/dist/esm/utils/dates.d.ts.map +1 -1
  426. package/dist/esm/utils/dates.js +1 -44
  427. package/dist/esm/utils/dates.js.map +1 -1
  428. package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -1
  429. package/dist/esm/utils/dev-env-state-path.js +1 -2
  430. package/dist/esm/utils/dev-env-state-path.js.map +1 -1
  431. package/dist/esm/utils/dev-tool.d.ts.map +1 -1
  432. package/dist/esm/utils/dev-tool.js +1 -1
  433. package/dist/esm/utils/dom.d.ts.map +1 -1
  434. package/dist/esm/utils/dom.js +1 -1
  435. package/dist/esm/utils/dom.js.map +1 -1
  436. package/dist/esm/utils/elements-chain.d.ts.map +1 -1
  437. package/dist/esm/utils/elements-chain.js +5 -50
  438. package/dist/esm/utils/elements-chain.js.map +1 -1
  439. package/dist/esm/utils/env.d.ts.map +1 -1
  440. package/dist/esm/utils/env.js +1 -2
  441. package/dist/esm/utils/env.js.map +1 -1
  442. package/dist/esm/utils/env.test.js +2 -3
  443. package/dist/esm/utils/env.test.js.map +1 -1
  444. package/dist/esm/utils/errors.d.ts +1 -1
  445. package/dist/esm/utils/errors.d.ts.map +1 -1
  446. package/dist/esm/utils/errors.js +1 -2
  447. package/dist/esm/utils/errors.js.map +1 -1
  448. package/dist/esm/utils/esbuild.d.ts +1 -1
  449. package/dist/esm/utils/esbuild.d.ts.map +1 -1
  450. package/dist/esm/utils/esbuild.js +2 -3
  451. package/dist/esm/utils/esbuild.js.map +1 -1
  452. package/dist/esm/utils/featurebase.d.ts.map +1 -1
  453. package/dist/esm/utils/featurebase.js +1 -2
  454. package/dist/esm/utils/featurebase.js.map +1 -1
  455. package/dist/esm/utils/fs.d.ts.map +1 -1
  456. package/dist/esm/utils/fs.js +1 -2
  457. package/dist/esm/utils/fs.js.map +1 -1
  458. package/dist/esm/utils/functions.d.ts.map +1 -1
  459. package/dist/esm/utils/functions.js +1 -24
  460. package/dist/esm/utils/functions.js.map +1 -1
  461. package/dist/esm/utils/geo.d.ts.map +1 -1
  462. package/dist/esm/utils/geo.js +1 -2
  463. package/dist/esm/utils/geo.js.map +1 -1
  464. package/dist/esm/utils/globals.d.ts.map +1 -1
  465. package/dist/esm/utils/globals.js +1 -1
  466. package/dist/esm/utils/globals.js.map +1 -1
  467. package/dist/esm/utils/hashes.d.ts.map +1 -1
  468. package/dist/esm/utils/hashes.js +1 -2
  469. package/dist/esm/utils/hashes.js.map +1 -1
  470. package/dist/esm/utils/html.d.ts.map +1 -1
  471. package/dist/esm/utils/html.js +1 -19
  472. package/dist/esm/utils/html.js.map +1 -1
  473. package/dist/esm/utils/http.d.ts.map +1 -1
  474. package/dist/esm/utils/http.js +1 -19
  475. package/dist/esm/utils/http.js.map +1 -1
  476. package/dist/esm/utils/ips.d.ts.map +1 -1
  477. package/dist/esm/utils/ips.js +1 -25
  478. package/dist/esm/utils/ips.js.map +1 -1
  479. package/dist/esm/utils/json.d.ts +1 -1
  480. package/dist/esm/utils/json.d.ts.map +1 -1
  481. package/dist/esm/utils/json.js +1 -155
  482. package/dist/esm/utils/json.js.map +1 -1
  483. package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -1
  484. package/dist/esm/utils/jsx-editable-transpiler.js +1 -2
  485. package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -1
  486. package/dist/esm/utils/jsx-editable-transpiler.test.js +2 -3
  487. package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -1
  488. package/dist/esm/utils/jwt.d.ts.map +1 -1
  489. package/dist/esm/utils/jwt.js +1 -2
  490. package/dist/esm/utils/jwt.js.map +1 -1
  491. package/dist/esm/utils/locks.d.ts.map +1 -1
  492. package/dist/esm/utils/locks.js +1 -2
  493. package/dist/esm/utils/locks.js.map +1 -1
  494. package/dist/esm/utils/maps.d.ts.map +1 -1
  495. package/dist/esm/utils/maps.js +1 -111
  496. package/dist/esm/utils/maps.js.map +1 -1
  497. package/dist/esm/utils/math.d.ts.map +1 -1
  498. package/dist/esm/utils/math.js +1 -11
  499. package/dist/esm/utils/math.js.map +1 -1
  500. package/dist/esm/utils/monkey-patch.d.ts.map +1 -1
  501. package/dist/esm/utils/monkey-patch.js +2 -3
  502. package/dist/esm/utils/monkey-patch.js.map +1 -1
  503. package/dist/esm/utils/node-http.js +1 -2
  504. package/dist/esm/utils/node-http.js.map +1 -1
  505. package/dist/esm/utils/numbers.d.ts.map +1 -1
  506. package/dist/esm/utils/numbers.js +1 -45
  507. package/dist/esm/utils/numbers.js.map +1 -1
  508. package/dist/esm/utils/oauth.d.ts.map +1 -1
  509. package/dist/esm/utils/oauth.js +1 -1
  510. package/dist/esm/utils/oauth.js.map +1 -1
  511. package/dist/esm/utils/objects.d.ts.map +1 -1
  512. package/dist/esm/utils/objects.js +1 -622
  513. package/dist/esm/utils/objects.js.map +1 -1
  514. package/dist/esm/utils/paginated-lists.d.ts.map +1 -1
  515. package/dist/esm/utils/paginated-lists.js +1 -2
  516. package/dist/esm/utils/paginated-lists.js.map +1 -1
  517. package/dist/esm/utils/paginated-lists.test.js +2 -3
  518. package/dist/esm/utils/paginated-lists.test.js.map +1 -1
  519. package/dist/esm/utils/passkey.d.ts +1 -1
  520. package/dist/esm/utils/passkey.js +1 -1
  521. package/dist/esm/utils/promises.d.ts +1 -1
  522. package/dist/esm/utils/promises.d.ts.map +1 -1
  523. package/dist/esm/utils/promises.js +1 -160
  524. package/dist/esm/utils/promises.js.map +1 -1
  525. package/dist/esm/utils/proxies.d.ts.map +1 -1
  526. package/dist/esm/utils/proxies.js +1 -37
  527. package/dist/esm/utils/proxies.js.map +1 -1
  528. package/dist/esm/utils/react.d.ts.map +1 -1
  529. package/dist/esm/utils/react.js +1 -41
  530. package/dist/esm/utils/react.js.map +1 -1
  531. package/dist/esm/utils/redirect-urls.d.ts.map +1 -1
  532. package/dist/esm/utils/redirect-urls.js +2 -92
  533. package/dist/esm/utils/redirect-urls.js.map +1 -1
  534. package/dist/esm/utils/regex.js +1 -1
  535. package/dist/esm/utils/regex.js.map +1 -1
  536. package/dist/esm/utils/results.d.ts.map +1 -1
  537. package/dist/esm/utils/results.js +1 -213
  538. package/dist/esm/utils/results.js.map +1 -1
  539. package/dist/esm/utils/sentry.js +1 -1
  540. package/dist/esm/utils/sentry.js.map +1 -1
  541. package/dist/esm/utils/stores.d.ts +3 -3
  542. package/dist/esm/utils/stores.d.ts.map +1 -1
  543. package/dist/esm/utils/stores.js +1 -2
  544. package/dist/esm/utils/stores.js.map +1 -1
  545. package/dist/esm/utils/strings.d.ts.map +1 -1
  546. package/dist/esm/utils/strings.js +1 -251
  547. package/dist/esm/utils/strings.js.map +1 -1
  548. package/dist/esm/utils/strings.nicify.test.js +2 -3
  549. package/dist/esm/utils/strings.nicify.test.js.map +1 -1
  550. package/dist/esm/utils/telemetry.d.ts.map +1 -1
  551. package/dist/esm/utils/telemetry.js +1 -2
  552. package/dist/esm/utils/telemetry.js.map +1 -1
  553. package/dist/esm/utils/turnstile-browser.d.ts +1 -1
  554. package/dist/esm/utils/turnstile-browser.d.ts.map +1 -1
  555. package/dist/esm/utils/turnstile-browser.js +1 -2
  556. package/dist/esm/utils/turnstile-browser.js.map +1 -1
  557. package/dist/esm/utils/turnstile-flow.d.ts +1 -1
  558. package/dist/esm/utils/turnstile-flow.d.ts.map +1 -1
  559. package/dist/esm/utils/turnstile-flow.js +1 -2
  560. package/dist/esm/utils/turnstile-flow.js.map +1 -1
  561. package/dist/esm/utils/turnstile-flow.test.js +2 -3
  562. package/dist/esm/utils/turnstile-flow.test.js.map +1 -1
  563. package/dist/esm/utils/turnstile.d.ts.map +1 -1
  564. package/dist/esm/utils/turnstile.js +1 -1
  565. package/dist/esm/utils/turnstile.js.map +1 -1
  566. package/dist/esm/utils/typed-arrays.js +1 -2
  567. package/dist/esm/utils/typed-arrays.js.map +1 -1
  568. package/dist/esm/utils/types.d.ts +1 -1
  569. package/dist/esm/utils/types.d.ts.map +1 -1
  570. package/dist/esm/utils/types.js +1 -1
  571. package/dist/esm/utils/types.js.map +1 -1
  572. package/dist/esm/utils/unicode.d.ts.map +1 -1
  573. package/dist/esm/utils/unicode.js +1 -13
  574. package/dist/esm/utils/unicode.js.map +1 -1
  575. package/dist/esm/utils/urls.d.ts.map +1 -1
  576. package/dist/esm/utils/urls.js +1 -151
  577. package/dist/esm/utils/urls.js.map +1 -1
  578. package/dist/esm/utils/uuids.d.ts.map +1 -1
  579. package/dist/esm/utils/uuids.js +2 -26
  580. package/dist/esm/utils/uuids.js.map +1 -1
  581. package/dist/format-4JG1MGv5.d.ts +61 -0
  582. package/dist/format-4JG1MGv5.d.ts.map +1 -0
  583. package/dist/handler-urls-BHt3v8Ai.d.ts +70 -0
  584. package/dist/handler-urls-BHt3v8Ai.d.ts.map +1 -0
  585. package/dist/helpers/emails.js +2 -4
  586. package/dist/helpers/emails.js.map +1 -1
  587. package/dist/helpers/init-prompt.d.ts.map +1 -1
  588. package/dist/helpers/init-prompt.js +2 -4
  589. package/dist/helpers/init-prompt.js.map +1 -1
  590. package/dist/helpers/password.d.ts +1 -1
  591. package/dist/helpers/password.d.ts.map +1 -1
  592. package/dist/helpers/password.js +2 -4
  593. package/dist/helpers/password.js.map +1 -1
  594. package/dist/helpers/production-mode.d.ts +1 -1
  595. package/dist/helpers/production-mode.d.ts.map +1 -1
  596. package/dist/helpers/production-mode.js +2 -4
  597. package/dist/helpers/production-mode.js.map +1 -1
  598. package/dist/helpers/support-sla.d.ts.map +1 -1
  599. package/dist/helpers/support-sla.js +2 -3
  600. package/dist/helpers/support-sla.js.map +1 -1
  601. package/dist/helpers/support-sla.test.js +1 -3
  602. package/dist/helpers/support-sla.test.js.map +1 -1
  603. package/dist/helpers/vault/client-side.d.ts.map +1 -1
  604. package/dist/helpers/vault/client-side.js +2 -22
  605. package/dist/helpers/vault/client-side.js.map +1 -1
  606. package/dist/helpers/vault/server-side.js +2 -4
  607. package/dist/helpers/vault/server-side.js.map +1 -1
  608. package/dist/hooks/use-async-callback.d.ts.map +1 -1
  609. package/dist/hooks/use-async-callback.js +4 -5
  610. package/dist/hooks/use-async-callback.js.map +1 -1
  611. package/dist/hooks/use-async-external-store.d.ts +1 -1
  612. package/dist/hooks/use-async-external-store.d.ts.map +1 -1
  613. package/dist/hooks/use-async-external-store.js +2 -4
  614. package/dist/hooks/use-async-external-store.js.map +1 -1
  615. package/dist/hooks/use-hash.js +2 -4
  616. package/dist/hooks/use-hash.js.map +1 -1
  617. package/dist/hooks/use-hover.d.ts.map +1 -1
  618. package/dist/hooks/use-hover.js +2 -4
  619. package/dist/hooks/use-hover.js.map +1 -1
  620. package/dist/hooks/use-strict-memo.d.ts.map +1 -1
  621. package/dist/hooks/use-strict-memo.js +2 -72
  622. package/dist/hooks/use-strict-memo.js.map +1 -1
  623. package/dist/index.d.ts +4 -4
  624. package/dist/index.js +27 -29
  625. package/dist/interface/admin-interface.d.ts +3 -379
  626. package/dist/interface/admin-interface.js +2 -4
  627. package/dist/interface/admin-interface.js.map +1 -1
  628. package/dist/interface/admin-metrics.d.ts +2 -807
  629. package/dist/interface/admin-metrics.js +2 -4
  630. package/dist/interface/admin-metrics.js.map +1 -1
  631. package/dist/interface/client-interface.d.ts +2 -447
  632. package/dist/interface/client-interface.js +32 -17
  633. package/dist/interface/client-interface.js.map +1 -1
  634. package/dist/interface/client-interface.test.js +83 -13
  635. package/dist/interface/client-interface.test.js.map +1 -1
  636. package/dist/interface/conversations.d.ts +33 -33
  637. package/dist/interface/conversations.d.ts.map +1 -1
  638. package/dist/interface/conversations.js +2 -4
  639. package/dist/interface/conversations.js.map +1 -1
  640. package/dist/interface/crud/analytics.d.ts +2 -14
  641. package/dist/interface/crud/connected-accounts.d.ts +2 -68
  642. package/dist/interface/crud/connected-accounts.js +2 -4
  643. package/dist/interface/crud/connected-accounts.js.map +1 -1
  644. package/dist/interface/crud/contact-channels.d.ts +2 -181
  645. package/dist/interface/crud/contact-channels.js +2 -4
  646. package/dist/interface/crud/contact-channels.js.map +1 -1
  647. package/dist/interface/crud/current-user.d.ts +2 -285
  648. package/dist/interface/crud/current-user.js +2 -4
  649. package/dist/interface/crud/current-user.js.map +1 -1
  650. package/dist/interface/crud/email-outbox.d.ts +2 -1465
  651. package/dist/interface/crud/email-outbox.js +4 -5
  652. package/dist/interface/crud/email-outbox.js.map +1 -1
  653. package/dist/interface/crud/email-templates.d.ts +15 -16
  654. package/dist/interface/crud/email-templates.d.ts.map +1 -1
  655. package/dist/interface/crud/email-templates.js +2 -4
  656. package/dist/interface/crud/email-templates.js.map +1 -1
  657. package/dist/interface/crud/emails.d.ts +2 -41
  658. package/dist/interface/crud/emails.js +4 -5
  659. package/dist/interface/crud/emails.js.map +1 -1
  660. package/dist/interface/crud/internal-api-keys.d.ts +2 -140
  661. package/dist/interface/crud/internal-api-keys.js +2 -4
  662. package/dist/interface/crud/internal-api-keys.js.map +1 -1
  663. package/dist/interface/crud/invoices.d.ts +2 -43
  664. package/dist/interface/crud/invoices.js +2 -4
  665. package/dist/interface/crud/invoices.js.map +1 -1
  666. package/dist/interface/crud/items.d.ts +2 -30
  667. package/dist/interface/crud/items.js +2 -4
  668. package/dist/interface/crud/items.js.map +1 -1
  669. package/dist/interface/crud/notification-preferences.d.ts +2 -38
  670. package/dist/interface/crud/notification-preferences.js +2 -4
  671. package/dist/interface/crud/notification-preferences.js.map +1 -1
  672. package/dist/interface/crud/oauth-providers.d.ts +2 -186
  673. package/dist/interface/crud/oauth-providers.js +2 -4
  674. package/dist/interface/crud/oauth-providers.js.map +1 -1
  675. package/dist/interface/crud/products.d.ts +2 -182
  676. package/dist/interface/crud/products.js +4 -4
  677. package/dist/interface/crud/products.js.map +1 -1
  678. package/dist/interface/crud/project-api-keys.d.ts +2 -203
  679. package/dist/interface/crud/project-api-keys.js +2 -4
  680. package/dist/interface/crud/project-api-keys.js.map +1 -1
  681. package/dist/interface/crud/project-permissions.d.ts +2 -161
  682. package/dist/interface/crud/project-permissions.js +4 -5
  683. package/dist/interface/crud/project-permissions.js.map +1 -1
  684. package/dist/interface/crud/projects.d.ts +2 -901
  685. package/dist/interface/crud/projects.js +6 -5
  686. package/dist/interface/crud/projects.js.map +1 -1
  687. package/dist/interface/crud/session-replays.d.ts +2 -83
  688. package/dist/interface/crud/sessions.d.ts +2 -150
  689. package/dist/interface/crud/sessions.js +2 -4
  690. package/dist/interface/crud/sessions.js.map +1 -1
  691. package/dist/interface/crud/sign-up-rules.d.ts.map +1 -1
  692. package/dist/interface/crud/svix-token.d.ts +2 -31
  693. package/dist/interface/crud/svix-token.js +2 -4
  694. package/dist/interface/crud/svix-token.js.map +1 -1
  695. package/dist/interface/crud/team-invitation-details.d.ts +5 -6
  696. package/dist/interface/crud/team-invitation-details.d.ts.map +1 -1
  697. package/dist/interface/crud/team-invitation-details.js +4 -5
  698. package/dist/interface/crud/team-invitation-details.js.map +1 -1
  699. package/dist/interface/crud/team-invitation.d.ts +2 -54
  700. package/dist/interface/crud/team-invitation.js +4 -5
  701. package/dist/interface/crud/team-invitation.js.map +1 -1
  702. package/dist/interface/crud/team-member-profiles.d.ts +2 -286
  703. package/dist/interface/crud/team-member-profiles.js +4 -5
  704. package/dist/interface/crud/team-member-profiles.js.map +1 -1
  705. package/dist/interface/crud/team-memberships.d.ts +2 -75
  706. package/dist/interface/crud/team-memberships.js +2 -4
  707. package/dist/interface/crud/team-memberships.js.map +1 -1
  708. package/dist/interface/crud/team-permissions.d.ts +2 -169
  709. package/dist/interface/crud/team-permissions.js +4 -5
  710. package/dist/interface/crud/team-permissions.js.map +1 -1
  711. package/dist/interface/crud/teams.d.ts +2 -299
  712. package/dist/interface/crud/teams.js +5 -7
  713. package/dist/interface/crud/teams.js.map +1 -1
  714. package/dist/interface/crud/transactions.d.ts +2 -183
  715. package/dist/interface/crud/transactions.js +2 -4
  716. package/dist/interface/crud/transactions.js.map +1 -1
  717. package/dist/interface/crud/users.d.ts +2 -653
  718. package/dist/interface/crud/users.js +12 -8
  719. package/dist/interface/crud/users.js.map +1 -1
  720. package/dist/interface/handler-urls.d.ts +2 -51
  721. package/dist/interface/handler-urls.js +12 -14
  722. package/dist/interface/page-component-versions.d.ts +2 -25
  723. package/dist/interface/page-component-versions.js +2 -4
  724. package/dist/interface/page-component-versions.js.map +1 -1
  725. package/dist/interface/plan-usage.d.ts +2 -57
  726. package/dist/interface/plan-usage.js +2 -4
  727. package/dist/interface/plan-usage.js.map +1 -1
  728. package/dist/interface/server-interface.d.ts +2 -257
  729. package/dist/interface/server-interface.js +2 -4
  730. package/dist/interface/server-interface.js.map +1 -1
  731. package/dist/interface/webhooks.d.ts +2 -326
  732. package/dist/interface/webhooks.js +2 -4
  733. package/dist/interface/webhooks.js.map +1 -1
  734. package/dist/internal-api-keys-D8IYDodH.d.ts +139 -0
  735. package/dist/internal-api-keys-D8IYDodH.d.ts.map +1 -0
  736. package/dist/invoices-U65KzAZX.d.ts +43 -0
  737. package/dist/invoices-U65KzAZX.d.ts.map +1 -0
  738. package/dist/items-DlLSlVUD.d.ts +29 -0
  739. package/dist/items-DlLSlVUD.d.ts.map +1 -0
  740. package/dist/json-a1QIXu5z.d.ts +15 -0
  741. package/dist/json-a1QIXu5z.d.ts.map +1 -0
  742. package/dist/known-errors-Bm4a61wL.d.ts +575 -0
  743. package/dist/known-errors-Bm4a61wL.d.ts.map +1 -0
  744. package/dist/known-errors.d.ts +2 -575
  745. package/dist/known-errors.js +11 -23
  746. package/dist/known-errors.js.map +1 -1
  747. package/dist/notification-preferences-Bmzr_EOY.d.ts +37 -0
  748. package/dist/notification-preferences-Bmzr_EOY.d.ts.map +1 -0
  749. package/dist/oauth-providers-BMkKSSlA.d.ts +185 -0
  750. package/dist/oauth-providers-BMkKSSlA.d.ts.map +1 -0
  751. package/dist/objects-DkCkeBWE.d.ts +59 -0
  752. package/dist/objects-DkCkeBWE.d.ts.map +1 -0
  753. package/dist/passkey-CKg87UH-.d.ts +2 -0
  754. package/dist/payments/payment-methods.d.ts.map +1 -1
  755. package/dist/payments/payment-methods.js +2 -3
  756. package/dist/payments/payment-methods.js.map +1 -1
  757. package/dist/payments/stripe-limits.d.ts.map +1 -1
  758. package/dist/payments/stripe-limits.js +2 -3
  759. package/dist/payments/stripe-limits.js.map +1 -1
  760. package/dist/plan-usage-DfDoj5K4.d.ts +57 -0
  761. package/dist/plan-usage-DfDoj5K4.d.ts.map +1 -0
  762. package/dist/plans.d.ts.map +1 -1
  763. package/dist/plans.js +2 -3
  764. package/dist/plans.js.map +1 -1
  765. package/dist/products-Bs74ld-v.d.ts +182 -0
  766. package/dist/products-Bs74ld-v.d.ts.map +1 -0
  767. package/dist/project-api-keys--7V5X_UW.d.ts +203 -0
  768. package/dist/project-api-keys--7V5X_UW.d.ts.map +1 -0
  769. package/dist/project-permissions-kdi675F-.d.ts +160 -0
  770. package/dist/project-permissions-kdi675F-.d.ts.map +1 -0
  771. package/dist/projects-CgFGB3nO.d.ts +900 -0
  772. package/dist/projects-CgFGB3nO.d.ts.map +1 -0
  773. package/dist/results-DP3BzoL6.d.ts +70 -0
  774. package/dist/results-DP3BzoL6.d.ts.map +1 -0
  775. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  776. package/dist/schema-01nWxmb4.d.ts +2328 -0
  777. package/dist/schema-01nWxmb4.d.ts.map +1 -0
  778. package/dist/schema-fields-DqGQ4kF7.d.ts +517 -0
  779. package/dist/schema-fields-DqGQ4kF7.d.ts.map +1 -0
  780. package/dist/schema-fields.d.ts +3 -518
  781. package/dist/schema-fields.js +21 -82
  782. package/dist/schema-fields.js.map +1 -1
  783. package/dist/server-interface-BUPG1kor.d.ts +257 -0
  784. package/dist/server-interface-BUPG1kor.d.ts.map +1 -0
  785. package/dist/session-replays-CXqhDpZq.d.ts +83 -0
  786. package/dist/session-replays-CXqhDpZq.d.ts.map +1 -0
  787. package/dist/sessions-B7Ko2Ldr.d.ts +149 -0
  788. package/dist/sessions-B7Ko2Ldr.d.ts.map +1 -0
  789. package/dist/sessions-d8qtvBUB.d.ts +175 -0
  790. package/dist/sessions-d8qtvBUB.d.ts.map +1 -0
  791. package/dist/sessions.d.ts +2 -175
  792. package/dist/sessions.js +4 -5
  793. package/dist/sessions.js.map +1 -1
  794. package/dist/sessions.test.js +1 -3
  795. package/dist/sessions.test.js.map +1 -1
  796. package/dist/strings-DWgkUybS.d.ts +76 -0
  797. package/dist/strings-DWgkUybS.d.ts.map +1 -0
  798. package/dist/svix-token-BsMrLGvy.d.ts +30 -0
  799. package/dist/svix-token-BsMrLGvy.d.ts.map +1 -0
  800. package/dist/team-invitation-Cyqt9oWw.d.ts +53 -0
  801. package/dist/team-invitation-Cyqt9oWw.d.ts.map +1 -0
  802. package/dist/team-member-profiles-uTluO8XI.d.ts +285 -0
  803. package/dist/team-member-profiles-uTluO8XI.d.ts.map +1 -0
  804. package/dist/team-memberships-DZHk2A5b.d.ts +74 -0
  805. package/dist/team-memberships-DZHk2A5b.d.ts.map +1 -0
  806. package/dist/team-permissions-DqOpaOWh.d.ts +168 -0
  807. package/dist/team-permissions-DqOpaOWh.d.ts.map +1 -0
  808. package/dist/teams-CQMcBnjM.d.ts +298 -0
  809. package/dist/teams-CQMcBnjM.d.ts.map +1 -0
  810. package/dist/transactions-DhnbvGH5.d.ts +182 -0
  811. package/dist/transactions-DhnbvGH5.d.ts.map +1 -0
  812. package/dist/types-DfTcxNtM.d.ts +77 -0
  813. package/dist/types-DfTcxNtM.d.ts.map +1 -0
  814. package/dist/users-CmBBuF00.d.ts +653 -0
  815. package/dist/users-CmBBuF00.d.ts.map +1 -0
  816. package/dist/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  817. package/dist/utils/analytics-clickmap-overlay.js +2 -3
  818. package/dist/utils/analytics-clickmap-overlay.js.map +1 -1
  819. package/dist/utils/api-keys.d.ts.map +1 -1
  820. package/dist/utils/api-keys.js +4 -5
  821. package/dist/utils/api-keys.js.map +1 -1
  822. package/dist/utils/arrays.d.ts.map +1 -1
  823. package/dist/utils/arrays.js +2 -472
  824. package/dist/utils/arrays.js.map +1 -1
  825. package/dist/utils/auth-methods.d.ts.map +1 -1
  826. package/dist/utils/auth-methods.js +2 -3
  827. package/dist/utils/auth-methods.js.map +1 -1
  828. package/dist/utils/base64.d.ts.map +1 -1
  829. package/dist/utils/base64.js +2 -12
  830. package/dist/utils/base64.js.map +1 -1
  831. package/dist/utils/booleans.d.ts.map +1 -1
  832. package/dist/utils/booleans.js +2 -27
  833. package/dist/utils/booleans.js.map +1 -1
  834. package/dist/utils/browser-compat.d.ts.map +1 -1
  835. package/dist/utils/browser-compat.js +2 -3
  836. package/dist/utils/browser-compat.js.map +1 -1
  837. package/dist/utils/bytes.d.ts.map +1 -1
  838. package/dist/utils/bytes.js +4 -200
  839. package/dist/utils/bytes.js.map +1 -1
  840. package/dist/utils/caches.d.ts.map +1 -1
  841. package/dist/utils/caches.js +2 -29
  842. package/dist/utils/caches.js.map +1 -1
  843. package/dist/utils/cel-fields.d.ts.map +1 -1
  844. package/dist/utils/cel-fields.js +2 -4
  845. package/dist/utils/cel-fields.js.map +1 -1
  846. package/dist/utils/cloud-hosts.d.ts.map +1 -1
  847. package/dist/utils/cloud-hosts.js +2 -29
  848. package/dist/utils/cloud-hosts.js.map +1 -1
  849. package/dist/utils/compile-time.d.ts.map +1 -1
  850. package/dist/utils/compile-time.js +2 -3
  851. package/dist/utils/compile-time.js.map +1 -1
  852. package/dist/utils/country-codes.d.ts +2 -11
  853. package/dist/utils/country-codes.js +2 -18
  854. package/dist/utils/country-codes.js.map +1 -1
  855. package/dist/utils/crypto.d.ts.map +1 -1
  856. package/dist/utils/crypto.js +4 -115
  857. package/dist/utils/crypto.js.map +1 -1
  858. package/dist/utils/currencies.d.ts +1 -1
  859. package/dist/utils/currencies.d.ts.map +1 -1
  860. package/dist/utils/currencies.js +3 -39
  861. package/dist/utils/currencies.js.map +1 -1
  862. package/dist/utils/currency-constants.d.ts +2 -45
  863. package/dist/utils/currency-constants.js +2 -3
  864. package/dist/utils/currency-constants.js.map +1 -1
  865. package/dist/utils/dates.d.ts +2 -23
  866. package/dist/utils/dates.js +2 -46
  867. package/dist/utils/dates.js.map +1 -1
  868. package/dist/utils/dev-env-state-path.d.ts.map +1 -1
  869. package/dist/utils/dev-env-state-path.js +2 -4
  870. package/dist/utils/dev-env-state-path.js.map +1 -1
  871. package/dist/utils/dev-tool.d.ts.map +1 -1
  872. package/dist/utils/dev-tool.js +2 -3
  873. package/dist/utils/dev-tool.js.map +1 -1
  874. package/dist/utils/dom.d.ts.map +1 -1
  875. package/dist/utils/dom.js +2 -3
  876. package/dist/utils/dom.js.map +1 -1
  877. package/dist/utils/elements-chain.d.ts.map +1 -1
  878. package/dist/utils/elements-chain.js +6 -52
  879. package/dist/utils/elements-chain.js.map +1 -1
  880. package/dist/utils/env.d.ts.map +1 -1
  881. package/dist/utils/env.js +2 -4
  882. package/dist/utils/env.js.map +1 -1
  883. package/dist/utils/env.test.js +1 -3
  884. package/dist/utils/env.test.js.map +1 -1
  885. package/dist/utils/errors.d.ts +2 -238
  886. package/dist/utils/errors.js +2 -4
  887. package/dist/utils/errors.js.map +1 -1
  888. package/dist/utils/esbuild.d.ts +1 -1
  889. package/dist/utils/esbuild.d.ts.map +1 -1
  890. package/dist/utils/esbuild.js +5 -6
  891. package/dist/utils/esbuild.js.map +1 -1
  892. package/dist/utils/featurebase.d.ts.map +1 -1
  893. package/dist/utils/featurebase.js +2 -4
  894. package/dist/utils/featurebase.js.map +1 -1
  895. package/dist/utils/fs.d.ts.map +1 -1
  896. package/dist/utils/fs.js +5 -6
  897. package/dist/utils/fs.js.map +1 -1
  898. package/dist/utils/functions.d.ts.map +1 -1
  899. package/dist/utils/functions.js +2 -26
  900. package/dist/utils/functions.js.map +1 -1
  901. package/dist/utils/geo.d.ts.map +1 -1
  902. package/dist/utils/geo.js +2 -4
  903. package/dist/utils/geo.js.map +1 -1
  904. package/dist/utils/globals.d.ts.map +1 -1
  905. package/dist/utils/globals.js +2 -3
  906. package/dist/utils/globals.js.map +1 -1
  907. package/dist/utils/hashes.d.ts.map +1 -1
  908. package/dist/utils/hashes.js +4 -5
  909. package/dist/utils/hashes.js.map +1 -1
  910. package/dist/utils/html.d.ts.map +1 -1
  911. package/dist/utils/html.js +2 -21
  912. package/dist/utils/html.js.map +1 -1
  913. package/dist/utils/http.d.ts.map +1 -1
  914. package/dist/utils/http.js +2 -21
  915. package/dist/utils/http.js.map +1 -1
  916. package/dist/utils/ips.d.ts.map +1 -1
  917. package/dist/utils/ips.js +4 -28
  918. package/dist/utils/ips.js.map +1 -1
  919. package/dist/utils/json.d.ts +2 -15
  920. package/dist/utils/json.js +2 -157
  921. package/dist/utils/json.js.map +1 -1
  922. package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -1
  923. package/dist/utils/jsx-editable-transpiler.js +7 -8
  924. package/dist/utils/jsx-editable-transpiler.js.map +1 -1
  925. package/dist/utils/jsx-editable-transpiler.test.js +1 -3
  926. package/dist/utils/jsx-editable-transpiler.test.js.map +1 -1
  927. package/dist/utils/jwt.d.ts.map +1 -1
  928. package/dist/utils/jwt.js +6 -7
  929. package/dist/utils/jwt.js.map +1 -1
  930. package/dist/utils/locks.d.ts.map +1 -1
  931. package/dist/utils/locks.js +2 -4
  932. package/dist/utils/locks.js.map +1 -1
  933. package/dist/utils/maps.d.ts.map +1 -1
  934. package/dist/utils/maps.js +2 -113
  935. package/dist/utils/maps.js.map +1 -1
  936. package/dist/utils/math.d.ts.map +1 -1
  937. package/dist/utils/math.js +2 -13
  938. package/dist/utils/math.js.map +1 -1
  939. package/dist/utils/monkey-patch.d.ts.map +1 -1
  940. package/dist/utils/monkey-patch.js +3 -5
  941. package/dist/utils/monkey-patch.js.map +1 -1
  942. package/dist/utils/node-http.js +2 -4
  943. package/dist/utils/node-http.js.map +1 -1
  944. package/dist/utils/numbers.d.ts.map +1 -1
  945. package/dist/utils/numbers.js +2 -47
  946. package/dist/utils/numbers.js.map +1 -1
  947. package/dist/utils/oauth.d.ts.map +1 -1
  948. package/dist/utils/oauth.js +2 -3
  949. package/dist/utils/oauth.js.map +1 -1
  950. package/dist/utils/objects.d.ts +2 -59
  951. package/dist/utils/objects.js +2 -624
  952. package/dist/utils/objects.js.map +1 -1
  953. package/dist/utils/paginated-lists.d.ts.map +1 -1
  954. package/dist/utils/paginated-lists.js +2 -4
  955. package/dist/utils/paginated-lists.js.map +1 -1
  956. package/dist/utils/paginated-lists.test.js +1 -3
  957. package/dist/utils/paginated-lists.test.js.map +1 -1
  958. package/dist/utils/passkey.d.ts +2 -2
  959. package/dist/utils/promises.d.ts +1 -1
  960. package/dist/utils/promises.d.ts.map +1 -1
  961. package/dist/utils/promises.js +2 -162
  962. package/dist/utils/promises.js.map +1 -1
  963. package/dist/utils/proxies.d.ts.map +1 -1
  964. package/dist/utils/proxies.js +2 -39
  965. package/dist/utils/proxies.js.map +1 -1
  966. package/dist/utils/react.d.ts.map +1 -1
  967. package/dist/utils/react.js +4 -44
  968. package/dist/utils/react.js.map +1 -1
  969. package/dist/utils/redirect-urls.d.ts.map +1 -1
  970. package/dist/utils/redirect-urls.js +3 -94
  971. package/dist/utils/redirect-urls.js.map +1 -1
  972. package/dist/utils/regex.js +2 -3
  973. package/dist/utils/regex.js.map +1 -1
  974. package/dist/utils/results.d.ts +2 -70
  975. package/dist/utils/results.js +2 -215
  976. package/dist/utils/results.js.map +1 -1
  977. package/dist/utils/sentry.js +2 -3
  978. package/dist/utils/sentry.js.map +1 -1
  979. package/dist/utils/stores.d.ts +1 -1
  980. package/dist/utils/stores.d.ts.map +1 -1
  981. package/dist/utils/stores.js +2 -4
  982. package/dist/utils/stores.js.map +1 -1
  983. package/dist/utils/strings.d.ts +2 -76
  984. package/dist/utils/strings.js +2 -253
  985. package/dist/utils/strings.js.map +1 -1
  986. package/dist/utils/strings.nicify.test.js +1 -3
  987. package/dist/utils/strings.nicify.test.js.map +1 -1
  988. package/dist/utils/telemetry.d.ts.map +1 -1
  989. package/dist/utils/telemetry.js +2 -4
  990. package/dist/utils/telemetry.js.map +1 -1
  991. package/dist/utils/turnstile-browser.d.ts.map +1 -1
  992. package/dist/utils/turnstile-browser.js +2 -4
  993. package/dist/utils/turnstile-browser.js.map +1 -1
  994. package/dist/utils/turnstile-flow.d.ts.map +1 -1
  995. package/dist/utils/turnstile-flow.js +2 -4
  996. package/dist/utils/turnstile-flow.js.map +1 -1
  997. package/dist/utils/turnstile-flow.test.js +1 -3
  998. package/dist/utils/turnstile-flow.test.js.map +1 -1
  999. package/dist/utils/turnstile.d.ts.map +1 -1
  1000. package/dist/utils/turnstile.js +2 -3
  1001. package/dist/utils/turnstile.js.map +1 -1
  1002. package/dist/utils/typed-arrays.js +2 -4
  1003. package/dist/utils/typed-arrays.js.map +1 -1
  1004. package/dist/utils/types.d.ts +2 -77
  1005. package/dist/utils/types.js +2 -3
  1006. package/dist/utils/types.js.map +1 -1
  1007. package/dist/utils/unicode.d.ts.map +1 -1
  1008. package/dist/utils/unicode.js +2 -15
  1009. package/dist/utils/unicode.js.map +1 -1
  1010. package/dist/utils/urls.d.ts.map +1 -1
  1011. package/dist/utils/urls.js +2 -153
  1012. package/dist/utils/urls.js.map +1 -1
  1013. package/dist/utils/uuids.d.ts.map +1 -1
  1014. package/dist/utils/uuids.js +3 -28
  1015. package/dist/utils/uuids.js.map +1 -1
  1016. package/dist/webhooks-ByXrdSOx.d.ts +326 -0
  1017. package/dist/webhooks-ByXrdSOx.d.ts.map +1 -0
  1018. package/package.json +2 -8
  1019. package/src/interface/client-interface.test.ts +77 -12
  1020. package/src/interface/client-interface.ts +9 -9
  1021. package/dist/config/format.d.ts.map +0 -1
  1022. package/dist/config/schema.d.ts.map +0 -1
  1023. package/dist/crud.d.ts.map +0 -1
  1024. package/dist/interface/admin-interface.d.ts.map +0 -1
  1025. package/dist/interface/admin-metrics.d.ts.map +0 -1
  1026. package/dist/interface/client-interface.d.ts.map +0 -1
  1027. package/dist/interface/crud/analytics.d.ts.map +0 -1
  1028. package/dist/interface/crud/connected-accounts.d.ts.map +0 -1
  1029. package/dist/interface/crud/contact-channels.d.ts.map +0 -1
  1030. package/dist/interface/crud/current-user.d.ts.map +0 -1
  1031. package/dist/interface/crud/emails.d.ts.map +0 -1
  1032. package/dist/interface/crud/internal-api-keys.d.ts.map +0 -1
  1033. package/dist/interface/crud/invoices.d.ts.map +0 -1
  1034. package/dist/interface/crud/items.d.ts.map +0 -1
  1035. package/dist/interface/crud/notification-preferences.d.ts.map +0 -1
  1036. package/dist/interface/crud/oauth-providers.d.ts.map +0 -1
  1037. package/dist/interface/crud/products.d.ts.map +0 -1
  1038. package/dist/interface/crud/project-api-keys.d.ts.map +0 -1
  1039. package/dist/interface/crud/project-permissions.d.ts.map +0 -1
  1040. package/dist/interface/crud/projects.d.ts.map +0 -1
  1041. package/dist/interface/crud/session-replays.d.ts.map +0 -1
  1042. package/dist/interface/crud/sessions.d.ts.map +0 -1
  1043. package/dist/interface/crud/svix-token.d.ts.map +0 -1
  1044. package/dist/interface/crud/team-invitation.d.ts.map +0 -1
  1045. package/dist/interface/crud/team-member-profiles.d.ts.map +0 -1
  1046. package/dist/interface/crud/team-memberships.d.ts.map +0 -1
  1047. package/dist/interface/crud/team-permissions.d.ts.map +0 -1
  1048. package/dist/interface/crud/teams.d.ts.map +0 -1
  1049. package/dist/interface/crud/transactions.d.ts.map +0 -1
  1050. package/dist/interface/crud/users.d.ts.map +0 -1
  1051. package/dist/interface/handler-urls.d.ts.map +0 -1
  1052. package/dist/interface/page-component-versions.d.ts.map +0 -1
  1053. package/dist/interface/plan-usage.d.ts.map +0 -1
  1054. package/dist/interface/server-interface.d.ts.map +0 -1
  1055. package/dist/interface/webhooks.d.ts.map +0 -1
  1056. package/dist/known-errors.d.ts.map +0 -1
  1057. package/dist/schema-fields.d.ts.map +0 -1
  1058. package/dist/sessions.d.ts.map +0 -1
  1059. package/dist/utils/country-codes.d.ts.map +0 -1
  1060. package/dist/utils/currency-constants.d.ts.map +0 -1
  1061. package/dist/utils/dates.d.ts.map +0 -1
  1062. package/dist/utils/errors.d.ts.map +0 -1
  1063. package/dist/utils/json.d.ts.map +0 -1
  1064. package/dist/utils/objects.d.ts.map +0 -1
  1065. package/dist/utils/results.d.ts.map +0 -1
  1066. package/dist/utils/strings.d.ts.map +0 -1
  1067. package/dist/utils/types.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"strings.nicify.test.js","names":[],"sources":["../../../src/utils/strings.nicify.test.ts"],"sourcesContent":["import { describe, expect, test } from \"vitest\";\nimport { NicifyOptions, deindent, nicify } from \"./strings\";\n\ndescribe(\"nicify\", () => {\n describe(\"primitive values\", () => {\n test(\"numbers\", () => {\n expect(nicify(123)).toBe(\"123\");\n expect(nicify(123n)).toBe(\"123n\");\n });\n\n test(\"strings\", () => {\n expect(nicify(\"hello\")).toBe('\"hello\"');\n });\n\n test(\"booleans\", () => {\n expect(nicify(true)).toBe(\"true\");\n expect(nicify(false)).toBe(\"false\");\n });\n\n test(\"null and undefined\", () => {\n expect(nicify(null)).toBe(\"null\");\n expect(nicify(undefined)).toBe(\"undefined\");\n });\n\n test(\"symbols\", () => {\n expect(nicify(Symbol(\"test\"))).toBe(\"Symbol(test)\");\n });\n });\n\n describe(\"arrays\", () => {\n test(\"empty array\", () => {\n expect(nicify([])).toBe(\"[]\");\n });\n\n test(\"single-element array\", () => {\n expect(nicify([1])).toBe(\"[1]\");\n });\n\n test(\"single-element array with long content\", () => {\n expect(nicify([\"123123123123123\"])).toBe('[\"123123123123123\"]');\n });\n\n test(\"flat array\", () => {\n expect(nicify([1, 2, 3])).toBe(\"[1, 2, 3]\");\n });\n\n test(\"longer array\", () => {\n expect(nicify([10000, 2, 3])).toBe(deindent`\n [\n 10000,\n 2,\n 3,\n ]\n `);\n });\n\n test(\"nested array\", () => {\n expect(nicify([1, [2, 3]])).toBe(deindent`\n [\n 1,\n [2, 3],\n ]\n `);\n });\n });\n\n describe(\"objects\", () => {\n test(\"empty object\", () => {\n expect(nicify({})).toBe(\"{}\");\n });\n\n test(\"simple object\", () => {\n expect(nicify({ a: 1 })).toBe('{ \"a\": 1 }');\n });\n\n test(\"multiline object\", () => {\n expect(nicify({ a: 1, b: 2 })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n }\n `);\n });\n });\n\n describe(\"custom classes\", () => {\n test(\"class instance\", () => {\n class TestClass {\n constructor(public value: number) {}\n }\n expect(nicify(new TestClass(42))).toBe('TestClass { \"value\": 42 }');\n });\n });\n\n describe(\"built-in objects\", () => {\n test(\"URL\", () => {\n expect(nicify(new URL(\"https://example.com\"))).toBe('URL(\"https://example.com/\")');\n });\n\n test(\"TypedArrays\", () => {\n expect(nicify(new Uint8Array([1, 2, 3]))).toBe(\"Uint8Array([1,2,3])\");\n expect(nicify(new Int32Array([1, 2, 3]))).toBe(\"Int32Array([1,2,3])\");\n });\n\n test(\"Error objects\", () => {\n const error = new Error(\"test error\");\n const nicifiedError = nicify({ error });\n expect(nicifiedError).toMatch(new RegExp(deindent`\n ^\\{\n \"error\": Error: test error\n Stack:\n at (.|\\\\n)*\n \\}$\n `));\n });\n\n test(\"Error objects with cause and an extra property\", () => {\n const error = new Error(\"test error\", { cause: new Error(\"cause\") });\n (error as any).extra = \"something\";\n const nicifiedError = nicify(error, { lineIndent: \"--\" });\n expect(nicifiedError).toMatch(new RegExp(deindent`\n ^Error: test error\n --Stack:\n ----at (.|\\\\n)+\n --Extra properties: \\{ \"extra\": \"something\" \\}\n --Cause:\n ----Error: cause\n ------Stack:\n --------at (.|\\\\n)+$\n `));\n });\n\n test(\"Headers\", () => {\n const headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"text/plain\");\n expect(nicify(headers)).toBe(deindent`\n Headers {\n \"accept\": \"text/plain\",\n \"content-type\": \"application/json\",\n }`\n );\n });\n });\n\n describe(\"multiline strings\", () => {\n test(\"basic multiline\", () => {\n expect(nicify(\"line1\\nline2\")).toBe('deindent`\\n line1\\n line2\\n`');\n });\n\n test(\"multiline with trailing newline\", () => {\n expect(nicify(\"line1\\nline2\\n\")).toBe('deindent`\\n line1\\n line2\\n` + \"\\\\n\"');\n });\n\n test(\"multiline with dollar sign\", () => {\n expect(nicify(\"a\\n$b\\nc\")).toBe('deindent`\\n a\\n $b\\n c\\n`');\n });\n\n test(\"multiline with dollar sign interpolation\", () => {\n expect(nicify(\"a\\n${b\\nc\")).toBe('deindent`\\n a\\n \\\\${b\\n c\\n`');\n });\n });\n\n describe(\"circular references\", () => {\n test(\"object with self reference\", () => {\n const circular: any = { a: 1 };\n circular.self = circular;\n expect(nicify(circular)).toBe(deindent`\n {\n \"a\": 1,\n \"self\": Ref<value>,\n }`\n );\n });\n });\n\n describe(\"configuration options\", () => {\n test(\"maxDepth\", () => {\n const deep = { a: { b: { c: { d: { e: 1 } } } } };\n expect(nicify(deep, { maxDepth: 2 })).toBe('{ \"a\": { \"b\": { ... } } }');\n });\n\n test(\"lineIndent\", () => {\n expect(nicify({ a: 1, b: 2 }, { lineIndent: \" \" })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n }\n `);\n });\n\n test(\"hideFields\", () => {\n expect(nicify({ a: 1, b: 2, secret: \"hidden\" }, { hideFields: [\"secret\"] })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n <some fields may have been hidden>,\n }\n `);\n });\n });\n\n describe(\"custom overrides\", () => {\n test(\"override with custom type\", () => {\n expect(nicify({ type: \"special\" }, {\n overrides: ((value: unknown) => {\n if (typeof value === \"object\" && value && \"type\" in value && (value as any).type === \"special\") {\n return \"SPECIAL\";\n }\n return null;\n }) as NicifyOptions[\"overrides\"]\n })).toBe(\"SPECIAL\");\n });\n });\n\n describe(\"functions\", () => {\n test(\"named function\", () => {\n expect(nicify(function namedFunction() {})).toBe(\"function namedFunction(...) { ... }\");\n });\n\n test(\"arrow function\", () => {\n expect(nicify(() => {})).toBe(\"(...) => { ... }\");\n });\n });\n\n describe(\"Nicifiable interface\", () => {\n test(\"object implementing Nicifiable\", () => {\n const nicifiable = {\n value: 42,\n getNicifiableKeys() {\n return [\"value\"];\n },\n getNicifiedObjectExtraLines() {\n return [\"// custom comment\"];\n }\n };\n expect(nicify(nicifiable)).toBe(deindent`\n {\n \"value\": 42,\n // custom comment,\n }\n `);\n });\n });\n\n describe(\"unknown types\", () => {\n test(\"object without prototype\", () => {\n const unknownType = Object.create(null);\n unknownType.value = \"test\";\n expect(nicify(unknownType)).toBe('{ \"value\": \"test\" }');\n });\n });\n});\n"],"mappings":";;;;AAGA,SAAS,gBAAgB;AACvB,UAAS,0BAA0B;AACjC,OAAK,iBAAiB;AACpB,UAAO,OAAO,IAAI,CAAC,CAAC,KAAK,MAAM;AAC/B,UAAO,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO;IACjC;AAEF,OAAK,iBAAiB;AACpB,UAAO,OAAO,QAAQ,CAAC,CAAC,KAAK,YAAU;IACvC;AAEF,OAAK,kBAAkB;AACrB,UAAO,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO;AACjC,UAAO,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ;IACnC;AAEF,OAAK,4BAA4B;AAC/B,UAAO,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO;AACjC,UAAO,OAAO,OAAU,CAAC,CAAC,KAAK,YAAY;IAC3C;AAEF,OAAK,iBAAiB;AACpB,UAAO,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,eAAe;IACnD;GACF;AAEF,UAAS,gBAAgB;AACvB,OAAK,qBAAqB;AACxB,UAAO,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK;IAC7B;AAEF,OAAK,8BAA8B;AACjC,UAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;IAC/B;AAEF,OAAK,gDAAgD;AACnD,UAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,wBAAsB;IAC/D;AAEF,OAAK,oBAAoB;AACvB,UAAO,OAAO;IAAC;IAAG;IAAG;IAAE,CAAC,CAAC,CAAC,KAAK,YAAY;IAC3C;AAEF,OAAK,sBAAsB;AACzB,UAAO,OAAO;IAAC;IAAO;IAAG;IAAE,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;;QAMzC;IACF;AAEF,OAAK,sBAAsB;AACzB,UAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;QAKvC;IACF;GACF;AAEF,UAAS,iBAAiB;AACxB,OAAK,sBAAsB;AACzB,UAAO,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK;IAC7B;AAEF,OAAK,uBAAuB;AAC1B,UAAO,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,eAAa;IAC3C;AAEF,OAAK,0BAA0B;AAC7B,UAAO,OAAO;IAAE,GAAG;IAAG,GAAG;IAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;QAK1C;IACF;GACF;AAEF,UAAS,wBAAwB;AAC/B,OAAK,wBAAwB;GAC3B,MAAM,UAAU;IACd,YAAY,AAAO,OAAe;KAAf;;;AAErB,UAAO,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,8BAA4B;IACnE;GACF;AAEF,UAAS,0BAA0B;AACjC,OAAK,aAAa;AAChB,UAAO,OAAO,IAAI,IAAI,sBAAsB,CAAC,CAAC,CAAC,KAAK,gCAA8B;IAClF;AAEF,OAAK,qBAAqB;AACxB,UAAO,OAAO,IAAI,WAAW;IAAC;IAAG;IAAG;IAAE,CAAC,CAAC,CAAC,CAAC,KAAK,sBAAsB;AACrE,UAAO,OAAO,IAAI,WAAW;IAAC;IAAG;IAAG;IAAE,CAAC,CAAC,CAAC,CAAC,KAAK,sBAAsB;IACrE;AAEF,OAAK,uBAAuB;AAG1B,UADsB,OAAO,EAAE,uBADjB,IAAI,MAAM,aAAa,EACC,CAAC,CAClB,CAAC,QAAQ,IAAI,OAAO,QAAQ;;;;;;QAM/C,CAAC;IACH;AAEF,OAAK,wDAAwD;GAC3D,MAAM,QAAQ,IAAI,MAAM,cAAc,EAAE,uBAAO,IAAI,MAAM,QAAQ,EAAE,CAAC;AACpE,GAAC,MAAc,QAAQ;AAEvB,UADsB,OAAO,OAAO,EAAE,YAAY,MAAM,CAAC,CACpC,CAAC,QAAQ,IAAI,OAAO,QAAQ;;;;;;;;;QAS/C,CAAC;IACH;AAEF,OAAK,iBAAiB;GACpB,MAAM,UAAU,IAAI,SAAS;AAC7B,WAAQ,OAAO,gBAAgB,mBAAmB;AAClD,WAAQ,OAAO,UAAU,aAAa;AACtC,UAAO,OAAO,QAAQ,CAAC,CAAC,KAAK,QAAQ;;;;WAKpC;IACD;GACF;AAEF,UAAS,2BAA2B;AAClC,OAAK,yBAAyB;AAC5B,UAAO,OAAO,eAAe,CAAC,CAAC,KAAK,iCAAiC;IACrE;AAEF,OAAK,yCAAyC;AAC5C,UAAO,OAAO,iBAAiB,CAAC,CAAC,KAAK,2CAAyC;IAC/E;AAEF,OAAK,oCAAoC;AACvC,UAAO,OAAO,WAAW,CAAC,CAAC,KAAK,+BAA+B;IAC/D;AAEF,OAAK,kDAAkD;AACrD,UAAO,OAAO,YAAY,CAAC,CAAC,KAAK,kCAAkC;IACnE;GACF;AAEF,UAAS,6BAA6B;AACpC,OAAK,oCAAoC;GACvC,MAAM,WAAgB,EAAE,GAAG,GAAG;AAC9B,YAAS,OAAO;AAChB,UAAO,OAAO,SAAS,CAAC,CAAC,KAAK,QAAQ;;;;WAKrC;IACD;GACF;AAEF,UAAS,+BAA+B;AACtC,OAAK,kBAAkB;AAErB,UAAO,OADM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7B,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,gCAA4B;IACvE;AAEF,OAAK,oBAAoB;AACvB,UAAO,OAAO;IAAE,GAAG;IAAG,GAAG;IAAG,EAAE,EAAE,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;QAKlE;IACF;AAEF,OAAK,oBAAoB;AACvB,UAAO,OAAO;IAAE,GAAG;IAAG,GAAG;IAAG,QAAQ;IAAU,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;;QAMxF;IACF;GACF;AAEF,UAAS,0BAA0B;AACjC,OAAK,mCAAmC;AACtC,UAAO,OAAO,EAAE,MAAM,WAAW,EAAE,EACjC,aAAa,UAAmB;AAC9B,QAAI,OAAO,UAAU,YAAY,SAAS,UAAU,SAAU,MAAc,SAAS,UACnF,QAAO;AAET,WAAO;OAEV,CAAC,CAAC,CAAC,KAAK,UAAU;IACnB;GACF;AAEF,UAAS,mBAAmB;AAC1B,OAAK,wBAAwB;AAC3B,UAAO,OAAO,SAAS,gBAAgB,GAAG,CAAC,CAAC,KAAK,sCAAsC;IACvF;AAEF,OAAK,wBAAwB;AAC3B,UAAO,aAAa,GAAG,CAAC,CAAC,KAAK,mBAAmB;IACjD;GACF;AAEF,UAAS,8BAA8B;AACrC,OAAK,wCAAwC;AAU3C,UAAO,OATY;IACjB,OAAO;IACP,oBAAoB;AAClB,YAAO,CAAC,QAAQ;;IAElB,8BAA8B;AAC5B,YAAO,CAAC,oBAAoB;;IAE/B,CACwB,CAAC,CAAC,KAAK,QAAQ;;;;;QAKtC;IACF;GACF;AAEF,UAAS,uBAAuB;AAC9B,OAAK,kCAAkC;GACrC,MAAM,cAAc,OAAO,OAAO,KAAK;AACvC,eAAY,QAAQ;AACpB,UAAO,OAAO,YAAY,CAAC,CAAC,KAAK,0BAAsB;IACvD;GACF;EACF"}
1
+ {"version":3,"file":"strings.nicify.test.js","names":[],"sources":["../../../src/utils/strings.nicify.test.ts"],"sourcesContent":["import { describe, expect, test } from \"vitest\";\nimport { NicifyOptions, deindent, nicify } from \"./strings\";\n\ndescribe(\"nicify\", () => {\n describe(\"primitive values\", () => {\n test(\"numbers\", () => {\n expect(nicify(123)).toBe(\"123\");\n expect(nicify(123n)).toBe(\"123n\");\n });\n\n test(\"strings\", () => {\n expect(nicify(\"hello\")).toBe('\"hello\"');\n });\n\n test(\"booleans\", () => {\n expect(nicify(true)).toBe(\"true\");\n expect(nicify(false)).toBe(\"false\");\n });\n\n test(\"null and undefined\", () => {\n expect(nicify(null)).toBe(\"null\");\n expect(nicify(undefined)).toBe(\"undefined\");\n });\n\n test(\"symbols\", () => {\n expect(nicify(Symbol(\"test\"))).toBe(\"Symbol(test)\");\n });\n });\n\n describe(\"arrays\", () => {\n test(\"empty array\", () => {\n expect(nicify([])).toBe(\"[]\");\n });\n\n test(\"single-element array\", () => {\n expect(nicify([1])).toBe(\"[1]\");\n });\n\n test(\"single-element array with long content\", () => {\n expect(nicify([\"123123123123123\"])).toBe('[\"123123123123123\"]');\n });\n\n test(\"flat array\", () => {\n expect(nicify([1, 2, 3])).toBe(\"[1, 2, 3]\");\n });\n\n test(\"longer array\", () => {\n expect(nicify([10000, 2, 3])).toBe(deindent`\n [\n 10000,\n 2,\n 3,\n ]\n `);\n });\n\n test(\"nested array\", () => {\n expect(nicify([1, [2, 3]])).toBe(deindent`\n [\n 1,\n [2, 3],\n ]\n `);\n });\n });\n\n describe(\"objects\", () => {\n test(\"empty object\", () => {\n expect(nicify({})).toBe(\"{}\");\n });\n\n test(\"simple object\", () => {\n expect(nicify({ a: 1 })).toBe('{ \"a\": 1 }');\n });\n\n test(\"multiline object\", () => {\n expect(nicify({ a: 1, b: 2 })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n }\n `);\n });\n });\n\n describe(\"custom classes\", () => {\n test(\"class instance\", () => {\n class TestClass {\n constructor(public value: number) {}\n }\n expect(nicify(new TestClass(42))).toBe('TestClass { \"value\": 42 }');\n });\n });\n\n describe(\"built-in objects\", () => {\n test(\"URL\", () => {\n expect(nicify(new URL(\"https://example.com\"))).toBe('URL(\"https://example.com/\")');\n });\n\n test(\"TypedArrays\", () => {\n expect(nicify(new Uint8Array([1, 2, 3]))).toBe(\"Uint8Array([1,2,3])\");\n expect(nicify(new Int32Array([1, 2, 3]))).toBe(\"Int32Array([1,2,3])\");\n });\n\n test(\"Error objects\", () => {\n const error = new Error(\"test error\");\n const nicifiedError = nicify({ error });\n expect(nicifiedError).toMatch(new RegExp(deindent`\n ^\\{\n \"error\": Error: test error\n Stack:\n at (.|\\\\n)*\n \\}$\n `));\n });\n\n test(\"Error objects with cause and an extra property\", () => {\n const error = new Error(\"test error\", { cause: new Error(\"cause\") });\n (error as any).extra = \"something\";\n const nicifiedError = nicify(error, { lineIndent: \"--\" });\n expect(nicifiedError).toMatch(new RegExp(deindent`\n ^Error: test error\n --Stack:\n ----at (.|\\\\n)+\n --Extra properties: \\{ \"extra\": \"something\" \\}\n --Cause:\n ----Error: cause\n ------Stack:\n --------at (.|\\\\n)+$\n `));\n });\n\n test(\"Headers\", () => {\n const headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"text/plain\");\n expect(nicify(headers)).toBe(deindent`\n Headers {\n \"accept\": \"text/plain\",\n \"content-type\": \"application/json\",\n }`\n );\n });\n });\n\n describe(\"multiline strings\", () => {\n test(\"basic multiline\", () => {\n expect(nicify(\"line1\\nline2\")).toBe('deindent`\\n line1\\n line2\\n`');\n });\n\n test(\"multiline with trailing newline\", () => {\n expect(nicify(\"line1\\nline2\\n\")).toBe('deindent`\\n line1\\n line2\\n` + \"\\\\n\"');\n });\n\n test(\"multiline with dollar sign\", () => {\n expect(nicify(\"a\\n$b\\nc\")).toBe('deindent`\\n a\\n $b\\n c\\n`');\n });\n\n test(\"multiline with dollar sign interpolation\", () => {\n expect(nicify(\"a\\n${b\\nc\")).toBe('deindent`\\n a\\n \\\\${b\\n c\\n`');\n });\n });\n\n describe(\"circular references\", () => {\n test(\"object with self reference\", () => {\n const circular: any = { a: 1 };\n circular.self = circular;\n expect(nicify(circular)).toBe(deindent`\n {\n \"a\": 1,\n \"self\": Ref<value>,\n }`\n );\n });\n });\n\n describe(\"configuration options\", () => {\n test(\"maxDepth\", () => {\n const deep = { a: { b: { c: { d: { e: 1 } } } } };\n expect(nicify(deep, { maxDepth: 2 })).toBe('{ \"a\": { \"b\": { ... } } }');\n });\n\n test(\"lineIndent\", () => {\n expect(nicify({ a: 1, b: 2 }, { lineIndent: \" \" })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n }\n `);\n });\n\n test(\"hideFields\", () => {\n expect(nicify({ a: 1, b: 2, secret: \"hidden\" }, { hideFields: [\"secret\"] })).toBe(deindent`\n {\n \"a\": 1,\n \"b\": 2,\n <some fields may have been hidden>,\n }\n `);\n });\n });\n\n describe(\"custom overrides\", () => {\n test(\"override with custom type\", () => {\n expect(nicify({ type: \"special\" }, {\n overrides: ((value: unknown) => {\n if (typeof value === \"object\" && value && \"type\" in value && (value as any).type === \"special\") {\n return \"SPECIAL\";\n }\n return null;\n }) as NicifyOptions[\"overrides\"]\n })).toBe(\"SPECIAL\");\n });\n });\n\n describe(\"functions\", () => {\n test(\"named function\", () => {\n expect(nicify(function namedFunction() {})).toBe(\"function namedFunction(...) { ... }\");\n });\n\n test(\"arrow function\", () => {\n expect(nicify(() => {})).toBe(\"(...) => { ... }\");\n });\n });\n\n describe(\"Nicifiable interface\", () => {\n test(\"object implementing Nicifiable\", () => {\n const nicifiable = {\n value: 42,\n getNicifiableKeys() {\n return [\"value\"];\n },\n getNicifiedObjectExtraLines() {\n return [\"// custom comment\"];\n }\n };\n expect(nicify(nicifiable)).toBe(deindent`\n {\n \"value\": 42,\n // custom comment,\n }\n `);\n });\n });\n\n describe(\"unknown types\", () => {\n test(\"object without prototype\", () => {\n const unknownType = Object.create(null);\n unknownType.value = \"test\";\n expect(nicify(unknownType)).toBe('{ \"value\": \"test\" }');\n });\n });\n});\n"],"mappings":";;;AAGA,SAAS,gBAAgB;CACvB,SAAS,0BAA0B;EACjC,KAAK,iBAAiB;GACpB,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;GAC9B,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;EAClC,CAAC;EAED,KAAK,iBAAiB;GACpB,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,WAAS;EACxC,CAAC;EAED,KAAK,kBAAkB;GACrB,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;GAChC,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;EACpC,CAAC;EAED,KAAK,4BAA4B;GAC/B,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;GAChC,OAAO,OAAO,KAAA,CAAS,CAAC,CAAC,CAAC,KAAK,WAAW;EAC5C,CAAC;EAED,KAAK,iBAAiB;GACpB,OAAO,OAAO,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc;EACpD,CAAC;CACH,CAAC;CAED,SAAS,gBAAgB;EACvB,KAAK,qBAAqB;GACxB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;EAC9B,CAAC;EAED,KAAK,8BAA8B;GACjC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;EAChC,CAAC;EAED,KAAK,gDAAgD;GACnD,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,uBAAqB;EAChE,CAAC;EAED,KAAK,oBAAoB;GACvB,OAAO,OAAO;IAAC;IAAG;IAAG;GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW;EAC5C,CAAC;EAED,KAAK,sBAAsB;GACzB,OAAO,OAAO;IAAC;IAAO;IAAG;GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;;OAM1C;EACH,CAAC;EAED,KAAK,sBAAsB;GACzB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;OAKxC;EACH,CAAC;CACH,CAAC;CAED,SAAS,iBAAiB;EACxB,KAAK,sBAAsB;GACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;EAC9B,CAAC;EAED,KAAK,uBAAuB;GAC1B,OAAO,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,cAAY;EAC5C,CAAC;EAED,KAAK,0BAA0B;GAC7B,OAAO,OAAO;IAAE,GAAG;IAAG,GAAG;GAAE,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;OAK3C;EACH,CAAC;CACH,CAAC;CAED,SAAS,wBAAwB;EAC/B,KAAK,wBAAwB;GAC3B,MAAM,UAAU;IACd,YAAY,OAAsB;KAAf,KAAA,QAAA;IAAgB;GACrC;GACA,OAAO,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,6BAA2B;EACpE,CAAC;CACH,CAAC;CAED,SAAS,0BAA0B;EACjC,KAAK,aAAa;GAChB,OAAO,OAAO,IAAI,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,+BAA6B;EACnF,CAAC;EAED,KAAK,qBAAqB;GACxB,OAAO,OAAO,IAAI,WAAW;IAAC;IAAG;IAAG;GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,qBAAqB;GACpE,OAAO,OAAO,IAAI,WAAW;IAAC;IAAG;IAAG;GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,qBAAqB;EACtE,CAAC;EAED,KAAK,uBAAuB;GAG1B,OADsB,OAAO,EAAE,uBAAA,IADb,MAAM,YACW,EAAE,CAClB,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,QAAQ;;;;;;OAMhD,CAAC;EACJ,CAAC;EAED,KAAK,wDAAwD;GAC3D,MAAM,QAAQ,IAAI,MAAM,cAAc,EAAE,uBAAO,IAAI,MAAM,OAAO,EAAE,CAAC;GACnE,MAAe,QAAQ;GAEvB,OADsB,OAAO,OAAO,EAAE,YAAY,KAAK,CACpC,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,QAAQ;;;;;;;;;OAShD,CAAC;EACJ,CAAC;EAED,KAAK,iBAAiB;GACpB,MAAM,UAAU,IAAI,QAAQ;GAC5B,QAAQ,OAAO,gBAAgB,kBAAkB;GACjD,QAAQ,OAAO,UAAU,YAAY;GACrC,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;UAKrC;EACF,CAAC;CACH,CAAC;CAED,SAAS,2BAA2B;EAClC,KAAK,yBAAyB;GAC5B,OAAO,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,gCAAgC;EACtE,CAAC;EAED,KAAK,yCAAyC;GAC5C,OAAO,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,0CAAwC;EAChF,CAAC;EAED,KAAK,oCAAoC;GACvC,OAAO,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,8BAA8B;EAChE,CAAC;EAED,KAAK,kDAAkD;GACrD,OAAO,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,iCAAiC;EACpE,CAAC;CACH,CAAC;CAED,SAAS,6BAA6B;EACpC,KAAK,oCAAoC;GACvC,MAAM,WAAgB,EAAE,GAAG,EAAE;GAC7B,SAAS,OAAO;GAChB,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;UAKtC;EACF,CAAC;CACH,CAAC;CAED,SAAS,+BAA+B;EACtC,KAAK,kBAAkB;GAErB,OAAO,OAAO,EADC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7B,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,+BAA2B;EACxE,CAAC;EAED,KAAK,oBAAoB;GACvB,OAAO,OAAO;IAAE,GAAG;IAAG,GAAG;GAAE,GAAG,EAAE,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;OAKnE;EACH,CAAC;EAED,KAAK,oBAAoB;GACvB,OAAO,OAAO;IAAE,GAAG;IAAG,GAAG;IAAG,QAAQ;GAAS,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;;OAMzF;EACH,CAAC;CACH,CAAC;CAED,SAAS,0BAA0B;EACjC,KAAK,mCAAmC;GACtC,OAAO,OAAO,EAAE,MAAM,UAAU,GAAG,EACjC,aAAa,UAAmB;IAC9B,IAAI,OAAO,UAAU,YAAY,SAAS,UAAU,SAAU,MAAc,SAAS,WACnF,OAAO;IAET,OAAO;GACT,GACF,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;EACpB,CAAC;CACH,CAAC;CAED,SAAS,mBAAmB;EAC1B,KAAK,wBAAwB;GAC3B,OAAO,OAAO,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,qCAAqC;EACxF,CAAC;EAED,KAAK,wBAAwB;GAC3B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB;EAClD,CAAC;CACH,CAAC;CAED,SAAS,8BAA8B;EACrC,KAAK,wCAAwC;GAU3C,OAAO,OAAO;IARZ,OAAO;IACP,oBAAoB;KAClB,OAAO,CAAC,OAAO;IACjB;IACA,8BAA8B;KAC5B,OAAO,CAAC,mBAAmB;IAC7B;GAEqB,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;;;;;OAKvC;EACH,CAAC;CACH,CAAC;CAED,SAAS,uBAAuB;EAC9B,KAAK,kCAAkC;GACrC,MAAM,cAAc,OAAO,OAAO,IAAI;GACtC,YAAY,QAAQ;GACpB,OAAO,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,yBAAqB;EACxD,CAAC;CACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","names":[],"sources":["../../../src/utils/telemetry.tsx"],"mappings":";;;iBAMgB,aAAA,oBAAA,CAAkC,oBAAA;EAAiC,WAAA;EAAqB,UAAA,GAAa,MAAA,SAAe,cAAA;AAAA,GAAmB,EAAA,MAAQ,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,QAAS,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA;AAAA,iBAM1L,SAAA,GAAA,CAAa,oBAAA;EAAiC,WAAA;EAAqB,UAAA,GAAa,MAAA,SAAe,cAAA;AAAA,GAAmB,EAAA,GAAK,IAAA,EAAM,IAAA,KAAS,OAAA,CAAQ,CAAA,IAAK,OAAA,CAAQ,CAAA;AAAA,iBAgBjK,GAAA,CAAI,OAAA,UAAiB,UAAA,EAAY,UAAA"}
1
+ {"version":3,"file":"telemetry.d.ts","names":[],"sources":["../../../src/utils/telemetry.tsx"],"mappings":";;;iBAMgB,aAAA,qBAAkC,oBAAA;EAAiC,WAAA;EAAqB,UAAA,GAAa,MAAA,SAAe,cAAA;AAAA,GAAmB,EAAA,MAAQ,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,QAAS,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA;AAAA,iBAM1L,SAAA,IAAa,oBAAA;EAAiC,WAAA;EAAqB,UAAA,GAAa,MAAA,SAAe,cAAA;AAAA,GAAmB,EAAA,GAAK,IAAA,EAAM,IAAA,KAAS,OAAA,CAAQ,CAAA,IAAK,OAAA,CAAQ,CAAA;AAAA,iBAgBjK,GAAA,CAAI,OAAA,UAAiB,UAAA,EAAY,UAAU"}
@@ -1,7 +1,6 @@
1
1
  import { HexclaveAssertionError } from "./errors.js";
2
2
  import { getEnvVariable } from "./env.js";
3
3
  import { trace } from "@opentelemetry/api";
4
-
5
4
  //#region src/utils/telemetry.tsx
6
5
  const tracer = trace.getTracer("stack-tracer");
7
6
  function withTraceSpan(optionsOrDescription, fn) {
@@ -25,7 +24,7 @@ function log(message, attributes) {
25
24
  if (span) span.addEvent(message, attributes);
26
25
  else if (getEnvVariable("STACK_SEED_MODE", "false") !== "true") throw new HexclaveAssertionError("No active span found");
27
26
  }
28
-
29
27
  //#endregion
30
28
  export { log, traceSpan, withTraceSpan };
29
+
31
30
  //# sourceMappingURL=telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","names":[],"sources":["../../../src/utils/telemetry.tsx"],"sourcesContent":["import { Attributes, AttributeValue, Span, trace } from \"@opentelemetry/api\";\nimport { getEnvVariable } from \"./env\";\nimport { HexclaveAssertionError } from \"./errors\";\n\nconst tracer = trace.getTracer('stack-tracer');\n\nexport function withTraceSpan<P extends any[], T>(optionsOrDescription: string | { description: string, attributes?: Record<string, AttributeValue> }, fn: (...args: P) => Promise<T>): (...args: P) => Promise<T> {\n return async (...args: P) => {\n return await traceSpan(optionsOrDescription, (span) => fn(...args));\n };\n}\n\nexport async function traceSpan<T>(optionsOrDescription: string | { description: string, attributes?: Record<string, AttributeValue> }, fn: (span: Span) => Promise<T>): Promise<T> {\n let options = typeof optionsOrDescription === 'string' ? { description: optionsOrDescription } : optionsOrDescription;\n return await tracer.startActiveSpan(`STACK: ${options.description}`, async (span) => {\n if (options.attributes) {\n for (const [key, value] of Object.entries(options.attributes)) {\n span.setAttribute(key, value);\n }\n }\n try {\n return await fn(span);\n } finally {\n span.end();\n }\n });\n}\n\nexport function log(message: string, attributes: Attributes) {\n const span = trace.getActiveSpan();\n if (span) {\n span.addEvent(message, attributes);\n // Telemetry is not initialized while seeding, so we don't want to throw an error\n } else if (getEnvVariable('STACK_SEED_MODE', 'false') !== 'true') {\n throw new HexclaveAssertionError('No active span found');\n }\n}\n"],"mappings":";;;;;AAIA,MAAM,SAAS,MAAM,UAAU,eAAe;AAE9C,SAAgB,cAAkC,sBAAqG,IAA4D;AACjN,QAAO,OAAO,GAAG,SAAY;AAC3B,SAAO,MAAM,UAAU,uBAAuB,SAAS,GAAG,GAAG,KAAK,CAAC;;;AAIvE,eAAsB,UAAa,sBAAqG,IAA4C;CAClL,IAAI,UAAU,OAAO,yBAAyB,WAAW,EAAE,aAAa,sBAAsB,GAAG;AACjG,QAAO,MAAM,OAAO,gBAAgB,UAAU,QAAQ,eAAe,OAAO,SAAS;AACnF,MAAI,QAAQ,WACV,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,WAAW,CAC3D,MAAK,aAAa,KAAK,MAAM;AAGjC,MAAI;AACF,UAAO,MAAM,GAAG,KAAK;YACb;AACR,QAAK,KAAK;;GAEZ;;AAGJ,SAAgB,IAAI,SAAiB,YAAwB;CAC3D,MAAM,OAAO,MAAM,eAAe;AAClC,KAAI,KACF,MAAK,SAAS,SAAS,WAAW;UAEzB,eAAe,mBAAmB,QAAQ,KAAK,OACxD,OAAM,IAAI,uBAAuB,uBAAuB"}
1
+ {"version":3,"file":"telemetry.js","names":[],"sources":["../../../src/utils/telemetry.tsx"],"sourcesContent":["import { Attributes, AttributeValue, Span, trace } from \"@opentelemetry/api\";\nimport { getEnvVariable } from \"./env\";\nimport { HexclaveAssertionError } from \"./errors\";\n\nconst tracer = trace.getTracer('stack-tracer');\n\nexport function withTraceSpan<P extends any[], T>(optionsOrDescription: string | { description: string, attributes?: Record<string, AttributeValue> }, fn: (...args: P) => Promise<T>): (...args: P) => Promise<T> {\n return async (...args: P) => {\n return await traceSpan(optionsOrDescription, (span) => fn(...args));\n };\n}\n\nexport async function traceSpan<T>(optionsOrDescription: string | { description: string, attributes?: Record<string, AttributeValue> }, fn: (span: Span) => Promise<T>): Promise<T> {\n let options = typeof optionsOrDescription === 'string' ? { description: optionsOrDescription } : optionsOrDescription;\n return await tracer.startActiveSpan(`STACK: ${options.description}`, async (span) => {\n if (options.attributes) {\n for (const [key, value] of Object.entries(options.attributes)) {\n span.setAttribute(key, value);\n }\n }\n try {\n return await fn(span);\n } finally {\n span.end();\n }\n });\n}\n\nexport function log(message: string, attributes: Attributes) {\n const span = trace.getActiveSpan();\n if (span) {\n span.addEvent(message, attributes);\n // Telemetry is not initialized while seeding, so we don't want to throw an error\n } else if (getEnvVariable('STACK_SEED_MODE', 'false') !== 'true') {\n throw new HexclaveAssertionError('No active span found');\n }\n}\n"],"mappings":";;;;AAIA,MAAM,SAAS,MAAM,UAAU,cAAc;AAE7C,SAAgB,cAAkC,sBAAqG,IAA4D;CACjN,OAAO,OAAO,GAAG,SAAY;EAC3B,OAAO,MAAM,UAAU,uBAAuB,SAAS,GAAG,GAAG,IAAI,CAAC;CACpE;AACF;AAEA,eAAsB,UAAa,sBAAqG,IAA4C;CAClL,IAAI,UAAU,OAAO,yBAAyB,WAAW,EAAE,aAAa,qBAAqB,IAAI;CACjG,OAAO,MAAM,OAAO,gBAAgB,UAAU,QAAQ,eAAe,OAAO,SAAS;EACnF,IAAI,QAAQ,YACV,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,UAAU,GAC1D,KAAK,aAAa,KAAK,KAAK;EAGhC,IAAI;GACF,OAAO,MAAM,GAAG,IAAI;EACtB,UAAU;GACR,KAAK,IAAI;EACX;CACF,CAAC;AACH;AAEA,SAAgB,IAAI,SAAiB,YAAwB;CAC3D,MAAM,OAAO,MAAM,cAAc;CACjC,IAAI,MACF,KAAK,SAAS,SAAS,UAAU;MAE5B,IAAI,eAAe,mBAAmB,OAAO,MAAM,QACxD,MAAM,IAAI,uBAAuB,sBAAsB;AAE3D"}
@@ -1,4 +1,4 @@
1
- import { TurnstileAction } from "./turnstile";
1
+ import { TurnstileAction } from "./turnstile.js";
2
2
 
3
3
  //#region src/utils/turnstile-browser.d.ts
4
4
  type TurnstileWidgetId = string;
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile-browser.d.ts","names":[],"sources":["../../../src/utils/turnstile-browser.ts"],"mappings":";;;KAGY,iBAAA;AAAA,KACA,cAAA;AAAA,KACA,mBAAA;AAAA,KACA,kBAAA;AAAA,KACA,aAAA;AAAA,KAEA,eAAA;EACV,OAAA;EACA,MAAA,EAAQ,eAAA;EACR,KAAA,GAAQ,cAAA;EACR,UAAA,GAAa,mBAAA;EACb,SAAA,GAAY,kBAAA;EACZ,IAAA,GAAO,aAAA;EACP,QAAA,GAAW,KAAA;EACX,gBAAA,GAAmB,SAAA;EACnB,kBAAA;EACA,kBAAA;AAAA;AAAA,KAGU,YAAA;EACV,MAAA,GAAS,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,eAAA,KAAoB,iBAAA;EAC7D,OAAA,IAAW,QAAA,EAAU,iBAAA;EACrB,MAAA,GAAS,QAAA,EAAU,iBAAA;EACnB,KAAA,IAAS,QAAA,EAAU,iBAAA;AAAA;AAAA,iBAML,cAAA,CAAe,KAAA,YAAiB,KAAA,IAAS,YAAA;AAAA,iBAOzC,eAAA,CAAA,GAAmB,YAAA;AAAA,iBAWnB,mBAAA,CAAA,GAAuB,OAAA"}
1
+ {"version":3,"file":"turnstile-browser.d.ts","names":[],"sources":["../../../src/utils/turnstile-browser.ts"],"mappings":";;;KAGY,iBAAA;AAAA,KACA,cAAA;AAAA,KACA,mBAAA;AAAA,KACA,kBAAA;AAAA,KACA,aAAA;AAAA,KAEA,eAAA;EACV,OAAA;EACA,MAAA,EAAQ,eAAA;EACR,KAAA,GAAQ,cAAA;EACR,UAAA,GAAa,mBAAA;EACb,SAAA,GAAY,kBAAA;EACZ,IAAA,GAAO,aAAA;EACP,QAAA,GAAW,KAAA;EACX,gBAAA,GAAmB,SAAA;EACnB,kBAAA;EACA,kBAAA;AAAA;AAAA,KAGU,YAAA;EACV,MAAA,GAAS,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,eAAA,KAAoB,iBAAA;EAC7D,OAAA,IAAW,QAAA,EAAU,iBAAA;EACrB,MAAA,GAAS,QAAA,EAAU,iBAAA;EACnB,KAAA,IAAS,QAAA,EAAU,iBAAA;AAAA;AAAA,iBAML,cAAA,CAAe,KAAA,YAAiB,KAAA,IAAS,YAAY;AAAA,iBAOrD,eAAA,IAAmB,YAAY;AAAA,iBAW/B,mBAAA,IAAuB,OAAO"}
@@ -1,5 +1,4 @@
1
1
  import { HexclaveAssertionError } from "./errors.js";
2
-
3
2
  //#region src/utils/turnstile-browser.ts
4
3
  const TURNSTILE_SCRIPT_BASE_URL = "https://challenges.cloudflare.com/turnstile/v0/api.js";
5
4
  const TURNSTILE_SCRIPT_LOAD_TIMEOUT_MS = 3e4;
@@ -55,7 +54,7 @@ function loadTurnstileScript() {
55
54
  });
56
55
  return turnstileScriptPromise;
57
56
  }
58
-
59
57
  //#endregion
60
58
  export { getTurnstileApi, isTurnstileApi, loadTurnstileScript };
59
+
61
60
  //# sourceMappingURL=turnstile-browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile-browser.js","names":[],"sources":["../../../src/utils/turnstile-browser.ts"],"sourcesContent":["import { HexclaveAssertionError } from \"./errors\";\nimport { TurnstileAction } from \"./turnstile\";\n\nexport type TurnstileWidgetId = string;\nexport type TurnstileTheme = \"auto\" | \"light\" | \"dark\";\nexport type TurnstileAppearance = \"always\" | \"execute\" | \"interaction-only\";\nexport type TurnstileExecution = \"render\" | \"execute\";\nexport type TurnstileSize = \"invisible\" | \"flexible\" | \"normal\" | \"compact\";\n\nexport type TurnstileConfig = {\n sitekey: string,\n action: TurnstileAction,\n theme?: TurnstileTheme,\n appearance?: TurnstileAppearance,\n execution?: TurnstileExecution,\n size?: TurnstileSize,\n callback: (token: string) => void,\n \"error-callback\": (errorCode?: string) => void,\n \"expired-callback\": () => void,\n \"timeout-callback\"?: () => void,\n};\n\nexport type TurnstileApi = {\n render: (container: HTMLElement, config: TurnstileConfig) => TurnstileWidgetId,\n execute?: (widgetId: TurnstileWidgetId) => void,\n remove: (widgetId: TurnstileWidgetId) => void,\n reset?: (widgetId: TurnstileWidgetId) => void,\n};\n\nconst TURNSTILE_SCRIPT_BASE_URL = \"https://challenges.cloudflare.com/turnstile/v0/api.js\";\nconst TURNSTILE_SCRIPT_LOAD_TIMEOUT_MS = 30_000;\n\nexport function isTurnstileApi(value: unknown): value is TurnstileApi {\n return typeof value === \"object\"\n && value !== null\n && \"render\" in value\n && \"remove\" in value;\n}\n\nexport function getTurnstileApi(): TurnstileApi | undefined {\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n const maybeTurnstile = Reflect.get(window, \"turnstile\");\n return isTurnstileApi(maybeTurnstile) ? maybeTurnstile : undefined;\n}\n\nlet turnstileScriptPromise: Promise<void> | null = null;\n\nexport function loadTurnstileScript(): Promise<void> {\n if (typeof window === \"undefined\") {\n return Promise.reject(new HexclaveAssertionError(\"Turnstile can only be loaded in the browser\"));\n }\n\n if (getTurnstileApi()) {\n return Promise.resolve();\n }\n\n turnstileScriptPromise ??= new Promise<void>((resolve, reject) => {\n const rejectAndReset = (err: Error) => {\n turnstileScriptPromise = null;\n reject(err);\n };\n\n const timeout = setTimeout(() => {\n rejectAndReset(new Error(\"Turnstile script load timed out\"));\n }, TURNSTILE_SCRIPT_LOAD_TIMEOUT_MS);\n\n const resolveAndClearTimeout = () => {\n clearTimeout(timeout);\n resolve();\n };\n\n const existingScript = document.querySelector<HTMLScriptElement>(`script[src^=\"${TURNSTILE_SCRIPT_BASE_URL}\"]`);\n if (existingScript) {\n // If the Turnstile API is already available (script loaded before our loader ran),\n // resolve immediately — the load event may have already fired.\n if (getTurnstileApi()) {\n resolveAndClearTimeout();\n return;\n }\n existingScript.addEventListener(\"load\", () => resolveAndClearTimeout(), { once: true });\n existingScript.addEventListener(\"error\", () => {\n existingScript.remove();\n clearTimeout(timeout);\n rejectAndReset(new Error(\"Failed to load Turnstile\"));\n }, { once: true });\n return;\n }\n\n const script = document.createElement(\"script\");\n script.src = `${TURNSTILE_SCRIPT_BASE_URL}?render=explicit`;\n script.async = true;\n script.defer = true;\n script.onload = () => resolveAndClearTimeout();\n script.onerror = () => {\n script.remove();\n clearTimeout(timeout);\n rejectAndReset(new Error(\"Failed to load Turnstile\"));\n };\n document.head.append(script);\n });\n\n return turnstileScriptPromise;\n}\n"],"mappings":";;;AA6BA,MAAM,4BAA4B;AAClC,MAAM,mCAAmC;AAEzC,SAAgB,eAAe,OAAuC;AACpE,QAAO,OAAO,UAAU,YACnB,UAAU,QACV,YAAY,SACZ,YAAY;;AAGnB,SAAgB,kBAA4C;AAC1D,KAAI,OAAO,WAAW,YACpB;CAGF,MAAM,iBAAiB,QAAQ,IAAI,QAAQ,YAAY;AACvD,QAAO,eAAe,eAAe,GAAG,iBAAiB;;AAG3D,IAAI,yBAA+C;AAEnD,SAAgB,sBAAqC;AACnD,KAAI,OAAO,WAAW,YACpB,QAAO,QAAQ,OAAO,IAAI,uBAAuB,8CAA8C,CAAC;AAGlG,KAAI,iBAAiB,CACnB,QAAO,QAAQ,SAAS;AAG1B,4BAA2B,IAAI,SAAe,SAAS,WAAW;EAChE,MAAM,kBAAkB,QAAe;AACrC,4BAAyB;AACzB,UAAO,IAAI;;EAGb,MAAM,UAAU,iBAAiB;AAC/B,kCAAe,IAAI,MAAM,kCAAkC,CAAC;KAC3D,iCAAiC;EAEpC,MAAM,+BAA+B;AACnC,gBAAa,QAAQ;AACrB,YAAS;;EAGX,MAAM,iBAAiB,SAAS,cAAiC,gBAAgB,0BAA0B,IAAI;AAC/G,MAAI,gBAAgB;AAGlB,OAAI,iBAAiB,EAAE;AACrB,4BAAwB;AACxB;;AAEF,kBAAe,iBAAiB,cAAc,wBAAwB,EAAE,EAAE,MAAM,MAAM,CAAC;AACvF,kBAAe,iBAAiB,eAAe;AAC7C,mBAAe,QAAQ;AACvB,iBAAa,QAAQ;AACrB,mCAAe,IAAI,MAAM,2BAA2B,CAAC;MACpD,EAAE,MAAM,MAAM,CAAC;AAClB;;EAGF,MAAM,SAAS,SAAS,cAAc,SAAS;AAC/C,SAAO,MAAM,GAAG,0BAA0B;AAC1C,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,eAAe,wBAAwB;AAC9C,SAAO,gBAAgB;AACrB,UAAO,QAAQ;AACf,gBAAa,QAAQ;AACrB,kCAAe,IAAI,MAAM,2BAA2B,CAAC;;AAEvD,WAAS,KAAK,OAAO,OAAO;GAC5B;AAEF,QAAO"}
1
+ {"version":3,"file":"turnstile-browser.js","names":[],"sources":["../../../src/utils/turnstile-browser.ts"],"sourcesContent":["import { HexclaveAssertionError } from \"./errors\";\nimport { TurnstileAction } from \"./turnstile\";\n\nexport type TurnstileWidgetId = string;\nexport type TurnstileTheme = \"auto\" | \"light\" | \"dark\";\nexport type TurnstileAppearance = \"always\" | \"execute\" | \"interaction-only\";\nexport type TurnstileExecution = \"render\" | \"execute\";\nexport type TurnstileSize = \"invisible\" | \"flexible\" | \"normal\" | \"compact\";\n\nexport type TurnstileConfig = {\n sitekey: string,\n action: TurnstileAction,\n theme?: TurnstileTheme,\n appearance?: TurnstileAppearance,\n execution?: TurnstileExecution,\n size?: TurnstileSize,\n callback: (token: string) => void,\n \"error-callback\": (errorCode?: string) => void,\n \"expired-callback\": () => void,\n \"timeout-callback\"?: () => void,\n};\n\nexport type TurnstileApi = {\n render: (container: HTMLElement, config: TurnstileConfig) => TurnstileWidgetId,\n execute?: (widgetId: TurnstileWidgetId) => void,\n remove: (widgetId: TurnstileWidgetId) => void,\n reset?: (widgetId: TurnstileWidgetId) => void,\n};\n\nconst TURNSTILE_SCRIPT_BASE_URL = \"https://challenges.cloudflare.com/turnstile/v0/api.js\";\nconst TURNSTILE_SCRIPT_LOAD_TIMEOUT_MS = 30_000;\n\nexport function isTurnstileApi(value: unknown): value is TurnstileApi {\n return typeof value === \"object\"\n && value !== null\n && \"render\" in value\n && \"remove\" in value;\n}\n\nexport function getTurnstileApi(): TurnstileApi | undefined {\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n const maybeTurnstile = Reflect.get(window, \"turnstile\");\n return isTurnstileApi(maybeTurnstile) ? maybeTurnstile : undefined;\n}\n\nlet turnstileScriptPromise: Promise<void> | null = null;\n\nexport function loadTurnstileScript(): Promise<void> {\n if (typeof window === \"undefined\") {\n return Promise.reject(new HexclaveAssertionError(\"Turnstile can only be loaded in the browser\"));\n }\n\n if (getTurnstileApi()) {\n return Promise.resolve();\n }\n\n turnstileScriptPromise ??= new Promise<void>((resolve, reject) => {\n const rejectAndReset = (err: Error) => {\n turnstileScriptPromise = null;\n reject(err);\n };\n\n const timeout = setTimeout(() => {\n rejectAndReset(new Error(\"Turnstile script load timed out\"));\n }, TURNSTILE_SCRIPT_LOAD_TIMEOUT_MS);\n\n const resolveAndClearTimeout = () => {\n clearTimeout(timeout);\n resolve();\n };\n\n const existingScript = document.querySelector<HTMLScriptElement>(`script[src^=\"${TURNSTILE_SCRIPT_BASE_URL}\"]`);\n if (existingScript) {\n // If the Turnstile API is already available (script loaded before our loader ran),\n // resolve immediately — the load event may have already fired.\n if (getTurnstileApi()) {\n resolveAndClearTimeout();\n return;\n }\n existingScript.addEventListener(\"load\", () => resolveAndClearTimeout(), { once: true });\n existingScript.addEventListener(\"error\", () => {\n existingScript.remove();\n clearTimeout(timeout);\n rejectAndReset(new Error(\"Failed to load Turnstile\"));\n }, { once: true });\n return;\n }\n\n const script = document.createElement(\"script\");\n script.src = `${TURNSTILE_SCRIPT_BASE_URL}?render=explicit`;\n script.async = true;\n script.defer = true;\n script.onload = () => resolveAndClearTimeout();\n script.onerror = () => {\n script.remove();\n clearTimeout(timeout);\n rejectAndReset(new Error(\"Failed to load Turnstile\"));\n };\n document.head.append(script);\n });\n\n return turnstileScriptPromise;\n}\n"],"mappings":";;AA6BA,MAAM,4BAA4B;AAClC,MAAM,mCAAmC;AAEzC,SAAgB,eAAe,OAAuC;CACpE,OAAO,OAAO,UAAU,YACnB,UAAU,QACV,YAAY,SACZ,YAAY;AACnB;AAEA,SAAgB,kBAA4C;CAC1D,IAAI,OAAO,WAAW,aACpB;CAGF,MAAM,iBAAiB,QAAQ,IAAI,QAAQ,WAAW;CACtD,OAAO,eAAe,cAAc,IAAI,iBAAiB,KAAA;AAC3D;AAEA,IAAI,yBAA+C;AAEnD,SAAgB,sBAAqC;CACnD,IAAI,OAAO,WAAW,aACpB,OAAO,QAAQ,OAAO,IAAI,uBAAuB,6CAA6C,CAAC;CAGjG,IAAI,gBAAgB,GAClB,OAAO,QAAQ,QAAQ;CAGzB,2BAA2B,IAAI,SAAe,SAAS,WAAW;EAChE,MAAM,kBAAkB,QAAe;GACrC,yBAAyB;GACzB,OAAO,GAAG;EACZ;EAEA,MAAM,UAAU,iBAAiB;GAC/B,+BAAe,IAAI,MAAM,iCAAiC,CAAC;EAC7D,GAAG,gCAAgC;EAEnC,MAAM,+BAA+B;GACnC,aAAa,OAAO;GACpB,QAAQ;EACV;EAEA,MAAM,iBAAiB,SAAS,cAAiC,gBAAgB,0BAA0B,GAAG;EAC9G,IAAI,gBAAgB;GAGlB,IAAI,gBAAgB,GAAG;IACrB,uBAAuB;IACvB;GACF;GACA,eAAe,iBAAiB,cAAc,uBAAuB,GAAG,EAAE,MAAM,KAAK,CAAC;GACtF,eAAe,iBAAiB,eAAe;IAC7C,eAAe,OAAO;IACtB,aAAa,OAAO;IACpB,+BAAe,IAAI,MAAM,0BAA0B,CAAC;GACtD,GAAG,EAAE,MAAM,KAAK,CAAC;GACjB;EACF;EAEA,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,MAAM,GAAG,0BAA0B;EAC1C,OAAO,QAAQ;EACf,OAAO,QAAQ;EACf,OAAO,eAAe,uBAAuB;EAC7C,OAAO,gBAAgB;GACrB,OAAO,OAAO;GACd,aAAa,OAAO;GACpB,+BAAe,IAAI,MAAM,0BAA0B,CAAC;EACtD;EACA,SAAS,KAAK,OAAO,MAAM;CAC7B,CAAC;CAED,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- import { TurnstileAction } from "./turnstile";
1
+ import { TurnstileAction } from "./turnstile.js";
2
2
 
3
3
  //#region src/utils/turnstile-flow.d.ts
4
4
  declare class BotChallengeUserCancelledError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile-flow.d.ts","names":[],"sources":["../../../src/utils/turnstile-flow.ts"],"mappings":";;;cAIa,8BAAA,SAAuC,KAAA;EAAA,WAAA,CAAA;AAAA;AAAA,cAOvC,gCAAA,SAAyC,KAAA;cACxC,OAAA,WAAkD,OAAA;IAAY,KAAA;EAAA;AAAA;AAAA,iBAWtD,yBAAA,CAA0B,OAAA,UAAiB,MAAA,EAAQ,eAAA,GAAkB,OAAA;AAAA,iBA0E3E,6BAAA,CAA8B,OAAA,UAAiB,MAAA,EAAQ,eAAA,GAAkB,OAAA;AAAA,KAqG7E,yBAAA;EACV,KAAA;EACA,KAAA;EACA,WAAA;AAAA;AAAA,KAGU,2BAAA;EACV,cAAA;EACA,gBAAA;EACA,MAAA,EAAQ,eAAA;EACR,OAAA,GAAU,SAAA,EAAW,yBAAA,KAA8B,OAAA,CAAQ,CAAA;EAC3D,mBAAA,GAAsB,MAAA,EAAQ,CAAA;AAAA;AAAA,iBASV,oBAAA,GAAA,CAAwB,OAAA,EAAS,2BAAA,CAA4B,CAAA,IAAK,OAAA,CAAQ,CAAA"}
1
+ {"version":3,"file":"turnstile-flow.d.ts","names":[],"sources":["../../../src/utils/turnstile-flow.ts"],"mappings":";;;cAIa,8BAAA,SAAuC,KAAK;EAAL,WAAA;AAAA;AAAA,cAOvC,gCAAA,SAAyC,KAAK;cAC7C,OAAA,WAAkD,OAAA;IAAY,KAAA;EAAA;AAAA;AAAA,iBAWtD,yBAAA,CAA0B,OAAA,UAAiB,MAAA,EAAQ,eAAA,GAAkB,OAAO;AAAA,iBA0ElF,6BAAA,CAA8B,OAAA,UAAiB,MAAA,EAAQ,eAAA,GAAkB,OAAO;AAAA,KAqGpF,yBAAA;EACV,KAAA;EACA,KAAA;EACA,WAAA;AAAA;AAAA,KAGU,2BAAA;EACV,cAAA;EACA,gBAAA;EACA,MAAA,EAAQ,eAAA;EACR,OAAA,GAAU,SAAA,EAAW,yBAAA,KAA8B,OAAA,CAAQ,CAAA;EAC3D,mBAAA,GAAsB,MAAA,EAAQ,CAAA;AAAA;AAAA,iBASV,oBAAA,IAAwB,OAAA,EAAS,2BAAA,CAA4B,CAAA,IAAK,OAAA,CAAQ,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { HexclaveAssertionError, captureError } from "./errors.js";
2
2
  import { getTurnstileApi, loadTurnstileScript } from "./turnstile-browser.js";
3
-
4
3
  //#region src/utils/turnstile-flow.ts
5
4
  var BotChallengeUserCancelledError = class extends Error {
6
5
  constructor() {
@@ -213,7 +212,7 @@ async function withBotChallengeFlow(options) {
213
212
  phase: "visible"
214
213
  });
215
214
  }
216
-
217
215
  //#endregion
218
216
  export { BotChallengeExecutionFailedError, BotChallengeUserCancelledError, executeTurnstileInvisible, showTurnstileVisibleChallenge, withBotChallengeFlow };
217
+
219
218
  //# sourceMappingURL=turnstile-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile-flow.js","names":[],"sources":["../../../src/utils/turnstile-flow.ts"],"sourcesContent":["import { HexclaveAssertionError, captureError } from \"./errors\";\nimport { loadTurnstileScript, getTurnstileApi } from \"./turnstile-browser\";\nimport type { TurnstileAction } from \"./turnstile\";\n\nexport class BotChallengeUserCancelledError extends Error {\n constructor() {\n super(\"User cancelled the bot challenge\");\n this.name = \"BotChallengeUserCancelledError\";\n }\n}\n\nexport class BotChallengeExecutionFailedError extends Error {\n constructor(message = \"Bot challenge could not be completed\", options?: { cause?: unknown }) {\n super(message, options);\n this.name = \"BotChallengeExecutionFailedError\";\n }\n}\n\n\n// ── Invisible challenge ────────────────────────────────────────────────\n\nconst INVISIBLE_TIMEOUT_MS = 30_000;\n\nexport async function executeTurnstileInvisible(siteKey: string, action: TurnstileAction): Promise<string> {\n await loadTurnstileScript();\n const api = getTurnstileApi();\n if (!api) throw new HexclaveAssertionError(\"Turnstile API not available after loadTurnstileScript() resolved\");\n\n const container = document.createElement(\"div\");\n Object.assign(container.style, { position: \"fixed\", left: \"-9999px\", top: \"-9999px\" });\n document.body.appendChild(container);\n\n let widgetId: string | undefined;\n try {\n return await new Promise<string>((resolve, reject) => {\n const timeout = setTimeout(\n () => reject(new Error(\"Turnstile invisible challenge timed out\")),\n INVISIBLE_TIMEOUT_MS,\n );\n const settle = (fn: () => void) => {\n clearTimeout(timeout);\n fn();\n };\n\n widgetId = api.render(container, {\n sitekey: siteKey,\n action,\n size: \"invisible\",\n execution: \"execute\",\n appearance: \"execute\",\n callback: (t) => settle(() => resolve(t)),\n \"error-callback\": () => settle(() => reject(new Error(\"Turnstile invisible verification failed\"))),\n \"expired-callback\": () => settle(() => reject(new Error(\"Turnstile token expired\"))),\n \"timeout-callback\": () => settle(() => reject(new Error(\"Turnstile challenge timed out\"))),\n });\n\n api.execute?.(widgetId);\n });\n } finally {\n if (widgetId != null) {\n try {\n api.remove(widgetId);\n } catch (e) {\n captureError(\"turnstile-widget-remove\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during Turnstile widget removal\", { cause: e }));\n }\n }\n container.remove();\n }\n}\n\n\n// ── Visible challenge overlay ──────────────────────────────────────────\n\nconst VISIBLE_TIMEOUT_MS = 120_000;\nconst OVERLAY_Z_INDEX = \"999999\";\n\n// Module-level singleton: only one visible overlay can be active at a time.\n// If a second challenge is requested while one is showing (e.g. user clicks another\n// auth flow), the previous overlay is cancelled with BotChallengeUserCancelledError\n// and cleaned up before the new one renders.\nlet activeOverlay: { cleanup: () => void, reject: (err: Error) => void } | null = null;\n\nfunction el<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n style: Partial<CSSStyleDeclaration>,\n props?: Record<string, string>,\n): HTMLElementTagNameMap[K] {\n const element = document.createElement(tag);\n Object.assign(element.style, style);\n if (props) {\n for (const [k, v] of Object.entries(props)) {\n element.setAttribute(k, v);\n }\n }\n return element;\n}\n\nexport function showTurnstileVisibleChallenge(siteKey: string, action: TurnstileAction): Promise<string> {\n if (activeOverlay) {\n activeOverlay.reject(new BotChallengeUserCancelledError());\n activeOverlay.cleanup();\n activeOverlay = null;\n }\n\n return new Promise<string>((resolve, reject) => {\n const timeout = setTimeout(() => {\n cleanup();\n reject(new Error(\"Visible Turnstile challenge timed out\"));\n }, VISIBLE_TIMEOUT_MS);\n\n const overlay = el(\"div\", {\n position: \"fixed\", inset: \"0\", zIndex: OVERLAY_Z_INDEX,\n display: \"flex\", alignItems: \"center\", justifyContent: \"center\",\n background: \"rgba(0,0,0,0.5)\", backdropFilter: \"blur(2px)\",\n }, { \"data-stack-turnstile-overlay\": \"true\" });\n\n const card = el(\"div\", {\n background: \"white\", borderRadius: \"12px\", padding: \"24px\",\n maxWidth: \"400px\", width: \"90%\", textAlign: \"center\",\n boxShadow: \"0 4px 24px rgba(0,0,0,0.18)\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n });\n\n const title = el(\"p\", { margin: \"0 0 16px\", fontSize: \"16px\", fontWeight: \"600\", color: \"#333\" });\n title.textContent = \"Please complete the security check\";\n\n const widgetContainer = el(\"div\", { display: \"flex\", justifyContent: \"center\", minHeight: \"65px\" });\n\n const errorText = el(\"p\", { margin: \"8px 0 0\", fontSize: \"14px\", color: \"#dc2626\", display: \"none\" });\n\n const cancelBtn = el(\"button\", {\n marginTop: \"16px\", padding: \"8px 20px\", border: \"1px solid #ddd\",\n borderRadius: \"6px\", background: \"transparent\", cursor: \"pointer\",\n fontSize: \"14px\", color: \"#666\",\n });\n cancelBtn.textContent = \"Cancel\";\n cancelBtn.onmouseover = () => {\n cancelBtn.style.background = \"#f5f5f5\";\n };\n cancelBtn.onmouseout = () => {\n cancelBtn.style.background = \"transparent\";\n };\n\n card.append(title, widgetContainer, errorText, cancelBtn);\n overlay.appendChild(card);\n document.body.appendChild(overlay);\n\n function cleanup() {\n clearTimeout(timeout);\n overlay.remove();\n if (activeOverlay?.cleanup === cleanup) {\n activeOverlay = null;\n }\n }\n\n activeOverlay = { cleanup, reject };\n cancelBtn.onclick = () => {\n cleanup();\n reject(new BotChallengeUserCancelledError());\n };\n\n loadTurnstileScript().then(() => {\n const api = getTurnstileApi();\n if (!api) {\n cleanup();\n reject(new HexclaveAssertionError(\"Turnstile API not available after loadTurnstileScript() resolved\"));\n return;\n }\n\n api.render(widgetContainer, {\n sitekey: siteKey,\n action,\n appearance: \"always\",\n execution: \"render\",\n size: \"flexible\",\n callback: (token) => {\n cleanup();\n resolve(token);\n },\n \"error-callback\": (errorCode) => {\n errorText.textContent = errorCode ? `Verification error: ${errorCode}` : \"Verification failed. Please try again.\";\n errorText.style.display = \"block\";\n },\n \"expired-callback\": () => {\n errorText.textContent = \"Challenge expired. Please solve it again.\";\n errorText.style.display = \"block\";\n },\n });\n }).catch((err) => {\n cleanup();\n reject(err);\n });\n });\n}\n\n\n// ── Flow orchestrator ──────────────────────────────────────────────────\n\nexport type BotChallengeExecuteParams = {\n token?: string,\n phase?: \"invisible\" | \"visible\",\n unavailable?: true,\n};\n\nexport type WithBotChallengeFlowOptions<T> = {\n visibleSiteKey: string,\n invisibleSiteKey: string,\n action: TurnstileAction,\n execute: (challenge: BotChallengeExecuteParams) => Promise<T>,\n isChallengeRequired: (result: T) => boolean,\n};\n\n// We use separate invisible + visible flows (rather than Turnstile's \"managed\" mode) because:\n// 1. Managed mode auto-decides visibility, but we need deterministic server-side logic:\n// invisible-fail → require visible challenge → fail = block.\n// 2. Invisible + visible use different site keys so the server can tell which phase passed.\n// 3. Managed mode doesn't expose an API to programmatically trigger a retry with a\n// different widget type, which our two-phase challenge escalation requires.\nexport async function withBotChallengeFlow<T>(options: WithBotChallengeFlowOptions<T>): Promise<T> {\n // Server safe: no Turnstile in SSR — just call execute with no turnstile params\n if (typeof window === \"undefined\") {\n return await options.execute({});\n }\n\n // Phase 1: invisible token\n let invisibleToken: string | undefined;\n let usedVisibleFallback = false;\n try {\n invisibleToken = await executeTurnstileInvisible(options.invisibleSiteKey, options.action);\n } catch {\n try {\n invisibleToken = await showTurnstileVisibleChallenge(options.visibleSiteKey, options.action);\n usedVisibleFallback = true;\n } catch (e) {\n if (e instanceof BotChallengeUserCancelledError) throw e;\n // Both challenges failed (for example Cloudflare is unreachable) — tell the\n // server explicitly so it can distinguish challenge infra outages from a\n // user submitting an invalid visible challenge.\n captureError(\"turnstile-flow-all-challenges-failed\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during Turnstile challenge\", { cause: e }));\n return await options.execute({ unavailable: true });\n }\n }\n\n const firstResult = await options.execute({\n token: invisibleToken,\n phase: invisibleToken ? (usedVisibleFallback ? \"visible\" : \"invisible\") : undefined,\n });\n\n if (!options.isChallengeRequired(firstResult)) {\n return firstResult;\n }\n\n // Phase 2: visible challenge (single retry)\n let visibleToken: string | undefined;\n try {\n visibleToken = await showTurnstileVisibleChallenge(options.visibleSiteKey, options.action);\n } catch (e) {\n if (e instanceof BotChallengeUserCancelledError) throw e;\n captureError(\"turnstile-flow-visible-challenge-failed\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during visible Turnstile challenge\", { cause: e }));\n throw new BotChallengeExecutionFailedError(\"Visible bot challenge could not be completed\", {\n cause: e,\n });\n }\n\n return await options.execute({ token: visibleToken, phase: \"visible\" });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"turnstile-flow.js","names":[],"sources":["../../../src/utils/turnstile-flow.ts"],"sourcesContent":["import { HexclaveAssertionError, captureError } from \"./errors\";\nimport { loadTurnstileScript, getTurnstileApi } from \"./turnstile-browser\";\nimport type { TurnstileAction } from \"./turnstile\";\n\nexport class BotChallengeUserCancelledError extends Error {\n constructor() {\n super(\"User cancelled the bot challenge\");\n this.name = \"BotChallengeUserCancelledError\";\n }\n}\n\nexport class BotChallengeExecutionFailedError extends Error {\n constructor(message = \"Bot challenge could not be completed\", options?: { cause?: unknown }) {\n super(message, options);\n this.name = \"BotChallengeExecutionFailedError\";\n }\n}\n\n\n// ── Invisible challenge ────────────────────────────────────────────────\n\nconst INVISIBLE_TIMEOUT_MS = 30_000;\n\nexport async function executeTurnstileInvisible(siteKey: string, action: TurnstileAction): Promise<string> {\n await loadTurnstileScript();\n const api = getTurnstileApi();\n if (!api) throw new HexclaveAssertionError(\"Turnstile API not available after loadTurnstileScript() resolved\");\n\n const container = document.createElement(\"div\");\n Object.assign(container.style, { position: \"fixed\", left: \"-9999px\", top: \"-9999px\" });\n document.body.appendChild(container);\n\n let widgetId: string | undefined;\n try {\n return await new Promise<string>((resolve, reject) => {\n const timeout = setTimeout(\n () => reject(new Error(\"Turnstile invisible challenge timed out\")),\n INVISIBLE_TIMEOUT_MS,\n );\n const settle = (fn: () => void) => {\n clearTimeout(timeout);\n fn();\n };\n\n widgetId = api.render(container, {\n sitekey: siteKey,\n action,\n size: \"invisible\",\n execution: \"execute\",\n appearance: \"execute\",\n callback: (t) => settle(() => resolve(t)),\n \"error-callback\": () => settle(() => reject(new Error(\"Turnstile invisible verification failed\"))),\n \"expired-callback\": () => settle(() => reject(new Error(\"Turnstile token expired\"))),\n \"timeout-callback\": () => settle(() => reject(new Error(\"Turnstile challenge timed out\"))),\n });\n\n api.execute?.(widgetId);\n });\n } finally {\n if (widgetId != null) {\n try {\n api.remove(widgetId);\n } catch (e) {\n captureError(\"turnstile-widget-remove\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during Turnstile widget removal\", { cause: e }));\n }\n }\n container.remove();\n }\n}\n\n\n// ── Visible challenge overlay ──────────────────────────────────────────\n\nconst VISIBLE_TIMEOUT_MS = 120_000;\nconst OVERLAY_Z_INDEX = \"999999\";\n\n// Module-level singleton: only one visible overlay can be active at a time.\n// If a second challenge is requested while one is showing (e.g. user clicks another\n// auth flow), the previous overlay is cancelled with BotChallengeUserCancelledError\n// and cleaned up before the new one renders.\nlet activeOverlay: { cleanup: () => void, reject: (err: Error) => void } | null = null;\n\nfunction el<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n style: Partial<CSSStyleDeclaration>,\n props?: Record<string, string>,\n): HTMLElementTagNameMap[K] {\n const element = document.createElement(tag);\n Object.assign(element.style, style);\n if (props) {\n for (const [k, v] of Object.entries(props)) {\n element.setAttribute(k, v);\n }\n }\n return element;\n}\n\nexport function showTurnstileVisibleChallenge(siteKey: string, action: TurnstileAction): Promise<string> {\n if (activeOverlay) {\n activeOverlay.reject(new BotChallengeUserCancelledError());\n activeOverlay.cleanup();\n activeOverlay = null;\n }\n\n return new Promise<string>((resolve, reject) => {\n const timeout = setTimeout(() => {\n cleanup();\n reject(new Error(\"Visible Turnstile challenge timed out\"));\n }, VISIBLE_TIMEOUT_MS);\n\n const overlay = el(\"div\", {\n position: \"fixed\", inset: \"0\", zIndex: OVERLAY_Z_INDEX,\n display: \"flex\", alignItems: \"center\", justifyContent: \"center\",\n background: \"rgba(0,0,0,0.5)\", backdropFilter: \"blur(2px)\",\n }, { \"data-stack-turnstile-overlay\": \"true\" });\n\n const card = el(\"div\", {\n background: \"white\", borderRadius: \"12px\", padding: \"24px\",\n maxWidth: \"400px\", width: \"90%\", textAlign: \"center\",\n boxShadow: \"0 4px 24px rgba(0,0,0,0.18)\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n });\n\n const title = el(\"p\", { margin: \"0 0 16px\", fontSize: \"16px\", fontWeight: \"600\", color: \"#333\" });\n title.textContent = \"Please complete the security check\";\n\n const widgetContainer = el(\"div\", { display: \"flex\", justifyContent: \"center\", minHeight: \"65px\" });\n\n const errorText = el(\"p\", { margin: \"8px 0 0\", fontSize: \"14px\", color: \"#dc2626\", display: \"none\" });\n\n const cancelBtn = el(\"button\", {\n marginTop: \"16px\", padding: \"8px 20px\", border: \"1px solid #ddd\",\n borderRadius: \"6px\", background: \"transparent\", cursor: \"pointer\",\n fontSize: \"14px\", color: \"#666\",\n });\n cancelBtn.textContent = \"Cancel\";\n cancelBtn.onmouseover = () => {\n cancelBtn.style.background = \"#f5f5f5\";\n };\n cancelBtn.onmouseout = () => {\n cancelBtn.style.background = \"transparent\";\n };\n\n card.append(title, widgetContainer, errorText, cancelBtn);\n overlay.appendChild(card);\n document.body.appendChild(overlay);\n\n function cleanup() {\n clearTimeout(timeout);\n overlay.remove();\n if (activeOverlay?.cleanup === cleanup) {\n activeOverlay = null;\n }\n }\n\n activeOverlay = { cleanup, reject };\n cancelBtn.onclick = () => {\n cleanup();\n reject(new BotChallengeUserCancelledError());\n };\n\n loadTurnstileScript().then(() => {\n const api = getTurnstileApi();\n if (!api) {\n cleanup();\n reject(new HexclaveAssertionError(\"Turnstile API not available after loadTurnstileScript() resolved\"));\n return;\n }\n\n api.render(widgetContainer, {\n sitekey: siteKey,\n action,\n appearance: \"always\",\n execution: \"render\",\n size: \"flexible\",\n callback: (token) => {\n cleanup();\n resolve(token);\n },\n \"error-callback\": (errorCode) => {\n errorText.textContent = errorCode ? `Verification error: ${errorCode}` : \"Verification failed. Please try again.\";\n errorText.style.display = \"block\";\n },\n \"expired-callback\": () => {\n errorText.textContent = \"Challenge expired. Please solve it again.\";\n errorText.style.display = \"block\";\n },\n });\n }).catch((err) => {\n cleanup();\n reject(err);\n });\n });\n}\n\n\n// ── Flow orchestrator ──────────────────────────────────────────────────\n\nexport type BotChallengeExecuteParams = {\n token?: string,\n phase?: \"invisible\" | \"visible\",\n unavailable?: true,\n};\n\nexport type WithBotChallengeFlowOptions<T> = {\n visibleSiteKey: string,\n invisibleSiteKey: string,\n action: TurnstileAction,\n execute: (challenge: BotChallengeExecuteParams) => Promise<T>,\n isChallengeRequired: (result: T) => boolean,\n};\n\n// We use separate invisible + visible flows (rather than Turnstile's \"managed\" mode) because:\n// 1. Managed mode auto-decides visibility, but we need deterministic server-side logic:\n// invisible-fail → require visible challenge → fail = block.\n// 2. Invisible + visible use different site keys so the server can tell which phase passed.\n// 3. Managed mode doesn't expose an API to programmatically trigger a retry with a\n// different widget type, which our two-phase challenge escalation requires.\nexport async function withBotChallengeFlow<T>(options: WithBotChallengeFlowOptions<T>): Promise<T> {\n // Server safe: no Turnstile in SSR — just call execute with no turnstile params\n if (typeof window === \"undefined\") {\n return await options.execute({});\n }\n\n // Phase 1: invisible token\n let invisibleToken: string | undefined;\n let usedVisibleFallback = false;\n try {\n invisibleToken = await executeTurnstileInvisible(options.invisibleSiteKey, options.action);\n } catch {\n try {\n invisibleToken = await showTurnstileVisibleChallenge(options.visibleSiteKey, options.action);\n usedVisibleFallback = true;\n } catch (e) {\n if (e instanceof BotChallengeUserCancelledError) throw e;\n // Both challenges failed (for example Cloudflare is unreachable) — tell the\n // server explicitly so it can distinguish challenge infra outages from a\n // user submitting an invalid visible challenge.\n captureError(\"turnstile-flow-all-challenges-failed\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during Turnstile challenge\", { cause: e }));\n return await options.execute({ unavailable: true });\n }\n }\n\n const firstResult = await options.execute({\n token: invisibleToken,\n phase: invisibleToken ? (usedVisibleFallback ? \"visible\" : \"invisible\") : undefined,\n });\n\n if (!options.isChallengeRequired(firstResult)) {\n return firstResult;\n }\n\n // Phase 2: visible challenge (single retry)\n let visibleToken: string | undefined;\n try {\n visibleToken = await showTurnstileVisibleChallenge(options.visibleSiteKey, options.action);\n } catch (e) {\n if (e instanceof BotChallengeUserCancelledError) throw e;\n captureError(\"turnstile-flow-visible-challenge-failed\", e instanceof Error ? e : new HexclaveAssertionError(\"Non-Error thrown during visible Turnstile challenge\", { cause: e }));\n throw new BotChallengeExecutionFailedError(\"Visible bot challenge could not be completed\", {\n cause: e,\n });\n }\n\n return await options.execute({ token: visibleToken, phase: \"visible\" });\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
-
3
2
  //#region src/utils/turnstile-flow.test.ts
4
3
  // @vitest-environment jsdom
5
4
  const loadTurnstileScriptMock = vi.fn(() => Promise.resolve());
@@ -69,7 +68,7 @@ describe("withBotChallengeFlow", () => {
69
68
  expect(captureErrorMock).toHaveBeenCalledWith("turnstile-flow-all-challenges-failed", expect.any(Error));
70
69
  });
71
70
  });
72
-
73
71
  //#endregion
74
- export { };
72
+ export {};
73
+
75
74
  //# sourceMappingURL=turnstile-flow.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile-flow.test.js","names":[],"sources":["../../../src/utils/turnstile-flow.test.ts"],"sourcesContent":["// @vitest-environment jsdom\n\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nconst loadTurnstileScriptMock = vi.fn(() => Promise.resolve());\nconst renderMock = vi.fn();\nconst executeMock = vi.fn();\nconst removeMock = vi.fn();\nconst captureErrorMock = vi.fn();\n\nvi.mock(\"./turnstile-browser\", () => ({\n loadTurnstileScript: loadTurnstileScriptMock,\n getTurnstileApi: () => ({\n render: renderMock,\n execute: executeMock,\n remove: removeMock,\n }),\n}));\n\nvi.mock(\"./errors\", async () => {\n const actual = await vi.importActual<typeof import(\"./errors\")>(\"./errors\");\n return {\n ...actual,\n captureError: captureErrorMock,\n };\n});\n\ndescribe(\"withBotChallengeFlow\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n loadTurnstileScriptMock.mockResolvedValue(undefined);\n renderMock.mockImplementation((_container, config: {\n callback: (token: string) => void,\n }) => {\n config.callback(\"invisible-token\");\n return \"widget-id\";\n });\n executeMock.mockImplementation(() => {});\n removeMock.mockImplementation(() => {});\n });\n\n it(\"throws a bot challenge execution error when the phase-2 visible challenge fails\", async () => {\n const { BotChallengeExecutionFailedError, withBotChallengeFlow } = await import(\"./turnstile-flow\");\n\n loadTurnstileScriptMock\n .mockResolvedValueOnce(undefined)\n .mockRejectedValueOnce(new Error(\"cloudflare unavailable\"));\n\n const execute = vi.fn(async ({ token, phase }: { token?: string, phase?: \"invisible\" | \"visible\" }) => {\n if (token === \"invisible-token\" && phase === \"invisible\") {\n return { requiresChallenge: true };\n }\n return { requiresChallenge: false };\n });\n\n await expect(withBotChallengeFlow({\n visibleSiteKey: \"visible-site-key\",\n invisibleSiteKey: \"invisible-site-key\",\n action: \"sign_up_with_credential\",\n execute,\n isChallengeRequired: (result) => result.requiresChallenge,\n })).rejects.toBeInstanceOf(BotChallengeExecutionFailedError);\n\n expect(execute).toHaveBeenCalledTimes(1);\n expect(execute).toHaveBeenCalledWith({\n token: \"invisible-token\",\n phase: \"invisible\",\n });\n expect(captureErrorMock).toHaveBeenCalledWith(\n \"turnstile-flow-visible-challenge-failed\",\n expect.any(Error),\n );\n });\n\n it(\"marks the challenge as unavailable when both phase-1 challenge attempts fail\", async () => {\n const { withBotChallengeFlow } = await import(\"./turnstile-flow\");\n\n loadTurnstileScriptMock\n .mockRejectedValueOnce(new Error(\"invisible unavailable\"))\n .mockRejectedValueOnce(new Error(\"visible unavailable\"));\n\n const execute = vi.fn(async ({ unavailable }: { unavailable?: true }) => ({\n unavailable,\n }));\n\n await expect(withBotChallengeFlow({\n visibleSiteKey: \"visible-site-key\",\n invisibleSiteKey: \"invisible-site-key\",\n action: \"sign_up_with_credential\",\n execute,\n isChallengeRequired: () => false,\n })).resolves.toEqual({ unavailable: true });\n\n expect(execute).toHaveBeenCalledTimes(1);\n expect(execute).toHaveBeenCalledWith({ unavailable: true });\n expect(captureErrorMock).toHaveBeenCalledWith(\n \"turnstile-flow-all-challenges-failed\",\n expect.any(Error),\n );\n });\n});\n"],"mappings":";;;;AAIA,MAAM,0BAA0B,GAAG,SAAS,QAAQ,SAAS,CAAC;AAC9D,MAAM,aAAa,GAAG,IAAI;AAC1B,MAAM,cAAc,GAAG,IAAI;AAC3B,MAAM,aAAa,GAAG,IAAI;AAC1B,MAAM,mBAAmB,GAAG,IAAI;AAEhC,GAAG,KAAK,8BAA8B;CACpC,qBAAqB;CACrB,wBAAwB;EACtB,QAAQ;EACR,SAAS;EACT,QAAQ;EACT;CACF,EAAE;AAEH,GAAG,KAAK,YAAY,YAAY;AAE9B,QAAO;EACL,GAFa,MAAM,GAAG,aAAwC,WAAW;EAGzE,cAAc;EACf;EACD;AAEF,SAAS,8BAA8B;AACrC,kBAAiB;AACf,KAAG,eAAe;AAClB,0BAAwB,kBAAkB,OAAU;AACpD,aAAW,oBAAoB,YAAY,WAErC;AACJ,UAAO,SAAS,kBAAkB;AAClC,UAAO;IACP;AACF,cAAY,yBAAyB,GAAG;AACxC,aAAW,yBAAyB,GAAG;GACvC;AAEF,IAAG,mFAAmF,YAAY;EAChG,MAAM,EAAE,kCAAkC,yBAAyB,MAAM,OAAO;AAEhF,0BACG,sBAAsB,OAAU,CAChC,sCAAsB,IAAI,MAAM,yBAAyB,CAAC;EAE7D,MAAM,UAAU,GAAG,GAAG,OAAO,EAAE,OAAO,YAAiE;AACrG,OAAI,UAAU,qBAAqB,UAAU,YAC3C,QAAO,EAAE,mBAAmB,MAAM;AAEpC,UAAO,EAAE,mBAAmB,OAAO;IACnC;AAEF,QAAM,OAAO,qBAAqB;GAChC,gBAAgB;GAChB,kBAAkB;GAClB,QAAQ;GACR;GACA,sBAAsB,WAAW,OAAO;GACzC,CAAC,CAAC,CAAC,QAAQ,eAAe,iCAAiC;AAE5D,SAAO,QAAQ,CAAC,sBAAsB,EAAE;AACxC,SAAO,QAAQ,CAAC,qBAAqB;GACnC,OAAO;GACP,OAAO;GACR,CAAC;AACF,SAAO,iBAAiB,CAAC,qBACvB,2CACA,OAAO,IAAI,MAAM,CAClB;GACD;AAEF,IAAG,gFAAgF,YAAY;EAC7F,MAAM,EAAE,yBAAyB,MAAM,OAAO;AAE9C,0BACG,sCAAsB,IAAI,MAAM,wBAAwB,CAAC,CACzD,sCAAsB,IAAI,MAAM,sBAAsB,CAAC;EAE1D,MAAM,UAAU,GAAG,GAAG,OAAO,EAAE,mBAA2C,EACxE,aACD,EAAE;AAEH,QAAM,OAAO,qBAAqB;GAChC,gBAAgB;GAChB,kBAAkB;GAClB,QAAQ;GACR;GACA,2BAA2B;GAC5B,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,aAAa,MAAM,CAAC;AAE3C,SAAO,QAAQ,CAAC,sBAAsB,EAAE;AACxC,SAAO,QAAQ,CAAC,qBAAqB,EAAE,aAAa,MAAM,CAAC;AAC3D,SAAO,iBAAiB,CAAC,qBACvB,wCACA,OAAO,IAAI,MAAM,CAClB;GACD;EACF"}
1
+ {"version":3,"file":"turnstile-flow.test.js","names":[],"sources":["../../../src/utils/turnstile-flow.test.ts"],"sourcesContent":["// @vitest-environment jsdom\n\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nconst loadTurnstileScriptMock = vi.fn(() => Promise.resolve());\nconst renderMock = vi.fn();\nconst executeMock = vi.fn();\nconst removeMock = vi.fn();\nconst captureErrorMock = vi.fn();\n\nvi.mock(\"./turnstile-browser\", () => ({\n loadTurnstileScript: loadTurnstileScriptMock,\n getTurnstileApi: () => ({\n render: renderMock,\n execute: executeMock,\n remove: removeMock,\n }),\n}));\n\nvi.mock(\"./errors\", async () => {\n const actual = await vi.importActual<typeof import(\"./errors\")>(\"./errors\");\n return {\n ...actual,\n captureError: captureErrorMock,\n };\n});\n\ndescribe(\"withBotChallengeFlow\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n loadTurnstileScriptMock.mockResolvedValue(undefined);\n renderMock.mockImplementation((_container, config: {\n callback: (token: string) => void,\n }) => {\n config.callback(\"invisible-token\");\n return \"widget-id\";\n });\n executeMock.mockImplementation(() => {});\n removeMock.mockImplementation(() => {});\n });\n\n it(\"throws a bot challenge execution error when the phase-2 visible challenge fails\", async () => {\n const { BotChallengeExecutionFailedError, withBotChallengeFlow } = await import(\"./turnstile-flow\");\n\n loadTurnstileScriptMock\n .mockResolvedValueOnce(undefined)\n .mockRejectedValueOnce(new Error(\"cloudflare unavailable\"));\n\n const execute = vi.fn(async ({ token, phase }: { token?: string, phase?: \"invisible\" | \"visible\" }) => {\n if (token === \"invisible-token\" && phase === \"invisible\") {\n return { requiresChallenge: true };\n }\n return { requiresChallenge: false };\n });\n\n await expect(withBotChallengeFlow({\n visibleSiteKey: \"visible-site-key\",\n invisibleSiteKey: \"invisible-site-key\",\n action: \"sign_up_with_credential\",\n execute,\n isChallengeRequired: (result) => result.requiresChallenge,\n })).rejects.toBeInstanceOf(BotChallengeExecutionFailedError);\n\n expect(execute).toHaveBeenCalledTimes(1);\n expect(execute).toHaveBeenCalledWith({\n token: \"invisible-token\",\n phase: \"invisible\",\n });\n expect(captureErrorMock).toHaveBeenCalledWith(\n \"turnstile-flow-visible-challenge-failed\",\n expect.any(Error),\n );\n });\n\n it(\"marks the challenge as unavailable when both phase-1 challenge attempts fail\", async () => {\n const { withBotChallengeFlow } = await import(\"./turnstile-flow\");\n\n loadTurnstileScriptMock\n .mockRejectedValueOnce(new Error(\"invisible unavailable\"))\n .mockRejectedValueOnce(new Error(\"visible unavailable\"));\n\n const execute = vi.fn(async ({ unavailable }: { unavailable?: true }) => ({\n unavailable,\n }));\n\n await expect(withBotChallengeFlow({\n visibleSiteKey: \"visible-site-key\",\n invisibleSiteKey: \"invisible-site-key\",\n action: \"sign_up_with_credential\",\n execute,\n isChallengeRequired: () => false,\n })).resolves.toEqual({ unavailable: true });\n\n expect(execute).toHaveBeenCalledTimes(1);\n expect(execute).toHaveBeenCalledWith({ unavailable: true });\n expect(captureErrorMock).toHaveBeenCalledWith(\n \"turnstile-flow-all-challenges-failed\",\n expect.any(Error),\n );\n });\n});\n"],"mappings":";;;AAIA,MAAM,0BAA0B,GAAG,SAAS,QAAQ,QAAQ,CAAC;AAC7D,MAAM,aAAa,GAAG,GAAG;AACzB,MAAM,cAAc,GAAG,GAAG;AAC1B,MAAM,aAAa,GAAG,GAAG;AACzB,MAAM,mBAAmB,GAAG,GAAG;AAE/B,GAAG,KAAK,8BAA8B;CACpC,qBAAqB;CACrB,wBAAwB;EACtB,QAAQ;EACR,SAAS;EACT,QAAQ;CACV;AACF,EAAE;AAEF,GAAG,KAAK,YAAY,YAAY;CAE9B,OAAO;EACL,GAAG,MAFgB,GAAG,aAAwC,UAAU;EAGxE,cAAc;CAChB;AACF,CAAC;AAED,SAAS,8BAA8B;CACrC,iBAAiB;EACf,GAAG,cAAc;EACjB,wBAAwB,kBAAkB,KAAA,CAAS;EACnD,WAAW,oBAAoB,YAAY,WAErC;GACJ,OAAO,SAAS,iBAAiB;GACjC,OAAO;EACT,CAAC;EACD,YAAY,yBAAyB,CAAC,CAAC;EACvC,WAAW,yBAAyB,CAAC,CAAC;CACxC,CAAC;CAED,GAAG,mFAAmF,YAAY;EAChG,MAAM,EAAE,kCAAkC,yBAAyB,MAAM,OAAO;EAEhF,wBACG,sBAAsB,KAAA,CAAS,CAAC,CAChC,sCAAsB,IAAI,MAAM,wBAAwB,CAAC;EAE5D,MAAM,UAAU,GAAG,GAAG,OAAO,EAAE,OAAO,YAAiE;GACrG,IAAI,UAAU,qBAAqB,UAAU,aAC3C,OAAO,EAAE,mBAAmB,KAAK;GAEnC,OAAO,EAAE,mBAAmB,MAAM;EACpC,CAAC;EAED,MAAM,OAAO,qBAAqB;GAChC,gBAAgB;GAChB,kBAAkB;GAClB,QAAQ;GACR;GACA,sBAAsB,WAAW,OAAO;EAC1C,CAAC,CAAC,CAAC,CAAC,QAAQ,eAAe,gCAAgC;EAE3D,OAAO,OAAO,CAAC,CAAC,sBAAsB,CAAC;EACvC,OAAO,OAAO,CAAC,CAAC,qBAAqB;GACnC,OAAO;GACP,OAAO;EACT,CAAC;EACD,OAAO,gBAAgB,CAAC,CAAC,qBACvB,2CACA,OAAO,IAAI,KAAK,CAClB;CACF,CAAC;CAED,GAAG,gFAAgF,YAAY;EAC7F,MAAM,EAAE,yBAAyB,MAAM,OAAO;EAE9C,wBACG,sCAAsB,IAAI,MAAM,uBAAuB,CAAC,CAAC,CACzD,sCAAsB,IAAI,MAAM,qBAAqB,CAAC;EAEzD,MAAM,UAAU,GAAG,GAAG,OAAO,EAAE,mBAA2C,EACxE,YACF,EAAE;EAEF,MAAM,OAAO,qBAAqB;GAChC,gBAAgB;GAChB,kBAAkB;GAClB,QAAQ;GACR;GACA,2BAA2B;EAC7B,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,aAAa,KAAK,CAAC;EAE1C,OAAO,OAAO,CAAC,CAAC,sBAAsB,CAAC;EACvC,OAAO,OAAO,CAAC,CAAC,qBAAqB,EAAE,aAAa,KAAK,CAAC;EAC1D,OAAO,gBAAgB,CAAC,CAAC,qBACvB,wCACA,OAAO,IAAI,KAAK,CAClB;CACF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile.d.ts","names":[],"sources":["../../../src/utils/turnstile.ts"],"mappings":";cAAa,qBAAA;AAAA,KAMD,eAAA,UAAyB,qBAAA;AAAA,cAExB,oBAAA;AAAA,KAKD,cAAA,UAAwB,oBAAA;AAAA,cAEvB,qBAAA;AAAA,KAMD,eAAA,UAAyB,qBAAA;AAAA,cAExB,wBAAA;EAAA;;;;;iBAQG,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAA"}
1
+ {"version":3,"file":"turnstile.d.ts","names":[],"sources":["../../../src/utils/turnstile.ts"],"mappings":";cAAa,qBAAA;AAAA,KAMD,eAAA,UAAyB,qBAAqB;AAAA,cAE7C,oBAAA;AAAA,KAKD,cAAA,UAAwB,oBAAoB;AAAA,cAE3C,qBAAA;AAAA,KAMD,eAAA,UAAyB,qBAAqB;AAAA,cAE7C,wBAAA;EAAA;;;;;iBAQG,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe"}
@@ -19,7 +19,7 @@ const turnstileDevelopmentKeys = {
19
19
  function isTurnstileResult(value) {
20
20
  return typeof value === "string" && turnstileResultValues.some((status) => status === value);
21
21
  }
22
-
23
22
  //#endregion
24
23
  export { isTurnstileResult, turnstileActionValues, turnstileDevelopmentKeys, turnstilePhaseValues, turnstileResultValues };
24
+
25
25
  //# sourceMappingURL=turnstile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile.js","names":[],"sources":["../../../src/utils/turnstile.ts"],"sourcesContent":["export const turnstileActionValues = [\n \"sign_up_with_credential\",\n \"send_magic_link_email\",\n \"oauth_authenticate\",\n] as const;\n\nexport type TurnstileAction = typeof turnstileActionValues[number];\n\nexport const turnstilePhaseValues = [\n \"invisible\",\n \"visible\",\n] as const;\n\nexport type TurnstilePhase = typeof turnstilePhaseValues[number];\n\nexport const turnstileResultValues = [\n \"ok\",\n \"invalid\",\n \"error\",\n] as const;\n\nexport type TurnstileResult = typeof turnstileResultValues[number];\n\nexport const turnstileDevelopmentKeys = {\n visibleSiteKey: \"1x00000000000000000000AA\",\n invisibleSiteKey: \"1x00000000000000000000BB\",\n secretKey: \"1x0000000000000000000000000000000AA\",\n forcedChallengeSiteKey: \"3x00000000000000000000FF\",\n} as const;\n\n\nexport function isTurnstileResult(value: unknown): value is TurnstileResult {\n return typeof value === \"string\" && turnstileResultValues.some((status) => status === value);\n}\n"],"mappings":";AAAA,MAAa,wBAAwB;CACnC;CACA;CACA;CACD;AAID,MAAa,uBAAuB,CAClC,aACA,UACD;AAID,MAAa,wBAAwB;CACnC;CACA;CACA;CACD;AAID,MAAa,2BAA2B;CACtC,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,wBAAwB;CACzB;AAGD,SAAgB,kBAAkB,OAA0C;AAC1E,QAAO,OAAO,UAAU,YAAY,sBAAsB,MAAM,WAAW,WAAW,MAAM"}
1
+ {"version":3,"file":"turnstile.js","names":[],"sources":["../../../src/utils/turnstile.ts"],"sourcesContent":["export const turnstileActionValues = [\n \"sign_up_with_credential\",\n \"send_magic_link_email\",\n \"oauth_authenticate\",\n] as const;\n\nexport type TurnstileAction = typeof turnstileActionValues[number];\n\nexport const turnstilePhaseValues = [\n \"invisible\",\n \"visible\",\n] as const;\n\nexport type TurnstilePhase = typeof turnstilePhaseValues[number];\n\nexport const turnstileResultValues = [\n \"ok\",\n \"invalid\",\n \"error\",\n] as const;\n\nexport type TurnstileResult = typeof turnstileResultValues[number];\n\nexport const turnstileDevelopmentKeys = {\n visibleSiteKey: \"1x00000000000000000000AA\",\n invisibleSiteKey: \"1x00000000000000000000BB\",\n secretKey: \"1x0000000000000000000000000000000AA\",\n forcedChallengeSiteKey: \"3x00000000000000000000FF\",\n} as const;\n\n\nexport function isTurnstileResult(value: unknown): value is TurnstileResult {\n return typeof value === \"string\" && turnstileResultValues.some((status) => status === value);\n}\n"],"mappings":";AAAA,MAAa,wBAAwB;CACnC;CACA;CACA;AACF;AAIA,MAAa,uBAAuB,CAClC,aACA,SACF;AAIA,MAAa,wBAAwB;CACnC;CACA;CACA;AACF;AAIA,MAAa,2BAA2B;CACtC,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,wBAAwB;AAC1B;AAGA,SAAgB,kBAAkB,OAA0C;CAC1E,OAAO,OAAO,UAAU,YAAY,sBAAsB,MAAM,WAAW,WAAW,KAAK;AAC7F"}
@@ -1,5 +1,4 @@
1
1
  import { HexclaveAssertionError } from "./errors.js";
2
-
3
2
  //#region src/utils/typed-arrays.tsx
4
3
  /**
5
4
  * Ensures a Uint8Array is backed by a regular ArrayBuffer (not SharedArrayBuffer).
@@ -14,7 +13,7 @@ function toArrayBufferBacked(arr) {
14
13
  if (arr.buffer instanceof SharedArrayBuffer) throw new HexclaveAssertionError("SharedArrayBuffer-backed Uint8Arrays are not supported in this context");
15
14
  return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);
16
15
  }
17
-
18
16
  //#endregion
19
17
  export { toArrayBufferBacked };
18
+
20
19
  //# sourceMappingURL=typed-arrays.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed-arrays.js","names":[],"sources":["../../../src/utils/typed-arrays.tsx"],"sourcesContent":["import { HexclaveAssertionError } from \"./errors\";\n\n/**\n * Ensures a Uint8Array is backed by a regular ArrayBuffer (not SharedArrayBuffer).\n *\n * TypeScript 5.7+ made typed arrays generic over their buffer type. Bare `Uint8Array`\n * defaults to `Uint8Array<ArrayBufferLike>`, which includes SharedArrayBuffer. Web Crypto\n * APIs require `BufferSource` which only accepts `ArrayBufferView<ArrayBuffer>`. This\n * function narrows the type using an instanceof guard, creating a same-buffer view\n * (zero-copy) when the buffer is already an ArrayBuffer.\n */\nexport function toArrayBufferBacked(arr: Uint8Array): Uint8Array<ArrayBuffer> {\n if (arr.buffer instanceof SharedArrayBuffer) {\n throw new HexclaveAssertionError(\"SharedArrayBuffer-backed Uint8Arrays are not supported in this context\");\n }\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,oBAAoB,KAA0C;AAC5E,KAAI,IAAI,kBAAkB,kBACxB,OAAM,IAAI,uBAAuB,yEAAyE;AAE5G,QAAO,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW"}
1
+ {"version":3,"file":"typed-arrays.js","names":[],"sources":["../../../src/utils/typed-arrays.tsx"],"sourcesContent":["import { HexclaveAssertionError } from \"./errors\";\n\n/**\n * Ensures a Uint8Array is backed by a regular ArrayBuffer (not SharedArrayBuffer).\n *\n * TypeScript 5.7+ made typed arrays generic over their buffer type. Bare `Uint8Array`\n * defaults to `Uint8Array<ArrayBufferLike>`, which includes SharedArrayBuffer. Web Crypto\n * APIs require `BufferSource` which only accepts `ArrayBufferView<ArrayBuffer>`. This\n * function narrows the type using an instanceof guard, creating a same-buffer view\n * (zero-copy) when the buffer is already an ArrayBuffer.\n */\nexport function toArrayBufferBacked(arr: Uint8Array): Uint8Array<ArrayBuffer> {\n if (arr.buffer instanceof SharedArrayBuffer) {\n throw new HexclaveAssertionError(\"SharedArrayBuffer-backed Uint8Arrays are not supported in this context\");\n }\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,oBAAoB,KAA0C;CAC5E,IAAI,IAAI,kBAAkB,mBACxB,MAAM,IAAI,uBAAuB,wEAAwE;CAE3G,OAAO,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AAClE"}
@@ -1,4 +1,4 @@
1
- import { Join } from "./strings";
1
+ import { Join } from "./strings.js";
2
2
 
3
3
  //#region src/utils/types.d.ts
4
4
  type IsAny<T> = 0 extends (1 & T) ? true : false;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/utils/types.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/utils/types.tsx"],"mappings":"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"}
@@ -49,7 +49,7 @@ typeAssertExtends()();
49
49
  typeAssertExtends()();
50
50
  typeAssertExtends()();
51
51
  typeAssertExtends()();
52
-
53
52
  //#endregion
54
53
  export { typeAssert, typeAssertExtends, typeAssertIs };
54
+
55
55
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.tsx"],"sourcesContent":["import { DeepPartial } from \"./objects\";\nimport { Join } from \"./strings\";\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\nexport type IsNever<T> = [T] extends [never] ? true : false;\nexport type IsNullish<T> = [T] extends [null | undefined] ? true : false;\nexport type IsUnion<T, U = T> =\n IsNever<T> extends true ? false\n : IsAny<T> extends true ? false\n : T extends U // distributive conditional https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types\n ? /* if the *whole* original type (`U`) still fits inside the current variant, then `T` wasn’t a union */ ([U] extends [T] ? false : true)\n : never;\n\nexport type NullishCoalesce<T, U> = T extends null | undefined ? U : T;\n\nexport type LastUnionElement<U> = UnionToIntersection<U extends any ? (x: U) => 0 : never> extends (x: infer L) => 0 ? L & U : never;\n\ntype primitive = string | number | boolean | bigint | symbol | null | undefined;\n\n/**\n * Makes a type prettier by recursively expanding all object types. For example, `Omit<{ a: 1 }, \"a\">` becomes just `{}`.\n */\nexport type Expand<T> = T extends (...args: infer A) => infer R\n ? ((...args: A) => R) extends T\n ? (...args: Expand<A>) => Expand<R>\n : ((...args: Expand<A>) => Expand<R>) & { [K in keyof T]: Expand<T[K]> }\n : T extends object\n ? T extends primitive\n ? T\n : T extends infer O\n ? { [K in keyof O]: Expand<O[K]> }\n : never\n : T;\n\n\n/**\n * Removes all optional undefined/never keys from an object.\n */\nexport type DeepRemoveOptionalUndefined<T> = T extends object ? { [K in keyof T]: DeepRemoveOptionalUndefined<T[K]> } : T;\n\n// why this works: https://stackoverflow.com/a/50375286\nexport type UnionToIntersection<U> =\n (U extends any ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never\n\ntype _UnionToTupleInner<U, R extends any[], Last> = UnionToTuple<Exclude<U, Last>, [...R, Last]>\nexport type UnionToTuple<U, R extends any[] = []> = [U] extends [never] ? R : _UnionToTupleInner<U, R, LastUnionElement<U>>;\n\nexport type CollapseObjectUnion<T extends object> = {\n [K in AllUnionKeys<T>]?: T extends Record<K, infer V> ? V : never;\n};\ntypeAssertIs<CollapseObjectUnion<{ a: string } | { b: number }>, { a?: string, b?: number }>()();\ntypeAssertIs<CollapseObjectUnion<{ a: string } | { a: number }>, { a?: string | number }>()();\n\nexport type IntersectAll<T extends any[]> = UnionToIntersection<T[number]>;\n\nexport type OptionalKeys<T> = {\n [K in keyof T]: {} extends Pick<T, K> ? K : never;\n}[keyof T];\nexport type RequiredKeys<T> = {\n [K in keyof T]: {} extends Pick<T, K> ? never : K;\n}[keyof T];\n\n/**\n * Returns a type whose keys are the intersection of the keys of T and U, deeply.\n */\nexport type KeyIntersect<T, U> =\n & { [K in keyof T & keyof U]?: T[K] & U[K] }\n & { [K in RequiredKeys<T> & keyof U]: T[K] & U[K] }\n & { [K in RequiredKeys<U> & keyof T]: U[K] & T[K] }\n\n/**\n * Returns ALL keys of all union elements.\n */\nexport type AllUnionKeys<T extends object> = T extends T ? keyof T : never;\ntypeAssertIs<AllUnionKeys<{ a: string } | { b: number }>, \"a\" | \"b\">()();\n\nexport type SubtractType<T, U> = T extends object ? { [K in keyof T]: K extends keyof U ? SubtractType<T[K], U[K]> : T[K] } : (T extends U ? never : T); // note: this only works due to the distributive property of conditional types https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types\n\nexport type XOR<T extends readonly any[]> = T extends readonly [infer A, infer B, ...infer Rest]\n ? Rest extends []\n ? (A & { [K in keyof B]?: never }) | (B & { [K in keyof A]?: never })\n : XOR<[(A & { [K in keyof B]?: never }) | (B & { [K in keyof A]?: never }), ...Rest]>\n : T[0];\n\n\ntype _AntiIntersectInner<T, U> = T extends object ? (\n & Omit<U, keyof T>\n & { [K in keyof Pick<U, { [K in keyof T & keyof U]: U[K] extends T[K] ? (T[K] extends U[K] ? never : K) : never }[keyof T & keyof U]>]: PseudoAntiIntersect<T[K], U[K]> }\n & { [K in keyof Pick<U, keyof T & keyof U>]?: PseudoAntiIntersect<T[K], U[K]> }\n) : U;\n/**\n * Returns a type R such that T & R = U.\n */\nexport type AntiIntersect<T, U> = U extends T ? _AntiIntersectInner<T, U> : \"Cannot anti-intersect a type with a type that is not a subtype of it\"; // NOTE: This type is mostly untested — not sure how well it works on the edge cases\nexport type PseudoAntiIntersect<T, U> = _AntiIntersectInner<T, T & U>;\n\n/**\n * A variation of TypeScript's conditionals with slightly different semantics. It is the perfect type for cases where:\n *\n * - If all possible values are contained in `Extends`, then it will be mapped to `Then`.\n * - If all possible values are not contained in `Extends`, then it will be mapped to `Otherwise`.\n * - If some possible values are contained in `Extends` and some are not, then it will be mapped to `Then | Otherwise`.\n *\n * This is different from TypeScript's built-in conditional types (`Value extends Extends ? Then : Otherwise`), which\n * returns `Otherwise` for the third case (causing unsoundness in many real-world cases).\n */\nexport type IfAndOnlyIf<Value, Extends, Then, Otherwise> =\n | (Value extends Extends ? never : Otherwise)\n | (Value & Extends extends never ? never : Then);\n\n\n/**\n * Can be used to prettify a type in the IDE; for example, some complicated intersected types can be flattened into a single type.\n */\nexport type PrettifyType<T> = T extends object ? { [K in keyof T]: T[K] } & {} : T;\n\ntype _ToStringAndJoin<T extends any[], Separator extends string> =\n T extends [infer U, ...infer Rest extends any[]]\n ? `${TypeToString<U>}${Rest extends [any, ...any[]] ? `${Separator}${_ToStringAndJoin<Rest, Separator>}` : \"\"}`\n : \"<error-joining-tuple-elements>\";\ntype _TypeToStringInner<T> =\n IsAny<T> extends true ? \"any\"\n : IsNever<T> extends true ? \"never\"\n : IsUnion<T> extends true ? _ToStringAndJoin<UnionToTuple<T>, \" | \">\n : [T] extends [number] ? (number extends T ? \"number\" : `${T}`)\n : [T] extends [boolean] ? `${T}`\n : [T] extends [undefined] ? \"undefined\"\n : [T] extends [null] ? \"null\"\n : [T] extends [string] ? (string extends T ? \"string\" : `'${T}'`)\n : [T] extends [[]] ? \"[]\"\n : [T] extends [[any, ...any[]]] ? `[${_ToStringAndJoin<T, \", \">}]`\n : [T] extends [(infer E)[]] ? `${TypeToString<E>}[]`\n : [T] extends [Function] ? \"function\"\n : [T] extends [symbol] ? `symbol(${T['description']})`\n : [T] extends [object] ? `{ ${Join<UnionToTuple<{ [K in keyof T]: `${TypeToString<K>}: ${TypeToString<T[K]>}` }[keyof T]>, \", \">} }`\n : \"<unknown-type>\"\nexport type TypeToString<T> = _TypeToStringInner<T> extends `${infer S}` ? S : never;\n\n/**\n * Can be used to create assertions on types. For example, if passed any T other than `true`, the following will\n * show a type error:\n *\n * ```ts\n * typeAssert<T>()(); // the second pair of braces is important!\n * ```\n */\nexport function typeAssert<T>(): (\n IsAny<T> extends true ? TypeAssertionError<`Type assertion failed. Expected true, but got any.`>\n : IsNever<T> extends true ? TypeAssertionError<`Type assertion failed. Expected true, but got never.`>\n : T extends true ? (() => undefined)\n : TypeAssertionError<`Type assertion failed. Expected true, but got: ${TypeToString<T>}`>\n) {\n return (() => undefined) as any;\n}\ntype TypeAssertionError<T> =\n & [T]\n & /* this promise makes sure that if we accidentally forget the second pair of braces, eslint will complain (if we have no-floating-promises enabled) */ Promise<any>;\n\n\ntypeAssertExtends<ReturnType<typeof typeAssert<true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<false>>, TypeAssertionError<`Type assertion failed. Expected true, but got: false`>>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<never>>, TypeAssertionError<`Type assertion failed. Expected true, but got never.`>>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<any>>, TypeAssertionError<`Type assertion failed. Expected true, but got any.`>>()();\n\n/**\n * Functionally equivalent to `typeAssert<T extends S ? true : false>()()`, but with better error messages.\n */\nexport function typeAssertExtends<T, S>(): (\n [T] extends [S] ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to extend ${TypeToString<S>}`>\n) {\n return (() => undefined) as any;\n}\n\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<never, true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<any, true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, false>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<\"abc\", string>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<{a: 1, b: 123}, {a: number}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<never, never>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<true, any>>, () => undefined>()();\n\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<{a: number}, {a: 1}>>, [\"Type assertion failed. Expected { 'a': number } to extend { 'a': 1 }\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<any, never>>, [\"Type assertion failed. Expected any to extend never\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, true>>, [\"Type assertion failed. Expected false to extend true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, never>>, [\"Type assertion failed. Expected false to extend never\"]>()();\n\n\nexport function typeAssertIs<T, U>(): (\n IsAny<T> extends true ? (IsAny<U> extends true ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>)\n : IsAny<U> extends true ? TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>\n : [T] extends [U] ? ([U] extends [T] ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>)\n : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>\n) {\n return (() => undefined) as any;\n}\n\ntypeAssertExtends<ReturnType<typeof typeAssertIs<\"123\", \"123\">>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<{a: 1}, {a: 1}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<DeepPartial<{a: 1}>, {a?: 1}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, any>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<never, never>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<1, any>>, [\"Type assertion failed. Expected 1 to be any\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, 1>>, [\"Type assertion failed. Expected any to be 1\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, true>>, [\"Type assertion failed. Expected false to be true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<{a: number}, {a: 1}>>, [\"Type assertion failed. Expected { 'a': number } to be { 'a': 1 }\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, never>>, [\"Type assertion failed. Expected any to be never\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, true>>, [\"Type assertion failed. Expected false to be true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, never>>, [\"Type assertion failed. Expected false to be never\"]>()();\n"],"mappings":";AAkDA,cAA8F,EAAE;AAChG,cAA2F,EAAE;AAuB7F,cAAsE,EAAE;;;;;;;;;AAwExE,SAAgB,aAKd;AACA,eAAc;;AAOhB,mBAAyE,EAAE;AAC3E,mBAAqI,EAAE;AACvI,mBAAqI,EAAE;AACvI,mBAAiI,EAAE;;;;AAKnI,SAAgB,oBAEd;AACA,eAAc;;AAGhB,mBAAuF,EAAE;AACzF,mBAAqF,EAAE;AACvF,mBAAwF,EAAE;AAC1F,mBAAyF,EAAE;AAC3F,mBAAuG,EAAE;AACzG,mBAAwF,EAAE;AAC1F,mBAAqF,EAAE;AAEvF,mBAAwJ,EAAE;AAC1J,mBAA8H,EAAE;AAChI,mBAAgI,EAAE;AAClI,mBAAkI,EAAE;AAGpI,SAAgB,eAKd;AACA,eAAc;;AAGhB,mBAAmF,EAAE;AACrF,mBAAqF,EAAE;AACvF,mBAAmG,EAAE;AACrG,mBAA+E,EAAE;AACjF,mBAAmF,EAAE;AACrF,mBAA6G,EAAE;AAC/G,mBAA6G,EAAE;AAC/G,mBAAuH,EAAE;AACzH,mBAA+I,EAAE;AACjJ,mBAAqH,EAAE;AACvH,mBAAuH,EAAE;AACzH,mBAAyH,EAAE"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.tsx"],"sourcesContent":["import { DeepPartial } from \"./objects\";\nimport { Join } from \"./strings\";\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\nexport type IsNever<T> = [T] extends [never] ? true : false;\nexport type IsNullish<T> = [T] extends [null | undefined] ? true : false;\nexport type IsUnion<T, U = T> =\n IsNever<T> extends true ? false\n : IsAny<T> extends true ? false\n : T extends U // distributive conditional https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types\n ? /* if the *whole* original type (`U`) still fits inside the current variant, then `T` wasn’t a union */ ([U] extends [T] ? false : true)\n : never;\n\nexport type NullishCoalesce<T, U> = T extends null | undefined ? U : T;\n\nexport type LastUnionElement<U> = UnionToIntersection<U extends any ? (x: U) => 0 : never> extends (x: infer L) => 0 ? L & U : never;\n\ntype primitive = string | number | boolean | bigint | symbol | null | undefined;\n\n/**\n * Makes a type prettier by recursively expanding all object types. For example, `Omit<{ a: 1 }, \"a\">` becomes just `{}`.\n */\nexport type Expand<T> = T extends (...args: infer A) => infer R\n ? ((...args: A) => R) extends T\n ? (...args: Expand<A>) => Expand<R>\n : ((...args: Expand<A>) => Expand<R>) & { [K in keyof T]: Expand<T[K]> }\n : T extends object\n ? T extends primitive\n ? T\n : T extends infer O\n ? { [K in keyof O]: Expand<O[K]> }\n : never\n : T;\n\n\n/**\n * Removes all optional undefined/never keys from an object.\n */\nexport type DeepRemoveOptionalUndefined<T> = T extends object ? { [K in keyof T]: DeepRemoveOptionalUndefined<T[K]> } : T;\n\n// why this works: https://stackoverflow.com/a/50375286\nexport type UnionToIntersection<U> =\n (U extends any ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never\n\ntype _UnionToTupleInner<U, R extends any[], Last> = UnionToTuple<Exclude<U, Last>, [...R, Last]>\nexport type UnionToTuple<U, R extends any[] = []> = [U] extends [never] ? R : _UnionToTupleInner<U, R, LastUnionElement<U>>;\n\nexport type CollapseObjectUnion<T extends object> = {\n [K in AllUnionKeys<T>]?: T extends Record<K, infer V> ? V : never;\n};\ntypeAssertIs<CollapseObjectUnion<{ a: string } | { b: number }>, { a?: string, b?: number }>()();\ntypeAssertIs<CollapseObjectUnion<{ a: string } | { a: number }>, { a?: string | number }>()();\n\nexport type IntersectAll<T extends any[]> = UnionToIntersection<T[number]>;\n\nexport type OptionalKeys<T> = {\n [K in keyof T]: {} extends Pick<T, K> ? K : never;\n}[keyof T];\nexport type RequiredKeys<T> = {\n [K in keyof T]: {} extends Pick<T, K> ? never : K;\n}[keyof T];\n\n/**\n * Returns a type whose keys are the intersection of the keys of T and U, deeply.\n */\nexport type KeyIntersect<T, U> =\n & { [K in keyof T & keyof U]?: T[K] & U[K] }\n & { [K in RequiredKeys<T> & keyof U]: T[K] & U[K] }\n & { [K in RequiredKeys<U> & keyof T]: U[K] & T[K] }\n\n/**\n * Returns ALL keys of all union elements.\n */\nexport type AllUnionKeys<T extends object> = T extends T ? keyof T : never;\ntypeAssertIs<AllUnionKeys<{ a: string } | { b: number }>, \"a\" | \"b\">()();\n\nexport type SubtractType<T, U> = T extends object ? { [K in keyof T]: K extends keyof U ? SubtractType<T[K], U[K]> : T[K] } : (T extends U ? never : T); // note: this only works due to the distributive property of conditional types https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types\n\nexport type XOR<T extends readonly any[]> = T extends readonly [infer A, infer B, ...infer Rest]\n ? Rest extends []\n ? (A & { [K in keyof B]?: never }) | (B & { [K in keyof A]?: never })\n : XOR<[(A & { [K in keyof B]?: never }) | (B & { [K in keyof A]?: never }), ...Rest]>\n : T[0];\n\n\ntype _AntiIntersectInner<T, U> = T extends object ? (\n & Omit<U, keyof T>\n & { [K in keyof Pick<U, { [K in keyof T & keyof U]: U[K] extends T[K] ? (T[K] extends U[K] ? never : K) : never }[keyof T & keyof U]>]: PseudoAntiIntersect<T[K], U[K]> }\n & { [K in keyof Pick<U, keyof T & keyof U>]?: PseudoAntiIntersect<T[K], U[K]> }\n) : U;\n/**\n * Returns a type R such that T & R = U.\n */\nexport type AntiIntersect<T, U> = U extends T ? _AntiIntersectInner<T, U> : \"Cannot anti-intersect a type with a type that is not a subtype of it\"; // NOTE: This type is mostly untested — not sure how well it works on the edge cases\nexport type PseudoAntiIntersect<T, U> = _AntiIntersectInner<T, T & U>;\n\n/**\n * A variation of TypeScript's conditionals with slightly different semantics. It is the perfect type for cases where:\n *\n * - If all possible values are contained in `Extends`, then it will be mapped to `Then`.\n * - If all possible values are not contained in `Extends`, then it will be mapped to `Otherwise`.\n * - If some possible values are contained in `Extends` and some are not, then it will be mapped to `Then | Otherwise`.\n *\n * This is different from TypeScript's built-in conditional types (`Value extends Extends ? Then : Otherwise`), which\n * returns `Otherwise` for the third case (causing unsoundness in many real-world cases).\n */\nexport type IfAndOnlyIf<Value, Extends, Then, Otherwise> =\n | (Value extends Extends ? never : Otherwise)\n | (Value & Extends extends never ? never : Then);\n\n\n/**\n * Can be used to prettify a type in the IDE; for example, some complicated intersected types can be flattened into a single type.\n */\nexport type PrettifyType<T> = T extends object ? { [K in keyof T]: T[K] } & {} : T;\n\ntype _ToStringAndJoin<T extends any[], Separator extends string> =\n T extends [infer U, ...infer Rest extends any[]]\n ? `${TypeToString<U>}${Rest extends [any, ...any[]] ? `${Separator}${_ToStringAndJoin<Rest, Separator>}` : \"\"}`\n : \"<error-joining-tuple-elements>\";\ntype _TypeToStringInner<T> =\n IsAny<T> extends true ? \"any\"\n : IsNever<T> extends true ? \"never\"\n : IsUnion<T> extends true ? _ToStringAndJoin<UnionToTuple<T>, \" | \">\n : [T] extends [number] ? (number extends T ? \"number\" : `${T}`)\n : [T] extends [boolean] ? `${T}`\n : [T] extends [undefined] ? \"undefined\"\n : [T] extends [null] ? \"null\"\n : [T] extends [string] ? (string extends T ? \"string\" : `'${T}'`)\n : [T] extends [[]] ? \"[]\"\n : [T] extends [[any, ...any[]]] ? `[${_ToStringAndJoin<T, \", \">}]`\n : [T] extends [(infer E)[]] ? `${TypeToString<E>}[]`\n : [T] extends [Function] ? \"function\"\n : [T] extends [symbol] ? `symbol(${T['description']})`\n : [T] extends [object] ? `{ ${Join<UnionToTuple<{ [K in keyof T]: `${TypeToString<K>}: ${TypeToString<T[K]>}` }[keyof T]>, \", \">} }`\n : \"<unknown-type>\"\nexport type TypeToString<T> = _TypeToStringInner<T> extends `${infer S}` ? S : never;\n\n/**\n * Can be used to create assertions on types. For example, if passed any T other than `true`, the following will\n * show a type error:\n *\n * ```ts\n * typeAssert<T>()(); // the second pair of braces is important!\n * ```\n */\nexport function typeAssert<T>(): (\n IsAny<T> extends true ? TypeAssertionError<`Type assertion failed. Expected true, but got any.`>\n : IsNever<T> extends true ? TypeAssertionError<`Type assertion failed. Expected true, but got never.`>\n : T extends true ? (() => undefined)\n : TypeAssertionError<`Type assertion failed. Expected true, but got: ${TypeToString<T>}`>\n) {\n return (() => undefined) as any;\n}\ntype TypeAssertionError<T> =\n & [T]\n & /* this promise makes sure that if we accidentally forget the second pair of braces, eslint will complain (if we have no-floating-promises enabled) */ Promise<any>;\n\n\ntypeAssertExtends<ReturnType<typeof typeAssert<true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<false>>, TypeAssertionError<`Type assertion failed. Expected true, but got: false`>>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<never>>, TypeAssertionError<`Type assertion failed. Expected true, but got never.`>>()();\ntypeAssertExtends<ReturnType<typeof typeAssert<any>>, TypeAssertionError<`Type assertion failed. Expected true, but got any.`>>()();\n\n/**\n * Functionally equivalent to `typeAssert<T extends S ? true : false>()()`, but with better error messages.\n */\nexport function typeAssertExtends<T, S>(): (\n [T] extends [S] ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to extend ${TypeToString<S>}`>\n) {\n return (() => undefined) as any;\n}\n\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<never, true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<any, true>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, false>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<\"abc\", string>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<{a: 1, b: 123}, {a: number}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<never, never>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<true, any>>, () => undefined>()();\n\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<{a: number}, {a: 1}>>, [\"Type assertion failed. Expected { 'a': number } to extend { 'a': 1 }\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<any, never>>, [\"Type assertion failed. Expected any to extend never\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, true>>, [\"Type assertion failed. Expected false to extend true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertExtends<false, never>>, [\"Type assertion failed. Expected false to extend never\"]>()();\n\n\nexport function typeAssertIs<T, U>(): (\n IsAny<T> extends true ? (IsAny<U> extends true ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>)\n : IsAny<U> extends true ? TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>\n : [T] extends [U] ? ([U] extends [T] ? (() => undefined) : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>)\n : TypeAssertionError<`Type assertion failed. Expected ${TypeToString<T>} to be ${TypeToString<U>}`>\n) {\n return (() => undefined) as any;\n}\n\ntypeAssertExtends<ReturnType<typeof typeAssertIs<\"123\", \"123\">>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<{a: 1}, {a: 1}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<DeepPartial<{a: 1}>, {a?: 1}>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, any>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<never, never>>, () => undefined>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<1, any>>, [\"Type assertion failed. Expected 1 to be any\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, 1>>, [\"Type assertion failed. Expected any to be 1\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, true>>, [\"Type assertion failed. Expected false to be true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<{a: number}, {a: 1}>>, [\"Type assertion failed. Expected { 'a': number } to be { 'a': 1 }\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<any, never>>, [\"Type assertion failed. Expected any to be never\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, true>>, [\"Type assertion failed. Expected false to be true\"]>()();\ntypeAssertExtends<ReturnType<typeof typeAssertIs<false, never>>, [\"Type assertion failed. Expected false to be never\"]>()();\n"],"mappings":";AAkDA,aAA6F,CAAC,CAAC;AAC/F,aAA0F,CAAC,CAAC;AAuB5F,aAAqE,CAAC,CAAC;;;;;;;;;AAwEvE,SAAgB,aAKd;CACA,cAAc,KAAA;AAChB;AAMA,kBAAwE,CAAC,CAAC;AAC1E,kBAAoI,CAAC,CAAC;AACtI,kBAAoI,CAAC,CAAC;AACtI,kBAAgI,CAAC,CAAC;;;;AAKlI,SAAgB,oBAEd;CACA,cAAc,KAAA;AAChB;AAEA,kBAAsF,CAAC,CAAC;AACxF,kBAAoF,CAAC,CAAC;AACtF,kBAAuF,CAAC,CAAC;AACzF,kBAAwF,CAAC,CAAC;AAC1F,kBAAsG,CAAC,CAAC;AACxG,kBAAuF,CAAC,CAAC;AACzF,kBAAoF,CAAC,CAAC;AAEtF,kBAAuJ,CAAC,CAAC;AACzJ,kBAA6H,CAAC,CAAC;AAC/H,kBAA+H,CAAC,CAAC;AACjI,kBAAiI,CAAC,CAAC;AAGnI,SAAgB,eAKd;CACA,cAAc,KAAA;AAChB;AAEA,kBAAkF,CAAC,CAAC;AACpF,kBAAoF,CAAC,CAAC;AACtF,kBAAkG,CAAC,CAAC;AACpG,kBAA8E,CAAC,CAAC;AAChF,kBAAkF,CAAC,CAAC;AACpF,kBAA4G,CAAC,CAAC;AAC9G,kBAA4G,CAAC,CAAC;AAC9G,kBAAsH,CAAC,CAAC;AACxH,kBAA8I,CAAC,CAAC;AAChJ,kBAAoH,CAAC,CAAC;AACtH,kBAAsH,CAAC,CAAC;AACxH,kBAAwH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unicode.d.ts","names":[],"sources":["../../../src/utils/unicode.tsx"],"mappings":";iBAGgB,YAAA,CAAa,oBAAA"}
1
+ {"version":3,"file":"unicode.d.ts","names":[],"sources":["../../../src/utils/unicode.tsx"],"mappings":";iBAGgB,YAAA,CAAa,oBAA4B"}
@@ -1,24 +1,12 @@
1
1
  import { HexclaveAssertionError } from "./errors.js";
2
2
  import { isValidCountryCode, normalizeCountryCode } from "./country-codes.js";
3
-
4
3
  //#region src/utils/unicode.tsx
5
4
  function getFlagEmoji(twoLetterCountryCode) {
6
5
  if (!isValidCountryCode(twoLetterCountryCode)) throw new HexclaveAssertionError("Country code must be two alphabetical letters");
7
6
  const codePoints = normalizeCountryCode(twoLetterCountryCode).split("").map((char) => 127397 + char.charCodeAt(0));
8
7
  return String.fromCodePoint(...codePoints);
9
8
  }
10
- (void 0)?.test("getFlagEmoji", ({ expect }) => {
11
- expect(getFlagEmoji("US")).toBe("🇺🇸");
12
- expect(getFlagEmoji("us")).toBe("🇺🇸");
13
- expect(getFlagEmoji("GB")).toBe("🇬🇧");
14
- expect(getFlagEmoji("JP")).toBe("🇯🇵");
15
- expect(() => getFlagEmoji("")).toThrow("Country code must be two alphabetical letters");
16
- expect(() => getFlagEmoji("A")).toThrow("Country code must be two alphabetical letters");
17
- expect(() => getFlagEmoji("ABC")).toThrow("Country code must be two alphabetical letters");
18
- expect(() => getFlagEmoji("12")).toThrow("Country code must be two alphabetical letters");
19
- expect(() => getFlagEmoji("A1")).toThrow("Country code must be two alphabetical letters");
20
- });
21
-
22
9
  //#endregion
23
10
  export { getFlagEmoji };
11
+
24
12
  //# sourceMappingURL=unicode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unicode.js","names":[],"sources":["../../../src/utils/unicode.tsx"],"sourcesContent":["import { isValidCountryCode, normalizeCountryCode } from \"./country-codes\";\nimport { HexclaveAssertionError } from \"./errors\";\n\nexport function getFlagEmoji(twoLetterCountryCode: string) {\n if (!isValidCountryCode(twoLetterCountryCode)) throw new HexclaveAssertionError(\"Country code must be two alphabetical letters\");\n const codePoints = normalizeCountryCode(twoLetterCountryCode)\n .split('')\n .map(char => 127397 + char.charCodeAt(0));\n return String.fromCodePoint(...codePoints);\n}\nimport.meta.vitest?.test(\"getFlagEmoji\", ({ expect }) => {\n // Test with valid country codes\n expect(getFlagEmoji(\"US\")).toBe(\"🇺🇸\");\n expect(getFlagEmoji(\"us\")).toBe(\"🇺🇸\");\n expect(getFlagEmoji(\"GB\")).toBe(\"🇬🇧\");\n expect(getFlagEmoji(\"JP\")).toBe(\"🇯🇵\");\n\n // Test with invalid country codes\n expect(() => getFlagEmoji(\"\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"A\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"ABC\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"12\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"A1\")).toThrow(\"Country code must be two alphabetical letters\");\n});\n"],"mappings":";;;;AAGA,SAAgB,aAAa,sBAA8B;AACzD,KAAI,CAAC,mBAAmB,qBAAqB,CAAE,OAAM,IAAI,uBAAuB,gDAAgD;CAChI,MAAM,aAAa,qBAAqB,qBAAoB,CACzD,MAAM,GAAE,CACR,KAAI,SAAQ,SAAS,KAAK,WAAW,EAAE,CAAC;AAC3C,QAAO,OAAO,cAAc,GAAG,WAAW;;CAE5C,SAAW,KAAC,iBAAc,EAAA,aAAkB;AAE1C,QAAO,aAAa,KAAK,CAAC,CAAC,KAAK,OAAO;AACvC,QAAO,aAAa,KAAK,CAAC,CAAC,KAAK,OAAO;AACvC,QAAO,aAAa,KAAK,CAAC,CAAC,KAAK,OAAO;AACvC,QAAO,aAAa,KAAK,CAAC,CAAC,KAAK,OAAO;AAGvC,cAAa,aAAa,GAAG,CAAC,CAAC,QAAQ,gDAAgD;AACvF,cAAa,aAAa,IAAI,CAAC,CAAC,QAAQ,gDAAgD;AACxF,cAAa,aAAa,MAAM,CAAC,CAAC,QAAQ,gDAAgD;AAC1F,cAAa,aAAa,KAAK,CAAC,CAAC,QAAQ,gDAAgD;AACzF,cAAa,aAAa,KAAK,CAAC,CAAC,QAAQ,gDAAgD;EACzF"}
1
+ {"version":3,"file":"unicode.js","names":[],"sources":["../../../src/utils/unicode.tsx"],"sourcesContent":["import { isValidCountryCode, normalizeCountryCode } from \"./country-codes\";\nimport { HexclaveAssertionError } from \"./errors\";\n\nexport function getFlagEmoji(twoLetterCountryCode: string) {\n if (!isValidCountryCode(twoLetterCountryCode)) throw new HexclaveAssertionError(\"Country code must be two alphabetical letters\");\n const codePoints = normalizeCountryCode(twoLetterCountryCode)\n .split('')\n .map(char => 127397 + char.charCodeAt(0));\n return String.fromCodePoint(...codePoints);\n}\nimport.meta.vitest?.test(\"getFlagEmoji\", ({ expect }) => {\n // Test with valid country codes\n expect(getFlagEmoji(\"US\")).toBe(\"🇺🇸\");\n expect(getFlagEmoji(\"us\")).toBe(\"🇺🇸\");\n expect(getFlagEmoji(\"GB\")).toBe(\"🇬🇧\");\n expect(getFlagEmoji(\"JP\")).toBe(\"🇯🇵\");\n\n // Test with invalid country codes\n expect(() => getFlagEmoji(\"\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"A\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"ABC\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"12\")).toThrow(\"Country code must be two alphabetical letters\");\n expect(() => getFlagEmoji(\"A1\")).toThrow(\"Country code must be two alphabetical letters\");\n});\n"],"mappings":";;;AAGA,SAAgB,aAAa,sBAA8B;CACzD,IAAI,CAAC,mBAAmB,oBAAoB,GAAG,MAAM,IAAI,uBAAuB,+CAA+C;CAC/H,MAAM,aAAa,qBAAqB,oBAAoB,CAAC,CAC1D,MAAM,EAAE,CAAC,CACT,KAAI,SAAQ,SAAS,KAAK,WAAW,CAAC,CAAC;CAC1C,OAAO,OAAO,cAAc,GAAG,UAAU;AAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"urls.d.ts","names":[],"sources":["../../../src/utils/urls.tsx"],"mappings":";iBAGgB,gBAAA,CAAA,GAAoB,IAAA,EAAM,qBAAA,QAA6B,GAAA,IAAI,GAAA;AAAA,iBAmB3D,UAAA,CAAW,GAAA;AAAA,iBAeX,eAAA,CAAgB,QAAA;AAAA,iBAwBhB,4BAAA,CAA6B,QAAA;AAAA,iBAkF7B,oBAAA,CAAqB,OAAA,UAAiB,QAAA;AAAA,iBAuDtC,wBAAA,CAAyB,cAAA;AAAA,iBAyBzB,iBAAA,CAAkB,cAAA;AAAA,iBAIlB,WAAA,CAAY,WAAA,WAAsB,GAAA;AAAA,iBA+BlC,UAAA,CAAW,GAAA;AAAA,iBA4BX,eAAA,CAAgB,GAAA,EAAK,GAAA;;;;;;iBAsBrB,GAAA,CAAI,OAAA,EAAS,oBAAA,yBAA6C,MAAA,kCAAwC,GAAA;;;;;AA/QlH;iBAmTgB,SAAA,CAAU,OAAA,EAAS,oBAAA,yBAA6C,MAAA;AAAA,iBAyBhE,UAAA,CAAW,SAAA,EAAW,GAAA,EAAK,aAAA,EAAe,GAAA;AAAA,iBAsB1C,WAAA,CAAY,UAAA,UAAoB,cAAA"}
1
+ {"version":3,"file":"urls.d.ts","names":[],"sources":["../../../src/utils/urls.tsx"],"mappings":";iBAGgB,gBAAA,IAAoB,IAAA,EAAM,qBAAA,QAA6B,GAAA,IAAI,GAAA;AAAA,iBAmB3D,UAAA,CAAW,GAAW;AAAA,iBAetB,eAAA,CAAgB,QAAgB;AAAA,iBAwBhC,4BAAA,CAA6B,QAAgB;AAAA,iBAkF7C,oBAAA,CAAqB,OAAA,UAAiB,QAAgB;AAAA,iBAuDtD,wBAAA,CAAyB,cAAsB;AAAA,iBAyB/C,iBAAA,CAAkB,cAAsB;AAAA,iBAIxC,WAAA,CAAY,WAAyB,WAAH,GAAG;AAAA,iBA+BrC,UAAA,CAAW,GAAW;AAAA,iBA4BtB,eAAA,CAAgB,GAAQ,EAAH,GAAG;;;;;AA3RmC;iBAiT3D,GAAA,CAAI,OAAA,EAAS,oBAAA,yBAA6C,MAAA,kCAAwC,GAAG;;;;AA9R/E;AAetC;iBAmTgB,SAAA,CAAU,OAAA,EAAS,oBAAoB,yBAAyB,MAAA;AAAA,iBAyBhE,UAAA,CAAW,SAAA,EAAW,GAAA,EAAK,aAAA,EAAe,GAAG;AAAA,iBAsB7C,WAAA,CAAY,UAAA,UAAoB,cAAsB"}