tokentracker-cli 0.2.23

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 (1153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/README.old.md +324 -0
  4. package/README.zh-CN.md +440 -0
  5. package/bin/tracker.js +28 -0
  6. package/dashboard/dist/apple-touch-icon.png +0 -0
  7. package/dashboard/dist/assets/AsciiBox-vyDhXYY5.js +1 -0
  8. package/dashboard/dist/assets/DashboardPage-CrplxZFL.js +12 -0
  9. package/dashboard/dist/assets/LandingExtras-DlrtqIDj.js +1 -0
  10. package/dashboard/dist/assets/LeaderboardPage-Czwkjje0.js +1 -0
  11. package/dashboard/dist/assets/LeaderboardProfilePage-C4rorru6.js +1 -0
  12. package/dashboard/dist/assets/MatrixRain-bGmRmuOW.js +1 -0
  13. package/dashboard/dist/assets/MatrixShell-BfOGBm5o.js +1 -0
  14. package/dashboard/dist/assets/geist-mono-cyrillic-400-normal-BPBWmzPh.woff +0 -0
  15. package/dashboard/dist/assets/geist-mono-cyrillic-400-normal-Ce5q_31Z.woff2 +0 -0
  16. package/dashboard/dist/assets/geist-mono-cyrillic-500-normal-CJBLNVQT.woff2 +0 -0
  17. package/dashboard/dist/assets/geist-mono-cyrillic-500-normal-mNhfPmgl.woff +0 -0
  18. package/dashboard/dist/assets/geist-mono-cyrillic-700-normal-DH5Q319x.woff +0 -0
  19. package/dashboard/dist/assets/geist-mono-cyrillic-700-normal-VCNRadI3.woff2 +0 -0
  20. package/dashboard/dist/assets/geist-mono-cyrillic-900-normal-BKC3PZkM.woff +0 -0
  21. package/dashboard/dist/assets/geist-mono-cyrillic-900-normal-DdrQ8KBw.woff2 +0 -0
  22. package/dashboard/dist/assets/geist-mono-latin-400-normal-CoULgQGM.woff +0 -0
  23. package/dashboard/dist/assets/geist-mono-latin-400-normal-LC9RFr9I.woff2 +0 -0
  24. package/dashboard/dist/assets/geist-mono-latin-500-normal-D3o2eNa9.woff2 +0 -0
  25. package/dashboard/dist/assets/geist-mono-latin-500-normal-DOxI7kZ4.woff +0 -0
  26. package/dashboard/dist/assets/geist-mono-latin-700-normal-D6izGJRP.woff2 +0 -0
  27. package/dashboard/dist/assets/geist-mono-latin-700-normal-QGw08Lff.woff +0 -0
  28. package/dashboard/dist/assets/geist-mono-latin-900-normal-CmoKXrdK.woff +0 -0
  29. package/dashboard/dist/assets/geist-mono-latin-900-normal-Cu5MFKsu.woff2 +0 -0
  30. package/dashboard/dist/assets/geist-mono-latin-ext-400-normal-Cgks_Qgx.woff2 +0 -0
  31. package/dashboard/dist/assets/geist-mono-latin-ext-400-normal-CxNRRMGd.woff +0 -0
  32. package/dashboard/dist/assets/geist-mono-latin-ext-500-normal-CQcGuCNt.woff2 +0 -0
  33. package/dashboard/dist/assets/geist-mono-latin-ext-500-normal-diTenJ8L.woff +0 -0
  34. package/dashboard/dist/assets/geist-mono-latin-ext-700-normal-BX9f1BHp.woff +0 -0
  35. package/dashboard/dist/assets/geist-mono-latin-ext-700-normal-YOllDaLV.woff2 +0 -0
  36. package/dashboard/dist/assets/geist-mono-latin-ext-900-normal-Br6WNUGb.woff +0 -0
  37. package/dashboard/dist/assets/geist-mono-latin-ext-900-normal-CrmBTzU2.woff2 +0 -0
  38. package/dashboard/dist/assets/index-BeoRn2gJ.js +2 -0
  39. package/dashboard/dist/assets/main-BYPG1_bI.js +2056 -0
  40. package/dashboard/dist/assets/main-hwTpulbk.css +1 -0
  41. package/dashboard/dist/favicon-16.png +0 -0
  42. package/dashboard/dist/favicon-32.png +0 -0
  43. package/dashboard/dist/favicon.ico +0 -0
  44. package/dashboard/dist/feed.xml +18 -0
  45. package/dashboard/dist/icon-192.png +0 -0
  46. package/dashboard/dist/icon-512.png +0 -0
  47. package/dashboard/dist/icon.svg +1 -0
  48. package/dashboard/dist/index.html +181 -0
  49. package/dashboard/dist/landing-dashboard.jpg +0 -0
  50. package/dashboard/dist/llms.txt +25 -0
  51. package/dashboard/dist/og-image.jpg +0 -0
  52. package/dashboard/dist/robots.txt +7 -0
  53. package/dashboard/dist/share-dashboard.jpg +0 -0
  54. package/dashboard/dist/share.html +118 -0
  55. package/dashboard/dist/sitemap.xml +13 -0
  56. package/dashboard/dist/social-preview.png +0 -0
  57. package/dashboard/dist/wrapped-2025.html +60 -0
  58. package/dashboard/dist/wrapped-2025.png +0 -0
  59. package/node_modules/@insforge/sdk/LICENSE +201 -0
  60. package/node_modules/@insforge/sdk/README.md +259 -0
  61. package/node_modules/@insforge/sdk/dist/index.d.mts +854 -0
  62. package/node_modules/@insforge/sdk/dist/index.d.ts +854 -0
  63. package/node_modules/@insforge/sdk/dist/index.js +1823 -0
  64. package/node_modules/@insforge/sdk/dist/index.js.map +1 -0
  65. package/node_modules/@insforge/sdk/dist/index.mjs +1784 -0
  66. package/node_modules/@insforge/sdk/dist/index.mjs.map +1 -0
  67. package/node_modules/@insforge/sdk/package.json +68 -0
  68. package/node_modules/@insforge/shared-schemas/dist/ai-api.schema.d.ts +583 -0
  69. package/node_modules/@insforge/shared-schemas/dist/ai-api.schema.d.ts.map +1 -0
  70. package/node_modules/@insforge/shared-schemas/dist/ai-api.schema.js +111 -0
  71. package/node_modules/@insforge/shared-schemas/dist/ai-api.schema.js.map +1 -0
  72. package/node_modules/@insforge/shared-schemas/dist/ai.schema.d.ts +188 -0
  73. package/node_modules/@insforge/shared-schemas/dist/ai.schema.d.ts.map +1 -0
  74. package/node_modules/@insforge/shared-schemas/dist/ai.schema.js +48 -0
  75. package/node_modules/@insforge/shared-schemas/dist/ai.schema.js.map +1 -0
  76. package/node_modules/@insforge/shared-schemas/dist/auth-api.schema.d.ts +1127 -0
  77. package/node_modules/@insforge/shared-schemas/dist/auth-api.schema.d.ts.map +1 -0
  78. package/node_modules/@insforge/shared-schemas/dist/auth-api.schema.js +277 -0
  79. package/node_modules/@insforge/shared-schemas/dist/auth-api.schema.js.map +1 -0
  80. package/node_modules/@insforge/shared-schemas/dist/auth.schema.d.ts +187 -0
  81. package/node_modules/@insforge/shared-schemas/dist/auth.schema.d.ts.map +1 -0
  82. package/node_modules/@insforge/shared-schemas/dist/auth.schema.js +105 -0
  83. package/node_modules/@insforge/shared-schemas/dist/auth.schema.js.map +1 -0
  84. package/node_modules/@insforge/shared-schemas/dist/cloud-events.schema.d.ts +144 -0
  85. package/node_modules/@insforge/shared-schemas/dist/cloud-events.schema.d.ts.map +1 -0
  86. package/node_modules/@insforge/shared-schemas/dist/cloud-events.schema.js +41 -0
  87. package/node_modules/@insforge/shared-schemas/dist/cloud-events.schema.js.map +1 -0
  88. package/node_modules/@insforge/shared-schemas/dist/database-api.schema.d.ts +1627 -0
  89. package/node_modules/@insforge/shared-schemas/dist/database-api.schema.d.ts.map +1 -0
  90. package/node_modules/@insforge/shared-schemas/dist/database-api.schema.js +209 -0
  91. package/node_modules/@insforge/shared-schemas/dist/database-api.schema.js.map +1 -0
  92. package/node_modules/@insforge/shared-schemas/dist/database.schema.d.ts +263 -0
  93. package/node_modules/@insforge/shared-schemas/dist/database.schema.d.ts.map +1 -0
  94. package/node_modules/@insforge/shared-schemas/dist/database.schema.js +89 -0
  95. package/node_modules/@insforge/shared-schemas/dist/database.schema.js.map +1 -0
  96. package/node_modules/@insforge/shared-schemas/dist/docs.schema.d.ts +4 -0
  97. package/node_modules/@insforge/shared-schemas/dist/docs.schema.d.ts.map +1 -0
  98. package/node_modules/@insforge/shared-schemas/dist/docs.schema.js +22 -0
  99. package/node_modules/@insforge/shared-schemas/dist/docs.schema.js.map +1 -0
  100. package/node_modules/@insforge/shared-schemas/dist/email-api.schema.d.ts +34 -0
  101. package/node_modules/@insforge/shared-schemas/dist/email-api.schema.d.ts.map +1 -0
  102. package/node_modules/@insforge/shared-schemas/dist/email-api.schema.js +24 -0
  103. package/node_modules/@insforge/shared-schemas/dist/email-api.schema.js.map +1 -0
  104. package/node_modules/@insforge/shared-schemas/dist/functions-api.schema.d.ts +39 -0
  105. package/node_modules/@insforge/shared-schemas/dist/functions-api.schema.d.ts.map +1 -0
  106. package/node_modules/@insforge/shared-schemas/dist/functions-api.schema.js +18 -0
  107. package/node_modules/@insforge/shared-schemas/dist/functions-api.schema.js.map +1 -0
  108. package/node_modules/@insforge/shared-schemas/dist/functions.schema.d.ts +34 -0
  109. package/node_modules/@insforge/shared-schemas/dist/functions.schema.d.ts.map +1 -0
  110. package/node_modules/@insforge/shared-schemas/dist/functions.schema.js +14 -0
  111. package/node_modules/@insforge/shared-schemas/dist/functions.schema.js.map +1 -0
  112. package/node_modules/@insforge/shared-schemas/dist/index.d.ts +19 -0
  113. package/node_modules/@insforge/shared-schemas/dist/index.d.ts.map +1 -0
  114. package/node_modules/@insforge/shared-schemas/dist/index.js +19 -0
  115. package/node_modules/@insforge/shared-schemas/dist/index.js.map +1 -0
  116. package/node_modules/@insforge/shared-schemas/dist/logs-api.schema.d.ts +237 -0
  117. package/node_modules/@insforge/shared-schemas/dist/logs-api.schema.d.ts.map +1 -0
  118. package/node_modules/@insforge/shared-schemas/dist/logs-api.schema.js +41 -0
  119. package/node_modules/@insforge/shared-schemas/dist/logs-api.schema.js.map +1 -0
  120. package/node_modules/@insforge/shared-schemas/dist/logs.schema.d.ts +79 -0
  121. package/node_modules/@insforge/shared-schemas/dist/logs.schema.d.ts.map +1 -0
  122. package/node_modules/@insforge/shared-schemas/dist/logs.schema.js +31 -0
  123. package/node_modules/@insforge/shared-schemas/dist/logs.schema.js.map +1 -0
  124. package/node_modules/@insforge/shared-schemas/dist/metadata.schema.d.ts +940 -0
  125. package/node_modules/@insforge/shared-schemas/dist/metadata.schema.d.ts.map +1 -0
  126. package/node_modules/@insforge/shared-schemas/dist/metadata.schema.js +50 -0
  127. package/node_modules/@insforge/shared-schemas/dist/metadata.schema.js.map +1 -0
  128. package/node_modules/@insforge/shared-schemas/dist/realtime-api.schema.d.ts +395 -0
  129. package/node_modules/@insforge/shared-schemas/dist/realtime-api.schema.d.ts.map +1 -0
  130. package/node_modules/@insforge/shared-schemas/dist/realtime-api.schema.js +73 -0
  131. package/node_modules/@insforge/shared-schemas/dist/realtime-api.schema.js.map +1 -0
  132. package/node_modules/@insforge/shared-schemas/dist/realtime.schema.d.ts +269 -0
  133. package/node_modules/@insforge/shared-schemas/dist/realtime.schema.d.ts.map +1 -0
  134. package/node_modules/@insforge/shared-schemas/dist/realtime.schema.js +109 -0
  135. package/node_modules/@insforge/shared-schemas/dist/realtime.schema.js.map +1 -0
  136. package/node_modules/@insforge/shared-schemas/dist/storage-api.schema.d.ts +166 -0
  137. package/node_modules/@insforge/shared-schemas/dist/storage-api.schema.d.ts.map +1 -0
  138. package/node_modules/@insforge/shared-schemas/dist/storage-api.schema.js +49 -0
  139. package/node_modules/@insforge/shared-schemas/dist/storage-api.schema.js.map +1 -0
  140. package/node_modules/@insforge/shared-schemas/dist/storage.schema.d.ts +39 -0
  141. package/node_modules/@insforge/shared-schemas/dist/storage.schema.d.ts.map +1 -0
  142. package/node_modules/@insforge/shared-schemas/dist/storage.schema.js +15 -0
  143. package/node_modules/@insforge/shared-schemas/dist/storage.schema.js.map +1 -0
  144. package/node_modules/@insforge/shared-schemas/package.json +31 -0
  145. package/node_modules/@socket.io/component-emitter/LICENSE +24 -0
  146. package/node_modules/@socket.io/component-emitter/Readme.md +79 -0
  147. package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +179 -0
  148. package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +176 -0
  149. package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +4 -0
  150. package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +179 -0
  151. package/node_modules/@socket.io/component-emitter/lib/esm/index.js +169 -0
  152. package/node_modules/@socket.io/component-emitter/lib/esm/package.json +4 -0
  153. package/node_modules/@socket.io/component-emitter/package.json +28 -0
  154. package/node_modules/@supabase/node-fetch/LICENSE.md +22 -0
  155. package/node_modules/@supabase/node-fetch/README.md +633 -0
  156. package/node_modules/@supabase/node-fetch/browser.js +22 -0
  157. package/node_modules/@supabase/node-fetch/lib/index.es.js +1778 -0
  158. package/node_modules/@supabase/node-fetch/lib/index.js +1787 -0
  159. package/node_modules/@supabase/node-fetch/lib/index.mjs +1776 -0
  160. package/node_modules/@supabase/node-fetch/package.json +80 -0
  161. package/node_modules/@supabase/postgrest-js/LICENSE +21 -0
  162. package/node_modules/@supabase/postgrest-js/README.md +56 -0
  163. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.d.ts +71 -0
  164. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.d.ts.map +1 -0
  165. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js +222 -0
  166. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js.map +1 -0
  167. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.d.ts +74 -0
  168. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.d.ts.map +1 -0
  169. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js +121 -0
  170. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js.map +1 -0
  171. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.d.ts +17 -0
  172. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.d.ts.map +1 -0
  173. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js +18 -0
  174. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js.map +1 -0
  175. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.d.ts +108 -0
  176. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.d.ts.map +1 -0
  177. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js +381 -0
  178. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js.map +1 -0
  179. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.d.ts +117 -0
  180. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.d.ts.map +1 -0
  181. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js +251 -0
  182. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js.map +1 -0
  183. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.d.ts +157 -0
  184. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.d.ts.map +1 -0
  185. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js +226 -0
  186. package/node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js.map +1 -0
  187. package/node_modules/@supabase/postgrest-js/dist/cjs/constants.d.ts +4 -0
  188. package/node_modules/@supabase/postgrest-js/dist/cjs/constants.d.ts.map +1 -0
  189. package/node_modules/@supabase/postgrest-js/dist/cjs/constants.js +6 -0
  190. package/node_modules/@supabase/postgrest-js/dist/cjs/constants.js.map +1 -0
  191. package/node_modules/@supabase/postgrest-js/dist/cjs/index.d.ts +19 -0
  192. package/node_modules/@supabase/postgrest-js/dist/cjs/index.d.ts.map +1 -0
  193. package/node_modules/@supabase/postgrest-js/dist/cjs/index.js +28 -0
  194. package/node_modules/@supabase/postgrest-js/dist/cjs/index.js.map +1 -0
  195. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/parser.d.ts +261 -0
  196. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/parser.d.ts.map +1 -0
  197. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/parser.js +5 -0
  198. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/parser.js.map +1 -0
  199. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/result.d.ts +157 -0
  200. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/result.d.ts.map +1 -0
  201. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/result.js +3 -0
  202. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/result.js.map +1 -0
  203. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/types.d.ts +31 -0
  204. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/types.d.ts.map +1 -0
  205. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/types.js +3 -0
  206. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/types.js.map +1 -0
  207. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/utils.d.ts +264 -0
  208. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/utils.d.ts.map +1 -0
  209. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/utils.js +3 -0
  210. package/node_modules/@supabase/postgrest-js/dist/cjs/select-query-parser/utils.js.map +1 -0
  211. package/node_modules/@supabase/postgrest-js/dist/cjs/types.d.ts +106 -0
  212. package/node_modules/@supabase/postgrest-js/dist/cjs/types.d.ts.map +1 -0
  213. package/node_modules/@supabase/postgrest-js/dist/cjs/types.js +3 -0
  214. package/node_modules/@supabase/postgrest-js/dist/cjs/types.js.map +1 -0
  215. package/node_modules/@supabase/postgrest-js/dist/cjs/version.d.ts +2 -0
  216. package/node_modules/@supabase/postgrest-js/dist/cjs/version.d.ts.map +1 -0
  217. package/node_modules/@supabase/postgrest-js/dist/cjs/version.js +5 -0
  218. package/node_modules/@supabase/postgrest-js/dist/cjs/version.js.map +1 -0
  219. package/node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs +28 -0
  220. package/node_modules/@supabase/postgrest-js/package.json +75 -0
  221. package/node_modules/@supabase/postgrest-js/src/PostgrestBuilder.ts +300 -0
  222. package/node_modules/@supabase/postgrest-js/src/PostgrestClient.ts +192 -0
  223. package/node_modules/@supabase/postgrest-js/src/PostgrestError.ts +18 -0
  224. package/node_modules/@supabase/postgrest-js/src/PostgrestFilterBuilder.ts +604 -0
  225. package/node_modules/@supabase/postgrest-js/src/PostgrestQueryBuilder.ts +437 -0
  226. package/node_modules/@supabase/postgrest-js/src/PostgrestTransformBuilder.ts +368 -0
  227. package/node_modules/@supabase/postgrest-js/src/constants.ts +2 -0
  228. package/node_modules/@supabase/postgrest-js/src/index.ts +35 -0
  229. package/node_modules/@supabase/postgrest-js/src/select-query-parser/parser.ts +469 -0
  230. package/node_modules/@supabase/postgrest-js/src/select-query-parser/result.ts +503 -0
  231. package/node_modules/@supabase/postgrest-js/src/select-query-parser/types.ts +115 -0
  232. package/node_modules/@supabase/postgrest-js/src/select-query-parser/utils.ts +602 -0
  233. package/node_modules/@supabase/postgrest-js/src/types.ts +201 -0
  234. package/node_modules/@supabase/postgrest-js/src/version.ts +1 -0
  235. package/node_modules/debug/LICENSE +20 -0
  236. package/node_modules/debug/README.md +481 -0
  237. package/node_modules/debug/package.json +60 -0
  238. package/node_modules/debug/src/browser.js +271 -0
  239. package/node_modules/debug/src/common.js +274 -0
  240. package/node_modules/debug/src/index.js +10 -0
  241. package/node_modules/debug/src/node.js +263 -0
  242. package/node_modules/engine.io-client/LICENSE +22 -0
  243. package/node_modules/engine.io-client/README.md +331 -0
  244. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +3 -0
  245. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +4 -0
  246. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +1 -0
  247. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +14 -0
  248. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +15 -0
  249. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +38 -0
  250. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +1 -0
  251. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +67 -0
  252. package/node_modules/engine.io-client/build/cjs/globals.d.ts +4 -0
  253. package/node_modules/engine.io-client/build/cjs/globals.js +26 -0
  254. package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +21 -0
  255. package/node_modules/engine.io-client/build/cjs/globals.node.js +97 -0
  256. package/node_modules/engine.io-client/build/cjs/index.d.ts +15 -0
  257. package/node_modules/engine.io-client/build/cjs/index.js +32 -0
  258. package/node_modules/engine.io-client/build/cjs/package.json +10 -0
  259. package/node_modules/engine.io-client/build/cjs/socket.d.ts +482 -0
  260. package/node_modules/engine.io-client/build/cjs/socket.js +765 -0
  261. package/node_modules/engine.io-client/build/cjs/transport.d.ts +106 -0
  262. package/node_modules/engine.io-client/build/cjs/transport.js +153 -0
  263. package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +8 -0
  264. package/node_modules/engine.io-client/build/cjs/transports/index.js +11 -0
  265. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +15 -0
  266. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +60 -0
  267. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +108 -0
  268. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +285 -0
  269. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +11 -0
  270. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +44 -0
  271. package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +52 -0
  272. package/node_modules/engine.io-client/build/cjs/transports/polling.js +165 -0
  273. package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +36 -0
  274. package/node_modules/engine.io-client/build/cjs/transports/websocket.js +136 -0
  275. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +14 -0
  276. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +68 -0
  277. package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +18 -0
  278. package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +94 -0
  279. package/node_modules/engine.io-client/build/cjs/util.d.ts +7 -0
  280. package/node_modules/engine.io-client/build/cjs/util.js +65 -0
  281. package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +3 -0
  282. package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +2 -0
  283. package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +1 -0
  284. package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +11 -0
  285. package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +15 -0
  286. package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +34 -0
  287. package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +1 -0
  288. package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +64 -0
  289. package/node_modules/engine.io-client/build/esm/globals.d.ts +4 -0
  290. package/node_modules/engine.io-client/build/esm/globals.js +22 -0
  291. package/node_modules/engine.io-client/build/esm/globals.node.d.ts +21 -0
  292. package/node_modules/engine.io-client/build/esm/globals.node.js +91 -0
  293. package/node_modules/engine.io-client/build/esm/index.d.ts +15 -0
  294. package/node_modules/engine.io-client/build/esm/index.js +15 -0
  295. package/node_modules/engine.io-client/build/esm/package.json +10 -0
  296. package/node_modules/engine.io-client/build/esm/socket.d.ts +482 -0
  297. package/node_modules/engine.io-client/build/esm/socket.js +727 -0
  298. package/node_modules/engine.io-client/build/esm/transport.d.ts +106 -0
  299. package/node_modules/engine.io-client/build/esm/transport.js +142 -0
  300. package/node_modules/engine.io-client/build/esm/transports/index.d.ts +8 -0
  301. package/node_modules/engine.io-client/build/esm/transports/index.js +8 -0
  302. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +15 -0
  303. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +56 -0
  304. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +108 -0
  305. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +271 -0
  306. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +11 -0
  307. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +17 -0
  308. package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +52 -0
  309. package/node_modules/engine.io-client/build/esm/transports/polling.js +145 -0
  310. package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +36 -0
  311. package/node_modules/engine.io-client/build/esm/transports/websocket.js +125 -0
  312. package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +14 -0
  313. package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +41 -0
  314. package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +18 -0
  315. package/node_modules/engine.io-client/build/esm/transports/webtransport.js +80 -0
  316. package/node_modules/engine.io-client/build/esm/util.d.ts +7 -0
  317. package/node_modules/engine.io-client/build/esm/util.js +59 -0
  318. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +3 -0
  319. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  320. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +1 -0
  321. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +11 -0
  322. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +15 -0
  323. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +34 -0
  324. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +1 -0
  325. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +64 -0
  326. package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +4 -0
  327. package/node_modules/engine.io-client/build/esm-debug/globals.js +22 -0
  328. package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +21 -0
  329. package/node_modules/engine.io-client/build/esm-debug/globals.node.js +91 -0
  330. package/node_modules/engine.io-client/build/esm-debug/index.d.ts +15 -0
  331. package/node_modules/engine.io-client/build/esm-debug/index.js +15 -0
  332. package/node_modules/engine.io-client/build/esm-debug/package.json +10 -0
  333. package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +482 -0
  334. package/node_modules/engine.io-client/build/esm-debug/socket.js +756 -0
  335. package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +106 -0
  336. package/node_modules/engine.io-client/build/esm-debug/transport.js +145 -0
  337. package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +8 -0
  338. package/node_modules/engine.io-client/build/esm-debug/transports/index.js +8 -0
  339. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +15 -0
  340. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +56 -0
  341. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +108 -0
  342. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +276 -0
  343. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +11 -0
  344. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +17 -0
  345. package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +52 -0
  346. package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +158 -0
  347. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +36 -0
  348. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +128 -0
  349. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +14 -0
  350. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +41 -0
  351. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +18 -0
  352. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +87 -0
  353. package/node_modules/engine.io-client/build/esm-debug/util.d.ts +7 -0
  354. package/node_modules/engine.io-client/build/esm-debug/util.js +59 -0
  355. package/node_modules/engine.io-client/dist/engine.io.esm.min.js +7 -0
  356. package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -0
  357. package/node_modules/engine.io-client/dist/engine.io.js +2968 -0
  358. package/node_modules/engine.io-client/dist/engine.io.js.map +1 -0
  359. package/node_modules/engine.io-client/dist/engine.io.min.js +7 -0
  360. package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -0
  361. package/node_modules/engine.io-client/package.json +95 -0
  362. package/node_modules/engine.io-parser/LICENSE +22 -0
  363. package/node_modules/engine.io-parser/Readme.md +158 -0
  364. package/node_modules/engine.io-parser/build/cjs/commons.d.ts +14 -0
  365. package/node_modules/engine.io-parser/build/cjs/commons.js +19 -0
  366. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +2 -0
  367. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +48 -0
  368. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +2 -0
  369. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +66 -0
  370. package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +2 -0
  371. package/node_modules/engine.io-parser/build/cjs/decodePacket.js +59 -0
  372. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +4 -0
  373. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +72 -0
  374. package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +3 -0
  375. package/node_modules/engine.io-parser/build/cjs/encodePacket.js +38 -0
  376. package/node_modules/engine.io-parser/build/cjs/index.d.ts +9 -0
  377. package/node_modules/engine.io-parser/build/cjs/index.js +164 -0
  378. package/node_modules/engine.io-parser/build/cjs/package.json +8 -0
  379. package/node_modules/engine.io-parser/build/esm/commons.d.ts +14 -0
  380. package/node_modules/engine.io-parser/build/esm/commons.js +14 -0
  381. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +2 -0
  382. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +43 -0
  383. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +2 -0
  384. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +62 -0
  385. package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +2 -0
  386. package/node_modules/engine.io-parser/build/esm/decodePacket.js +55 -0
  387. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +4 -0
  388. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +68 -0
  389. package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +3 -0
  390. package/node_modules/engine.io-parser/build/esm/encodePacket.js +33 -0
  391. package/node_modules/engine.io-parser/build/esm/index.d.ts +9 -0
  392. package/node_modules/engine.io-parser/build/esm/index.js +156 -0
  393. package/node_modules/engine.io-parser/build/esm/package.json +8 -0
  394. package/node_modules/engine.io-parser/package.json +46 -0
  395. package/node_modules/ms/index.js +162 -0
  396. package/node_modules/ms/license.md +21 -0
  397. package/node_modules/ms/package.json +38 -0
  398. package/node_modules/ms/readme.md +59 -0
  399. package/node_modules/socket.io-client/LICENSE +21 -0
  400. package/node_modules/socket.io-client/README.md +29 -0
  401. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +2 -0
  402. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +4 -0
  403. package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +12 -0
  404. package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +69 -0
  405. package/node_modules/socket.io-client/build/cjs/index.d.ts +29 -0
  406. package/node_modules/socket.io-client/build/cjs/index.js +76 -0
  407. package/node_modules/socket.io-client/build/cjs/manager.d.ts +295 -0
  408. package/node_modules/socket.io-client/build/cjs/manager.js +416 -0
  409. package/node_modules/socket.io-client/build/cjs/on.d.ts +2 -0
  410. package/node_modules/socket.io-client/build/cjs/on.js +9 -0
  411. package/node_modules/socket.io-client/build/cjs/socket.d.ts +593 -0
  412. package/node_modules/socket.io-client/build/cjs/socket.js +910 -0
  413. package/node_modules/socket.io-client/build/cjs/url.d.ts +33 -0
  414. package/node_modules/socket.io-client/build/cjs/url.js +69 -0
  415. package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +2 -0
  416. package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +2 -0
  417. package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +12 -0
  418. package/node_modules/socket.io-client/build/esm/contrib/backo2.js +66 -0
  419. package/node_modules/socket.io-client/build/esm/index.d.ts +29 -0
  420. package/node_modules/socket.io-client/build/esm/index.js +58 -0
  421. package/node_modules/socket.io-client/build/esm/manager.d.ts +295 -0
  422. package/node_modules/socket.io-client/build/esm/manager.js +367 -0
  423. package/node_modules/socket.io-client/build/esm/on.d.ts +2 -0
  424. package/node_modules/socket.io-client/build/esm/on.js +6 -0
  425. package/node_modules/socket.io-client/build/esm/package.json +5 -0
  426. package/node_modules/socket.io-client/build/esm/socket.d.ts +593 -0
  427. package/node_modules/socket.io-client/build/esm/socket.js +882 -0
  428. package/node_modules/socket.io-client/build/esm/url.d.ts +33 -0
  429. package/node_modules/socket.io-client/build/esm/url.js +59 -0
  430. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +2 -0
  431. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  432. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +12 -0
  433. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +66 -0
  434. package/node_modules/socket.io-client/build/esm-debug/index.d.ts +29 -0
  435. package/node_modules/socket.io-client/build/esm-debug/index.js +62 -0
  436. package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +295 -0
  437. package/node_modules/socket.io-client/build/esm-debug/manager.js +386 -0
  438. package/node_modules/socket.io-client/build/esm-debug/on.d.ts +2 -0
  439. package/node_modules/socket.io-client/build/esm-debug/on.js +6 -0
  440. package/node_modules/socket.io-client/build/esm-debug/package.json +5 -0
  441. package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +593 -0
  442. package/node_modules/socket.io-client/build/esm-debug/socket.js +903 -0
  443. package/node_modules/socket.io-client/build/esm-debug/url.d.ts +33 -0
  444. package/node_modules/socket.io-client/build/esm-debug/url.js +63 -0
  445. package/node_modules/socket.io-client/dist/socket.io.esm.min.js +7 -0
  446. package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -0
  447. package/node_modules/socket.io-client/dist/socket.io.js +4908 -0
  448. package/node_modules/socket.io-client/dist/socket.io.js.map +1 -0
  449. package/node_modules/socket.io-client/dist/socket.io.min.js +7 -0
  450. package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -0
  451. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +7 -0
  452. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -0
  453. package/node_modules/socket.io-client/package.json +101 -0
  454. package/node_modules/socket.io-parser/LICENSE +20 -0
  455. package/node_modules/socket.io-parser/Readme.md +81 -0
  456. package/node_modules/socket.io-parser/build/cjs/binary.d.ts +20 -0
  457. package/node_modules/socket.io-parser/build/cjs/binary.js +88 -0
  458. package/node_modules/socket.io-parser/build/cjs/index.d.ts +90 -0
  459. package/node_modules/socket.io-parser/build/cjs/index.js +321 -0
  460. package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +7 -0
  461. package/node_modules/socket.io-parser/build/cjs/is-binary.js +55 -0
  462. package/node_modules/socket.io-parser/build/cjs/package.json +3 -0
  463. package/node_modules/socket.io-parser/build/esm/binary.d.ts +20 -0
  464. package/node_modules/socket.io-parser/build/esm/binary.js +83 -0
  465. package/node_modules/socket.io-parser/build/esm/index.d.ts +90 -0
  466. package/node_modules/socket.io-parser/build/esm/index.js +311 -0
  467. package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +7 -0
  468. package/node_modules/socket.io-parser/build/esm/is-binary.js +50 -0
  469. package/node_modules/socket.io-parser/build/esm/package.json +3 -0
  470. package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +20 -0
  471. package/node_modules/socket.io-parser/build/esm-debug/binary.js +83 -0
  472. package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +90 -0
  473. package/node_modules/socket.io-parser/build/esm-debug/index.js +316 -0
  474. package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +7 -0
  475. package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +50 -0
  476. package/node_modules/socket.io-parser/build/esm-debug/package.json +3 -0
  477. package/node_modules/socket.io-parser/package.json +58 -0
  478. package/node_modules/tr46/.npmignore +4 -0
  479. package/node_modules/tr46/index.js +193 -0
  480. package/node_modules/tr46/lib/.gitkeep +0 -0
  481. package/node_modules/tr46/lib/mappingTable.json +1 -0
  482. package/node_modules/tr46/package.json +31 -0
  483. package/node_modules/webidl-conversions/LICENSE.md +12 -0
  484. package/node_modules/webidl-conversions/README.md +53 -0
  485. package/node_modules/webidl-conversions/lib/index.js +189 -0
  486. package/node_modules/webidl-conversions/package.json +23 -0
  487. package/node_modules/whatwg-url/LICENSE.txt +21 -0
  488. package/node_modules/whatwg-url/README.md +67 -0
  489. package/node_modules/whatwg-url/lib/URL-impl.js +200 -0
  490. package/node_modules/whatwg-url/lib/URL.js +196 -0
  491. package/node_modules/whatwg-url/lib/public-api.js +11 -0
  492. package/node_modules/whatwg-url/lib/url-state-machine.js +1297 -0
  493. package/node_modules/whatwg-url/lib/utils.js +20 -0
  494. package/node_modules/whatwg-url/package.json +32 -0
  495. package/node_modules/ws/LICENSE +20 -0
  496. package/node_modules/ws/README.md +548 -0
  497. package/node_modules/ws/browser.js +8 -0
  498. package/node_modules/ws/index.js +13 -0
  499. package/node_modules/ws/lib/buffer-util.js +131 -0
  500. package/node_modules/ws/lib/constants.js +12 -0
  501. package/node_modules/ws/lib/event-target.js +292 -0
  502. package/node_modules/ws/lib/extension.js +203 -0
  503. package/node_modules/ws/lib/limiter.js +55 -0
  504. package/node_modules/ws/lib/permessage-deflate.js +514 -0
  505. package/node_modules/ws/lib/receiver.js +704 -0
  506. package/node_modules/ws/lib/sender.js +497 -0
  507. package/node_modules/ws/lib/stream.js +159 -0
  508. package/node_modules/ws/lib/subprotocol.js +62 -0
  509. package/node_modules/ws/lib/validation.js +130 -0
  510. package/node_modules/ws/lib/websocket-server.js +540 -0
  511. package/node_modules/ws/lib/websocket.js +1338 -0
  512. package/node_modules/ws/package.json +69 -0
  513. package/node_modules/ws/wrapper.mjs +8 -0
  514. package/node_modules/xmlhttprequest-ssl/LICENSE +22 -0
  515. package/node_modules/xmlhttprequest-ssl/README.md +67 -0
  516. package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +689 -0
  517. package/node_modules/xmlhttprequest-ssl/package.json +40 -0
  518. package/node_modules/zod/LICENSE +21 -0
  519. package/node_modules/zod/README.md +208 -0
  520. package/node_modules/zod/index.cjs +33 -0
  521. package/node_modules/zod/index.d.cts +4 -0
  522. package/node_modules/zod/index.d.ts +4 -0
  523. package/node_modules/zod/index.js +4 -0
  524. package/node_modules/zod/package.json +118 -0
  525. package/node_modules/zod/src/index.ts +4 -0
  526. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  527. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  528. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  529. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  530. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  531. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  532. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  533. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  534. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  535. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  536. package/node_modules/zod/src/v3/errors.ts +13 -0
  537. package/node_modules/zod/src/v3/external.ts +6 -0
  538. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  539. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  540. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  541. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  542. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  543. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  544. package/node_modules/zod/src/v3/index.ts +4 -0
  545. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  546. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  547. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  548. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  549. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  550. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  551. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  552. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  553. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  554. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  555. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  556. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  557. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  558. package/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
  559. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  560. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  561. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  562. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  563. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  564. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  565. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  566. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  567. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  568. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  569. package/node_modules/zod/src/v3/tests/function.test.ts +257 -0
  570. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  571. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  572. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  573. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  574. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  575. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  576. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  577. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  578. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  579. package/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
  580. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  581. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  582. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  583. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  584. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  585. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  586. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  587. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  588. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  589. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  590. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  591. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  592. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  593. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  594. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  595. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  596. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  597. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  598. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  599. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  600. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  601. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  602. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  603. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  604. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  605. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  606. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  607. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  608. package/node_modules/zod/src/v3/types.ts +5136 -0
  609. package/node_modules/zod/src/v4/classic/checks.ts +30 -0
  610. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  611. package/node_modules/zod/src/v4/classic/compat.ts +66 -0
  612. package/node_modules/zod/src/v4/classic/errors.ts +75 -0
  613. package/node_modules/zod/src/v4/classic/external.ts +50 -0
  614. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  615. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  616. package/node_modules/zod/src/v4/classic/parse.ts +33 -0
  617. package/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
  618. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  619. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  620. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  621. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  622. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  623. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  624. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  625. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
  626. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
  627. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  628. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  629. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
  630. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  631. package/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
  632. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
  633. package/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
  634. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  635. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
  636. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  637. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
  638. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  639. package/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
  640. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
  641. package/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
  642. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  643. package/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
  644. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
  645. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
  646. package/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
  647. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  648. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
  649. package/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
  650. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  651. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  652. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
  653. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  654. package/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
  655. package/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
  656. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
  657. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
  658. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
  659. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
  660. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
  661. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
  662. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  663. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  664. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  665. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  666. package/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
  667. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
  668. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
  669. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
  670. package/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
  671. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
  672. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
  673. package/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
  674. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
  675. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
  676. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
  677. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
  678. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
  679. package/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
  680. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  681. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  682. package/node_modules/zod/src/v4/core/api.ts +1594 -0
  683. package/node_modules/zod/src/v4/core/checks.ts +1283 -0
  684. package/node_modules/zod/src/v4/core/config.ts +15 -0
  685. package/node_modules/zod/src/v4/core/core.ts +134 -0
  686. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  687. package/node_modules/zod/src/v4/core/errors.ts +424 -0
  688. package/node_modules/zod/src/v4/core/function.ts +176 -0
  689. package/node_modules/zod/src/v4/core/index.ts +15 -0
  690. package/node_modules/zod/src/v4/core/json-schema.ts +143 -0
  691. package/node_modules/zod/src/v4/core/parse.ts +94 -0
  692. package/node_modules/zod/src/v4/core/regexes.ts +135 -0
  693. package/node_modules/zod/src/v4/core/registries.ts +96 -0
  694. package/node_modules/zod/src/v4/core/schemas.ts +3842 -0
  695. package/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
  696. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  697. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  698. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  699. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  700. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  701. package/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
  702. package/node_modules/zod/src/v4/core/util.ts +775 -0
  703. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  704. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  705. package/node_modules/zod/src/v4/index.ts +4 -0
  706. package/node_modules/zod/src/v4/locales/ar.ts +125 -0
  707. package/node_modules/zod/src/v4/locales/az.ts +121 -0
  708. package/node_modules/zod/src/v4/locales/be.ts +184 -0
  709. package/node_modules/zod/src/v4/locales/ca.ts +127 -0
  710. package/node_modules/zod/src/v4/locales/cs.ts +142 -0
  711. package/node_modules/zod/src/v4/locales/de.ts +124 -0
  712. package/node_modules/zod/src/v4/locales/en.ts +127 -0
  713. package/node_modules/zod/src/v4/locales/eo.ts +125 -0
  714. package/node_modules/zod/src/v4/locales/es.ts +125 -0
  715. package/node_modules/zod/src/v4/locales/fa.ts +134 -0
  716. package/node_modules/zod/src/v4/locales/fi.ts +131 -0
  717. package/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
  718. package/node_modules/zod/src/v4/locales/fr.ts +124 -0
  719. package/node_modules/zod/src/v4/locales/he.ts +125 -0
  720. package/node_modules/zod/src/v4/locales/hu.ts +126 -0
  721. package/node_modules/zod/src/v4/locales/id.ts +125 -0
  722. package/node_modules/zod/src/v4/locales/index.ts +39 -0
  723. package/node_modules/zod/src/v4/locales/it.ts +125 -0
  724. package/node_modules/zod/src/v4/locales/ja.ts +122 -0
  725. package/node_modules/zod/src/v4/locales/kh.ts +126 -0
  726. package/node_modules/zod/src/v4/locales/ko.ts +131 -0
  727. package/node_modules/zod/src/v4/locales/mk.ts +127 -0
  728. package/node_modules/zod/src/v4/locales/ms.ts +124 -0
  729. package/node_modules/zod/src/v4/locales/nl.ts +126 -0
  730. package/node_modules/zod/src/v4/locales/no.ts +124 -0
  731. package/node_modules/zod/src/v4/locales/ota.ts +125 -0
  732. package/node_modules/zod/src/v4/locales/pl.ts +126 -0
  733. package/node_modules/zod/src/v4/locales/ps.ts +133 -0
  734. package/node_modules/zod/src/v4/locales/pt.ts +123 -0
  735. package/node_modules/zod/src/v4/locales/ru.ts +184 -0
  736. package/node_modules/zod/src/v4/locales/sl.ts +126 -0
  737. package/node_modules/zod/src/v4/locales/sv.ts +127 -0
  738. package/node_modules/zod/src/v4/locales/ta.ts +125 -0
  739. package/node_modules/zod/src/v4/locales/th.ts +126 -0
  740. package/node_modules/zod/src/v4/locales/tr.ts +121 -0
  741. package/node_modules/zod/src/v4/locales/ua.ts +126 -0
  742. package/node_modules/zod/src/v4/locales/ur.ts +126 -0
  743. package/node_modules/zod/src/v4/locales/vi.ts +125 -0
  744. package/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
  745. package/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
  746. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  747. package/node_modules/zod/src/v4/mini/coerce.ts +22 -0
  748. package/node_modules/zod/src/v4/mini/external.ts +40 -0
  749. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  750. package/node_modules/zod/src/v4/mini/iso.ts +62 -0
  751. package/node_modules/zod/src/v4/mini/parse.ts +1 -0
  752. package/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
  753. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  754. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
  755. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  756. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  757. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  758. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
  759. package/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
  760. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  761. package/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
  762. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  763. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  764. package/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
  765. package/node_modules/zod/src/v4-mini/index.ts +1 -0
  766. package/node_modules/zod/v3/ZodError.cjs +138 -0
  767. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  768. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  769. package/node_modules/zod/v3/ZodError.js +133 -0
  770. package/node_modules/zod/v3/errors.cjs +17 -0
  771. package/node_modules/zod/v3/errors.d.cts +5 -0
  772. package/node_modules/zod/v3/errors.d.ts +5 -0
  773. package/node_modules/zod/v3/errors.js +9 -0
  774. package/node_modules/zod/v3/external.cjs +22 -0
  775. package/node_modules/zod/v3/external.d.cts +6 -0
  776. package/node_modules/zod/v3/external.d.ts +6 -0
  777. package/node_modules/zod/v3/external.js +6 -0
  778. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  779. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  780. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  781. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  782. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  783. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  784. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  785. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  786. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  787. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  788. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  789. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  790. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  791. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  792. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  793. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  794. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  795. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  796. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  797. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  798. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  799. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  800. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  801. package/node_modules/zod/v3/helpers/util.js +133 -0
  802. package/node_modules/zod/v3/index.cjs +33 -0
  803. package/node_modules/zod/v3/index.d.cts +4 -0
  804. package/node_modules/zod/v3/index.d.ts +4 -0
  805. package/node_modules/zod/v3/index.js +4 -0
  806. package/node_modules/zod/v3/locales/en.cjs +111 -0
  807. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  808. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  809. package/node_modules/zod/v3/locales/en.js +109 -0
  810. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  811. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  812. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  813. package/node_modules/zod/v3/standard-schema.js +1 -0
  814. package/node_modules/zod/v3/types.cjs +3775 -0
  815. package/node_modules/zod/v3/types.d.cts +1031 -0
  816. package/node_modules/zod/v3/types.d.ts +1031 -0
  817. package/node_modules/zod/v3/types.js +3693 -0
  818. package/node_modules/zod/v4/classic/checks.cjs +32 -0
  819. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  820. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  821. package/node_modules/zod/v4/classic/checks.js +1 -0
  822. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  823. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  824. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  825. package/node_modules/zod/v4/classic/coerce.js +17 -0
  826. package/node_modules/zod/v4/classic/compat.cjs +57 -0
  827. package/node_modules/zod/v4/classic/compat.d.cts +46 -0
  828. package/node_modules/zod/v4/classic/compat.d.ts +46 -0
  829. package/node_modules/zod/v4/classic/compat.js +27 -0
  830. package/node_modules/zod/v4/classic/errors.cjs +67 -0
  831. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  832. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  833. package/node_modules/zod/v4/classic/errors.js +41 -0
  834. package/node_modules/zod/v4/classic/external.cjs +70 -0
  835. package/node_modules/zod/v4/classic/external.d.cts +13 -0
  836. package/node_modules/zod/v4/classic/external.d.ts +13 -0
  837. package/node_modules/zod/v4/classic/external.js +18 -0
  838. package/node_modules/zod/v4/classic/index.cjs +33 -0
  839. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  840. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  841. package/node_modules/zod/v4/classic/index.js +4 -0
  842. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  843. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  844. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  845. package/node_modules/zod/v4/classic/iso.js +30 -0
  846. package/node_modules/zod/v4/classic/parse.cjs +32 -0
  847. package/node_modules/zod/v4/classic/parse.d.cts +23 -0
  848. package/node_modules/zod/v4/classic/parse.d.ts +23 -0
  849. package/node_modules/zod/v4/classic/parse.js +6 -0
  850. package/node_modules/zod/v4/classic/schemas.cjs +1109 -0
  851. package/node_modules/zod/v4/classic/schemas.d.cts +630 -0
  852. package/node_modules/zod/v4/classic/schemas.d.ts +630 -0
  853. package/node_modules/zod/v4/classic/schemas.js +1006 -0
  854. package/node_modules/zod/v4/core/api.cjs +1039 -0
  855. package/node_modules/zod/v4/core/api.d.cts +284 -0
  856. package/node_modules/zod/v4/core/api.d.ts +284 -0
  857. package/node_modules/zod/v4/core/api.js +906 -0
  858. package/node_modules/zod/v4/core/checks.cjs +591 -0
  859. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  860. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  861. package/node_modules/zod/v4/core/checks.js +565 -0
  862. package/node_modules/zod/v4/core/core.cjs +67 -0
  863. package/node_modules/zod/v4/core/core.d.cts +49 -0
  864. package/node_modules/zod/v4/core/core.d.ts +49 -0
  865. package/node_modules/zod/v4/core/core.js +61 -0
  866. package/node_modules/zod/v4/core/doc.cjs +39 -0
  867. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  868. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  869. package/node_modules/zod/v4/core/doc.js +35 -0
  870. package/node_modules/zod/v4/core/errors.cjs +226 -0
  871. package/node_modules/zod/v4/core/errors.d.cts +208 -0
  872. package/node_modules/zod/v4/core/errors.d.ts +208 -0
  873. package/node_modules/zod/v4/core/errors.js +195 -0
  874. package/node_modules/zod/v4/core/function.cjs +102 -0
  875. package/node_modules/zod/v4/core/function.d.cts +52 -0
  876. package/node_modules/zod/v4/core/function.d.ts +52 -0
  877. package/node_modules/zod/v4/core/function.js +75 -0
  878. package/node_modules/zod/v4/core/index.cjs +44 -0
  879. package/node_modules/zod/v4/core/index.d.cts +15 -0
  880. package/node_modules/zod/v4/core/index.d.ts +15 -0
  881. package/node_modules/zod/v4/core/index.js +15 -0
  882. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  883. package/node_modules/zod/v4/core/json-schema.d.cts +87 -0
  884. package/node_modules/zod/v4/core/json-schema.d.ts +87 -0
  885. package/node_modules/zod/v4/core/json-schema.js +1 -0
  886. package/node_modules/zod/v4/core/parse.cjs +87 -0
  887. package/node_modules/zod/v4/core/parse.d.cts +25 -0
  888. package/node_modules/zod/v4/core/parse.d.ts +25 -0
  889. package/node_modules/zod/v4/core/parse.js +57 -0
  890. package/node_modules/zod/v4/core/regexes.cjs +103 -0
  891. package/node_modules/zod/v4/core/regexes.d.cts +62 -0
  892. package/node_modules/zod/v4/core/regexes.d.ts +62 -0
  893. package/node_modules/zod/v4/core/regexes.js +95 -0
  894. package/node_modules/zod/v4/core/registries.cjs +56 -0
  895. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  896. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  897. package/node_modules/zod/v4/core/registries.js +51 -0
  898. package/node_modules/zod/v4/core/schemas.cjs +1748 -0
  899. package/node_modules/zod/v4/core/schemas.d.cts +1041 -0
  900. package/node_modules/zod/v4/core/schemas.d.ts +1041 -0
  901. package/node_modules/zod/v4/core/schemas.js +1717 -0
  902. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  903. package/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
  904. package/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
  905. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  906. package/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
  907. package/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
  908. package/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
  909. package/node_modules/zod/v4/core/to-json-schema.js +849 -0
  910. package/node_modules/zod/v4/core/util.cjs +539 -0
  911. package/node_modules/zod/v4/core/util.d.cts +183 -0
  912. package/node_modules/zod/v4/core/util.d.ts +183 -0
  913. package/node_modules/zod/v4/core/util.js +493 -0
  914. package/node_modules/zod/v4/core/versions.cjs +8 -0
  915. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  916. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  917. package/node_modules/zod/v4/core/versions.js +5 -0
  918. package/node_modules/zod/v4/index.cjs +22 -0
  919. package/node_modules/zod/v4/index.d.cts +3 -0
  920. package/node_modules/zod/v4/index.d.ts +3 -0
  921. package/node_modules/zod/v4/index.js +3 -0
  922. package/node_modules/zod/v4/locales/ar.cjs +142 -0
  923. package/node_modules/zod/v4/locales/ar.d.cts +4 -0
  924. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  925. package/node_modules/zod/v4/locales/ar.js +116 -0
  926. package/node_modules/zod/v4/locales/az.cjs +141 -0
  927. package/node_modules/zod/v4/locales/az.d.cts +4 -0
  928. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  929. package/node_modules/zod/v4/locales/az.js +115 -0
  930. package/node_modules/zod/v4/locales/be.cjs +190 -0
  931. package/node_modules/zod/v4/locales/be.d.cts +4 -0
  932. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  933. package/node_modules/zod/v4/locales/be.js +164 -0
  934. package/node_modules/zod/v4/locales/ca.cjs +144 -0
  935. package/node_modules/zod/v4/locales/ca.d.cts +4 -0
  936. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  937. package/node_modules/zod/v4/locales/ca.js +118 -0
  938. package/node_modules/zod/v4/locales/cs.cjs +161 -0
  939. package/node_modules/zod/v4/locales/cs.d.cts +4 -0
  940. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  941. package/node_modules/zod/v4/locales/cs.js +135 -0
  942. package/node_modules/zod/v4/locales/de.cjs +142 -0
  943. package/node_modules/zod/v4/locales/de.d.cts +4 -0
  944. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  945. package/node_modules/zod/v4/locales/de.js +116 -0
  946. package/node_modules/zod/v4/locales/en.cjs +145 -0
  947. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  948. package/node_modules/zod/v4/locales/en.d.ts +5 -0
  949. package/node_modules/zod/v4/locales/en.js +117 -0
  950. package/node_modules/zod/v4/locales/eo.cjs +144 -0
  951. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  952. package/node_modules/zod/v4/locales/eo.d.ts +5 -0
  953. package/node_modules/zod/v4/locales/eo.js +116 -0
  954. package/node_modules/zod/v4/locales/es.cjs +143 -0
  955. package/node_modules/zod/v4/locales/es.d.cts +4 -0
  956. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  957. package/node_modules/zod/v4/locales/es.js +117 -0
  958. package/node_modules/zod/v4/locales/fa.cjs +148 -0
  959. package/node_modules/zod/v4/locales/fa.d.cts +4 -0
  960. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  961. package/node_modules/zod/v4/locales/fa.js +122 -0
  962. package/node_modules/zod/v4/locales/fi.cjs +148 -0
  963. package/node_modules/zod/v4/locales/fi.d.cts +4 -0
  964. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  965. package/node_modules/zod/v4/locales/fi.js +122 -0
  966. package/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
  967. package/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
  968. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  969. package/node_modules/zod/v4/locales/fr-CA.js +117 -0
  970. package/node_modules/zod/v4/locales/fr.cjs +142 -0
  971. package/node_modules/zod/v4/locales/fr.d.cts +4 -0
  972. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  973. package/node_modules/zod/v4/locales/fr.js +116 -0
  974. package/node_modules/zod/v4/locales/he.cjs +143 -0
  975. package/node_modules/zod/v4/locales/he.d.cts +4 -0
  976. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  977. package/node_modules/zod/v4/locales/he.js +117 -0
  978. package/node_modules/zod/v4/locales/hu.cjs +143 -0
  979. package/node_modules/zod/v4/locales/hu.d.cts +4 -0
  980. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  981. package/node_modules/zod/v4/locales/hu.js +117 -0
  982. package/node_modules/zod/v4/locales/id.cjs +142 -0
  983. package/node_modules/zod/v4/locales/id.d.cts +4 -0
  984. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  985. package/node_modules/zod/v4/locales/id.js +116 -0
  986. package/node_modules/zod/v4/locales/index.cjs +84 -0
  987. package/node_modules/zod/v4/locales/index.d.cts +39 -0
  988. package/node_modules/zod/v4/locales/index.d.ts +39 -0
  989. package/node_modules/zod/v4/locales/index.js +39 -0
  990. package/node_modules/zod/v4/locales/it.cjs +143 -0
  991. package/node_modules/zod/v4/locales/it.d.cts +4 -0
  992. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  993. package/node_modules/zod/v4/locales/it.js +117 -0
  994. package/node_modules/zod/v4/locales/ja.cjs +141 -0
  995. package/node_modules/zod/v4/locales/ja.d.cts +4 -0
  996. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  997. package/node_modules/zod/v4/locales/ja.js +115 -0
  998. package/node_modules/zod/v4/locales/kh.cjs +143 -0
  999. package/node_modules/zod/v4/locales/kh.d.cts +4 -0
  1000. package/node_modules/zod/v4/locales/kh.d.ts +4 -0
  1001. package/node_modules/zod/v4/locales/kh.js +117 -0
  1002. package/node_modules/zod/v4/locales/ko.cjs +147 -0
  1003. package/node_modules/zod/v4/locales/ko.d.cts +4 -0
  1004. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  1005. package/node_modules/zod/v4/locales/ko.js +121 -0
  1006. package/node_modules/zod/v4/locales/mk.cjs +144 -0
  1007. package/node_modules/zod/v4/locales/mk.d.cts +4 -0
  1008. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  1009. package/node_modules/zod/v4/locales/mk.js +118 -0
  1010. package/node_modules/zod/v4/locales/ms.cjs +142 -0
  1011. package/node_modules/zod/v4/locales/ms.d.cts +4 -0
  1012. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  1013. package/node_modules/zod/v4/locales/ms.js +116 -0
  1014. package/node_modules/zod/v4/locales/nl.cjs +143 -0
  1015. package/node_modules/zod/v4/locales/nl.d.cts +4 -0
  1016. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  1017. package/node_modules/zod/v4/locales/nl.js +117 -0
  1018. package/node_modules/zod/v4/locales/no.cjs +142 -0
  1019. package/node_modules/zod/v4/locales/no.d.cts +4 -0
  1020. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  1021. package/node_modules/zod/v4/locales/no.js +116 -0
  1022. package/node_modules/zod/v4/locales/ota.cjs +143 -0
  1023. package/node_modules/zod/v4/locales/ota.d.cts +4 -0
  1024. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  1025. package/node_modules/zod/v4/locales/ota.js +117 -0
  1026. package/node_modules/zod/v4/locales/pl.cjs +143 -0
  1027. package/node_modules/zod/v4/locales/pl.d.cts +4 -0
  1028. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  1029. package/node_modules/zod/v4/locales/pl.js +117 -0
  1030. package/node_modules/zod/v4/locales/ps.cjs +148 -0
  1031. package/node_modules/zod/v4/locales/ps.d.cts +4 -0
  1032. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  1033. package/node_modules/zod/v4/locales/ps.js +122 -0
  1034. package/node_modules/zod/v4/locales/pt.cjs +142 -0
  1035. package/node_modules/zod/v4/locales/pt.d.cts +4 -0
  1036. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  1037. package/node_modules/zod/v4/locales/pt.js +116 -0
  1038. package/node_modules/zod/v4/locales/ru.cjs +190 -0
  1039. package/node_modules/zod/v4/locales/ru.d.cts +4 -0
  1040. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  1041. package/node_modules/zod/v4/locales/ru.js +164 -0
  1042. package/node_modules/zod/v4/locales/sl.cjs +143 -0
  1043. package/node_modules/zod/v4/locales/sl.d.cts +4 -0
  1044. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  1045. package/node_modules/zod/v4/locales/sl.js +117 -0
  1046. package/node_modules/zod/v4/locales/sv.cjs +144 -0
  1047. package/node_modules/zod/v4/locales/sv.d.cts +4 -0
  1048. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  1049. package/node_modules/zod/v4/locales/sv.js +118 -0
  1050. package/node_modules/zod/v4/locales/ta.cjs +143 -0
  1051. package/node_modules/zod/v4/locales/ta.d.cts +4 -0
  1052. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  1053. package/node_modules/zod/v4/locales/ta.js +117 -0
  1054. package/node_modules/zod/v4/locales/th.cjs +143 -0
  1055. package/node_modules/zod/v4/locales/th.d.cts +4 -0
  1056. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  1057. package/node_modules/zod/v4/locales/th.js +117 -0
  1058. package/node_modules/zod/v4/locales/tr.cjs +143 -0
  1059. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  1060. package/node_modules/zod/v4/locales/tr.d.ts +5 -0
  1061. package/node_modules/zod/v4/locales/tr.js +115 -0
  1062. package/node_modules/zod/v4/locales/ua.cjs +143 -0
  1063. package/node_modules/zod/v4/locales/ua.d.cts +4 -0
  1064. package/node_modules/zod/v4/locales/ua.d.ts +4 -0
  1065. package/node_modules/zod/v4/locales/ua.js +117 -0
  1066. package/node_modules/zod/v4/locales/ur.cjs +143 -0
  1067. package/node_modules/zod/v4/locales/ur.d.cts +4 -0
  1068. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  1069. package/node_modules/zod/v4/locales/ur.js +117 -0
  1070. package/node_modules/zod/v4/locales/vi.cjs +142 -0
  1071. package/node_modules/zod/v4/locales/vi.d.cts +4 -0
  1072. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  1073. package/node_modules/zod/v4/locales/vi.js +116 -0
  1074. package/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
  1075. package/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
  1076. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  1077. package/node_modules/zod/v4/locales/zh-CN.js +116 -0
  1078. package/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
  1079. package/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
  1080. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  1081. package/node_modules/zod/v4/locales/zh-TW.js +117 -0
  1082. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  1083. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  1084. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  1085. package/node_modules/zod/v4/mini/checks.js +1 -0
  1086. package/node_modules/zod/v4/mini/coerce.cjs +47 -0
  1087. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  1088. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  1089. package/node_modules/zod/v4/mini/coerce.js +17 -0
  1090. package/node_modules/zod/v4/mini/external.cjs +62 -0
  1091. package/node_modules/zod/v4/mini/external.d.cts +11 -0
  1092. package/node_modules/zod/v4/mini/external.d.ts +11 -0
  1093. package/node_modules/zod/v4/mini/external.js +13 -0
  1094. package/node_modules/zod/v4/mini/index.cjs +32 -0
  1095. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  1096. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  1097. package/node_modules/zod/v4/mini/index.js +3 -0
  1098. package/node_modules/zod/v4/mini/iso.cjs +60 -0
  1099. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  1100. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  1101. package/node_modules/zod/v4/mini/iso.js +30 -0
  1102. package/node_modules/zod/v4/mini/parse.cjs +8 -0
  1103. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  1104. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  1105. package/node_modules/zod/v4/mini/parse.js +1 -0
  1106. package/node_modules/zod/v4/mini/schemas.cjs +839 -0
  1107. package/node_modules/zod/v4/mini/schemas.d.cts +356 -0
  1108. package/node_modules/zod/v4/mini/schemas.d.ts +356 -0
  1109. package/node_modules/zod/v4/mini/schemas.js +732 -0
  1110. package/node_modules/zod/v4-mini/index.cjs +17 -0
  1111. package/node_modules/zod/v4-mini/index.d.cts +1 -0
  1112. package/node_modules/zod/v4-mini/index.d.ts +1 -0
  1113. package/node_modules/zod/v4-mini/index.js +1 -0
  1114. package/package.json +58 -0
  1115. package/src/cli.js +83 -0
  1116. package/src/commands/activate-if-needed.js +41 -0
  1117. package/src/commands/diagnostics.js +38 -0
  1118. package/src/commands/doctor.js +96 -0
  1119. package/src/commands/init.js +975 -0
  1120. package/src/commands/serve.js +200 -0
  1121. package/src/commands/status.js +215 -0
  1122. package/src/commands/sync.js +783 -0
  1123. package/src/commands/uninstall.js +167 -0
  1124. package/src/lib/activation-check.js +341 -0
  1125. package/src/lib/browser-auth.js +177 -0
  1126. package/src/lib/claude-config.js +190 -0
  1127. package/src/lib/cli-ui.js +179 -0
  1128. package/src/lib/codex-config.js +350 -0
  1129. package/src/lib/debug-flags.js +7 -0
  1130. package/src/lib/diagnostics.js +216 -0
  1131. package/src/lib/doctor.js +351 -0
  1132. package/src/lib/fs.js +77 -0
  1133. package/src/lib/gemini-config.js +288 -0
  1134. package/src/lib/init-flow.js +42 -0
  1135. package/src/lib/insforge-client.js +79 -0
  1136. package/src/lib/insforge.js +29 -0
  1137. package/src/lib/local-api.js +511 -0
  1138. package/src/lib/openclaw-hook.js +420 -0
  1139. package/src/lib/openclaw-session-plugin.js +520 -0
  1140. package/src/lib/opencode-config.js +99 -0
  1141. package/src/lib/opencode-usage-audit.js +205 -0
  1142. package/src/lib/progress.js +76 -0
  1143. package/src/lib/project-usage-purge.js +106 -0
  1144. package/src/lib/prompt.js +24 -0
  1145. package/src/lib/rollout.js +2472 -0
  1146. package/src/lib/runtime-config.js +132 -0
  1147. package/src/lib/static-server.js +59 -0
  1148. package/src/lib/subscriptions.js +319 -0
  1149. package/src/lib/tracker-paths.js +15 -0
  1150. package/src/lib/upload-throttle.js +148 -0
  1151. package/src/lib/uploader.js +224 -0
  1152. package/src/lib/vibeusage-api.js +243 -0
  1153. package/src/lib/vibeusage-public-repo.js +105 -0
@@ -0,0 +1,1784 @@
1
+ // src/types.ts
2
+ var InsForgeError = class _InsForgeError extends Error {
3
+ constructor(message, statusCode, error, nextActions) {
4
+ super(message);
5
+ this.name = "InsForgeError";
6
+ this.statusCode = statusCode;
7
+ this.error = error;
8
+ this.nextActions = nextActions;
9
+ }
10
+ static fromApiError(apiError) {
11
+ return new _InsForgeError(
12
+ apiError.message,
13
+ apiError.statusCode,
14
+ apiError.error,
15
+ apiError.nextActions
16
+ );
17
+ }
18
+ };
19
+
20
+ // src/lib/http-client.ts
21
+ var HttpClient = class {
22
+ constructor(config) {
23
+ this.userToken = null;
24
+ this.baseUrl = config.baseUrl || "http://localhost:7130";
25
+ this.fetch = config.fetch || (globalThis.fetch ? globalThis.fetch.bind(globalThis) : void 0);
26
+ this.anonKey = config.anonKey;
27
+ this.defaultHeaders = {
28
+ ...config.headers
29
+ };
30
+ if (!this.fetch) {
31
+ throw new Error(
32
+ "Fetch is not available. Please provide a fetch implementation in the config."
33
+ );
34
+ }
35
+ }
36
+ buildUrl(path, params) {
37
+ const url = new URL(path, this.baseUrl);
38
+ if (params) {
39
+ Object.entries(params).forEach(([key, value]) => {
40
+ if (key === "select") {
41
+ let normalizedValue = value.replace(/\s+/g, " ").trim();
42
+ normalizedValue = normalizedValue.replace(/\s*\(\s*/g, "(").replace(/\s*\)\s*/g, ")").replace(/\(\s+/g, "(").replace(/\s+\)/g, ")").replace(/,\s+(?=[^()]*\))/g, ",");
43
+ url.searchParams.append(key, normalizedValue);
44
+ } else {
45
+ url.searchParams.append(key, value);
46
+ }
47
+ });
48
+ }
49
+ return url.toString();
50
+ }
51
+ async request(method, path, options = {}) {
52
+ const { params, headers = {}, body, ...fetchOptions } = options;
53
+ const url = this.buildUrl(path, params);
54
+ const requestHeaders = {
55
+ ...this.defaultHeaders
56
+ };
57
+ const authToken = this.userToken || this.anonKey;
58
+ if (authToken) {
59
+ requestHeaders["Authorization"] = `Bearer ${authToken}`;
60
+ }
61
+ let processedBody;
62
+ if (body !== void 0) {
63
+ if (typeof FormData !== "undefined" && body instanceof FormData) {
64
+ processedBody = body;
65
+ } else {
66
+ if (method !== "GET") {
67
+ requestHeaders["Content-Type"] = "application/json;charset=UTF-8";
68
+ }
69
+ processedBody = JSON.stringify(body);
70
+ }
71
+ }
72
+ Object.assign(requestHeaders, headers);
73
+ const response = await this.fetch(url, {
74
+ method,
75
+ headers: requestHeaders,
76
+ body: processedBody,
77
+ ...fetchOptions
78
+ });
79
+ if (response.status === 204) {
80
+ return void 0;
81
+ }
82
+ let data;
83
+ const contentType = response.headers.get("content-type");
84
+ if (contentType?.includes("json")) {
85
+ data = await response.json();
86
+ } else {
87
+ data = await response.text();
88
+ }
89
+ if (!response.ok) {
90
+ if (data && typeof data === "object" && "error" in data) {
91
+ if (!data.statusCode && !data.status) {
92
+ data.statusCode = response.status;
93
+ }
94
+ const error = InsForgeError.fromApiError(data);
95
+ Object.keys(data).forEach((key) => {
96
+ if (key !== "error" && key !== "message" && key !== "statusCode") {
97
+ error[key] = data[key];
98
+ }
99
+ });
100
+ throw error;
101
+ }
102
+ throw new InsForgeError(
103
+ `Request failed: ${response.statusText}`,
104
+ response.status,
105
+ "REQUEST_FAILED"
106
+ );
107
+ }
108
+ return data;
109
+ }
110
+ get(path, options) {
111
+ return this.request("GET", path, options);
112
+ }
113
+ post(path, body, options) {
114
+ return this.request("POST", path, { ...options, body });
115
+ }
116
+ put(path, body, options) {
117
+ return this.request("PUT", path, { ...options, body });
118
+ }
119
+ patch(path, body, options) {
120
+ return this.request("PATCH", path, { ...options, body });
121
+ }
122
+ delete(path, options) {
123
+ return this.request("DELETE", path, options);
124
+ }
125
+ setAuthToken(token) {
126
+ this.userToken = token;
127
+ }
128
+ getHeaders() {
129
+ const headers = { ...this.defaultHeaders };
130
+ const authToken = this.userToken || this.anonKey;
131
+ if (authToken) {
132
+ headers["Authorization"] = `Bearer ${authToken}`;
133
+ }
134
+ return headers;
135
+ }
136
+ };
137
+
138
+ // src/lib/token-manager.ts
139
+ var TOKEN_KEY = "insforge-auth-token";
140
+ var USER_KEY = "insforge-auth-user";
141
+ var CSRF_TOKEN_COOKIE = "insforge_csrf_token";
142
+ function getCsrfToken() {
143
+ if (typeof document === "undefined") return null;
144
+ const match = document.cookie.split(";").find((c) => c.trim().startsWith(`${CSRF_TOKEN_COOKIE}=`));
145
+ if (!match) return null;
146
+ return match.split("=")[1] || null;
147
+ }
148
+ function setCsrfToken(token) {
149
+ if (typeof document === "undefined") return;
150
+ const maxAge = 7 * 24 * 60 * 60;
151
+ const secure = typeof window !== "undefined" && window.location.protocol === "https:" ? "; Secure" : "";
152
+ document.cookie = `${CSRF_TOKEN_COOKIE}=${encodeURIComponent(token)}; path=/; max-age=${maxAge}; SameSite=Lax${secure}`;
153
+ }
154
+ function clearCsrfToken() {
155
+ if (typeof document === "undefined") return;
156
+ const secure = typeof window !== "undefined" && window.location.protocol === "https:" ? "; Secure" : "";
157
+ document.cookie = `${CSRF_TOKEN_COOKIE}=; path=/; max-age=0; SameSite=Lax${secure}`;
158
+ }
159
+ var TokenManager = class {
160
+ constructor(storage) {
161
+ // In-memory storage
162
+ this.accessToken = null;
163
+ this.user = null;
164
+ // Mode: 'memory' (new backend) or 'storage' (legacy backend, default)
165
+ this._mode = "storage";
166
+ if (storage) {
167
+ this.storage = storage;
168
+ } else if (typeof window !== "undefined" && window.localStorage) {
169
+ this.storage = window.localStorage;
170
+ } else {
171
+ const store = /* @__PURE__ */ new Map();
172
+ this.storage = {
173
+ getItem: (key) => store.get(key) || null,
174
+ setItem: (key, value) => {
175
+ store.set(key, value);
176
+ },
177
+ removeItem: (key) => {
178
+ store.delete(key);
179
+ }
180
+ };
181
+ }
182
+ }
183
+ /**
184
+ * Get current mode
185
+ */
186
+ get mode() {
187
+ return this._mode;
188
+ }
189
+ /**
190
+ * Set mode to memory (new backend with cookies + memory)
191
+ */
192
+ setMemoryMode() {
193
+ if (this._mode === "storage") {
194
+ this.storage.removeItem(TOKEN_KEY);
195
+ this.storage.removeItem(USER_KEY);
196
+ }
197
+ this._mode = "memory";
198
+ }
199
+ /**
200
+ * Set mode to storage (legacy backend with localStorage)
201
+ * Also loads existing session from localStorage
202
+ */
203
+ setStorageMode() {
204
+ this._mode = "storage";
205
+ this.loadFromStorage();
206
+ }
207
+ /**
208
+ * Load session from localStorage
209
+ */
210
+ loadFromStorage() {
211
+ const token = this.storage.getItem(TOKEN_KEY);
212
+ const userStr = this.storage.getItem(USER_KEY);
213
+ if (token && userStr) {
214
+ try {
215
+ this.accessToken = token;
216
+ this.user = JSON.parse(userStr);
217
+ } catch {
218
+ this.clearSession();
219
+ }
220
+ }
221
+ }
222
+ /**
223
+ * Save session (memory always, localStorage only in storage mode)
224
+ */
225
+ saveSession(session) {
226
+ this.accessToken = session.accessToken;
227
+ this.user = session.user;
228
+ if (this._mode === "storage") {
229
+ this.storage.setItem(TOKEN_KEY, session.accessToken);
230
+ this.storage.setItem(USER_KEY, JSON.stringify(session.user));
231
+ }
232
+ }
233
+ /**
234
+ * Get current session
235
+ */
236
+ getSession() {
237
+ this.loadFromStorage();
238
+ if (!this.accessToken || !this.user) return null;
239
+ return {
240
+ accessToken: this.accessToken,
241
+ user: this.user
242
+ };
243
+ }
244
+ /**
245
+ * Get access token
246
+ */
247
+ getAccessToken() {
248
+ this.loadFromStorage();
249
+ return this.accessToken;
250
+ }
251
+ /**
252
+ * Set access token
253
+ */
254
+ setAccessToken(token) {
255
+ this.accessToken = token;
256
+ if (this._mode === "storage") {
257
+ this.storage.setItem(TOKEN_KEY, token);
258
+ }
259
+ }
260
+ /**
261
+ * Get user
262
+ */
263
+ getUser() {
264
+ return this.user;
265
+ }
266
+ /**
267
+ * Set user
268
+ */
269
+ setUser(user) {
270
+ this.user = user;
271
+ if (this._mode === "storage") {
272
+ this.storage.setItem(USER_KEY, JSON.stringify(user));
273
+ }
274
+ }
275
+ /**
276
+ * Clear session (both memory and localStorage)
277
+ */
278
+ clearSession() {
279
+ this.accessToken = null;
280
+ this.user = null;
281
+ this.storage.removeItem(TOKEN_KEY);
282
+ this.storage.removeItem(USER_KEY);
283
+ }
284
+ /**
285
+ * Check if there's a session in localStorage (for legacy detection)
286
+ */
287
+ hasStoredSession() {
288
+ const token = this.storage.getItem(TOKEN_KEY);
289
+ return !!token;
290
+ }
291
+ };
292
+
293
+ // src/modules/auth.ts
294
+ function isHostedAuthEnvironment() {
295
+ if (typeof window === "undefined") {
296
+ return false;
297
+ }
298
+ const { hostname, port, protocol } = window.location;
299
+ if (hostname === "localhost" && port === "7130") {
300
+ return true;
301
+ }
302
+ if (protocol === "https:" && hostname.endsWith(".insforge.app")) {
303
+ return true;
304
+ }
305
+ return false;
306
+ }
307
+ var Auth = class {
308
+ constructor(http, tokenManager) {
309
+ this.http = http;
310
+ this.tokenManager = tokenManager;
311
+ this.detectAuthCallback();
312
+ }
313
+ /**
314
+ * Automatically detect and handle OAuth callback parameters in the URL
315
+ * This runs after initialization to seamlessly complete the OAuth flow
316
+ * Matches the backend's OAuth callback response (backend/src/api/routes/auth.ts:540-544)
317
+ */
318
+ detectAuthCallback() {
319
+ if (typeof window === "undefined") return;
320
+ try {
321
+ const params = new URLSearchParams(window.location.search);
322
+ const accessToken = params.get("access_token");
323
+ const userId = params.get("user_id");
324
+ const email = params.get("email");
325
+ const name = params.get("name");
326
+ const csrfToken = params.get("csrf_token");
327
+ if (accessToken && userId && email) {
328
+ if (csrfToken) {
329
+ this.tokenManager.setMemoryMode();
330
+ setCsrfToken(csrfToken);
331
+ }
332
+ const session = {
333
+ accessToken,
334
+ user: {
335
+ id: userId,
336
+ email,
337
+ profile: { name: name || "" },
338
+ metadata: null,
339
+ // These fields are not provided by backend OAuth callback
340
+ // They'll be populated when calling getCurrentUser()
341
+ emailVerified: false,
342
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
343
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
344
+ }
345
+ };
346
+ this.tokenManager.saveSession(session);
347
+ this.http.setAuthToken(accessToken);
348
+ const url = new URL(window.location.href);
349
+ url.searchParams.delete("access_token");
350
+ url.searchParams.delete("user_id");
351
+ url.searchParams.delete("email");
352
+ url.searchParams.delete("name");
353
+ url.searchParams.delete("csrf_token");
354
+ if (params.has("error")) {
355
+ url.searchParams.delete("error");
356
+ }
357
+ window.history.replaceState({}, document.title, url.toString());
358
+ }
359
+ } catch (error) {
360
+ console.debug("OAuth callback detection skipped:", error);
361
+ }
362
+ }
363
+ /**
364
+ * Sign up a new user
365
+ */
366
+ async signUp(request) {
367
+ try {
368
+ const response = await this.http.post("/api/auth/users", request);
369
+ if (response.accessToken && response.user && !isHostedAuthEnvironment()) {
370
+ const session = {
371
+ accessToken: response.accessToken,
372
+ user: response.user
373
+ };
374
+ this.tokenManager.saveSession(session);
375
+ this.http.setAuthToken(response.accessToken);
376
+ if (response.csrfToken) {
377
+ setCsrfToken(response.csrfToken);
378
+ }
379
+ }
380
+ return {
381
+ data: response,
382
+ error: null
383
+ };
384
+ } catch (error) {
385
+ if (error instanceof InsForgeError) {
386
+ return { data: null, error };
387
+ }
388
+ return {
389
+ data: null,
390
+ error: new InsForgeError(
391
+ error instanceof Error ? error.message : "An unexpected error occurred during sign up",
392
+ 500,
393
+ "UNEXPECTED_ERROR"
394
+ )
395
+ };
396
+ }
397
+ }
398
+ /**
399
+ * Sign in with email and password
400
+ */
401
+ async signInWithPassword(request) {
402
+ try {
403
+ const response = await this.http.post("/api/auth/sessions", request);
404
+ if (!isHostedAuthEnvironment()) {
405
+ const session = {
406
+ accessToken: response.accessToken,
407
+ user: response.user
408
+ };
409
+ this.tokenManager.saveSession(session);
410
+ this.http.setAuthToken(response.accessToken);
411
+ if (response.csrfToken) {
412
+ setCsrfToken(response.csrfToken);
413
+ }
414
+ }
415
+ return {
416
+ data: response,
417
+ error: null
418
+ };
419
+ } catch (error) {
420
+ if (error instanceof InsForgeError) {
421
+ return { data: null, error };
422
+ }
423
+ return {
424
+ data: null,
425
+ error: new InsForgeError(
426
+ "An unexpected error occurred during sign in",
427
+ 500,
428
+ "UNEXPECTED_ERROR"
429
+ )
430
+ };
431
+ }
432
+ }
433
+ /**
434
+ * Sign in with OAuth provider
435
+ */
436
+ async signInWithOAuth(options) {
437
+ try {
438
+ const { provider, redirectTo, skipBrowserRedirect } = options;
439
+ const params = redirectTo ? { redirect_uri: redirectTo } : void 0;
440
+ const endpoint = `/api/auth/oauth/${provider}`;
441
+ const response = await this.http.get(endpoint, { params });
442
+ if (typeof window !== "undefined" && !skipBrowserRedirect) {
443
+ window.location.href = response.authUrl;
444
+ return { data: {}, error: null };
445
+ }
446
+ return {
447
+ data: {
448
+ url: response.authUrl,
449
+ provider
450
+ },
451
+ error: null
452
+ };
453
+ } catch (error) {
454
+ if (error instanceof InsForgeError) {
455
+ return { data: {}, error };
456
+ }
457
+ return {
458
+ data: {},
459
+ error: new InsForgeError(
460
+ "An unexpected error occurred during OAuth initialization",
461
+ 500,
462
+ "UNEXPECTED_ERROR"
463
+ )
464
+ };
465
+ }
466
+ }
467
+ /**
468
+ * Sign out the current user
469
+ */
470
+ async signOut() {
471
+ try {
472
+ try {
473
+ await this.http.post("/api/auth/logout", void 0, { credentials: "include" });
474
+ } catch {
475
+ }
476
+ this.tokenManager.clearSession();
477
+ this.http.setAuthToken(null);
478
+ clearCsrfToken();
479
+ return { error: null };
480
+ } catch (error) {
481
+ return {
482
+ error: new InsForgeError(
483
+ "Failed to sign out",
484
+ 500,
485
+ "SIGNOUT_ERROR"
486
+ )
487
+ };
488
+ }
489
+ }
490
+ /**
491
+ * Get all public authentication configuration (OAuth + Email)
492
+ * Returns both OAuth providers and email authentication settings in one request
493
+ * This is a public endpoint that doesn't require authentication
494
+ *
495
+ * @returns Complete public authentication configuration including OAuth providers and email auth settings
496
+ *
497
+ * @example
498
+ * ```ts
499
+ * const { data, error } = await insforge.auth.getPublicAuthConfig();
500
+ * if (data) {
501
+ * console.log(`OAuth providers: ${data.oauth.data.length}`);
502
+ * console.log(`Password min length: ${data.email.passwordMinLength}`);
503
+ * }
504
+ * ```
505
+ */
506
+ async getPublicAuthConfig() {
507
+ try {
508
+ const response = await this.http.get("/api/auth/public-config");
509
+ return {
510
+ data: response,
511
+ error: null
512
+ };
513
+ } catch (error) {
514
+ if (error instanceof InsForgeError) {
515
+ return { data: null, error };
516
+ }
517
+ return {
518
+ data: null,
519
+ error: new InsForgeError(
520
+ "An unexpected error occurred while fetching public authentication configuration",
521
+ 500,
522
+ "UNEXPECTED_ERROR"
523
+ )
524
+ };
525
+ }
526
+ }
527
+ /**
528
+ * Get the current user with full profile information
529
+ * Returns both auth info (id, email, role) and profile data (dynamic fields from users table)
530
+ */
531
+ async getCurrentUser() {
532
+ try {
533
+ const user = this.tokenManager.getUser();
534
+ if (user) {
535
+ return { data: { user }, error: null };
536
+ }
537
+ const accessToken = this.tokenManager.getAccessToken();
538
+ if (!accessToken) {
539
+ return { data: null, error: null };
540
+ }
541
+ this.http.setAuthToken(accessToken);
542
+ const authResponse = await this.http.get("/api/auth/sessions/current");
543
+ return {
544
+ data: {
545
+ user: authResponse.user
546
+ },
547
+ error: null
548
+ };
549
+ } catch (error) {
550
+ if (error instanceof InsForgeError && error.statusCode === 401) {
551
+ await this.signOut();
552
+ return { data: null, error: null };
553
+ }
554
+ if (error instanceof InsForgeError) {
555
+ return { data: null, error };
556
+ }
557
+ return {
558
+ data: null,
559
+ error: new InsForgeError(
560
+ "An unexpected error occurred while fetching user",
561
+ 500,
562
+ "UNEXPECTED_ERROR"
563
+ )
564
+ };
565
+ }
566
+ }
567
+ /**
568
+ * Get any user's profile by ID
569
+ * Returns profile information from the users table
570
+ */
571
+ async getProfile(userId) {
572
+ try {
573
+ const response = await this.http.get(`/api/auth/profiles/${userId}`);
574
+ return {
575
+ data: response,
576
+ error: null
577
+ };
578
+ } catch (error) {
579
+ if (error instanceof InsForgeError) {
580
+ return { data: null, error };
581
+ }
582
+ return {
583
+ data: null,
584
+ error: new InsForgeError(
585
+ "An unexpected error occurred while fetching user profile",
586
+ 500,
587
+ "UNEXPECTED_ERROR"
588
+ )
589
+ };
590
+ }
591
+ }
592
+ /**
593
+ * Get the current session (only session data, no API call)
594
+ * Returns the stored JWT token and basic user info from local storage
595
+ */
596
+ async getCurrentSession() {
597
+ try {
598
+ const session = this.tokenManager.getSession();
599
+ if (session) {
600
+ this.http.setAuthToken(session.accessToken);
601
+ return { data: { session }, error: null };
602
+ }
603
+ if (typeof window !== "undefined") {
604
+ try {
605
+ const csrfToken = getCsrfToken();
606
+ const response = await this.http.post(
607
+ "/api/auth/refresh",
608
+ void 0,
609
+ {
610
+ headers: csrfToken ? { "X-CSRF-Token": csrfToken } : {},
611
+ credentials: "include"
612
+ }
613
+ );
614
+ if (response.accessToken) {
615
+ this.tokenManager.setMemoryMode();
616
+ this.tokenManager.setAccessToken(response.accessToken);
617
+ this.http.setAuthToken(response.accessToken);
618
+ if (response.user) {
619
+ this.tokenManager.setUser(response.user);
620
+ }
621
+ if (response.csrfToken) {
622
+ setCsrfToken(response.csrfToken);
623
+ }
624
+ return {
625
+ data: { session: this.tokenManager.getSession() },
626
+ error: null
627
+ };
628
+ }
629
+ } catch (error) {
630
+ if (error instanceof InsForgeError) {
631
+ if (error.statusCode === 404) {
632
+ this.tokenManager.setStorageMode();
633
+ const session2 = this.tokenManager.getSession();
634
+ if (session2) {
635
+ return { data: { session: session2 }, error: null };
636
+ }
637
+ return { data: { session: null }, error: null };
638
+ }
639
+ return { data: { session: null }, error };
640
+ }
641
+ }
642
+ }
643
+ return { data: { session: null }, error: null };
644
+ } catch (error) {
645
+ if (error instanceof InsForgeError) {
646
+ return { data: { session: null }, error };
647
+ }
648
+ return {
649
+ data: { session: null },
650
+ error: new InsForgeError(
651
+ "An unexpected error occurred while getting session",
652
+ 500,
653
+ "UNEXPECTED_ERROR"
654
+ )
655
+ };
656
+ }
657
+ }
658
+ /**
659
+ * Set/Update the current user's profile
660
+ * Updates profile information in the users table (supports any dynamic fields)
661
+ * Requires authentication
662
+ */
663
+ async setProfile(profile) {
664
+ try {
665
+ const response = await this.http.patch(
666
+ "/api/auth/profiles/current",
667
+ { profile }
668
+ );
669
+ return {
670
+ data: response,
671
+ error: null
672
+ };
673
+ } catch (error) {
674
+ if (error instanceof InsForgeError) {
675
+ return { data: null, error };
676
+ }
677
+ return {
678
+ data: null,
679
+ error: new InsForgeError(
680
+ "An unexpected error occurred while updating user profile",
681
+ 500,
682
+ "UNEXPECTED_ERROR"
683
+ )
684
+ };
685
+ }
686
+ }
687
+ /**
688
+ * Send email verification (code or link based on config)
689
+ *
690
+ * Send email verification using the method configured in auth settings (verifyEmailMethod).
691
+ * When method is 'code', sends a 6-digit numeric code. When method is 'link', sends a magic link.
692
+ * Prevents user enumeration by returning success even if email doesn't exist.
693
+ */
694
+ async sendVerificationEmail(request) {
695
+ try {
696
+ const response = await this.http.post(
697
+ "/api/auth/email/send-verification",
698
+ request
699
+ );
700
+ return {
701
+ data: response,
702
+ error: null
703
+ };
704
+ } catch (error) {
705
+ if (error instanceof InsForgeError) {
706
+ return { data: null, error };
707
+ }
708
+ return {
709
+ data: null,
710
+ error: new InsForgeError(
711
+ "An unexpected error occurred while sending verification code",
712
+ 500,
713
+ "UNEXPECTED_ERROR"
714
+ )
715
+ };
716
+ }
717
+ }
718
+ /**
719
+ * Send password reset (code or link based on config)
720
+ *
721
+ * Send password reset email using the method configured in auth settings (resetPasswordMethod).
722
+ * When method is 'code', sends a 6-digit numeric code for two-step flow.
723
+ * When method is 'link', sends a magic link.
724
+ * Prevents user enumeration by returning success even if email doesn't exist.
725
+ */
726
+ async sendResetPasswordEmail(request) {
727
+ try {
728
+ const response = await this.http.post(
729
+ "/api/auth/email/send-reset-password",
730
+ request
731
+ );
732
+ return {
733
+ data: response,
734
+ error: null
735
+ };
736
+ } catch (error) {
737
+ if (error instanceof InsForgeError) {
738
+ return { data: null, error };
739
+ }
740
+ return {
741
+ data: null,
742
+ error: new InsForgeError(
743
+ "An unexpected error occurred while sending password reset code",
744
+ 500,
745
+ "UNEXPECTED_ERROR"
746
+ )
747
+ };
748
+ }
749
+ }
750
+ /**
751
+ * Exchange reset password code for reset token
752
+ *
753
+ * Step 1 of two-step password reset flow (only used when resetPasswordMethod is 'code'):
754
+ * 1. Verify the 6-digit code sent to user's email
755
+ * 2. Return a reset token that can be used to actually reset the password
756
+ *
757
+ * This endpoint is not used when resetPasswordMethod is 'link' (magic link flow is direct).
758
+ */
759
+ async exchangeResetPasswordToken(request) {
760
+ try {
761
+ const response = await this.http.post(
762
+ "/api/auth/email/exchange-reset-password-token",
763
+ request
764
+ );
765
+ return {
766
+ data: response,
767
+ error: null
768
+ };
769
+ } catch (error) {
770
+ if (error instanceof InsForgeError) {
771
+ return { data: null, error };
772
+ }
773
+ return {
774
+ data: null,
775
+ error: new InsForgeError(
776
+ "An unexpected error occurred while verifying reset code",
777
+ 500,
778
+ "UNEXPECTED_ERROR"
779
+ )
780
+ };
781
+ }
782
+ }
783
+ /**
784
+ * Reset password with token
785
+ *
786
+ * Reset user password with a token. The token can be:
787
+ * - Magic link token (64-character hex token from send-reset-password when method is 'link')
788
+ * - Reset token (from exchange-reset-password-token after code verification when method is 'code')
789
+ *
790
+ * Both token types use RESET_PASSWORD purpose and are verified the same way.
791
+ *
792
+ * Flow summary:
793
+ * - Code method: send-reset-password → exchange-reset-password-token → reset-password (with resetToken)
794
+ * - Link method: send-reset-password → reset-password (with link token directly)
795
+ */
796
+ async resetPassword(request) {
797
+ try {
798
+ const response = await this.http.post(
799
+ "/api/auth/email/reset-password",
800
+ request
801
+ );
802
+ return {
803
+ data: response,
804
+ error: null
805
+ };
806
+ } catch (error) {
807
+ if (error instanceof InsForgeError) {
808
+ return { data: null, error };
809
+ }
810
+ return {
811
+ data: null,
812
+ error: new InsForgeError(
813
+ "An unexpected error occurred while resetting password",
814
+ 500,
815
+ "UNEXPECTED_ERROR"
816
+ )
817
+ };
818
+ }
819
+ }
820
+ /**
821
+ * Verify email with code or link
822
+ *
823
+ * Verify email address using the method configured in auth settings (verifyEmailMethod):
824
+ * - Code verification: Provide both `email` and `otp` (6-digit numeric code)
825
+ * - Link verification: Provide only `otp` (64-character hex token from magic link)
826
+ *
827
+ * Successfully verified users will receive a session token.
828
+ *
829
+ * The email verification link sent to users always points to the backend API endpoint.
830
+ * If `verifyEmailRedirectTo` is configured, the backend will redirect to that URL after successful verification.
831
+ * Otherwise, a default success page is displayed.
832
+ */
833
+ async verifyEmail(request) {
834
+ try {
835
+ const response = await this.http.post(
836
+ "/api/auth/email/verify",
837
+ request
838
+ );
839
+ if (!isHostedAuthEnvironment()) {
840
+ const session = {
841
+ accessToken: response.accessToken,
842
+ user: response.user
843
+ };
844
+ this.tokenManager.saveSession(session);
845
+ this.http.setAuthToken(response.accessToken);
846
+ if (response.csrfToken) {
847
+ setCsrfToken(response.csrfToken);
848
+ }
849
+ }
850
+ return {
851
+ data: response,
852
+ error: null
853
+ };
854
+ } catch (error) {
855
+ if (error instanceof InsForgeError) {
856
+ return { data: null, error };
857
+ }
858
+ return {
859
+ data: null,
860
+ error: new InsForgeError(
861
+ "An unexpected error occurred while verifying email",
862
+ 500,
863
+ "UNEXPECTED_ERROR"
864
+ )
865
+ };
866
+ }
867
+ }
868
+ };
869
+
870
+ // src/modules/database-postgrest.ts
871
+ import { PostgrestClient } from "@supabase/postgrest-js";
872
+ function createInsForgePostgrestFetch(httpClient, tokenManager) {
873
+ return async (input, init) => {
874
+ const url = typeof input === "string" ? input : input.toString();
875
+ const urlObj = new URL(url);
876
+ const tableName = urlObj.pathname.slice(1);
877
+ const insforgeUrl = `${httpClient.baseUrl}/api/database/records/${tableName}${urlObj.search}`;
878
+ const token = tokenManager.getAccessToken();
879
+ const httpHeaders = httpClient.getHeaders();
880
+ const authToken = token || httpHeaders["Authorization"]?.replace("Bearer ", "");
881
+ const headers = new Headers(init?.headers);
882
+ if (authToken && !headers.has("Authorization")) {
883
+ headers.set("Authorization", `Bearer ${authToken}`);
884
+ }
885
+ const response = await fetch(insforgeUrl, {
886
+ ...init,
887
+ headers
888
+ });
889
+ return response;
890
+ };
891
+ }
892
+ var Database = class {
893
+ constructor(httpClient, tokenManager) {
894
+ this.postgrest = new PostgrestClient("http://dummy", {
895
+ fetch: createInsForgePostgrestFetch(httpClient, tokenManager),
896
+ headers: {}
897
+ });
898
+ }
899
+ /**
900
+ * Create a query builder for a table
901
+ *
902
+ * @example
903
+ * // Basic query
904
+ * const { data, error } = await client.database
905
+ * .from('posts')
906
+ * .select('*')
907
+ * .eq('user_id', userId);
908
+ *
909
+ * // With count (Supabase style!)
910
+ * const { data, error, count } = await client.database
911
+ * .from('posts')
912
+ * .select('*', { count: 'exact' })
913
+ * .range(0, 9);
914
+ *
915
+ * // Just get count, no data
916
+ * const { count } = await client.database
917
+ * .from('posts')
918
+ * .select('*', { count: 'exact', head: true });
919
+ *
920
+ * // Complex queries with OR
921
+ * const { data } = await client.database
922
+ * .from('posts')
923
+ * .select('*, users!inner(*)')
924
+ * .or('status.eq.active,status.eq.pending');
925
+ *
926
+ * // All features work:
927
+ * - Nested selects
928
+ * - Foreign key expansion
929
+ * - OR/AND/NOT conditions
930
+ * - Count with head
931
+ * - Range pagination
932
+ * - Upserts
933
+ */
934
+ from(table) {
935
+ return this.postgrest.from(table);
936
+ }
937
+ };
938
+
939
+ // src/modules/storage.ts
940
+ var StorageBucket = class {
941
+ constructor(bucketName, http) {
942
+ this.bucketName = bucketName;
943
+ this.http = http;
944
+ }
945
+ /**
946
+ * Upload a file with a specific key
947
+ * Uses the upload strategy from backend (direct or presigned)
948
+ * @param path - The object key/path
949
+ * @param file - File or Blob to upload
950
+ */
951
+ async upload(path, file) {
952
+ try {
953
+ const strategyResponse = await this.http.post(
954
+ `/api/storage/buckets/${this.bucketName}/upload-strategy`,
955
+ {
956
+ filename: path,
957
+ contentType: file.type || "application/octet-stream",
958
+ size: file.size
959
+ }
960
+ );
961
+ if (strategyResponse.method === "presigned") {
962
+ return await this.uploadWithPresignedUrl(strategyResponse, file);
963
+ }
964
+ if (strategyResponse.method === "direct") {
965
+ const formData = new FormData();
966
+ formData.append("file", file);
967
+ const response = await this.http.request(
968
+ "PUT",
969
+ `/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(path)}`,
970
+ {
971
+ body: formData,
972
+ headers: {
973
+ // Don't set Content-Type, let browser set multipart boundary
974
+ }
975
+ }
976
+ );
977
+ return { data: response, error: null };
978
+ }
979
+ throw new InsForgeError(
980
+ `Unsupported upload method: ${strategyResponse.method}`,
981
+ 500,
982
+ "STORAGE_ERROR"
983
+ );
984
+ } catch (error) {
985
+ return {
986
+ data: null,
987
+ error: error instanceof InsForgeError ? error : new InsForgeError(
988
+ "Upload failed",
989
+ 500,
990
+ "STORAGE_ERROR"
991
+ )
992
+ };
993
+ }
994
+ }
995
+ /**
996
+ * Upload a file with auto-generated key
997
+ * Uses the upload strategy from backend (direct or presigned)
998
+ * @param file - File or Blob to upload
999
+ */
1000
+ async uploadAuto(file) {
1001
+ try {
1002
+ const filename = file instanceof File ? file.name : "file";
1003
+ const strategyResponse = await this.http.post(
1004
+ `/api/storage/buckets/${this.bucketName}/upload-strategy`,
1005
+ {
1006
+ filename,
1007
+ contentType: file.type || "application/octet-stream",
1008
+ size: file.size
1009
+ }
1010
+ );
1011
+ if (strategyResponse.method === "presigned") {
1012
+ return await this.uploadWithPresignedUrl(strategyResponse, file);
1013
+ }
1014
+ if (strategyResponse.method === "direct") {
1015
+ const formData = new FormData();
1016
+ formData.append("file", file);
1017
+ const response = await this.http.request(
1018
+ "POST",
1019
+ `/api/storage/buckets/${this.bucketName}/objects`,
1020
+ {
1021
+ body: formData,
1022
+ headers: {
1023
+ // Don't set Content-Type, let browser set multipart boundary
1024
+ }
1025
+ }
1026
+ );
1027
+ return { data: response, error: null };
1028
+ }
1029
+ throw new InsForgeError(
1030
+ `Unsupported upload method: ${strategyResponse.method}`,
1031
+ 500,
1032
+ "STORAGE_ERROR"
1033
+ );
1034
+ } catch (error) {
1035
+ return {
1036
+ data: null,
1037
+ error: error instanceof InsForgeError ? error : new InsForgeError(
1038
+ "Upload failed",
1039
+ 500,
1040
+ "STORAGE_ERROR"
1041
+ )
1042
+ };
1043
+ }
1044
+ }
1045
+ /**
1046
+ * Internal method to handle presigned URL uploads
1047
+ */
1048
+ async uploadWithPresignedUrl(strategy, file) {
1049
+ try {
1050
+ const formData = new FormData();
1051
+ if (strategy.fields) {
1052
+ Object.entries(strategy.fields).forEach(([key, value]) => {
1053
+ formData.append(key, value);
1054
+ });
1055
+ }
1056
+ formData.append("file", file);
1057
+ const uploadResponse = await fetch(strategy.uploadUrl, {
1058
+ method: "POST",
1059
+ body: formData
1060
+ });
1061
+ if (!uploadResponse.ok) {
1062
+ throw new InsForgeError(
1063
+ `Upload to storage failed: ${uploadResponse.statusText}`,
1064
+ uploadResponse.status,
1065
+ "STORAGE_ERROR"
1066
+ );
1067
+ }
1068
+ if (strategy.confirmRequired && strategy.confirmUrl) {
1069
+ const confirmResponse = await this.http.post(
1070
+ strategy.confirmUrl,
1071
+ {
1072
+ size: file.size,
1073
+ contentType: file.type || "application/octet-stream"
1074
+ }
1075
+ );
1076
+ return { data: confirmResponse, error: null };
1077
+ }
1078
+ return {
1079
+ data: {
1080
+ key: strategy.key,
1081
+ bucket: this.bucketName,
1082
+ size: file.size,
1083
+ mimeType: file.type || "application/octet-stream",
1084
+ uploadedAt: (/* @__PURE__ */ new Date()).toISOString(),
1085
+ url: this.getPublicUrl(strategy.key)
1086
+ },
1087
+ error: null
1088
+ };
1089
+ } catch (error) {
1090
+ throw error instanceof InsForgeError ? error : new InsForgeError(
1091
+ "Presigned upload failed",
1092
+ 500,
1093
+ "STORAGE_ERROR"
1094
+ );
1095
+ }
1096
+ }
1097
+ /**
1098
+ * Download a file
1099
+ * Uses the download strategy from backend (direct or presigned)
1100
+ * @param path - The object key/path
1101
+ * Returns the file as a Blob
1102
+ */
1103
+ async download(path) {
1104
+ try {
1105
+ const strategyResponse = await this.http.post(
1106
+ `/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(path)}/download-strategy`,
1107
+ { expiresIn: 3600 }
1108
+ );
1109
+ const downloadUrl = strategyResponse.url;
1110
+ const headers = {};
1111
+ if (strategyResponse.method === "direct") {
1112
+ Object.assign(headers, this.http.getHeaders());
1113
+ }
1114
+ const response = await fetch(downloadUrl, {
1115
+ method: "GET",
1116
+ headers
1117
+ });
1118
+ if (!response.ok) {
1119
+ try {
1120
+ const error = await response.json();
1121
+ throw InsForgeError.fromApiError(error);
1122
+ } catch {
1123
+ throw new InsForgeError(
1124
+ `Download failed: ${response.statusText}`,
1125
+ response.status,
1126
+ "STORAGE_ERROR"
1127
+ );
1128
+ }
1129
+ }
1130
+ const blob = await response.blob();
1131
+ return { data: blob, error: null };
1132
+ } catch (error) {
1133
+ return {
1134
+ data: null,
1135
+ error: error instanceof InsForgeError ? error : new InsForgeError(
1136
+ "Download failed",
1137
+ 500,
1138
+ "STORAGE_ERROR"
1139
+ )
1140
+ };
1141
+ }
1142
+ }
1143
+ /**
1144
+ * Get public URL for a file
1145
+ * @param path - The object key/path
1146
+ */
1147
+ getPublicUrl(path) {
1148
+ return `${this.http.baseUrl}/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(path)}`;
1149
+ }
1150
+ /**
1151
+ * List objects in the bucket
1152
+ * @param prefix - Filter by key prefix
1153
+ * @param search - Search in file names
1154
+ * @param limit - Maximum number of results (default: 100, max: 1000)
1155
+ * @param offset - Number of results to skip
1156
+ */
1157
+ async list(options) {
1158
+ try {
1159
+ const params = {};
1160
+ if (options?.prefix) params.prefix = options.prefix;
1161
+ if (options?.search) params.search = options.search;
1162
+ if (options?.limit) params.limit = options.limit.toString();
1163
+ if (options?.offset) params.offset = options.offset.toString();
1164
+ const response = await this.http.get(
1165
+ `/api/storage/buckets/${this.bucketName}/objects`,
1166
+ { params }
1167
+ );
1168
+ return { data: response, error: null };
1169
+ } catch (error) {
1170
+ return {
1171
+ data: null,
1172
+ error: error instanceof InsForgeError ? error : new InsForgeError(
1173
+ "List failed",
1174
+ 500,
1175
+ "STORAGE_ERROR"
1176
+ )
1177
+ };
1178
+ }
1179
+ }
1180
+ /**
1181
+ * Delete a file
1182
+ * @param path - The object key/path
1183
+ */
1184
+ async remove(path) {
1185
+ try {
1186
+ const response = await this.http.delete(
1187
+ `/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(path)}`
1188
+ );
1189
+ return { data: response, error: null };
1190
+ } catch (error) {
1191
+ return {
1192
+ data: null,
1193
+ error: error instanceof InsForgeError ? error : new InsForgeError(
1194
+ "Delete failed",
1195
+ 500,
1196
+ "STORAGE_ERROR"
1197
+ )
1198
+ };
1199
+ }
1200
+ }
1201
+ };
1202
+ var Storage = class {
1203
+ constructor(http) {
1204
+ this.http = http;
1205
+ }
1206
+ /**
1207
+ * Get a bucket instance for operations
1208
+ * @param bucketName - Name of the bucket
1209
+ */
1210
+ from(bucketName) {
1211
+ return new StorageBucket(bucketName, this.http);
1212
+ }
1213
+ };
1214
+
1215
+ // src/modules/ai.ts
1216
+ var AI = class {
1217
+ constructor(http) {
1218
+ this.http = http;
1219
+ this.chat = new Chat(http);
1220
+ this.images = new Images(http);
1221
+ }
1222
+ };
1223
+ var Chat = class {
1224
+ constructor(http) {
1225
+ this.completions = new ChatCompletions(http);
1226
+ }
1227
+ };
1228
+ var ChatCompletions = class {
1229
+ constructor(http) {
1230
+ this.http = http;
1231
+ }
1232
+ /**
1233
+ * Create a chat completion - OpenAI-like response format
1234
+ *
1235
+ * @example
1236
+ * ```typescript
1237
+ * // Non-streaming
1238
+ * const completion = await client.ai.chat.completions.create({
1239
+ * model: 'gpt-4',
1240
+ * messages: [{ role: 'user', content: 'Hello!' }]
1241
+ * });
1242
+ * console.log(completion.choices[0].message.content);
1243
+ *
1244
+ * // With images
1245
+ * const response = await client.ai.chat.completions.create({
1246
+ * model: 'gpt-4-vision',
1247
+ * messages: [{
1248
+ * role: 'user',
1249
+ * content: 'What is in this image?',
1250
+ * images: [{ url: 'https://example.com/image.jpg' }]
1251
+ * }]
1252
+ * });
1253
+ *
1254
+ * // Streaming - returns async iterable
1255
+ * const stream = await client.ai.chat.completions.create({
1256
+ * model: 'gpt-4',
1257
+ * messages: [{ role: 'user', content: 'Tell me a story' }],
1258
+ * stream: true
1259
+ * });
1260
+ *
1261
+ * for await (const chunk of stream) {
1262
+ * if (chunk.choices[0]?.delta?.content) {
1263
+ * process.stdout.write(chunk.choices[0].delta.content);
1264
+ * }
1265
+ * }
1266
+ * ```
1267
+ */
1268
+ async create(params) {
1269
+ const backendParams = {
1270
+ model: params.model,
1271
+ messages: params.messages,
1272
+ temperature: params.temperature,
1273
+ maxTokens: params.maxTokens,
1274
+ topP: params.topP,
1275
+ stream: params.stream
1276
+ };
1277
+ if (params.stream) {
1278
+ const headers = this.http.getHeaders();
1279
+ headers["Content-Type"] = "application/json";
1280
+ const response2 = await this.http.fetch(
1281
+ `${this.http.baseUrl}/api/ai/chat/completion`,
1282
+ {
1283
+ method: "POST",
1284
+ headers,
1285
+ body: JSON.stringify(backendParams)
1286
+ }
1287
+ );
1288
+ if (!response2.ok) {
1289
+ const error = await response2.json();
1290
+ throw new Error(error.error || "Stream request failed");
1291
+ }
1292
+ return this.parseSSEStream(response2, params.model);
1293
+ }
1294
+ const response = await this.http.post(
1295
+ "/api/ai/chat/completion",
1296
+ backendParams
1297
+ );
1298
+ const content = response.text || "";
1299
+ return {
1300
+ id: `chatcmpl-${Date.now()}`,
1301
+ object: "chat.completion",
1302
+ created: Math.floor(Date.now() / 1e3),
1303
+ model: response.metadata?.model,
1304
+ choices: [
1305
+ {
1306
+ index: 0,
1307
+ message: {
1308
+ role: "assistant",
1309
+ content
1310
+ },
1311
+ finish_reason: "stop"
1312
+ }
1313
+ ],
1314
+ usage: response.metadata?.usage || {
1315
+ prompt_tokens: 0,
1316
+ completion_tokens: 0,
1317
+ total_tokens: 0
1318
+ }
1319
+ };
1320
+ }
1321
+ /**
1322
+ * Parse SSE stream into async iterable of OpenAI-like chunks
1323
+ */
1324
+ async *parseSSEStream(response, model) {
1325
+ const reader = response.body.getReader();
1326
+ const decoder = new TextDecoder();
1327
+ let buffer = "";
1328
+ try {
1329
+ while (true) {
1330
+ const { done, value } = await reader.read();
1331
+ if (done) break;
1332
+ buffer += decoder.decode(value, { stream: true });
1333
+ const lines = buffer.split("\n");
1334
+ buffer = lines.pop() || "";
1335
+ for (const line of lines) {
1336
+ if (line.startsWith("data: ")) {
1337
+ const dataStr = line.slice(6).trim();
1338
+ if (dataStr) {
1339
+ try {
1340
+ const data = JSON.parse(dataStr);
1341
+ if (data.chunk || data.content) {
1342
+ yield {
1343
+ id: `chatcmpl-${Date.now()}`,
1344
+ object: "chat.completion.chunk",
1345
+ created: Math.floor(Date.now() / 1e3),
1346
+ model,
1347
+ choices: [
1348
+ {
1349
+ index: 0,
1350
+ delta: {
1351
+ content: data.chunk || data.content
1352
+ },
1353
+ finish_reason: data.done ? "stop" : null
1354
+ }
1355
+ ]
1356
+ };
1357
+ }
1358
+ if (data.done) {
1359
+ reader.releaseLock();
1360
+ return;
1361
+ }
1362
+ } catch (e) {
1363
+ console.warn("Failed to parse SSE data:", dataStr);
1364
+ }
1365
+ }
1366
+ }
1367
+ }
1368
+ }
1369
+ } finally {
1370
+ reader.releaseLock();
1371
+ }
1372
+ }
1373
+ };
1374
+ var Images = class {
1375
+ constructor(http) {
1376
+ this.http = http;
1377
+ }
1378
+ /**
1379
+ * Generate images - OpenAI-like response format
1380
+ *
1381
+ * @example
1382
+ * ```typescript
1383
+ * // Text-to-image
1384
+ * const response = await client.ai.images.generate({
1385
+ * model: 'dall-e-3',
1386
+ * prompt: 'A sunset over mountains',
1387
+ * });
1388
+ * console.log(response.images[0].url);
1389
+ *
1390
+ * // Image-to-image (with input images)
1391
+ * const response = await client.ai.images.generate({
1392
+ * model: 'stable-diffusion-xl',
1393
+ * prompt: 'Transform this into a watercolor painting',
1394
+ * images: [
1395
+ * { url: 'https://example.com/input.jpg' },
1396
+ * // or base64-encoded Data URI:
1397
+ * { url: 'data:image/jpeg;base64,/9j/4AAQ...' }
1398
+ * ]
1399
+ * });
1400
+ * ```
1401
+ */
1402
+ async generate(params) {
1403
+ const response = await this.http.post(
1404
+ "/api/ai/image/generation",
1405
+ params
1406
+ );
1407
+ let data = [];
1408
+ if (response.images && response.images.length > 0) {
1409
+ data = response.images.map((img) => ({
1410
+ b64_json: img.imageUrl.replace(/^data:image\/\w+;base64,/, ""),
1411
+ content: response.text
1412
+ }));
1413
+ } else if (response.text) {
1414
+ data = [{ content: response.text }];
1415
+ }
1416
+ return {
1417
+ created: Math.floor(Date.now() / 1e3),
1418
+ data,
1419
+ ...response.metadata?.usage && {
1420
+ usage: {
1421
+ total_tokens: response.metadata.usage.totalTokens || 0,
1422
+ input_tokens: response.metadata.usage.promptTokens || 0,
1423
+ output_tokens: response.metadata.usage.completionTokens || 0
1424
+ }
1425
+ }
1426
+ };
1427
+ }
1428
+ };
1429
+
1430
+ // src/modules/functions.ts
1431
+ var Functions = class {
1432
+ constructor(http) {
1433
+ this.http = http;
1434
+ }
1435
+ /**
1436
+ * Invokes an Edge Function
1437
+ * @param slug The function slug to invoke
1438
+ * @param options Request options
1439
+ */
1440
+ async invoke(slug, options = {}) {
1441
+ try {
1442
+ const { method = "POST", body, headers = {} } = options;
1443
+ const path = `/functions/${slug}`;
1444
+ const data = await this.http.request(
1445
+ method,
1446
+ path,
1447
+ { body, headers }
1448
+ );
1449
+ return { data, error: null };
1450
+ } catch (error) {
1451
+ return {
1452
+ data: null,
1453
+ error
1454
+ // Pass through the full error object with all properties
1455
+ };
1456
+ }
1457
+ }
1458
+ };
1459
+
1460
+ // src/modules/realtime.ts
1461
+ import { io } from "socket.io-client";
1462
+ var CONNECT_TIMEOUT = 1e4;
1463
+ var Realtime = class {
1464
+ constructor(baseUrl, tokenManager) {
1465
+ this.socket = null;
1466
+ this.connectPromise = null;
1467
+ this.subscribedChannels = /* @__PURE__ */ new Set();
1468
+ this.eventListeners = /* @__PURE__ */ new Map();
1469
+ this.baseUrl = baseUrl;
1470
+ this.tokenManager = tokenManager;
1471
+ }
1472
+ notifyListeners(event, payload) {
1473
+ const listeners = this.eventListeners.get(event);
1474
+ if (!listeners) return;
1475
+ for (const cb of listeners) {
1476
+ try {
1477
+ cb(payload);
1478
+ } catch (err) {
1479
+ console.error(`Error in ${event} callback:`, err);
1480
+ }
1481
+ }
1482
+ }
1483
+ /**
1484
+ * Connect to the realtime server
1485
+ * @returns Promise that resolves when connected
1486
+ */
1487
+ connect() {
1488
+ if (this.socket?.connected) {
1489
+ return Promise.resolve();
1490
+ }
1491
+ if (this.connectPromise) {
1492
+ return this.connectPromise;
1493
+ }
1494
+ this.connectPromise = new Promise((resolve, reject) => {
1495
+ const session = this.tokenManager.getSession();
1496
+ const token = session?.accessToken;
1497
+ this.socket = io(this.baseUrl, {
1498
+ transports: ["websocket"],
1499
+ auth: token ? { token } : void 0
1500
+ });
1501
+ let initialConnection = true;
1502
+ let timeoutId = null;
1503
+ const cleanup = () => {
1504
+ if (timeoutId) {
1505
+ clearTimeout(timeoutId);
1506
+ timeoutId = null;
1507
+ }
1508
+ };
1509
+ timeoutId = setTimeout(() => {
1510
+ if (initialConnection) {
1511
+ initialConnection = false;
1512
+ this.connectPromise = null;
1513
+ this.socket?.disconnect();
1514
+ this.socket = null;
1515
+ reject(new Error(`Connection timeout after ${CONNECT_TIMEOUT}ms`));
1516
+ }
1517
+ }, CONNECT_TIMEOUT);
1518
+ this.socket.on("connect", () => {
1519
+ cleanup();
1520
+ for (const channel of this.subscribedChannels) {
1521
+ this.socket.emit("realtime:subscribe", { channel });
1522
+ }
1523
+ this.notifyListeners("connect");
1524
+ if (initialConnection) {
1525
+ initialConnection = false;
1526
+ this.connectPromise = null;
1527
+ resolve();
1528
+ }
1529
+ });
1530
+ this.socket.on("connect_error", (error) => {
1531
+ cleanup();
1532
+ this.notifyListeners("connect_error", error);
1533
+ if (initialConnection) {
1534
+ initialConnection = false;
1535
+ this.connectPromise = null;
1536
+ reject(error);
1537
+ }
1538
+ });
1539
+ this.socket.on("disconnect", (reason) => {
1540
+ this.notifyListeners("disconnect", reason);
1541
+ });
1542
+ this.socket.on("realtime:error", (error) => {
1543
+ this.notifyListeners("error", error);
1544
+ });
1545
+ this.socket.onAny((event, message) => {
1546
+ if (event === "realtime:error") return;
1547
+ this.notifyListeners(event, message);
1548
+ });
1549
+ });
1550
+ return this.connectPromise;
1551
+ }
1552
+ /**
1553
+ * Disconnect from the realtime server
1554
+ */
1555
+ disconnect() {
1556
+ if (this.socket) {
1557
+ this.socket.disconnect();
1558
+ this.socket = null;
1559
+ }
1560
+ this.subscribedChannels.clear();
1561
+ }
1562
+ /**
1563
+ * Check if connected to the realtime server
1564
+ */
1565
+ get isConnected() {
1566
+ return this.socket?.connected ?? false;
1567
+ }
1568
+ /**
1569
+ * Get the current connection state
1570
+ */
1571
+ get connectionState() {
1572
+ if (!this.socket) return "disconnected";
1573
+ if (this.socket.connected) return "connected";
1574
+ return "connecting";
1575
+ }
1576
+ /**
1577
+ * Get the socket ID (if connected)
1578
+ */
1579
+ get socketId() {
1580
+ return this.socket?.id;
1581
+ }
1582
+ /**
1583
+ * Subscribe to a channel
1584
+ *
1585
+ * Automatically connects if not already connected.
1586
+ *
1587
+ * @param channel - Channel name (e.g., 'orders:123', 'broadcast')
1588
+ * @returns Promise with the subscription response
1589
+ */
1590
+ async subscribe(channel) {
1591
+ if (this.subscribedChannels.has(channel)) {
1592
+ return { ok: true, channel };
1593
+ }
1594
+ if (!this.socket?.connected) {
1595
+ try {
1596
+ await this.connect();
1597
+ } catch (error) {
1598
+ const message = error instanceof Error ? error.message : "Connection failed";
1599
+ return { ok: false, channel, error: { code: "CONNECTION_FAILED", message } };
1600
+ }
1601
+ }
1602
+ return new Promise((resolve) => {
1603
+ this.socket.emit("realtime:subscribe", { channel }, (response) => {
1604
+ if (response.ok) {
1605
+ this.subscribedChannels.add(channel);
1606
+ }
1607
+ resolve(response);
1608
+ });
1609
+ });
1610
+ }
1611
+ /**
1612
+ * Unsubscribe from a channel (fire-and-forget)
1613
+ *
1614
+ * @param channel - Channel name to unsubscribe from
1615
+ */
1616
+ unsubscribe(channel) {
1617
+ this.subscribedChannels.delete(channel);
1618
+ if (this.socket?.connected) {
1619
+ this.socket.emit("realtime:unsubscribe", { channel });
1620
+ }
1621
+ }
1622
+ /**
1623
+ * Publish a message to a channel
1624
+ *
1625
+ * @param channel - Channel name
1626
+ * @param event - Event name
1627
+ * @param payload - Message payload
1628
+ */
1629
+ async publish(channel, event, payload) {
1630
+ if (!this.socket?.connected) {
1631
+ throw new Error("Not connected to realtime server. Call connect() first.");
1632
+ }
1633
+ this.socket.emit("realtime:publish", { channel, event, payload });
1634
+ }
1635
+ /**
1636
+ * Listen for events
1637
+ *
1638
+ * Reserved event names:
1639
+ * - 'connect' - Fired when connected to the server
1640
+ * - 'connect_error' - Fired when connection fails (payload: Error)
1641
+ * - 'disconnect' - Fired when disconnected (payload: reason string)
1642
+ * - 'error' - Fired when a realtime error occurs (payload: RealtimeErrorPayload)
1643
+ *
1644
+ * All other events receive a `SocketMessage` payload with metadata.
1645
+ *
1646
+ * @param event - Event name to listen for
1647
+ * @param callback - Callback function when event is received
1648
+ */
1649
+ on(event, callback) {
1650
+ if (!this.eventListeners.has(event)) {
1651
+ this.eventListeners.set(event, /* @__PURE__ */ new Set());
1652
+ }
1653
+ this.eventListeners.get(event).add(callback);
1654
+ }
1655
+ /**
1656
+ * Remove a listener for a specific event
1657
+ *
1658
+ * @param event - Event name
1659
+ * @param callback - The callback function to remove
1660
+ */
1661
+ off(event, callback) {
1662
+ const listeners = this.eventListeners.get(event);
1663
+ if (listeners) {
1664
+ listeners.delete(callback);
1665
+ if (listeners.size === 0) {
1666
+ this.eventListeners.delete(event);
1667
+ }
1668
+ }
1669
+ }
1670
+ /**
1671
+ * Listen for an event only once, then automatically remove the listener
1672
+ *
1673
+ * @param event - Event name to listen for
1674
+ * @param callback - Callback function when event is received
1675
+ */
1676
+ once(event, callback) {
1677
+ const wrapper = (payload) => {
1678
+ this.off(event, wrapper);
1679
+ callback(payload);
1680
+ };
1681
+ this.on(event, wrapper);
1682
+ }
1683
+ /**
1684
+ * Get all currently subscribed channels
1685
+ *
1686
+ * @returns Array of channel names
1687
+ */
1688
+ getSubscribedChannels() {
1689
+ return Array.from(this.subscribedChannels);
1690
+ }
1691
+ };
1692
+
1693
+ // src/modules/email.ts
1694
+ var Emails = class {
1695
+ constructor(http) {
1696
+ this.http = http;
1697
+ }
1698
+ /**
1699
+ * Send a custom HTML email
1700
+ * @param options Email options including recipients, subject, and HTML content
1701
+ */
1702
+ async send(options) {
1703
+ try {
1704
+ const data = await this.http.post(
1705
+ "/api/email/send-raw",
1706
+ options
1707
+ );
1708
+ return { data, error: null };
1709
+ } catch (error) {
1710
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
1711
+ return { data: null, error: normalizedError };
1712
+ }
1713
+ }
1714
+ };
1715
+
1716
+ // src/client.ts
1717
+ var InsForgeClient = class {
1718
+ constructor(config = {}) {
1719
+ this.http = new HttpClient(config);
1720
+ this.tokenManager = new TokenManager(config.storage);
1721
+ if (config.edgeFunctionToken) {
1722
+ this.http.setAuthToken(config.edgeFunctionToken);
1723
+ this.tokenManager.saveSession({
1724
+ accessToken: config.edgeFunctionToken,
1725
+ user: {}
1726
+ // Will be populated by getCurrentUser()
1727
+ });
1728
+ }
1729
+ const existingSession = this.tokenManager.getSession();
1730
+ if (existingSession?.accessToken) {
1731
+ this.http.setAuthToken(existingSession.accessToken);
1732
+ }
1733
+ this.auth = new Auth(this.http, this.tokenManager);
1734
+ this.database = new Database(this.http, this.tokenManager);
1735
+ this.storage = new Storage(this.http);
1736
+ this.ai = new AI(this.http);
1737
+ this.functions = new Functions(this.http);
1738
+ this.realtime = new Realtime(this.http.baseUrl, this.tokenManager);
1739
+ this.emails = new Emails(this.http);
1740
+ }
1741
+ /**
1742
+ * Get the underlying HTTP client for custom requests
1743
+ *
1744
+ * @example
1745
+ * ```typescript
1746
+ * const httpClient = client.getHttpClient();
1747
+ * const customData = await httpClient.get('/api/custom-endpoint');
1748
+ * ```
1749
+ */
1750
+ getHttpClient() {
1751
+ return this.http;
1752
+ }
1753
+ /**
1754
+ * Future modules will be added here:
1755
+ * - database: Database operations
1756
+ * - storage: File storage operations
1757
+ * - functions: Serverless functions
1758
+ * - tables: Table management
1759
+ * - metadata: Backend metadata
1760
+ */
1761
+ };
1762
+
1763
+ // src/index.ts
1764
+ function createClient(config) {
1765
+ return new InsForgeClient(config);
1766
+ }
1767
+ var index_default = InsForgeClient;
1768
+ export {
1769
+ AI,
1770
+ Auth,
1771
+ Database,
1772
+ Emails,
1773
+ Functions,
1774
+ HttpClient,
1775
+ InsForgeClient,
1776
+ InsForgeError,
1777
+ Realtime,
1778
+ Storage,
1779
+ StorageBucket,
1780
+ TokenManager,
1781
+ createClient,
1782
+ index_default as default
1783
+ };
1784
+ //# sourceMappingURL=index.mjs.map