@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":"paginated-lists.test.js","names":[],"sources":["../../../src/utils/paginated-lists.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { ArrayPaginatedList, PaginatedList } from \"./paginated-lists\";\nimport { stringCompare } from \"./strings\";\n\ntype NumberFilter = (item: number) => boolean;\ntype NumberOrderBy = (a: number, b: number) => number;\n\n// Helper to extract just the items from a paginated result\nconst items = <T>(result: { items: { item: T }[] }) => result.items.map(i => i.item);\n\ndescribe(\"ArrayPaginatedList\", () => {\n describe(\"basic forward pagination (next)\", () => {\n it(\"should return all items when limit is greater than array length\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should return exact limit when more items exist\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(false);\n });\n\n it(\"should continue from cursor correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2]);\n expect(first.cursor).toBe(\"before-2\");\n\n const second = await list.next({\n after: first.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3, 4]);\n expect(second.isFirst).toBe(false);\n expect(second.isLast).toBe(false);\n });\n\n it(\"should handle empty array\", async () => {\n const list = new ArrayPaginatedList<number>([]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should handle limit of 0\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 0,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n });\n });\n\n describe(\"backward pagination (prev)\", () => {\n it(\"should return items before cursor\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.prev({\n before: list.getLastCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([4, 5]);\n expect(result.isFirst).toBe(false);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should paginate backwards correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n const last = await list.prev({\n before: list.getLastCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(last)).toEqual([4, 5]);\n\n const middle = await list.prev({\n before: last.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(middle)).toEqual([2, 3]);\n\n const first = await list.prev({\n before: middle.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(first)).toEqual([1]);\n expect(first.isFirst).toBe(true);\n });\n });\n\n describe(\"cursor semantics (prevCursor and nextCursor)\", () => {\n it(\"should have prevCursor before the item and nextCursor after\", async () => {\n const list = new ArrayPaginatedList([10, 20, 30]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n // First item: prevCursor should be \"before-0\", nextCursor should be \"before-1\"\n expect(result.items[0].prevCursor).toBe(\"before-0\");\n expect(result.items[0].nextCursor).toBe(\"before-1\");\n\n // Second item\n expect(result.items[1].prevCursor).toBe(\"before-1\");\n expect(result.items[1].nextCursor).toBe(\"before-2\");\n\n // Third item\n expect(result.items[2].prevCursor).toBe(\"before-2\");\n expect(result.items[2].nextCursor).toBe(\"before-3\");\n });\n\n it(\"should allow using nextCursor to continue forward pagination\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n // Use the nextCursor of the last item to continue\n const continueFrom = first.items[first.items.length - 1].nextCursor;\n const second = await list.next({\n after: continueFrom,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3, 4]);\n });\n\n it(\"should allow using prevCursor to go back\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n // Get items 3,4,5 first\n const middle = await list.next({\n after: \"before-2\",\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(middle)).toEqual([3, 4, 5]);\n expect(middle.items[0].prevCursor).toBe(\"before-2\");\n\n // Use prevCursor of first item to go back\n const goBack = await list.prev({\n before: middle.items[0].prevCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(goBack)).toEqual([1, 2]);\n });\n });\n\n describe(\"filtering\", () => {\n it(\"should filter items correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: (n) => n % 2 === 0, // only even numbers\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n\n it(\"should respect limit with filtering\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: (n) => n % 2 === 0,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4]);\n });\n\n it(\"should handle filter that matches nothing\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => false,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n });\n });\n\n describe(\"ordering\", () => {\n it(\"should sort items in ascending order\", async () => {\n const list = new ArrayPaginatedList([5, 2, 8, 1, 9]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 5, 8, 9]);\n });\n\n it(\"should sort items in descending order\", async () => {\n const list = new ArrayPaginatedList([5, 2, 8, 1, 9]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => b - a,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([9, 8, 5, 2, 1]);\n });\n\n it(\"should sort objects by property\", async () => {\n const list = new ArrayPaginatedList([\n { name: \"Charlie\", age: 30 },\n { name: \"Alice\", age: 25 },\n { name: \"Bob\", age: 35 },\n ]);\n\n const byName = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => stringCompare(a.name, b.name),\n limitPrecision: \"exact\",\n });\n\n expect(items(byName).map(p => p.name)).toEqual([\"Alice\", \"Bob\", \"Charlie\"]);\n\n const byAge = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a.age - b.age,\n limitPrecision: \"exact\",\n });\n\n expect(items(byAge).map(p => p.name)).toEqual([\"Alice\", \"Charlie\", \"Bob\"]);\n });\n });\n\n describe(\"limitPrecision\", () => {\n it(\"exact should return exactly the limit\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(result.items.length).toBe(3);\n });\n\n // Note: ArrayPaginatedList always returns exact results since it has all data in memory\n // These tests verify the contract is respected\n it(\"at-least should return at least the limit (or all if less available)\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"at-least\",\n });\n\n expect(result.items.length).toBeGreaterThanOrEqual(3);\n });\n\n it(\"at-most should return at most the limit\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"at-most\",\n });\n\n expect(result.items.length).toBeLessThanOrEqual(3);\n });\n\n it(\"approximate should allow flexibility in either direction\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"approximate\",\n });\n\n // With 'approximate', the implementation can return more or fewer items\n // than requested. We just verify it returns some items and makes progress.\n expect(result.items.length).toBeGreaterThan(0);\n // Should still return valid items\n expect(items(result).every(n => typeof n === \"number\")).toBe(true);\n });\n\n it(\"approximate should still make progress when limit > 0\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let iterations = 0;\n const maxIterations = 20; // Safety limit to prevent infinite loops\n\n while (iterations < maxIterations) {\n const result = await list.next({\n after: cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"approximate\",\n });\n\n if (result.items.length === 0) break;\n\n allItems.push(...items(result));\n // Cursor must change to ensure progress\n expect(result.cursor).not.toBe(cursor);\n cursor = result.cursor;\n iterations++;\n\n if (result.isLast) break;\n }\n\n // Should eventually get all items\n expect(allItems.length).toBeGreaterThan(0);\n });\n });\n\n describe(\"getFirstCursor and getLastCursor\", () => {\n it(\"should return correct cursor format\", () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n expect(list.getFirstCursor()).toBe(\"before-0\");\n expect(list.getLastCursor()).toBe(\"before-3\");\n });\n\n it(\"should work for empty array\", () => {\n const list = new ArrayPaginatedList([]);\n expect(list.getFirstCursor()).toBe(\"before-0\");\n expect(list.getLastCursor()).toBe(\"before-0\");\n });\n });\n\n describe(\"compare\", () => {\n it(\"should compare items using the orderBy function\", () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const orderBy = (a: number, b: number) => a - b;\n\n expect(list.compare(orderBy, 1, 2)).toBeLessThan(0);\n expect(list.compare(orderBy, 2, 1)).toBeGreaterThan(0);\n expect(list.compare(orderBy, 1, 1)).toBe(0);\n });\n });\n});\n\ndescribe(\"PaginatedList.empty\", () => {\n it(\"should return empty results\", async () => {\n const list = PaginatedList.empty();\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: {},\n orderBy: {},\n limitPrecision: \"exact\",\n });\n\n expect(result.items).toEqual([]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should have first cursor\", () => {\n const list = PaginatedList.empty();\n expect(list.getFirstCursor()).toBe(\"first\");\n expect(list.getLastCursor()).toBe(\"last\");\n });\n});\n\ndescribe(\"PaginatedList.map\", () => {\n it(\"should transform items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const doubled = list.map<number, NumberFilter, NumberOrderBy>({\n itemMapper: (n) => n * 2,\n oldItemFromNewItem: (n) => n / 2,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n });\n\n const result = await doubled.next({\n after: doubled.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n\n it(\"should preserve cursor semantics\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const doubled = list.map<number, NumberFilter, NumberOrderBy>({\n itemMapper: (n) => n * 2,\n oldItemFromNewItem: (n) => n / 2,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n });\n\n const first = await doubled.next({\n after: doubled.getFirstCursor(),\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([2]);\n\n const second = await doubled.next({\n after: first.cursor,\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([4]);\n });\n});\n\ndescribe(\"PaginatedList.filter\", () => {\n it(\"should filter items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6]);\n const evens = list.filter({\n filter: (n) => n % 2 === 0,\n oldFilterFromNewFilter: () => () => true,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evens.next({\n after: evens.getFirstCursor(),\n limit: 10,\n filter: undefined,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n});\n\ndescribe(\"PaginatedList.addFilter\", () => {\n it(\"should add additional filter constraint\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n\n // First filter: only even\n const evens = list.filter({\n filter: (n) => n % 2 === 0,\n oldFilterFromNewFilter: () => () => true,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n // Add filter: only > 5\n const evenAndGreaterThan5 = evens.addFilter({\n filter: (n) => n > 5,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evenAndGreaterThan5.next({\n after: evenAndGreaterThan5.getFirstCursor(),\n limit: 10,\n filter: undefined,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([6, 8, 10]);\n });\n});\n\ndescribe(\"PaginatedList.flatMap\", () => {\n it(\"should expand items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const expanded = list.flatMap<number, `before-${number}`, NumberFilter, NumberOrderBy>({\n itemMapper: (entry) => [\n { item: entry.item, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor },\n { item: entry.item + 0.5, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor },\n ],\n compare: (_, a, b) => a - b,\n newCursorFromOldCursor: (c) => c,\n oldCursorFromNewCursor: (c) => c,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n estimateItemsToFetch: ({ limit }) => limit,\n });\n\n const result = await expanded.next({\n after: expanded.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 1.5, 2, 2.5, 3, 3.5]);\n });\n\n it(\"should filter out items (return empty array)\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const evensOnly = list.flatMap<number, `before-${number}`, NumberFilter, NumberOrderBy>({\n itemMapper: (entry) => entry.item % 2 === 0\n ? [{ item: entry.item, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor }]\n : [],\n compare: (_, a, b) => a - b,\n newCursorFromOldCursor: (c) => c,\n oldCursorFromNewCursor: (c) => c,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evensOnly.next({\n after: evensOnly.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4]);\n });\n});\n\ndescribe(\"PaginatedList.merge\", () => {\n it(\"should merge two lists\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5]);\n const list2 = new ArrayPaginatedList([2, 4, 6]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3, 4, 5, 6]);\n });\n\n it(\"should merge three lists\", async () => {\n const list1 = new ArrayPaginatedList([1, 4, 7]);\n const list2 = new ArrayPaginatedList([2, 5, 8]);\n const list3 = new ArrayPaginatedList([3, 6, 9]);\n\n const merged = PaginatedList.merge(list1, list2, list3);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n\n it(\"should handle empty lists in merge\", async () => {\n const list1 = new ArrayPaginatedList([1, 2, 3]);\n const list2 = new ArrayPaginatedList<number>([]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n });\n\n it(\"should paginate through merged list\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5, 7, 9]);\n const list2 = new ArrayPaginatedList([2, 4, 6, 8, 10]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const first = await merged.next({\n after: merged.getFirstCursor(),\n limit: 4,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2, 3, 4]);\n\n const second = await merged.next({\n after: first.cursor,\n limit: 4,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([5, 6, 7, 8]);\n });\n\n it(\"should have JSON-encoded cursor\", () => {\n const list1 = new ArrayPaginatedList([1, 2]);\n const list2 = new ArrayPaginatedList([3, 4]);\n\n const merged = PaginatedList.merge(list1, list2);\n const cursor = merged.getFirstCursor();\n\n expect(() => JSON.parse(cursor)).not.toThrow();\n expect(JSON.parse(cursor)).toEqual([\"before-0\", \"before-0\"]);\n });\n\n it(\"should paginate backward through merged list correctly\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5]);\n const list2 = new ArrayPaginatedList([2, 4, 6]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n // Get last 3 items going backward\n const last = await merged.prev({\n before: merged.getLastCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(last)).toEqual([4, 5, 6]);\n expect(last.isLast).toBe(true);\n expect(last.isFirst).toBe(false);\n\n // Continue backward to get previous 3 items\n const middle = await merged.prev({\n before: last.cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(middle)).toEqual([1, 2, 3]);\n expect(middle.isFirst).toBe(true);\n });\n\n it(\"should paginate backward through entire merged list\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5, 7, 9]);\n const list2 = new ArrayPaginatedList([2, 4, 6, 8, 10]);\n\n const merged = PaginatedList.merge(list1, list2);\n const allItems: number[] = [];\n\n let cursor = merged.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await merged.prev({\n before: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.unshift(...items(result));\n cursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should have consistent forward and backward pagination results\", async () => {\n const list1 = new ArrayPaginatedList([1, 4, 7]);\n const list2 = new ArrayPaginatedList([2, 5, 8]);\n const list3 = new ArrayPaginatedList([3, 6, 9]);\n\n const merged = PaginatedList.merge(list1, list2, list3);\n\n // Collect all items going forward\n const forwardItems: number[] = [];\n let forwardCursor = merged.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await merged.next({\n after: forwardCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n forwardItems.push(...items(result));\n forwardCursor = result.cursor;\n isLast = result.isLast;\n }\n\n // Collect all items going backward\n const backwardItems: number[] = [];\n let backwardCursor = merged.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await merged.prev({\n before: backwardCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n backwardItems.unshift(...items(result));\n backwardCursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n // Both directions should yield the same final result\n expect(forwardItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n expect(backwardItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n});\n\ndescribe(\"edge cases\", () => {\n it(\"should handle single item\", async () => {\n const list = new ArrayPaginatedList([42]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([42]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should handle duplicate values\", async () => {\n const list = new ArrayPaginatedList([1, 1, 2, 2, 3, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 1, 2, 2, 3, 3]);\n });\n\n it(\"should handle negative numbers\", async () => {\n const list = new ArrayPaginatedList([-3, -1, 0, 1, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([-3, -1, 0, 1, 3]);\n });\n\n it(\"should handle string items\", async () => {\n const list = new ArrayPaginatedList([\"banana\", \"apple\", \"cherry\"]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => stringCompare(a, b),\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([\"apple\", \"banana\", \"cherry\"]);\n });\n\n it(\"should handle object items\", async () => {\n const list = new ArrayPaginatedList([\n { id: 1, value: \"a\" },\n { id: 2, value: \"b\" },\n ]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a.id - b.id,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([\n { id: 1, value: \"a\" },\n { id: 2, value: \"b\" },\n ]);\n });\n});\n\ndescribe(\"complete pagination walkthrough\", () => {\n it(\"should paginate forward through entire list\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should paginate backward through entire list\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await list.prev({\n before: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.unshift(...items(result));\n cursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n});\n\ndescribe(\"unsorted array pagination\", () => {\n it(\"should correctly paginate through an unsorted array with sorting\", async () => {\n const list = new ArrayPaginatedList([3, 1, 2]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2]);\n\n const second = await list.next({\n after: first.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3]);\n });\n\n it(\"should maintain sorted order across pagination boundaries\", async () => {\n const list = new ArrayPaginatedList([5, 4, 3, 2, 1]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5]);\n });\n\n it(\"should handle random order array correctly\", async () => {\n const list = new ArrayPaginatedList([7, 2, 9, 1, 5, 8, 3, 6, 4]);\n\n const allItems: number[] = [];\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n\n it(\"should have consistent cursor semantics with sorted data\", async () => {\n const list = new ArrayPaginatedList([3, 1, 2]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1]);\n\n const second = await list.next({\n after: first.cursor,\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([2]);\n });\n});\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"paginated-lists.test.js","names":[],"sources":["../../../src/utils/paginated-lists.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { ArrayPaginatedList, PaginatedList } from \"./paginated-lists\";\nimport { stringCompare } from \"./strings\";\n\ntype NumberFilter = (item: number) => boolean;\ntype NumberOrderBy = (a: number, b: number) => number;\n\n// Helper to extract just the items from a paginated result\nconst items = <T>(result: { items: { item: T }[] }) => result.items.map(i => i.item);\n\ndescribe(\"ArrayPaginatedList\", () => {\n describe(\"basic forward pagination (next)\", () => {\n it(\"should return all items when limit is greater than array length\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should return exact limit when more items exist\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(false);\n });\n\n it(\"should continue from cursor correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2]);\n expect(first.cursor).toBe(\"before-2\");\n\n const second = await list.next({\n after: first.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3, 4]);\n expect(second.isFirst).toBe(false);\n expect(second.isLast).toBe(false);\n });\n\n it(\"should handle empty array\", async () => {\n const list = new ArrayPaginatedList<number>([]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should handle limit of 0\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 0,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n });\n });\n\n describe(\"backward pagination (prev)\", () => {\n it(\"should return items before cursor\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.prev({\n before: list.getLastCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([4, 5]);\n expect(result.isFirst).toBe(false);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should paginate backwards correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n const last = await list.prev({\n before: list.getLastCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(last)).toEqual([4, 5]);\n\n const middle = await list.prev({\n before: last.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(middle)).toEqual([2, 3]);\n\n const first = await list.prev({\n before: middle.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n expect(items(first)).toEqual([1]);\n expect(first.isFirst).toBe(true);\n });\n });\n\n describe(\"cursor semantics (prevCursor and nextCursor)\", () => {\n it(\"should have prevCursor before the item and nextCursor after\", async () => {\n const list = new ArrayPaginatedList([10, 20, 30]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n // First item: prevCursor should be \"before-0\", nextCursor should be \"before-1\"\n expect(result.items[0].prevCursor).toBe(\"before-0\");\n expect(result.items[0].nextCursor).toBe(\"before-1\");\n\n // Second item\n expect(result.items[1].prevCursor).toBe(\"before-1\");\n expect(result.items[1].nextCursor).toBe(\"before-2\");\n\n // Third item\n expect(result.items[2].prevCursor).toBe(\"before-2\");\n expect(result.items[2].nextCursor).toBe(\"before-3\");\n });\n\n it(\"should allow using nextCursor to continue forward pagination\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n // Use the nextCursor of the last item to continue\n const continueFrom = first.items[first.items.length - 1].nextCursor;\n const second = await list.next({\n after: continueFrom,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3, 4]);\n });\n\n it(\"should allow using prevCursor to go back\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n\n // Get items 3,4,5 first\n const middle = await list.next({\n after: \"before-2\",\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(middle)).toEqual([3, 4, 5]);\n expect(middle.items[0].prevCursor).toBe(\"before-2\");\n\n // Use prevCursor of first item to go back\n const goBack = await list.prev({\n before: middle.items[0].prevCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(goBack)).toEqual([1, 2]);\n });\n });\n\n describe(\"filtering\", () => {\n it(\"should filter items correctly\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: (n) => n % 2 === 0, // only even numbers\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n\n it(\"should respect limit with filtering\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: (n) => n % 2 === 0,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4]);\n });\n\n it(\"should handle filter that matches nothing\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => false,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([]);\n });\n });\n\n describe(\"ordering\", () => {\n it(\"should sort items in ascending order\", async () => {\n const list = new ArrayPaginatedList([5, 2, 8, 1, 9]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 5, 8, 9]);\n });\n\n it(\"should sort items in descending order\", async () => {\n const list = new ArrayPaginatedList([5, 2, 8, 1, 9]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => b - a,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([9, 8, 5, 2, 1]);\n });\n\n it(\"should sort objects by property\", async () => {\n const list = new ArrayPaginatedList([\n { name: \"Charlie\", age: 30 },\n { name: \"Alice\", age: 25 },\n { name: \"Bob\", age: 35 },\n ]);\n\n const byName = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => stringCompare(a.name, b.name),\n limitPrecision: \"exact\",\n });\n\n expect(items(byName).map(p => p.name)).toEqual([\"Alice\", \"Bob\", \"Charlie\"]);\n\n const byAge = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a.age - b.age,\n limitPrecision: \"exact\",\n });\n\n expect(items(byAge).map(p => p.name)).toEqual([\"Alice\", \"Charlie\", \"Bob\"]);\n });\n });\n\n describe(\"limitPrecision\", () => {\n it(\"exact should return exactly the limit\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(result.items.length).toBe(3);\n });\n\n // Note: ArrayPaginatedList always returns exact results since it has all data in memory\n // These tests verify the contract is respected\n it(\"at-least should return at least the limit (or all if less available)\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"at-least\",\n });\n\n expect(result.items.length).toBeGreaterThanOrEqual(3);\n });\n\n it(\"at-most should return at most the limit\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"at-most\",\n });\n\n expect(result.items.length).toBeLessThanOrEqual(3);\n });\n\n it(\"approximate should allow flexibility in either direction\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"approximate\",\n });\n\n // With 'approximate', the implementation can return more or fewer items\n // than requested. We just verify it returns some items and makes progress.\n expect(result.items.length).toBeGreaterThan(0);\n // Should still return valid items\n expect(items(result).every(n => typeof n === \"number\")).toBe(true);\n });\n\n it(\"approximate should still make progress when limit > 0\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let iterations = 0;\n const maxIterations = 20; // Safety limit to prevent infinite loops\n\n while (iterations < maxIterations) {\n const result = await list.next({\n after: cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"approximate\",\n });\n\n if (result.items.length === 0) break;\n\n allItems.push(...items(result));\n // Cursor must change to ensure progress\n expect(result.cursor).not.toBe(cursor);\n cursor = result.cursor;\n iterations++;\n\n if (result.isLast) break;\n }\n\n // Should eventually get all items\n expect(allItems.length).toBeGreaterThan(0);\n });\n });\n\n describe(\"getFirstCursor and getLastCursor\", () => {\n it(\"should return correct cursor format\", () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n expect(list.getFirstCursor()).toBe(\"before-0\");\n expect(list.getLastCursor()).toBe(\"before-3\");\n });\n\n it(\"should work for empty array\", () => {\n const list = new ArrayPaginatedList([]);\n expect(list.getFirstCursor()).toBe(\"before-0\");\n expect(list.getLastCursor()).toBe(\"before-0\");\n });\n });\n\n describe(\"compare\", () => {\n it(\"should compare items using the orderBy function\", () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const orderBy = (a: number, b: number) => a - b;\n\n expect(list.compare(orderBy, 1, 2)).toBeLessThan(0);\n expect(list.compare(orderBy, 2, 1)).toBeGreaterThan(0);\n expect(list.compare(orderBy, 1, 1)).toBe(0);\n });\n });\n});\n\ndescribe(\"PaginatedList.empty\", () => {\n it(\"should return empty results\", async () => {\n const list = PaginatedList.empty();\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: {},\n orderBy: {},\n limitPrecision: \"exact\",\n });\n\n expect(result.items).toEqual([]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should have first cursor\", () => {\n const list = PaginatedList.empty();\n expect(list.getFirstCursor()).toBe(\"first\");\n expect(list.getLastCursor()).toBe(\"last\");\n });\n});\n\ndescribe(\"PaginatedList.map\", () => {\n it(\"should transform items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const doubled = list.map<number, NumberFilter, NumberOrderBy>({\n itemMapper: (n) => n * 2,\n oldItemFromNewItem: (n) => n / 2,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n });\n\n const result = await doubled.next({\n after: doubled.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n\n it(\"should preserve cursor semantics\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const doubled = list.map<number, NumberFilter, NumberOrderBy>({\n itemMapper: (n) => n * 2,\n oldItemFromNewItem: (n) => n / 2,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n });\n\n const first = await doubled.next({\n after: doubled.getFirstCursor(),\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([2]);\n\n const second = await doubled.next({\n after: first.cursor,\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([4]);\n });\n});\n\ndescribe(\"PaginatedList.filter\", () => {\n it(\"should filter items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6]);\n const evens = list.filter({\n filter: (n) => n % 2 === 0,\n oldFilterFromNewFilter: () => () => true,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evens.next({\n after: evens.getFirstCursor(),\n limit: 10,\n filter: undefined,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4, 6]);\n });\n});\n\ndescribe(\"PaginatedList.addFilter\", () => {\n it(\"should add additional filter constraint\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n\n // First filter: only even\n const evens = list.filter({\n filter: (n) => n % 2 === 0,\n oldFilterFromNewFilter: () => () => true,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n // Add filter: only > 5\n const evenAndGreaterThan5 = evens.addFilter({\n filter: (n) => n > 5,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evenAndGreaterThan5.next({\n after: evenAndGreaterThan5.getFirstCursor(),\n limit: 10,\n filter: undefined,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([6, 8, 10]);\n });\n});\n\ndescribe(\"PaginatedList.flatMap\", () => {\n it(\"should expand items\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3]);\n const expanded = list.flatMap<number, `before-${number}`, NumberFilter, NumberOrderBy>({\n itemMapper: (entry) => [\n { item: entry.item, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor },\n { item: entry.item + 0.5, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor },\n ],\n compare: (_, a, b) => a - b,\n newCursorFromOldCursor: (c) => c,\n oldCursorFromNewCursor: (c) => c,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n estimateItemsToFetch: ({ limit }) => limit,\n });\n\n const result = await expanded.next({\n after: expanded.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 1.5, 2, 2.5, 3, 3.5]);\n });\n\n it(\"should filter out items (return empty array)\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5]);\n const evensOnly = list.flatMap<number, `before-${number}`, NumberFilter, NumberOrderBy>({\n itemMapper: (entry) => entry.item % 2 === 0\n ? [{ item: entry.item, prevCursor: entry.prevCursor, nextCursor: entry.nextCursor }]\n : [],\n compare: (_, a, b) => a - b,\n newCursorFromOldCursor: (c) => c,\n oldCursorFromNewCursor: (c) => c,\n oldFilterFromNewFilter: (f) => f,\n oldOrderByFromNewOrderBy: (o) => o,\n estimateItemsToFetch: ({ limit }) => limit * 2,\n });\n\n const result = await evensOnly.next({\n after: evensOnly.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([2, 4]);\n });\n});\n\ndescribe(\"PaginatedList.merge\", () => {\n it(\"should merge two lists\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5]);\n const list2 = new ArrayPaginatedList([2, 4, 6]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3, 4, 5, 6]);\n });\n\n it(\"should merge three lists\", async () => {\n const list1 = new ArrayPaginatedList([1, 4, 7]);\n const list2 = new ArrayPaginatedList([2, 5, 8]);\n const list3 = new ArrayPaginatedList([3, 6, 9]);\n\n const merged = PaginatedList.merge(list1, list2, list3);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n\n it(\"should handle empty lists in merge\", async () => {\n const list1 = new ArrayPaginatedList([1, 2, 3]);\n const list2 = new ArrayPaginatedList<number>([]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const result = await merged.next({\n after: merged.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 2, 3]);\n });\n\n it(\"should paginate through merged list\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5, 7, 9]);\n const list2 = new ArrayPaginatedList([2, 4, 6, 8, 10]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n const first = await merged.next({\n after: merged.getFirstCursor(),\n limit: 4,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2, 3, 4]);\n\n const second = await merged.next({\n after: first.cursor,\n limit: 4,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([5, 6, 7, 8]);\n });\n\n it(\"should have JSON-encoded cursor\", () => {\n const list1 = new ArrayPaginatedList([1, 2]);\n const list2 = new ArrayPaginatedList([3, 4]);\n\n const merged = PaginatedList.merge(list1, list2);\n const cursor = merged.getFirstCursor();\n\n expect(() => JSON.parse(cursor)).not.toThrow();\n expect(JSON.parse(cursor)).toEqual([\"before-0\", \"before-0\"]);\n });\n\n it(\"should paginate backward through merged list correctly\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5]);\n const list2 = new ArrayPaginatedList([2, 4, 6]);\n\n const merged = PaginatedList.merge(list1, list2);\n\n // Get last 3 items going backward\n const last = await merged.prev({\n before: merged.getLastCursor(),\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(last)).toEqual([4, 5, 6]);\n expect(last.isLast).toBe(true);\n expect(last.isFirst).toBe(false);\n\n // Continue backward to get previous 3 items\n const middle = await merged.prev({\n before: last.cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(middle)).toEqual([1, 2, 3]);\n expect(middle.isFirst).toBe(true);\n });\n\n it(\"should paginate backward through entire merged list\", async () => {\n const list1 = new ArrayPaginatedList([1, 3, 5, 7, 9]);\n const list2 = new ArrayPaginatedList([2, 4, 6, 8, 10]);\n\n const merged = PaginatedList.merge(list1, list2);\n const allItems: number[] = [];\n\n let cursor = merged.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await merged.prev({\n before: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.unshift(...items(result));\n cursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should have consistent forward and backward pagination results\", async () => {\n const list1 = new ArrayPaginatedList([1, 4, 7]);\n const list2 = new ArrayPaginatedList([2, 5, 8]);\n const list3 = new ArrayPaginatedList([3, 6, 9]);\n\n const merged = PaginatedList.merge(list1, list2, list3);\n\n // Collect all items going forward\n const forwardItems: number[] = [];\n let forwardCursor = merged.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await merged.next({\n after: forwardCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n forwardItems.push(...items(result));\n forwardCursor = result.cursor;\n isLast = result.isLast;\n }\n\n // Collect all items going backward\n const backwardItems: number[] = [];\n let backwardCursor = merged.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await merged.prev({\n before: backwardCursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n backwardItems.unshift(...items(result));\n backwardCursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n // Both directions should yield the same final result\n expect(forwardItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n expect(backwardItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n});\n\ndescribe(\"edge cases\", () => {\n it(\"should handle single item\", async () => {\n const list = new ArrayPaginatedList([42]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([42]);\n expect(result.isFirst).toBe(true);\n expect(result.isLast).toBe(true);\n });\n\n it(\"should handle duplicate values\", async () => {\n const list = new ArrayPaginatedList([1, 1, 2, 2, 3, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([1, 1, 2, 2, 3, 3]);\n });\n\n it(\"should handle negative numbers\", async () => {\n const list = new ArrayPaginatedList([-3, -1, 0, 1, 3]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([-3, -1, 0, 1, 3]);\n });\n\n it(\"should handle string items\", async () => {\n const list = new ArrayPaginatedList([\"banana\", \"apple\", \"cherry\"]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => stringCompare(a, b),\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([\"apple\", \"banana\", \"cherry\"]);\n });\n\n it(\"should handle object items\", async () => {\n const list = new ArrayPaginatedList([\n { id: 1, value: \"a\" },\n { id: 2, value: \"b\" },\n ]);\n const result = await list.next({\n after: list.getFirstCursor(),\n limit: 10,\n filter: () => true,\n orderBy: (a, b) => a.id - b.id,\n limitPrecision: \"exact\",\n });\n\n expect(items(result)).toEqual([\n { id: 1, value: \"a\" },\n { id: 2, value: \"b\" },\n ]);\n });\n});\n\ndescribe(\"complete pagination walkthrough\", () => {\n it(\"should paginate forward through entire list\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should paginate backward through entire list\", async () => {\n const list = new ArrayPaginatedList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const allItems: number[] = [];\n\n let cursor = list.getLastCursor();\n let isFirst = false;\n\n while (!isFirst) {\n const result = await list.prev({\n before: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.unshift(...items(result));\n cursor = result.cursor;\n isFirst = result.isFirst;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n});\n\ndescribe(\"unsorted array pagination\", () => {\n it(\"should correctly paginate through an unsorted array with sorting\", async () => {\n const list = new ArrayPaginatedList([3, 1, 2]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1, 2]);\n\n const second = await list.next({\n after: first.cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([3]);\n });\n\n it(\"should maintain sorted order across pagination boundaries\", async () => {\n const list = new ArrayPaginatedList([5, 4, 3, 2, 1]);\n const allItems: number[] = [];\n\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 2,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5]);\n });\n\n it(\"should handle random order array correctly\", async () => {\n const list = new ArrayPaginatedList([7, 2, 9, 1, 5, 8, 3, 6, 4]);\n\n const allItems: number[] = [];\n let cursor = list.getFirstCursor();\n let isLast = false;\n\n while (!isLast) {\n const result = await list.next({\n after: cursor,\n limit: 3,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n allItems.push(...items(result));\n cursor = result.cursor;\n isLast = result.isLast;\n }\n\n expect(allItems).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9]);\n });\n\n it(\"should have consistent cursor semantics with sorted data\", async () => {\n const list = new ArrayPaginatedList([3, 1, 2]);\n\n const first = await list.next({\n after: list.getFirstCursor(),\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(first)).toEqual([1]);\n\n const second = await list.next({\n after: first.cursor,\n limit: 1,\n filter: () => true,\n orderBy: (a, b) => a - b,\n limitPrecision: \"exact\",\n });\n\n expect(items(second)).toEqual([2]);\n });\n});\n\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { AuthenticationResponseJSON, AuthenticatorAttestationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON } from "@simplewebauthn/browser";
2
- export { type AuthenticationResponseJSON, type AuthenticatorAttestationResponseJSON, type PublicKeyCredentialCreationOptionsJSON, type PublicKeyCredentialRequestOptionsJSON, type RegistrationResponseJSON };
2
+ export type { AuthenticationResponseJSON, AuthenticatorAttestationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON };
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { Result } from "./results";
1
+ import { Result } from "./results.js";
2
2
 
3
3
  //#region src/utils/promises.d.ts
4
4
  type ReactPromise<T> = Promise<T> & ({
@@ -1 +1 @@
1
- {"version":3,"file":"promises.d.ts","names":[],"sources":["../../../src/utils/promises.tsx"],"mappings":";;;KAQY,YAAA,MAAkB,OAAA,CAAQ,CAAA;EAChC,MAAA;EAAoB,MAAA;AAAA;EACpB,MAAA;EAAqB,KAAA,EAAO,CAAA;AAAA;EAC5B,MAAA;AAAA;AAAA,KAGD,OAAA,OAAc,KAAA,EAAO,CAAA;AAAA,KACrB,MAAA,IAAU,MAAA;AAAA,iBACC,aAAA,GAAA,CAAiB,QAAA,GAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,MAAA,EAAQ,MAAA,YAAkB,YAAA,CAAa,CAAA;;;;;iBAwExF,QAAA,GAAA,CAAY,KAAA,EAAO,CAAA,GAAI,YAAA,CAAa,CAAA;;;;;iBA0CpC,QAAA,GAAA,CAAY,MAAA,YAAkB,YAAA,CAAa,CAAA;AAAA,iBA6C3C,YAAA,CAAA,GAAgB,YAAA;AAAA,iBAchB,OAAA,GAAA,CAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,OAAA;EAAW,oBAAA;AAAA,IAAwC,YAAA,CAAa,CAAA;;;;;AA/KrF;;iBAuNX,wBAAA,WAAmC,OAAA,MAAA,CAAc,OAAA,EAAS,CAAA;;;AArN1E;iBA0OgB,2BAAA,GAAA,CAA+B,OAAA,EAAS,OAAA,CAAQ,CAAA;AAAA,iBAW1C,IAAA,CAAK,EAAA,WAAU,OAAA;AAAA,iBAgCf,SAAA,CAAU,IAAA,EAAM,IAAA,GAAI,OAAA;AAAA,iBAsB1B,0BAAA,CAAA,GAA8B,IAAA,EAAM,UAAA,QAAkB,iBAAA;AAAA,iBAgCtD,iBAAA,CACd,aAAA,SAAsB,OAAA,0BAAiC,OAAA,wBACvD,OAAA;EACE,cAAA;EACA,OAAA,IAAW,KAAA,EAAO,KAAA;AAAA;AAAA,cAoChB,YAAA,SAAqB,KAAA;EAAA,SACG,EAAA;cAAA,EAAA;AAAA;AAAA,iBAMR,OAAA,GAAA,CAAW,aAAA,EAAe,OAAA,CAAQ,CAAA,WAAY,OAAA,CAAQ,CAAA,IAAK,EAAA,WAAa,OAAA,CAAQ,MAAA,CAAO,CAAA,EAAG,YAAA;AAAA,iBA0B1F,YAAA,GAAA,CAAgB,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,EAAA,WAAa,OAAA,CAAQ,CAAA;;;;;;;AA5UhF;;;;iBAsWsB,kBAAA,MAAA,CACpB,KAAA,WAAgB,CAAA,IAChB,WAAA,UACA,EAAA,GAAK,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,OAAA,CAAQ,CAAA,IACvC,OAAA,CAAQ,CAAA;AAAA,KAmDC,gBAAA;EA7ZuC;;;EAiajD,WAAA;EAja0B;;;EAsa1B,UAAA;EAtamD;AA0CrD;;EAiYE,UAAA;EAjYwD;;;EAsYxD,KAAA;EAtYyD;;;EA2YzD,UAAA;AAAA;AAAA,iBAGc,WAAA,GAAA,CACd,IAAA,QAAY,OAAA,CAAQ,CAAA,GACpB,OAAA,EAAS,gBAAA,SACF,OAAA,CAAQ,CAAA;AAAA,iBA0DD,SAAA,oBAAA,CAA8B,IAAA,MAAU,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAAI,OAAA,eAAsB,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA"}
1
+ {"version":3,"file":"promises.d.ts","names":[],"sources":["../../../src/utils/promises.tsx"],"mappings":";;;KAQY,YAAA,MAAkB,OAAA,CAAQ,CAAA;EAChC,MAAA;EAAoB,MAAA;AAAA;EACpB,MAAA;EAAqB,KAAA,EAAO,CAAA;AAAA;EAC5B,MAAA;AAAA;AAAA,KAGD,OAAA,OAAc,KAAA,EAAO,CAAC;AAAA,KACtB,MAAA,IAAU,MAAe;AAAA,iBACd,aAAA,IAAiB,QAAA,GAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,MAAA,EAAQ,MAAA,YAAkB,YAAA,CAAa,CAAA;;;;;iBAwExF,QAAA,IAAY,KAAA,EAAO,CAAA,GAAI,YAAA,CAAa,CAAA;;;;AA7ExC;iBAuHI,QAAA,IAAY,MAAA,YAAkB,YAAY,CAAC,CAAA;AAAA,iBA6C3C,YAAA,IAAgB,YAAY;AAAA,iBAc5B,OAAA,IAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,OAAA;EAAW,oBAAA;AAAA,IAAwC,YAAA,CAAa,CAAA;;;;AA/KrF;AAAA;;iBAuNX,wBAAA,WAAmC,OAAA,OAAc,OAAA,EAAS,CAAC;;AAtN7C;AAC9B;iBA0OgB,2BAAA,IAA+B,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,iBAW1C,IAAA,CAAK,EAAA,WAAU,OAAA;AAAA,iBAgCf,SAAA,CAAU,IAAA,EAAM,IAAA,GAAI,OAAA;AAAA,iBAsB1B,0BAAA,IAA8B,IAAA,EAAM,UAAU,QAAQ,iBAAA;AAAA,iBAgCtD,iBAAA,CACd,aAAA,SAAsB,OAAA,0BAAiC,OAAA,wBACvD,OAAA;EACE,cAAA;EACA,OAAA,IAAW,KAAA,EAAO,KAAA;AAAA;AAAA,cAoChB,YAAA,SAAqB,KAAK;EAAA,SACF,EAAA;cAAA,EAAA;AAAA;AAAA,iBAMR,OAAA,IAAW,aAAA,EAAe,OAAA,CAAQ,CAAA,WAAY,OAAA,CAAQ,CAAA,IAAK,EAAA,WAAa,OAAA,CAAQ,MAAA,CAAO,CAAA,EAAG,YAAA;AAAA,iBA0B1F,YAAA,IAAgB,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,EAAA,WAAa,OAAA,CAAQ,CAAA;;;;;;AApZyB;AAwEzG;;;;iBAsWsB,kBAAA,OACpB,KAAA,WAAgB,CAAA,IAChB,WAAA,UACA,EAAA,GAAK,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,OAAA,CAAQ,CAAA,IACvC,OAAA,CAAQ,CAAA;AAAA,KAmDC,gBAAA;EA7ZuC;;;EAiajD,WAAA;EAja0B;;;EAsa1B,UAAA;EAtamD;AA0CrD;;EAiYE,UAAA;EAjYwD;;;EAsYxD,KAAA;EAtYyD;;AAAC;EA2Y1D,UAAA;AAAA;AAAA,iBAGc,WAAA,IACd,IAAA,QAAY,OAAA,CAAQ,CAAA,GACpB,OAAA,EAAS,gBAAA,SACF,OAAA,CAAQ,CAAA;AAAA,iBA0DD,SAAA,qBAA8B,IAAA,MAAU,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAAI,OAAA,eAAsB,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA"}
@@ -5,7 +5,6 @@ import { DependenciesMap } from "./maps.js";
5
5
  import { Result } from "./results.js";
6
6
  import { traceSpan } from "./telemetry.js";
7
7
  import { generateUuid } from "./uuids.js";
8
-
9
8
  //#region src/utils/promises.tsx
10
9
  function createPromise(callback) {
11
10
  let status = "pending";
@@ -33,36 +32,6 @@ function createPromise(callback) {
33
32
  ...status === "rejected" ? { reason: valueOrReason } : {}
34
33
  });
35
34
  }
36
- (void 0)?.test("createPromise", async ({ expect }) => {
37
- const resolvedPromise = createPromise((resolve) => {
38
- resolve(42);
39
- });
40
- expect(resolvedPromise.status).toBe("fulfilled");
41
- expect(resolvedPromise.value).toBe(42);
42
- expect(await resolvedPromise).toBe(42);
43
- const error = /* @__PURE__ */ new Error("Test error");
44
- const rejectedPromise = createPromise((_, reject) => {
45
- reject(error);
46
- });
47
- expect(rejectedPromise.status).toBe("rejected");
48
- expect(rejectedPromise.reason).toBe(error);
49
- await expect(rejectedPromise).rejects.toBe(error);
50
- const pendingPromise = createPromise(() => {});
51
- expect(pendingPromise.status).toBe("pending");
52
- expect(pendingPromise.value).toBeUndefined();
53
- expect(pendingPromise.reason).toBeUndefined();
54
- let resolveCount = 0;
55
- const multiResolvePromise = createPromise((resolve) => {
56
- resolve(1);
57
- resolveCount++;
58
- resolve(2);
59
- resolveCount++;
60
- });
61
- expect(resolveCount).toBe(2);
62
- expect(multiResolvePromise.status).toBe("fulfilled");
63
- expect(multiResolvePromise.value).toBe(1);
64
- expect(await multiResolvePromise).toBe(1);
65
- });
66
35
  let resolvedCache = null;
67
36
  /**
68
37
  * Like Promise.resolve(...), but also adds the status and value properties for use with React's `use` hook, and caches
@@ -78,19 +47,6 @@ function resolved(value) {
78
47
  resolvedCache.set([value], res);
79
48
  return res;
80
49
  }
81
- (void 0)?.test("resolved", async ({ expect }) => {
82
- const promise1 = resolved(42);
83
- expect(promise1.status).toBe("fulfilled");
84
- expect(promise1.value).toBe(42);
85
- expect(await promise1).toBe(42);
86
- const obj = { test: true };
87
- const promise2 = resolved(obj);
88
- expect(promise2.status).toBe("fulfilled");
89
- expect(promise2.value).toBe(obj);
90
- expect(await promise2).toBe(obj);
91
- expect(resolved(42)).toBe(promise1);
92
- expect(resolved(43)).not.toBe(promise1);
93
- });
94
50
  let rejectedCache = null;
95
51
  /**
96
52
  * Like Promise.reject(...), but also adds the status and value properties for use with React's `use` hook, and caches
@@ -108,28 +64,10 @@ function rejected(reason) {
108
64
  rejectedCache.set([reason], res);
109
65
  return res;
110
66
  }
111
- (void 0)?.test("rejected", ({ expect }) => {
112
- const error = /* @__PURE__ */ new Error("Test error");
113
- const promise1 = rejected(error);
114
- expect(promise1.status).toBe("rejected");
115
- expect(promise1.reason).toBe(error);
116
- const promise2 = rejected("error message");
117
- expect(promise2.status).toBe("rejected");
118
- expect(promise2.reason).toBe("error message");
119
- expect(rejected(error)).toBe(promise1);
120
- expect(rejected(/* @__PURE__ */ new Error("Different error"))).not.toBe(promise1);
121
- });
122
67
  const neverResolvePromise = pending(new Promise(() => {}));
123
68
  function neverResolve() {
124
69
  return neverResolvePromise;
125
70
  }
126
- (void 0)?.test("neverResolve", ({ expect }) => {
127
- const promise = neverResolve();
128
- expect(promise.status).toBe("pending");
129
- expect(promise.value).toBeUndefined();
130
- expect(promise.reason).toBeUndefined();
131
- expect(neverResolve()).toBe(promise);
132
- });
133
71
  function pending(promise, options = {}) {
134
72
  const res = promise.then((value) => {
135
73
  res.status = "fulfilled";
@@ -143,15 +81,6 @@ function pending(promise, options = {}) {
143
81
  res.status = "pending";
144
82
  return res;
145
83
  }
146
- (void 0)?.test("pending", async ({ expect }) => {
147
- const resolvePromise = Promise.resolve(42);
148
- const pendingPromise = pending(resolvePromise);
149
- expect(pendingPromise.status).toBe("pending");
150
- await resolvePromise;
151
- await new Promise((resolve) => setTimeout(resolve, 0));
152
- expect(pendingPromise.status).toBe("fulfilled");
153
- expect(pendingPromise.value).toBe(42);
154
- });
155
84
  /**
156
85
  * Should be used to wrap Promises that are not immediately awaited, so they don't throw an unhandled promise rejection
157
86
  * error.
@@ -161,15 +90,6 @@ function pending(promise, options = {}) {
161
90
  function ignoreUnhandledRejection(promise) {
162
91
  promise.catch(() => {});
163
92
  }
164
- (void 0)?.test("ignoreUnhandledRejection", async ({ expect }) => {
165
- const resolvePromise = Promise.resolve(42);
166
- ignoreUnhandledRejection(resolvePromise);
167
- expect(await resolvePromise).toBe(42);
168
- const error = /* @__PURE__ */ new Error("Test error");
169
- const rejectPromise = Promise.reject(error);
170
- ignoreUnhandledRejection(rejectPromise);
171
- await expect(rejectPromise).rejects.toBe(error);
172
- });
173
93
  /**
174
94
  * See concatStacktraces for more information.
175
95
  */
@@ -189,32 +109,9 @@ async function wait(ms) {
189
109
  return await new Promise((resolve) => setTimeout(resolve, ms));
190
110
  });
191
111
  }
192
- (void 0)?.test("wait", async ({ expect }) => {
193
- const start = Date.now();
194
- await wait(10);
195
- expect(Date.now() - start).toBeGreaterThanOrEqual(5);
196
- await expect(wait(0)).resolves.toBeUndefined();
197
- await expect(wait(-10)).rejects.toThrow("wait() requires a non-negative integer");
198
- await expect(wait(NaN)).rejects.toThrow("wait() requires a non-negative integer");
199
- await expect(wait(Infinity)).rejects.toThrow("wait() requires a non-negative integer");
200
- await expect(wait(2 ** 31)).rejects.toThrow("The maximum timeout for wait()");
201
- });
202
112
  async function waitUntil(date) {
203
113
  return await wait(date.getTime() - Date.now());
204
114
  }
205
- (void 0)?.test("waitUntil", async ({ expect }) => {
206
- const futureDate = new Date(Date.now() + 10);
207
- const start = Date.now();
208
- await waitUntil(futureDate);
209
- expect(Date.now() - start).toBeGreaterThanOrEqual(5);
210
- try {
211
- await waitUntil(/* @__PURE__ */ new Date(Date.now() - 1e3));
212
- expect.fail("Should have thrown an error");
213
- } catch (error) {
214
- expect(error).toBeInstanceOf(HexclaveAssertionError);
215
- expect(error.message).toContain("wait() requires a non-negative integer");
216
- }
217
- });
218
115
  function runAsynchronouslyWithAlert(...args) {
219
116
  return runAsynchronously(args[0], {
220
117
  ...args[1],
@@ -226,12 +123,6 @@ function runAsynchronouslyWithAlert(...args) {
226
123
  }
227
124
  }, ...args.slice(2));
228
125
  }
229
- (void 0)?.test("runAsynchronouslyWithAlert", ({ expect }) => {
230
- const testFn = () => Promise.resolve("test");
231
- const testOptions = { noErrorLogging: true };
232
- expect(() => runAsynchronouslyWithAlert(testFn, testOptions)).not.toThrow();
233
- expect(typeof runAsynchronouslyWithAlert).toBe("function");
234
- });
235
126
  function runAsynchronously(promiseOrFunc, options = {}) {
236
127
  if (typeof promiseOrFunc === "function") promiseOrFunc = promiseOrFunc();
237
128
  if (promiseOrFunc) {
@@ -243,14 +134,6 @@ function runAsynchronously(promiseOrFunc, options = {}) {
243
134
  });
244
135
  }
245
136
  }
246
- (void 0)?.test("runAsynchronously", ({ expect }) => {
247
- const testFn = () => Promise.resolve("test");
248
- expect(() => runAsynchronously(testFn)).not.toThrow();
249
- expect(() => runAsynchronously(Promise.resolve("test"))).not.toThrow();
250
- expect(() => runAsynchronously(void 0)).not.toThrow();
251
- expect(() => runAsynchronously(testFn, { noErrorLogging: true })).not.toThrow();
252
- expect(() => runAsynchronously(testFn, { onError: () => {} })).not.toThrow();
253
- });
254
137
  var TimeoutError = class extends Error {
255
138
  constructor(ms) {
256
139
  super(`Timeout after ${ms}ms`);
@@ -262,26 +145,9 @@ async function timeout(promiseOrFunc, ms) {
262
145
  const promise = typeof promiseOrFunc === "function" ? promiseOrFunc() : promiseOrFunc;
263
146
  return await Promise.race([promise.then((value) => Result.ok(value)), wait(ms).then(() => Result.error(new TimeoutError(ms)))]);
264
147
  }
265
- (void 0)?.test("timeout", async ({ expect }) => {
266
- const fastResult = await timeout(Promise.resolve(42), 100);
267
- expect(fastResult.status).toBe("ok");
268
- if (fastResult.status === "ok") expect(fastResult.data).toBe(42);
269
- const slowResult = await timeout(new Promise((resolve) => setTimeout(() => resolve("too late"), 50)), 10);
270
- expect(slowResult.status).toBe("error");
271
- if (slowResult.status === "error") {
272
- expect(slowResult.error).toBeInstanceOf(TimeoutError);
273
- expect(slowResult.error.ms).toBe(10);
274
- }
275
- });
276
148
  async function timeoutThrow(promise, ms) {
277
149
  return Result.orThrow(await timeout(promise, ms));
278
150
  }
279
- (void 0)?.test("timeoutThrow", async ({ expect }) => {
280
- expect(await timeoutThrow(Promise.resolve(42), 100)).toBe(42);
281
- const slowPromise = new Promise((resolve) => setTimeout(() => resolve("too late"), 50));
282
- await expect(timeoutThrow(slowPromise, 10)).rejects.toThrow("Timeout after 10ms");
283
- await expect(timeoutThrow(slowPromise, 10)).rejects.toBeInstanceOf(TimeoutError);
284
- });
285
151
  /**
286
152
  * Maps over `items` with `fn`, running at most `concurrency` invocations at a time.
287
153
  *
@@ -313,31 +179,6 @@ async function mapWithConcurrency(items, concurrency, fn) {
313
179
  await Promise.all(Array.from({ length: workerCount }, () => worker()));
314
180
  return results;
315
181
  }
316
- (void 0)?.test("mapWithConcurrency", async ({ expect }) => {
317
- expect(await mapWithConcurrency([
318
- 30,
319
- 10,
320
- 20
321
- ], 3, async (ms, index) => {
322
- await wait(ms);
323
- return `${index}:${ms}`;
324
- })).toEqual([
325
- "0:30",
326
- "1:10",
327
- "2:20"
328
- ]);
329
- let inFlight = 0;
330
- let maxInFlight = 0;
331
- await mapWithConcurrency(Array.from({ length: 10 }, (_, i) => i), 3, async () => {
332
- inFlight++;
333
- maxInFlight = Math.max(maxInFlight, inFlight);
334
- await wait(5);
335
- inFlight--;
336
- });
337
- expect(maxInFlight).toBe(3);
338
- expect(await mapWithConcurrency([], 4, async () => 1)).toEqual([]);
339
- await expect(mapWithConcurrency([1], 0, async (x) => x)).rejects.toThrow("positive integer concurrency");
340
- });
341
182
  function rateLimited(func, options) {
342
183
  let waitUntil = performance.now();
343
184
  let queue = [];
@@ -383,7 +224,7 @@ function throttled(func, delayMs) {
383
224
  return await nextAvailable;
384
225
  };
385
226
  }
386
-
387
227
  //#endregion
388
228
  export { concatStacktracesIfRejected, createPromise, ignoreUnhandledRejection, mapWithConcurrency, neverResolve, pending, rateLimited, rejected, resolved, runAsynchronously, runAsynchronouslyWithAlert, throttled, timeout, timeoutThrow, wait, waitUntil };
229
+
389
230
  //# sourceMappingURL=promises.js.map