coze-coding-dev-sdk 0.7.18-beta.33 → 0.7.18-beta.35

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.
@@ -61,7 +61,7 @@ export default defineConfig({
61
61
  });
62
62
  `;try{let e;s.writeFileSync(g,b),r&&console.log("Pushing schema changes to database...");let t=`npx drizzle-kit push --force --config=${g}`;r&&console.log(`Running: ${t}`);try{e=(0,i.execSync)(t,{encoding:"utf-8",stdio:"pipe",timeout:12e4,cwd:n,env:{...process.env,NODE_PATH:h}})}catch(n){let e=n.stderr?.toString()||"",t=n.stdout?.toString()||"";throw Error(`drizzle-kit push failed:
63
63
  ${e||t||n.message}`)}if(e&&(e.includes("error:")||e.includes("Error:")))throw Error(`drizzle-kit push failed:
64
- ${e}`);r&&e&&console.log(e),r&&console.log("✅ Database migration completed successfully")}finally{s.existsSync(g)&&s.unlinkSync(g)}}},"./src/database/models.ts"(e,t,n){"use strict";n.d(t,{q:()=>i});class i{static MAX_CONNECTIONS=100;static IDLE_TIMEOUT_MILLIS=3e4;static CONNECTION_TIMEOUT_MILLIS=3e4;static MAX_RETRY_TIME=2e4;static DEFAULT_SCHEMA_PATH="src/storage/database/shared/schema.ts"}},"./src/embedding/types.ts"(e,t,n){"use strict";n.d(t,{F:()=>i});let i={defaultModel:"doubao-embedding-vision-251215",defaultEncodingFormat:"float",maxBatchSize:100}},"./src/fetch/models.ts"(e,t,n){"use strict";function i(e){let t;return e.image&&(t={image_url:e.image.image_url,display_url:e.image.display_url,width:e.image.width,height:e.image.height,thumbnail_display_url:e.image.thumbnail_display_url}),{type:e.type||"text",text:e.text,url:e.url,image:t}}function r(e){return{no_display:e.no_display,no_display_reason:e.no_display_reason}}n.d(t,{E:()=>r,W:()=>i})},"./src/image/models.ts"(e,t,n){"use strict";n.d(t,{K8:()=>i,Li:()=>a,td:()=>r});class i{static DEFAULT_MODEL="doubao-seedream-4-5-251128";static DEFAULT_SIZE="2K";static DEFAULT_CUSTOM_SIZE="2048x2048";static DEFAULT_WATERMARK=!0;static DEFAULT_RESPONSE_FORMAT="url";static DEFAULT_OPTIMIZE_PROMPT_MODE="standard";static DEFAULT_SEQUENTIAL_IMAGE_GENERATION="disabled";static DEFAULT_SEQUENTIAL_IMAGE_GENERATION_MAX_IMAGES=15;static MIN_TOTAL_PIXELS=3686400;static MAX_TOTAL_PIXELS=0x1000000;static MIN_ASPECT_RATIO=1/16;static MAX_ASPECT_RATIO=16;static PRESET_SIZES=["2K","4K"]}class r{response;constructor(e){this.response=e}get success(){return!this.response.error&&this.response.data.every(e=>!e.error)}get imageUrls(){return this.response.data.filter(e=>e.url).map(e=>e.url)}get imageB64List(){return this.response.data.filter(e=>e.b64_json).map(e=>e.b64_json)}get errorMessages(){let e=[];for(let t of(this.response.error&&e.push(`API Error: ${this.response.error.message||"Unknown error"}`),this.response.data))t.error&&e.push(`Image generation error: ${t.error.message||"Unknown error"}`);return e}}function a(e,t){let n=function(e){try{return function(e){if(i.PRESET_SIZES.includes(e))return e;let t=e.match(/^(\d+)x(\d+)$/);if(!t)throw Error(`Invalid size format. Must be ${JSON.stringify(i.PRESET_SIZES)} or 'WIDTHxHEIGHT' format (e.g., 2048x2048). Got: ${e}`);let n=parseInt(t[1],10),r=parseInt(t[2],10);if(n<=0||r<=0)throw Error(`Width and height must be positive integers. Got: ${e}`);let a=n*r;if(a<i.MIN_TOTAL_PIXELS||a>i.MAX_TOTAL_PIXELS)throw Error(`Total pixels must be between ${i.MIN_TOTAL_PIXELS.toLocaleString()} and ${i.MAX_TOTAL_PIXELS.toLocaleString()}. Got: ${a.toLocaleString()} (${n}x${r})`);let o=n/r;if(o<i.MIN_ASPECT_RATIO||o>i.MAX_ASPECT_RATIO)throw Error(`Aspect ratio must be between 1:16 and 16:1. Got: ${n}:${r} (${o.toFixed(2)})`);return e}(e)}catch{return i.DEFAULT_SIZE}}(e.size||i.DEFAULT_SIZE);return{model:t,prompt:e.prompt,size:n,watermark:e.watermark??i.DEFAULT_WATERMARK,image:e.image,response_format:e.responseFormat||i.DEFAULT_RESPONSE_FORMAT,optimize_prompt_options:{mode:e.optimizePromptMode||i.DEFAULT_OPTIMIZE_PROMPT_MODE},sequential_image_generation:e.sequentialImageGeneration||i.DEFAULT_SEQUENTIAL_IMAGE_GENERATION,sequential_image_generation_options:{max_images:e.sequentialImageGenerationMaxImages||i.DEFAULT_SEQUENTIAL_IMAGE_GENERATION_MAX_IMAGES}}}},"./src/index.ts"(e,t,n){"use strict";n.d(t,{Config:()=>i,VideoGenerationClient:()=>w,EmbeddingClient:()=>j,ImageGenerationClient:()=>c,TTSClient:()=>g,ASRClient:()=>b,SupabaseClient:()=>k,LLMClient:()=>E,KnowledgeClient:()=>C,DataSourceType:()=>T,SearchClient:()=>p});class i{apiKey;baseUrl;modelBaseUrl;retryTimes;retryDelay;timeout;constructor(e){this.apiKey=e?.apiKey||process.env.COZE_WORKLOAD_IDENTITY_API_KEY||"",this.baseUrl=e?.baseUrl||process.env.COZE_INTEGRATION_BASE_URL||"",this.modelBaseUrl=e?.modelBaseUrl||process.env.COZE_INTEGRATION_MODEL_BASE_URL||"",this.retryTimes=e?.retryTimes??3,this.retryDelay=e?.retryDelay??1,this.timeout=e?.timeout??9e5}validate(){if(!this.apiKey)throw Error("API key is required. Set COZE_WORKLOAD_IDENTITY_API_KEY or provide apiKey in config.")}getHeaders(){if(!this.apiKey)throw Error("API key is required. Set COZE_WORKLOAD_IDENTITY_API_KEY or provide apiKey in config.");return{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"}}}var r,a=n("axios"),o=n.n(a);class s extends Error{statusCode;response;constructor(e,t,n){super(e),this.name="APIError",this.statusCode=t,this.response=n}}class l extends Error{originalError;constructor(e,t){super(e),this.originalError=t,this.name="NetworkError"}}class u extends Error{constructor(e){super(e),this.name="ValidationError"}}class d{config;axiosInstance;verbose;constructor(e,t,n=!1){this.config=e||new i,this.verbose=n,this.axiosInstance=o().create({timeout:this.config.timeout,headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0",...t}})}async request(e,t,n,i){let r=null;for(let a=0;a<=this.config.retryTimes;a++)try{0===a&&this.verbose&&this.logRequest(e,t,n,i);let r=await this.axiosInstance.request({method:e,url:t,data:n,...i});return 0===a&&this.verbose&&this.logResponse(r),r.data}catch(e){if(r=e,e.response){let t=e.response.status;if(t>=400&&t<500&&429!==t)throw new s(e.response.data?.message||e.message,t,e.response.data)}a<this.config.retryTimes&&await this.sleep(1e3*this.config.retryDelay*(a+1))}if(r)if(o().isAxiosError(r)&&r.response)throw new s(r.response.data?.message||r.message,r.response.status,r.response.data);else throw new l(r.message);throw new l("Request failed after retries")}async requestWithResponse(e,t,n,i){let r=null;for(let a=0;a<=this.config.retryTimes;a++)try{0===a&&this.verbose&&this.logRequest(e,t,n,i);let r=await this.axiosInstance.request({method:e,url:t,data:n,...i});return 0===a&&this.verbose&&this.logResponse(r),r}catch(e){if(r=e,e.response){let t=e.response.status;if(t>=400&&t<500&&429!==t)throw new s(e.response.data?.message||e.message,t,e.response.data)}a<this.config.retryTimes&&await this.sleep(1e3*this.config.retryDelay*(a+1))}if(r)if(o().isAxiosError(r)&&r.response)throw new s(r.response.data?.message||r.message,r.response.status,r.response.data);else throw new l(r.message);throw new l("Request failed after retries")}sanitizeHeaders(e){let t=["authorization","auth","api-key","apikey","api_key","x-api-key","x-auth-token","token","secret","password","passwd","pwd"],n={};for(let[i,r]of Object.entries(e)){let e=i.toLowerCase();t.some(t=>e.includes(t))?n[i]="***":n[i]=r}return n}logRequest(e,t,n,i){console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log("\uD83D\uDCE4 HTTP Request"),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log(`Method: ${e}`),console.log(`URL: ${t}`);let r={};Object.assign(r,this.axiosInstance.defaults.headers.common||{},this.axiosInstance.defaults.headers[e.toLowerCase()]||{},i?.headers||{});let a=this.sanitizeHeaders(r);for(let[e,t]of(console.log("\nHeaders:"),Object.entries(a)))console.log(` ${e}: ${t}`);n&&(console.log("\nBody:"),console.log(JSON.stringify(n,null,2))),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n")}logResponse(e){if(console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log("\uD83D\uDCE5 HTTP Response"),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log(`Status: ${e.status} ${e.statusText}`),e.headers)for(let[t,n]of(console.log("\nHeaders:"),Object.entries(e.headers)))console.log(` ${t}: ${n}`);if(e.data){console.log("\nBody:");let t="string"==typeof e.data?e.data:JSON.stringify(e.data,null,2);console.log(t.length>1e3?t.substring(0,1e3)+"\n... (truncated)":t)}console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n")}sleep(e){return new Promise(t=>setTimeout(t,e))}}var h=n("./src/image/models.ts");class c extends d{model;constructor(e,t,n=!1){super(e,t,n),this.model=h.K8.DEFAULT_MODEL}async generate(e){let t=(0,h.Li)(e,this.model),n=await this.request("POST",`${this.config.baseUrl}/api/v3/images/generations`,t);if(n.error)throw new s(`API returned error: ${n.error.message||"Unknown error"}`,n.error.code?parseInt(n.error.code):500,n.error);for(let e of n.data)if(e.error)throw new s(`Image generation failed: ${e.error.message||"Unknown error"}`,e.error.code?parseInt(e.error.code):500,e.error);return n}async batchGenerate(e){return Promise.all(e.map(e=>this.generate(e)))}getResponseHelper(e){return new h.td(e)}}var f=n("./src/search/models.ts");class p extends d{constructor(e,t,n=!1){super(e,t,n)}async search(e){let t,n=(0,f.a)(e),i=await this.request("POST",`${this.config.baseUrl}/api/search_api/web_search`,n),r=i.ResponseMetadata||{};if(r.Error)throw new s(`Search failed: ${r.Error}`,500,r.Error);let a=i.Result||{},o=[];if(a.WebResults)for(let e of a.WebResults)o.push((0,f.b)(e));let l=[];if(a.ImageResults)for(let e of a.ImageResults)l.push((0,f.b)(e));return a.Choices&&a.Choices.length>0&&(t=a.Choices[0].Message?.Content),{web_items:o,image_items:l,summary:t}}async webSearch(e,t=10,n=!0){return this.search({query:e,search_type:"web",count:t,need_summary:n})}async webSearchWithSummary(e,t=10){return this.search({query:e,search_type:"web_summary",count:t,need_summary:!0})}async imageSearch(e,t=10){return this.search({query:e,search_type:"image",count:t,need_summary:!1})}async advancedSearch(e,t={}){let n={need_content:t.needContent,need_url:t.needUrl,sites:t.sites,block_hosts:t.blockHosts};return this.search({query:e,search_type:t.searchType||"web",count:t.count||10,filter:n,need_summary:void 0===t.needSummary||t.needSummary,time_range:t.timeRange})}}var m=n("./src/voice/models.ts");class g extends d{constructor(e,t,n=!1){super(e,t,n)}async synthesize(e){if(!e.text&&!e.ssml)throw new u("必须提供 text 或 ssml 其中之一");let t=(0,m.Xd)(e),n={...this.config.getHeaders(),Connection:"keep-alive"};try{let e=await o().post(`${this.config.baseUrl}/api/v3/tts/unidirectional`,t,{headers:n,responseType:"stream",timeout:this.config.timeout});return await this.processStreamResponse(e)}catch(e){if(e.response)throw new s(`TTS 请求失败: ${e.message}`,e.response.status,e.response.data);throw new s(`TTS 请求异常: ${e.message}`,500)}}async processStreamResponse(e){return new Promise((t,n)=>{let i="",r=0,a="";e.data.on("data",e=>{let o=(a+=e.toString("utf-8")).split("\n");for(let e of(a=o.pop()||"",o))if(e.trim()&&e.startsWith("data:"))try{let a=e.replace("data:","").trim();if(!a)continue;let o=JSON.parse(a);if(0===o.code&&o.data){let e=Buffer.from(o.data,"base64");r+=e.length}else if(2e7===o.code){o.url&&(i=o.url),t({audioUri:i,audioSize:r});return}else if(o.code>0)return void n(new s(`合成音频失败: ${o.message||""}`,o.code))}catch(e){n(new s(`响应解析失败: ${e.message}`,500));return}}),e.data.on("end",()=>{i||0!==r?t({audioUri:i,audioSize:r}):n(new s("未收到完整的音频数据",500))}),e.data.on("error",e=>{n(new s(`流处理错误: ${e.message}`,500))})})}}class b extends d{constructor(e,t,n=!1){super(e,t,n)}async recognize(e){if(!e.url&&!e.base64Data)throw new u("必须提供 url 或 base64Data 其中之一");let t=(0,m.uF)(e);try{let e=await this.requestWithResponse("POST",`${this.config.baseUrl}/api/v3/auc/bigmodel/recognize/flash`,t),n=e.headers["x-api-status-code"]||"0",i=e.headers["x-api-message"]||"";if("20000000"!==n)throw new s(`ASR 识别失败,状态码: ${n}, 错误信息: ${i}`,e.status,{code:n,message:i});let r=e.data.result||{};return{text:r.text||"",duration:r.duration,utterances:r.utterances,rawData:e.data}}catch(e){if(e instanceof s)throw e;throw new s(`ASR 请求异常: ${e.message}`,500)}}}var y=n("./src/video/models.ts");class w extends d{baseUrl;constructor(e,t,n=!1){super(e,t,n),this.baseUrl=this.config.baseUrl}async videoGeneration(e,t){let n=(t?.maxWaitTime??900)*1e3,i={model:t?.model||y.K.DEFAULT_MODEL,content:e};t?.callbackUrl&&(i.callback_url=t.callbackUrl),t?.returnLastFrame&&(i.return_last_frame=t.returnLastFrame),i.resolution=t?.resolution??y.K.DEFAULT_RESOLUTION,i.ratio=t?.ratio??y.K.DEFAULT_RATIO,i.duration=t?.duration??y.K.DEFAULT_DURATION,i.watermark=t?.watermark??y.K.DEFAULT_WATERMARK,t?.seed!==void 0&&(i.seed=t.seed),i.camerafixed=t?.camerafixed??y.K.DEFAULT_CAMERA_FIXED,i.generate_audio=t?.generateAudio??y.K.DEFAULT_GENERATE_AUDIO;let r=null,a=0;for(;a<3;)try{if(!(r=(await this.request("POST",`${this.baseUrl}/api/v3/contents/generations/tasks`,i)).id))throw new s("创建视频生成任务失败:响应中缺少任务ID",500);this.verbose&&console.log(`视频生成任务创建成功,任务ID: ${r}`);break}catch(t){a++;let e=t instanceof Error?t.message:String(t);if(this.verbose&&console.error(`创建视频生成任务失败(尝试 ${a}/3): ${e}`),a>=3)throw new s(`创建视频生成任务失败,已重试3次: ${e}`,500);if(e.toLowerCase().includes("rate limit")||e.includes("429")){let e=Math.min(2**a*1e3,1e4);this.verbose&&console.warn(`遇到速率限制,等待 ${e/1e3} 秒后重试...`),await this.sleep(e)}else if(e.toLowerCase().includes("timeout"))this.verbose&&console.warn("请求超时,等待 2 秒后重试..."),await this.sleep(2e3);else throw t}let o=Date.now(),l=0;for(;Date.now()-o<n;){l++;try{let e=await this.request("GET",`${this.baseUrl}/api/v3/contents/generations/tasks/${r}`),t=e.status;if(this.verbose&&console.log(`任务 ${r} 状态检查 #${l}: ${t}`),"succeeded"===t){let t=e.content?.video_url||null,n=e.content?.last_frame_url||"";if(!t)throw new s(`视频生成成功但响应中缺少视频URL,任务ID: ${r}`,500);return this.verbose&&console.log(`视频生成成功,任务ID: ${r}, 视频URL: ${t}`),{videoUrl:t,response:e,lastFrameUrl:n}}if("failed"===t){let t=e.error_message||"未知错误";throw this.verbose&&console.error(`视频生成失败,任务ID: ${r}, 错误: ${t}`),new s(`视频生成失败: ${t}`,500)}if("cancelled"===t)return this.verbose&&console.warn(`视频生成任务被取消,任务ID: ${r}`),{videoUrl:null,response:e,lastFrameUrl:""};else if("queued"===t||"running"===t){await this.sleep(5e3);continue}else{this.verbose&&console.warn(`未知的任务状态: ${t},任务ID: ${r}`),await this.sleep(5e3);continue}}catch(t){let e=t instanceof Error?t.message:String(t);if(this.verbose&&console.error(`查询任务状态失败,任务ID: ${r}, 错误: ${e}`),e.toLowerCase().includes("not found")||e.includes("404"))throw new s(`任务不存在或已过期,任务ID: ${r}`,404);if(Date.now()-o>=n)throw t;await this.sleep(5e3);continue}}let u=Math.floor((Date.now()-o)/1e3);throw this.verbose&&console.error(`视频生成超时,任务ID: ${r}, 已等待: ${u}秒`),new s(`视频生成超时,已等待 ${u} 秒,任务ID: ${r}`,408)}async videoGenerationAsync(e,t){return this.videoGeneration(e,t)}}n("./src/video_edit/models.ts");let S=require("@langchain/openai"),v=require("@langchain/core/messages");var x=n("./src/llm/models.ts");class E{config;customHeaders;constructor(e,t){this.config=e||new i,this.customHeaders=t}createLLM(e,t,n){let i={};i.thinking={type:e.thinking??x.c.THINKING},e.caching&&"disabled"!==e.caching&&(i.caching={type:e.caching});let r={Authorization:`Bearer ${this.config.apiKey}`,"X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0",...this.customHeaders,...n};return t&&(r["X-Previous-Response-Id"]=t),new S.ChatOpenAI({model:e.model||x.c.MODEL,apiKey:this.config.apiKey,configuration:{baseURL:this.config.modelBaseUrl,defaultHeaders:r},streaming:void 0!==e.streaming?e.streaming:x.c.STREAMING,temperature:void 0!==e.temperature?e.temperature:x.c.TEMPERATURE,modelKwargs:Object.keys(i).length>0?i:void 0})}convertMessages(e){return e.map(e=>{let t=this.convertContent(e.content);switch(e.role){case"system":return new v.SystemMessage(t);case"user":return new v.HumanMessage(t);case"assistant":return new v.AIMessage(t);default:throw Error(`Unknown message role: ${e.role}`)}})}convertContent(e){return"string"==typeof e?e:e.map(e=>{if("text"===e.type)return{type:"text",text:e.text};if("image_url"===e.type){let t={url:e.image_url.url};return e.image_url.detail&&(t.detail=e.image_url.detail),{type:"image_url",image_url:t}}if("video_url"===e.type){let t={url:e.video_url.url};return void 0!==e.video_url.fps&&(t.fps=e.video_url.fps),{type:"video_url",video_url:t}}return e})}async *stream(e,t={},n,i){let r=this.createLLM(t,n,i),a=this.convertMessages(e);for await(let e of(await r.stream(a)))yield e}async invoke(e,t={},n,i){let r="";for await(let a of this.stream(e,t,n,i))a.content&&(r+=a.content.toString());return{content:r}}}var T=((r={})[r.TEXT=0]="TEXT",r[r.URL=1]="URL",r[r.URI=2]="URI",r);class C extends d{baseUrl;constructor(e,t,n=!1){super(e,t,n),this.baseUrl=this.config.baseUrl}async search(e,t,n=5,i=0,r){let a={query:e,top_k:n,min_score:i};t&&(a.dataset=t);let o=`${this.baseUrl}/v1/knowledge_base/recall`,s={...r};this.config.apiKey&&(s["x-coze-token"]=`Bearer ${this.config.apiKey}`);let l=await this.request("POST",o,a,{headers:s});return{chunks:(l.data||[]).map(e=>({content:e.slice||"",score:e.score||0,chunk_id:e.chunk_id,doc_id:e.doc_id})),code:l.code||0,msg:l.msg||""}}async addDocuments(e,t,n,i){let r={dataset:t,data:e};n&&(r.chunk_config=Object.fromEntries(Object.entries(n).filter(([e,t])=>void 0!==t)));let a=`${this.baseUrl}/v1/knowledge_base/batch_import`,o={...i};this.config.apiKey&&(o["x-coze-token"]=`Bearer ${this.config.apiKey}`);let s=await this.request("POST",a,r,{headers:o}),l=s.msg||"";return 0===s.code&&(l="成功!文档正在异步导入中,请稍候。您可以查看数据库中的 'knowledge' schema 来验证导入状态。"),{doc_ids:s.doc_ids,code:s.code||0,msg:l}}}n("./src/database/index.ts"),n("./src/s3/index.ts");var L=n("./src/embedding/types.ts");class j extends d{model;constructor(e,t,n=!1){super(e,t,n),this.model=L.F.defaultModel}validateInputs(e,t,n){let i=e&&e.length>0,r=t&&t.length>0,a=n&&n.length>0;if(!i&&!r&&!a)throw new u("At least one of texts, imageUrls, or videoUrls must be provided");let o=(e?.length||0)+(t?.length||0)+(n?.length||0);if(o>L.F.maxBatchSize)throw new u(`Total inputs (${o}) exceed maximum batch size of ${L.F.maxBatchSize}`)}buildInputItems(e,t,n){let i=[];if(e)for(let t of e)t&&t.trim()&&i.push({type:"text",text:t});if(t)for(let e of t)e&&e.trim()&&i.push({type:"image_url",image_url:{url:e}});if(n)for(let e of n)e&&e.trim()&&i.push({type:"video_url",video_url:{url:e}});return i}async embed(e,t,n,i){this.validateInputs(e,t,n);let r=this.buildInputItems(e,t,n);if(0===r.length)throw new u("No valid input provided");let a={model:i?.model||this.model,input:r};i?.dimensions!==void 0&&(a.dimensions=i.dimensions),i?.encodingFormat&&(a.encoding_format=i.encodingFormat),i?.instructions&&(a.instructions=i.instructions),i?.multiEmbedding&&(a.multi_embedding={type:"enabled"}),i?.sparseEmbedding&&(a.sparse_embedding={type:"enabled"});let o=await this.request("POST",`${this.config.baseUrl}/api/v3/embeddings/multimodal`,a);if(o.error)throw new s(o.error.message||"Unknown error",void 0,o.error);return o}async embedText(e,t){let n=await this.embed([e],void 0,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedTexts(e,t){let n=await this.embed(e,void 0,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedImage(e,t){let n=await this.embed(void 0,[e],void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedImages(e,t){let n=await this.embed(void 0,e,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedVideo(e,t){let n=await this.embed(void 0,void 0,[e],t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedVideos(e,t){let n=await this.embed(void 0,void 0,e,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedMultimodal(e,t,n,i){return this.embed(e,t,n,i)}async embedWithMultiVectors(e,t,n,i){let r=await this.embed(e,t,n,{...i,multiEmbedding:!0});return r.data?.multi_embedding}async embedWithSparse(e,t,n,i){let r=await this.embed(e,t,n,{...i,sparseEmbedding:!0});return r.data?.sparse_embedding}async batchEmbed(e,t,n=5){let i=[],r=[...e];for(;r.length>0;){let e=r.splice(0,n).map(e=>this.embed(e,void 0,void 0,t)),a=await Promise.all(e);i.push(...a)}return i}}n("./src/fetch/models.ts");class k{config;axiosInstance;constructor(e,t){this.config=e,this.axiosInstance=o().create({timeout:this.config.timeout,headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0","x-coze-token":this.config.apiKey,...t}})}async request(e,t,n){return(await this.axiosInstance.request({method:e,url:t,data:n})).data}async listFunctions(){let e=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/list`,{});return{functions:(e.functions||[]).map(e=>({id:e.id||"",slug:e.slug||"",name:e.name||"",status:e.status||"",version:e.version||0,verify_jwt:e.verify_jwt||!1,entrypoint_path:e.entrypoint_path,created_at:e.created_at,updated_at:e.updated_at})),code:e.code||0,msg:e.msg||""}}async getFunction(e){let t,n=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/get`,{slug:e});if(n.function){let e=n.function;t={id:e.id||"",slug:e.slug||"",name:e.name||"",status:e.status||"",version:e.version||0,verify_jwt:e.verify_jwt||!1,entrypoint_path:e.entrypoint_path,created_at:e.created_at,updated_at:e.updated_at}}return{function:t,files:(n.files||[]).map(e=>({name:e.name||"",content:e.content||""})),code:n.code||0,msg:n.msg||""}}async deployFunction(e,t){let n={slug:e};t?.code!==void 0&&(n.code=t.code),t?.files!==void 0&&(n.files=t.files),t?.name!==void 0&&(n.name=t.name),t?.entrypoint!==void 0&&(n.entrypoint=t.entrypoint),t?.verify_jwt!==void 0&&(n.verify_jwt=t.verify_jwt);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/deploy`,n);return{success:i.success||!1,slug:i.slug,version:i.version,code:i.code||0,msg:i.msg||""}}async deleteFunction(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/delete`,{slug:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async listBuckets(){let e=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/list`,{});return{buckets:(e.buckets||[]).map(e=>({id:e.id||"",name:e.name||"",public:e.public||!1,owner:e.owner,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types,created_at:e.created_at,updated_at:e.updated_at})),code:e.code||0,msg:e.msg||""}}async getBucket(e){let t,n=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/get`,{bucket_id:e});if(n.bucket){let e=n.bucket;t={id:e.id||"",name:e.name||"",public:e.public||!1,owner:e.owner,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types,created_at:e.created_at,updated_at:e.updated_at}}return{bucket:t,code:n.code||0,msg:n.msg||""}}async createBucket(e,t){let n={bucket_id:e};t?.name!==void 0&&(n.name=t.name),t?.public!==void 0&&(n.public=t.public),t?.file_size_limit!==void 0&&(n.file_size_limit=t.file_size_limit),t?.allowed_mime_types!==void 0&&(n.allowed_mime_types=t.allowed_mime_types);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/create`,n);return{success:i.success||!1,bucket_id:i.bucket_id,code:i.code||0,msg:i.msg||""}}async updateBucket(e,t){let n={bucket_id:e};t?.public!==void 0&&(n.public=t.public),t?.file_size_limit!==void 0&&(n.file_size_limit=t.file_size_limit),t?.allowed_mime_types!==void 0&&(n.allowed_mime_types=t.allowed_mime_types);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/update`,n);return{success:i.success||!1,code:i.code||0,msg:i.msg||""}}async deleteBucket(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/delete`,{bucket_id:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async getAuthConfig(){let e,t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/auth/config/get`,{});if(t.config){let n=t.config;e={external_email_enabled:n.external_email_enabled,disable_signup:n.disable_signup,mailer_autoconfirm:n.mailer_autoconfirm,double_confirm_changes:n.double_confirm_changes,mailer_secure_email_change_enabled:n.mailer_secure_email_change_enabled,mailer_otp_exp:n.mailer_otp_exp,password_min_length:n.password_min_length,password_required_characters:n.password_required_characters,site_url:n.site_url,smtp_host:n.smtp_host,smtp_port:n.smtp_port,smtp_user:n.smtp_user,smtp_pass:n.smtp_pass,smtp_admin_email:n.smtp_admin_email,smtp_sender_name:n.smtp_sender_name,smtp_max_frequency:n.smtp_max_frequency}}return{config:e,code:t.code||0,msg:t.msg||""}}async updateAuthConfig(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/auth/config/update`,{config:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async diagnoseDatabase(e){let t,n={};void 0!==e&&(n.env=e);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/database/diagnose`,n);if(i.report){let e=i.report;t={database_type:e.database_type??0,pg_metrics:e.pg_metrics||{},supabase_metrics:e.supabase_metrics}}return{report:t,code:i.code||0,msg:i.msg||""}}}},"./src/llm/models.ts"(e,t,n){"use strict";n.d(t,{c:()=>i});let i={MODEL:"doubao-seed-1-8-251228",THINKING:"disabled",CACHING:"disabled",TEMPERATURE:1,STREAMING:!0}},"./src/s3/index.ts"(e,t,n){"use strict";let i;n.d(t,{S3Storage:()=>as});var r,a,o,s,l,u,d=n("./node_modules/@smithy/protocol-http/dist-es/httpRequest.js");let h={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0};var c=n("./node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js"),f=n("./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js"),p=n("./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js"),m=n("./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js"),g=n("./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/getRecursionDetectionPlugin.js");class b{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let t=this.data[e];if(t)return t}set(e,t){return this.data[e]=t,t}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+b.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let t in this.data){let n=this.data[t];if(!n.isRefreshing){let i=await n.identity;i.expiration&&i.expiration.getTime()<e&&delete this.data[t]}}}}class y{_identity;isRefreshing;accessed;constructor(e,t=!1,n=Date.now()){this._identity=e,this.isRefreshing=t,this.accessed=n}get identity(){return this.accessed=Date.now(),this._identity}}class w{createSessionFn;cache;static REFRESH_WINDOW_MS=6e4;constructor(e,t=new b){this.createSessionFn=e,this.cache=t}async getS3ExpressIdentity(e,t){let n=t.Bucket,{cache:i}=this,r=i.get(n);return r?r.identity.then(e=>(e.expiration?.getTime()??0)<Date.now()?i.set(n,new y(this.getIdentity(n))).identity:((e.expiration?.getTime()??0)<Date.now()+w.REFRESH_WINDOW_MS&&!r.isRefreshing&&(r.isRefreshing=!0,this.getIdentity(n).then(e=>{i.set(n,new y(Promise.resolve(e)))})),e)):i.set(n,new y(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(e=>{console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n"+e)});let t=await this.createSessionFn(e);if(!t.Credentials?.AccessKeyId||!t.Credentials?.SecretAccessKey)throw Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:t.Credentials.AccessKeyId,secretAccessKey:t.Credentials.SecretAccessKey,sessionToken:t.Credentials.SessionToken,expiration:t.Credentials.Expiration?new Date(t.Credentials.Expiration):void 0}}}let S={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"},v={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},x={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"},E={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0};var T=n("./node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js"),C=n("./node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js"),L=n("./node_modules/@smithy/util-config-provider/dist-es/types.js");let j="X-Amz-S3session-Token",k=j.toLowerCase(),A={environmentVariableSelector:e=>(0,C.Q)(e,"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",L.c.ENV),configFileSelector:e=>(0,C.Q)(e,"s3_disable_express_session_auth",L.c.CONFIG),default:!1},D={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0};var R=n("./node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js"),M=n("./node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js");let P=async(e,t,n,i)=>{let r=await i.signWithCredentials(n,e,{});if(r.headers["X-Amz-Security-Token"]||r.headers["x-amz-security-token"])throw Error("X-Amz-Security-Token must not be set for s3-express requests.");return r};var O=n("./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js"),N=n("./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js"),Y=n("./node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js"),I=n("./node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js"),B=n("./node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js"),F=n("./node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js"),Z=n("./node_modules/@smithy/middleware-content-length/dist-es/index.js"),H=n("./node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js"),J=n("./node_modules/@smithy/middleware-retry/dist-es/configurations.js"),W=n("./node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js"),X=n("./node_modules/@smithy/smithy-client/dist-es/client.js"),G=n("./node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js"),$=n("./node_modules/@smithy/core/dist-es/normalizeProvider.js"),U=n("./node_modules/@smithy/property-provider/dist-es/ProviderError.js");let z={environmentVariableSelector(e){if(e.AWS_SIGV4A_SIGNING_REGION_SET)return e.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new U.m("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(e){if(e.sigv4a_signing_region_set)return(e.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new U.m("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0};var Q=n("./node_modules/@smithy/signature-v4/dist-es/SignatureV4.js");class K extends Q.B{async signWithCredentials(e,t,n){let i=q(t);return e.headers[k]=t.sessionToken,V(this,i),this.signRequest(e,n??{})}async presignWithCredentials(e,t,n){let i=q(t);return delete e.headers[k],e.headers[j]=t.sessionToken,e.query=e.query??{},e.query[j]=t.sessionToken,V(this,i),this.presign(e,n)}}function q(e){return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,expiration:e.expiration}}function V(e,t){let n=setTimeout(()=>{throw Error("SignatureV4S3Express credential override was created but not called.")},10),i=e.credentialProvider;e.credentialProvider=()=>(clearTimeout(n),e.credentialProvider=i,Promise.resolve(t))}class ee{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return"none"}constructor(e){this.sigv4Signer=new K(e),this.signerOptions=e}async sign(e,t={}){return"*"===t.signingRegion?this.getSigv4aSigner().sign(e,t):this.sigv4Signer.sign(e,t)}async signWithCredentials(e,t,n={}){if("*"===n.signingRegion){let e=this.getSigv4aSigner();!1;throw Error('signWithCredentials with signingRegion \'*\' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt')}return this.sigv4Signer.signWithCredentials(e,t,n)}async presign(e,t={}){if("*"===t.signingRegion){let e=this.getSigv4aSigner();!1;throw Error('presign with signingRegion \'*\' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt')}return this.sigv4Signer.presign(e,t)}async presignWithCredentials(e,t,n={}){if("*"===n.signingRegion)throw Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,t,n)}getSigv4aSigner(){if(!this.sigv4aSigner)if("node"===this.signerOptions.runtime){!0;throw Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{!0;throw Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a")}return this.sigv4aSigner}}var et=n("./node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js"),en=n("./node_modules/@aws-sdk/util-endpoints/dist-es/index.js"),ei=n("./node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js"),er=n("./node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js"),ea=n("./node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js");let eo="required",es="type",el="rules",eu="conditions",ed="argv",eh="assign",ec="properties",ef="backend",ep="authSchemes",em="disableDoubleEncoding",eg="signingName",eb="signingRegion",ey="headers",e_="signingRegionSet",ew="isSet",eS="booleanEquals",ev="error",ex="aws.partition",eE="stringEquals",eT="getAttr",eC="name",eL="substring",ej="bucketSuffix",ek="parseURL",eA="endpoint",eD="tree",eR="aws.isVirtualHostableS3Bucket",eM="{url#scheme}://{Bucket}.{url#authority}{url#path}",eP="accessPointSuffix",eO="{url#scheme}://{url#authority}{url#path}",eN="hardwareType",eY="regionPrefix",eI="bucketAliasSuffix",eB="outpostId",eF="isValidHostLabel",eZ="sigv4a",eH="s3-outposts",eJ="{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",eW="https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",eX="https://{Bucket}.s3.{partitionResult#dnsSuffix}",eG="aws.parseArn",e$="bucketArn",eU="arnType",ez="s3-object-lambda",eQ="accesspoint",eK="accessPointName",eq="{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",eV="mrapPartition",e0="outpostType",e1="arnPrefix",e2="{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",e3="https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",e4="https://s3.{partitionResult#dnsSuffix}",e8={[eo]:!1,[es]:"string"},e6={[eo]:!0,default:!1,[es]:"boolean"},e5={[eo]:!1,[es]:"boolean"},e9={fn:eS,[ed]:[{ref:"Accelerate"},!0]},e7={fn:eS,[ed]:[{ref:"UseFIPS"},!0]},te={fn:eS,[ed]:[{ref:"UseDualStack"},!0]},tt={fn:ew,[ed]:[{ref:"Endpoint"}]},tn={fn:ex,[ed]:[{ref:"Region"}],[eh]:"partitionResult"},ti={fn:eE,[ed]:[{fn:eT,[ed]:[{ref:"partitionResult"},eC]},"aws-cn"]},tr={fn:ew,[ed]:[{ref:"Bucket"}]},ta={ref:"Bucket"},to={[eu]:[e9],[ev]:"S3Express does not support S3 Accelerate.",[es]:ev},ts={[eu]:[tt,{fn:ek,[ed]:[{ref:"Endpoint"}],[eh]:"url"}],[el]:[{[eu]:[{fn:ew,[ed]:[{ref:"DisableS3ExpressSessionAuth"}]},{fn:eS,[ed]:[{ref:"DisableS3ExpressSessionAuth"},!0]}],[el]:[{[eu]:[{fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]}],[el]:[{[eu]:[{fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"}],[el]:[{[eA]:{url:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[{fn:eR,[ed]:[ta,!1]}],[el]:[{[eA]:{url:eM,[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD},{[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev}],[es]:eD},{[eu]:[{fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]}],[el]:[{[eu]:[{fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"}],[el]:[{[eA]:{url:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[{fn:eR,[ed]:[ta,!1]}],[el]:[{[eA]:{url:eM,[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD},{[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev}],[es]:eD},tl={fn:ek,[ed]:[{ref:"Endpoint"}],[eh]:"url"},tu={fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]},td={ref:"url"},th={fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"},tc={[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},tf={},tp={fn:eR,[ed]:[ta,!1]},tm={[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev},tg={fn:ew,[ed]:[{ref:"UseS3ExpressControlEndpoint"}]},tb={fn:eS,[ed]:[{ref:"UseS3ExpressControlEndpoint"},!0]},ty={fn:"not",[ed]:[tt]},t_={fn:eS,[ed]:[{ref:"UseDualStack"},!1]},tw={fn:eS,[ed]:[{ref:"UseFIPS"},!1]},tS={[ev]:"Unrecognized S3Express bucket name format.",[es]:ev},tv={fn:"not",[ed]:[tr]},tx={ref:eN},tE={[eu]:[ty],[ev]:"Expected a endpoint to be specified but no endpoint was found",[es]:ev},tT={[ep]:[{[em]:!0,[eC]:eZ,[eg]:eH,[e_]:["*"]},{[em]:!0,[eC]:"sigv4",[eg]:eH,[eb]:"{Region}"}]},tC={fn:eS,[ed]:[{ref:"ForcePathStyle"},!1]},tL={fn:eS,[ed]:[{ref:"Accelerate"},!1]},tj={fn:eE,[ed]:[{ref:"Region"},"aws-global"]},tk={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"us-east-1"}]},tA={fn:"not",[ed]:[tj]},tD={fn:eS,[ed]:[{ref:"UseGlobalEndpoint"},!0]},tR={url:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{Region}"}]},[ey]:{}},tM={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{Region}"}]},tP={fn:eS,[ed]:[{ref:"UseGlobalEndpoint"},!1]},tO={url:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tN={url:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tY={url:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tI={fn:eS,[ed]:[{fn:eT,[ed]:[td,"isIp"]},!1]},tB={url:eJ,[ec]:tM,[ey]:{}},tF={url:eM,[ec]:tM,[ey]:{}},tZ={[eA]:tF,[es]:eA},tH={url:eW,[ec]:tM,[ey]:{}},tJ={url:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tW={[ev]:"Invalid region: region was not a valid DNS name.",[es]:ev},tX={ref:e$},tG={ref:eU},t$={fn:eT,[ed]:[tX,"service"]},tU={ref:eK},tz={[eu]:[te],[ev]:"S3 Object Lambda does not support Dual-stack",[es]:ev},tQ={[eu]:[e9],[ev]:"S3 Object Lambda does not support S3 Accelerate",[es]:ev},tK={[eu]:[{fn:ew,[ed]:[{ref:"DisableAccessPoints"}]},{fn:eS,[ed]:[{ref:"DisableAccessPoints"},!0]}],[ev]:"Access points are not supported for this operation",[es]:ev},tq={[eu]:[{fn:ew,[ed]:[{ref:"UseArnRegion"}]},{fn:eS,[ed]:[{ref:"UseArnRegion"},!1]},{fn:"not",[ed]:[{fn:eE,[ed]:[{fn:eT,[ed]:[tX,"region"]},"{Region}"]}]}],[ev]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[es]:ev},tV={fn:eT,[ed]:[{ref:"bucketPartition"},eC]},t0={fn:eT,[ed]:[tX,"accountId"]},t1={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:ez,[eb]:"{bucketArn#region}"}]},t2={[ev]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",[es]:ev},t3={[ev]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[es]:ev},t4={[ev]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[es]:ev},t8={[ev]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",[es]:ev},t6={[ev]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",[es]:ev},t5={[ev]:"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided",[es]:ev},t9={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{bucketArn#region}"}]},t7={[ep]:[{[em]:!0,[eC]:eZ,[eg]:eH,[e_]:["*"]},{[em]:!0,[eC]:"sigv4",[eg]:eH,[eb]:"{bucketArn#region}"}]},ne={fn:eG,[ed]:[ta]},nt={url:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},nn={url:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},ni={url:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},nr={url:e2,[ec]:tM,[ey]:{}},na={url:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},no={ref:"UseObjectLambdaEndpoint"},ns={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:ez,[eb]:"{Region}"}]},nl={url:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nu={url:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nd={url:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nh={url:eO,[ec]:tM,[ey]:{}},nc={url:"https://s3.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nf=[{ref:"Region"}],np=[e9],nm=[tt,tl],ng=[{fn:ew,[ed]:[{ref:"DisableS3ExpressSessionAuth"}]},{fn:eS,[ed]:[{ref:"DisableS3ExpressSessionAuth"},!0]}],nb=[tp],ny=[tn],n_=[e7,te],nw=[e7,t_],nS=[tw,te],nv=[tw,t_],nx=[{fn:eL,[ed]:[ta,6,14,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,14,16,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nE=[{[eu]:[e7,te],[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nw,[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nS,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nv,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA}],nT=[{fn:eL,[ed]:[ta,6,15,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,15,17,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nC=[{fn:eL,[ed]:[ta,6,19,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,19,21,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nL=[{fn:eL,[ed]:[ta,6,20,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,20,22,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nj=[{fn:eL,[ed]:[ta,6,26,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,26,28,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nk=[{[eu]:[e7,te],[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nw,[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nS,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nv,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],nA=[ta,0,7,!0],nD=[{fn:eL,[ed]:[ta,7,15,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,15,17,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nR=[{fn:eL,[ed]:[ta,7,16,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,16,18,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nM=[{fn:eL,[ed]:[ta,7,20,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,20,22,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nP=[{fn:eL,[ed]:[ta,7,21,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,21,23,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nO=[{fn:eL,[ed]:[ta,7,27,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,27,29,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nN=[{fn:eF,[ed]:[{ref:eB},!1]}],nY=[{fn:eE,[ed]:[{ref:eY},"beta"]}],nI=[{fn:eF,[ed]:[{ref:"Region"},!1]}],nB=[{fn:eE,[ed]:[{ref:"Region"},"us-east-1"]}],nF=[{fn:eE,[ed]:[tG,eQ]}],nZ=[{fn:eT,[ed]:[tX,"resourceId[1]"],[eh]:eK},{fn:"not",[ed]:[{fn:eE,[ed]:[tU,""]}]}],nH=[te],nJ=[{fn:"not",[ed]:[{fn:eE,[ed]:[{fn:eT,[ed]:[tX,"region"]},""]}]}],nW=[{fn:"not",[ed]:[{fn:ew,[ed]:[{fn:eT,[ed]:[tX,"resourceId[2]"]}]}]}],nX=[{fn:ex,[ed]:[{fn:eT,[ed]:[tX,"region"]}],[eh]:"bucketPartition"}],nG=[{fn:eE,[ed]:[tV,{fn:eT,[ed]:[{ref:"partitionResult"},eC]}]}],n$=[{fn:eF,[ed]:[{fn:eT,[ed]:[tX,"region"]},!0]}],nU=[{fn:eF,[ed]:[t0,!1]}],nz=[{fn:eF,[ed]:[tU,!1]}],nQ=[e7],nK=[{fn:eF,[ed]:[{ref:"Region"},!0]}],nq={version:"1.0",parameters:{Bucket:e8,Region:e8,UseFIPS:e6,UseDualStack:e6,Endpoint:e8,ForcePathStyle:e6,Accelerate:e6,UseGlobalEndpoint:e6,UseObjectLambdaEndpoint:e5,Key:e8,Prefix:e8,CopySource:e8,DisableAccessPoints:e5,DisableMultiRegionAccessPoints:e6,UseArnRegion:e5,UseS3ExpressControlEndpoint:e5,DisableS3ExpressSessionAuth:e5},[el]:[{[eu]:[{fn:ew,[ed]:nf}],[el]:[{[eu]:[e9,e7],error:"Accelerate cannot be used with FIPS",[es]:ev},{[eu]:[te,tt],error:"Cannot set dual-stack in combination with a custom endpoint.",[es]:ev},{[eu]:[tt,e7],error:"A custom endpoint cannot be combined with FIPS",[es]:ev},{[eu]:[tt,e9],error:"A custom endpoint cannot be combined with S3 Accelerate",[es]:ev},{[eu]:[e7,tn,ti],error:"Partition does not support FIPS",[es]:ev},{[eu]:[tr,{fn:eL,[ed]:[ta,0,6,!0],[eh]:ej},{fn:eE,[ed]:[{ref:ej},"--x-s3"]}],[el]:[to,ts,{[eu]:[tg,tb],[el]:[{[eu]:ny,[el]:[{[eu]:[th,ty],[el]:[{[eu]:n_,endpoint:{url:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA}],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:nb,[el]:[{[eu]:ny,[el]:[{[eu]:ng,[el]:[{[eu]:nx,[el]:nE,[es]:eD},{[eu]:nT,[el]:nE,[es]:eD},{[eu]:nC,[el]:nE,[es]:eD},{[eu]:nL,[el]:nE,[es]:eD},{[eu]:nj,[el]:nE,[es]:eD},tS],[es]:eD},{[eu]:nx,[el]:nk,[es]:eD},{[eu]:nT,[el]:nk,[es]:eD},{[eu]:nC,[el]:nk,[es]:eD},{[eu]:nL,[el]:nk,[es]:eD},{[eu]:nj,[el]:nk,[es]:eD},tS],[es]:eD}],[es]:eD},tm],[es]:eD},{[eu]:[tr,{fn:eL,[ed]:nA,[eh]:eP},{fn:eE,[ed]:[{ref:eP},"--xa-s3"]}],[el]:[to,ts,{[eu]:nb,[el]:[{[eu]:ny,[el]:[{[eu]:ng,[el]:[{[eu]:nD,[el]:nE,[es]:eD},{[eu]:nR,[el]:nE,[es]:eD},{[eu]:nM,[el]:nE,[es]:eD},{[eu]:nP,[el]:nE,[es]:eD},{[eu]:nO,[el]:nE,[es]:eD},tS],[es]:eD},{[eu]:nD,[el]:nk,[es]:eD},{[eu]:nR,[el]:nk,[es]:eD},{[eu]:nM,[el]:nk,[es]:eD},{[eu]:nP,[el]:nk,[es]:eD},{[eu]:nO,[el]:nk,[es]:eD},tS],[es]:eD}],[es]:eD},tm],[es]:eD},{[eu]:[tv,tg,tb],[el]:[{[eu]:ny,[el]:[{[eu]:nm,endpoint:{url:eO,[ec]:tc,[ey]:tf},[es]:eA},{[eu]:n_,endpoint:{url:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[tr,{fn:eL,[ed]:[ta,49,50,!0],[eh]:eN},{fn:eL,[ed]:[ta,8,12,!0],[eh]:eY},{fn:eL,[ed]:nA,[eh]:eI},{fn:eL,[ed]:[ta,32,49,!0],[eh]:eB},{fn:ex,[ed]:nf,[eh]:"regionPartition"},{fn:eE,[ed]:[{ref:eI},"--op-s3"]}],[el]:[{[eu]:nN,[el]:[{[eu]:nb,[el]:[{[eu]:[{fn:eE,[ed]:[tx,"e"]}],[el]:[{[eu]:nY,[el]:[tE,{[eu]:nm,endpoint:{url:"https://{Bucket}.ec2.{url#authority}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{endpoint:{url:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{[eu]:[{fn:eE,[ed]:[tx,"o"]}],[el]:[{[eu]:nY,[el]:[tE,{[eu]:nm,endpoint:{url:"https://{Bucket}.op-{outpostId}.{url#authority}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{endpoint:{url:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',[es]:ev}],[es]:eD},{error:"Invalid Outposts Bucket alias - it must be a valid bucket name.",[es]:ev}],[es]:eD},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",[es]:ev}],[es]:eD},{[eu]:[tr],[el]:[{[eu]:[tt,{fn:"not",[ed]:[{fn:ew,[ed]:[{fn:ek,[ed]:[{ref:"Endpoint"}]}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",[es]:ev},{[eu]:[tC,tp],[el]:[{[eu]:ny,[el]:[{[eu]:nI,[el]:[{[eu]:[e9,ti],error:"S3 Accelerate cannot be used in this region",[es]:ev},{[eu]:[te,e7,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,e7,tL,ty,tA,tD],[el]:[{endpoint:tR,[es]:eA}],[es]:eD},{[eu]:[te,e7,tL,ty,tA,tP],endpoint:tR,[es]:eA},{[eu]:[t_,e7,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,e7,tL,ty,tA,tD],[el]:[{endpoint:tO,[es]:eA}],[es]:eD},{[eu]:[t_,e7,tL,ty,tA,tP],endpoint:tO,[es]:eA},{[eu]:[te,tw,e9,ty,tj],endpoint:{url:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,tw,e9,ty,tA,tD],[el]:[{endpoint:tN,[es]:eA}],[es]:eD},{[eu]:[te,tw,e9,ty,tA,tP],endpoint:tN,[es]:eA},{[eu]:[te,tw,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,tw,tL,ty,tA,tD],[el]:[{endpoint:tY,[es]:eA}],[es]:eD},{[eu]:[te,tw,tL,ty,tA,tP],endpoint:tY,[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tu,tj],endpoint:{url:eJ,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tI,tj],endpoint:{url:eM,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tu,tA,tD],[el]:[{[eu]:nB,endpoint:tB,[es]:eA},{endpoint:tB,[es]:eA}],[es]:eD},{[eu]:[t_,tw,tL,tt,tl,tI,tA,tD],[el]:[{[eu]:nB,endpoint:tF,[es]:eA},tZ],[es]:eD},{[eu]:[t_,tw,tL,tt,tl,tu,tA,tP],endpoint:tB,[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tI,tA,tP],endpoint:tF,[es]:eA},{[eu]:[t_,tw,e9,ty,tj],endpoint:{url:eW,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,e9,ty,tA,tD],[el]:[{[eu]:nB,endpoint:tH,[es]:eA},{endpoint:tH,[es]:eA}],[es]:eD},{[eu]:[t_,tw,e9,ty,tA,tP],endpoint:tH,[es]:eA},{[eu]:[t_,tw,tL,ty,tj],endpoint:{url:eX,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,ty,tA,tD],[el]:[{[eu]:nB,endpoint:{url:eX,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:tJ,[es]:eA}],[es]:eD},{[eu]:[t_,tw,tL,ty,tA,tP],endpoint:tJ,[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tt,tl,{fn:eE,[ed]:[{fn:eT,[ed]:[td,"scheme"]},"http"]},{fn:eR,[ed]:[ta,!0]},tC,tw,t_,tL],[el]:[{[eu]:ny,[el]:[{[eu]:nI,[el]:[tZ],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tC,{fn:eG,[ed]:[ta],[eh]:e$}],[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[0]"],[eh]:eU},{fn:"not",[ed]:[{fn:eE,[ed]:[tG,""]}]}],[el]:[{[eu]:[{fn:eE,[ed]:[t$,ez]}],[el]:[{[eu]:nF,[el]:[{[eu]:nZ,[el]:[tz,tQ,{[eu]:nJ,[el]:[tK,{[eu]:nW,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:nG,[el]:[{[eu]:n$,[el]:[{[eu]:[{fn:eE,[ed]:[t0,""]}],error:"Invalid ARN: Missing account id",[es]:ev},{[eu]:nU,[el]:[{[eu]:nz,[el]:[{[eu]:nm,endpoint:{url:eq,[ec]:t1,[ey]:tf},[es]:eA},{[eu]:nQ,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t1,[ey]:tf},[es]:eA},{endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t1,[ey]:tf},[es]:eA}],[es]:eD},t2],[es]:eD},t3],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},t6],[es]:eD},{error:"Invalid ARN: bucket ARN is missing a region",[es]:ev}],[es]:eD},t5],[es]:eD},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",[es]:ev}],[es]:eD},{[eu]:nF,[el]:[{[eu]:nZ,[el]:[{[eu]:nJ,[el]:[{[eu]:nF,[el]:[{[eu]:nJ,[el]:[tK,{[eu]:nW,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:[{fn:eE,[ed]:[tV,"{partitionResult#name}"]}],[el]:[{[eu]:n$,[el]:[{[eu]:[{fn:eE,[ed]:[t$,"s3"]}],[el]:[{[eu]:nU,[el]:[{[eu]:nz,[el]:[{[eu]:np,error:"Access Points do not support S3 Accelerate",[es]:ev},{[eu]:n_,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:[tw,t_,tt,tl],endpoint:{url:eq,[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA}],[es]:eD},t2],[es]:eD},t3],[es]:eD},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",[es]:ev}],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},t6],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:[{fn:eF,[ed]:[tU,!0]}],[el]:[{[eu]:nH,error:"S3 MRAP does not support dual-stack",[es]:ev},{[eu]:nQ,error:"S3 MRAP does not support FIPS",[es]:ev},{[eu]:np,error:"S3 MRAP does not support S3 Accelerate",[es]:ev},{[eu]:[{fn:eS,[ed]:[{ref:"DisableMultiRegionAccessPoints"},!0]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",[es]:ev},{[eu]:[{fn:ex,[ed]:nf,[eh]:eV}],[el]:[{[eu]:[{fn:eE,[ed]:[{fn:eT,[ed]:[{ref:eV},eC]},{fn:eT,[ed]:[tX,"partition"]}]}],[el]:[{endpoint:{url:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",[ec]:{[ep]:[{[em]:!0,name:eZ,[eg]:"s3",[e_]:["*"]}]},[ey]:tf},[es]:eA}],[es]:eD},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",[es]:ev}],[es]:eD}],[es]:eD},{error:"Invalid Access Point Name",[es]:ev}],[es]:eD},t5],[es]:eD},{[eu]:[{fn:eE,[ed]:[t$,eH]}],[el]:[{[eu]:nH,error:"S3 Outposts does not support Dual-stack",[es]:ev},{[eu]:nQ,error:"S3 Outposts does not support FIPS",[es]:ev},{[eu]:np,error:"S3 Outposts does not support S3 Accelerate",[es]:ev},{[eu]:[{fn:ew,[ed]:[{fn:eT,[ed]:[tX,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",[es]:ev},{[eu]:[{fn:eT,[ed]:[tX,"resourceId[1]"],[eh]:eB}],[el]:[{[eu]:nN,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:nG,[el]:[{[eu]:n$,[el]:[{[eu]:nU,[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[2]"],[eh]:e0}],[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[3]"],[eh]:eK}],[el]:[{[eu]:[{fn:eE,[ed]:[{ref:e0},eQ]}],[el]:[{[eu]:nm,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",[ec]:t7,[ey]:tf},[es]:eA},{endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t7,[ey]:tf},[es]:eA}],[es]:eD},{error:"Expected an outpost type `accesspoint`, found {outpostType}",[es]:ev}],[es]:eD},{error:"Invalid ARN: expected an access point name",[es]:ev}],[es]:eD},{error:"Invalid ARN: Expected a 4-component resource",[es]:ev}],[es]:eD},t3],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",[es]:ev}],[es]:eD},{error:"Invalid ARN: The Outpost Id was not set",[es]:ev}],[es]:eD},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",[es]:ev}],[es]:eD},{error:"Invalid ARN: No ARN type specified",[es]:ev}],[es]:eD},{[eu]:[{fn:eL,[ed]:[ta,0,4,!1],[eh]:e1},{fn:eE,[ed]:[{ref:e1},"arn:"]},{fn:"not",[ed]:[{fn:ew,[ed]:[ne]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",[es]:ev},{[eu]:[{fn:eS,[ed]:[{ref:"ForcePathStyle"},!0]},ne],error:"Path-style addressing cannot be used with ARN buckets",[es]:ev},{[eu]:[th],[el]:[{[eu]:ny,[el]:[{[eu]:[tL],[el]:[{[eu]:[te,ty,e7,tj],endpoint:{url:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,ty,e7,tA,tD],[el]:[{endpoint:nt,[es]:eA}],[es]:eD},{[eu]:[te,ty,e7,tA,tP],endpoint:nt,[es]:eA},{[eu]:[t_,ty,e7,tj],endpoint:{url:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,ty,e7,tA,tD],[el]:[{endpoint:nn,[es]:eA}],[es]:eD},{[eu]:[t_,ty,e7,tA,tP],endpoint:nn,[es]:eA},{[eu]:[te,ty,tw,tj],endpoint:{url:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,ty,tw,tA,tD],[el]:[{endpoint:ni,[es]:eA}],[es]:eD},{[eu]:[te,ty,tw,tA,tP],endpoint:ni,[es]:eA},{[eu]:[t_,tt,tl,tw,tj],endpoint:{url:e2,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tt,tl,tw,tA,tD],[el]:[{[eu]:nB,endpoint:nr,[es]:eA},{endpoint:nr,[es]:eA}],[es]:eD},{[eu]:[t_,tt,tl,tw,tA,tP],endpoint:nr,[es]:eA},{[eu]:[t_,ty,tw,tj],endpoint:{url:e3,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,ty,tw,tA,tD],[el]:[{[eu]:nB,endpoint:{url:e3,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:na,[es]:eA}],[es]:eD},{[eu]:[t_,ty,tw,tA,tP],endpoint:na,[es]:eA}],[es]:eD},{error:"Path-style addressing cannot be used with S3 Accelerate",[es]:ev}],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:[{fn:ew,[ed]:[no]},{fn:eS,[ed]:[no,!0]}],[el]:[{[eu]:ny,[el]:[{[eu]:nK,[el]:[tz,tQ,{[eu]:nm,endpoint:{url:eO,[ec]:ns,[ey]:tf},[es]:eA},{[eu]:nQ,endpoint:{url:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:ns,[ey]:tf},[es]:eA},{endpoint:{url:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",[ec]:ns,[ey]:tf},[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tv],[el]:[{[eu]:ny,[el]:[{[eu]:nK,[el]:[{[eu]:[e7,te,ty,tj],endpoint:{url:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[e7,te,ty,tA,tD],[el]:[{endpoint:nl,[es]:eA}],[es]:eD},{[eu]:[e7,te,ty,tA,tP],endpoint:nl,[es]:eA},{[eu]:[e7,t_,ty,tj],endpoint:{url:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[e7,t_,ty,tA,tD],[el]:[{endpoint:nu,[es]:eA}],[es]:eD},{[eu]:[e7,t_,ty,tA,tP],endpoint:nu,[es]:eA},{[eu]:[tw,te,ty,tj],endpoint:{url:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,te,ty,tA,tD],[el]:[{endpoint:nd,[es]:eA}],[es]:eD},{[eu]:[tw,te,ty,tA,tP],endpoint:nd,[es]:eA},{[eu]:[tw,t_,tt,tl,tj],endpoint:{url:eO,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,t_,tt,tl,tA,tD],[el]:[{[eu]:nB,endpoint:nh,[es]:eA},{endpoint:nh,[es]:eA}],[es]:eD},{[eu]:[tw,t_,tt,tl,tA,tP],endpoint:nh,[es]:eA},{[eu]:[tw,t_,ty,tj],endpoint:{url:e4,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,t_,ty,tA,tD],[el]:[{[eu]:nB,endpoint:{url:e4,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:nc,[es]:eA}],[es]:eD},{[eu]:[tw,t_,ty,tA,tP],endpoint:nc,[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD}],[es]:eD},{error:"A region must be set when sending requests to S3.",[es]:ev}]},nV=new ei.k({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),n0=(e,t={})=>nV.get(e,()=>(0,er.s)(nq,{endpointParams:e,logger:t.logger}));ea.m.aws=en.UF;let n1=(i=async(e,t,n)=>({operation:(0,M.u)(t).operation,region:await (0,c.t)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}),async(e,t,n)=>{if(!n)throw Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let r=await i(e,t,n),a=(0,M.u)(t)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!a)throw Error(`getEndpointParameterInstructions() is not defined on '${t.commandName}'`);return Object.assign(r,await (0,et.x)(n,{getEndpointParameterInstructions:a},e))});function n2(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:e.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}function n3(e){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:e.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}let n4=(r=e=>{let t=[];return e.operation,t.push(n2(e)),t.push(n3(e)),t},a={"aws.auth#sigv4":n2,"aws.auth#sigv4a":n3},e=>{let t=n0(e),n=t.properties?.authSchemes;if(!n)return r(e);let i=[];for(let t of n){let r,{name:o,properties:s={},...l}=t,u=o.toLowerCase();if(o!==u&&console.warn(`HttpAuthScheme has been normalized with lowercasing: '${o}' to '${u}'`),"sigv4a"===u){r="aws.auth#sigv4a";let e=n.find(e=>{let t=e.name.toLowerCase();return"sigv4a"!==t&&t.startsWith("sigv4")});if("none"===ee.sigv4aDependency()&&e)continue}else if(u.startsWith("sigv4"))r="aws.auth#sigv4";else throw Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${u}'`);let d=a[r];if(!d)throw Error(`Could not find HttpAuthOption create function for '${r}'`);let h=d(e);h.schemeId=r,h.signingProperties={...h.signingProperties||{},...l,...s},i.push(h)}return i});var n8=n("./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js"),n6=n("./node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js"),n5=n("./node_modules/@smithy/smithy-client/dist-es/command.js"),n9=n("./node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js"),n7=n("./node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js");class ie extends n5.u.classBuilder().ep({...n9.S,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,t,n,i){return[(0,n6.r)(n,e.getEndpointParameterInstructions()),(0,n8.Cg)(n)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").sc(n7.Nsl).build(){}var it=n("./node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js"),ii=n("./node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js"),ir=n("./node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js"),ia=n("./node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js"),io=n("./node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js"),is=n("./node_modules/@smithy/property-provider/dist-es/chain.js");let il="AWS_EC2_METADATA_DISABLED",iu=async e=>{let{ENV_CMDS_FULL_URI:t,ENV_CMDS_RELATIVE_URI:i,fromContainerMetadata:r,fromInstanceMetadata:a}=await n.e("560").then(n.bind(n,"./node_modules/@smithy/credential-provider-imds/dist-es/index.js"));if(process.env[i]||process.env[t]){e.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:t}=await n.e("634").then(n.bind(n,"./node_modules/@aws-sdk/credential-provider-http/dist-es/index.js"));return(0,is.c)(t(e),r(e))}return process.env[il]&&"false"!==process.env[il]?async()=>{throw new ia.C("EC2 Instance Metadata Service access disabled",{logger:e.logger})}:(e.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),a(e))},id=!1,ih=(e={})=>{let t,i,r,a,o,s;return s=[async()=>{if(e.profile??process.env[io.Ch])throw process.env[ir.yG]&&process.env[ir.pi]&&!id&&((e.logger?.warn&&e.logger?.constructor?.name!=="NoOpLogger"?e.logger.warn.bind(e.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
64
+ ${e}`);r&&e&&console.log(e),r&&console.log("✅ Database migration completed successfully")}finally{s.existsSync(g)&&s.unlinkSync(g)}}},"./src/database/models.ts"(e,t,n){"use strict";n.d(t,{q:()=>i});class i{static MAX_CONNECTIONS=100;static IDLE_TIMEOUT_MILLIS=3e4;static CONNECTION_TIMEOUT_MILLIS=3e4;static MAX_RETRY_TIME=2e4;static DEFAULT_SCHEMA_PATH="src/storage/database/shared/schema.ts"}},"./src/embedding/types.ts"(e,t,n){"use strict";n.d(t,{F:()=>i});let i={defaultModel:"doubao-embedding-vision-251215",defaultEncodingFormat:"float",maxBatchSize:100}},"./src/fetch/models.ts"(e,t,n){"use strict";function i(e){let t;return e.image&&(t={image_url:e.image.image_url,display_url:e.image.display_url,width:e.image.width,height:e.image.height,thumbnail_display_url:e.image.thumbnail_display_url}),{type:e.type||"text",text:e.text,url:e.url,image:t}}function r(e){return{no_display:e.no_display,no_display_reason:e.no_display_reason}}n.d(t,{E:()=>r,W:()=>i})},"./src/image/models.ts"(e,t,n){"use strict";n.d(t,{K8:()=>i,Li:()=>a,td:()=>r});class i{static DEFAULT_MODEL="doubao-seedream-4-5-251128";static DEFAULT_SIZE="2K";static DEFAULT_CUSTOM_SIZE="2048x2048";static DEFAULT_WATERMARK=!0;static DEFAULT_RESPONSE_FORMAT="url";static DEFAULT_OPTIMIZE_PROMPT_MODE="standard";static DEFAULT_SEQUENTIAL_IMAGE_GENERATION="disabled";static DEFAULT_SEQUENTIAL_IMAGE_GENERATION_MAX_IMAGES=15;static MIN_TOTAL_PIXELS=3686400;static MAX_TOTAL_PIXELS=0x1000000;static MIN_ASPECT_RATIO=1/16;static MAX_ASPECT_RATIO=16;static PRESET_SIZES=["2K","4K"]}class r{response;constructor(e){this.response=e}get success(){return!this.response.error&&this.response.data.every(e=>!e.error)}get imageUrls(){return this.response.data.filter(e=>e.url).map(e=>e.url)}get imageB64List(){return this.response.data.filter(e=>e.b64_json).map(e=>e.b64_json)}get errorMessages(){let e=[];for(let t of(this.response.error&&e.push(`API Error: ${this.response.error.message||"Unknown error"}`),this.response.data))t.error&&e.push(`Image generation error: ${t.error.message||"Unknown error"}`);return e}}function a(e,t){let n=function(e){try{return function(e){if(i.PRESET_SIZES.includes(e))return e;let t=e.match(/^(\d+)x(\d+)$/);if(!t)throw Error(`Invalid size format. Must be ${JSON.stringify(i.PRESET_SIZES)} or 'WIDTHxHEIGHT' format (e.g., 2048x2048). Got: ${e}`);let n=parseInt(t[1],10),r=parseInt(t[2],10);if(n<=0||r<=0)throw Error(`Width and height must be positive integers. Got: ${e}`);let a=n*r;if(a<i.MIN_TOTAL_PIXELS||a>i.MAX_TOTAL_PIXELS)throw Error(`Total pixels must be between ${i.MIN_TOTAL_PIXELS.toLocaleString()} and ${i.MAX_TOTAL_PIXELS.toLocaleString()}. Got: ${a.toLocaleString()} (${n}x${r})`);let o=n/r;if(o<i.MIN_ASPECT_RATIO||o>i.MAX_ASPECT_RATIO)throw Error(`Aspect ratio must be between 1:16 and 16:1. Got: ${n}:${r} (${o.toFixed(2)})`);return e}(e)}catch{return i.DEFAULT_SIZE}}(e.size||i.DEFAULT_SIZE);return{model:t,prompt:e.prompt,size:n,watermark:e.watermark??i.DEFAULT_WATERMARK,image:e.image,response_format:e.responseFormat||i.DEFAULT_RESPONSE_FORMAT,optimize_prompt_options:{mode:e.optimizePromptMode||i.DEFAULT_OPTIMIZE_PROMPT_MODE},sequential_image_generation:e.sequentialImageGeneration||i.DEFAULT_SEQUENTIAL_IMAGE_GENERATION,sequential_image_generation_options:{max_images:e.sequentialImageGenerationMaxImages||i.DEFAULT_SEQUENTIAL_IMAGE_GENERATION_MAX_IMAGES}}}},"./src/index.ts"(e,t,n){"use strict";n.d(t,{Config:()=>i,VideoGenerationClient:()=>w,EmbeddingClient:()=>j,ImageGenerationClient:()=>c,TTSClient:()=>g,ASRClient:()=>b,SupabaseClient:()=>k,LLMClient:()=>E,KnowledgeClient:()=>C,DataSourceType:()=>T,SearchClient:()=>p});class i{apiKey;baseUrl;modelBaseUrl;retryTimes;retryDelay;timeout;constructor(e){this.apiKey=e?.apiKey||process.env.COZE_WORKLOAD_IDENTITY_API_KEY||"",this.baseUrl=e?.baseUrl||process.env.COZE_INTEGRATION_BASE_URL||"",this.modelBaseUrl=e?.modelBaseUrl||process.env.COZE_INTEGRATION_MODEL_BASE_URL||"",this.retryTimes=e?.retryTimes??3,this.retryDelay=e?.retryDelay??1,this.timeout=e?.timeout??9e5}validate(){if(!this.apiKey)throw Error("API key is required. Set COZE_WORKLOAD_IDENTITY_API_KEY or provide apiKey in config.")}getHeaders(){if(!this.apiKey)throw Error("API key is required. Set COZE_WORKLOAD_IDENTITY_API_KEY or provide apiKey in config.");return{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"}}}var r,a=n("axios"),o=n.n(a);class s extends Error{statusCode;response;constructor(e,t,n){super(e),this.name="APIError",this.statusCode=t,this.response=n}}class l extends Error{originalError;constructor(e,t){super(e),this.originalError=t,this.name="NetworkError"}}class u extends Error{constructor(e){super(e),this.name="ValidationError"}}class d{config;axiosInstance;verbose;constructor(e,t,n=!1){this.config=e||new i,this.verbose=n,this.axiosInstance=o().create({timeout:this.config.timeout,headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0",...t}})}async request(e,t,n,i){let r=null;for(let a=0;a<=this.config.retryTimes;a++)try{0===a&&this.verbose&&this.logRequest(e,t,n,i);let r=await this.axiosInstance.request({method:e,url:t,data:n,...i});return 0===a&&this.verbose&&this.logResponse(r),r.data}catch(e){if(r=e,e.response){let t=e.response.status;if(t>=400&&t<500&&429!==t)throw new s(e.response.data?.message||e.message,t,e.response.data)}a<this.config.retryTimes&&await this.sleep(1e3*this.config.retryDelay*(a+1))}if(r)if(o().isAxiosError(r)&&r.response)throw new s(r.response.data?.message||r.message,r.response.status,r.response.data);else throw new l(r.message);throw new l("Request failed after retries")}async requestWithResponse(e,t,n,i){let r=null;for(let a=0;a<=this.config.retryTimes;a++)try{0===a&&this.verbose&&this.logRequest(e,t,n,i);let r=await this.axiosInstance.request({method:e,url:t,data:n,...i});return 0===a&&this.verbose&&this.logResponse(r),r}catch(e){if(r=e,e.response){let t=e.response.status;if(t>=400&&t<500&&429!==t)throw new s(e.response.data?.message||e.message,t,e.response.data)}a<this.config.retryTimes&&await this.sleep(1e3*this.config.retryDelay*(a+1))}if(r)if(o().isAxiosError(r)&&r.response)throw new s(r.response.data?.message||r.message,r.response.status,r.response.data);else throw new l(r.message);throw new l("Request failed after retries")}sanitizeHeaders(e){let t=["authorization","auth","api-key","apikey","api_key","x-api-key","x-auth-token","token","secret","password","passwd","pwd"],n={};for(let[i,r]of Object.entries(e)){let e=i.toLowerCase();t.some(t=>e.includes(t))?n[i]="***":n[i]=r}return n}logRequest(e,t,n,i){console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log("\uD83D\uDCE4 HTTP Request"),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log(`Method: ${e}`),console.log(`URL: ${t}`);let r={};Object.assign(r,this.axiosInstance.defaults.headers.common||{},this.axiosInstance.defaults.headers[e.toLowerCase()]||{},i?.headers||{});let a=this.sanitizeHeaders(r);for(let[e,t]of(console.log("\nHeaders:"),Object.entries(a)))console.log(` ${e}: ${t}`);n&&(console.log("\nBody:"),console.log(JSON.stringify(n,null,2))),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n")}logResponse(e){if(console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log("\uD83D\uDCE5 HTTP Response"),console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),console.log(`Status: ${e.status} ${e.statusText}`),e.headers)for(let[t,n]of(console.log("\nHeaders:"),Object.entries(e.headers)))console.log(` ${t}: ${n}`);if(e.data){console.log("\nBody:");let t="string"==typeof e.data?e.data:JSON.stringify(e.data,null,2);console.log(t.length>1e3?t.substring(0,1e3)+"\n... (truncated)":t)}console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n")}sleep(e){return new Promise(t=>setTimeout(t,e))}}var h=n("./src/image/models.ts");class c extends d{constructor(e,t,n=!1){super(e,t,n)}async generate(e){let t=e.model||h.K8.DEFAULT_MODEL,n=(0,h.Li)(e,t),i=await this.request("POST",`${this.config.baseUrl}/api/v3/images/generations`,n);if(i.error)throw new s(`API returned error: ${i.error.message||"Unknown error"}`,i.error.code?parseInt(i.error.code):500,i.error);for(let e of i.data)if(e.error)throw new s(`Image generation failed: ${e.error.message||"Unknown error"}`,e.error.code?parseInt(e.error.code):500,e.error);return i}async batchGenerate(e){return Promise.all(e.map(e=>this.generate(e)))}getResponseHelper(e){return new h.td(e)}}var f=n("./src/search/models.ts");class p extends d{constructor(e,t,n=!1){super(e,t,n)}async search(e){let t,n=(0,f.a)(e),i=await this.request("POST",`${this.config.baseUrl}/api/search_api/web_search`,n),r=i.ResponseMetadata||{};if(r.Error)throw new s(`Search failed: ${r.Error}`,500,r.Error);let a=i.Result||{},o=[];if(a.WebResults)for(let e of a.WebResults)o.push((0,f.b)(e));let l=[];if(a.ImageResults)for(let e of a.ImageResults)l.push((0,f.b)(e));return a.Choices&&a.Choices.length>0&&(t=a.Choices[0].Message?.Content),{web_items:o,image_items:l,summary:t}}async webSearch(e,t=10,n=!0){return this.search({query:e,search_type:"web",count:t,need_summary:n})}async webSearchWithSummary(e,t=10){return this.search({query:e,search_type:"web_summary",count:t,need_summary:!0})}async imageSearch(e,t=10){return this.search({query:e,search_type:"image",count:t,need_summary:!1})}async advancedSearch(e,t={}){let n={need_content:t.needContent,need_url:t.needUrl,sites:t.sites,block_hosts:t.blockHosts};return this.search({query:e,search_type:t.searchType||"web",count:t.count||10,filter:n,need_summary:void 0===t.needSummary||t.needSummary,time_range:t.timeRange})}}var m=n("./src/voice/models.ts");class g extends d{constructor(e,t,n=!1){super(e,t,n)}async synthesize(e){if(!e.text&&!e.ssml)throw new u("必须提供 text 或 ssml 其中之一");let t=(0,m.Xd)(e),n={...this.config.getHeaders(),Connection:"keep-alive"};try{let e=await o().post(`${this.config.baseUrl}/api/v3/tts/unidirectional`,t,{headers:n,responseType:"stream",timeout:this.config.timeout});return await this.processStreamResponse(e)}catch(e){if(e.response)throw new s(`TTS 请求失败: ${e.message}`,e.response.status,e.response.data);throw new s(`TTS 请求异常: ${e.message}`,500)}}async processStreamResponse(e){return new Promise((t,n)=>{let i="",r=0,a="";e.data.on("data",e=>{let o=(a+=e.toString("utf-8")).split("\n");for(let e of(a=o.pop()||"",o))if(e.trim()&&e.startsWith("data:"))try{let a=e.replace("data:","").trim();if(!a)continue;let o=JSON.parse(a);if(0===o.code&&o.data){let e=Buffer.from(o.data,"base64");r+=e.length}else if(2e7===o.code){o.url&&(i=o.url),t({audioUri:i,audioSize:r});return}else if(o.code>0)return void n(new s(`合成音频失败: ${o.message||""}`,o.code))}catch(e){n(new s(`响应解析失败: ${e.message}`,500));return}}),e.data.on("end",()=>{i||0!==r?t({audioUri:i,audioSize:r}):n(new s("未收到完整的音频数据",500))}),e.data.on("error",e=>{n(new s(`流处理错误: ${e.message}`,500))})})}}class b extends d{constructor(e,t,n=!1){super(e,t,n)}async recognize(e){if(!e.url&&!e.base64Data)throw new u("必须提供 url 或 base64Data 其中之一");let t=(0,m.uF)(e);try{let e=await this.requestWithResponse("POST",`${this.config.baseUrl}/api/v3/auc/bigmodel/recognize/flash`,t),n=e.headers["x-api-status-code"]||"0",i=e.headers["x-api-message"]||"";if("20000000"!==n)throw new s(`ASR 识别失败,状态码: ${n}, 错误信息: ${i}`,e.status,{code:n,message:i});let r=e.data.result||{};return{text:r.text||"",duration:r.duration,utterances:r.utterances,rawData:e.data}}catch(e){if(e instanceof s)throw e;throw new s(`ASR 请求异常: ${e.message}`,500)}}}var y=n("./src/video/models.ts");class w extends d{baseUrl;constructor(e,t,n=!1){super(e,t,n),this.baseUrl=this.config.baseUrl}async videoGeneration(e,t){let n=(t?.maxWaitTime??900)*1e3,i={model:t?.model||y.K.DEFAULT_MODEL,content:e};t?.callbackUrl&&(i.callback_url=t.callbackUrl),t?.returnLastFrame&&(i.return_last_frame=t.returnLastFrame),i.resolution=t?.resolution??y.K.DEFAULT_RESOLUTION,i.ratio=t?.ratio??y.K.DEFAULT_RATIO,i.duration=t?.duration??y.K.DEFAULT_DURATION,i.watermark=t?.watermark??y.K.DEFAULT_WATERMARK,t?.seed!==void 0&&(i.seed=t.seed),i.camerafixed=t?.camerafixed??y.K.DEFAULT_CAMERA_FIXED,i.generate_audio=t?.generateAudio??y.K.DEFAULT_GENERATE_AUDIO;let r=null,a=0;for(;a<3;)try{if(!(r=(await this.request("POST",`${this.baseUrl}/api/v3/contents/generations/tasks`,i)).id))throw new s("创建视频生成任务失败:响应中缺少任务ID",500);this.verbose&&console.log(`视频生成任务创建成功,任务ID: ${r}`);break}catch(t){a++;let e=t instanceof Error?t.message:String(t);if(this.verbose&&console.error(`创建视频生成任务失败(尝试 ${a}/3): ${e}`),a>=3)throw new s(`创建视频生成任务失败,已重试3次: ${e}`,500);if(e.toLowerCase().includes("rate limit")||e.includes("429")){let e=Math.min(2**a*1e3,1e4);this.verbose&&console.warn(`遇到速率限制,等待 ${e/1e3} 秒后重试...`),await this.sleep(e)}else if(e.toLowerCase().includes("timeout"))this.verbose&&console.warn("请求超时,等待 2 秒后重试..."),await this.sleep(2e3);else throw t}let o=Date.now(),l=0;for(;Date.now()-o<n;){l++;try{let e=await this.request("GET",`${this.baseUrl}/api/v3/contents/generations/tasks/${r}`),t=e.status;if(this.verbose&&console.log(`任务 ${r} 状态检查 #${l}: ${t}`),"succeeded"===t){let t=e.content?.video_url||null,n=e.content?.last_frame_url||"";if(!t)throw new s(`视频生成成功但响应中缺少视频URL,任务ID: ${r}`,500);return this.verbose&&console.log(`视频生成成功,任务ID: ${r}, 视频URL: ${t}`),{videoUrl:t,response:e,lastFrameUrl:n}}if("failed"===t){let t=e.error_message||"未知错误";throw this.verbose&&console.error(`视频生成失败,任务ID: ${r}, 错误: ${t}`),new s(`视频生成失败: ${t}`,500)}if("cancelled"===t)return this.verbose&&console.warn(`视频生成任务被取消,任务ID: ${r}`),{videoUrl:null,response:e,lastFrameUrl:""};else if("queued"===t||"running"===t){await this.sleep(5e3);continue}else{this.verbose&&console.warn(`未知的任务状态: ${t},任务ID: ${r}`),await this.sleep(5e3);continue}}catch(t){let e=t instanceof Error?t.message:String(t);if(this.verbose&&console.error(`查询任务状态失败,任务ID: ${r}, 错误: ${e}`),e.toLowerCase().includes("not found")||e.includes("404"))throw new s(`任务不存在或已过期,任务ID: ${r}`,404);if(Date.now()-o>=n)throw t;await this.sleep(5e3);continue}}let u=Math.floor((Date.now()-o)/1e3);throw this.verbose&&console.error(`视频生成超时,任务ID: ${r}, 已等待: ${u}秒`),new s(`视频生成超时,已等待 ${u} 秒,任务ID: ${r}`,408)}async videoGenerationAsync(e,t){return this.videoGeneration(e,t)}}n("./src/video_edit/models.ts");let S=require("@langchain/openai"),v=require("@langchain/core/messages");var x=n("./src/llm/models.ts");class E{config;customHeaders;constructor(e,t){this.config=e||new i,this.customHeaders=t}createLLM(e,t,n){let i={};i.thinking={type:e.thinking??x.c.THINKING},e.caching&&"disabled"!==e.caching&&(i.caching={type:e.caching});let r={Authorization:`Bearer ${this.config.apiKey}`,"X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0",...this.customHeaders,...n};return t&&(r["X-Previous-Response-Id"]=t),new S.ChatOpenAI({model:e.model||x.c.MODEL,apiKey:this.config.apiKey,configuration:{baseURL:this.config.modelBaseUrl,defaultHeaders:r},streaming:void 0!==e.streaming?e.streaming:x.c.STREAMING,temperature:void 0!==e.temperature?e.temperature:x.c.TEMPERATURE,modelKwargs:Object.keys(i).length>0?i:void 0})}convertMessages(e){return e.map(e=>{let t=this.convertContent(e.content);switch(e.role){case"system":return new v.SystemMessage(t);case"user":return new v.HumanMessage(t);case"assistant":return new v.AIMessage(t);default:throw Error(`Unknown message role: ${e.role}`)}})}convertContent(e){return"string"==typeof e?e:e.map(e=>{if("text"===e.type)return{type:"text",text:e.text};if("image_url"===e.type){let t={url:e.image_url.url};return e.image_url.detail&&(t.detail=e.image_url.detail),{type:"image_url",image_url:t}}if("video_url"===e.type){let t={url:e.video_url.url};return void 0!==e.video_url.fps&&(t.fps=e.video_url.fps),{type:"video_url",video_url:t}}return e})}async *stream(e,t={},n,i){let r=this.createLLM(t,n,i),a=this.convertMessages(e);for await(let e of(await r.stream(a)))yield e}async invoke(e,t={},n,i){let r="";for await(let a of this.stream(e,t,n,i))a.content&&(r+=a.content.toString());return{content:r}}}var T=((r={})[r.TEXT=0]="TEXT",r[r.URL=1]="URL",r[r.URI=2]="URI",r);class C extends d{baseUrl;constructor(e,t,n=!1){super(e,t,n),this.baseUrl=this.config.baseUrl}async search(e,t,n=5,i=0,r){let a={query:e,top_k:n,min_score:i};t&&(a.dataset=t);let o=`${this.baseUrl}/v1/knowledge_base/recall`,s={...r};this.config.apiKey&&(s["x-coze-token"]=`Bearer ${this.config.apiKey}`);let l=await this.request("POST",o,a,{headers:s});return{chunks:(l.data||[]).map(e=>({content:e.slice||"",score:e.score||0,chunk_id:e.chunk_id,doc_id:e.doc_id})),code:l.code||0,msg:l.msg||""}}async addDocuments(e,t,n,i){let r={dataset:t,data:e};n&&(r.chunk_config=Object.fromEntries(Object.entries(n).filter(([e,t])=>void 0!==t)));let a=`${this.baseUrl}/v1/knowledge_base/batch_import`,o={...i};this.config.apiKey&&(o["x-coze-token"]=`Bearer ${this.config.apiKey}`);let s=await this.request("POST",a,r,{headers:o}),l=s.msg||"";return 0===s.code&&(l="成功!文档正在异步导入中,请稍候。您可以查看数据库中的 'knowledge' schema 来验证导入状态。"),{doc_ids:s.doc_ids,code:s.code||0,msg:l}}}n("./src/database/index.ts"),n("./src/s3/index.ts");var L=n("./src/embedding/types.ts");class j extends d{model;constructor(e,t,n=!1){super(e,t,n),this.model=L.F.defaultModel}validateInputs(e,t,n){let i=e&&e.length>0,r=t&&t.length>0,a=n&&n.length>0;if(!i&&!r&&!a)throw new u("At least one of texts, imageUrls, or videoUrls must be provided");let o=(e?.length||0)+(t?.length||0)+(n?.length||0);if(o>L.F.maxBatchSize)throw new u(`Total inputs (${o}) exceed maximum batch size of ${L.F.maxBatchSize}`)}buildInputItems(e,t,n){let i=[];if(e)for(let t of e)t&&t.trim()&&i.push({type:"text",text:t});if(t)for(let e of t)e&&e.trim()&&i.push({type:"image_url",image_url:{url:e}});if(n)for(let e of n)e&&e.trim()&&i.push({type:"video_url",video_url:{url:e}});return i}async embed(e,t,n,i){this.validateInputs(e,t,n);let r=this.buildInputItems(e,t,n);if(0===r.length)throw new u("No valid input provided");let a={model:i?.model||this.model,input:r};i?.dimensions!==void 0&&(a.dimensions=i.dimensions),i?.encodingFormat&&(a.encoding_format=i.encodingFormat),i?.instructions&&(a.instructions=i.instructions),i?.multiEmbedding&&(a.multi_embedding={type:"enabled"}),i?.sparseEmbedding&&(a.sparse_embedding={type:"enabled"});let o=await this.request("POST",`${this.config.baseUrl}/api/v3/embeddings/multimodal`,a);if(o.error)throw new s(o.error.message||"Unknown error",void 0,o.error);return o}async embedText(e,t){let n=await this.embed([e],void 0,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedTexts(e,t){let n=await this.embed(e,void 0,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedImage(e,t){let n=await this.embed(void 0,[e],void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedImages(e,t){let n=await this.embed(void 0,e,void 0,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedVideo(e,t){let n=await this.embed(void 0,void 0,[e],t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedVideos(e,t){let n=await this.embed(void 0,void 0,e,t);if(n.data?.embedding)return n.data.embedding;throw new s("No embedding returned")}async embedMultimodal(e,t,n,i){return this.embed(e,t,n,i)}async embedWithMultiVectors(e,t,n,i){let r=await this.embed(e,t,n,{...i,multiEmbedding:!0});return r.data?.multi_embedding}async embedWithSparse(e,t,n,i){let r=await this.embed(e,t,n,{...i,sparseEmbedding:!0});return r.data?.sparse_embedding}async batchEmbed(e,t,n=5){let i=[],r=[...e];for(;r.length>0;){let e=r.splice(0,n).map(e=>this.embed(e,void 0,void 0,t)),a=await Promise.all(e);i.push(...a)}return i}}n("./src/fetch/models.ts");class k{config;axiosInstance;constructor(e,t){this.config=e,this.axiosInstance=o().create({timeout:this.config.timeout,headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","X-Client-Sdk":"coze-coding-dev-sdk-typescript/0.3.0","x-coze-token":this.config.apiKey,...t}})}async request(e,t,n){return(await this.axiosInstance.request({method:e,url:t,data:n})).data}async listFunctions(){let e=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/list`,{});return{functions:(e.functions||[]).map(e=>({id:e.id||"",slug:e.slug||"",name:e.name||"",status:e.status||"",version:e.version||0,verify_jwt:e.verify_jwt||!1,entrypoint_path:e.entrypoint_path,created_at:e.created_at,updated_at:e.updated_at})),code:e.code||0,msg:e.msg||""}}async getFunction(e){let t,n=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/get`,{slug:e});if(n.function){let e=n.function;t={id:e.id||"",slug:e.slug||"",name:e.name||"",status:e.status||"",version:e.version||0,verify_jwt:e.verify_jwt||!1,entrypoint_path:e.entrypoint_path,created_at:e.created_at,updated_at:e.updated_at}}return{function:t,files:(n.files||[]).map(e=>({name:e.name||"",content:e.content||""})),code:n.code||0,msg:n.msg||""}}async deployFunction(e,t){let n={slug:e};t?.code!==void 0&&(n.code=t.code),t?.files!==void 0&&(n.files=t.files),t?.name!==void 0&&(n.name=t.name),t?.entrypoint!==void 0&&(n.entrypoint=t.entrypoint),t?.verify_jwt!==void 0&&(n.verify_jwt=t.verify_jwt);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/deploy`,n);return{success:i.success||!1,slug:i.slug,version:i.version,code:i.code||0,msg:i.msg||""}}async deleteFunction(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/functions/delete`,{slug:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async listBuckets(){let e=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/list`,{});return{buckets:(e.buckets||[]).map(e=>({id:e.id||"",name:e.name||"",public:e.public||!1,owner:e.owner,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types,created_at:e.created_at,updated_at:e.updated_at})),code:e.code||0,msg:e.msg||""}}async getBucket(e){let t,n=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/get`,{bucket_id:e});if(n.bucket){let e=n.bucket;t={id:e.id||"",name:e.name||"",public:e.public||!1,owner:e.owner,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types,created_at:e.created_at,updated_at:e.updated_at}}return{bucket:t,code:n.code||0,msg:n.msg||""}}async createBucket(e,t){let n={bucket_id:e};t?.name!==void 0&&(n.name=t.name),t?.public!==void 0&&(n.public=t.public),t?.file_size_limit!==void 0&&(n.file_size_limit=t.file_size_limit),t?.allowed_mime_types!==void 0&&(n.allowed_mime_types=t.allowed_mime_types);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/create`,n);return{success:i.success||!1,bucket_id:i.bucket_id,code:i.code||0,msg:i.msg||""}}async updateBucket(e,t){let n={bucket_id:e};t?.public!==void 0&&(n.public=t.public),t?.file_size_limit!==void 0&&(n.file_size_limit=t.file_size_limit),t?.allowed_mime_types!==void 0&&(n.allowed_mime_types=t.allowed_mime_types);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/update`,n);return{success:i.success||!1,code:i.code||0,msg:i.msg||""}}async deleteBucket(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/buckets/delete`,{bucket_id:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async getAuthConfig(){let e,t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/auth/config/get`,{});if(t.config){let n=t.config;e={external_email_enabled:n.external_email_enabled,disable_signup:n.disable_signup,mailer_autoconfirm:n.mailer_autoconfirm,double_confirm_changes:n.double_confirm_changes,mailer_secure_email_change_enabled:n.mailer_secure_email_change_enabled,mailer_otp_exp:n.mailer_otp_exp,password_min_length:n.password_min_length,password_required_characters:n.password_required_characters,site_url:n.site_url,smtp_host:n.smtp_host,smtp_port:n.smtp_port,smtp_user:n.smtp_user,smtp_pass:n.smtp_pass,smtp_admin_email:n.smtp_admin_email,smtp_sender_name:n.smtp_sender_name,smtp_max_frequency:n.smtp_max_frequency}}return{config:e,code:t.code||0,msg:t.msg||""}}async updateAuthConfig(e){let t=await this.request("POST",`${this.config.baseUrl}/v1/supabase/auth/config/update`,{config:e});return{success:t.success||!1,code:t.code||0,msg:t.msg||""}}async diagnoseDatabase(e){let t,n={};void 0!==e&&(n.env=e);let i=await this.request("POST",`${this.config.baseUrl}/v1/supabase/database/diagnose`,n);if(i.report){let e=i.report;t={database_type:e.database_type??0,pg_metrics:e.pg_metrics||{},supabase_metrics:e.supabase_metrics}}return{report:t,code:i.code||0,msg:i.msg||""}}}},"./src/llm/models.ts"(e,t,n){"use strict";n.d(t,{c:()=>i});let i={MODEL:"doubao-seed-1-8-251228",THINKING:"disabled",CACHING:"disabled",TEMPERATURE:1,STREAMING:!0}},"./src/s3/index.ts"(e,t,n){"use strict";let i;n.d(t,{S3Storage:()=>as});var r,a,o,s,l,u,d=n("./node_modules/@smithy/protocol-http/dist-es/httpRequest.js");let h={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0};var c=n("./node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js"),f=n("./node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js"),p=n("./node_modules/@aws-sdk/middleware-host-header/dist-es/index.js"),m=n("./node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js"),g=n("./node_modules/@aws-sdk/middleware-recursion-detection/dist-es/getRecursionDetectionPlugin.js");class b{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e}get(e){let t=this.data[e];if(t)return t}set(e,t){return this.data[e]=t,t}delete(e){delete this.data[e]}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+b.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let t in this.data){let n=this.data[t];if(!n.isRefreshing){let i=await n.identity;i.expiration&&i.expiration.getTime()<e&&delete this.data[t]}}}}class y{_identity;isRefreshing;accessed;constructor(e,t=!1,n=Date.now()){this._identity=e,this.isRefreshing=t,this.accessed=n}get identity(){return this.accessed=Date.now(),this._identity}}class w{createSessionFn;cache;static REFRESH_WINDOW_MS=6e4;constructor(e,t=new b){this.createSessionFn=e,this.cache=t}async getS3ExpressIdentity(e,t){let n=t.Bucket,{cache:i}=this,r=i.get(n);return r?r.identity.then(e=>(e.expiration?.getTime()??0)<Date.now()?i.set(n,new y(this.getIdentity(n))).identity:((e.expiration?.getTime()??0)<Date.now()+w.REFRESH_WINDOW_MS&&!r.isRefreshing&&(r.isRefreshing=!0,this.getIdentity(n).then(e=>{i.set(n,new y(Promise.resolve(e)))})),e)):i.set(n,new y(this.getIdentity(n))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(e=>{console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n"+e)});let t=await this.createSessionFn(e);if(!t.Credentials?.AccessKeyId||!t.Credentials?.SecretAccessKey)throw Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:t.Credentials.AccessKeyId,secretAccessKey:t.Credentials.SecretAccessKey,sessionToken:t.Credentials.SessionToken,expiration:t.Credentials.Expiration?new Date(t.Credentials.Expiration):void 0}}}let S={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"},v={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},x={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"},E={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0};var T=n("./node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js"),C=n("./node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js"),L=n("./node_modules/@smithy/util-config-provider/dist-es/types.js");let j="X-Amz-S3session-Token",k=j.toLowerCase(),A={environmentVariableSelector:e=>(0,C.Q)(e,"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",L.c.ENV),configFileSelector:e=>(0,C.Q)(e,"s3_disable_express_session_auth",L.c.CONFIG),default:!1},D={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0};var R=n("./node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js"),M=n("./node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js");let P=async(e,t,n,i)=>{let r=await i.signWithCredentials(n,e,{});if(r.headers["X-Amz-Security-Token"]||r.headers["x-amz-security-token"])throw Error("X-Amz-Security-Token must not be set for s3-express requests.");return r};var O=n("./node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js"),N=n("./node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js"),Y=n("./node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js"),I=n("./node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js"),B=n("./node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js"),F=n("./node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js"),Z=n("./node_modules/@smithy/middleware-content-length/dist-es/index.js"),H=n("./node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js"),J=n("./node_modules/@smithy/middleware-retry/dist-es/configurations.js"),W=n("./node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js"),X=n("./node_modules/@smithy/smithy-client/dist-es/client.js"),G=n("./node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js"),$=n("./node_modules/@smithy/core/dist-es/normalizeProvider.js"),U=n("./node_modules/@smithy/property-provider/dist-es/ProviderError.js");let z={environmentVariableSelector(e){if(e.AWS_SIGV4A_SIGNING_REGION_SET)return e.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map(e=>e.trim());throw new U.m("AWS_SIGV4A_SIGNING_REGION_SET not set in env.",{tryNextLink:!0})},configFileSelector(e){if(e.sigv4a_signing_region_set)return(e.sigv4a_signing_region_set??"").split(",").map(e=>e.trim());throw new U.m("sigv4a_signing_region_set not set in profile.",{tryNextLink:!0})},default:void 0};var Q=n("./node_modules/@smithy/signature-v4/dist-es/SignatureV4.js");class K extends Q.B{async signWithCredentials(e,t,n){let i=q(t);return e.headers[k]=t.sessionToken,V(this,i),this.signRequest(e,n??{})}async presignWithCredentials(e,t,n){let i=q(t);return delete e.headers[k],e.headers[j]=t.sessionToken,e.query=e.query??{},e.query[j]=t.sessionToken,V(this,i),this.presign(e,n)}}function q(e){return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,expiration:e.expiration}}function V(e,t){let n=setTimeout(()=>{throw Error("SignatureV4S3Express credential override was created but not called.")},10),i=e.credentialProvider;e.credentialProvider=()=>(clearTimeout(n),e.credentialProvider=i,Promise.resolve(t))}class ee{sigv4aSigner;sigv4Signer;signerOptions;static sigv4aDependency(){return"none"}constructor(e){this.sigv4Signer=new K(e),this.signerOptions=e}async sign(e,t={}){return"*"===t.signingRegion?this.getSigv4aSigner().sign(e,t):this.sigv4Signer.sign(e,t)}async signWithCredentials(e,t,n={}){if("*"===n.signingRegion){let e=this.getSigv4aSigner();!1;throw Error('signWithCredentials with signingRegion \'*\' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt')}return this.sigv4Signer.signWithCredentials(e,t,n)}async presign(e,t={}){if("*"===t.signingRegion){let e=this.getSigv4aSigner();!1;throw Error('presign with signingRegion \'*\' is only supported when using the CRT dependency @aws-sdk/signature-v4-crt. Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. You must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt')}return this.sigv4Signer.presign(e,t)}async presignWithCredentials(e,t,n={}){if("*"===n.signingRegion)throw Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(e,t,n)}getSigv4aSigner(){if(!this.sigv4aSigner)if("node"===this.signerOptions.runtime){!0;throw Error("Neither CRT nor JS SigV4a implementation is available. Please load either @aws-sdk/signature-v4-crt or @aws-sdk/signature-v4a. For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt")}else{!0;throw Error("JS SigV4a implementation is not available or not a valid constructor. Please check whether you have installed the @aws-sdk/signature-v4a package explicitly. The CRT implementation is not available for browsers. You must also register the package by calling [require('@aws-sdk/signature-v4a');] or an ESM equivalent such as [import '@aws-sdk/signature-v4a';]. For more information please go to https://github.com/aws/aws-sdk-js-v3#using-javascript-non-crt-implementation-of-sigv4a")}return this.sigv4aSigner}}var et=n("./node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js"),en=n("./node_modules/@aws-sdk/util-endpoints/dist-es/index.js"),ei=n("./node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js"),er=n("./node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js"),ea=n("./node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js");let eo="required",es="type",el="rules",eu="conditions",ed="argv",eh="assign",ec="properties",ef="backend",ep="authSchemes",em="disableDoubleEncoding",eg="signingName",eb="signingRegion",ey="headers",e_="signingRegionSet",ew="isSet",eS="booleanEquals",ev="error",ex="aws.partition",eE="stringEquals",eT="getAttr",eC="name",eL="substring",ej="bucketSuffix",ek="parseURL",eA="endpoint",eD="tree",eR="aws.isVirtualHostableS3Bucket",eM="{url#scheme}://{Bucket}.{url#authority}{url#path}",eP="accessPointSuffix",eO="{url#scheme}://{url#authority}{url#path}",eN="hardwareType",eY="regionPrefix",eI="bucketAliasSuffix",eB="outpostId",eF="isValidHostLabel",eZ="sigv4a",eH="s3-outposts",eJ="{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",eW="https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",eX="https://{Bucket}.s3.{partitionResult#dnsSuffix}",eG="aws.parseArn",e$="bucketArn",eU="arnType",ez="s3-object-lambda",eQ="accesspoint",eK="accessPointName",eq="{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",eV="mrapPartition",e0="outpostType",e1="arnPrefix",e2="{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",e3="https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",e4="https://s3.{partitionResult#dnsSuffix}",e8={[eo]:!1,[es]:"string"},e6={[eo]:!0,default:!1,[es]:"boolean"},e5={[eo]:!1,[es]:"boolean"},e9={fn:eS,[ed]:[{ref:"Accelerate"},!0]},e7={fn:eS,[ed]:[{ref:"UseFIPS"},!0]},te={fn:eS,[ed]:[{ref:"UseDualStack"},!0]},tt={fn:ew,[ed]:[{ref:"Endpoint"}]},tn={fn:ex,[ed]:[{ref:"Region"}],[eh]:"partitionResult"},ti={fn:eE,[ed]:[{fn:eT,[ed]:[{ref:"partitionResult"},eC]},"aws-cn"]},tr={fn:ew,[ed]:[{ref:"Bucket"}]},ta={ref:"Bucket"},to={[eu]:[e9],[ev]:"S3Express does not support S3 Accelerate.",[es]:ev},ts={[eu]:[tt,{fn:ek,[ed]:[{ref:"Endpoint"}],[eh]:"url"}],[el]:[{[eu]:[{fn:ew,[ed]:[{ref:"DisableS3ExpressSessionAuth"}]},{fn:eS,[ed]:[{ref:"DisableS3ExpressSessionAuth"},!0]}],[el]:[{[eu]:[{fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]}],[el]:[{[eu]:[{fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"}],[el]:[{[eA]:{url:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[{fn:eR,[ed]:[ta,!1]}],[el]:[{[eA]:{url:eM,[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD},{[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev}],[es]:eD},{[eu]:[{fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]}],[el]:[{[eu]:[{fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"}],[el]:[{[eA]:{url:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[{fn:eR,[ed]:[ta,!1]}],[el]:[{[eA]:{url:eM,[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],[es]:eD},{[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev}],[es]:eD},tl={fn:ek,[ed]:[{ref:"Endpoint"}],[eh]:"url"},tu={fn:eS,[ed]:[{fn:eT,[ed]:[{ref:"url"},"isIp"]},!0]},td={ref:"url"},th={fn:"uriEncode",[ed]:[ta],[eh]:"uri_encoded_bucket"},tc={[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3express",[eb]:"{Region}"}]},tf={},tp={fn:eR,[ed]:[ta,!1]},tm={[ev]:"S3Express bucket name is not a valid virtual hostable name.",[es]:ev},tg={fn:ew,[ed]:[{ref:"UseS3ExpressControlEndpoint"}]},tb={fn:eS,[ed]:[{ref:"UseS3ExpressControlEndpoint"},!0]},ty={fn:"not",[ed]:[tt]},t_={fn:eS,[ed]:[{ref:"UseDualStack"},!1]},tw={fn:eS,[ed]:[{ref:"UseFIPS"},!1]},tS={[ev]:"Unrecognized S3Express bucket name format.",[es]:ev},tv={fn:"not",[ed]:[tr]},tx={ref:eN},tE={[eu]:[ty],[ev]:"Expected a endpoint to be specified but no endpoint was found",[es]:ev},tT={[ep]:[{[em]:!0,[eC]:eZ,[eg]:eH,[e_]:["*"]},{[em]:!0,[eC]:"sigv4",[eg]:eH,[eb]:"{Region}"}]},tC={fn:eS,[ed]:[{ref:"ForcePathStyle"},!1]},tL={fn:eS,[ed]:[{ref:"Accelerate"},!1]},tj={fn:eE,[ed]:[{ref:"Region"},"aws-global"]},tk={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"us-east-1"}]},tA={fn:"not",[ed]:[tj]},tD={fn:eS,[ed]:[{ref:"UseGlobalEndpoint"},!0]},tR={url:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{Region}"}]},[ey]:{}},tM={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{Region}"}]},tP={fn:eS,[ed]:[{ref:"UseGlobalEndpoint"},!1]},tO={url:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tN={url:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tY={url:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tI={fn:eS,[ed]:[{fn:eT,[ed]:[td,"isIp"]},!1]},tB={url:eJ,[ec]:tM,[ey]:{}},tF={url:eM,[ec]:tM,[ey]:{}},tZ={[eA]:tF,[es]:eA},tH={url:eW,[ec]:tM,[ey]:{}},tJ={url:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},tW={[ev]:"Invalid region: region was not a valid DNS name.",[es]:ev},tX={ref:e$},tG={ref:eU},t$={fn:eT,[ed]:[tX,"service"]},tU={ref:eK},tz={[eu]:[te],[ev]:"S3 Object Lambda does not support Dual-stack",[es]:ev},tQ={[eu]:[e9],[ev]:"S3 Object Lambda does not support S3 Accelerate",[es]:ev},tK={[eu]:[{fn:ew,[ed]:[{ref:"DisableAccessPoints"}]},{fn:eS,[ed]:[{ref:"DisableAccessPoints"},!0]}],[ev]:"Access points are not supported for this operation",[es]:ev},tq={[eu]:[{fn:ew,[ed]:[{ref:"UseArnRegion"}]},{fn:eS,[ed]:[{ref:"UseArnRegion"},!1]},{fn:"not",[ed]:[{fn:eE,[ed]:[{fn:eT,[ed]:[tX,"region"]},"{Region}"]}]}],[ev]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[es]:ev},tV={fn:eT,[ed]:[{ref:"bucketPartition"},eC]},t0={fn:eT,[ed]:[tX,"accountId"]},t1={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:ez,[eb]:"{bucketArn#region}"}]},t2={[ev]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",[es]:ev},t3={[ev]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[es]:ev},t4={[ev]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[es]:ev},t8={[ev]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",[es]:ev},t6={[ev]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",[es]:ev},t5={[ev]:"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided",[es]:ev},t9={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:"s3",[eb]:"{bucketArn#region}"}]},t7={[ep]:[{[em]:!0,[eC]:eZ,[eg]:eH,[e_]:["*"]},{[em]:!0,[eC]:"sigv4",[eg]:eH,[eb]:"{bucketArn#region}"}]},ne={fn:eG,[ed]:[ta]},nt={url:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},nn={url:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},ni={url:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},nr={url:e2,[ec]:tM,[ey]:{}},na={url:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tM,[ey]:{}},no={ref:"UseObjectLambdaEndpoint"},ns={[ep]:[{[em]:!0,[eC]:"sigv4",[eg]:ez,[eb]:"{Region}"}]},nl={url:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nu={url:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nd={url:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nh={url:eO,[ec]:tM,[ey]:{}},nc={url:"https://s3.{Region}.{partitionResult#dnsSuffix}",[ec]:tM,[ey]:{}},nf=[{ref:"Region"}],np=[e9],nm=[tt,tl],ng=[{fn:ew,[ed]:[{ref:"DisableS3ExpressSessionAuth"}]},{fn:eS,[ed]:[{ref:"DisableS3ExpressSessionAuth"},!0]}],nb=[tp],ny=[tn],n_=[e7,te],nw=[e7,t_],nS=[tw,te],nv=[tw,t_],nx=[{fn:eL,[ed]:[ta,6,14,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,14,16,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nE=[{[eu]:[e7,te],[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nw,[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nS,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA},{[eu]:nv,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:{}},[es]:eA}],nT=[{fn:eL,[ed]:[ta,6,15,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,15,17,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nC=[{fn:eL,[ed]:[ta,6,19,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,19,21,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nL=[{fn:eL,[ed]:[ta,6,20,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,20,22,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nj=[{fn:eL,[ed]:[ta,6,26,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,26,28,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nk=[{[eu]:[e7,te],[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nw,[eA]:{url:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nS,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA},{[eu]:nv,[eA]:{url:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.{partitionResult#dnsSuffix}",[ec]:{[ef]:"S3Express",[ep]:[{[em]:!0,[eC]:"sigv4-s3express",[eg]:"s3express",[eb]:"{Region}"}]},[ey]:{}},[es]:eA}],nA=[ta,0,7,!0],nD=[{fn:eL,[ed]:[ta,7,15,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,15,17,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nR=[{fn:eL,[ed]:[ta,7,16,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,16,18,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nM=[{fn:eL,[ed]:[ta,7,20,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,20,22,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nP=[{fn:eL,[ed]:[ta,7,21,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,21,23,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nO=[{fn:eL,[ed]:[ta,7,27,!0],[eh]:"s3expressAvailabilityZoneId"},{fn:eL,[ed]:[ta,27,29,!0],[eh]:"s3expressAvailabilityZoneDelim"},{fn:eE,[ed]:[{ref:"s3expressAvailabilityZoneDelim"},"--"]}],nN=[{fn:eF,[ed]:[{ref:eB},!1]}],nY=[{fn:eE,[ed]:[{ref:eY},"beta"]}],nI=[{fn:eF,[ed]:[{ref:"Region"},!1]}],nB=[{fn:eE,[ed]:[{ref:"Region"},"us-east-1"]}],nF=[{fn:eE,[ed]:[tG,eQ]}],nZ=[{fn:eT,[ed]:[tX,"resourceId[1]"],[eh]:eK},{fn:"not",[ed]:[{fn:eE,[ed]:[tU,""]}]}],nH=[te],nJ=[{fn:"not",[ed]:[{fn:eE,[ed]:[{fn:eT,[ed]:[tX,"region"]},""]}]}],nW=[{fn:"not",[ed]:[{fn:ew,[ed]:[{fn:eT,[ed]:[tX,"resourceId[2]"]}]}]}],nX=[{fn:ex,[ed]:[{fn:eT,[ed]:[tX,"region"]}],[eh]:"bucketPartition"}],nG=[{fn:eE,[ed]:[tV,{fn:eT,[ed]:[{ref:"partitionResult"},eC]}]}],n$=[{fn:eF,[ed]:[{fn:eT,[ed]:[tX,"region"]},!0]}],nU=[{fn:eF,[ed]:[t0,!1]}],nz=[{fn:eF,[ed]:[tU,!1]}],nQ=[e7],nK=[{fn:eF,[ed]:[{ref:"Region"},!0]}],nq={version:"1.0",parameters:{Bucket:e8,Region:e8,UseFIPS:e6,UseDualStack:e6,Endpoint:e8,ForcePathStyle:e6,Accelerate:e6,UseGlobalEndpoint:e6,UseObjectLambdaEndpoint:e5,Key:e8,Prefix:e8,CopySource:e8,DisableAccessPoints:e5,DisableMultiRegionAccessPoints:e6,UseArnRegion:e5,UseS3ExpressControlEndpoint:e5,DisableS3ExpressSessionAuth:e5},[el]:[{[eu]:[{fn:ew,[ed]:nf}],[el]:[{[eu]:[e9,e7],error:"Accelerate cannot be used with FIPS",[es]:ev},{[eu]:[te,tt],error:"Cannot set dual-stack in combination with a custom endpoint.",[es]:ev},{[eu]:[tt,e7],error:"A custom endpoint cannot be combined with FIPS",[es]:ev},{[eu]:[tt,e9],error:"A custom endpoint cannot be combined with S3 Accelerate",[es]:ev},{[eu]:[e7,tn,ti],error:"Partition does not support FIPS",[es]:ev},{[eu]:[tr,{fn:eL,[ed]:[ta,0,6,!0],[eh]:ej},{fn:eE,[ed]:[{ref:ej},"--x-s3"]}],[el]:[to,ts,{[eu]:[tg,tb],[el]:[{[eu]:ny,[el]:[{[eu]:[th,ty],[el]:[{[eu]:n_,endpoint:{url:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tc,[ey]:tf},[es]:eA}],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:nb,[el]:[{[eu]:ny,[el]:[{[eu]:ng,[el]:[{[eu]:nx,[el]:nE,[es]:eD},{[eu]:nT,[el]:nE,[es]:eD},{[eu]:nC,[el]:nE,[es]:eD},{[eu]:nL,[el]:nE,[es]:eD},{[eu]:nj,[el]:nE,[es]:eD},tS],[es]:eD},{[eu]:nx,[el]:nk,[es]:eD},{[eu]:nT,[el]:nk,[es]:eD},{[eu]:nC,[el]:nk,[es]:eD},{[eu]:nL,[el]:nk,[es]:eD},{[eu]:nj,[el]:nk,[es]:eD},tS],[es]:eD}],[es]:eD},tm],[es]:eD},{[eu]:[tr,{fn:eL,[ed]:nA,[eh]:eP},{fn:eE,[ed]:[{ref:eP},"--xa-s3"]}],[el]:[to,ts,{[eu]:nb,[el]:[{[eu]:ny,[el]:[{[eu]:ng,[el]:[{[eu]:nD,[el]:nE,[es]:eD},{[eu]:nR,[el]:nE,[es]:eD},{[eu]:nM,[el]:nE,[es]:eD},{[eu]:nP,[el]:nE,[es]:eD},{[eu]:nO,[el]:nE,[es]:eD},tS],[es]:eD},{[eu]:nD,[el]:nk,[es]:eD},{[eu]:nR,[el]:nk,[es]:eD},{[eu]:nM,[el]:nk,[es]:eD},{[eu]:nP,[el]:nk,[es]:eD},{[eu]:nO,[el]:nk,[es]:eD},tS],[es]:eD}],[es]:eD},tm],[es]:eD},{[eu]:[tv,tg,tb],[el]:[{[eu]:ny,[el]:[{[eu]:nm,endpoint:{url:eO,[ec]:tc,[ey]:tf},[es]:eA},{[eu]:n_,endpoint:{url:"https://s3express-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://s3express-control-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://s3express-control.dualstack.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://s3express-control.{Region}.{partitionResult#dnsSuffix}",[ec]:tc,[ey]:tf},[es]:eA}],[es]:eD}],[es]:eD},{[eu]:[tr,{fn:eL,[ed]:[ta,49,50,!0],[eh]:eN},{fn:eL,[ed]:[ta,8,12,!0],[eh]:eY},{fn:eL,[ed]:nA,[eh]:eI},{fn:eL,[ed]:[ta,32,49,!0],[eh]:eB},{fn:ex,[ed]:nf,[eh]:"regionPartition"},{fn:eE,[ed]:[{ref:eI},"--op-s3"]}],[el]:[{[eu]:nN,[el]:[{[eu]:nb,[el]:[{[eu]:[{fn:eE,[ed]:[tx,"e"]}],[el]:[{[eu]:nY,[el]:[tE,{[eu]:nm,endpoint:{url:"https://{Bucket}.ec2.{url#authority}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{endpoint:{url:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{[eu]:[{fn:eE,[ed]:[tx,"o"]}],[el]:[{[eu]:nY,[el]:[tE,{[eu]:nm,endpoint:{url:"https://{Bucket}.op-{outpostId}.{url#authority}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{endpoint:{url:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",[ec]:tT,[ey]:tf},[es]:eA}],[es]:eD},{error:'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"',[es]:ev}],[es]:eD},{error:"Invalid Outposts Bucket alias - it must be a valid bucket name.",[es]:ev}],[es]:eD},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",[es]:ev}],[es]:eD},{[eu]:[tr],[el]:[{[eu]:[tt,{fn:"not",[ed]:[{fn:ew,[ed]:[{fn:ek,[ed]:[{ref:"Endpoint"}]}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",[es]:ev},{[eu]:[tC,tp],[el]:[{[eu]:ny,[el]:[{[eu]:nI,[el]:[{[eu]:[e9,ti],error:"S3 Accelerate cannot be used in this region",[es]:ev},{[eu]:[te,e7,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,e7,tL,ty,tA,tD],[el]:[{endpoint:tR,[es]:eA}],[es]:eD},{[eu]:[te,e7,tL,ty,tA,tP],endpoint:tR,[es]:eA},{[eu]:[t_,e7,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,e7,tL,ty,tA,tD],[el]:[{endpoint:tO,[es]:eA}],[es]:eD},{[eu]:[t_,e7,tL,ty,tA,tP],endpoint:tO,[es]:eA},{[eu]:[te,tw,e9,ty,tj],endpoint:{url:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,tw,e9,ty,tA,tD],[el]:[{endpoint:tN,[es]:eA}],[es]:eD},{[eu]:[te,tw,e9,ty,tA,tP],endpoint:tN,[es]:eA},{[eu]:[te,tw,tL,ty,tj],endpoint:{url:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,tw,tL,ty,tA,tD],[el]:[{endpoint:tY,[es]:eA}],[es]:eD},{[eu]:[te,tw,tL,ty,tA,tP],endpoint:tY,[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tu,tj],endpoint:{url:eJ,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tI,tj],endpoint:{url:eM,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tu,tA,tD],[el]:[{[eu]:nB,endpoint:tB,[es]:eA},{endpoint:tB,[es]:eA}],[es]:eD},{[eu]:[t_,tw,tL,tt,tl,tI,tA,tD],[el]:[{[eu]:nB,endpoint:tF,[es]:eA},tZ],[es]:eD},{[eu]:[t_,tw,tL,tt,tl,tu,tA,tP],endpoint:tB,[es]:eA},{[eu]:[t_,tw,tL,tt,tl,tI,tA,tP],endpoint:tF,[es]:eA},{[eu]:[t_,tw,e9,ty,tj],endpoint:{url:eW,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,e9,ty,tA,tD],[el]:[{[eu]:nB,endpoint:tH,[es]:eA},{endpoint:tH,[es]:eA}],[es]:eD},{[eu]:[t_,tw,e9,ty,tA,tP],endpoint:tH,[es]:eA},{[eu]:[t_,tw,tL,ty,tj],endpoint:{url:eX,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tw,tL,ty,tA,tD],[el]:[{[eu]:nB,endpoint:{url:eX,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:tJ,[es]:eA}],[es]:eD},{[eu]:[t_,tw,tL,ty,tA,tP],endpoint:tJ,[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tt,tl,{fn:eE,[ed]:[{fn:eT,[ed]:[td,"scheme"]},"http"]},{fn:eR,[ed]:[ta,!0]},tC,tw,t_,tL],[el]:[{[eu]:ny,[el]:[{[eu]:nI,[el]:[tZ],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tC,{fn:eG,[ed]:[ta],[eh]:e$}],[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[0]"],[eh]:eU},{fn:"not",[ed]:[{fn:eE,[ed]:[tG,""]}]}],[el]:[{[eu]:[{fn:eE,[ed]:[t$,ez]}],[el]:[{[eu]:nF,[el]:[{[eu]:nZ,[el]:[tz,tQ,{[eu]:nJ,[el]:[tK,{[eu]:nW,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:nG,[el]:[{[eu]:n$,[el]:[{[eu]:[{fn:eE,[ed]:[t0,""]}],error:"Invalid ARN: Missing account id",[es]:ev},{[eu]:nU,[el]:[{[eu]:nz,[el]:[{[eu]:nm,endpoint:{url:eq,[ec]:t1,[ey]:tf},[es]:eA},{[eu]:nQ,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t1,[ey]:tf},[es]:eA},{endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t1,[ey]:tf},[es]:eA}],[es]:eD},t2],[es]:eD},t3],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},t6],[es]:eD},{error:"Invalid ARN: bucket ARN is missing a region",[es]:ev}],[es]:eD},t5],[es]:eD},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",[es]:ev}],[es]:eD},{[eu]:nF,[el]:[{[eu]:nZ,[el]:[{[eu]:nJ,[el]:[{[eu]:nF,[el]:[{[eu]:nJ,[el]:[tK,{[eu]:nW,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:[{fn:eE,[ed]:[tV,"{partitionResult#name}"]}],[el]:[{[eu]:n$,[el]:[{[eu]:[{fn:eE,[ed]:[t$,"s3"]}],[el]:[{[eu]:nU,[el]:[{[eu]:nz,[el]:[{[eu]:np,error:"Access Points do not support S3 Accelerate",[es]:ev},{[eu]:n_,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nw,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nS,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA},{[eu]:[tw,t_,tt,tl],endpoint:{url:eq,[ec]:t9,[ey]:tf},[es]:eA},{[eu]:nv,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t9,[ey]:tf},[es]:eA}],[es]:eD},t2],[es]:eD},t3],[es]:eD},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",[es]:ev}],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},t6],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:[{fn:eF,[ed]:[tU,!0]}],[el]:[{[eu]:nH,error:"S3 MRAP does not support dual-stack",[es]:ev},{[eu]:nQ,error:"S3 MRAP does not support FIPS",[es]:ev},{[eu]:np,error:"S3 MRAP does not support S3 Accelerate",[es]:ev},{[eu]:[{fn:eS,[ed]:[{ref:"DisableMultiRegionAccessPoints"},!0]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",[es]:ev},{[eu]:[{fn:ex,[ed]:nf,[eh]:eV}],[el]:[{[eu]:[{fn:eE,[ed]:[{fn:eT,[ed]:[{ref:eV},eC]},{fn:eT,[ed]:[tX,"partition"]}]}],[el]:[{endpoint:{url:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",[ec]:{[ep]:[{[em]:!0,name:eZ,[eg]:"s3",[e_]:["*"]}]},[ey]:tf},[es]:eA}],[es]:eD},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",[es]:ev}],[es]:eD}],[es]:eD},{error:"Invalid Access Point Name",[es]:ev}],[es]:eD},t5],[es]:eD},{[eu]:[{fn:eE,[ed]:[t$,eH]}],[el]:[{[eu]:nH,error:"S3 Outposts does not support Dual-stack",[es]:ev},{[eu]:nQ,error:"S3 Outposts does not support FIPS",[es]:ev},{[eu]:np,error:"S3 Outposts does not support S3 Accelerate",[es]:ev},{[eu]:[{fn:ew,[ed]:[{fn:eT,[ed]:[tX,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",[es]:ev},{[eu]:[{fn:eT,[ed]:[tX,"resourceId[1]"],[eh]:eB}],[el]:[{[eu]:nN,[el]:[tq,{[eu]:nX,[el]:[{[eu]:ny,[el]:[{[eu]:nG,[el]:[{[eu]:n$,[el]:[{[eu]:nU,[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[2]"],[eh]:e0}],[el]:[{[eu]:[{fn:eT,[ed]:[tX,"resourceId[3]"],[eh]:eK}],[el]:[{[eu]:[{fn:eE,[ed]:[{ref:e0},eQ]}],[el]:[{[eu]:nm,endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",[ec]:t7,[ey]:tf},[es]:eA},{endpoint:{url:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",[ec]:t7,[ey]:tf},[es]:eA}],[es]:eD},{error:"Expected an outpost type `accesspoint`, found {outpostType}",[es]:ev}],[es]:eD},{error:"Invalid ARN: expected an access point name",[es]:ev}],[es]:eD},{error:"Invalid ARN: Expected a 4-component resource",[es]:ev}],[es]:eD},t3],[es]:eD},t4],[es]:eD},t8],[es]:eD}],[es]:eD}],[es]:eD},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",[es]:ev}],[es]:eD},{error:"Invalid ARN: The Outpost Id was not set",[es]:ev}],[es]:eD},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",[es]:ev}],[es]:eD},{error:"Invalid ARN: No ARN type specified",[es]:ev}],[es]:eD},{[eu]:[{fn:eL,[ed]:[ta,0,4,!1],[eh]:e1},{fn:eE,[ed]:[{ref:e1},"arn:"]},{fn:"not",[ed]:[{fn:ew,[ed]:[ne]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",[es]:ev},{[eu]:[{fn:eS,[ed]:[{ref:"ForcePathStyle"},!0]},ne],error:"Path-style addressing cannot be used with ARN buckets",[es]:ev},{[eu]:[th],[el]:[{[eu]:ny,[el]:[{[eu]:[tL],[el]:[{[eu]:[te,ty,e7,tj],endpoint:{url:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,ty,e7,tA,tD],[el]:[{endpoint:nt,[es]:eA}],[es]:eD},{[eu]:[te,ty,e7,tA,tP],endpoint:nt,[es]:eA},{[eu]:[t_,ty,e7,tj],endpoint:{url:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,ty,e7,tA,tD],[el]:[{endpoint:nn,[es]:eA}],[es]:eD},{[eu]:[t_,ty,e7,tA,tP],endpoint:nn,[es]:eA},{[eu]:[te,ty,tw,tj],endpoint:{url:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[te,ty,tw,tA,tD],[el]:[{endpoint:ni,[es]:eA}],[es]:eD},{[eu]:[te,ty,tw,tA,tP],endpoint:ni,[es]:eA},{[eu]:[t_,tt,tl,tw,tj],endpoint:{url:e2,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,tt,tl,tw,tA,tD],[el]:[{[eu]:nB,endpoint:nr,[es]:eA},{endpoint:nr,[es]:eA}],[es]:eD},{[eu]:[t_,tt,tl,tw,tA,tP],endpoint:nr,[es]:eA},{[eu]:[t_,ty,tw,tj],endpoint:{url:e3,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[t_,ty,tw,tA,tD],[el]:[{[eu]:nB,endpoint:{url:e3,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:na,[es]:eA}],[es]:eD},{[eu]:[t_,ty,tw,tA,tP],endpoint:na,[es]:eA}],[es]:eD},{error:"Path-style addressing cannot be used with S3 Accelerate",[es]:ev}],[es]:eD}],[es]:eD}],[es]:eD},{[eu]:[{fn:ew,[ed]:[no]},{fn:eS,[ed]:[no,!0]}],[el]:[{[eu]:ny,[el]:[{[eu]:nK,[el]:[tz,tQ,{[eu]:nm,endpoint:{url:eO,[ec]:ns,[ey]:tf},[es]:eA},{[eu]:nQ,endpoint:{url:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",[ec]:ns,[ey]:tf},[es]:eA},{endpoint:{url:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",[ec]:ns,[ey]:tf},[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD},{[eu]:[tv],[el]:[{[eu]:ny,[el]:[{[eu]:nK,[el]:[{[eu]:[e7,te,ty,tj],endpoint:{url:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[e7,te,ty,tA,tD],[el]:[{endpoint:nl,[es]:eA}],[es]:eD},{[eu]:[e7,te,ty,tA,tP],endpoint:nl,[es]:eA},{[eu]:[e7,t_,ty,tj],endpoint:{url:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[e7,t_,ty,tA,tD],[el]:[{endpoint:nu,[es]:eA}],[es]:eD},{[eu]:[e7,t_,ty,tA,tP],endpoint:nu,[es]:eA},{[eu]:[tw,te,ty,tj],endpoint:{url:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,te,ty,tA,tD],[el]:[{endpoint:nd,[es]:eA}],[es]:eD},{[eu]:[tw,te,ty,tA,tP],endpoint:nd,[es]:eA},{[eu]:[tw,t_,tt,tl,tj],endpoint:{url:eO,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,t_,tt,tl,tA,tD],[el]:[{[eu]:nB,endpoint:nh,[es]:eA},{endpoint:nh,[es]:eA}],[es]:eD},{[eu]:[tw,t_,tt,tl,tA,tP],endpoint:nh,[es]:eA},{[eu]:[tw,t_,ty,tj],endpoint:{url:e4,[ec]:tk,[ey]:tf},[es]:eA},{[eu]:[tw,t_,ty,tA,tD],[el]:[{[eu]:nB,endpoint:{url:e4,[ec]:tM,[ey]:tf},[es]:eA},{endpoint:nc,[es]:eA}],[es]:eD},{[eu]:[tw,t_,ty,tA,tP],endpoint:nc,[es]:eA}],[es]:eD},tW],[es]:eD}],[es]:eD}],[es]:eD},{error:"A region must be set when sending requests to S3.",[es]:ev}]},nV=new ei.k({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),n0=(e,t={})=>nV.get(e,()=>(0,er.s)(nq,{endpointParams:e,logger:t.logger}));ea.m.aws=en.UF;let n1=(i=async(e,t,n)=>({operation:(0,M.u)(t).operation,region:await (0,c.t)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}),async(e,t,n)=>{if(!n)throw Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let r=await i(e,t,n),a=(0,M.u)(t)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!a)throw Error(`getEndpointParameterInstructions() is not defined on '${t.commandName}'`);return Object.assign(r,await (0,et.x)(n,{getEndpointParameterInstructions:a},e))});function n2(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:e.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}function n3(e){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:e.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}let n4=(r=e=>{let t=[];return e.operation,t.push(n2(e)),t.push(n3(e)),t},a={"aws.auth#sigv4":n2,"aws.auth#sigv4a":n3},e=>{let t=n0(e),n=t.properties?.authSchemes;if(!n)return r(e);let i=[];for(let t of n){let r,{name:o,properties:s={},...l}=t,u=o.toLowerCase();if(o!==u&&console.warn(`HttpAuthScheme has been normalized with lowercasing: '${o}' to '${u}'`),"sigv4a"===u){r="aws.auth#sigv4a";let e=n.find(e=>{let t=e.name.toLowerCase();return"sigv4a"!==t&&t.startsWith("sigv4")});if("none"===ee.sigv4aDependency()&&e)continue}else if(u.startsWith("sigv4"))r="aws.auth#sigv4";else throw Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${u}'`);let d=a[r];if(!d)throw Error(`Could not find HttpAuthOption create function for '${r}'`);let h=d(e);h.schemeId=r,h.signingProperties={...h.signingProperties||{},...l,...s},i.push(h)}return i});var n8=n("./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js"),n6=n("./node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js"),n5=n("./node_modules/@smithy/smithy-client/dist-es/command.js"),n9=n("./node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js"),n7=n("./node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js");class ie extends n5.u.classBuilder().ep({...n9.S,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(e,t,n,i){return[(0,n6.r)(n,e.getEndpointParameterInstructions()),(0,n8.Cg)(n)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").sc(n7.Nsl).build(){}var it=n("./node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js"),ii=n("./node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js"),ir=n("./node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js"),ia=n("./node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js"),io=n("./node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js"),is=n("./node_modules/@smithy/property-provider/dist-es/chain.js");let il="AWS_EC2_METADATA_DISABLED",iu=async e=>{let{ENV_CMDS_FULL_URI:t,ENV_CMDS_RELATIVE_URI:i,fromContainerMetadata:r,fromInstanceMetadata:a}=await n.e("560").then(n.bind(n,"./node_modules/@smithy/credential-provider-imds/dist-es/index.js"));if(process.env[i]||process.env[t]){e.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:t}=await n.e("634").then(n.bind(n,"./node_modules/@aws-sdk/credential-provider-http/dist-es/index.js"));return(0,is.c)(t(e),r(e))}return process.env[il]&&"false"!==process.env[il]?async()=>{throw new ia.C("EC2 Instance Metadata Service access disabled",{logger:e.logger})}:(e.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),a(e))},id=!1,ih=(e={})=>{let t,i,r,a,o,s;return s=[async()=>{if(e.profile??process.env[io.Ch])throw process.env[ir.yG]&&process.env[ir.pi]&&!id&&((e.logger?.warn&&e.logger?.constructor?.name!=="NoOpLogger"?e.logger.warn.bind(e.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
65
65
  Multiple credential sources detected:
66
66
  Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.
67
67
  This SDK will proceed with the AWS_PROFILE value.
@@ -104,7 +104,4 @@ Image URL: ${o.data[0].url}`)),e.output)){t.start("Downloading image...");let n=
104
104
  ✓ Result saved to: ${e.output}`)))}catch(e){t.fail(J.red("✗ Video generation failed")),console.error(J.red(`Error: ${e.message}`)),process.exit(1)}}),eG=new h("search").description("Search the web using AI").requiredOption("-q, --query <text>","Search query").option("--type <type>","Search type (web or image)","web").option("--count <number>","Number of results","10").option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{let t=eO("Searching...").start();try{let n,i=new m.Config,r=eH(e.header),a=new m.SearchClient(i,r,e.verbose);n="image"===e.type?await a.imageSearch(e.query,parseInt(e.count)):await a.webSearch(e.query,parseInt(e.count)),t.succeed(J.green("Search completed!")),"image"===e.type&&n.image_items?n.image_items.forEach((e,t)=>{console.log(J.cyan(`
105
105
  [${t+1}] ${e.title||"Image"}`)),console.log(J.gray(e.url||"")),console.log(J.yellow(`Image URL: ${e.image.url}`))}):n.web_items&&n.web_items.forEach((e,t)=>{console.log(J.cyan(`
106
106
  [${t+1}] ${e.title}`)),console.log(J.gray(e.url||"")),e.snippet&&console.log(e.snippet)})}catch(e){t.fail(J.red("Search failed")),console.error(J.red(e.message)),process.exit(1)}}),e$=new h("tts").description("Text-to-speech conversion").requiredOption("-t, --text <text>","Text to convert to speech").option("--speaker <speaker>","Speaker voice to use","zh_female_xiaohe_uranus_bigtts").option("--mock","Use mock mode (test run)").option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).action(async e=>{let t=eO("Converting text to speech...").start();try{let n=new m.Config,i={},r=eH(e.header);r&&Object.assign(i,r),e.mock&&(i[eF]=eZ,console.log(J.yellow("\uD83E\uDDEA Mock mode enabled (test run)")));let a=new m.TTSClient(n,Object.keys(i).length>0?i:void 0),o=await a.synthesize({uid:"cli-user",text:e.text,speaker:e.speaker});t.succeed(J.green("Text-to-speech conversion completed!")),console.log(J.cyan(`Audio URL: ${o.audioUri}`)),console.log(J.cyan(`Audio Size: ${o.audioSize} bytes`))}catch(e){t.fail(J.red("Text-to-speech conversion failed")),console.error(J.red(e.message)),process.exit(1)}}),eU=new h("asr").description("Automatic speech recognition").option("-u, --url <url>","Audio file URL").option("-f, --file <path>","Local audio file path (will be base64 encoded)").option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{let t=eO("Recognizing speech...").start();try{e.url||e.file||(t.fail(J.red("Please provide either --url or --file")),process.exit(1));let n=new m.Config,i=eH(e.header),r=new m.ASRClient(n,i,e.verbose),a=e.url?{url:e.url}:{base64Data:eN.readFileSync(eY.resolve(e.file)).toString("base64")},o=await r.recognize(a);t.succeed(J.green("Speech recognition completed!")),console.log(J.cyan("\nRecognized text:")),console.log(o.text)}catch(e){t.fail(J.red("Speech recognition failed")),console.error(J.red(e.message)),process.exit(1)}}),ez=new h("chat").description("Chat with AI using LLM").requiredOption("-p, --prompt <text>","User prompt").option("-s, --system <text>","System prompt").option("--model <model>","Model to use","doubao-seed-1-6-251015").option("--temperature <number>","Temperature (0-2)","0.7").option("--stream","Enable streaming output",!1).option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{try{let t=new m.Config,n=new m.LLMClient(t),i=eH(e.header),r=[];e.system&&r.push({role:"system",content:e.system}),r.push({role:"user",content:e.prompt});let a={model:e.model,temperature:parseFloat(e.temperature)};if(e.stream){for await(let e of(console.log(J.cyan("\nAI Response:")),n.stream(r,a,void 0,i)))e.content&&process.stdout.write(e.content.toString());console.log("\n")}else{let e=eO("Generating response...").start(),t=await n.invoke(r,a,void 0,i);e.succeed(J.green("Response generated!")),console.log(J.cyan("\nAI Response:")),console.log(t.content)}}catch(e){console.error(J.red("Chat failed")),console.error(J.red(e.message)),process.exit(1)}}),eQ=process.env.COZE_PROJECT_TYPE,eK="wechat_mini_program"===eQ,eq="app"===eQ,eV=(n=process.cwd(),i="server"===eY.basename(n),eK||eq?i?"src/storage/database/shared/schema.ts":"server/src/storage/database/shared/schema.ts":"src/storage/database/shared/schema.ts"),e0=new h("db").description("Database operations");e0.command("generate-models").description("Generate ORM models from database schema").option("-o, --output <path>","Output file path",eV).option("-v, --verbose","Enable verbose output").action(async e=>{let t=eO("Generating models from database...").start();try{let{generateModels:n}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/database/index.ts")),i=eY.resolve(e.output);await n({outputPath:i,verbose:e.verbose}),t.succeed(J.green(`Models generated at ${i}`))}catch(e){t.fail(J.red("Failed to generate models")),console.error(J.red(e.message)),process.exit(1)}}),e0.command("upgrade").description("Push schema changes to database").option("-s, --schema <path>","Schema file path",eV).option("-p, --project <path>","Project root path",process.cwd()).option("-v, --verbose","Enable verbose output").action(async e=>{let t=eO("Pushing schema to database...").start();try{let{upgrade:n}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/database/index.ts"));await n({schemaPath:e.schema,projectPath:e.project,verbose:e.verbose}),t.succeed(J.green("Database schema updated successfully"))}catch(e){t.fail(J.red("Failed to upgrade database")),console.error(J.red(e.message)),process.exit(1)}}),e0.command("diagnose").description("获取数据库运行状态诊断报告").option("-e, --env <env>","目标环境: dev 或 prod,不传则使用 token 中的环境").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/database/diagnose")),e.env&&console.log(J.cyan("\uD83D\uDCE4 Payload:"),{env:e.env}),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({report:{},mock:!0},null,2));return}let n=eO("Diagnosing database...").start();try{let{Config:i,SupabaseClient:r}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/index.ts")),a=new i,o=new r(a,t),s=await o.diagnoseDatabase(e.env);if(e.verbose&&(n.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code){let t=s.msg||"";if(t.toLowerCase().includes("record not found")){let t=e.env||"dev/prod";n.fail(J.red(`${t} 数据库还未创建,请先创建数据库后再进行诊断`))}else n.fail(J.red(`Error: ${t}`));process.exit(1)}n.succeed(J.green("Database diagnosis completed!")),console.log(JSON.stringify(s.report,null,2))}catch(e){n.fail(J.red("Failed to diagnose database")),console.error(J.red(e.message)),process.exit(1)}});let e1=new h("embedding").description("Generate embeddings for text, images, or videos using AI").option("-t, --text <text>","Text to embed (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("--image-url <url>","Image URL to embed (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("--video-url <url>","Video URL to embed (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("-d, --dimensions <number>","Output embedding dimensions",parseInt).option("--instructions <text>","Instructions for embedding generation").option("--multi-embedding","Enable multi-embedding mode").option("--sparse-embedding","Enable sparse embedding mode").option("-o, --output <path>","Output file path for embedding JSON").option("--mock","Use mock mode (test run)").option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{let t=e.text&&e.text.length>0,n=e.imageUrl&&e.imageUrl.length>0,i=e.videoUrl&&e.videoUrl.length>0;t||n||i||(console.error(J.red("Error: At least one of --text, --image-url, or --video-url is required")),process.exit(1));let r=eO("Generating embeddings...").start();try{let a=new m.Config,o={},s=eH(e.header);s&&Object.assign(o,s),e.mock&&(o[eF]=eZ,console.log(J.yellow("\uD83E\uDDEA Mock mode enabled (test run)")));let l=new m.EmbeddingClient(a,Object.keys(o).length>0?o:void 0,e.verbose),u=await l.embed(t?e.text:void 0,n?e.imageUrl:void 0,i?e.videoUrl:void 0,{dimensions:e.dimensions,instructions:e.instructions,multiEmbedding:e.multiEmbedding,sparseEmbedding:e.sparseEmbedding});if(r.succeed(J.green("Embeddings generated successfully!")),console.log(J.cyan(`Model: ${u.model}`)),u.data?.embedding&&(console.log(J.cyan(`Embedding dimensions: ${u.data.embedding.length}`)),console.log(J.gray(`First 5 values: [${u.data.embedding.slice(0,5).join(", ")}...]`))),u.data?.multi_embedding&&console.log(J.cyan(`Multi-embedding vectors: ${u.data.multi_embedding.length}`)),u.data?.sparse_embedding&&console.log(J.cyan(`Sparse embedding items: ${u.data.sparse_embedding.length}`)),u.usage&&console.log(J.gray(`Tokens used: ${u.usage.total_tokens}`)),e.output){let t=eY.resolve(e.output);eN.writeFileSync(t,JSON.stringify(u,null,2)),console.log(J.green(`Embedding saved to ${t}`))}}catch(e){r.fail(J.red("Failed to generate embeddings")),console.error(J.red(e.message)),process.exit(1)}}),e2=new h("knowledge").description("Knowledge Base tools");e2.command("search").description("Search for knowledge chunks").requiredOption("-q, --query <text>","Search query").option("-d, --dataset <name>","Dataset names (tables) to search in (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("-k, --top-k <number>","Number of results to return","5").option("-m, --min-score <number>","Minimum similarity score","0.0").option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{let t=eO("Searching...").start();try{let n=new m.Config,i=eH(e.header),r=new m.KnowledgeClient(n,i,e.verbose),a=await r.search(e.query,e.dataset.length>0?e.dataset:void 0,parseInt(e.topK),parseFloat(e.minScore));if(0!==a.code)return void t.fail(J.red(`Error ${a.code}: ${a.msg}`));t.succeed(J.green("Search completed!")),console.log(J.bold("\nSearch Results:")),console.log("────────────────────────────────────────────────────────────────────────────────"),0===a.chunks.length&&console.log(J.yellow("No matching chunks found.")),a.chunks.forEach((e,t)=>{console.log(J.cyan(`[${t+1}] Score: ${e.score.toFixed(4)}`)),e.doc_id&&console.log(J.dim(`Doc ID: ${e.doc_id}`)),e.chunk_id&&console.log(J.dim(`Chunk ID: ${e.chunk_id}`)),console.log(J.green("Content:")),console.log(e.content),console.log("────────────────────────────────────────────────────────────────────────────────")})}catch(e){t.fail(J.red("Search failed")),console.error(J.red(e.message)),process.exit(1)}}),e2.command("add").description("Add documents to knowledge base").requiredOption("-d, --dataset <name>","Dataset name (table) to add to").option("-c, --content <text>","Raw text content to add (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("-u, --url <url>","Web URL to add (can be used multiple times)",(e,t)=>t.concat([e]),[]).option("--chunk-separator <char>","Chunk separator","\\n").option("--max-tokens <number>","Max tokens per chunk","500").option("--remove-extra-spaces","Normalize extra spaces",!1).option("--remove-urls-emails","Strip URLs and emails",!1).option("-H, --header <header>",'Custom HTTP header (format: "Key: Value" or "Key=Value", can be used multiple times)',(e,t)=>t.concat([e]),[]).option("--verbose","Enable verbose logging to print HTTP request details",!1).action(async e=>{let t=eO("Adding documents...").start();try{let n=new m.Config,i=eH(e.header),r=new m.KnowledgeClient(n,i,e.verbose),a=[];if(e.content&&e.content.forEach(e=>{a.push({source:m.DataSourceType.TEXT,raw_data:e})}),e.url&&e.url.forEach(e=>{a.push({source:m.DataSourceType.URL,url:e})}),0===a.length)return void t.fail(J.red("No content or URL provided to add."));let o={separator:e.chunkSeparator.replace(/\\n/g,"\n"),max_tokens:parseInt(e.maxTokens),remove_extra_spaces:e.removeExtraSpaces,remove_urls_emails:e.removeUrlsEmails},s=await r.addDocuments(a,e.dataset,o);if(0!==s.code)return void t.fail(J.red(`Error ${s.code}: ${s.msg}`));t.succeed(J.green("Documents added successfully!")),s.doc_ids&&s.doc_ids.length>0&&(console.log(J.cyan(`
107
- Added ${s.doc_ids.length} documents.`)),console.log(J.dim(`Doc IDs: ${s.doc_ids.join(", ")}`)))}catch(e){t.fail(J.red("Add documents failed")),console.error(J.red(e.message)),process.exit(1)}});var e3=__webpack_require__("os"),e4=__webpack_require__("./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js"),e8=__webpack_require__("./node_modules/@aws-sdk/lib-storage/dist-es/index.js"),e6=__webpack_require__("crypto"),e5=__webpack_require__("./node_modules/archiver/index.js"),e9=__webpack_require__.n(e5);let e7={".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".json":"application/json",".xml":"application/xml",".txt":"text/plain",".csv":"text/csv",".md":"text/markdown",".yaml":"text/yaml",".yml":"text/yaml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".ico":"image/x-icon",".bmp":"image/bmp",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".flac":"audio/flac",".mp4":"video/mp4",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".pdf":"application/pdf",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".rar":"application/vnd.rar",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".eot":"application/vnd.ms-fontobject"};function te(e,t,n,i){let r=i(t);if(n){let e=eY.extname(r),t=r.slice(0,r.length-e.length),n=eY.posix.dirname(t),i=eY.posix.basename(t),a=(0,e6.randomUUID)().replace(/-/g,"").slice(0,8);r="."!==n?`${n}/${i}_${a}${e}`:`${i}_${a}${e}`}return e+r}async function tt(e){let t=eY.basename(e),n=`${t}.zip`,i=eN.mkdtempSync(eY.join(e3.tmpdir(),"storage-upload-")),r=eY.join(i,n);return new Promise((n,i)=>{let a=eN.createWriteStream(r),o=e9()("zip",{zlib:{level:9}});a.on("close",()=>n(r)),o.on("error",e=>i(e)),o.pipe(a),o.directory(e,t),o.finalize()})}async function tn(e,t,n,i,r){var a;let o=(a=n,e7[eY.extname(a).toLowerCase()]||"application/octet-stream");if(eN.statSync(n).size<=r){let r=eN.readFileSync(n);await e.send(new e4.w({Bucket:t,Key:i,Body:r,ContentType:o}))}else{let r=eN.createReadStream(n),a=new e8._({client:e,params:{Bucket:t,Key:i,Body:r,ContentType:o}});await a.done()}}let ti=new h("storage").description("Object storage commands");ti.command("upload").description("Upload files and directories to object storage.\n\nFiles are uploaded directly. Directories are uploaded recursively\nAND also zipped as a single archive.\nReturns JSON with file-to-URL mappings.\n\nExamples:\n coze-coding-ai storage upload ./data --prefix my-project/\n coze-coding-ai storage upload file1.txt dir1/ dir2/ --prefix uploads/\n coze-coding-ai storage upload report.csv --prefix reports/ --expire 3600").argument("<paths...>","File or directory paths to upload").option("-p, --prefix <prefix>","Target S3 key prefix (virtual directory)","").option("--uuid","Append UUID suffix to filenames to avoid collisions").option("-e, --expire <seconds>","Presigned URL expiration in seconds (default: 86400 = 24h)","86400").option("-t, --threshold <bytes>","Size threshold for streaming upload (default: 5MB)","5242880").option("-c, --max-concurrency <n>","Number of parallel uploads (default: 4)","4").option("--dry-run","List items without uploading").option("-v, --verbose","Show detailed output").action(async(e,t)=>{var n;let i,r,a,{S3Storage:o}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/s3/index.ts")),s=[],l=[];for(let t of e){let e=eY.resolve(t);if(!eN.existsSync(e)){console.log(J.yellow(`Warning: ${t} does not exist, skipping`));continue}let n=eN.statSync(e);n.isFile()?s.push(e):n.isDirectory()?l.push(e):console.log(J.yellow(`Warning: ${t} is not a file or directory, skipping`))}0===s.length&&0===l.length&&(console.log(J.red("No files or directories found to upload.")),process.exit(1));let u=(n=t.prefix)&&(n=n.replace(/^\/+|\/+$/g,""))?n+"/":"",d=parseInt(t.expire,10),h=parseInt(t.threshold,10),c=parseInt(t.maxConcurrency,10);try{r=(i=new o).resolveBucket(void 0)}catch(e){console.log(J.red(`S3 configuration error: ${e.message}`)),process.exit(1)}let f=e=>i.sanitizeFileName(e),p=[];for(let e of s){let n=eY.basename(e),i=te(u,n,!!t.uuid,f);p.push({localPath:e,objectKey:i,displayName:n})}let m=[];for(let e of l)for(let{absolutePath:n,relativeKey:i}of function(e){let t=[],n=eY.dirname(e);return!function e(i){for(let r of eN.readdirSync(i,{withFileTypes:!0})){let a=eY.join(i,r.name);if(r.isDirectory())e(a);else if(r.isFile()){let e=eY.relative(n,a).split(eY.sep).join("/");t.push({absolutePath:a,relativeKey:e})}}}(e),t}(e)){let e=te(u,i,!!t.uuid,f);m.push({localPath:n,objectKey:e,displayName:i})}let g=[...p,...m],b=[];for(let e of l){let n=eY.basename(e),i=te(u,`${n}.zip`,!!t.uuid,f);b.push({dirPath:e,objectKey:i,displayName:`${n}/`})}let y=g.length+b.length;if(t.dryRun){for(let e of(console.log(J.cyan(`Dry run: ${y} items would be uploaded to s3://${r}/${u}
108
- `)),g))console.log(` ${J.dim("file")} ${e.displayName} -> ${e.objectKey}`);for(let e of b)console.log(` ${J.dim("zip ")} ${e.displayName} -> ${e.objectKey}`);return}try{a=i.getClient()}catch(e){console.log(J.red(`Failed to initialize S3 client: ${e.message}`)),process.exit(1)}console.log(`Uploading ${y} items to s3://${r}/${u} ...
109
- `);let w={},S=[],v=0,x=new Set(p.map(e=>e.displayName)),E=[...g],T=[];async function C(e){try{if(await tn(a,r,e.localPath,e.objectKey,h),x.has(e.displayName)){let t=await i.generatePresignedUrl({key:e.objectKey,expireTime:d});w[e.displayName]=t}t.verbose&&console.log(J.green(" OK")+` ${e.displayName} -> ${e.objectKey}`)}catch(n){S.push({name:e.displayName,error:n.message}),t.verbose&&console.log(J.red(" FAIL")+` ${e.displayName}: ${n.message}`)}finally{v++,process.stdout.write(`\r [${v}/${y}] items processed`)}}for(;E.length>0||T.length>0;){for(;T.length<c&&E.length>0;){let e=C(E.shift()).then(()=>{T.splice(T.indexOf(e),1)});T.push(e)}T.length>0&&await Promise.race(T)}for(let e of b){let n=null;try{t.verbose&&console.log(`
110
- Zipping ${e.displayName} ...`),n=await tt(e.dirPath),await tn(a,r,n,e.objectKey,h);let o=await i.generatePresignedUrl({key:e.objectKey,expireTime:d});w[e.displayName]=o,t.verbose&&console.log(J.green(" OK")+` ${e.displayName} -> ${e.objectKey}`)}catch(n){S.push({name:e.displayName,error:n.message}),t.verbose&&console.log(J.red(" FAIL")+` ${e.displayName}: ${n.message}`)}finally{if(n)try{eN.unlinkSync(n),eN.rmdirSync(eY.dirname(n))}catch{}v++,process.stdout.write(`\r [${v}/${y}] items processed`)}}process.stdout.write("\n");let L={...w};S.length>0&&(L._failures=S),console.log(),console.log(JSON.stringify(L,null,2)),console.log();let j=Object.keys(w).length;console.log(J.green(` OK ${j}/${y} items uploaded`)),S.length>0&&(console.log(J.red(` FAIL ${S.length} items`)),process.exit(1))});let tr=new h("supabase").description("Supabase 管理命令,包括 Edge Functions、Storage Buckets 和 Auth 配置管理"),ta=tr.command("func").description("Edge Functions(边缘函数)管理命令");ta.command("list").description("列出所有 Edge Functions").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/list")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({functions:[],mock:!0},null,2));return}let n=eO("Fetching functions...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.listFunctions();e.verbose&&(n.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code)),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Functions fetched successfully!")),console.log(JSON.stringify(a.functions,null,2))}catch(e){n.fail(J.red("Failed to fetch functions")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("get").description("获取 Edge Function 详情和源码").argument("<slug>",'函数标识符,即函数的唯一名称(如 "hello-world"),可通过 "func list" 命令查看').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/get")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({function:{slug:e},files:[],mock:!0},null,2));return}let i=eO("Fetching function...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.getFunction(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Function fetched successfully!")),console.log(JSON.stringify({function:o.function,files:o.files},null,2))}catch(e){i.fail(J.red("Failed to fetch function")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("deploy").description("部署或更新 Edge Function。如果函数已存在则更新,不存在则创建新函数").argument("<slug>",'函数标识符,只能包含小写字母、数字和连字符(如 "hello-world")').option("-c, --code <code>","函数代码字符串(用于单文件函数),与 --file 二选一").option("-f, --file <items...>","文件名和内容对,格式:--file <文件名> <内容>,可多次使用,例如:--file index.ts 'Deno.serve(...)' --file handler.ts 'export ...'").option("-n, --name <name>","函数显示名称,用于在控制台中展示").option("-e, --entrypoint <path>",'入口文件名称,多文件部署时必需,指定主入口文件(如 "index.ts")').option("--verify-jwt","启用 JWT 验证,调用函数需要携带有效的 JWT token").option("--no-verify-jwt","禁用 JWT 验证").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=t.code;if(t.file&&t.file.length>0){t.file.length%2!=0&&(console.error(J.red("Error: --file requires pairs of <name> <content>")),process.exit(1)),n=[];for(let e=0;e<t.file.length;e+=2)n.push({name:t.file[e],content:t.file[e+1]})}i||n||(console.error(J.red("Error: Either --code or --file is required")),process.exit(1));let r=eH(t.header),a={code:i,files:n,name:t.name,entrypoint:t.entrypoint,verify_jwt:t.verifyJwt};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/deploy")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e,...a,code:i?`${i.substring(0,50)}...`:void 0}),r&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(r))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,slug:e,version:1,mock:!0},null,2));return}let o=eO("Deploying function...").start();try{let n=new m.Config,i=new m.SupabaseClient(n,r),s=await i.deployFunction(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Function deployed successfully!")),console.log(JSON.stringify({success:s.success,slug:s.slug,version:s.version},null,2))}catch(e){o.fail(J.red("Failed to deploy function")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("delete").description("删除 Edge Function。⚠️ 警告:此操作不可逆,删除后函数将无法恢复").argument("<slug>",'函数标识符,可通过 "func list" 命令查看所有函数的 slug').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/delete")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Deleting function...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.deleteFunction(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Function deleted successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to delete function")),console.error(J.red(e.message)),process.exit(1)}});let to=tr.command("bucket").description("Storage Buckets(存储桶)管理命令");to.command("list").description("列出所有 Storage Buckets").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/list")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({buckets:[],mock:!0},null,2));return}let n=eO("Fetching buckets...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.listBuckets();e.verbose&&(n.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code)),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Buckets fetched successfully!")),console.log(JSON.stringify(a.buckets,null,2))}catch(e){n.fail(J.red("Failed to fetch buckets")),console.error(J.red(e.message)),process.exit(1)}}),to.command("get").description("获取 Storage Bucket 详情").argument("<bucket_id>",'存储桶 ID,即存储桶的唯一标识符(如 "avatars"),可通过 "bucket list" 命令查看').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/get")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({bucket:{id:e},mock:!0},null,2));return}let i=eO("Fetching bucket...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.getBucket(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Bucket fetched successfully!")),console.log(JSON.stringify(o.bucket,null,2))}catch(e){i.fail(J.red("Failed to fetch bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("create").description("创建新的 Storage Bucket").argument("<bucket_id>",'存储桶 ID,只能包含小写字母、数字和连字符(如 "user-avatars")').option("-n, --name <name>","存储桶显示名称,用于在控制台中展示").option("--public","设置为公开存储桶,允许匿名访问").option("--private","设置为私有存储桶,需要认证才能访问").option("--file-size-limit <bytes>","单个文件大小限制(字节),例如 10485760 表示 10MB",parseInt).option("--allowed-mime-types <types>",'允许上传的文件 MIME 类型(逗号分隔),例如 "image/png,image/jpeg"').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=eH(t.header);t.public?n=!0:t.private&&(n=!1);let r=t.allowedMimeTypes?t.allowedMimeTypes.split(",").map(e=>e.trim()):void 0,a={name:t.name,public:n,file_size_limit:t.fileSizeLimit,allowed_mime_types:r};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/create")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e,...a}),i&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(i))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,bucket_id:e,mock:!0},null,2));return}let o=eO("Creating bucket...").start();try{let n=new m.Config,r=new m.SupabaseClient(n,i),s=await r.createBucket(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Bucket created successfully!")),console.log(JSON.stringify({success:s.success,bucket_id:s.bucket_id},null,2))}catch(e){o.fail(J.red("Failed to create bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("update").description("更新 Storage Bucket 配置").argument("<bucket_id>",'存储桶 ID,可通过 "bucket list" 命令查看所有存储桶的 ID').option("--public","设置为公开存储桶,允许匿名访问").option("--private","设置为私有存储桶,需要认证才能访问").option("--file-size-limit <bytes>","单个文件大小限制(字节),例如 10485760 表示 10MB",parseInt).option("--allowed-mime-types <types>",'允许上传的文件 MIME 类型(逗号分隔),例如 "image/png,image/jpeg"').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=eH(t.header);t.public?n=!0:t.private&&(n=!1);let r=t.allowedMimeTypes?t.allowedMimeTypes.split(",").map(e=>e.trim()):void 0,a={public:n,file_size_limit:t.fileSizeLimit,allowed_mime_types:r};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/update")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e,...a}),i&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(i))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let o=eO("Updating bucket...").start();try{let n=new m.Config,r=new m.SupabaseClient(n,i),s=await r.updateBucket(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Bucket updated successfully!")),console.log(JSON.stringify({success:s.success},null,2))}catch(e){o.fail(J.red("Failed to update bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("delete").description("删除 Storage Bucket。⚠️ 警告:此操作不可逆,删除后存储桶及其中的所有文件将无法恢复").argument("<bucket_id>",'存储桶 ID,可通过 "bucket list" 命令查看所有存储桶的 ID').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/delete")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Deleting bucket...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.deleteBucket(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Bucket deleted successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to delete bucket")),console.error(J.red(e.message)),process.exit(1)}});let ts=tr.command("auth").description("Auth(认证配置)管理命令");ts.command("get-config").description("获取 Auth 认证配置,包括邮箱认证、SMTP 等设置").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/auth/config/get")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({config:{},mock:!0},null,2));return}let n=eO("Fetching auth config...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.getAuthConfig();e.verbose&&console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Auth config fetched successfully!")),console.log(JSON.stringify(a.config,null,2))}catch(e){n.fail(J.red("Failed to fetch auth config")),console.error(J.red(e.message)),process.exit(1)}}),ts.command("update-config").description("更新 Auth 认证配置。至少需要提供一个配置项,更新 SMTP 配置后建议测试邮件发送功能").option("--site-url <url>",'站点 URL,用于邮件中的链接跳转地址(如 "https://myapp.com")').option("--disable-signup","禁用用户自助注册功能").option("--enable-signup","启用用户自助注册功能").option("--external-email-enabled","启用邮箱认证方式").option("--external-email-disabled","禁用邮箱认证方式").option("--mailer-autoconfirm","启用邮箱自动确认(跳过邮件验证)").option("--no-mailer-autoconfirm","禁用邮箱自动确认").option("--double-confirm-changes","启用敏感操作的双重确认").option("--no-double-confirm-changes","禁用敏感操作的双重确认").option("--mailer-secure-email-change-enabled","启用安全邮箱更改流程").option("--mailer-secure-email-change-disabled","禁用安全邮箱更改流程").option("--mailer-otp-exp <seconds>","OTP 验证码过期时间(秒),例如 3600 表示 1 小时",parseInt).option("--password-min-length <length>","用户密码最小长度要求,例如 8",parseInt).option("--password-required-characters <chars>",'密码必需包含的字符类型,例如 "abcABC123"').option("--smtp-host <host>",'SMTP 邮件服务器地址,例如 "smtp.sendgrid.net"').option("--smtp-port <port>","SMTP 邮件服务器端口,例如 587",parseInt).option("--smtp-user <user>","SMTP 认证用户名").option("--smtp-pass <pass>","SMTP 认证密码或 API Key").option("--smtp-admin-email <email>",'发件人邮箱地址,例如 "noreply@myapp.com"').option("--smtp-sender-name <name>",'发件人显示名称,例如 "My App"').option("--smtp-max-frequency <seconds>","同一邮箱的最小发送间隔(秒),用于防止滥用",parseInt).option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t={};void 0!==e.siteUrl&&(t.site_url=e.siteUrl),e.disableSignup&&(t.disable_signup=!0),e.enableSignup&&(t.disable_signup=!1),e.externalEmailEnabled&&(t.external_email_enabled=!0),e.externalEmailDisabled&&(t.external_email_enabled=!1),void 0!==e.mailerAutoconfirm&&(t.mailer_autoconfirm=e.mailerAutoconfirm),void 0!==e.doubleConfirmChanges&&(t.double_confirm_changes=e.doubleConfirmChanges),e.mailerSecureEmailChangeEnabled&&(t.mailer_secure_email_change_enabled=!0),e.mailerSecureEmailChangeDisabled&&(t.mailer_secure_email_change_enabled=!1),void 0!==e.mailerOtpExp&&(t.mailer_otp_exp=e.mailerOtpExp),void 0!==e.passwordMinLength&&(t.password_min_length=e.passwordMinLength),void 0!==e.passwordRequiredCharacters&&(t.password_required_characters=e.passwordRequiredCharacters),void 0!==e.smtpHost&&(t.smtp_host=e.smtpHost),void 0!==e.smtpPort&&(t.smtp_port=e.smtpPort),void 0!==e.smtpUser&&(t.smtp_user=e.smtpUser),void 0!==e.smtpPass&&(t.smtp_pass=e.smtpPass),void 0!==e.smtpAdminEmail&&(t.smtp_admin_email=e.smtpAdminEmail),void 0!==e.smtpSenderName&&(t.smtp_sender_name=e.smtpSenderName),void 0!==e.smtpMaxFrequency&&(t.smtp_max_frequency=e.smtpMaxFrequency),0===Object.keys(t).length&&(console.error(J.red("Error: At least one config option is required")),process.exit(1));let n=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/auth/config/update")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{config:t}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Updating auth config...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.updateAuthConfig(t);e.verbose&&console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Auth config updated successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to update auth config")),console.error(J.red(e.message)),process.exit(1)}});let tl=new h;tl.name("coze-coding-ai").description("Coze Coding CLI - AI-powered tools for image generation, video generation, search, voice, chat, embedding, knowledge, and supabase management").version("0.3.0"),tl.addCommand(eW),tl.addCommand(eX),tl.addCommand(eG),tl.addCommand(e$),tl.addCommand(eU),tl.addCommand(ez),tl.addCommand(e0),tl.addCommand(e1),tl.addCommand(e2),tl.addCommand(tr),tl.addCommand(ti),tl.parse(process.argv)})(),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
107
+ Added ${s.doc_ids.length} documents.`)),console.log(J.dim(`Doc IDs: ${s.doc_ids.join(", ")}`)))}catch(e){t.fail(J.red("Add documents failed")),console.error(J.red(e.message)),process.exit(1)}});var e3=__webpack_require__("os"),e4=__webpack_require__("./node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js"),e8=__webpack_require__("./node_modules/@aws-sdk/lib-storage/dist-es/index.js"),e6=__webpack_require__("crypto"),e5=__webpack_require__("./node_modules/archiver/index.js"),e9=__webpack_require__.n(e5);let e7={".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".json":"application/json",".xml":"application/xml",".txt":"text/plain",".csv":"text/csv",".md":"text/markdown",".yaml":"text/yaml",".yml":"text/yaml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".ico":"image/x-icon",".bmp":"image/bmp",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".flac":"audio/flac",".mp4":"video/mp4",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".pdf":"application/pdf",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".rar":"application/vnd.rar",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".eot":"application/vnd.ms-fontobject"};function te(e,t,n,i){let r=i(t);if(n){let e=eY.extname(r),t=r.slice(0,r.length-e.length),n=eY.posix.dirname(t),i=eY.posix.basename(t),a=(0,e6.randomUUID)().replace(/-/g,"").slice(0,8);r="."!==n?`${n}/${i}_${a}${e}`:`${i}_${a}${e}`}return e+r}async function tt(e){let t=eY.basename(e),n=`${t}.zip`,i=eN.mkdtempSync(eY.join(e3.tmpdir(),"storage-upload-")),r=eY.join(i,n);return new Promise((n,i)=>{let a=eN.createWriteStream(r),o=e9()("zip",{zlib:{level:9}});a.on("close",()=>n(r)),o.on("error",e=>i(e)),o.pipe(a),o.directory(e,t),o.finalize()})}async function tn(e,t,n,i,r){var a;let o=(a=n,e7[eY.extname(a).toLowerCase()]||"application/octet-stream");if(eN.statSync(n).size<=r){let r=eN.readFileSync(n);await e.send(new e4.w({Bucket:t,Key:i,Body:r,ContentType:o}))}else{let r=eN.createReadStream(n),a=new e8._({client:e,params:{Bucket:t,Key:i,Body:r,ContentType:o}});await a.done()}}let ti=new h("storage").description("Object storage commands");ti.command("upload").description("Upload files and directories to object storage.\nOutputs JSON with name-to-URL mappings to stdout.\n\nExamples:\n coze-coding-ai storage upload ./data --prefix my-project/\n coze-coding-ai storage upload file1.txt dir1/ dir2/ --prefix uploads/\n coze-coding-ai storage upload report.csv --prefix reports/ --expire 3600").argument("<paths...>","File or directory paths to upload").option("-p, --prefix <prefix>","Target S3 key prefix (virtual directory)","").option("--uuid","Append UUID suffix to filenames to avoid collisions").option("-e, --expire <seconds>","Presigned URL expiration in seconds (default: 86400 = 24h)","86400").option("-t, --threshold <bytes>","Size threshold for streaming upload (default: 5MB)","5242880").option("-c, --max-concurrency <n>","Number of parallel uploads (default: 4)","4").action(async(e,t)=>{var n;let i,r,a,{S3Storage:o}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/s3/index.ts")),s=[],l=[];for(let t of e){let e=eY.resolve(t);if(!eN.existsSync(e)){console.error(`Warning: ${t} does not exist, skipping`);continue}let n=eN.statSync(e);n.isFile()?s.push(e):n.isDirectory()?l.push(e):console.error(`Warning: ${t} is not a file or directory, skipping`)}0===s.length&&0===l.length&&(console.log(JSON.stringify({_error:"No files or directories found to upload."})),process.exit(1));let u=(n=t.prefix)&&(n=n.replace(/^\/+|\/+$/g,""))?n+"/":"",d=parseInt(t.expire,10),h=parseInt(t.threshold,10),c=parseInt(t.maxConcurrency,10);try{r=(i=new o).resolveBucket(void 0)}catch(e){console.log(JSON.stringify({_error:`S3 configuration error: ${e.message}`})),process.exit(1)}let f=e=>i.sanitizeFileName(e),p=[];for(let e of s){let n=eY.basename(e),i=te(u,n,!!t.uuid,f);p.push({localPath:e,objectKey:i,displayName:n})}let m=[];for(let e of l)for(let{absolutePath:n,relativeKey:i}of function(e){let t=[],n=eY.dirname(e);return!function e(i){for(let r of eN.readdirSync(i,{withFileTypes:!0})){let a=eY.join(i,r.name);if(r.isDirectory())e(a);else if(r.isFile()){let e=eY.relative(n,a).split(eY.sep).join("/");t.push({absolutePath:a,relativeKey:e})}}}(e),t}(e)){let e=te(u,i,!!t.uuid,f);m.push({localPath:n,objectKey:e,displayName:i})}let g=[...p,...m],b=[];for(let e of l){let n=eY.basename(e),i=te(u,`${n}.zip`,!!t.uuid,f);b.push({dirPath:e,objectKey:i,displayName:`${n}/`})}try{a=i.getClient()}catch(e){console.log(JSON.stringify({_error:`Failed to initialize S3 client: ${e.message}`})),process.exit(1)}let y={},w=[],S=new Set(p.map(e=>e.displayName)),v=[...g],x=[];async function E(e){try{if(await tn(a,r,e.localPath,e.objectKey,h),S.has(e.displayName)){let t=await i.generatePresignedUrl({key:e.objectKey,expireTime:d});y[e.displayName]=t}}catch(t){w.push({name:e.displayName,error:t.message})}}for(;v.length>0||x.length>0;){for(;x.length<c&&v.length>0;){let e=E(v.shift()).then(()=>{x.splice(x.indexOf(e),1)});x.push(e)}x.length>0&&await Promise.race(x)}for(let e of b){let t=null;try{t=await tt(e.dirPath),await tn(a,r,t,e.objectKey,h);let n=await i.generatePresignedUrl({key:e.objectKey,expireTime:d});y[e.displayName]=n}catch(t){w.push({name:e.displayName,error:t.message})}finally{if(t)try{eN.unlinkSync(t),eN.rmdirSync(eY.dirname(t))}catch{}}}let T={...y};w.length>0&&(T._failures=w),console.log(JSON.stringify(T,null,2)),w.length>0&&process.exit(1)});let tr=new h("supabase").description("Supabase 管理命令,包括 Edge Functions、Storage Buckets 和 Auth 配置管理"),ta=tr.command("func").description("Edge Functions(边缘函数)管理命令");ta.command("list").description("列出所有 Edge Functions").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/list")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({functions:[],mock:!0},null,2));return}let n=eO("Fetching functions...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.listFunctions();e.verbose&&(n.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code)),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Functions fetched successfully!")),console.log(JSON.stringify(a.functions,null,2))}catch(e){n.fail(J.red("Failed to fetch functions")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("get").description("获取 Edge Function 详情和源码").argument("<slug>",'函数标识符,即函数的唯一名称(如 "hello-world"),可通过 "func list" 命令查看').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/get")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({function:{slug:e},files:[],mock:!0},null,2));return}let i=eO("Fetching function...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.getFunction(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Function fetched successfully!")),console.log(JSON.stringify({function:o.function,files:o.files},null,2))}catch(e){i.fail(J.red("Failed to fetch function")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("deploy").description("部署或更新 Edge Function。如果函数已存在则更新,不存在则创建新函数").argument("<slug>",'函数标识符,只能包含小写字母、数字和连字符(如 "hello-world")').option("-c, --code <code>","函数代码字符串(用于单文件函数),与 --file 二选一").option("-f, --file <items...>","文件名和内容对,格式:--file <文件名> <内容>,可多次使用,例如:--file index.ts 'Deno.serve(...)' --file handler.ts 'export ...'").option("-n, --name <name>","函数显示名称,用于在控制台中展示").option("-e, --entrypoint <path>",'入口文件名称,多文件部署时必需,指定主入口文件(如 "index.ts")').option("--verify-jwt","启用 JWT 验证,调用函数需要携带有效的 JWT token").option("--no-verify-jwt","禁用 JWT 验证").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=t.code;if(t.file&&t.file.length>0){t.file.length%2!=0&&(console.error(J.red("Error: --file requires pairs of <name> <content>")),process.exit(1)),n=[];for(let e=0;e<t.file.length;e+=2)n.push({name:t.file[e],content:t.file[e+1]})}i||n||(console.error(J.red("Error: Either --code or --file is required")),process.exit(1));let r=eH(t.header),a={code:i,files:n,name:t.name,entrypoint:t.entrypoint,verify_jwt:t.verifyJwt};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/deploy")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e,...a,code:i?`${i.substring(0,50)}...`:void 0}),r&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(r))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,slug:e,version:1,mock:!0},null,2));return}let o=eO("Deploying function...").start();try{let n=new m.Config,i=new m.SupabaseClient(n,r),s=await i.deployFunction(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Function deployed successfully!")),console.log(JSON.stringify({success:s.success,slug:s.slug,version:s.version},null,2))}catch(e){o.fail(J.red("Failed to deploy function")),console.error(J.red(e.message)),process.exit(1)}}),ta.command("delete").description("删除 Edge Function。⚠️ 警告:此操作不可逆,删除后函数将无法恢复").argument("<slug>",'函数标识符,可通过 "func list" 命令查看所有函数的 slug').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/functions/delete")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{slug:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Deleting function...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.deleteFunction(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Function deleted successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to delete function")),console.error(J.red(e.message)),process.exit(1)}});let to=tr.command("bucket").description("Storage Buckets(存储桶)管理命令");to.command("list").description("列出所有 Storage Buckets").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/list")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({buckets:[],mock:!0},null,2));return}let n=eO("Fetching buckets...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.listBuckets();e.verbose&&(n.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code)),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Buckets fetched successfully!")),console.log(JSON.stringify(a.buckets,null,2))}catch(e){n.fail(J.red("Failed to fetch buckets")),console.error(J.red(e.message)),process.exit(1)}}),to.command("get").description("获取 Storage Bucket 详情").argument("<bucket_id>",'存储桶 ID,即存储桶的唯一标识符(如 "avatars"),可通过 "bucket list" 命令查看').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/get")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({bucket:{id:e},mock:!0},null,2));return}let i=eO("Fetching bucket...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.getBucket(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Bucket fetched successfully!")),console.log(JSON.stringify(o.bucket,null,2))}catch(e){i.fail(J.red("Failed to fetch bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("create").description("创建新的 Storage Bucket").argument("<bucket_id>",'存储桶 ID,只能包含小写字母、数字和连字符(如 "user-avatars")').option("-n, --name <name>","存储桶显示名称,用于在控制台中展示").option("--public","设置为公开存储桶,允许匿名访问").option("--private","设置为私有存储桶,需要认证才能访问").option("--file-size-limit <bytes>","单个文件大小限制(字节),例如 10485760 表示 10MB",parseInt).option("--allowed-mime-types <types>",'允许上传的文件 MIME 类型(逗号分隔),例如 "image/png,image/jpeg"').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=eH(t.header);t.public?n=!0:t.private&&(n=!1);let r=t.allowedMimeTypes?t.allowedMimeTypes.split(",").map(e=>e.trim()):void 0,a={name:t.name,public:n,file_size_limit:t.fileSizeLimit,allowed_mime_types:r};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/create")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e,...a}),i&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(i))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,bucket_id:e,mock:!0},null,2));return}let o=eO("Creating bucket...").start();try{let n=new m.Config,r=new m.SupabaseClient(n,i),s=await r.createBucket(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Bucket created successfully!")),console.log(JSON.stringify({success:s.success,bucket_id:s.bucket_id},null,2))}catch(e){o.fail(J.red("Failed to create bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("update").description("更新 Storage Bucket 配置").argument("<bucket_id>",'存储桶 ID,可通过 "bucket list" 命令查看所有存储桶的 ID').option("--public","设置为公开存储桶,允许匿名访问").option("--private","设置为私有存储桶,需要认证才能访问").option("--file-size-limit <bytes>","单个文件大小限制(字节),例如 10485760 表示 10MB",parseInt).option("--allowed-mime-types <types>",'允许上传的文件 MIME 类型(逗号分隔),例如 "image/png,image/jpeg"').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n,i=eH(t.header);t.public?n=!0:t.private&&(n=!1);let r=t.allowedMimeTypes?t.allowedMimeTypes.split(",").map(e=>e.trim()):void 0,a={public:n,file_size_limit:t.fileSizeLimit,allowed_mime_types:r};if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/update")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e,...a}),i&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(i))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let o=eO("Updating bucket...").start();try{let n=new m.Config,r=new m.SupabaseClient(n,i),s=await r.updateBucket(e,a);t.verbose&&(o.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),s.code)),0!==s.code&&(o.fail(J.red(`Error: ${s.msg}`)),process.exit(1)),o.succeed(J.green("Bucket updated successfully!")),console.log(JSON.stringify({success:s.success},null,2))}catch(e){o.fail(J.red("Failed to update bucket")),console.error(J.red(e.message)),process.exit(1)}}),to.command("delete").description("删除 Storage Bucket。⚠️ 警告:此操作不可逆,删除后存储桶及其中的所有文件将无法恢复").argument("<bucket_id>",'存储桶 ID,可通过 "bucket list" 命令查看所有存储桶的 ID').option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async(e,t)=>{let n=eH(t.header);if(t.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/buckets/delete")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{bucket_id:e}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),t.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Deleting bucket...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.deleteBucket(e);t.verbose&&(i.stop(),console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code)),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Bucket deleted successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to delete bucket")),console.error(J.red(e.message)),process.exit(1)}});let ts=tr.command("auth").description("Auth(认证配置)管理命令");ts.command("get-config").description("获取 Auth 认证配置,包括邮箱认证、SMTP 等设置").option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/auth/config/get")),t&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(t))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({config:{},mock:!0},null,2));return}let n=eO("Fetching auth config...").start();try{let i=new m.Config,r=new m.SupabaseClient(i,t),a=await r.getAuthConfig();e.verbose&&console.log(J.cyan("\uD83D\uDCE5 Response code:"),a.code),0!==a.code&&(n.fail(J.red(`Error: ${a.msg}`)),process.exit(1)),n.succeed(J.green("Auth config fetched successfully!")),console.log(JSON.stringify(a.config,null,2))}catch(e){n.fail(J.red("Failed to fetch auth config")),console.error(J.red(e.message)),process.exit(1)}}),ts.command("update-config").description("更新 Auth 认证配置。至少需要提供一个配置项,更新 SMTP 配置后建议测试邮件发送功能").option("--site-url <url>",'站点 URL,用于邮件中的链接跳转地址(如 "https://myapp.com")').option("--disable-signup","禁用用户自助注册功能").option("--enable-signup","启用用户自助注册功能").option("--external-email-enabled","启用邮箱认证方式").option("--external-email-disabled","禁用邮箱认证方式").option("--mailer-autoconfirm","启用邮箱自动确认(跳过邮件验证)").option("--no-mailer-autoconfirm","禁用邮箱自动确认").option("--double-confirm-changes","启用敏感操作的双重确认").option("--no-double-confirm-changes","禁用敏感操作的双重确认").option("--mailer-secure-email-change-enabled","启用安全邮箱更改流程").option("--mailer-secure-email-change-disabled","禁用安全邮箱更改流程").option("--mailer-otp-exp <seconds>","OTP 验证码过期时间(秒),例如 3600 表示 1 小时",parseInt).option("--password-min-length <length>","用户密码最小长度要求,例如 8",parseInt).option("--password-required-characters <chars>",'密码必需包含的字符类型,例如 "abcABC123"').option("--smtp-host <host>",'SMTP 邮件服务器地址,例如 "smtp.sendgrid.net"').option("--smtp-port <port>","SMTP 邮件服务器端口,例如 587",parseInt).option("--smtp-user <user>","SMTP 认证用户名").option("--smtp-pass <pass>","SMTP 认证密码或 API Key").option("--smtp-admin-email <email>",'发件人邮箱地址,例如 "noreply@myapp.com"').option("--smtp-sender-name <name>",'发件人显示名称,例如 "My App"').option("--smtp-max-frequency <seconds>","同一邮箱的最小发送间隔(秒),用于防止滥用",parseInt).option("--mock","使用 mock 模式(测试运行,不会真正执行操作)").option("-H, --header <header>",'自定义 HTTP 请求头,格式: "Key: Value" 或 "Key=Value",可多次使用',(e,t)=>t.concat([e]),[]).option("--verbose","显示详细的 HTTP 请求和响应日志",!1).action(async e=>{let t={};void 0!==e.siteUrl&&(t.site_url=e.siteUrl),e.disableSignup&&(t.disable_signup=!0),e.enableSignup&&(t.disable_signup=!1),e.externalEmailEnabled&&(t.external_email_enabled=!0),e.externalEmailDisabled&&(t.external_email_enabled=!1),void 0!==e.mailerAutoconfirm&&(t.mailer_autoconfirm=e.mailerAutoconfirm),void 0!==e.doubleConfirmChanges&&(t.double_confirm_changes=e.doubleConfirmChanges),e.mailerSecureEmailChangeEnabled&&(t.mailer_secure_email_change_enabled=!0),e.mailerSecureEmailChangeDisabled&&(t.mailer_secure_email_change_enabled=!1),void 0!==e.mailerOtpExp&&(t.mailer_otp_exp=e.mailerOtpExp),void 0!==e.passwordMinLength&&(t.password_min_length=e.passwordMinLength),void 0!==e.passwordRequiredCharacters&&(t.password_required_characters=e.passwordRequiredCharacters),void 0!==e.smtpHost&&(t.smtp_host=e.smtpHost),void 0!==e.smtpPort&&(t.smtp_port=e.smtpPort),void 0!==e.smtpUser&&(t.smtp_user=e.smtpUser),void 0!==e.smtpPass&&(t.smtp_pass=e.smtpPass),void 0!==e.smtpAdminEmail&&(t.smtp_admin_email=e.smtpAdminEmail),void 0!==e.smtpSenderName&&(t.smtp_sender_name=e.smtpSenderName),void 0!==e.smtpMaxFrequency&&(t.smtp_max_frequency=e.smtpMaxFrequency),0===Object.keys(t).length&&(console.error(J.red("Error: At least one config option is required")),process.exit(1));let n=eH(e.header);if(e.verbose&&(console.log(J.cyan("\uD83D\uDCE4 Request: POST /v1/supabase/auth/config/update")),console.log(J.cyan("\uD83D\uDCE4 Payload:"),{config:t}),n&&console.log(J.cyan("\uD83D\uDCE4 Headers:"),eJ(n))),e.mock){console.log(J.yellow("\uD83E\uDDEA Mock mode enabled - skipping actual request")),console.log(JSON.stringify({success:!0,mock:!0},null,2));return}let i=eO("Updating auth config...").start();try{let r=new m.Config,a=new m.SupabaseClient(r,n),o=await a.updateAuthConfig(t);e.verbose&&console.log(J.cyan("\uD83D\uDCE5 Response code:"),o.code),0!==o.code&&(i.fail(J.red(`Error: ${o.msg}`)),process.exit(1)),i.succeed(J.green("Auth config updated successfully!")),console.log(JSON.stringify({success:o.success},null,2))}catch(e){i.fail(J.red("Failed to update auth config")),console.error(J.red(e.message)),process.exit(1)}});let tl=new h;tl.name("coze-coding-ai").description("Coze Coding CLI - AI-powered tools for image generation, video generation, search, voice, chat, embedding, knowledge, and supabase management").version("0.3.0"),tl.addCommand(eW),tl.addCommand(eX),tl.addCommand(eG),tl.addCommand(e$),tl.addCommand(eU),tl.addCommand(ez),tl.addCommand(e0),tl.addCommand(e1),tl.addCommand(e2),tl.addCommand(tr),tl.addCommand(ti),tl.parse(process.argv)})(),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});