@eventmodelers/node-kit 0.0.2

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 (546) hide show
  1. package/README.md +66 -0
  2. package/package.json +36 -0
  3. package/src/cli.js +176 -0
  4. package/templates/.claude/skills/connect/SKILL.md +169 -0
  5. package/templates/.claude/skills/load-slice/SKILL.md +86 -0
  6. package/templates/realtime-agent/node_modules/.package-lock.json +107 -0
  7. package/templates/realtime-agent/node_modules/@supabase/auth-js/LICENSE +21 -0
  8. package/templates/realtime-agent/node_modules/@supabase/auth-js/README.md +190 -0
  9. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthAdminApi.d.ts +4 -0
  10. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthAdminApi.d.ts.map +1 -0
  11. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthAdminApi.js +7 -0
  12. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthAdminApi.js.map +1 -0
  13. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthClient.d.ts +4 -0
  14. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthClient.d.ts.map +1 -0
  15. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthClient.js +7 -0
  16. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/AuthClient.js.map +1 -0
  17. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueAdminApi.d.ts +716 -0
  18. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueAdminApi.d.ts.map +1 -0
  19. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueAdminApi.js +1108 -0
  20. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueAdminApi.js.map +1 -0
  21. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueClient.d.ts +2473 -0
  22. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueClient.d.ts.map +1 -0
  23. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueClient.js +5217 -0
  24. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/GoTrueClient.js.map +1 -0
  25. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/index.d.ts +9 -0
  26. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/index.d.ts.map +1 -0
  27. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/index.js +20 -0
  28. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/index.js.map +1 -0
  29. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/base64url.d.ts +76 -0
  30. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/base64url.d.ts.map +1 -0
  31. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/base64url.js +269 -0
  32. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/base64url.js.map +1 -0
  33. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/constants.d.ts +26 -0
  34. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/constants.d.ts.map +1 -0
  35. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/constants.js +31 -0
  36. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/constants.js.map +1 -0
  37. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/error-codes.d.ts +7 -0
  38. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/error-codes.d.ts.map +1 -0
  39. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/error-codes.js +3 -0
  40. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/error-codes.js.map +1 -0
  41. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/errors.d.ts +258 -0
  42. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/errors.d.ts.map +1 -0
  43. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/errors.js +290 -0
  44. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/errors.js.map +1 -0
  45. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/fetch.d.ts +54 -0
  46. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/fetch.d.ts.map +1 -0
  47. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/fetch.js +200 -0
  48. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/fetch.js.map +1 -0
  49. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/helpers.d.ts +94 -0
  50. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/helpers.d.ts.map +1 -0
  51. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/helpers.js +406 -0
  52. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/helpers.js.map +1 -0
  53. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/local-storage.d.ts +9 -0
  54. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/local-storage.d.ts.map +1 -0
  55. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/local-storage.js +21 -0
  56. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/local-storage.js.map +1 -0
  57. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/locks.d.ts +107 -0
  58. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/locks.d.ts.map +1 -0
  59. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/locks.js +349 -0
  60. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/locks.js.map +1 -0
  61. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/polyfills.d.ts +5 -0
  62. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/polyfills.d.ts.map +1 -0
  63. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/polyfills.js +29 -0
  64. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/polyfills.js.map +1 -0
  65. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/types.d.ts +2498 -0
  66. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/types.d.ts.map +1 -0
  67. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/types.js +23 -0
  68. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/types.js.map +1 -0
  69. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/version.d.ts +2 -0
  70. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/version.d.ts.map +1 -0
  71. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/version.js +11 -0
  72. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/version.js.map +1 -0
  73. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/ethereum.d.ts +96 -0
  74. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/ethereum.d.ts.map +1 -0
  75. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/ethereum.js +66 -0
  76. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/ethereum.js.map +1 -0
  77. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/solana.d.ts +160 -0
  78. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/solana.d.ts.map +1 -0
  79. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/solana.js +4 -0
  80. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/web3/solana.js.map +1 -0
  81. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.d.ts +284 -0
  82. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.d.ts.map +1 -0
  83. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.dom.d.ts +583 -0
  84. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.dom.d.ts.map +1 -0
  85. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.dom.js +4 -0
  86. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.dom.js.map +1 -0
  87. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.errors.d.ts +85 -0
  88. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.errors.d.ts.map +1 -0
  89. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.errors.js +272 -0
  90. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.errors.js.map +1 -0
  91. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.js +707 -0
  92. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/main/lib/webauthn.js.map +1 -0
  93. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthAdminApi.d.ts +4 -0
  94. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthAdminApi.d.ts.map +1 -0
  95. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js +4 -0
  96. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthAdminApi.js.map +1 -0
  97. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthClient.d.ts +4 -0
  98. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthClient.d.ts.map +1 -0
  99. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthClient.js +4 -0
  100. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/AuthClient.js.map +1 -0
  101. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.d.ts +716 -0
  102. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.d.ts.map +1 -0
  103. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js +1105 -0
  104. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js.map +1 -0
  105. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueClient.d.ts +2473 -0
  106. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueClient.d.ts.map +1 -0
  107. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueClient.js +5214 -0
  108. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/GoTrueClient.js.map +1 -0
  109. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/index.d.ts +9 -0
  110. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/index.d.ts.map +1 -0
  111. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/index.js +9 -0
  112. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/index.js.map +1 -0
  113. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/base64url.d.ts +76 -0
  114. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/base64url.d.ts.map +1 -0
  115. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/base64url.js +257 -0
  116. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/base64url.js.map +1 -0
  117. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/constants.d.ts +26 -0
  118. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/constants.d.ts.map +1 -0
  119. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/constants.js +28 -0
  120. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/constants.js.map +1 -0
  121. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/error-codes.d.ts +7 -0
  122. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/error-codes.d.ts.map +1 -0
  123. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/error-codes.js +2 -0
  124. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/error-codes.js.map +1 -0
  125. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/errors.d.ts +258 -0
  126. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/errors.d.ts.map +1 -0
  127. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/errors.js +267 -0
  128. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/errors.js.map +1 -0
  129. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/fetch.d.ts +54 -0
  130. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/fetch.d.ts.map +1 -0
  131. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/fetch.js +190 -0
  132. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/fetch.js.map +1 -0
  133. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/helpers.d.ts +94 -0
  134. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/helpers.d.ts.map +1 -0
  135. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/helpers.js +378 -0
  136. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/helpers.js.map +1 -0
  137. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/local-storage.d.ts +9 -0
  138. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/local-storage.d.ts.map +1 -0
  139. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/local-storage.js +18 -0
  140. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/local-storage.js.map +1 -0
  141. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/locks.d.ts +107 -0
  142. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/locks.d.ts.map +1 -0
  143. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/locks.js +341 -0
  144. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/locks.js.map +1 -0
  145. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/polyfills.d.ts +5 -0
  146. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/polyfills.d.ts.map +1 -0
  147. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/polyfills.js +26 -0
  148. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/polyfills.js.map +1 -0
  149. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/types.d.ts +2498 -0
  150. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/types.d.ts.map +1 -0
  151. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/types.js +20 -0
  152. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/types.js.map +1 -0
  153. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/version.d.ts +2 -0
  154. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/version.d.ts.map +1 -0
  155. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/version.js +8 -0
  156. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/version.js.map +1 -0
  157. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.d.ts +96 -0
  158. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.d.ts.map +1 -0
  159. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js +60 -0
  160. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js.map +1 -0
  161. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/solana.d.ts +160 -0
  162. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/solana.d.ts.map +1 -0
  163. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/solana.js +3 -0
  164. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/web3/solana.js.map +1 -0
  165. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.d.ts +284 -0
  166. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.d.ts.map +1 -0
  167. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.dom.d.ts +583 -0
  168. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.dom.d.ts.map +1 -0
  169. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.dom.js +3 -0
  170. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.dom.js.map +1 -0
  171. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.d.ts +85 -0
  172. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.d.ts.map +1 -0
  173. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js +264 -0
  174. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js.map +1 -0
  175. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.js +689 -0
  176. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/module/lib/webauthn.js.map +1 -0
  177. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/tsconfig.module.tsbuildinfo +1 -0
  178. package/templates/realtime-agent/node_modules/@supabase/auth-js/dist/tsconfig.tsbuildinfo +1 -0
  179. package/templates/realtime-agent/node_modules/@supabase/auth-js/package.json +44 -0
  180. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/AuthAdminApi.ts +5 -0
  181. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/AuthClient.ts +5 -0
  182. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/GoTrueAdminApi.ts +1267 -0
  183. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/GoTrueClient.ts +6360 -0
  184. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/index.ts +13 -0
  185. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/base64url.ts +308 -0
  186. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/constants.ts +34 -0
  187. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/error-codes.ts +90 -0
  188. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/errors.ts +359 -0
  189. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/fetch.ts +320 -0
  190. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/helpers.ts +476 -0
  191. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/local-storage.ts +21 -0
  192. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/locks.ts +420 -0
  193. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/polyfills.ts +23 -0
  194. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/types.ts +2917 -0
  195. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/version.ts +7 -0
  196. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/web3/ethereum.ts +184 -0
  197. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/web3/solana.ts +186 -0
  198. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/webauthn.dom.ts +636 -0
  199. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/webauthn.errors.ts +329 -0
  200. package/templates/realtime-agent/node_modules/@supabase/auth-js/src/lib/webauthn.ts +946 -0
  201. package/templates/realtime-agent/node_modules/@supabase/functions-js/README.md +134 -0
  202. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/FunctionsClient.d.ts +177 -0
  203. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/FunctionsClient.d.ts.map +1 -0
  204. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/FunctionsClient.js +309 -0
  205. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/FunctionsClient.js.map +1 -0
  206. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/helper.d.ts +3 -0
  207. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/helper.d.ts.map +1 -0
  208. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/helper.js +11 -0
  209. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/helper.js.map +1 -0
  210. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/index.d.ts +3 -0
  211. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/index.d.ts.map +1 -0
  212. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/index.js +12 -0
  213. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/index.js.map +1 -0
  214. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/types.d.ts +122 -0
  215. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/types.d.ts.map +1 -0
  216. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/types.js +98 -0
  217. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/types.js.map +1 -0
  218. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/version.d.ts +2 -0
  219. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/version.d.ts.map +1 -0
  220. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/version.js +11 -0
  221. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/main/version.js.map +1 -0
  222. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/FunctionsClient.d.ts +177 -0
  223. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/FunctionsClient.d.ts.map +1 -0
  224. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/FunctionsClient.js +305 -0
  225. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/FunctionsClient.js.map +1 -0
  226. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/helper.d.ts +3 -0
  227. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/helper.d.ts.map +1 -0
  228. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/helper.js +7 -0
  229. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/helper.js.map +1 -0
  230. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/index.d.ts +3 -0
  231. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/index.d.ts.map +1 -0
  232. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/index.js +3 -0
  233. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/index.js.map +1 -0
  234. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/types.d.ts +122 -0
  235. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/types.d.ts.map +1 -0
  236. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/types.js +91 -0
  237. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/types.js.map +1 -0
  238. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/version.d.ts +2 -0
  239. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/version.d.ts.map +1 -0
  240. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/version.js +8 -0
  241. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/module/version.js.map +1 -0
  242. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/tsconfig.module.tsbuildinfo +1 -0
  243. package/templates/realtime-agent/node_modules/@supabase/functions-js/dist/tsconfig.tsbuildinfo +1 -0
  244. package/templates/realtime-agent/node_modules/@supabase/functions-js/package.json +52 -0
  245. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/FunctionsClient.ts +335 -0
  246. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/edge-runtime.d.ts +214 -0
  247. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/helper.ts +8 -0
  248. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/index.ts +10 -0
  249. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/types.ts +146 -0
  250. package/templates/realtime-agent/node_modules/@supabase/functions-js/src/version.ts +7 -0
  251. package/templates/realtime-agent/node_modules/@supabase/phoenix/LICENSE.md +22 -0
  252. package/templates/realtime-agent/node_modules/@supabase/phoenix/README.md +121 -0
  253. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/ajax.js +116 -0
  254. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/channel.js +331 -0
  255. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/constants.js +35 -0
  256. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/index.js +212 -0
  257. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/longpoll.js +192 -0
  258. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/presence.js +208 -0
  259. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/push.js +134 -0
  260. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/serializer.js +133 -0
  261. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/socket.js +756 -0
  262. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/timer.js +48 -0
  263. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/types.js +184 -0
  264. package/templates/realtime-agent/node_modules/@supabase/phoenix/assets/js/phoenix/utils.js +16 -0
  265. package/templates/realtime-agent/node_modules/@supabase/phoenix/package.json +58 -0
  266. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/favicon.ico +0 -0
  267. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix-orange.png +0 -0
  268. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.cjs.js +1825 -0
  269. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.cjs.js.map +7 -0
  270. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.js +1847 -0
  271. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.min.js +2 -0
  272. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.mjs +1802 -0
  273. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.mjs.map +7 -0
  274. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/phoenix.png +0 -0
  275. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/ajax.d.ts +10 -0
  276. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/ajax.d.ts.map +1 -0
  277. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/channel.d.ts +167 -0
  278. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/channel.d.ts.map +1 -0
  279. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/constants.d.ts +36 -0
  280. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/constants.d.ts.map +1 -0
  281. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/index.d.ts +10 -0
  282. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/index.d.ts.map +1 -0
  283. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/longpoll.d.ts +29 -0
  284. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/longpoll.d.ts.map +1 -0
  285. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/presence.d.ts +107 -0
  286. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/presence.d.ts.map +1 -0
  287. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/push.d.ts +70 -0
  288. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/push.d.ts.map +1 -0
  289. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/serializer.d.ts +74 -0
  290. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/serializer.d.ts.map +1 -0
  291. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/socket.d.ts +291 -0
  292. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/socket.d.ts.map +1 -0
  293. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/timer.d.ts +36 -0
  294. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/timer.d.ts.map +1 -0
  295. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/types.d.ts +280 -0
  296. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/types.d.ts.map +1 -0
  297. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/utils.d.ts +2 -0
  298. package/templates/realtime-agent/node_modules/@supabase/phoenix/priv/static/types/utils.d.ts.map +1 -0
  299. package/templates/realtime-agent/node_modules/@supabase/phoenix/tsconfig.json +20 -0
  300. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/README.md +213 -0
  301. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.cjs +5025 -0
  302. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.cjs.map +1 -0
  303. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.d.cts +3828 -0
  304. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.d.cts.map +1 -0
  305. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.d.mts +3828 -0
  306. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.d.mts.map +1 -0
  307. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.mjs +5017 -0
  308. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/dist/index.mjs.map +1 -0
  309. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/package.json +69 -0
  310. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestBuilder.ts +688 -0
  311. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestClient.ts +447 -0
  312. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestError.ts +41 -0
  313. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestFilterBuilder.ts +2137 -0
  314. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestQueryBuilder.ts +1703 -0
  315. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/PostgrestTransformBuilder.ts +981 -0
  316. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/constants.ts +2 -0
  317. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/index.ts +34 -0
  318. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/select-query-parser/parser.ts +476 -0
  319. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/select-query-parser/result.ts +550 -0
  320. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/select-query-parser/types.ts +129 -0
  321. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/select-query-parser/utils.ts +704 -0
  322. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/types/common/common.ts +83 -0
  323. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/types/common/rpc.ts +148 -0
  324. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/types/feature-flags.ts +17 -0
  325. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/types/types.ts +161 -0
  326. package/templates/realtime-agent/node_modules/@supabase/postgrest-js/src/version.ts +7 -0
  327. package/templates/realtime-agent/node_modules/@supabase/realtime-js/README.md +326 -0
  328. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeChannel.d.ts +442 -0
  329. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeChannel.d.ts.map +1 -0
  330. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeChannel.js +719 -0
  331. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeChannel.js.map +1 -0
  332. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeClient.d.ts +275 -0
  333. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeClient.d.ts.map +1 -0
  334. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeClient.js +697 -0
  335. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimeClient.js.map +1 -0
  336. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimePresence.d.ts +62 -0
  337. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimePresence.d.ts.map +1 -0
  338. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimePresence.js +43 -0
  339. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/RealtimePresence.js.map +1 -0
  340. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/index.d.ts +6 -0
  341. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/index.d.ts.map +1 -0
  342. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/index.js +18 -0
  343. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/index.js.map +1 -0
  344. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/constants.d.ts +43 -0
  345. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/constants.d.ts.map +1 -0
  346. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/constants.js +43 -0
  347. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/constants.js.map +1 -0
  348. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/normalizeChannelError.d.ts +10 -0
  349. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/normalizeChannelError.d.ts.map +1 -0
  350. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/normalizeChannelError.js +29 -0
  351. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/normalizeChannelError.js.map +1 -0
  352. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/serializer.d.ts +33 -0
  353. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/serializer.d.ts.map +1 -0
  354. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/serializer.js +155 -0
  355. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/serializer.js.map +1 -0
  356. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/transformers.d.ts +109 -0
  357. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/transformers.d.ts.map +1 -0
  358. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/transformers.js +241 -0
  359. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/transformers.js.map +1 -0
  360. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/version.d.ts +2 -0
  361. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/version.d.ts.map +1 -0
  362. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/version.js +11 -0
  363. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/version.js.map +1 -0
  364. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/websocket-factory.d.ts +82 -0
  365. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/websocket-factory.d.ts.map +1 -0
  366. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/websocket-factory.js +130 -0
  367. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/lib/websocket-factory.js.map +1 -0
  368. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/channelAdapter.d.ts +32 -0
  369. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/channelAdapter.d.ts.map +1 -0
  370. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/channelAdapter.js +103 -0
  371. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/channelAdapter.js.map +1 -0
  372. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/presenceAdapter.d.ts +53 -0
  373. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/presenceAdapter.d.ts.map +1 -0
  374. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/presenceAdapter.js +93 -0
  375. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/presenceAdapter.js.map +1 -0
  376. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/socketAdapter.d.ts +38 -0
  377. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/socketAdapter.d.ts.map +1 -0
  378. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/socketAdapter.js +114 -0
  379. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/socketAdapter.js.map +1 -0
  380. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/types.d.ts +5 -0
  381. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/types.d.ts.map +1 -0
  382. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/types.js +3 -0
  383. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/main/phoenix/types.js.map +1 -0
  384. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts +442 -0
  385. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts.map +1 -0
  386. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js +714 -0
  387. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js.map +1 -0
  388. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts +275 -0
  389. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts.map +1 -0
  390. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js +693 -0
  391. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js.map +1 -0
  392. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts +62 -0
  393. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts.map +1 -0
  394. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js +38 -0
  395. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js.map +1 -0
  396. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/index.d.ts +6 -0
  397. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/index.d.ts.map +1 -0
  398. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/index.js +6 -0
  399. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/index.js.map +1 -0
  400. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/constants.d.ts +43 -0
  401. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/constants.d.ts.map +1 -0
  402. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/constants.js +40 -0
  403. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/constants.js.map +1 -0
  404. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.d.ts +10 -0
  405. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.d.ts.map +1 -0
  406. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js +26 -0
  407. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js.map +1 -0
  408. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/serializer.d.ts +33 -0
  409. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/serializer.d.ts.map +1 -0
  410. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/serializer.js +152 -0
  411. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/serializer.js.map +1 -0
  412. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts +109 -0
  413. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts.map +1 -0
  414. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/transformers.js +229 -0
  415. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/transformers.js.map +1 -0
  416. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/version.d.ts +2 -0
  417. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/version.d.ts.map +1 -0
  418. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/version.js +8 -0
  419. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/version.js.map +1 -0
  420. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.d.ts +82 -0
  421. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.d.ts.map +1 -0
  422. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js +126 -0
  423. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js.map +1 -0
  424. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.d.ts +32 -0
  425. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.d.ts.map +1 -0
  426. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js +100 -0
  427. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js.map +1 -0
  428. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.d.ts +53 -0
  429. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.d.ts.map +1 -0
  430. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js +90 -0
  431. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js.map +1 -0
  432. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.d.ts +38 -0
  433. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.d.ts.map +1 -0
  434. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js +111 -0
  435. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js.map +1 -0
  436. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/types.d.ts +5 -0
  437. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/types.d.ts.map +1 -0
  438. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/types.js +2 -0
  439. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/module/phoenix/types.js.map +1 -0
  440. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/tsconfig.module.tsbuildinfo +1 -0
  441. package/templates/realtime-agent/node_modules/@supabase/realtime-js/dist/tsconfig.tsbuildinfo +1 -0
  442. package/templates/realtime-agent/node_modules/@supabase/realtime-js/package.json +58 -0
  443. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/RealtimeChannel.ts +1118 -0
  444. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/RealtimeClient.ts +868 -0
  445. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/RealtimePresence.ts +71 -0
  446. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/index.ts +53 -0
  447. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/constants.ts +62 -0
  448. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/normalizeChannelError.ts +30 -0
  449. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/serializer.ts +203 -0
  450. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/transformers.ts +270 -0
  451. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/version.ts +7 -0
  452. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/lib/websocket-factory.ts +204 -0
  453. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/phoenix/channelAdapter.ts +149 -0
  454. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/phoenix/presenceAdapter.ts +116 -0
  455. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/phoenix/socketAdapter.ts +168 -0
  456. package/templates/realtime-agent/node_modules/@supabase/realtime-js/src/phoenix/types.ts +32 -0
  457. package/templates/realtime-agent/node_modules/@supabase/storage-js/README.md +1262 -0
  458. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.cjs +2995 -0
  459. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.cjs.map +1 -0
  460. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.d.cts +2956 -0
  461. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.d.cts.map +1 -0
  462. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.d.mts +2956 -0
  463. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.d.mts.map +1 -0
  464. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.mjs +2979 -0
  465. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/index.mjs.map +1 -0
  466. package/templates/realtime-agent/node_modules/@supabase/storage-js/dist/umd/supabase.js +1 -0
  467. package/templates/realtime-agent/node_modules/@supabase/storage-js/package.json +62 -0
  468. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/StorageClient.ts +98 -0
  469. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/index.ts +19 -0
  470. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/common/BaseApiClient.ts +104 -0
  471. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/common/errors.ts +160 -0
  472. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/common/fetch.ts +303 -0
  473. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/common/headers.ts +43 -0
  474. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/common/helpers.ts +146 -0
  475. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/constants.ts +4 -0
  476. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/types.ts +654 -0
  477. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/lib/version.ts +7 -0
  478. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/BlobDownloadBuilder.ts +62 -0
  479. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/StorageAnalyticsClient.ts +420 -0
  480. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/StorageBucketApi.ts +414 -0
  481. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/StorageFileApi.ts +1423 -0
  482. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/StorageVectorsClient.ts +644 -0
  483. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/StreamDownloadBuilder.ts +39 -0
  484. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/VectorBucketApi.ts +73 -0
  485. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/VectorDataApi.ts +98 -0
  486. package/templates/realtime-agent/node_modules/@supabase/storage-js/src/packages/VectorIndexApi.ts +90 -0
  487. package/templates/realtime-agent/node_modules/@supabase/supabase-js/README.md +238 -0
  488. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.cjs +89 -0
  489. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.cjs.map +1 -0
  490. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.d.cts +58 -0
  491. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.d.cts.map +1 -0
  492. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.d.mts +58 -0
  493. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.d.mts.map +1 -0
  494. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.mjs +88 -0
  495. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/cors.mjs.map +1 -0
  496. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.cjs +660 -0
  497. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.cjs.map +1 -0
  498. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.d.cts +616 -0
  499. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.d.cts.map +1 -0
  500. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.d.mts +616 -0
  501. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.d.mts.map +1 -0
  502. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.mjs +607 -0
  503. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/index.mjs.map +1 -0
  504. package/templates/realtime-agent/node_modules/@supabase/supabase-js/dist/umd/supabase.js +24 -0
  505. package/templates/realtime-agent/node_modules/@supabase/supabase-js/package.json +122 -0
  506. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/SupabaseClient.ts +625 -0
  507. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/cors.ts +84 -0
  508. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/index.ts +106 -0
  509. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/SupabaseAuthClient.ts +8 -0
  510. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/constants.ts +35 -0
  511. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/fetch.ts +36 -0
  512. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/helpers.ts +98 -0
  513. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/rest/types/common/common.ts +93 -0
  514. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/rest/types/common/rpc.ts +158 -0
  515. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/types.ts +196 -0
  516. package/templates/realtime-agent/node_modules/@supabase/supabase-js/src/lib/version.ts +7 -0
  517. package/templates/realtime-agent/node_modules/iceberg-js/LICENSE +21 -0
  518. package/templates/realtime-agent/node_modules/iceberg-js/README.md +439 -0
  519. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.cjs +596 -0
  520. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.cjs.map +1 -0
  521. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.d.cts +547 -0
  522. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.d.ts +547 -0
  523. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.mjs +587 -0
  524. package/templates/realtime-agent/node_modules/iceberg-js/dist/index.mjs.map +1 -0
  525. package/templates/realtime-agent/node_modules/iceberg-js/package.json +77 -0
  526. package/templates/realtime-agent/node_modules/tslib/CopyrightNotice.txt +15 -0
  527. package/templates/realtime-agent/node_modules/tslib/LICENSE.txt +12 -0
  528. package/templates/realtime-agent/node_modules/tslib/README.md +164 -0
  529. package/templates/realtime-agent/node_modules/tslib/SECURITY.md +41 -0
  530. package/templates/realtime-agent/node_modules/tslib/modules/index.d.ts +38 -0
  531. package/templates/realtime-agent/node_modules/tslib/modules/index.js +70 -0
  532. package/templates/realtime-agent/node_modules/tslib/modules/package.json +3 -0
  533. package/templates/realtime-agent/node_modules/tslib/package.json +47 -0
  534. package/templates/realtime-agent/node_modules/tslib/tslib.d.ts +460 -0
  535. package/templates/realtime-agent/node_modules/tslib/tslib.es6.html +1 -0
  536. package/templates/realtime-agent/node_modules/tslib/tslib.es6.js +402 -0
  537. package/templates/realtime-agent/node_modules/tslib/tslib.es6.mjs +401 -0
  538. package/templates/realtime-agent/node_modules/tslib/tslib.html +1 -0
  539. package/templates/realtime-agent/node_modules/tslib/tslib.js +484 -0
  540. package/templates/realtime-agent/package-lock.json +114 -0
  541. package/templates/realtime-agent/package.json +11 -0
  542. package/templates/realtime-agent/src/index.js +152 -0
  543. package/templates/root/AGENT.md +37 -0
  544. package/templates/root/model.md +1 -0
  545. package/templates/root/prompt.md +91 -0
  546. package/templates/root/ralph.sh +47 -0
@@ -0,0 +1,1262 @@
1
+ <br />
2
+ <p align="center">
3
+ <a href="https://supabase.io">
4
+ <picture>
5
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/supabase/supabase/master/packages/common/assets/images/supabase-logo-wordmark--dark.svg">
6
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/supabase/supabase/master/packages/common/assets/images/supabase-logo-wordmark--light.svg">
7
+ <img alt="Supabase Logo" width="300" src="https://raw.githubusercontent.com/supabase/supabase/master/packages/common/assets/images/logo-preview.jpg">
8
+ </picture>
9
+ </a>
10
+
11
+ <h1 align="center">Supabase Storage JS SDK</h1>
12
+
13
+ <h3 align="center">JavaScript SDK to interact with Supabase Storage, including file storage and vector embeddings.</h3>
14
+
15
+ <p align="center">
16
+ <a href="https://supabase.com/docs/guides/storage">Guides</a>
17
+ ·
18
+ <a href="https://supabase.com/docs/reference/javascript/storage-createbucket">Reference Docs</a>
19
+ ·
20
+ <a href="https://supabase.github.io/supabase-js/storage-js/v2/spec.json">TypeDoc</a>
21
+ </p>
22
+ </p>
23
+
24
+ <div align="center">
25
+
26
+ [![Build](https://github.com/supabase/supabase-js/workflows/CI/badge.svg)](https://github.com/supabase/supabase-js/actions?query=branch%3Amaster)
27
+ [![Package](https://img.shields.io/npm/v/@supabase/storage-js)](https://www.npmjs.com/package/@supabase/storage-js)
28
+ [![License: MIT](https://img.shields.io/npm/l/@supabase/supabase-js)](#license)
29
+ [![pkg.pr.new](https://pkg.pr.new/badge/supabase/storage-js)](https://pkg.pr.new/~/supabase/storage-js)
30
+
31
+ </div>
32
+
33
+ ## Requirements
34
+
35
+ - **Node.js 20 or later** (Node.js 18 support dropped as of October 31, 2025)
36
+ - For browser support, all modern browsers are supported
37
+
38
+ > ⚠️ **Node.js 18 Deprecation Notice**
39
+ >
40
+ > Node.js 18 reached end-of-life on April 30, 2025. As announced in [our deprecation notice](https://github.com/orgs/supabase/discussions/37217), support for Node.js 18 was dropped on October 31, 2025.
41
+
42
+ ## Features
43
+
44
+ - **File Storage**: Upload, download, list, move, and delete files
45
+ - **Access Control**: Public and private buckets with fine-grained permissions
46
+ - **Signed URLs**: Generate time-limited URLs for secure file access
47
+ - **Image Transformations**: On-the-fly image resizing and optimization
48
+ - **Vector Embeddings**: Store and query high-dimensional embeddings with similarity search
49
+ - **Analytics Buckets**: Iceberg table-based buckets optimized for analytical queries and data processing
50
+
51
+ ## Quick Start Guide
52
+
53
+ ### Installing the module
54
+
55
+ ```bash
56
+ npm install @supabase/storage-js
57
+ ```
58
+
59
+ ### Connecting to the storage backend
60
+
61
+ There are two ways to use the Storage SDK:
62
+
63
+ #### Option 1: Via Supabase Client (Recommended)
64
+
65
+ If you're already using `@supabase/supabase-js`, access storage through the client:
66
+
67
+ ```js
68
+ import { createClient } from '@supabase/supabase-js'
69
+
70
+ // Use publishable key for frontend applications
71
+ const supabase = createClient('https://<project_ref>.supabase.co', '<your-publishable-key>')
72
+
73
+ // Access storage
74
+ const storage = supabase.storage
75
+
76
+ // Access different bucket types
77
+ const regularBucket = storage.from('my-bucket')
78
+ const vectorBucket = storage.vectors.from('embeddings-bucket')
79
+ const analyticsBucket = storage.analytics // Analytics API
80
+ ```
81
+
82
+ #### Option 2: Standalone StorageClient
83
+
84
+ For backend applications or when you need to bypass Row Level Security:
85
+
86
+ ```js
87
+ import { StorageClient } from '@supabase/storage-js'
88
+
89
+ const STORAGE_URL = 'https://<project_ref>.supabase.co/storage/v1'
90
+ const SERVICE_KEY = '<your-secret-key>' // Use secret key for backend operations
91
+
92
+ const storageClient = new StorageClient(STORAGE_URL, {
93
+ apikey: SERVICE_KEY,
94
+ Authorization: `Bearer ${SERVICE_KEY}`,
95
+ })
96
+
97
+ // Access different bucket types
98
+ const regularBucket = storageClient.from('my-bucket')
99
+ const vectorBucket = storageClient.vectors.from('embeddings-bucket')
100
+ const analyticsBucket = storageClient.analytics // Analytics API
101
+ ```
102
+
103
+ > **When to use each approach:**
104
+ >
105
+ > - Use `supabase.storage` when working with other Supabase features (auth, database, etc.) in frontend applications
106
+ > - Use `new StorageClient()` for backend applications, Edge Functions, or when you need to bypass RLS policies
107
+
108
+ > **Note:** Refer to the [Storage Access Control guide](https://supabase.com/docs/guides/storage/access-control) for detailed information on creating RLS policies.
109
+
110
+ ### Understanding Bucket Types
111
+
112
+ Supabase Storage supports three types of buckets, each optimized for different use cases:
113
+
114
+ #### 1. Regular Storage Buckets (File Storage)
115
+
116
+ Standard buckets for storing files, images, videos, and other assets.
117
+
118
+ ```js
119
+ // Create regular storage bucket
120
+ const { data, error } = await storageClient.createBucket('my-files', {
121
+ public: false,
122
+ })
123
+
124
+ // Upload files
125
+ await storageClient.from('my-files').upload('avatar.png', file)
126
+ ```
127
+
128
+ **Use cases:** User uploads, media assets, documents, backups
129
+
130
+ #### 2. Vector Buckets (Embeddings Storage)
131
+
132
+ Specialized buckets for storing and querying high-dimensional vector embeddings.
133
+
134
+ ```js
135
+ // Create vector bucket
136
+ await storageClient.vectors.createBucket('embeddings-prod')
137
+
138
+ // Create index and insert vectors
139
+ const bucket = storageClient.vectors.from('embeddings-prod')
140
+ await bucket.createIndex({
141
+ indexName: 'documents',
142
+ dimension: 1536,
143
+ distanceMetric: 'cosine',
144
+ })
145
+ ```
146
+
147
+ **Use cases:** Semantic search, AI-powered recommendations, similarity matching
148
+
149
+ **[See full Vector Embeddings documentation below](#vector-embeddings)**
150
+
151
+ #### 3. Analytics Buckets
152
+
153
+ Specialized buckets using Apache Iceberg table format, optimized for analytical queries and large-scale data processing.
154
+
155
+ ```js
156
+ // Create analytics bucket
157
+ await storageClient.analytics.createBucket('analytics-data')
158
+
159
+ // List analytics buckets
160
+ const { data, error } = await storageClient.analytics.listBuckets()
161
+
162
+ // Delete analytics bucket
163
+ await storageClient.analytics.deleteBucket('analytics-data')
164
+ ```
165
+
166
+ **Use cases:** Time-series data, analytical queries, data lakes, large-scale data processing, business intelligence
167
+
168
+ **[See full Analytics Buckets documentation below](#analytics-buckets)**
169
+
170
+ ---
171
+
172
+ ### Handling resources
173
+
174
+ #### Handling Storage Buckets
175
+
176
+ - Create a new Storage bucket:
177
+
178
+ ```js
179
+ const { data, error } = await storageClient.createBucket(
180
+ 'test_bucket', // Bucket name (must be unique)
181
+ { public: false } // Bucket options
182
+ )
183
+ ```
184
+
185
+ - Retrieve the details of an existing Storage bucket:
186
+
187
+ ```js
188
+ const { data, error } = await storageClient.getBucket('test_bucket')
189
+ ```
190
+
191
+ - Update a new Storage bucket:
192
+
193
+ ```js
194
+ const { data, error } = await storageClient.updateBucket(
195
+ 'test_bucket', // Bucket name
196
+ { public: false } // Bucket options
197
+ )
198
+ ```
199
+
200
+ - Remove all objects inside a single bucket:
201
+
202
+ ```js
203
+ const { data, error } = await storageClient.emptyBucket('test_bucket')
204
+ ```
205
+
206
+ - Delete an existing bucket (a bucket can't be deleted with existing objects inside it):
207
+
208
+ ```js
209
+ const { data, error } = await storageClient.deleteBucket('test_bucket')
210
+ ```
211
+
212
+ - Retrieve the details of all Storage buckets within an existing project:
213
+
214
+ ```js
215
+ // List all buckets
216
+ const { data, error } = await storageClient.listBuckets()
217
+
218
+ // List buckets with options (pagination, sorting, search)
219
+ const { data, error } = await storageClient.listBuckets({
220
+ limit: 10,
221
+ offset: 0,
222
+ sortColumn: 'created_at',
223
+ sortOrder: 'desc',
224
+ search: 'prod',
225
+ })
226
+ ```
227
+
228
+ #### Handling Files
229
+
230
+ - Upload a file to an existing bucket:
231
+
232
+ ```js
233
+ const fileBody = ... // load your file here
234
+
235
+ const { data, error } = await storageClient.from('bucket').upload('path/to/file', fileBody)
236
+ ```
237
+
238
+ > Note:
239
+ > The path in `data.Key` is prefixed by the bucket ID and is not the value which should be passed to the `download` method in order to fetch the file.
240
+ > To fetch the file via the `download` method, use `data.path` and `data.bucketId` as follows:
241
+ >
242
+ > ```javascript
243
+ > const { data, error } = await storageClient.from('bucket').upload('/folder/file.txt', fileBody)
244
+ > // check for errors
245
+ > const { data2, error2 } = await storageClient.from(data.bucketId).download(data.path)
246
+ > ```
247
+
248
+ > Note: The `upload` method also accepts a map of optional parameters. For a complete list see the [Supabase API reference](https://supabase.com/docs/reference/javascript/storage-from-upload).
249
+
250
+ - Download a file from an exisiting bucket:
251
+
252
+ ```js
253
+ const { data, error } = await storageClient.from('bucket').download('path/to/file')
254
+ ```
255
+
256
+ - List all the files within a bucket:
257
+
258
+ ```js
259
+ const { data, error } = await storageClient.from('bucket').list('folder')
260
+ ```
261
+
262
+ > Note: The `list` method also accepts a map of optional parameters. For a complete list see the [Supabase API reference](https://supabase.com/docs/reference/javascript/storage-from-list).
263
+
264
+ - Replace an existing file at the specified path with a new one:
265
+
266
+ ```js
267
+ const fileBody = ... // load your file here
268
+
269
+ const { data, error } = await storageClient
270
+ .from('bucket')
271
+ .update('path/to/file', fileBody)
272
+ ```
273
+
274
+ > Note: The `upload` method also accepts a map of optional parameters. For a complete list see the [Supabase API reference](https://supabase.com/docs/reference/javascript/storage-from-upload).
275
+
276
+ - Move an existing file:
277
+
278
+ ```js
279
+ const { data, error } = await storageClient
280
+ .from('bucket')
281
+ .move('old/path/to/file', 'new/path/to/file')
282
+ ```
283
+
284
+ - Delete files within the same bucket:
285
+
286
+ ```js
287
+ const { data, error } = await storageClient.from('bucket').remove(['path/to/file'])
288
+ ```
289
+
290
+ - Create signed URL to download file without requiring permissions:
291
+
292
+ ```js
293
+ const expireIn = 60
294
+
295
+ const { data, error } = await storageClient
296
+ .from('bucket')
297
+ .createSignedUrl('path/to/file', expireIn)
298
+ ```
299
+
300
+ - Retrieve URLs for assets in public buckets:
301
+
302
+ ```js
303
+ const { data, error } = await storageClient.from('public-bucket').getPublicUrl('path/to/file')
304
+ ```
305
+
306
+ ## Analytics Buckets
307
+
308
+ Supabase Storage provides specialized analytics buckets using Apache Iceberg table format, optimized for analytical workloads and large-scale data processing. These buckets are designed for data lake architectures, time-series data, and business intelligence applications.
309
+
310
+ ### What are Analytics Buckets?
311
+
312
+ Analytics buckets use the Apache Iceberg open table format, providing:
313
+
314
+ - **ACID transactions** for data consistency
315
+ - **Schema evolution** without data rewrites
316
+ - **Time travel** to query historical data
317
+ - **Efficient metadata management** for large datasets
318
+ - **Optimized for analytical queries** rather than individual file operations
319
+
320
+ ### When to Use Analytics Buckets
321
+
322
+ **Use analytics buckets for:**
323
+
324
+ - Time-series data (logs, metrics, events)
325
+ - Data lake architectures
326
+ - Business intelligence and reporting
327
+ - Large-scale batch processing
328
+ - Analytical workloads requiring ACID guarantees
329
+
330
+ **Use regular storage buckets for:**
331
+
332
+ - User file uploads (images, documents, videos)
333
+ - Individual file management
334
+ - Content delivery
335
+ - Simple object storage needs
336
+
337
+ ### Quick Start
338
+
339
+ You can access analytics functionality through the `analytics` property on your storage client:
340
+
341
+ #### Via Supabase Client
342
+
343
+ ```typescript
344
+ import { createClient } from '@supabase/supabase-js'
345
+
346
+ const supabase = createClient('https://your-project.supabase.co', 'your-publishable-key')
347
+
348
+ // Access analytics operations
349
+ const analytics = supabase.storage.analytics
350
+
351
+ // Create an analytics bucket
352
+ const { data, error } = await analytics.createBucket('analytics-data')
353
+ if (error) {
354
+ console.error('Failed to create analytics bucket:', error.message)
355
+ } else {
356
+ console.log('Created bucket:', data.name)
357
+ }
358
+ ```
359
+
360
+ #### Via StorageClient
361
+
362
+ ```typescript
363
+ import { StorageClient } from '@supabase/storage-js'
364
+
365
+ const storageClient = new StorageClient('https://your-project.supabase.co/storage/v1', {
366
+ apikey: 'YOUR_API_KEY',
367
+ Authorization: 'Bearer YOUR_TOKEN',
368
+ })
369
+
370
+ // Access analytics operations
371
+ const analytics = storageClient.analytics
372
+
373
+ // Create an analytics bucket
374
+ await analytics.createBucket('analytics-data')
375
+ ```
376
+
377
+ ### API Reference
378
+
379
+ #### Create Analytics Bucket
380
+
381
+ Creates a new analytics bucket using Iceberg table format:
382
+
383
+ ```typescript
384
+ const { data, error } = await analytics.createBucket('my-analytics-bucket')
385
+
386
+ if (error) {
387
+ console.error('Error:', error.message)
388
+ } else {
389
+ console.log('Created bucket:', data)
390
+ }
391
+ ```
392
+
393
+ **Returns:**
394
+
395
+ ```typescript
396
+ {
397
+ data: {
398
+ id: string
399
+ type: 'ANALYTICS'
400
+ format: string
401
+ created_at: string
402
+ updated_at: string
403
+ } | null
404
+ error: StorageError | null
405
+ }
406
+ ```
407
+
408
+ #### List Analytics Buckets
409
+
410
+ Retrieves all analytics buckets in your project with optional filtering and pagination:
411
+
412
+ ```typescript
413
+ const { data, error } = await analytics.listBuckets({
414
+ limit: 10,
415
+ offset: 0,
416
+ sortColumn: 'created_at',
417
+ sortOrder: 'desc',
418
+ search: 'prod',
419
+ })
420
+
421
+ if (data) {
422
+ console.log(`Found ${data.length} analytics buckets`)
423
+ data.forEach((bucket) => {
424
+ console.log(`- ${bucket.id} (created: ${bucket.created_at})`)
425
+ })
426
+ }
427
+ ```
428
+
429
+ **Parameters:**
430
+
431
+ - `limit?: number` - Maximum number of buckets to return
432
+ - `offset?: number` - Number of buckets to skip (for pagination)
433
+ - `sortColumn?: 'id' | 'name' | 'created_at' | 'updated_at'` - Column to sort by
434
+ - `sortOrder?: 'asc' | 'desc'` - Sort direction
435
+ - `search?: string` - Search term to filter bucket names
436
+
437
+ **Returns:**
438
+
439
+ ```typescript
440
+ {
441
+ data: AnalyticBucket[] | null
442
+ error: StorageError | null
443
+ }
444
+ ```
445
+
446
+ **Example with Pagination:**
447
+
448
+ ```typescript
449
+ // Fetch first page
450
+ const firstPage = await analytics.listBuckets({
451
+ limit: 100,
452
+ offset: 0,
453
+ sortColumn: 'created_at',
454
+ sortOrder: 'desc',
455
+ })
456
+
457
+ // Fetch second page
458
+ const secondPage = await analytics.listBuckets({
459
+ limit: 100,
460
+ offset: 100,
461
+ sortColumn: 'created_at',
462
+ sortOrder: 'desc',
463
+ })
464
+ ```
465
+
466
+ #### Delete Analytics Bucket
467
+
468
+ Deletes an analytics bucket. The bucket must be empty before deletion.
469
+
470
+ ```typescript
471
+ const { data, error } = await analytics.deleteBucket('old-analytics-bucket')
472
+
473
+ if (error) {
474
+ console.error('Failed to delete:', error.message)
475
+ } else {
476
+ console.log('Bucket deleted:', data.message)
477
+ }
478
+ ```
479
+
480
+ **Returns:**
481
+
482
+ ```typescript
483
+ {
484
+ data: { message: string } | null
485
+ error: StorageError | null
486
+ }
487
+ ```
488
+
489
+ > **Note:** A bucket cannot be deleted if it contains data. You must empty the bucket first.
490
+
491
+ #### Get Iceberg Catalog for Advanced Operations
492
+
493
+ For advanced operations like creating tables, namespaces, and querying Iceberg metadata, use the `from()` method to get a configured [iceberg-js](https://github.com/supabase/iceberg-js) client:
494
+
495
+ ```typescript
496
+ // Get an Iceberg REST Catalog client for your analytics bucket
497
+ const catalog = analytics.from('analytics-data')
498
+
499
+ // Create a namespace
500
+ await catalog.createNamespace({ namespace: ['default'] }, { properties: { owner: 'data-team' } })
501
+
502
+ // Create a table with schema
503
+ await catalog.createTable(
504
+ { namespace: ['default'] },
505
+ {
506
+ name: 'events',
507
+ schema: {
508
+ type: 'struct',
509
+ fields: [
510
+ { id: 1, name: 'id', type: 'long', required: true },
511
+ { id: 2, name: 'timestamp', type: 'timestamp', required: true },
512
+ { id: 3, name: 'user_id', type: 'string', required: false },
513
+ ],
514
+ 'schema-id': 0,
515
+ 'identifier-field-ids': [1],
516
+ },
517
+ 'partition-spec': {
518
+ 'spec-id': 0,
519
+ fields: [],
520
+ },
521
+ 'write-order': {
522
+ 'order-id': 0,
523
+ fields: [],
524
+ },
525
+ properties: {
526
+ 'write.format.default': 'parquet',
527
+ },
528
+ }
529
+ )
530
+
531
+ // List tables in namespace
532
+ const tables = await catalog.listTables({ namespace: ['default'] })
533
+ console.log(tables) // [{ namespace: ['default'], name: 'events' }]
534
+
535
+ // Load table metadata
536
+ const table = await catalog.loadTable({ namespace: ['default'], name: 'events' })
537
+
538
+ // Update table properties
539
+ await catalog.updateTable(
540
+ { namespace: ['default'], name: 'events' },
541
+ { properties: { 'read.split.target-size': '134217728' } }
542
+ )
543
+
544
+ // Drop table
545
+ await catalog.dropTable({ namespace: ['default'], name: 'events' })
546
+
547
+ // Drop namespace
548
+ await catalog.dropNamespace({ namespace: ['default'] })
549
+ ```
550
+
551
+ **Returns:** `IcebergRestCatalog` instance from [iceberg-js](https://github.com/supabase/iceberg-js)
552
+
553
+ > **Note:** The `from()` method returns an Iceberg REST Catalog client that provides full access to the Apache Iceberg REST API. For complete documentation of available operations, see the [iceberg-js documentation](https://supabase.github.io/iceberg-js/).
554
+
555
+ ### Error Handling
556
+
557
+ Analytics buckets use the same error handling pattern as the rest of the Storage SDK:
558
+
559
+ ```typescript
560
+ const { data, error } = await analytics.createBucket('my-bucket')
561
+
562
+ if (error) {
563
+ console.error('Error:', error.message)
564
+ console.error('Status:', error.status)
565
+ console.error('Status Code:', error.statusCode)
566
+ // Handle error appropriately
567
+ }
568
+ ```
569
+
570
+ #### Throwing Errors
571
+
572
+ You can configure the client to throw errors instead of returning them:
573
+
574
+ ```typescript
575
+ const analytics = storageClient.analytics
576
+ analytics.throwOnError()
577
+
578
+ try {
579
+ const { data } = await analytics.createBucket('my-bucket')
580
+ // data is guaranteed to be present
581
+ console.log('Success:', data)
582
+ } catch (error) {
583
+ if (error instanceof StorageApiError) {
584
+ console.error('API Error:', error.statusCode, error.message)
585
+ }
586
+ }
587
+ ```
588
+
589
+ ### TypeScript Types
590
+
591
+ The library exports TypeScript types for analytics buckets:
592
+
593
+ ```typescript
594
+ import type { AnalyticBucket, BucketType, StorageError } from '@supabase/storage-js'
595
+
596
+ // AnalyticBucket type
597
+ interface AnalyticBucket {
598
+ id: string
599
+ type: 'ANALYTICS'
600
+ format: string
601
+ created_at: string
602
+ updated_at: string
603
+ }
604
+ ```
605
+
606
+ ### Common Patterns
607
+
608
+ #### Checking if a Bucket Exists
609
+
610
+ ```typescript
611
+ async function bucketExists(bucketName: string): Promise<boolean> {
612
+ const { data, error } = await analytics.listBuckets({
613
+ search: bucketName,
614
+ })
615
+
616
+ if (error) {
617
+ console.error('Error checking bucket:', error.message)
618
+ return false
619
+ }
620
+
621
+ return data?.some((bucket) => bucket.id === bucketName) ?? false
622
+ }
623
+ ```
624
+
625
+ #### Creating Bucket with Error Handling
626
+
627
+ ```typescript
628
+ async function ensureAnalyticsBucket(bucketName: string) {
629
+ // Try to create the bucket
630
+ const { data, error } = await analytics.createBucket(bucketName)
631
+
632
+ if (error) {
633
+ // Check if bucket already exists (conflict error)
634
+ if (error.statusCode === '409') {
635
+ console.log(`Bucket '${bucketName}' already exists`)
636
+ return { success: true, created: false }
637
+ }
638
+
639
+ // Other error occurred
640
+ console.error('Failed to create bucket:', error.message)
641
+ return { success: false, error }
642
+ }
643
+
644
+ console.log(`Created new bucket: '${bucketName}'`)
645
+ return { success: true, created: true, data }
646
+ }
647
+ ```
648
+
649
+ #### Listing All Buckets with Pagination
650
+
651
+ ```typescript
652
+ async function getAllAnalyticsBuckets() {
653
+ const allBuckets: AnalyticBucket[] = []
654
+ let offset = 0
655
+ const limit = 100
656
+
657
+ while (true) {
658
+ const { data, error } = await analytics.listBuckets({
659
+ limit,
660
+ offset,
661
+ sortColumn: 'created_at',
662
+ sortOrder: 'desc',
663
+ })
664
+
665
+ if (error) {
666
+ console.error('Error fetching buckets:', error.message)
667
+ break
668
+ }
669
+
670
+ if (!data || data.length === 0) {
671
+ break
672
+ }
673
+
674
+ allBuckets.push(...data)
675
+
676
+ // If we got fewer results than the limit, we've reached the end
677
+ if (data.length < limit) {
678
+ break
679
+ }
680
+
681
+ offset += limit
682
+ }
683
+
684
+ return allBuckets
685
+ }
686
+ ```
687
+
688
+ ## Vector Embeddings
689
+
690
+ Supabase Storage provides built-in support for storing and querying high-dimensional vector embeddings, powered by S3 Vectors. This enables semantic search, similarity matching, and AI-powered applications without needing a separate vector database.
691
+
692
+ > **Note:** Vector embeddings functionality is available in `@supabase/storage-js` v2.76 and later.
693
+
694
+ ### Features
695
+
696
+ - **Vector Buckets**: Organize vector indexes into logical containers
697
+ - **Vector Indexes**: Define schemas with configurable dimensions and distance metrics
698
+ - **Batch Operations**: Insert/update/delete up to 500 vectors per request
699
+ - **Similarity Search**: Query for nearest neighbors using cosine, euclidean, or dot product distance
700
+ - **Metadata Filtering**: Store and filter vectors by arbitrary JSON metadata
701
+ - **Pagination**: Efficiently scan large vector datasets
702
+ - **Parallel Scanning**: Distribute scans across multiple workers for high throughput
703
+ - **Cross-platform**: Works in Node.js, browsers, and edge runtimes
704
+
705
+ ### Quick Start
706
+
707
+ You can access vector functionality in three ways, depending on your use case:
708
+
709
+ #### Option 1: Via Supabase Client (Most Common)
710
+
711
+ If you're using the full Supabase client:
712
+
713
+ ```typescript
714
+ import { createClient } from '@supabase/supabase-js'
715
+
716
+ const supabase = createClient('https://your-project.supabase.co', 'your-publishable-key')
717
+
718
+ // Access vector operations through storage
719
+ const vectors = supabase.storage.vectors
720
+
721
+ // Create a vector bucket
722
+ await vectors.createBucket('embeddings-prod')
723
+
724
+ // Create an index
725
+ const bucket = vectors.from('embeddings-prod')
726
+ await bucket.createIndex({
727
+ indexName: 'documents-openai',
728
+ dataType: 'float32',
729
+ dimension: 1536,
730
+ distanceMetric: 'cosine',
731
+ })
732
+
733
+ // Insert vectors
734
+ const index = bucket.index('documents-openai')
735
+ await index.putVectors({
736
+ vectors: [
737
+ {
738
+ key: 'doc-1',
739
+ data: { float32: [0.1, 0.2, 0.3 /* ...1536 dimensions */] },
740
+ metadata: { title: 'Introduction', category: 'docs' },
741
+ },
742
+ ],
743
+ })
744
+
745
+ // Query similar vectors
746
+ const { data, error } = await index.queryVectors({
747
+ queryVector: { float32: [0.15, 0.25, 0.35 /* ...1536 dimensions */] },
748
+ topK: 5,
749
+ returnDistance: true,
750
+ returnMetadata: true,
751
+ })
752
+
753
+ if (data) {
754
+ data.matches.forEach((match) => {
755
+ console.log(`${match.key}: distance=${match.distance}`)
756
+ console.log('Metadata:', match.metadata)
757
+ })
758
+ }
759
+ ```
760
+
761
+ #### Option 2: Via StorageClient
762
+
763
+ If you're using the standalone `StorageClient` for storage operations, access vectors through the `vectors` property:
764
+
765
+ ```typescript
766
+ import { StorageClient } from '@supabase/storage-js'
767
+
768
+ const storageClient = new StorageClient('https://your-project.supabase.co/storage/v1', {
769
+ apikey: 'YOUR_API_KEY',
770
+ Authorization: 'Bearer YOUR_TOKEN',
771
+ })
772
+
773
+ // Access vector operations
774
+ const vectors = storageClient.vectors
775
+
776
+ // Use the same API as shown in Option 1
777
+ await vectors.createBucket('embeddings-prod')
778
+ const bucket = vectors.from('embeddings-prod')
779
+ // ... rest of operations
780
+ ```
781
+
782
+ #### Option 3: Standalone Vector Client
783
+
784
+ For vector-only applications that don't need regular file storage operations:
785
+
786
+ ```typescript
787
+ import { StorageVectorsClient } from '@supabase/storage-js'
788
+
789
+ // Initialize standalone vector client
790
+ const vectorClient = new StorageVectorsClient('https://your-project.supabase.co/storage/v1', {
791
+ headers: { Authorization: 'Bearer YOUR_TOKEN' },
792
+ })
793
+
794
+ // Use the same API as shown in Option 1
795
+ await vectorClient.createBucket('embeddings-prod')
796
+ const bucket = vectorClient.from('embeddings-prod')
797
+ // ... rest of operations
798
+ ```
799
+
800
+ > **When to use each approach:**
801
+ >
802
+ > - **Option 1**: When using other Supabase features (auth, database, realtime)
803
+ > - **Option 2**: When working with both file storage and vectors
804
+ > - **Option 3**: For dedicated vector-only applications without file storage
805
+
806
+ ### API Reference
807
+
808
+ #### Client Initialization
809
+
810
+ ```typescript
811
+ const vectorClient = new StorageVectorsClient(url, options?)
812
+ ```
813
+
814
+ **Options:**
815
+
816
+ - `headers?: Record<string, string>` - Custom HTTP headers (e.g., Authorization)
817
+ - `fetch?: Fetch` - Custom fetch implementation
818
+
819
+ #### Vector Buckets
820
+
821
+ Vector buckets are top-level containers for organizing vector indexes.
822
+
823
+ ##### Create Bucket
824
+
825
+ ```typescript
826
+ const { data, error } = await vectorClient.createBucket('my-bucket')
827
+ ```
828
+
829
+ ##### Get Bucket
830
+
831
+ ```typescript
832
+ const { data, error } = await vectorClient.getBucket('my-bucket')
833
+ console.log('Created at:', new Date(data.vectorBucket.creationTime! * 1000))
834
+ ```
835
+
836
+ ##### List Buckets
837
+
838
+ ```typescript
839
+ const { data, error } = await vectorClient.listBuckets({
840
+ prefix: 'prod-',
841
+ maxResults: 100,
842
+ })
843
+
844
+ // Pagination
845
+ if (data?.nextToken) {
846
+ const next = await vectorClient.listBuckets({ nextToken: data.nextToken })
847
+ }
848
+ ```
849
+
850
+ ##### Delete Bucket
851
+
852
+ ```typescript
853
+ // Bucket must be empty (all indexes deleted first)
854
+ const { error } = await vectorClient.deleteBucket('my-bucket')
855
+ ```
856
+
857
+ #### Vector Indexes
858
+
859
+ Vector indexes define the schema for embeddings including dimension and distance metric.
860
+
861
+ ##### Create Index
862
+
863
+ ```typescript
864
+ const bucket = vectorClient.from('my-bucket')
865
+
866
+ await bucket.createIndex({
867
+ indexName: 'my-index',
868
+ dataType: 'float32',
869
+ dimension: 1536,
870
+ distanceMetric: 'cosine', // 'cosine' | 'euclidean' | 'dotproduct'
871
+ metadataConfiguration: {
872
+ nonFilterableMetadataKeys: ['raw_text', 'internal_id'],
873
+ },
874
+ })
875
+ ```
876
+
877
+ **Distance Metrics:**
878
+
879
+ - `cosine` - Cosine similarity (normalized dot product)
880
+ - `euclidean` - Euclidean distance (L2 norm)
881
+ - `dotproduct` - Dot product similarity
882
+
883
+ ##### Get Index
884
+
885
+ ```typescript
886
+ const { data, error } = await bucket.getIndex('my-index')
887
+ console.log('Dimension:', data?.index.dimension)
888
+ console.log('Distance metric:', data?.index.distanceMetric)
889
+ ```
890
+
891
+ ##### List Indexes
892
+
893
+ ```typescript
894
+ const { data, error } = await bucket.listIndexes({
895
+ prefix: 'documents-',
896
+ maxResults: 100,
897
+ })
898
+ ```
899
+
900
+ ##### Delete Index
901
+
902
+ ```typescript
903
+ // Deletes index and all its vectors
904
+ await bucket.deleteIndex('my-index')
905
+ ```
906
+
907
+ #### Vector Operations
908
+
909
+ ##### Insert/Update Vectors (Upsert)
910
+
911
+ ```typescript
912
+ const index = vectorClient.from('my-bucket').index('my-index')
913
+
914
+ await index.putVectors({
915
+ vectors: [
916
+ {
917
+ key: 'unique-id-1',
918
+ data: {
919
+ float32: [
920
+ /* 1536 numbers */
921
+ ],
922
+ },
923
+ metadata: {
924
+ title: 'Document Title',
925
+ category: 'technical',
926
+ page: 1,
927
+ },
928
+ },
929
+ // ... up to 500 vectors per request
930
+ ],
931
+ })
932
+ ```
933
+
934
+ **Limitations:**
935
+
936
+ - 1-500 vectors per request
937
+ - Vectors must match index dimension
938
+ - Keys must be unique within index
939
+
940
+ ##### Get Vectors by Key
941
+
942
+ ```typescript
943
+ const { data, error } = await index.getVectors({
944
+ keys: ['doc-1', 'doc-2', 'doc-3'],
945
+ returnData: true, // Include embeddings
946
+ returnMetadata: true, // Include metadata
947
+ })
948
+
949
+ data?.vectors.forEach((v) => {
950
+ console.log(v.key, v.metadata)
951
+ })
952
+ ```
953
+
954
+ ##### Query Similar Vectors (ANN Search)
955
+
956
+ ```typescript
957
+ const { data, error } = await index.queryVectors({
958
+ queryVector: {
959
+ float32: [
960
+ /* 1536 numbers */
961
+ ],
962
+ },
963
+ topK: 10,
964
+ filter: {
965
+ category: 'technical',
966
+ published: true,
967
+ },
968
+ returnDistance: true,
969
+ returnMetadata: true,
970
+ })
971
+
972
+ // Results ordered by similarity
973
+ data?.matches.forEach((match) => {
974
+ console.log(`${match.key}: distance=${match.distance}`)
975
+ })
976
+ ```
977
+
978
+ **Filter Syntax:**
979
+ The `filter` parameter accepts arbitrary JSON for metadata filtering. Non-filterable keys (configured at index creation) cannot be used in filters but can still be returned.
980
+
981
+ ##### List/Scan Vectors
982
+
983
+ ```typescript
984
+ // Simple pagination
985
+ let nextToken: string | undefined
986
+ do {
987
+ const { data } = await index.listVectors({
988
+ maxResults: 500,
989
+ nextToken,
990
+ returnMetadata: true,
991
+ })
992
+
993
+ console.log('Batch:', data?.vectors.length)
994
+ nextToken = data?.nextToken
995
+ } while (nextToken)
996
+
997
+ // Parallel scanning (4 workers)
998
+ const workers = [0, 1, 2, 3].map(async (segmentIndex) => {
999
+ const { data } = await index.listVectors({
1000
+ segmentCount: 4,
1001
+ segmentIndex,
1002
+ returnMetadata: true,
1003
+ })
1004
+ return data?.vectors || []
1005
+ })
1006
+
1007
+ const results = await Promise.all(workers)
1008
+ const allVectors = results.flat()
1009
+ ```
1010
+
1011
+ **Limitations:**
1012
+
1013
+ - `maxResults`: 1-1000 (default: 500)
1014
+ - `segmentCount`: 1-16
1015
+ - Response may be limited by 1MB size
1016
+
1017
+ ##### Delete Vectors
1018
+
1019
+ ```typescript
1020
+ await index.deleteVectors({
1021
+ keys: ['doc-1', 'doc-2', 'doc-3'],
1022
+ // ... up to 500 keys per request
1023
+ })
1024
+ ```
1025
+
1026
+ ### Error Handling
1027
+
1028
+ The library uses a consistent error handling pattern:
1029
+
1030
+ ```typescript
1031
+ const { data, error } = await vectorClient.createBucket('my-bucket')
1032
+
1033
+ if (error) {
1034
+ console.error('Error:', error.message)
1035
+ console.error('Status:', error.status)
1036
+ console.error('Code:', error.statusCode)
1037
+ }
1038
+ ```
1039
+
1040
+ #### Error Codes
1041
+
1042
+ | Code | HTTP | Description |
1043
+ | ---------------------------- | ---- | ----------------------- |
1044
+ | `InternalError` | 500 | Internal server error |
1045
+ | `S3VectorConflictException` | 409 | Resource already exists |
1046
+ | `S3VectorNotFoundException` | 404 | Resource not found |
1047
+ | `S3VectorBucketNotEmpty` | 400 | Bucket contains indexes |
1048
+ | `S3VectorMaxBucketsExceeded` | 400 | Bucket quota exceeded |
1049
+ | `S3VectorMaxIndexesExceeded` | 400 | Index quota exceeded |
1050
+
1051
+ #### Throwing Errors
1052
+
1053
+ You can configure the client to throw errors instead:
1054
+
1055
+ ```typescript
1056
+ const vectorClient = new StorageVectorsClient(url, options)
1057
+ vectorClient.throwOnError()
1058
+
1059
+ try {
1060
+ const { data } = await vectorClient.createBucket('my-bucket')
1061
+ // data is guaranteed to be present
1062
+ } catch (error) {
1063
+ if (error instanceof StorageVectorsApiError) {
1064
+ console.error('API Error:', error.statusCode)
1065
+ }
1066
+ }
1067
+ ```
1068
+
1069
+ ### Advanced Usage
1070
+
1071
+ #### Scoped Clients
1072
+
1073
+ Create scoped clients for cleaner code:
1074
+
1075
+ ```typescript
1076
+ // Bucket-scoped operations
1077
+ const bucket = vectorClient.from('embeddings-prod')
1078
+ await bucket.createIndex({
1079
+ /* ... */
1080
+ })
1081
+ await bucket.listIndexes()
1082
+
1083
+ // Index-scoped operations
1084
+ const index = bucket.index('documents-openai')
1085
+ await index.putVectors({
1086
+ /* ... */
1087
+ })
1088
+ await index.queryVectors({
1089
+ /* ... */
1090
+ })
1091
+ ```
1092
+
1093
+ #### Custom Fetch
1094
+
1095
+ Provide a custom fetch implementation:
1096
+
1097
+ ```typescript
1098
+ import { StorageVectorsClient } from '@supabase/storage-js'
1099
+
1100
+ const vectorClient = new StorageVectorsClient(url, {
1101
+ fetch: customFetch,
1102
+ headers: {
1103
+ /* ... */
1104
+ },
1105
+ })
1106
+ ```
1107
+
1108
+ #### Batch Processing
1109
+
1110
+ Process large datasets in batches:
1111
+
1112
+ ```typescript
1113
+ async function insertLargeDataset(vectors: VectorObject[]) {
1114
+ const batchSize = 500
1115
+
1116
+ for (let i = 0; i < vectors.length; i += batchSize) {
1117
+ const batch = vectors.slice(i, i + batchSize)
1118
+ await index.putVectors({ vectors: batch })
1119
+ console.log(`Inserted ${i + batch.length}/${vectors.length}`)
1120
+ }
1121
+ }
1122
+ ```
1123
+
1124
+ #### Float32 Validation
1125
+
1126
+ Ensure vectors are properly normalized to float32:
1127
+
1128
+ ```typescript
1129
+ import { normalizeToFloat32 } from '@supabase/storage-js'
1130
+
1131
+ const vector = normalizeToFloat32([0.1, 0.2, 0.3 /* ... */])
1132
+ ```
1133
+
1134
+ ### Type Definitions
1135
+
1136
+ The library exports comprehensive TypeScript types:
1137
+
1138
+ ```typescript
1139
+ import type {
1140
+ VectorBucket,
1141
+ VectorIndex,
1142
+ VectorData,
1143
+ VectorObject,
1144
+ VectorMatch,
1145
+ VectorMetadata,
1146
+ DistanceMetric,
1147
+ ApiResponse,
1148
+ StorageVectorsError,
1149
+ } from '@supabase/storage-js'
1150
+ ```
1151
+
1152
+ ## Development
1153
+
1154
+ This package is part of the [Supabase JavaScript monorepo](https://github.com/supabase/supabase-js). To work on this package:
1155
+
1156
+ ### Building
1157
+
1158
+ #### Build Scripts Overview
1159
+
1160
+ ```bash
1161
+ # Build the package
1162
+ npx nx build storage-js
1163
+
1164
+ # Watch mode for development
1165
+ npx nx build storage-js --watch
1166
+
1167
+ # Generate documentation
1168
+ npx nx docs storage-js
1169
+ ```
1170
+
1171
+ ### Testing
1172
+
1173
+ **Important:** The storage-js tests require a local Supabase stack running via the Supabase CLI. Docker must be running since the Supabase CLI uses it internally.
1174
+
1175
+ #### Prerequisites
1176
+
1177
+ 1. **Docker** must be installed and running (used by Supabase CLI internally)
1178
+ 2. **Supabase CLI** — installed automatically via `npx supabase`
1179
+
1180
+ #### Test Scripts Overview
1181
+
1182
+ | Script | Description | What it does |
1183
+ | ----------------- | --------------------------------- | ----------------------------------------------------------------- |
1184
+ | `test:storage` | **Complete test workflow** | Runs the full test cycle: clean → start infra → run tests → clean |
1185
+ | `test:suite` | **Jest tests only** | Runs Jest tests with coverage (requires infra to be running) |
1186
+ | `test:infra` | **Start test infrastructure** | Starts Supabase CLI stack (PostgreSQL, Storage API, Kong, etc.) |
1187
+ | `test:clean-post` | **Stop and clean infrastructure** | Stops the Supabase CLI stack |
1188
+
1189
+ #### Running Tests
1190
+
1191
+ ##### Option 1: Complete Test Run (Recommended)
1192
+
1193
+ This handles everything automatically - starting infrastructure, running tests, and cleaning up:
1194
+
1195
+ ```bash
1196
+ # From monorepo root
1197
+ npx nx test:storage storage-js
1198
+ ```
1199
+
1200
+ This command will:
1201
+
1202
+ 1. Stop any existing test containers
1203
+ 2. Build and start fresh test infrastructure
1204
+ 3. Wait for services to be ready
1205
+ 4. Run all Jest tests with coverage
1206
+ 5. Clean up all containers after tests complete
1207
+
1208
+ ##### Option 2: Manual Infrastructure Management
1209
+
1210
+ Useful for development when you want to run tests multiple times without restarting Docker:
1211
+
1212
+ ```bash
1213
+ # Step 1: Start the test infrastructure
1214
+ # From root
1215
+ npx nx test:infra storage-js
1216
+ # This starts: PostgreSQL, Storage API, Kong Gateway, and imgproxy
1217
+
1218
+ # Step 2: Run tests (can run multiple times)
1219
+ npx nx test:suite storage-js
1220
+
1221
+ # Step 3: When done, clean up the infrastructure
1222
+ npx nx test:clean-post storage-js
1223
+ ```
1224
+
1225
+ ##### Option 3: Development Mode
1226
+
1227
+ For actively developing and debugging tests:
1228
+
1229
+ ```bash
1230
+ # Start infrastructure once (from root)
1231
+ npx nx test:infra storage-js
1232
+
1233
+ # Run tests in watch mode
1234
+ npx nx test:suite storage-js --watch
1235
+
1236
+ # Clean up when done
1237
+ npx nx test:clean-post storage-js
1238
+ ```
1239
+
1240
+ #### Test Infrastructure Details
1241
+
1242
+ The test infrastructure is managed via the Supabase CLI (`npx supabase start --workdir test`), which starts a local Supabase stack defined by the config in `test/`. This includes PostgreSQL, the Storage API, Kong Gateway, and supporting services.
1243
+
1244
+ #### Common Issues and Solutions
1245
+
1246
+ | Issue | Solution |
1247
+ | --------------------------------- | ------------------------------------------------------------------------------------------------ |
1248
+ | Port conflicts | Another service is using a required port. Run `npx nx test:clean-post storage-js` then try again |
1249
+ | "request failed, reason:" errors | Infrastructure isn't running. Run `npx nx test:infra storage-js` first |
1250
+ | Tests fail with connection errors | Ensure Docker is running (Supabase CLI requires Docker) |
1251
+ | Stack already running | Run `npx nx test:clean-post storage-js` to stop it before restarting |
1252
+
1253
+ #### Understanding Test Failures
1254
+
1255
+ - **StorageUnknownError with "request failed"**: Infrastructure not running
1256
+ - **Snapshot failures**: Expected test data has changed — review and update snapshots if needed
1257
+
1258
+ ### Contributing
1259
+
1260
+ We welcome contributions! Please see our [Contributing Guide](../../../CONTRIBUTING.md) for details on how to get started.
1261
+
1262
+ For major changes or if you're unsure about something, please open an issue first to discuss your proposed changes.