@supabase/storage-js 2.85.0 → 2.85.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +64 -0
  2. package/dist/main/lib/helpers.d.ts +16 -0
  3. package/dist/main/lib/helpers.d.ts.map +1 -1
  4. package/dist/main/lib/helpers.js +41 -1
  5. package/dist/main/lib/helpers.js.map +1 -1
  6. package/dist/main/lib/version.d.ts +1 -1
  7. package/dist/main/lib/version.d.ts.map +1 -1
  8. package/dist/main/lib/version.js +1 -1
  9. package/dist/main/lib/version.js.map +1 -1
  10. package/dist/main/packages/StorageAnalyticsClient.d.ts +137 -0
  11. package/dist/main/packages/StorageAnalyticsClient.d.ts.map +1 -1
  12. package/dist/main/packages/StorageAnalyticsClient.js +156 -0
  13. package/dist/main/packages/StorageAnalyticsClient.js.map +1 -1
  14. package/dist/module/lib/helpers.d.ts +16 -0
  15. package/dist/module/lib/helpers.d.ts.map +1 -1
  16. package/dist/module/lib/helpers.js +39 -0
  17. package/dist/module/lib/helpers.js.map +1 -1
  18. package/dist/module/lib/version.d.ts +1 -1
  19. package/dist/module/lib/version.d.ts.map +1 -1
  20. package/dist/module/lib/version.js +1 -1
  21. package/dist/module/lib/version.js.map +1 -1
  22. package/dist/module/packages/StorageAnalyticsClient.d.ts +137 -0
  23. package/dist/module/packages/StorageAnalyticsClient.d.ts.map +1 -1
  24. package/dist/module/packages/StorageAnalyticsClient.js +158 -2
  25. package/dist/module/packages/StorageAnalyticsClient.js.map +1 -1
  26. package/dist/tsconfig.module.tsbuildinfo +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/dist/umd/supabase.js +1 -1
  29. package/package.json +2 -1
  30. package/src/lib/helpers.ts +44 -0
  31. package/src/lib/version.ts +1 -1
  32. package/src/packages/StorageAnalyticsClient.ts +161 -1
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.supabase=t():e.supabase=t()}(self,()=>(()=>{"use strict";var e={12:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateVectorDimension=t.normalizeToFloat32=t.isPlainObject=t.resolveResponse=t.resolveFetch=void 0,t.resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),t.resolveResponse=()=>Response,t.isPlainObject=e=>{if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},t.normalizeToFloat32=e=>Array.from(new Float32Array(e)),t.validateVectorDimension=(e,t)=>{if(void 0!==t&&e.float32.length!==t)throw new Error(`Vector dimension mismatch: expected ${t}, got ${e.float32.length}`)}},96:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(251),i=r(607),s=r(442),a=r(819);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/bucket`,{name:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}listBuckets(e){return o.__awaiter(this,void 0,void 0,function*(){try{const t=new URLSearchParams;void 0!==(null==e?void 0:e.limit)&&t.set("limit",e.limit.toString()),void 0!==(null==e?void 0:e.offset)&&t.set("offset",e.offset.toString()),(null==e?void 0:e.sortColumn)&&t.set("sortColumn",e.sortColumn),(null==e?void 0:e.sortOrder)&&t.set("sortOrder",e.sortOrder),(null==e?void 0:e.search)&&t.set("search",e.search);const r=t.toString(),o=r?`${this.url}/bucket?${r}`:`${this.url}/bucket`;return{data:yield(0,s.get)(this.fetch,o,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.remove)(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}}},251:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;const o=r(822);t.DEFAULT_HEADERS={"X-Client-Info":`storage-js/${o.version}`}},272:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),i=r(538),s=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}putVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return{data:(yield(0,s.post)(this.fetch,`${this.url}/PutVectors`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/GetVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(void 0!==e.segmentCount){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");if(void 0!==e.segmentIndex&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error("segmentIndex must be between 0 and "+(e.segmentCount-1))}return{data:yield(0,s.post)(this.fetch,`${this.url}/ListVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}queryVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/QueryVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return{data:(yield(0,s.post)(this.fetch,`${this.url}/DeleteVectors`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},317:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"GET",t,r,n)})},t.post=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"POST",t,n,i,r)})},t.put=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"PUT",t,n,i,r)})},t.remove=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"DELETE",t,n,i,r)})};const o=r(823),n=r(538),i=r(12),s=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),a=(e,t,r)=>o.__awaiter(void 0,void 0,void 0,function*(){if(e&&"object"==typeof e&&"status"in e&&"ok"in e&&"number"==typeof e.status&&!(null==r?void 0:r.noResolveJson)){const r=e.status||500,o=e;if("function"==typeof o.json)o.json().then(e=>{const o=(null==e?void 0:e.statusCode)||(null==e?void 0:e.code)||r+"";t(new n.StorageVectorsApiError(s(e),r,o))}).catch(()=>{const e=r+"",i=o.statusText||`HTTP ${r} error`;t(new n.StorageVectorsApiError(i,r,e))});else{const e=r+"",i=o.statusText||`HTTP ${r} error`;t(new n.StorageVectorsApiError(i,r,e))}}else t(new n.StorageVectorsUnknownError(s(e),e))}),c=(e,t,r,o)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"!==e&&o?((0,i.isPlainObject)(o)?(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(o)):n.body=o,Object.assign(Object.assign({},n),r)):n};function u(e,t,r,n,i,s){return o.__awaiter(this,void 0,void 0,function*(){return new Promise((o,u)=>{e(r,c(t,n,i,s)).then(e=>{if(!e.ok)throw e;if(null==n?void 0:n.noResolveJson)return e;const t=e.headers.get("content-type");return t&&t.includes("application/json")?e.json():{}}).then(e=>o(e)).catch(e=>a(e,u,n))})})}},368:(e,t,r)=>{var o;Object.defineProperty(t,"__esModule",{value:!0});const n=r(823),i=r(607),s=n.__importDefault(r(857));o=Symbol.toStringTag,t.default=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[o]="BlobDownloadBuilder",this.promise=null}asStream(){return new s.default(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}execute(){return n.__awaiter(this,void 0,void 0,function*(){try{const e=yield this.downloadFn();return{data:yield e.blob(),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}}},411:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},442:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"GET",t,r,n)})},t.post=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"POST",t,n,i,r)})},t.put=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"PUT",t,n,i,r)})},t.head=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"HEAD",t,Object.assign(Object.assign({},r),{noResolveJson:!0}),n)})},t.remove=function(e,t,r,n,i){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"DELETE",t,n,i,r)})};const o=r(823),n=r(607),i=r(819),s=e=>{var t;return e.msg||e.message||e.error_description||("string"==typeof e.error?e.error:null===(t=e.error)||void 0===t?void 0:t.message)||JSON.stringify(e)},a=(e,t,r)=>o.__awaiter(void 0,void 0,void 0,function*(){const o=yield(0,i.resolveResponse)();e instanceof o&&!(null==r?void 0:r.noResolveJson)?e.json().then(r=>{const o=e.status||500,i=(null==r?void 0:r.statusCode)||o+"";t(new n.StorageApiError(s(r),o,i))}).catch(e=>{t(new n.StorageUnknownError(s(e),e))}):t(new n.StorageUnknownError(s(e),e))}),c=(e,t,r,o)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"!==e&&o?((0,i.isPlainObject)(o)?(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(o)):n.body=o,(null==t?void 0:t.duplex)&&(n.duplex=t.duplex),Object.assign(Object.assign({},n),r)):n};function u(e,t,r,n,i,s){return o.__awaiter(this,void 0,void 0,function*(){return new Promise((o,u)=>{e(r,c(t,n,i,s)).then(e=>{if(!e.ok)throw e;return(null==n?void 0:n.noResolveJson)?e:e.json()}).then(e=>o(e)).catch(e=>a(e,u,n))})})}},456:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageClient=void 0;const o=r(823),n=o.__importDefault(r(781)),i=o.__importDefault(r(485)),s=o.__importDefault(r(96)),a=r(833);class c extends i.default{constructor(e,t={},r,o){super(e,t,r,o)}from(e){return new n.default(this.url,this.headers,e,this.fetch)}get vectors(){return new a.StorageVectorsClient(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new s.default(this.url+"/iceberg",this.headers,this.fetch)}}t.StorageClient=c},485:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(251),i=r(607),s=r(442),a=r(819);t.default=class{constructor(e,t={},r,o){this.shouldThrowOnError=!1;const i=new URL(e);(null==o?void 0:o.useNewHostname)&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes("storage.supabase.")&&(i.hostname=i.hostname.replace("supabase.","storage.supabase.")),this.url=i.href.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}listBuckets(e){return o.__awaiter(this,void 0,void 0,function*(){try{const t=this.listBucketOptionsToQueryString(e);return{data:yield(0,s.get)(this.fetch,`${this.url}/bucket${t}`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}getBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.get)(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}createBucket(e){return o.__awaiter(this,arguments,void 0,function*(e,t={public:!1}){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}updateBucket(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.put)(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}emptyBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.remove)(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}listBucketOptionsToQueryString(e){const t={};return e&&("limit"in e&&(t.limit=String(e.limit)),"offset"in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>0?"?"+new URLSearchParams(t).toString():""}}},538:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageVectorsErrorCode=t.StorageVectorsUnknownError=t.StorageVectorsApiError=t.StorageVectorsError=void 0,t.isStorageVectorsError=function(e){return"object"==typeof e&&null!==e&&"__isStorageVectorsError"in e};class r extends Error{constructor(e){super(e),this.__isStorageVectorsError=!0,this.name="StorageVectorsError"}}var o;t.StorageVectorsError=r,t.StorageVectorsApiError=class extends r{constructor(e,t,r){super(e),this.name="StorageVectorsApiError",this.status=t,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},t.StorageVectorsUnknownError=class extends r{constructor(e,t){super(e),this.name="StorageVectorsUnknownError",this.originalError=t}},function(e){e.InternalError="InternalError",e.S3VectorConflictException="S3VectorConflictException",e.S3VectorNotFoundException="S3VectorNotFoundException",e.S3VectorBucketNotEmpty="S3VectorBucketNotEmpty",e.S3VectorMaxBucketsExceeded="S3VectorMaxBucketsExceeded",e.S3VectorMaxIndexesExceeded="S3VectorMaxIndexesExceeded"}(o||(t.StorageVectorsErrorCode=o={}))},562:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),i=r(538),s=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createIndex(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,s.post)(this.fetch,`${this.url}/CreateIndex`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getIndex(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listIndexes(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/ListIndexes`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteIndex(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,s.post)(this.fetch,`${this.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},565:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VectorIndexScope=t.VectorBucketScope=t.StorageVectorsClient=void 0;const o=r(823),n=o.__importDefault(r(562)),i=o.__importDefault(r(272)),s=o.__importDefault(r(658));class a extends s.default{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new c(this.url,this.headers,e,this.fetch)}createBucket(e){const t=Object.create(null,{createBucket:{get:()=>super.createBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.createBucket.call(this,e)})}getBucket(e){const t=Object.create(null,{getBucket:{get:()=>super.getBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.getBucket.call(this,e)})}listBuckets(){const e=Object.create(null,{listBuckets:{get:()=>super.listBuckets}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listBuckets.call(this,t)})}deleteBucket(e){const t=Object.create(null,{deleteBucket:{get:()=>super.deleteBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteBucket.call(this,e)})}}t.StorageVectorsClient=a;class c extends n.default{constructor(e,t,r,o){super(e,t,o),this.vectorBucketName=r}createIndex(e){const t=Object.create(null,{createIndex:{get:()=>super.createIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.createIndex.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName}))})}listIndexes(){const e=Object.create(null,{listIndexes:{get:()=>super.listIndexes}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listIndexes.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName}))})}getIndex(e){const t=Object.create(null,{getIndex:{get:()=>super.getIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.getIndex.call(this,this.vectorBucketName,e)})}deleteIndex(e){const t=Object.create(null,{deleteIndex:{get:()=>super.deleteIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteIndex.call(this,this.vectorBucketName,e)})}index(e){return new u(this.url,this.headers,this.vectorBucketName,e,this.fetch)}}t.VectorBucketScope=c;class u extends i.default{constructor(e,t,r,o,n){super(e,t,n),this.vectorBucketName=r,this.indexName=o}putVectors(e){const t=Object.create(null,{putVectors:{get:()=>super.putVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.putVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}getVectors(e){const t=Object.create(null,{getVectors:{get:()=>super.getVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.getVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}listVectors(){const e=Object.create(null,{listVectors:{get:()=>super.listVectors}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}queryVectors(e){const t=Object.create(null,{queryVectors:{get:()=>super.queryVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.queryVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}deleteVectors(e){const t=Object.create(null,{deleteVectors:{get:()=>super.deleteVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}}t.VectorIndexScope=u},607:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageUnknownError=t.StorageApiError=t.StorageError=void 0,t.isStorageError=function(e){return"object"==typeof e&&null!==e&&"__isStorageError"in e};class r extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}t.StorageError=r,t.StorageApiError=class extends r{constructor(e,t,r){super(e),this.name="StorageApiError",this.status=t,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},t.StorageUnknownError=class extends r{constructor(e,t){super(e),this.name="StorageUnknownError",this.originalError=t}}},646:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageAnalyticsClient=t.StorageClient=void 0;const o=r(823);var n=r(456);Object.defineProperty(t,"StorageClient",{enumerable:!0,get:function(){return n.StorageClient}});var i=r(96);Object.defineProperty(t,"StorageAnalyticsClient",{enumerable:!0,get:function(){return o.__importDefault(i).default}}),o.__exportStar(r(411),t),o.__exportStar(r(607),t),o.__exportStar(r(833),t)},658:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),i=r(538),s=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,s.post)(this.fetch,`${this.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/GetVectorBucket`,{vectorBucketName:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listBuckets(){return o.__awaiter(this,arguments,void 0,function*(e={}){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/ListVectorBuckets`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,s.post)(this.fetch,`${this.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},680:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;const o=r(822);t.DEFAULT_HEADERS={"X-Client-Info":`storage-js/${o.version}`,"Content-Type":"application/json"}},781:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(607),i=r(442),s=r(819),a=o.__importDefault(r(368)),c={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},u={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};t.default=class{constructor(e,t={},r,o){this.shouldThrowOnError=!1,this.url=e,this.headers=t,this.bucketId=r,this.fetch=(0,s.resolveFetch)(o)}throwOnError(){return this.shouldThrowOnError=!0,this}uploadOrUpdate(e,t,r,s){return o.__awaiter(this,void 0,void 0,function*(){try{let o;const n=Object.assign(Object.assign({},u),s);let a=Object.assign(Object.assign({},this.headers),"POST"===e&&{"x-upsert":String(n.upsert)});const c=n.metadata;"undefined"!=typeof Blob&&r instanceof Blob?(o=new FormData,o.append("cacheControl",n.cacheControl),c&&o.append("metadata",this.encodeMetadata(c)),o.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(o=r,o.has("cacheControl")||o.append("cacheControl",n.cacheControl),c&&!o.has("metadata")&&o.append("metadata",this.encodeMetadata(c))):(o=r,a["cache-control"]=`max-age=${n.cacheControl}`,a["content-type"]=n.contentType,c&&(a["x-metadata"]=this.toBase64(this.encodeMetadata(c))),("undefined"!=typeof ReadableStream&&o instanceof ReadableStream||o&&"object"==typeof o&&"pipe"in o&&"function"==typeof o.pipe)&&!n.duplex&&(n.duplex="half")),(null==s?void 0:s.headers)&&(a=Object.assign(Object.assign({},a),s.headers));const l=this._removeEmptyFolders(t),h=this._getFinalPath(l),d=yield("PUT"==e?i.put:i.post)(this.fetch,`${this.url}/object/${h}`,o,Object.assign({headers:a},(null==n?void 0:n.duplex)?{duplex:n.duplex}:{}));return{data:{path:l,id:d.Id,fullPath:d.Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}upload(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,t,r)})}uploadToSignedUrl(e,t,r,s){return o.__awaiter(this,void 0,void 0,function*(){const o=this._removeEmptyFolders(e),a=this._getFinalPath(o),c=new URL(this.url+`/object/upload/sign/${a}`);c.searchParams.set("token",t);try{let e;const t=Object.assign({upsert:u.upsert},s),n=Object.assign(Object.assign({},this.headers),{"x-upsert":String(t.upsert)});return"undefined"!=typeof Blob&&r instanceof Blob?(e=new FormData,e.append("cacheControl",t.cacheControl),e.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(e=r,e.append("cacheControl",t.cacheControl)):(e=r,n["cache-control"]=`max-age=${t.cacheControl}`,n["content-type"]=t.contentType),{data:{path:o,fullPath:(yield(0,i.put)(this.fetch,c.toString(),e,{headers:n})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUploadUrl(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{let r=this._getFinalPath(e);const o=Object.assign({},this.headers);(null==t?void 0:t.upsert)&&(o["x-upsert"]="true");const s=yield(0,i.post)(this.fetch,`${this.url}/object/upload/sign/${r}`,{},{headers:o}),a=new URL(this.url+s.url),c=a.searchParams.get("token");if(!c)throw new n.StorageError("No token returned by API");return{data:{signedUrl:a.toString(),path:e,token:c},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}update(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,t,r)})}move(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==r?void 0:r.destinationBucket},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}copy(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:{path:(yield(0,i.post)(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==r?void 0:r.destinationBucket},{headers:this.headers})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUrl(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{let o=this._getFinalPath(e),n=yield(0,i.post)(this.fetch,`${this.url}/object/sign/${o}`,Object.assign({expiresIn:t},(null==r?void 0:r.transform)?{transform:r.transform}:{}),{headers:this.headers});const s=(null==r?void 0:r.download)?`&download=${!0===r.download?"":r.download}`:"";return n={signedUrl:encodeURI(`${this.url}${n.signedURL}${s}`)},{data:n,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUrls(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{const o=yield(0,i.post)(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:t,paths:e},{headers:this.headers}),n=(null==r?void 0:r.download)?`&download=${!0===r.download?"":r.download}`:"";return{data:o.map(e=>Object.assign(Object.assign({},e),{signedUrl:e.signedURL?encodeURI(`${this.url}${e.signedURL}${n}`):null})),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}download(e,t){const r=void 0!==(null==t?void 0:t.transform)?"render/image/authenticated":"object",o=this.transformOptsToQueryString((null==t?void 0:t.transform)||{}),n=o?`?${o}`:"",s=this._getFinalPath(e);return new a.default(()=>(0,i.get)(this.fetch,`${this.url}/${r}/${s}${n}`,{headers:this.headers,noResolveJson:!0}),this.shouldThrowOnError)}info(e){return o.__awaiter(this,void 0,void 0,function*(){const t=this._getFinalPath(e);try{const e=yield(0,i.get)(this.fetch,`${this.url}/object/info/${t}`,{headers:this.headers});return{data:(0,s.recursiveToCamel)(e),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}exists(e){return o.__awaiter(this,void 0,void 0,function*(){const t=this._getFinalPath(e);try{return yield(0,i.head)(this.fetch,`${this.url}/object/${t}`,{headers:this.headers}),{data:!0,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e)&&e instanceof n.StorageUnknownError){const t=e.originalError;if([400,404].includes(null==t?void 0:t.status))return{data:!1,error:e}}throw e}})}getPublicUrl(e,t){const r=this._getFinalPath(e),o=[],n=(null==t?void 0:t.download)?`download=${!0===t.download?"":t.download}`:"";""!==n&&o.push(n);const i=void 0!==(null==t?void 0:t.transform)?"render/image":"object",s=this.transformOptsToQueryString((null==t?void 0:t.transform)||{});""!==s&&o.push(s);let a=o.join("&");return""!==a&&(a=`?${a}`),{data:{publicUrl:encodeURI(`${this.url}/${i}/public/${r}${a}`)}}}remove(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.remove)(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}list(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{const o=Object.assign(Object.assign(Object.assign({},c),t),{prefix:e||""});return{data:yield(0,i.post)(this.fetch,`${this.url}/object/list/${this.bucketId}`,o,{headers:this.headers},r),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}listV2(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{const r=Object.assign({},e);return{data:yield(0,i.post)(this.fetch,`${this.url}/object/list-v2/${this.bucketId}`,r,{headers:this.headers},t),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return"undefined"!=typeof Buffer?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(e){const t=[];return e.width&&t.push(`width=${e.width}`),e.height&&t.push(`height=${e.height}`),e.resize&&t.push(`resize=${e.resize}`),e.format&&t.push(`format=${e.format}`),e.quality&&t.push(`quality=${e.quality}`),t.join("&")}}},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=t.recursiveToCamel=t.resolveResponse=t.resolveFetch=void 0,t.resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),t.resolveResponse=()=>Response,t.recursiveToCamel=e=>{if(Array.isArray(e))return e.map(e=>(0,t.recursiveToCamel)(e));if("function"==typeof e||e!==Object(e))return e;const r={};return Object.entries(e).forEach(([e,o])=>{const n=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,""));r[n]=(0,t.recursiveToCamel)(o)}),r},t.isPlainObject=e=>{if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}},822:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="2.85.0"},823:(e,t,r)=>{r.r(t),r.d(t,{__addDisposableResource:()=>D,__assign:()=>i,__asyncDelegator:()=>j,__asyncGenerator:()=>S,__asyncValues:()=>x,__await:()=>E,__awaiter:()=>p,__classPrivateFieldGet:()=>B,__classPrivateFieldIn:()=>C,__classPrivateFieldSet:()=>I,__createBinding:()=>_,__decorate:()=>a,__disposeResources:()=>A,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>n,__generator:()=>v,__importDefault:()=>$,__importStar:()=>V,__makeTemplateObject:()=>T,__metadata:()=>f,__param:()=>c,__propKey:()=>h,__read:()=>w,__rest:()=>s,__rewriteRelativeImportExtension:()=>N,__runInitializers:()=>l,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>O,__spreadArrays:()=>m,__values:()=>g,default:()=>U});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)};function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return i=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},i.apply(this,arguments)};function s(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}function a(e,t,r,o){var n,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(i<3?n(s):i>3?n(t,r,s):n(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}function c(e,t){return function(r,o){t(r,o,e)}}function u(e,t,r,o,n,i){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,c=o.kind,u="getter"===c?"get":"setter"===c?"set":"value",l=!t&&e?o.static?e:e.prototype:null,h=t||(l?Object.getOwnPropertyDescriptor(l,o.name):{}),d=!1,f=r.length-1;f>=0;f--){var p={};for(var v in o)p[v]="access"===v?{}:o[v];for(var v in o.access)p.access[v]=o.access[v];p.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");i.push(s(e||null))};var _=(0,r[f])("accessor"===c?{get:h.get,set:h.set}:h[u],p);if("accessor"===c){if(void 0===_)continue;if(null===_||"object"!=typeof _)throw new TypeError("Object expected");(a=s(_.get))&&(h.get=a),(a=s(_.set))&&(h.set=a),(a=s(_.init))&&n.unshift(a)}else(a=s(_))&&("field"===c?n.unshift(a):h[u]=a)}l&&Object.defineProperty(l,o.name,h),d=!0}function l(e,t,r){for(var o=arguments.length>2,n=0;n<t.length;n++)r=o?t[n].call(e,r):t[n].call(e);return o?r:void 0}function h(e){return"symbol"==typeof e?e:"".concat(e)}function d(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function p(e,t,r,o){return new(r||(r=Promise))(function(n,i){function s(e){try{c(o.next(e))}catch(e){i(e)}}function a(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}c((o=o.apply(e,t||[])).next())})}function v(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,o=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((n=(n=i.trys).length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){i.label=a[1];break}if(6===a[0]&&i.label<n[1]){i.label=n[1],n=a;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(a);break}n[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],o=0}finally{r=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}var _=Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]};function y(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||_(t,e,r)}function g(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return s}function b(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(w(arguments[t]));return e}function m(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var o=Array(e),n=0;for(t=0;t<r;t++)for(var i=arguments[t],s=0,a=i.length;s<a;s++,n++)o[n]=i[s];return o}function O(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))}function E(e){return this instanceof E?(this.v=e,this):new E(e)}function S(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),i=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),o[Symbol.asyncIterator]=function(){return this},o;function s(e,t){n[e]&&(o[e]=function(t){return new Promise(function(r,o){i.push([e,t,r,o])>1||a(e,t)})},t&&(o[e]=t(o[e])))}function a(e,t){try{(r=n[e](t)).value instanceof E?Promise.resolve(r.value.v).then(c,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function c(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function j(e){var t,r;return t={},o("next"),o("throw",function(e){throw e}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,n){t[o]=e[o]?function(t){return(r=!r)?{value:E(e[o](t)),done:!1}:n?n(t):t}:n}}function x(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(r){t[r]=e[r]&&function(t){return new Promise(function(o,n){!function(e,t,r,o){Promise.resolve(o).then(function(t){e({value:t,done:r})},t)}(o,n,(t=e[r](t)).done,t.value)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var P=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},k=function(e){return k=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},k(e)};function V(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=k(e),o=0;o<r.length;o++)"default"!==r[o]&&_(t,e,r[o]);return P(t,e),t}function $(e){return e&&e.__esModule?e:{default:e}}function B(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)}function I(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r}function C(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function D(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var o,n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");o=t[Symbol.asyncDispose]}if(void 0===o){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");o=t[Symbol.dispose],r&&(n=o)}if("function"!=typeof o)throw new TypeError("Object not disposable.");n&&(o=function(){try{n.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:o,async:r})}else r&&e.stack.push({async:!0});return t}var F="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var o=new Error(r);return o.name="SuppressedError",o.error=e,o.suppressed=t,o};function A(e){function t(t){e.error=e.hasError?new F(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var r,o=0;return function n(){for(;r=e.stack.pop();)try{if(!r.async&&1===o)return o=0,e.stack.push(r),Promise.resolve().then(n);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return o|=2,Promise.resolve(i).then(n,function(e){return t(e),n()})}else o|=1}catch(e){t(e)}if(1===o)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function N(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,r,o,n,i){return r?t?".jsx":".js":!o||n&&i?o+n+"."+i.toLowerCase()+"js":e}):e}const U={__extends:n,__assign:i,__rest:s,__decorate:a,__param:c,__esDecorate:u,__runInitializers:l,__propKey:h,__setFunctionName:d,__metadata:f,__awaiter:p,__generator:v,__createBinding:_,__exportStar:y,__values:g,__read:w,__spread:b,__spreadArrays:m,__spreadArray:O,__await:E,__asyncGenerator:S,__asyncDelegator:j,__asyncValues:x,__makeTemplateObject:T,__importStar:V,__importDefault:$,__classPrivateFieldGet:B,__classPrivateFieldSet:I,__classPrivateFieldIn:C,__addDisposableResource:D,__disposeResources:A,__rewriteRelativeImportExtension:N}},833:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateVectorDimension=t.normalizeToFloat32=t.isPlainObject=t.resolveResponse=t.resolveFetch=t.isStorageVectorsError=t.StorageVectorsErrorCode=t.StorageVectorsUnknownError=t.StorageVectorsApiError=t.StorageVectorsError=t.VectorDataApi=t.VectorIndexApi=t.VectorBucketApi=t.VectorIndexScope=t.VectorBucketScope=t.StorageVectorsClient=void 0;const o=r(823);var n=r(565);Object.defineProperty(t,"StorageVectorsClient",{enumerable:!0,get:function(){return n.StorageVectorsClient}}),Object.defineProperty(t,"VectorBucketScope",{enumerable:!0,get:function(){return n.VectorBucketScope}}),Object.defineProperty(t,"VectorIndexScope",{enumerable:!0,get:function(){return n.VectorIndexScope}});var i=r(658);Object.defineProperty(t,"VectorBucketApi",{enumerable:!0,get:function(){return o.__importDefault(i).default}});var s=r(562);Object.defineProperty(t,"VectorIndexApi",{enumerable:!0,get:function(){return o.__importDefault(s).default}});var a=r(272);Object.defineProperty(t,"VectorDataApi",{enumerable:!0,get:function(){return o.__importDefault(a).default}});var c=r(538);Object.defineProperty(t,"StorageVectorsError",{enumerable:!0,get:function(){return c.StorageVectorsError}}),Object.defineProperty(t,"StorageVectorsApiError",{enumerable:!0,get:function(){return c.StorageVectorsApiError}}),Object.defineProperty(t,"StorageVectorsUnknownError",{enumerable:!0,get:function(){return c.StorageVectorsUnknownError}}),Object.defineProperty(t,"StorageVectorsErrorCode",{enumerable:!0,get:function(){return c.StorageVectorsErrorCode}}),Object.defineProperty(t,"isStorageVectorsError",{enumerable:!0,get:function(){return c.isStorageVectorsError}});var u=r(12);Object.defineProperty(t,"resolveFetch",{enumerable:!0,get:function(){return u.resolveFetch}}),Object.defineProperty(t,"resolveResponse",{enumerable:!0,get:function(){return u.resolveResponse}}),Object.defineProperty(t,"isPlainObject",{enumerable:!0,get:function(){return u.isPlainObject}}),Object.defineProperty(t,"normalizeToFloat32",{enumerable:!0,get:function(){return u.normalizeToFloat32}}),Object.defineProperty(t,"validateVectorDimension",{enumerable:!0,get:function(){return u.validateVectorDimension}})},857:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(607);t.default=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t}then(e,t){return this.execute().then(e,t)}execute(){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield this.downloadFn()).body,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}}}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}return r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(646)})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.supabase=t():e.supabase=t()}(self,()=>(()=>{"use strict";var e={12:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateVectorDimension=t.normalizeToFloat32=t.isPlainObject=t.resolveResponse=t.resolveFetch=void 0,t.resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),t.resolveResponse=()=>Response,t.isPlainObject=e=>{if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},t.normalizeToFloat32=e=>Array.from(new Float32Array(e)),t.validateVectorDimension=(e,t)=>{if(void 0!==t&&e.float32.length!==t)throw new Error(`Vector dimension mismatch: expected ${t}, got ${e.float32.length}`)}},96:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(643),s=r(251),i=r(607),a=r(442),c=r(819);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},s.DEFAULT_HEADERS),t),this.fetch=(0,c.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,a.post)(this.fetch,`${this.url}/bucket`,{name:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}listBuckets(e){return o.__awaiter(this,void 0,void 0,function*(){try{const t=new URLSearchParams;void 0!==(null==e?void 0:e.limit)&&t.set("limit",e.limit.toString()),void 0!==(null==e?void 0:e.offset)&&t.set("offset",e.offset.toString()),(null==e?void 0:e.sortColumn)&&t.set("sortColumn",e.sortColumn),(null==e?void 0:e.sortOrder)&&t.set("sortOrder",e.sortOrder),(null==e?void 0:e.search)&&t.set("search",e.search);const r=t.toString(),o=r?`${this.url}/bucket?${r}`:`${this.url}/bucket`;return{data:yield(0,a.get)(this.fetch,o,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,a.remove)(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,i.isStorageError)(e))return{data:null,error:e};throw e}})}from(e){if(!(0,c.isValidBucketName)(e))throw new i.StorageError("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");return new n.IcebergRestCatalog({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:()=>o.__awaiter(this,void 0,void 0,function*(){return this.headers})},fetch:this.fetch})}}},251:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;const o=r(822);t.DEFAULT_HEADERS={"X-Client-Info":`storage-js/${o.version}`}},272:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),s=r(538),i=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}putVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return{data:(yield(0,i.post)(this.fetch,`${this.url}/PutVectors`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/GetVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(void 0!==e.segmentCount){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");if(void 0!==e.segmentIndex&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error("segmentIndex must be between 0 and "+(e.segmentCount-1))}return{data:yield(0,i.post)(this.fetch,`${this.url}/ListVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}queryVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/QueryVectors`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteVectors(e){return o.__awaiter(this,void 0,void 0,function*(){try{if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return{data:(yield(0,i.post)(this.fetch,`${this.url}/DeleteVectors`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},317:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"GET",t,r,n)})},t.post=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"POST",t,n,s,r)})},t.put=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"PUT",t,n,s,r)})},t.remove=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"DELETE",t,n,s,r)})};const o=r(823),n=r(538),s=r(12),i=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),a=(e,t,r)=>o.__awaiter(void 0,void 0,void 0,function*(){if(e&&"object"==typeof e&&"status"in e&&"ok"in e&&"number"==typeof e.status&&!(null==r?void 0:r.noResolveJson)){const r=e.status||500,o=e;if("function"==typeof o.json)o.json().then(e=>{const o=(null==e?void 0:e.statusCode)||(null==e?void 0:e.code)||r+"";t(new n.StorageVectorsApiError(i(e),r,o))}).catch(()=>{const e=r+"",s=o.statusText||`HTTP ${r} error`;t(new n.StorageVectorsApiError(s,r,e))});else{const e=r+"",s=o.statusText||`HTTP ${r} error`;t(new n.StorageVectorsApiError(s,r,e))}}else t(new n.StorageVectorsUnknownError(i(e),e))}),c=(e,t,r,o)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"!==e&&o?((0,s.isPlainObject)(o)?(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(o)):n.body=o,Object.assign(Object.assign({},n),r)):n};function u(e,t,r,n,s,i){return o.__awaiter(this,void 0,void 0,function*(){return new Promise((o,u)=>{e(r,c(t,n,s,i)).then(e=>{if(!e.ok)throw e;if(null==n?void 0:n.noResolveJson)return e;const t=e.headers.get("content-type");return t&&t.includes("application/json")?e.json():{}}).then(e=>o(e)).catch(e=>a(e,u,n))})})}},368:(e,t,r)=>{var o;Object.defineProperty(t,"__esModule",{value:!0});const n=r(823),s=r(607),i=n.__importDefault(r(857));o=Symbol.toStringTag,t.default=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[o]="BlobDownloadBuilder",this.promise=null}asStream(){return new i.default(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}execute(){return n.__awaiter(this,void 0,void 0,function*(){try{const e=yield this.downloadFn();return{data:yield e.blob(),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}}},411:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},442:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"GET",t,r,n)})},t.post=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"POST",t,n,s,r)})},t.put=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"PUT",t,n,s,r)})},t.head=function(e,t,r,n){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"HEAD",t,Object.assign(Object.assign({},r),{noResolveJson:!0}),n)})},t.remove=function(e,t,r,n,s){return o.__awaiter(this,void 0,void 0,function*(){return u(e,"DELETE",t,n,s,r)})};const o=r(823),n=r(607),s=r(819),i=e=>{var t;return e.msg||e.message||e.error_description||("string"==typeof e.error?e.error:null===(t=e.error)||void 0===t?void 0:t.message)||JSON.stringify(e)},a=(e,t,r)=>o.__awaiter(void 0,void 0,void 0,function*(){const o=yield(0,s.resolveResponse)();e instanceof o&&!(null==r?void 0:r.noResolveJson)?e.json().then(r=>{const o=e.status||500,s=(null==r?void 0:r.statusCode)||o+"";t(new n.StorageApiError(i(r),o,s))}).catch(e=>{t(new n.StorageUnknownError(i(e),e))}):t(new n.StorageUnknownError(i(e),e))}),c=(e,t,r,o)=>{const n={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"!==e&&o?((0,s.isPlainObject)(o)?(n.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),n.body=JSON.stringify(o)):n.body=o,(null==t?void 0:t.duplex)&&(n.duplex=t.duplex),Object.assign(Object.assign({},n),r)):n};function u(e,t,r,n,s,i){return o.__awaiter(this,void 0,void 0,function*(){return new Promise((o,u)=>{e(r,c(t,n,s,i)).then(e=>{if(!e.ok)throw e;return(null==n?void 0:n.noResolveJson)?e:e.json()}).then(e=>o(e)).catch(e=>a(e,u,n))})})}},456:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageClient=void 0;const o=r(823),n=o.__importDefault(r(781)),s=o.__importDefault(r(485)),i=o.__importDefault(r(96)),a=r(833);class c extends s.default{constructor(e,t={},r,o){super(e,t,r,o)}from(e){return new n.default(this.url,this.headers,e,this.fetch)}get vectors(){return new a.StorageVectorsClient(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new i.default(this.url+"/iceberg",this.headers,this.fetch)}}t.StorageClient=c},485:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(251),s=r(607),i=r(442),a=r(819);t.default=class{constructor(e,t={},r,o){this.shouldThrowOnError=!1;const s=new URL(e);(null==o?void 0:o.useNewHostname)&&/supabase\.(co|in|red)$/.test(s.hostname)&&!s.hostname.includes("storage.supabase.")&&(s.hostname=s.hostname.replace("supabase.","storage.supabase.")),this.url=s.href.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}listBuckets(e){return o.__awaiter(this,void 0,void 0,function*(){try{const t=this.listBucketOptionsToQueryString(e);return{data:yield(0,i.get)(this.fetch,`${this.url}/bucket${t}`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}getBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.get)(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}createBucket(e){return o.__awaiter(this,arguments,void 0,function*(e,t={public:!1}){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}updateBucket(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.put)(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}emptyBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.remove)(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageError)(e))return{data:null,error:e};throw e}})}listBucketOptionsToQueryString(e){const t={};return e&&("limit"in e&&(t.limit=String(e.limit)),"offset"in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>0?"?"+new URLSearchParams(t).toString():""}}},538:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageVectorsErrorCode=t.StorageVectorsUnknownError=t.StorageVectorsApiError=t.StorageVectorsError=void 0,t.isStorageVectorsError=function(e){return"object"==typeof e&&null!==e&&"__isStorageVectorsError"in e};class r extends Error{constructor(e){super(e),this.__isStorageVectorsError=!0,this.name="StorageVectorsError"}}var o;t.StorageVectorsError=r,t.StorageVectorsApiError=class extends r{constructor(e,t,r){super(e),this.name="StorageVectorsApiError",this.status=t,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},t.StorageVectorsUnknownError=class extends r{constructor(e,t){super(e),this.name="StorageVectorsUnknownError",this.originalError=t}},function(e){e.InternalError="InternalError",e.S3VectorConflictException="S3VectorConflictException",e.S3VectorNotFoundException="S3VectorNotFoundException",e.S3VectorBucketNotEmpty="S3VectorBucketNotEmpty",e.S3VectorMaxBucketsExceeded="S3VectorMaxBucketsExceeded",e.S3VectorMaxIndexesExceeded="S3VectorMaxIndexesExceeded"}(o||(t.StorageVectorsErrorCode=o={}))},562:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),s=r(538),i=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createIndex(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,i.post)(this.fetch,`${this.url}/CreateIndex`,e,{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getIndex(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listIndexes(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/ListIndexes`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteIndex(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,i.post)(this.fetch,`${this.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},565:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VectorIndexScope=t.VectorBucketScope=t.StorageVectorsClient=void 0;const o=r(823),n=o.__importDefault(r(562)),s=o.__importDefault(r(272)),i=o.__importDefault(r(658));class a extends i.default{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new c(this.url,this.headers,e,this.fetch)}createBucket(e){const t=Object.create(null,{createBucket:{get:()=>super.createBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.createBucket.call(this,e)})}getBucket(e){const t=Object.create(null,{getBucket:{get:()=>super.getBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.getBucket.call(this,e)})}listBuckets(){const e=Object.create(null,{listBuckets:{get:()=>super.listBuckets}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listBuckets.call(this,t)})}deleteBucket(e){const t=Object.create(null,{deleteBucket:{get:()=>super.deleteBucket}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteBucket.call(this,e)})}}t.StorageVectorsClient=a;class c extends n.default{constructor(e,t,r,o){super(e,t,o),this.vectorBucketName=r}createIndex(e){const t=Object.create(null,{createIndex:{get:()=>super.createIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.createIndex.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName}))})}listIndexes(){const e=Object.create(null,{listIndexes:{get:()=>super.listIndexes}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listIndexes.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName}))})}getIndex(e){const t=Object.create(null,{getIndex:{get:()=>super.getIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.getIndex.call(this,this.vectorBucketName,e)})}deleteIndex(e){const t=Object.create(null,{deleteIndex:{get:()=>super.deleteIndex}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteIndex.call(this,this.vectorBucketName,e)})}index(e){return new u(this.url,this.headers,this.vectorBucketName,e,this.fetch)}}t.VectorBucketScope=c;class u extends s.default{constructor(e,t,r,o,n){super(e,t,n),this.vectorBucketName=r,this.indexName=o}putVectors(e){const t=Object.create(null,{putVectors:{get:()=>super.putVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.putVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}getVectors(e){const t=Object.create(null,{getVectors:{get:()=>super.getVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.getVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}listVectors(){const e=Object.create(null,{listVectors:{get:()=>super.listVectors}});return o.__awaiter(this,arguments,void 0,function*(t={}){return e.listVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}queryVectors(e){const t=Object.create(null,{queryVectors:{get:()=>super.queryVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.queryVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}deleteVectors(e){const t=Object.create(null,{deleteVectors:{get:()=>super.deleteVectors}});return o.__awaiter(this,void 0,void 0,function*(){return t.deleteVectors.call(this,Object.assign(Object.assign({},e),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}}t.VectorIndexScope=u},607:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageUnknownError=t.StorageApiError=t.StorageError=void 0,t.isStorageError=function(e){return"object"==typeof e&&null!==e&&"__isStorageError"in e};class r extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}t.StorageError=r,t.StorageApiError=class extends r{constructor(e,t,r){super(e),this.name="StorageApiError",this.status=t,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},t.StorageUnknownError=class extends r{constructor(e,t){super(e),this.name="StorageUnknownError",this.originalError=t}}},643:(e,t)=>{var r=class extends Error{constructor(e,t){super(e),this.name="IcebergError",this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown="CommitStateUnknownException"===t.icebergType||[500,502,504].includes(t.status)&&!0===t.icebergType?.includes("CommitState")}isNotFound(){return 404===this.status}isConflict(){return 409===this.status}isAuthenticationTimeout(){return 419===this.status}};function o(e){return e.join("")}var n=class{constructor(e,t=""){this.client=e,this.prefix=t}async listNamespaces(e){const t=e?{parent:o(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(e=>({namespace:e}))}async createNamespace(e,t){const r={namespace:e.namespace,properties:t?.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:r})).data}async dropNamespace(e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${o(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${o(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${o(e.namespace)}`}),!0}catch(e){if(e instanceof r&&404===e.status)return!1;throw e}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(e){if(e instanceof r&&409===e.status)return;throw e}}};function s(e){return e.join("")}var i=class{constructor(e,t="",r){this.client=e,this.prefix=t,this.accessDelegation=r}async listTables(e){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){const r={};return this.accessDelegation&&(r["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables`,body:t,headers:r})).data.metadata}async updateTable(e,t){const r=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":r.data["metadata-location"],metadata:r.data.metadata}}async dropTable(e,t){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){const t={};return this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){const t={};this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${s(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(e){if(e instanceof r&&404===e.status)return!1;throw e}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(o){if(o instanceof r&&409===o.status)return await this.loadTable({namespace:e.namespace,name:t.name});throw o}}};t.IcebergError=r,t.IcebergRestCatalog=class{constructor(e){let t="v1";e.catalogName&&(t+=`/${e.catalogName}`);const o=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=function(e){const t=e.fetchImpl??globalThis.fetch;return{async request({method:o,path:n,query:s,body:i,headers:a}){const c=function(e,t,r){const o=new URL(t,e);if(r)for(const[e,t]of Object.entries(r))void 0!==t&&o.searchParams.set(e,t);return o.toString()}(e.baseUrl,n,s),u=await async function(e){return e&&"none"!==e.type?"bearer"===e.type?{Authorization:`Bearer ${e.token}`}:"header"===e.type?{[e.name]:e.value}:"custom"===e.type?await e.getHeaders():{}:{}}(e.auth),l=await t(c,{method:o,headers:{...i?{"Content-Type":"application/json"}:{},...u,...a},body:i?JSON.stringify(i):void 0}),h=await l.text(),d=(l.headers.get("content-type")||"").includes("application/json"),f=d&&h?JSON.parse(h):h;if(!l.ok){const e=d?f:void 0,t=e?.error;throw new r(t?.message??`Request failed with status ${l.status}`,{status:l.status,icebergType:t?.type,icebergCode:t?.code,details:e})}return{status:l.status,headers:l.headers,data:f}}}}({baseUrl:o,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(","),this.namespaceOps=new n(this.client,t),this.tableOps=new i(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}},t.getCurrentSchema=function(e){return e.schemas.find(t=>t["schema-id"]===e["current-schema-id"])}},646:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StorageAnalyticsClient=t.StorageClient=void 0;const o=r(823);var n=r(456);Object.defineProperty(t,"StorageClient",{enumerable:!0,get:function(){return n.StorageClient}});var s=r(96);Object.defineProperty(t,"StorageAnalyticsClient",{enumerable:!0,get:function(){return o.__importDefault(s).default}}),o.__exportStar(r(411),t),o.__exportStar(r(607),t),o.__exportStar(r(833),t)},658:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(680),s=r(538),i=r(317),a=r(12);t.default=class{constructor(e,t={},r){this.shouldThrowOnError=!1,this.url=e.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},n.DEFAULT_HEADERS),t),this.fetch=(0,a.resolveFetch)(r)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,i.post)(this.fetch,`${this.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}getBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/GetVectorBucket`,{vectorBucketName:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}listBuckets(){return o.__awaiter(this,arguments,void 0,function*(e={}){try{return{data:yield(0,i.post)(this.fetch,`${this.url}/ListVectorBuckets`,e,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}deleteBucket(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield(0,i.post)(this.fetch,`${this.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:this.headers}))||{},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,s.isStorageVectorsError)(e))return{data:null,error:e};throw e}})}}},680:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;const o=r(822);t.DEFAULT_HEADERS={"X-Client-Info":`storage-js/${o.version}`,"Content-Type":"application/json"}},781:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(607),s=r(442),i=r(819),a=o.__importDefault(r(368)),c={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},u={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};t.default=class{constructor(e,t={},r,o){this.shouldThrowOnError=!1,this.url=e,this.headers=t,this.bucketId=r,this.fetch=(0,i.resolveFetch)(o)}throwOnError(){return this.shouldThrowOnError=!0,this}uploadOrUpdate(e,t,r,i){return o.__awaiter(this,void 0,void 0,function*(){try{let o;const n=Object.assign(Object.assign({},u),i);let a=Object.assign(Object.assign({},this.headers),"POST"===e&&{"x-upsert":String(n.upsert)});const c=n.metadata;"undefined"!=typeof Blob&&r instanceof Blob?(o=new FormData,o.append("cacheControl",n.cacheControl),c&&o.append("metadata",this.encodeMetadata(c)),o.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(o=r,o.has("cacheControl")||o.append("cacheControl",n.cacheControl),c&&!o.has("metadata")&&o.append("metadata",this.encodeMetadata(c))):(o=r,a["cache-control"]=`max-age=${n.cacheControl}`,a["content-type"]=n.contentType,c&&(a["x-metadata"]=this.toBase64(this.encodeMetadata(c))),("undefined"!=typeof ReadableStream&&o instanceof ReadableStream||o&&"object"==typeof o&&"pipe"in o&&"function"==typeof o.pipe)&&!n.duplex&&(n.duplex="half")),(null==i?void 0:i.headers)&&(a=Object.assign(Object.assign({},a),i.headers));const l=this._removeEmptyFolders(t),h=this._getFinalPath(l),d=yield("PUT"==e?s.put:s.post)(this.fetch,`${this.url}/object/${h}`,o,Object.assign({headers:a},(null==n?void 0:n.duplex)?{duplex:n.duplex}:{}));return{data:{path:l,id:d.Id,fullPath:d.Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}upload(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,t,r)})}uploadToSignedUrl(e,t,r,i){return o.__awaiter(this,void 0,void 0,function*(){const o=this._removeEmptyFolders(e),a=this._getFinalPath(o),c=new URL(this.url+`/object/upload/sign/${a}`);c.searchParams.set("token",t);try{let e;const t=Object.assign({upsert:u.upsert},i),n=Object.assign(Object.assign({},this.headers),{"x-upsert":String(t.upsert)});return"undefined"!=typeof Blob&&r instanceof Blob?(e=new FormData,e.append("cacheControl",t.cacheControl),e.append("",r)):"undefined"!=typeof FormData&&r instanceof FormData?(e=r,e.append("cacheControl",t.cacheControl)):(e=r,n["cache-control"]=`max-age=${t.cacheControl}`,n["content-type"]=t.contentType),{data:{path:o,fullPath:(yield(0,s.put)(this.fetch,c.toString(),e,{headers:n})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUploadUrl(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{let r=this._getFinalPath(e);const o=Object.assign({},this.headers);(null==t?void 0:t.upsert)&&(o["x-upsert"]="true");const i=yield(0,s.post)(this.fetch,`${this.url}/object/upload/sign/${r}`,{},{headers:o}),a=new URL(this.url+i.url),c=a.searchParams.get("token");if(!c)throw new n.StorageError("No token returned by API");return{data:{signedUrl:a.toString(),path:e,token:c},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}update(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,t,r)})}move(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.post)(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==r?void 0:r.destinationBucket},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}copy(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:{path:(yield(0,s.post)(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==r?void 0:r.destinationBucket},{headers:this.headers})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUrl(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{let o=this._getFinalPath(e),n=yield(0,s.post)(this.fetch,`${this.url}/object/sign/${o}`,Object.assign({expiresIn:t},(null==r?void 0:r.transform)?{transform:r.transform}:{}),{headers:this.headers});const i=(null==r?void 0:r.download)?`&download=${!0===r.download?"":r.download}`:"";return n={signedUrl:encodeURI(`${this.url}${n.signedURL}${i}`)},{data:n,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}createSignedUrls(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{const o=yield(0,s.post)(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:t,paths:e},{headers:this.headers}),n=(null==r?void 0:r.download)?`&download=${!0===r.download?"":r.download}`:"";return{data:o.map(e=>Object.assign(Object.assign({},e),{signedUrl:e.signedURL?encodeURI(`${this.url}${e.signedURL}${n}`):null})),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}download(e,t){const r=void 0!==(null==t?void 0:t.transform)?"render/image/authenticated":"object",o=this.transformOptsToQueryString((null==t?void 0:t.transform)||{}),n=o?`?${o}`:"",i=this._getFinalPath(e);return new a.default(()=>(0,s.get)(this.fetch,`${this.url}/${r}/${i}${n}`,{headers:this.headers,noResolveJson:!0}),this.shouldThrowOnError)}info(e){return o.__awaiter(this,void 0,void 0,function*(){const t=this._getFinalPath(e);try{const e=yield(0,s.get)(this.fetch,`${this.url}/object/info/${t}`,{headers:this.headers});return{data:(0,i.recursiveToCamel)(e),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}exists(e){return o.__awaiter(this,void 0,void 0,function*(){const t=this._getFinalPath(e);try{return yield(0,s.head)(this.fetch,`${this.url}/object/${t}`,{headers:this.headers}),{data:!0,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e)&&e instanceof n.StorageUnknownError){const t=e.originalError;if([400,404].includes(null==t?void 0:t.status))return{data:!1,error:e}}throw e}})}getPublicUrl(e,t){const r=this._getFinalPath(e),o=[],n=(null==t?void 0:t.download)?`download=${!0===t.download?"":t.download}`:"";""!==n&&o.push(n);const s=void 0!==(null==t?void 0:t.transform)?"render/image":"object",i=this.transformOptsToQueryString((null==t?void 0:t.transform)||{});""!==i&&o.push(i);let a=o.join("&");return""!==a&&(a=`?${a}`),{data:{publicUrl:encodeURI(`${this.url}/${s}/public/${r}${a}`)}}}remove(e){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:yield(0,s.remove)(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}list(e,t,r){return o.__awaiter(this,void 0,void 0,function*(){try{const o=Object.assign(Object.assign(Object.assign({},c),t),{prefix:e||""});return{data:yield(0,s.post)(this.fetch,`${this.url}/object/list/${this.bucketId}`,o,{headers:this.headers},r),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}listV2(e,t){return o.__awaiter(this,void 0,void 0,function*(){try{const r=Object.assign({},e);return{data:yield(0,s.post)(this.fetch,`${this.url}/object/list-v2/${this.bucketId}`,r,{headers:this.headers},t),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return"undefined"!=typeof Buffer?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(e){const t=[];return e.width&&t.push(`width=${e.width}`),e.height&&t.push(`height=${e.height}`),e.resize&&t.push(`resize=${e.resize}`),e.format&&t.push(`format=${e.format}`),e.quality&&t.push(`quality=${e.quality}`),t.join("&")}}},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isValidBucketName=t.isPlainObject=t.recursiveToCamel=t.resolveResponse=t.resolveFetch=void 0,t.resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),t.resolveResponse=()=>Response,t.recursiveToCamel=e=>{if(Array.isArray(e))return e.map(e=>(0,t.recursiveToCamel)(e));if("function"==typeof e||e!==Object(e))return e;const r={};return Object.entries(e).forEach(([e,o])=>{const n=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,""));r[n]=(0,t.recursiveToCamel)(o)}),r},t.isPlainObject=e=>{if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},t.isValidBucketName=e=>!(!e||"string"!=typeof e)&&(!(0===e.length||e.length>100)&&(e.trim()===e&&(!e.includes("/")&&!e.includes("\\")&&/^[\w!.\*'() &$@=;:+,?-]+$/.test(e))))},822:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="2.85.1-canary.0"},823:(e,t,r)=>{r.r(t),r.d(t,{__addDisposableResource:()=>C,__assign:()=>s,__asyncDelegator:()=>j,__asyncGenerator:()=>S,__asyncValues:()=>T,__await:()=>E,__awaiter:()=>p,__classPrivateFieldGet:()=>I,__classPrivateFieldIn:()=>N,__classPrivateFieldSet:()=>B,__createBinding:()=>m,__decorate:()=>a,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>g,__extends:()=>n,__generator:()=>y,__importDefault:()=>$,__importStar:()=>V,__makeTemplateObject:()=>x,__metadata:()=>f,__param:()=>c,__propKey:()=>h,__read:()=>w,__rest:()=>i,__rewriteRelativeImportExtension:()=>A,__runInitializers:()=>l,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>O,__spreadArrays:()=>_,__values:()=>v,default:()=>U});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)};function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return s=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},s.apply(this,arguments)};function i(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}function a(e,t,r,o){var n,s=arguments.length,i=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(i=(s<3?n(i):s>3?n(t,r,i):n(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}function c(e,t){return function(r,o){t(r,o,e)}}function u(e,t,r,o,n,s){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,c=o.kind,u="getter"===c?"get":"setter"===c?"set":"value",l=!t&&e?o.static?e:e.prototype:null,h=t||(l?Object.getOwnPropertyDescriptor(l,o.name):{}),d=!1,f=r.length-1;f>=0;f--){var p={};for(var y in o)p[y]="access"===y?{}:o[y];for(var y in o.access)p.access[y]=o.access[y];p.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var m=(0,r[f])("accessor"===c?{get:h.get,set:h.set}:h[u],p);if("accessor"===c){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(a=i(m.get))&&(h.get=a),(a=i(m.set))&&(h.set=a),(a=i(m.init))&&n.unshift(a)}else(a=i(m))&&("field"===c?n.unshift(a):h[u]=a)}l&&Object.defineProperty(l,o.name,h),d=!0}function l(e,t,r){for(var o=arguments.length>2,n=0;n<t.length;n++)r=o?t[n].call(e,r):t[n].call(e);return o?r:void 0}function h(e){return"symbol"==typeof e?e:"".concat(e)}function d(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function p(e,t,r,o){return new(r||(r=Promise))(function(n,s){function i(e){try{c(o.next(e))}catch(e){s(e)}}function a(e){try{c(o.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(i,a)}c((o=o.apply(e,t||[])).next())})}function y(e,t){var r,o,n,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=a(0),i.throw=a(1),i.return=a(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(r=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,o=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((n=(n=s.trys).length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){s.label=a[1];break}if(6===a[0]&&s.label<n[1]){s.label=n[1],n=a;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(a);break}n[2]&&s.ops.pop(),s.trys.pop();continue}a=t.call(e,s)}catch(e){a=[6,e],o=0}finally{r=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}var m=Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]};function g(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||m(t,e,r)}function v(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,s=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=s.next()).done;)i.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return i}function b(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(w(arguments[t]));return e}function _(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var o=Array(e),n=0;for(t=0;t<r;t++)for(var s=arguments[t],i=0,a=s.length;i<a;i++,n++)o[n]=s[i];return o}function O(e,t,r){if(r||2===arguments.length)for(var o,n=0,s=t.length;n<s;n++)!o&&n in t||(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))}function E(e){return this instanceof E?(this.v=e,this):new E(e)}function S(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),s=[];return o=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),o[Symbol.asyncIterator]=function(){return this},o;function i(e,t){n[e]&&(o[e]=function(t){return new Promise(function(r,o){s.push([e,t,r,o])>1||a(e,t)})},t&&(o[e]=t(o[e])))}function a(e,t){try{(r=n[e](t)).value instanceof E?Promise.resolve(r.value.v).then(c,u):l(s[0][2],r)}catch(e){l(s[0][3],e)}var r}function c(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}function j(e){var t,r;return t={},o("next"),o("throw",function(e){throw e}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,n){t[o]=e[o]?function(t){return(r=!r)?{value:E(e[o](t)),done:!1}:n?n(t):t}:n}}function T(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=v(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(r){t[r]=e[r]&&function(t){return new Promise(function(o,n){!function(e,t,r,o){Promise.resolve(o).then(function(t){e({value:t,done:r})},t)}(o,n,(t=e[r](t)).done,t.value)})}}}function x(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var k=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return P=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},P(e)};function V(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=P(e),o=0;o<r.length;o++)"default"!==r[o]&&m(t,e,r[o]);return k(t,e),t}function $(e){return e&&e.__esModule?e:{default:e}}function I(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)}function B(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r}function N(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function C(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var o,n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");o=t[Symbol.asyncDispose]}if(void 0===o){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");o=t[Symbol.dispose],r&&(n=o)}if("function"!=typeof o)throw new TypeError("Object not disposable.");n&&(o=function(){try{n.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:o,async:r})}else r&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var o=new Error(r);return o.name="SuppressedError",o.error=e,o.suppressed=t,o};function F(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var r,o=0;return function n(){for(;r=e.stack.pop();)try{if(!r.async&&1===o)return o=0,e.stack.push(r),Promise.resolve().then(n);if(r.dispose){var s=r.dispose.call(r.value);if(r.async)return o|=2,Promise.resolve(s).then(n,function(e){return t(e),n()})}else o|=1}catch(e){t(e)}if(1===o)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function A(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,r,o,n,s){return r?t?".jsx":".js":!o||n&&s?o+n+"."+s.toLowerCase()+"js":e}):e}const U={__extends:n,__assign:s,__rest:i,__decorate:a,__param:c,__esDecorate:u,__runInitializers:l,__propKey:h,__setFunctionName:d,__metadata:f,__awaiter:p,__generator:y,__createBinding:m,__exportStar:g,__values:v,__read:w,__spread:b,__spreadArrays:_,__spreadArray:O,__await:E,__asyncGenerator:S,__asyncDelegator:j,__asyncValues:T,__makeTemplateObject:x,__importStar:V,__importDefault:$,__classPrivateFieldGet:I,__classPrivateFieldSet:B,__classPrivateFieldIn:N,__addDisposableResource:C,__disposeResources:F,__rewriteRelativeImportExtension:A}},833:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateVectorDimension=t.normalizeToFloat32=t.isPlainObject=t.resolveResponse=t.resolveFetch=t.isStorageVectorsError=t.StorageVectorsErrorCode=t.StorageVectorsUnknownError=t.StorageVectorsApiError=t.StorageVectorsError=t.VectorDataApi=t.VectorIndexApi=t.VectorBucketApi=t.VectorIndexScope=t.VectorBucketScope=t.StorageVectorsClient=void 0;const o=r(823);var n=r(565);Object.defineProperty(t,"StorageVectorsClient",{enumerable:!0,get:function(){return n.StorageVectorsClient}}),Object.defineProperty(t,"VectorBucketScope",{enumerable:!0,get:function(){return n.VectorBucketScope}}),Object.defineProperty(t,"VectorIndexScope",{enumerable:!0,get:function(){return n.VectorIndexScope}});var s=r(658);Object.defineProperty(t,"VectorBucketApi",{enumerable:!0,get:function(){return o.__importDefault(s).default}});var i=r(562);Object.defineProperty(t,"VectorIndexApi",{enumerable:!0,get:function(){return o.__importDefault(i).default}});var a=r(272);Object.defineProperty(t,"VectorDataApi",{enumerable:!0,get:function(){return o.__importDefault(a).default}});var c=r(538);Object.defineProperty(t,"StorageVectorsError",{enumerable:!0,get:function(){return c.StorageVectorsError}}),Object.defineProperty(t,"StorageVectorsApiError",{enumerable:!0,get:function(){return c.StorageVectorsApiError}}),Object.defineProperty(t,"StorageVectorsUnknownError",{enumerable:!0,get:function(){return c.StorageVectorsUnknownError}}),Object.defineProperty(t,"StorageVectorsErrorCode",{enumerable:!0,get:function(){return c.StorageVectorsErrorCode}}),Object.defineProperty(t,"isStorageVectorsError",{enumerable:!0,get:function(){return c.isStorageVectorsError}});var u=r(12);Object.defineProperty(t,"resolveFetch",{enumerable:!0,get:function(){return u.resolveFetch}}),Object.defineProperty(t,"resolveResponse",{enumerable:!0,get:function(){return u.resolveResponse}}),Object.defineProperty(t,"isPlainObject",{enumerable:!0,get:function(){return u.isPlainObject}}),Object.defineProperty(t,"normalizeToFloat32",{enumerable:!0,get:function(){return u.normalizeToFloat32}}),Object.defineProperty(t,"validateVectorDimension",{enumerable:!0,get:function(){return u.validateVectorDimension}})},857:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(823),n=r(607);t.default=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t}then(e,t){return this.execute().then(e,t)}execute(){return o.__awaiter(this,void 0,void 0,function*(){try{return{data:(yield this.downloadFn()).body,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if((0,n.isStorageError)(e))return{data:null,error:e};throw e}})}}}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}return r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(646)})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/storage-js",
3
- "version": "2.85.0",
3
+ "version": "2.85.1-canary.0",
4
4
  "description": "Isomorphic storage client for Supabase.",
5
5
  "keywords": [
6
6
  "javascript",
@@ -37,6 +37,7 @@
37
37
  "docs:json": "typedoc --json docs/v2/spec.json --entryPoints src/index.ts --entryPoints src/packages/* --excludePrivate --excludeExternals --excludeProtected"
38
38
  },
39
39
  "dependencies": {
40
+ "iceberg-js": "^0.8.0",
40
41
  "tslib": "2.8.1"
41
42
  },
42
43
  "devDependencies": {
@@ -46,3 +46,47 @@ export const isPlainObject = (value: object): boolean => {
46
46
  !(Symbol.iterator in value)
47
47
  )
48
48
  }
49
+
50
+ /**
51
+ * Validates if a given bucket name is valid according to Supabase Storage API rules
52
+ * Mirrors backend validation from: storage/src/storage/limits.ts:isValidBucketName()
53
+ *
54
+ * Rules:
55
+ * - Length: 1-100 characters
56
+ * - Allowed characters: alphanumeric (a-z, A-Z, 0-9), underscore (_), and safe special characters
57
+ * - Safe special characters: ! - . * ' ( ) space & $ @ = ; : + , ?
58
+ * - Forbidden: path separators (/, \), path traversal (..), leading/trailing whitespace
59
+ *
60
+ * AWS S3 Reference: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
61
+ *
62
+ * @param bucketName - The bucket name to validate
63
+ * @returns true if valid, false otherwise
64
+ */
65
+ export const isValidBucketName = (bucketName: string): boolean => {
66
+ if (!bucketName || typeof bucketName !== 'string') {
67
+ return false
68
+ }
69
+
70
+ // Check length constraints (1-100 characters)
71
+ if (bucketName.length === 0 || bucketName.length > 100) {
72
+ return false
73
+ }
74
+
75
+ // Check for leading/trailing whitespace
76
+ if (bucketName.trim() !== bucketName) {
77
+ return false
78
+ }
79
+
80
+ // Explicitly reject path separators (security)
81
+ // Note: Consecutive periods (..) are allowed by backend - the AWS restriction
82
+ // on relative paths applies to object keys, not bucket names
83
+ if (bucketName.includes('/') || bucketName.includes('\\')) {
84
+ return false
85
+ }
86
+
87
+ // Validate against allowed character set
88
+ // Pattern matches backend regex: /^(\w|!|-|\.|\*|'|\(|\)| |&|\$|@|=|;|:|\+|,|\?)*$/
89
+ // This explicitly excludes path separators (/, \) and other problematic characters
90
+ const bucketNameRegex = /^[\w!.\*'() &$@=;:+,?-]+$/
91
+ return bucketNameRegex.test(bucketName)
92
+ }
@@ -4,4 +4,4 @@
4
4
  // - Debugging and support (identifying which version is running)
5
5
  // - Telemetry and logging (version reporting in errors/analytics)
6
6
  // - Ensuring build artifacts match the published package version
7
- export const version = '2.85.0'
7
+ export const version = '2.85.1-canary.0'
@@ -1,7 +1,8 @@
1
+ import { IcebergRestCatalog } from 'iceberg-js'
1
2
  import { DEFAULT_HEADERS } from '../lib/constants'
2
3
  import { isStorageError, StorageError } from '../lib/errors'
3
4
  import { Fetch, get, post, remove } from '../lib/fetch'
4
- import { resolveFetch } from '../lib/helpers'
5
+ import { isValidBucketName, resolveFetch } from '../lib/helpers'
5
6
  import { AnalyticBucket } from '../lib/types'
6
7
 
7
8
  /**
@@ -261,4 +262,163 @@ export default class StorageAnalyticsClient {
261
262
  throw error
262
263
  }
263
264
  }
265
+
266
+ /**
267
+ * @alpha
268
+ *
269
+ * Get an Iceberg REST Catalog client configured for a specific analytics bucket
270
+ * Use this to perform advanced table and namespace operations within the bucket
271
+ * The returned client provides full access to the Apache Iceberg REST Catalog API
272
+ *
273
+ * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
274
+ *
275
+ * @category Analytics Buckets
276
+ * @param bucketName - The name of the analytics bucket (warehouse) to connect to
277
+ * @returns Configured IcebergRestCatalog instance for advanced Iceberg operations
278
+ *
279
+ * @example Get catalog and create table
280
+ * ```js
281
+ * // First, create an analytics bucket
282
+ * const { data: bucket, error: bucketError } = await supabase
283
+ * .storage
284
+ * .analytics
285
+ * .createBucket('analytics-data')
286
+ *
287
+ * // Get the Iceberg catalog for that bucket
288
+ * const catalog = supabase.storage.analytics.from('analytics-data')
289
+ *
290
+ * // Create a namespace
291
+ * await catalog.createNamespace({ namespace: ['default'] })
292
+ *
293
+ * // Create a table with schema
294
+ * await catalog.createTable(
295
+ * { namespace: ['default'] },
296
+ * {
297
+ * name: 'events',
298
+ * schema: {
299
+ * type: 'struct',
300
+ * fields: [
301
+ * { id: 1, name: 'id', type: 'long', required: true },
302
+ * { id: 2, name: 'timestamp', type: 'timestamp', required: true },
303
+ * { id: 3, name: 'user_id', type: 'string', required: false }
304
+ * ],
305
+ * 'schema-id': 0,
306
+ * 'identifier-field-ids': [1]
307
+ * },
308
+ * 'partition-spec': {
309
+ * 'spec-id': 0,
310
+ * fields: []
311
+ * },
312
+ * 'write-order': {
313
+ * 'order-id': 0,
314
+ * fields: []
315
+ * },
316
+ * properties: {
317
+ * 'write.format.default': 'parquet'
318
+ * }
319
+ * }
320
+ * )
321
+ * ```
322
+ *
323
+ * @example List tables in namespace
324
+ * ```js
325
+ * const catalog = supabase.storage.analytics.from('analytics-data')
326
+ *
327
+ * // List all tables in the default namespace
328
+ * const tables = await catalog.listTables({ namespace: ['default'] })
329
+ * console.log(tables) // [{ namespace: ['default'], name: 'events' }]
330
+ * ```
331
+ *
332
+ * @example Working with namespaces
333
+ * ```js
334
+ * const catalog = supabase.storage.analytics.from('analytics-data')
335
+ *
336
+ * // List all namespaces
337
+ * const namespaces = await catalog.listNamespaces()
338
+ *
339
+ * // Create namespace with properties
340
+ * await catalog.createNamespace(
341
+ * { namespace: ['production'] },
342
+ * { properties: { owner: 'data-team', env: 'prod' } }
343
+ * )
344
+ * ```
345
+ *
346
+ * @example Cleanup operations
347
+ * ```js
348
+ * const catalog = supabase.storage.analytics.from('analytics-data')
349
+ *
350
+ * // Drop table with purge option (removes all data)
351
+ * await catalog.dropTable(
352
+ * { namespace: ['default'], name: 'events' },
353
+ * { purge: true }
354
+ * )
355
+ *
356
+ * // Drop namespace (must be empty)
357
+ * await catalog.dropNamespace({ namespace: ['default'] })
358
+ * ```
359
+ *
360
+ * @example Error handling with catalog operations
361
+ * ```js
362
+ * import { IcebergError } from 'iceberg-js'
363
+ *
364
+ * const catalog = supabase.storage.analytics.from('analytics-data')
365
+ *
366
+ * try {
367
+ * await catalog.dropTable({ namespace: ['default'], name: 'events' }, { purge: true })
368
+ * } catch (error) {
369
+ * // Handle 404 errors (resource not found)
370
+ * const is404 =
371
+ * (error instanceof IcebergError && error.status === 404) ||
372
+ * error?.status === 404 ||
373
+ * error?.details?.error?.code === 404
374
+ *
375
+ * if (is404) {
376
+ * console.log('Table does not exist')
377
+ * } else {
378
+ * throw error // Re-throw other errors
379
+ * }
380
+ * }
381
+ * ```
382
+ *
383
+ * @remarks
384
+ * This method provides a bridge between Supabase's bucket management and the standard
385
+ * Apache Iceberg REST Catalog API. The bucket name maps to the Iceberg warehouse parameter.
386
+ * All authentication and configuration is handled automatically using your Supabase credentials.
387
+ *
388
+ * **Error Handling**: Operations may throw `IcebergError` from the iceberg-js library.
389
+ * Always handle 404 errors gracefully when checking for resource existence.
390
+ *
391
+ * **Cleanup Operations**: When using `dropTable`, the `purge: true` option permanently
392
+ * deletes all table data. Without it, the table is marked as deleted but data remains.
393
+ *
394
+ * **Library Dependency**: The returned catalog is an instance of `IcebergRestCatalog`
395
+ * from iceberg-js. For complete API documentation and advanced usage, refer to the
396
+ * [iceberg-js documentation](https://supabase.github.io/iceberg-js/).
397
+ *
398
+ * For advanced Iceberg operations beyond bucket management, you can also install and use
399
+ * the `iceberg-js` package directly with manual configuration.
400
+ */
401
+ from(bucketName: string): IcebergRestCatalog {
402
+ // Validate bucket name using same rules as Supabase Storage API backend
403
+ if (!isValidBucketName(bucketName)) {
404
+ throw new StorageError(
405
+ 'Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines ' +
406
+ 'and should avoid the use of any other characters.'
407
+ )
408
+ }
409
+
410
+ // Construct the Iceberg REST Catalog URL
411
+ // The base URL is /storage/v1/iceberg
412
+ // Note: IcebergRestCatalog from iceberg-js automatically adds /v1/ prefix to API paths
413
+ // so we should NOT append /v1 here (it would cause double /v1/v1/ in the URL)
414
+ return new IcebergRestCatalog({
415
+ baseUrl: this.url,
416
+ catalogName: bucketName, // Maps to the warehouse parameter in Supabase's implementation
417
+ auth: {
418
+ type: 'custom',
419
+ getHeaders: async () => this.headers,
420
+ },
421
+ fetch: this.fetch,
422
+ })
423
+ }
264
424
  }