@supabase/lite 0.8.0 → 0.8.1-next.1

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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import {Deparser,QuoteUtils}from'pgsql-deparser';import {DeparserContext}from'pgsql-deparser/visitors/base.js';import {SqlFormatter}from'pgsql-deparser/utils/sql-formatter.js';import {jsonStringify,Connection,RelationNotFoundError,invariant,DataLossError,PlanStepType}from'@supabase/lite';import {Kysely,PostgresQueryCompiler,PostgresIntrospector,DummyDriver,PostgresAdapter,SqliteQueryCompiler,SqliteIntrospector,SqliteAdapter,sql,OperationNodeTransformer,SchemableIdentifierNode,JoinNode,TableNode,AliasNode,ListNode,UsingNode}from'kysely';import {jsonObjectFrom as jsonObjectFrom$1,jsonArrayFrom as jsonArrayFrom$1}from'kysely/helpers/postgres';import {jsonObjectFrom,jsonArrayFrom}from'kysely/helpers/sqlite';import cg from'bcryptjs';import {v7}from'uuid';import {createClient}from'@supabase/supabase-js';try {
1
+ import*as yt from'jsonv-ts';import {s}from'jsonv-ts';import {Deparser,QuoteUtils}from'pgsql-deparser';import {DeparserContext}from'pgsql-deparser/visitors/base.js';import {SqlFormatter}from'pgsql-deparser/utils/sql-formatter.js';import {jsonStringify,Connection,RelationNotFoundError,invariant,DataLossError,PlanStepType}from'@supabase/lite';import {Kysely,PostgresQueryCompiler,PostgresIntrospector,DummyDriver,PostgresAdapter,SqliteQueryCompiler,SqliteIntrospector,SqliteAdapter,sql,OperationNodeTransformer,SchemableIdentifierNode,JoinNode,TableNode,AliasNode,ListNode,UsingNode}from'kysely';import {jsonObjectFrom as jsonObjectFrom$1,jsonArrayFrom as jsonArrayFrom$1}from'kysely/helpers/postgres';import {jsonObjectFrom,jsonArrayFrom}from'kysely/helpers/sqlite';import {jwtVerify,createRemoteJWKSet,customFetch,errors,SignJWT}from'jose';import nh from'bcryptjs';import {v7}from'uuid';import {validator}from'jsonv-ts/hono';import {createClient}from'@supabase/supabase-js';try {
2
2
  /**
3
3
  * Adding this to avoid warnings from node:sqlite being experimental
4
4
  */
@@ -9,84 +9,84 @@ import {Deparser,QuoteUtils}from'pgsql-deparser';import {DeparserContext}from'pg
9
9
  };
10
10
  } catch {}
11
11
 
12
- var Ib=Object.create;var Ma=Object.defineProperty;var Db=Object.getOwnPropertyDescriptor;var jb=Object.getOwnPropertyNames;var Lb=Object.getPrototypeOf,Fb=Object.prototype.hasOwnProperty;var N=(t,e)=>()=>(t&&(e=t(t=0)),e);var xf=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),qr=(t,e)=>{for(var n in e)Ma(t,n,{get:e[n],enumerable:true});},Mb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jb(e))!Fb.call(t,s)&&s!==n&&Ma(t,s,{get:()=>e[s],enumerable:!(r=Db(e,s))||r.enumerable});return t};var Ua=(t,e,n)=>(n=t!=null?Ib(Lb(t)):{},Mb(Ma(n,"default",{value:t,enumerable:true}),t));function Ub(t,e,n=void 0){let r=typeof e=="string"?vf(e):Ha(e);return vi(t,r,n)}function vi(t,e,n=void 0){let r=typeof e=="string"?e.split(/[.\[\]\"]+/).filter(s=>s):e;if(r.length===0)return t;try{let[s,...i]=r;return !s||!(s in t)?n:vi(t[s],i,n)}catch{if(typeof n<"u")return n;throw new Error(`Invalid path: ${r.join(".")}`)}}function Hb(t){return t===null}function fe(t){return !Array.isArray(t)&&typeof t=="object"&&t!==null}function Wb(t){return Object.prototype.toString.call(t)==="[object Object]"}function rt(t){return typeof t=="string"}function wt(t){return typeof t=="number"}function Kb(t){return typeof t=="number"&&Number.isInteger(t)}function Ja(t){return typeof t=="boolean"}function Ut(t){return Array.isArray(t)}function Jb(t){return typeof t!="boolean"}function zb(t){return t!==void 0&&Jb(t)&&"type"in t}function ve(t){return t!==void 0&&fe(t)&&Ce in t}function Vb(t){return ve(t)&&typeof t.toJSON()=="boolean"}function Gb(t,e,n){if(!t)throw new qb(e,n)}function Af(t){return rt(t)?t.normalize("NFC"):t}function Hr(t,e){let n=typeof t;if(n!==typeof e)return false;if(Array.isArray(t)){if(!Array.isArray(e))return false;let r=t.length;if(r!==e.length)return false;for(let s=0;s<r;s++)if(!Hr(t[s],e[s]))return false;return true}if(n==="object"){if(!t||!e)return t===e;let r=Object.keys(t),s=Object.keys(e);if(r.length!==s.length)return false;for(let i of r)if(!Hr(t[i],e[i]))return false;return true}return t===e}function Qb(t,e){return e.reduce((n,r)=>(r in t&&(n[r]=t[r]),n),{})}function kf(t){try{return structuredClone(t)}catch{return t}}function Xb(t,e,n={}){let r=e;try{r=structuredClone(e);}catch{r=JSON.parse(JSON.stringify(e));}let s={resolver:n.resolver||new za(t),depth:n.depth||0,dropUnknown:n.dropUnknown??false};return s.resolver.hasRef(t,r)?s.resolver.resolve(t.$ref).coerce(r,{...s,depth:s.depth+1}):r}function Ai(t,e,n={}){return t.map(r=>r.validate(e,Ci(n)).valid?r:void 0).filter(Boolean)}function $w(t,e,n={}){let r={keywordPath:n.keywordPath||[],instancePath:n.instancePath||[],coerce:n.coerce||false,errors:n.errors||[],shortCircuit:n.shortCircuit||false,ignoreUnsupported:n.ignoreUnsupported||false,resolver:n.resolver||t.getResolver?.()||new za(t),depth:n.depth?n.depth+1:0,skipClone:n.skipClone||false},s;if(n?.coerce&&t.coerce){let i=t.coerce(e,{resolver:r.resolver,depth:r.depth});s=r.skipClone?i:structuredClone(i);}else s=r.skipClone?e:structuredClone(e);if(n.ignoreUnsupported!==true){let i=["$defs"];for(let o of i)if(t[o])throw new Error(`${o} not implemented`)}if(r.resolver.hasRef(t,s)){let i=r.resolver.resolve(t.$ref).validate(s,{...r,errors:[]});i.valid||r.errors.push(...i.errors);}else {let i={keywordPath:r.keywordPath,instancePath:r.instancePath,coerce:r.coerce,errors:[],shortCircuit:r.shortCircuit,ignoreUnsupported:r.ignoreUnsupported,resolver:r.resolver,depth:r.depth};for(let o in t)if(o==="type"&&t.type!==void 0){if(s!==void 0){let a=Ba[o];if(a){i.errors=[];let l=a(t,s,i);if(!l.valid){if(n.shortCircuit)return l;r.errors.push(...l.errors);}}}}else if(o in Ba&&t[o]!==void 0){if(s===void 0)continue;let a=Ba[o];if(a){i.errors=[];let l=a(t,s,i);if(!l.valid){if(n.shortCircuit)return l;r.errors.push(...l.errors);}}}}return {valid:r.errors.length===0,errors:r.errors}}function ki(t,e,n){return new class extends St{type=t}(e,n)}function Wa(t){return new Ow(t)}function Rf(t,e){return Array.isArray(t)?t.map(e):t!==void 0?[e(t)]:[]}function Cf(t,e,n=r=>r){return Object.fromEntries(Object.entries(t).map(([r,s])=>[r,n(e(s,r),r)]))}function Mt(t){if(Ja(t))return Wa(t);let e=structuredClone(t);if(!fe(e))throw new Bb("non-object schemas cannot be converted to a schema",e);"properties"in e&&e.properties&&(e.properties=Cf(e.properties,(i,o)=>{try{return Mt(i)}catch(a){throw new Error(`Couldn't schemaize property "${o}": ${String(a)}`)}},(i,o)=>"required"in e&&Array.isArray(e.required)&&e.required.includes(o)?i:i.optional()));let n=["patternProperties","dependentSchemas","$defs"];for(let i of n)i in e&&e[i]&&(e[i]=Cf(e[i],Mt));let r=["additionalProperties","items","prefixItems","propertyNames","contains","not","if","then","else"];for(let i of r)i in e&&typeof e[i]<"u"&&(Ut(e[i])?e[i]=Rf(e[i],Mt):e[i]=Mt(e[i]));let s=["anyOf","oneOf","allOf"];for(let i of s)if(i in e){let{[i]:o}=e;e[i]=Rf(o,Mt);}if(zb(e))switch(e.type){case "string":return cn(e);case "number":return Pf(e);case "integer":return Nf(e);case "boolean":return Kr(e);case "object":{let{properties:i,...o}=e;return $i(i,o)}case "array":{let{items:i,...o}=e;return If(i,o)}}return $f(e)}function qw(){return {type(t){let e=t.map(n=>Array.isArray(n)?new Set(n):new Set([n])).reduce((n,r)=>n?new Set([...n].filter(s=>r.has(s))):new Set(r));if(!e.size)throw new Error('Incompatible "type" in allOf');return e.size===1?[...e][0]:[...e]},enum(t){let e=t.map(n=>new Set(n)).reduce((n,r)=>new Set([...n].filter(s=>r.has(s))));if(!e.size)throw new Error('Incompatible "enum" in allOf');return [...e]},required(t){return [...new Set(t.flat())]},properties(t,e,n){return t.reduce((r,s)=>n(r,s),{})},patternProperties(t,e,n){return t.reduce((r,s)=>n(r,s),{})},$defs(t,e,n){return t.reduce((r,s)=>n(r,s),{})},definitions(t,e,n){return t.reduce((r,s)=>n(r,s),{})},...Object.fromEntries(Uw.map(t=>[t,e=>Math.min(...e)])),...Object.fromEntries(Bw.map(t=>[t,e=>Math.max(...e)]))}}function Hw(t){let e={...qw(),...t.resolvers};function n(r,s){if(Array.isArray(r)&&Array.isArray(s))return [...new Set([...r,...s])];if(Ka(r)&&Ka(s)){let i={...r};for(let[o,a]of Object.entries(s))if(o in i){let l=e[o];i[o]=l?l([i[o],a],o,n):qa(a);}else i[o]=qa(a);return i}return qa(s)}return n}function Kw(t,e={}){let n=e.deep!==false,r=Hw(e);function s(i){if(Array.isArray(i))return i.map(s);if(!Ka(i))return i;if(Array.isArray(i.allOf)){let a=i.allOf.map(s);if(a.some(d=>d===false))return false;let l=a.filter(d=>d!==true);if(!l.length)return true;let c=l.reduce((d,g)=>r(d,g),{}),u=Ww(c);if(u!==null)return u;let f={...i};delete f.allOf;let p=r(c,n?s(f):f);return n?s(p):p}let o={};for(let[a,l]of Object.entries(i))o[a]=s(l);return o}return s(t)}var Ha,vf,te,$,qn,Ci,ln,Bb,qb,Ce,za,Yb,Zb,ew,tw,nw,rw,sw,iw,ow,aw,lw,cw,uw,fw,pw,dw,mw,hw,gw,yw,bw,ww,Sw,_w,Ew,xw,Tw,Rw,Cw,vw,Aw,Tf,kw,Ba,St,Wr,Ow,$f,Pw,Nw,$i,Hn,Iw,Dw,jw,Va,cn,Of,Pf,Nf,Lw,If,Kr,Ri,Df,Fw,Mw,Ka,qa,Uw,Bw,Ww,Jw,jf,zw,Vw,Gw,b,ie=N(()=>{Ha=(t=[],e="")=>"/"+[e,...t.map(n=>String(n).replace(/\./g,"/"))].filter(Boolean).join("/"),vf=t=>t.split("/").slice(1);te=(t={},e,n,r)=>({valid:false,errors:[...t.errors??[],{keywordLocation:Ha([...t.keywordPath??[],e]),instanceLocation:Ha(t.instancePath),error:typeof n=="string"?n:`Invalid value for ${e}`,data:r}]}),$=()=>({valid:true,errors:[]}),qn=(t,e,n)=>{let r=Array.isArray(e)?e:[e],s=n?Array.isArray(n)?n:[n]:[];return {...t,keywordPath:[...t.keywordPath??[],...r],instancePath:s?[...t.instancePath??[],...s]:t.instancePath}},Ci=(t={})=>({...t,errors:[]}),ln=class extends Error{constructor(t){super(`Expected ${t}`);}},Bb=class extends Error{constructor(t,e){super(`${t??"Invalid raw schema"}: ${JSON.stringify(e)}`),this.schema=e;}},qb=class extends Error{constructor(t,e){super(`${t}, got: 'type "${typeof e}": ${JSON.stringify(e)}'`),this.value=e;}},Ce=Symbol.for("jsonv-ts:schema");za=class{constructor(t){this.root=t,this.cache=new Map;}cache;hasRef(t,e){return e!==void 0&&"$ref"in t&&rt(t.$ref)}resolve(t){let e=this.cache.get(t);if(!e){if(e=Ub(this.root,t),!ve(e))throw new Error(`ref not found: ${t}`);if("$ref"in e&&e.$ref===t)throw new Error(`ref loop: ${t}`);this.cache.set(t,e);}return e}};Yb=({type:t},e,n={})=>{if(t===void 0||e===void 0)return $();let r,s={string:rt,number:wt,integer:Kb,object:fe,array:Ut,boolean:Ja,null:Hb};if(Array.isArray(t)){for(let i of t){if(!(i in s))throw new ln(`Unknown type: ${i}`);if(s[i](e))return $()}r=`Expected one of: ${t.join(", ")}`;}else {if(!(t in s))throw new ln(`Unknown type: ${t}`);s[t](e)||(r=`Expected ${t}`);}return r?te(n,"type",r,e):$()},Zb=({const:t},e,n={})=>Hr(t,e)?$():te(n,"const",`Expected const: ${t}`,e),ew=({enum:t=[]},e,n={})=>t.some(r=>Hr(r,e))?$():te(n,"enum",`Expected enum: ${JSON.stringify(t)}`,e);tw=({anyOf:t=[]},e,n={})=>Ai(t,e,n).length>0?$():te(n,"anyOf","Expected at least one to match",e),nw=({oneOf:t=[]},e,n={})=>Ai(t,e).length===1?$():te(n,"oneOf","Expected exactly one to match",e),rw=({allOf:t=[]},e,n={})=>Ai(t,e,n).length===t.length?$():te(n,"allOf","Expected all to match",e),sw=({not:t},e,n={})=>e===void 0?$():ve(t)&&t.validate(e,n).valid?te(n,"not","Expected not to match",e):$(),iw=({if:t,then:e,else:n},r,s={})=>{if(t&&(e||n)){if(t.validate(r,Ci(s)).valid)return e?e.validate(r,Ci(s)):$();if(n)return n.validate(r,Ci(s))}return $()},ow=({pattern:t=""},e,n={})=>{if(!rt(e))return $();if(t instanceof RegExp){if(t.test(e))return $()}else if(new RegExp(t,"u").test(e))return $();return te(n,"pattern",`Expected string matching pattern ${t}`,e)},aw=({minLength:t=0},e,n={})=>rt(e)?[...Af(e)].length>=t?$():te(n,"minLength",`Expected string with minimum length of ${t}`,e):$(),lw=({maxLength:t=0},e,n={})=>rt(e)?[...Af(e)].length<=t?$():te(n,"maxLength",`Expected string with maximum length of ${t}`,e):$(),cw=({multipleOf:t=0},e,n={})=>{if(!wt(e))return $();if(!(Number.isFinite(e)&&Number.isFinite(t))||t<=0)throw new ln("number");let r=e/t,s=Number.EPSILON*Math.max(1,Math.abs(r));return Math.abs(r-Math.round(r))<=s?$():te(n,"multipleOf",`Expected number being a multiple of ${t}`,e)},uw=({maximum:t=0},e,n={})=>!wt(e)||e<=t?$():te(n,"maximum",`Expected number less than or equal to ${t}`,e),fw=({exclusiveMaximum:t=0},e,n={})=>!wt(e)||e<t?$():te(n,"exclusiveMaximum",`Expected number less than ${t}`,e),pw=({minimum:t=0},e,n={})=>!wt(e)||e>=t?$():te(n,"minimum",`Expected number greater than or equal to ${t}`,e),dw=({exclusiveMinimum:t=0},e,n={})=>!wt(e)||e>t?$():te(n,"exclusiveMinimum",`Expected number greater than ${t}`,e),mw=({properties:t={}},e,n={})=>{if(!fe(e))return $();for(let[r,s]of Object.entries(e)){let i=t[r];if(!ve(i))continue;let o=i.validate(s,qn(n,["properties",r],r));if(!o.valid)return o}return $()},hw=({properties:t={},additionalProperties:e,patternProperties:n},r,s={})=>{if(!fe(r))return $();if(!ve(e))throw new ln("additionalProperties must be a boolean or a managed schema");let i=Object.keys(t),o=fe(n)?Object.keys(r).filter(l=>Object.keys(n).some(c=>new RegExp(c).test(l))):[],a=Object.keys(r).filter(l=>!i.includes(l)&&!o.includes(l));if(a.length>0){if(Vb(e)){if(e.toJSON()===true)return $();let l=a.reduce((c,u)=>(c[u]=r[u],c),{});return te(s,"additionalProperties","Additional properties are not allowed",l)}else if(ve(e))for(let l of a){let c=e.validate(r[l],qn(s,["additionalProperties"],l));if(!c.valid)return c}}return $()},gw=({dependentRequired:t},e,n={})=>{if(!fe(e))return $();let r=Object.keys(e).filter(s=>typeof e[s]!="function");if(fe(t)){for(let[s,i]of Object.entries(t))if(r.includes(s)){for(let o of i)if(!r.includes(o))return te(n,"dependentRequired",`Expected dependent required property ${o}`,e)}}return $()},yw=({required:t=[]},e,n={})=>{if(!fe(e))return $();let r=Object.keys(e).filter(s=>typeof e[s]!="function");return t.every(s=>r.includes(s))?$():te(n,"required",`Expected object with required properties ${t.join(", ")}`,e)},bw=({dependentSchemas:t},e,n={})=>{if(!fe(e))return $();let r=Object.keys(e).filter(s=>typeof e[s]!="function");if(fe(t)){for(let[s,i]of Object.entries(t))if(r.includes(s)){let o=i.validate(e,n);if(!o.valid)return o}}return $()},ww=({minProperties:t=0},e,n={})=>fe(e)?Object.keys(e).length>=t?$():te(n,"minProperties",`Expected object with at least ${t} properties`,e):$(),Sw=({maxProperties:t=0},e,n={})=>!fe(e)||Object.keys(e).length<=t?$():te(n,"maxProperties",`Expected object with at most ${t} properties`,e),_w=({patternProperties:t={}},e,n={})=>{if(!fe(e))return $();if(!fe(t))throw new ln("patternProperties must be an object");for(let[r,s]of Object.entries(e))for(let[i,o]of Object.entries(t))if(new RegExp(i,"u").test(r)){let a=o.validate(s,qn(n,["patternProperties"],r));if(!a.valid)return a}return $()},Ew=({propertyNames:t},e,n={})=>{if(!fe(e)||t===void 0)return $();if(!ve(t))throw new ln("propertyNames must be a managed schema");for(let r of Object.keys(e)){let s=t.validate(r,qn(n,["propertyNames"],r));if(!s.valid)return s}return $()},xw=({items:t,prefixItems:e=[]},n,r={})=>{if(!Ut(n)||t===void 0)return $();if(!ve(t))throw new ln("items must be a managed schema");for(let[s,i]of n.slice(e.length).entries()){let o=t.validate(i,qn(r,["items"],String(s)));if(!o.valid)return o}return $()},Tw=({minItems:t=0},e,n={})=>!Ut(e)||e.length>=t?$():te(n,"minItems",`Expected array with at least ${t} items`,e),Rw=({maxItems:t=0},e,n={})=>!Ut(e)||e.length<=t?$():te(n,"maxItems",`Expected array with at most ${t} items`,e),Cw=({uniqueItems:t=false},e,n={})=>{if(!Ut(e)||!t)return $();for(let r=0;r<e.length;r++){let s=e[r];for(let i=0;i<e.length;i++){if(r===i)continue;let o=e[i];if(Hr(s,o))return te(n,"uniqueItems",`Duplicated items at index ${r} and ${i}`,e)}}return $()},vw=({contains:t,minContains:e,maxContains:n},r,s={})=>{if(!ve(t))throw new Error("contains must be a managed schema");if(!Ut(r))return $();let i=r.filter(o=>t.validate(o).valid).length;return i<(e??1)?te(s,e?"minContains":"contains",`Expected array to contain at least ${e??1}, but found ${i}`,r):n!==void 0&&i>n?te(s,"maxContains",`Expected array to contain at most ${n}, but found ${i}`,r):$()},Aw=({prefixItems:t=[]},e,n={})=>{if(!Ut(e))return $();for(let r=0;r<e.length;r++){let s=t[r]?.validate(e[r],qn(n,String(r),String(r)));if(s&&s?.valid!==true)return s}return $()},Tf={email:t=>{if(t.length>318)return false;if(/^[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,20}(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,21}){0,2}@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,60}[a-z0-9])?){0,3}$/i.test(t))return true;if(!t.includes("@")||/(^\.|^"|\.@|\.\.)/.test(t))return false;let[e,n,...r]=t.split("@");return !e||!n||r.length!==0||e.length>64||n.length>253||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(e)?false:n.split(".").every(s=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(s))},hostname:t=>t.length>(t.endsWith(".")?254:253)?false:/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*\.?$/i.test(t),date:t=>{if(t.length!==10)return false;if(t[5]==="0"&&t[6]==="2"){if(/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)$/.test(t))return true;let e=t.match(/^(\d\d\d\d)-02-29$/);if(!e)return false;let n=Number(e[1]);return n%16===0||n%4===0&&n%25!==0}return t.endsWith("31")?/^\d\d\d\d-(?:0[13578]|1[02])-31$/.test(t):/^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)$/.test(t)},time:t=>{if(t.length>27||!/^(?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)?$/i.test(t))return false;if(!/:60/.test(t))return true;let e=t.match(/([0-9.]+|[^0-9.])/g);if(!e)return false;let n=Number(e[0])*60+Number(e[2]);return e[5]==="+"?n+=1440-Number(e[6]||0)*60-Number(e[8]||0):e[5]==="-"&&(n+=Number(e[6]||0)*60+Number(e[8]||0)),n%1440===1439},"date-time":t=>{if(t.length>38)return false;let e=/^\d\d\d\d-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])[t\s](?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)$/i,n=t[5]==="0"&&t[6]==="2";if(n&&t[8]==="3"||!e.test(t))return false;if(t[17]==="6"){let r=t.slice(11).match(/([0-9.]+|[^0-9.])/g);if(!r)return false;let s=Number(r[0])*60+Number(r[2]);if(r[5]==="+"?s+=1440-Number(r[6]||0)*60-Number(r[8]||0):r[5]==="-"&&(s+=Number(r[6]||0)*60+Number(r[8]||0)),s%1440!==1439)return false}if(n){if(/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)/.test(t))return true;let r=t.match(/^(\d\d\d\d)-02-29/);if(!r)return false;let s=Number(r[1]??0);return s%16===0||s%4===0&&s%25!==0}return t[8]==="3"&&t[9]==="1"?/^\d\d\d\d-(?:0[13578]|1[02])-31/.test(t):/^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)/.test(t)},ipv4:t=>t.length<=15&&/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)$/.test(t),ipv6:t=>{if(t.length>45||t.length<2)return false;let e=0,n=0,r=0,s=false,i=false,o=0,a=true;for(let c=0;c<t.length;c++){let u=t.charCodeAt(c);if(c===1&&o===58&&u!==58)return false;if(u>=48&&u<=57){if(++r>4)return false}else if(u===46){if(e>6||n>=3||r===0||i)return false;n++,r=0;}else if(u===58){if(n>0||e>=7)return false;if(o===58){if(s)return false;s=true;}else c===0&&(a=false);e++,r=0,i=false;}else if(u>=97&&u<=102||u>=65&&u<=70){if(n>0||++r>4)return false;i=true;}else return false;o=u;}if(e<2||n>0&&(n!==3||r===0))return false;if(s&&t.length===2)return true;if(n>0&&!/(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$/.test(t))return false;let l=n>0?6:7;return s?(a||r>0)&&e<l:e===l&&a&&r>0},uri:t=>/^[a-z][a-z0-9+\-.]*:(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/?(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i.test(t),"uri-reference":t=>/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/?(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)?(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i.test(t),"uri-template":t=>/^(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2}|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i.test(t),"json-pointer":t=>/^(?:|\/(?:[^~]|~0|~1)*)$/.test(t),"relative-json-pointer":t=>/^(?:0|[1-9][0-9]*)(?:|#|\/(?:[^~]|~0|~1)*)$/.test(t),uuid:t=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t),duration:t=>t.length>1&&t.length<80&&(/^P\d+([.,]\d+)?W$/.test(t)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(t)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(t)),regex:t=>{if(/[^\\]\\Z/.test(t))return false;try{return new RegExp(t,"u"),!0}catch{return false}},binary:()=>true,password:()=>true},kw=({format:t},e,n={})=>!rt(e)||!t?$():Tf[t]?Tf[t](e)?$():te(n,"format",`Expected format: ${t}`,e):$(),Ba={type:Yb,const:Zb,enum:ew,allOf:rw,anyOf:tw,oneOf:nw,not:sw,minLength:aw,maxLength:lw,pattern:ow,format:kw,minimum:pw,exclusiveMinimum:dw,maximum:uw,exclusiveMaximum:fw,multipleOf:cw,required:yw,dependentRequired:gw,dependentSchemas:bw,minProperties:ww,maxProperties:Sw,propertyNames:Ew,properties:mw,patternProperties:_w,additionalProperties:hw,minItems:Tw,maxItems:Rw,uniqueItems:Cw,contains:vw,prefixItems:Aw,items:xw,if:iw};St=class{"~standard";[Ce];_resolver;type;$id;$ref;$schema;title;description;readOnly;writeOnly;$comment;examples;constructor(t,e){let{type:n,validate:r,coerce:s,template:i,...o}=t||{};Object.assign(this,{type:n},o),this[Ce]={raw:t,optional:false,overrides:e},this["~standard"]={version:1,vendor:"jsonv-ts",validate:a=>{let l=this.validate(a);return l.valid?{value:a}:{issues:l.errors.map(c=>({message:c.error,path:vf(c.instanceLocation)}))}}};}template(t,e){let n=this,r=t;if(n.const!==void 0?r=n.const:r===void 0&&(n.default!==void 0&&(r=n.default),e?.withExtendedOptional&&n.enum!==void 0&&(r=n.enum[0])),e?.withOptional!==true&&r===void 0&&this.isOptional())return r;if(this[Ce].raw?.template){let i=this[Ce].raw.template(r,e);i!==void 0&&(r=i);}let s=this[Ce].overrides?.template?.(r,e);return s!==void 0&&(r=s),r}validate(t,e){let n={keywordPath:e?.keywordPath||[],instancePath:e?.instancePath||[],coerce:e?.coerce||false,errors:e?.errors||[],shortCircuit:e?.shortCircuit||false,ignoreUnsupported:e?.ignoreUnsupported||false,resolver:e?.resolver||this.getResolver(),depth:e?.depth?e.depth+1:0,skipClone:e?.skipClone??true},r=this[Ce].raw?.validate;if(r!==void 0){let s=r(t,n);if(!s.valid)return s}return $w(this,t,n)}coerce(t,e){let n={...e,resolver:e?.resolver||this.getResolver(),depth:e?.depth?e.depth+1:0,dropUnknown:e?.dropUnknown??false},r=this[Ce].raw?.coerce;if(r!==void 0)return r(t,n);let s=this[Ce].overrides?.coerce?.(t,n)??t;return Xb(this,s,n)}optional(){return this[Ce].optional=true,this}isOptional(){return this[Ce].optional}getResolver(){return this._resolver||(this._resolver=new za(this)),this._resolver}children(t){return []}*walk({instancePath:t=[],keywordPath:e=[],data:n,maxDepth:r=Number.POSITIVE_INFINITY,...s}={}){let i=t.length===0&&n?kf(n):n;if(s.includeSelf!==false&&(yield new Wr(this,{instancePath:t,keywordPath:e,data:i,...s})),!(t.length>=r))for(let o of this.children(s)){let a=[...t,...o.instancePath];yield*o.schema.walk({...s,data:i,maxDepth:r,instancePath:a,keywordPath:[...e,...o.keywordPath]});}}*[Symbol.iterator](t){for(let e of this.walk(t))yield e;}toJSON(){let{toJSON:t,"~standard":e,_resolver:n,...r}=this;return JSON.parse(JSON.stringify(r))}},Wr=class{constructor(t,e={}){this.schema=t,this.instancePath=e.instancePath||[],this.keywordPath=e.keywordPath||[],this.depth=this.instancePath.length;try{if(e.data!==void 0){let n=vi(e.data,this.instancePath);t.validate(n).valid&&(this.data=n);}}catch{}}instancePath;keywordPath;data;depth;appendInstancePath(t){return this.instancePath=[...this.instancePath,...t],this}appendKeywordPath(t){return this.keywordPath=[...this.keywordPath,...t],this}setData(t){return this.data=t,this}};Ow=class extends St{constructor(t){super(),this.bool=t;}toJSON(){return this.bool}validate(t,e){return this.bool?$():te(e,"","Always fails",t)}};$f=t=>ki(t?.type,t),Pw=(t,e)=>ki(void 0,{...e,const:t}),Nw=class extends St{type="object";properties;required;constructor(t,e){let n=[];for(let[s,i]of Object.entries(t||{}))Gb(ve(i),"properties must be managed schemas",i),i[Ce].optional||n.push(s);let r=e?.additionalProperties===false?Wa(false):e?.additionalProperties;n=n.length>0?n:void 0,super({...e,additionalProperties:r,properties:t,required:n},{template:(s,i)=>{let o=structuredClone(fe(s)?s:{}),a={...o};if(this.properties)for(let[l,c]of Object.entries(this.properties)){let u=vi(o,l);if(c.isOptional()&&i?.withOptional!==true&&u===void 0&&s===void 0)continue;let f=c.template(u,i);f!==void 0&&(a[l]=f);}if(!(Object.keys(a).length===0&&!i?.withExtendedOptional))return a},coerce:(s,i)=>{let o=Object.keys(this.properties),a=kf(s),l=o.length>0&&Object.values(this.properties).every(u=>!u[Ce].optional);if(Wb(a)&&(i?.dropUnknown===true||l)&&(a=Qb(a,o)),typeof a=="string"&&a.match(/^\{/)&&(a=JSON.parse(a)),typeof a!="object"||a===null)return;if(this.properties)for(let[u,f]of Object.entries(this.properties)){let p=a[u];p!==void 0&&(a[u]=f.coerce(p,i));}let c=this.additionalProperties;if(i?.dropUnknown!==true&&(!c||c.validate(null).valid)){let u=fe(s)?s:{},f=Object.keys(u).filter(p=>!o.includes(p));for(let p of f)a[p]=c?c.coerce(u[p],i):u[p];}return a}}),this.properties=t,this.required=n;}strict(){return this.additionalProperties=Wa(false),this[Ce].raw.additionalProperties=false,this}partial(){for(let[,t]of Object.entries(this.properties))t[Ce].optional=true;return this.required=void 0,this}children(t){let e=[];for(let[n,r]of Object.entries(this.properties)){let s=new Wr(r,t);s.appendInstancePath([n]),s.appendKeywordPath(["properties",n]),e.push(s);}return e}},$i=(t,e)=>new Nw(t,e),Hn=(t,e)=>$i(t,e).strict(),Iw=(t,e)=>$i(t,e).partial(),Dw=class extends St{type="object";additionalProperties;constructor(t,e){super({...e,additionalProperties:t},{template:(n,r)=>r?.withExtendedOptional&&(n===void 0||!fe(n))?{}:n}),this.additionalProperties=t;}children(t){let e=[],n=new Wr(this.additionalProperties,t);return n.appendKeywordPath(["additionalProperties"]),e.push(n),e}},jw=(t,e)=>new Dw(t,e),Va=class extends St{type="string";constructor(t){super(t,{template:(e,n)=>n?.withExtendedOptional&&(e===void 0||!rt(e))?"":e,coerce:e=>wt(e)?String(e):e});}toJSON(){let{pattern:t,"~standard":e,_resolver:n,...r}=this;return JSON.parse(JSON.stringify({...r,pattern:t instanceof RegExp?t.source:t}))}},cn=t=>new Va(t),Of=(t,e,n)=>ki(t,n,{template:(r,s)=>s?.withExtendedOptional&&(r===void 0||!wt(r))?n?.minimum??0:r,coerce:r=>{if(rt(r)){let s=e.parseFn(r);if(!Number.isNaN(s))return s}return r}}),Pf=t=>Of("number",{parseFn:Number},t),Nf=t=>Of("integer",{parseFn:Number.parseInt},t),Lw=class extends St{constructor(t,e={}){super({...e,items:t},{template:n=>n===void 0||!Array.isArray(n)?[]:n,coerce:(n,r)=>{try{let s=typeof n=="string"?JSON.parse(n):n;if(!Array.isArray(s))return;if(ve(this.items))for(let[i,o]of s.entries())s[i]=this.items.coerce(o,r);return s}catch{}return n}}),this.items=t,this.items=t;}type="array";children(t){let e=[];if(this.items){let n=new Wr(this.items,t);n.appendKeywordPath(["items"]),e.push(n);}return e}},If=(t,e)=>new Lw(t,e),Kr=t=>ki("boolean",t,{template:(e,n)=>n?.withExtendedOptional&&(e===void 0||!Ja(e))?false:e,coerce:e=>{if(rt(e)&&["true","false","1","0"].includes(e))return e==="true"||e==="1";if(wt(e)){if(e===1)return true;if(e===0)return false}return e}}),Ri=Symbol.for("unionType"),Df=class extends St{[Ri];constructor(t,e,n){super({...n,[e]:t},{coerce:(r,s)=>{let i=n?.coerce;if(i!==void 0)return i.bind(this)(r,s);let o=Ai(t,r,{ignoreUnsupported:true,resolver:s?.resolver,coerce:true});return o.length>0?o[0].coerce(r,s):r}}),this[Ri]=e;}get schemas(){return this[this[Ri]]}children(t){let e=[];for(let[n,r]of this.schemas.entries()){let s=new Wr(r,t);s.appendKeywordPath([this[Ri],n]),e.push(s);}return e}},Fw=(t,e)=>new Df(t,"anyOf",e),Mw=(t,e)=>new Df(t,"oneOf",e);Ka=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),qa=t=>typeof globalThis.structuredClone=="function"?globalThis.structuredClone(t):JSON.parse(JSON.stringify(t)),Uw=["maximum","exclusiveMaximum","maxLength","maxItems","maxProperties"],Bw=["minimum","exclusiveMinimum","minLength","minItems","minProperties"];Ww=t=>t===true||t===false?t:null;Jw=(t,e)=>{let n=JSON.parse(JSON.stringify({...e,allOf:t}));return Mt(Kw(n))},jf=class extends St{$ref;constructor(t,e){if(!e&&!ve(t))throw new Error("Ref not set");if(ve(t)&&!t.$id)throw new Error("Ref must have an $id");let n=e??t?.$id;super({$ref:n},{coerce:(r,s)=>{let i=s?.resolver?.resolve(this.$ref);if(!ve(i))throw new Error(`Ref not found: ${this.$ref}`);return i.coerce(r,s)}}),this.$ref=n;}},zw=(t,e)=>new jf(t,e),Vw=t=>new jf(void 0,t),Gw=t=>t(new St({$ref:"#",coerce:(e,n)=>{let r=n?.resolver?.resolve("#");if(!ve(r))throw new Error("Ref not found: #");return r.coerce(e,n)}})),b={boolean:Kr,any:$f,literal:Pw,object:$i,strictObject:Hn,partialObject:Iw,record:jw,string:cn,number:Pf,integer:Nf,array:If,anyOf:Fw,oneOf:Mw,allOf:Jw,ref:zw,refId:Vw,recursive:Gw};});var wn,eo=N(()=>{wn=class extends Error{constructor(n,r,s,i){super(`check constraint "${s}" violated for ${n}.${r}`);this.table=n;this.column=r;this.constraint=s;this.value=i;this.name="CheckConstraintError";}};});var ae,ot=N(()=>{eo();ae=class{context;constructor(e){this.context=e;}get isShimBacked(){return false}checkConstraint(){return null}serialize(e){return e}deserialize(e){return e}validateStorage(e){return {status:"pass",message:null}}validationFail(e,n){return {status:"fail",message:e,action:n}}validationPass(){return {status:"pass",message:null}}isNullish(e){return e==null}toColumnDDL(e){let{includeNullable:n=true}=e??{},r=[],s=this.context.column;r.push(this.quoteIfNeeded(s)),r.push(this.sqliteType),this.context.isPrimaryKey&&r.push("PRIMARY KEY"),this.context.isSerial&&this.context.isPrimaryKey&&r.push("AUTOINCREMENT"),n&&!this.context.nullable&&!this.context.isPrimaryKey&&r.push("NOT NULL"),this.context.isUnique&&!this.context.isPrimaryKey&&r.push("UNIQUE"),this.context.defaultValue!==null&&r.push(`DEFAULT ${this.context.defaultValue}`);let i=this.checkConstraint();return i&&r.push(`CHECK (${i})`),r.join(" ")}checkError(e,n){return new wn(this.context.table,this.context.column,e,n)}quoteIfNeeded(e){return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`"${e}"`}};});function CO(t=10,e={}){let o="abcdefghijklmnopqrstuvwxyz"+(e.uppercase?"ABCDEFGHIJKLMNOPQRSTUVWXYZ":"")+(e.numbers?"0123456789":"")+(e.special?"!@#$%^&*()_+{}:\"<>?|[];',./`~":""),a="";for(let l=0;l<t;l++)a+=o[Math.floor(Math.random()*o.length)];return a}function vO(t,e){if(typeof t!="string"){if(e?.panic)throw new Error("Email must be a string");return false}if(!b.string({format:"email"}).validate(t).valid){if(e?.panic)throw new Error("Invalid email");return false}if(e?.domains?.length&&!e.domains.includes(t.split("@")[1])){if(e?.panic)throw new Error("Email domain not allowed");return false}return true}function AO(t,{panic:e=true,length:n=8,numbers:r=0,special:s=0}={}){try{if(typeof t!="string"){if(e)throw new Error("Password must be a string");return !1}if(t.length<n){if(e)throw new Error(`Password must be at least ${n} characters long`);return !1}if((t.match(/[0-9]/g)?.length??0)<r){if(e)throw new Error(`Password must contain at least ${r} numbers`);return !1}if((t.match(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/g)?.length??0)<s){if(e)throw new Error(`Password must contain at least ${s} special characters`);return !1}return !0}catch(i){if(e)throw i;return false}}function kO(t){return !t||t.length===0?t:t.charAt(0).toUpperCase()+t.slice(1)}function $O(t,e=" "){return !t||t.length===0?t:t.split(e).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(e)}function OO(t){return !t||t.length===0?t:t.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}function lE(t){return String(t).normalize("NFKD").replace(/[\u0300-\u036f]/g,"")}function PO(t){return lE(t).trim().toLowerCase().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}function NO(t,e=50,n="..."){return t.length<=e?t:t.substring(0,e)+n}function I(t,e='"'){return `${e}${t}${e}`}function wo(t,e,n){if(e instanceof RegExp)return e.test(t);if(typeof e=="string")switch(!n&&e.startsWith("/")&&(n="regex"),n){case "regex":return new RegExp(e).test(t);case "sql":return new RegExp(e.replace("%",".*").replace("_",".")).test(t);case "wildcard":return new RegExp(e.replace("*",".*")).test(t);default:return t.includes(e)}return false}function IO(t,e,n=/\{\{([\w-]+)\}\}/g){return t.replace(n,(r,s)=>s in e?e[s]:r)}function Ss(t,e,n=.33){if(e.length===0)return null;let r=qd(t),s=[];for(let l of e){let c=cE(r,qd(l));c>.1&&s.push([l,c]);}s.sort((l,c)=>c[1]-l[1]);let i=s.slice(0,50),o=null,a=n;for(let[l]of i){let c=Math.max(t.length,l.length),u=c===0?1:1-uE(t.toLowerCase(),l.toLowerCase())/c;u>a&&(a=u,o=l);}return o}function qd(t,e=2){let n=new Map,r=`-${t.toLowerCase()}-`;for(let s=0;s<=r.length-e;s++){let i=r.slice(s,s+e);n.set(i,(n.get(i)||0)+1);}return n}function cE(t,e){let n=0,r=0,s=0;for(let[i,o]of t){r+=o*o;let a=e.get(i);a!==void 0&&(n+=o*a);}for(let[,i]of e)s+=i*i;return r===0||s===0?0:n/(Math.sqrt(r)*Math.sqrt(s))}function uE(t,e){let n=t.length,r=e.length,s=Array.from({length:r+1},(i,o)=>o);for(let i=1;i<=n;i++){let o=s[0];s[0]=i;for(let a=1;a<=r;a++){let l=s[a];s[a]=t[i-1]===e[a-1]?o:1+Math.min(o,s[a],s[a-1]),o=l;}}return s[r]}var rr=N(()=>{ie();});var cc=xf(($P,lc)=>{var Ao=process||{},fm=Ao.argv||[],vo=Ao.env||{},ax=!(vo.NO_COLOR||fm.includes("--no-color"))&&(!!vo.FORCE_COLOR||fm.includes("--color")||Ao.platform==="win32"||(Ao.stdout||{}).isTTY&&vo.TERM!=="dumb"||!!vo.CI),lx=(t,e,n=t)=>r=>{let s=""+r,i=s.indexOf(e,t.length);return ~i?t+cx(s,e,n,i)+e:t+s+e},cx=(t,e,n,r)=>{let s="",i=0;do s+=t.substring(i,r)+n,i=r+e.length,r=t.indexOf(e,i);while(~r);return s+t.substring(i)},pm=(t=ax)=>{let e=t?lx:()=>String;return {isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};lc.exports=pm();lc.exports.createColors=pm;});function OP(t){return ["string","number","boolean"].includes(typeof t)}function PP(t){return [true,false,0,1].includes(t)}function NP(t){return typeof t=="string"}var dm=N(()=>{});function DP(...t){return e=>t.reduce((n,r)=>r(n),e)}function jP(...t){return e=>e.map(n=>t.reduce((r,s)=>s(r),n))}var mm=N(()=>{});function hm(t){return Object.prototype.toString.call(t)==="[object Object]"}function gm(t){return t!==null&&typeof t=="object"}function FP(t,e){let n={};for(let r in t)t[r]!==e[r]&&(n[r]=e[r]);return n}function Xt(t,e,n=void 0){let r=typeof e=="string"?e.split(/[.[\]"]+/).filter(s=>s):e;if(r.length===0)return t;try{let[s,...i]=r;return !s||!(s in t)?n:Xt(t[s],i,n)}catch{if(typeof n<"u")return n;throw new Error(`Invalid path: ${r.join(".")}`)}}function ux(t,e,n){let r=e;if(typeof r=="string"){let o=a=>a[0]==='"'&&a.at(-1)==='"';r=r.split(/[.[\]]+/).filter(a=>a).map(a=>Number.isNaN(Number(a))?a:Number(a)).map(a=>typeof a=="string"&&o(a)?a.slice(1,-1):a);}if(r.length===0)throw new Error("The path must have at least one entry in it");let[s,...i]=r;return i.length===0?(t[s]=n,t):(s in t||(t[s]=typeof i[0]=="number"?[]:{}),ux(t[s],i,n),t)}function MP(t,e){return e.reduce((n,r)=>(r in t&&(n[r]=t[r]),n),{})}function UP(t,e){let n=new Set(e),r={};for(let[s,i]of Object.entries(t))n.has(s)||(r[s]=i);return r}function fc(t,...e){for(let n of e)for(let[r,s]of Object.entries(n))s!==void 0&&(!hm(s)&&!Array.isArray(s)||Array.isArray(s)&&!Array.isArray(t[r])?t[r]=s:gm(t[r])?fc(t[r],s):t[r]=s);return t}function fx(t,e,n){for(let[r,s]of Object.entries(e)){let i=n(t[r],s,r,t,e);if(i!==void 0){t[r]=i;continue}s!==void 0&&(!hm(s)&&!Array.isArray(s)||Array.isArray(s)&&!Array.isArray(t[r])?t[r]=s:gm(t[r])?fx(t[r],s,n):t[r]=s);}return t}function uc(t,e){let n=s=>{if(s!==Object(s))return "primitive";if(Array.isArray(s))return "array";if(s instanceof Map)return "map";if(s!=null&&[null,Object.prototype].includes(Object.getPrototypeOf(s)))return "plainObject";if(s instanceof Function)return "function";throw new Error(`deeply comparing an instance of type ${t.constructor?.name} is not supported.`)},r=n(t);if(r!==n(e))return false;if(r==="primitive")return t===e||Number.isNaN(t)&&Number.isNaN(e);if(r==="array")return t.length===e.length&&t.every((s,i)=>uc(s,e[i]));if(r==="map")return t.size===e.size&&[...t].every(([s,i])=>e.has(s)&&uc(i,e.get(s)));if(r==="plainObject"){let s=new Map(Object.entries(t)),i=new Map(Object.entries(e));return s.size===i.size&&[...s].every(([o,a])=>i.has(o)&&uc(a,i.get(o)))}else {if(r==="function")return t.toString()===e.toString();throw new Error("Unreachable")}}function ym(...t){let[e,n,r]=t;return JSON.stringify(e,(s,i)=>typeof i=="bigint"?Number.parseInt(i.toString(),10):i instanceof Map?Object.fromEntries(i.entries()):i instanceof Set?Array.from(i):n&&typeof n=="function"?n(s,i):i,r)}var xs=N(()=>{});function qP(t){let e=t instanceof Request?new URL(t.url).searchParams:t;return Object.fromEntries(e.entries())}function HP(t,e){let n=t instanceof Request?new URL(t.url).searchParams:t,r={};for(let[s,i]of n.entries())e(s,i)&&(r[s]=i);return r}var bm=N(()=>{});function KP(){try{return !px()&&global?.process?.release?.name==="node"}catch{return false}}function px(){try{return typeof Bun<"u"}catch{return false}}function wm(t,e){if(!t)throw new Error(e)}function JP(t,e){try{return t(),!1}catch(n){if(e){if(n instanceof e)return true;throw n}return true}}async function zP(t,e){try{return await t,!1}catch(n){if(e){if(n instanceof e)return true;throw n}return true}}function VP(t,e){try{return t()}catch{return e}}async function GP(t,e){let n=performance.now();await t();let r=performance.now();e(r-n);}var QP,Sm=N(()=>{QP={Map:t=>t instanceof Map?t:new Map(typeof t=="object"&&t!==null?Object.entries(t):[]),Set:t=>t instanceof Set?t:new Set(Array.isArray(t)?t:[]),Array:t=>Array.isArray(t)?t:["string","number","boolean"].includes(typeof t)?[t]:[]};});function Ts(t,e={}){return t.split(`
12
+ var sb=Object.create;var sa=Object.defineProperty;var ib=Object.getOwnPropertyDescriptor;var ob=Object.getOwnPropertyNames;var ab=Object.getPrototypeOf,lb=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(t&&(e=t(t=0)),e);var Iu=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Xs=(t,e)=>{for(var n in e)sa(t,n,{get:e[n],enumerable:true});},cb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ob(e))!lb.call(t,s)&&s!==n&&sa(t,s,{get:()=>e[s],enumerable:!(r=ib(e,s))||r.enumerable});return t};var ia=(t,e,n)=>(n=t!=null?sb(ab(t)):{},cb(sa(n,"default",{value:t,enumerable:true}),t));var sn,Ri=I(()=>{sn=class extends Error{constructor(n,r,s,i){super(`check constraint "${s}" violated for ${n}.${r}`);this.table=n;this.column=r;this.constraint=s;this.value=i;this.name="CheckConstraintError";}};});var ie,st=I(()=>{Ri();ie=class{context;factoryExtra;constructor(e){this.context=e;}get isShimBacked(){return false}checkConstraint(){return null}serialize(e){return e}deserialize(e){return e}validateStorage(e){return {status:"pass",message:null}}validationFail(e,n){return {status:"fail",message:e,action:n}}validationPass(){return {status:"pass",message:null}}isNullish(e){return e==null}toColumnDDL(e){let{includeNullable:n=true}=e??{},r=[],s=this.context.column;r.push(this.quoteIfNeeded(s)),r.push(this.sqliteType),this.context.isPrimaryKey&&r.push("PRIMARY KEY"),this.context.isSerial&&this.context.isPrimaryKey&&r.push("AUTOINCREMENT"),n&&!this.context.nullable&&!this.context.isPrimaryKey&&r.push("NOT NULL"),this.context.isUnique&&!this.context.isPrimaryKey&&r.push("UNIQUE"),this.context.defaultValue!==null&&r.push(`DEFAULT ${this.context.defaultValue}`);let i=this.checkConstraint();return i&&r.push(`CHECK (${i})`),r.join(" ")}checkError(e,n){return new sn(this.context.table,this.context.column,e,n)}quoteIfNeeded(e){return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`"${e}"`}};});function dO(t=10,e={}){let o="abcdefghijklmnopqrstuvwxyz"+(e.uppercase?"ABCDEFGHIJKLMNOPQRSTUVWXYZ":"")+(e.numbers?"0123456789":"")+(e.special?"!@#$%^&*()_+{}:\"<>?|[];',./`~":""),a="";for(let l=0;l<t;l++)a+=o[Math.floor(Math.random()*o.length)];return a}function pO(t,e){if(typeof t!="string"){if(e?.panic)throw new Error("Email must be a string");return false}if(!s.string({format:"email"}).validate(t).valid){if(e?.panic)throw new Error("Invalid email");return false}if(e?.domains?.length&&!e.domains.includes(t.split("@")[1])){if(e?.panic)throw new Error("Email domain not allowed");return false}return true}function mO(t,{panic:e=true,length:n=8,numbers:r=0,special:s=0}={}){try{if(typeof t!="string"){if(e)throw new Error("Password must be a string");return !1}if(t.length<n){if(e)throw new Error(`Password must be at least ${n} characters long`);return !1}if((t.match(/[0-9]/g)?.length??0)<r){if(e)throw new Error(`Password must contain at least ${r} numbers`);return !1}if((t.match(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/g)?.length??0)<s){if(e)throw new Error(`Password must contain at least ${s} special characters`);return !1}return !0}catch(i){if(e)throw i;return false}}function hO(t){return !t||t.length===0?t:t.charAt(0).toUpperCase()+t.slice(1)}function gO(t,e=" "){return !t||t.length===0?t:t.split(e).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(e)}function yO(t){return !t||t.length===0?t:t.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}function OS(t){return String(t).normalize("NFKD").replace(/[\u0300-\u036f]/g,"")}function bO(t){return OS(t).trim().toLowerCase().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}function wO(t,e=50,n="..."){return t.length<=e?t:t.substring(0,e)+n}function N(t,e='"'){return `${e}${t}${e}`}function Hi(t,e,n){if(e instanceof RegExp)return e.test(t);if(typeof e=="string")switch(!n&&e.startsWith("/")&&(n="regex"),n){case "regex":return new RegExp(e).test(t);case "sql":return new RegExp(e.replace("%",".*").replace("_",".")).test(t);case "wildcard":return new RegExp(e.replace("*",".*")).test(t);default:return t.includes(e)}return false}function SO(t,e,n=/\{\{([\w-]+)\}\}/g){return t.replace(n,(r,s)=>s in e?e[s]:r)}function Kr(t,e,n=.33){if(e.length===0)return null;let r=Gd(t),s=[];for(let l of e){let c=PS(r,Gd(l));c>.1&&s.push([l,c]);}s.sort((l,c)=>c[1]-l[1]);let i=s.slice(0,50),o=null,a=n;for(let[l]of i){let c=Math.max(t.length,l.length),f=c===0?1:1-$S(t.toLowerCase(),l.toLowerCase())/c;f>a&&(a=f,o=l);}return o}function Gd(t,e=2){let n=new Map,r=`-${t.toLowerCase()}-`;for(let s=0;s<=r.length-e;s++){let i=r.slice(s,s+e);n.set(i,(n.get(i)||0)+1);}return n}function PS(t,e){let n=0,r=0,s=0;for(let[i,o]of t){r+=o*o;let a=e.get(i);a!==void 0&&(n+=o*a);}for(let[,i]of e)s+=i*i;return r===0||s===0?0:n/(Math.sqrt(r)*Math.sqrt(s))}function $S(t,e){let n=t.length,r=e.length,s=Array.from({length:r+1},(i,o)=>o);for(let i=1;i<=n;i++){let o=s[0];s[0]=i;for(let a=1;a<=r;a++){let l=s[a];s[a]=t[i-1]===e[a-1]?o:1+Math.min(o,s[a],s[a-1]),o=l;}}return s[r]}var Fn=I(()=>{});var El=Iu((gP,_l)=>{var Yi=process||{},gp=Yi.argv||[],Xi=Yi.env||{},A_=!(Xi.NO_COLOR||gp.includes("--no-color"))&&(!!Xi.FORCE_COLOR||gp.includes("--color")||Yi.platform==="win32"||(Yi.stdout||{}).isTTY&&Xi.TERM!=="dumb"||!!Xi.CI),O_=(t,e,n=t)=>r=>{let s=""+r,i=s.indexOf(e,t.length);return ~i?t+P_(s,e,n,i)+e:t+s+e},P_=(t,e,n,r)=>{let s="",i=0;do s+=t.substring(i,r)+n,i=r+e.length,r=t.indexOf(e,i);while(~r);return s+t.substring(i)},yp=(t=A_)=>{let e=t?O_:()=>String;return {isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};_l.exports=yp();_l.exports.createColors=yp;});function yP(t){return ["string","number","boolean"].includes(typeof t)}function bP(t){return [true,false,0,1].includes(t)}function wP(t){return typeof t=="string"}var bp=I(()=>{});function _P(...t){return e=>t.reduce((n,r)=>r(n),e)}function EP(...t){return e=>e.map(n=>t.reduce((r,s)=>s(r),n))}var wp=I(()=>{});function Sp(t){return Object.prototype.toString.call(t)==="[object Object]"}function _p(t){return t!==null&&typeof t=="object"}function TP(t,e){let n={};for(let r in t)t[r]!==e[r]&&(n[r]=e[r]);return n}function qt(t,e,n=void 0){let r=typeof e=="string"?e.split(/[.[\]"]+/).filter(s=>s):e;if(r.length===0)return t;try{let[s,...i]=r;return !s||!(s in t)?n:qt(t[s],i,n)}catch{if(typeof n<"u")return n;throw new Error(`Invalid path: ${r.join(".")}`)}}function $_(t,e,n){let r=e;if(typeof r=="string"){let o=a=>a[0]==='"'&&a.at(-1)==='"';r=r.split(/[.[\]]+/).filter(a=>a).map(a=>Number.isNaN(Number(a))?a:Number(a)).map(a=>typeof a=="string"&&o(a)?a.slice(1,-1):a);}if(r.length===0)throw new Error("The path must have at least one entry in it");let[s,...i]=r;return i.length===0?(t[s]=n,t):(s in t||(t[s]=typeof i[0]=="number"?[]:{}),$_(t[s],i,n),t)}function RP(t,e){return e.reduce((n,r)=>(r in t&&(n[r]=t[r]),n),{})}function CP(t,e){let n=new Set(e),r={};for(let[s,i]of Object.entries(t))n.has(s)||(r[s]=i);return r}function Tl(t,...e){for(let n of e)for(let[r,s]of Object.entries(n))s!==void 0&&(!Sp(s)&&!Array.isArray(s)||Array.isArray(s)&&!Array.isArray(t[r])?t[r]=s:_p(t[r])?Tl(t[r],s):t[r]=s);return t}function I_(t,e,n){for(let[r,s]of Object.entries(e)){let i=n(t[r],s,r,t,e);if(i!==void 0){t[r]=i;continue}s!==void 0&&(!Sp(s)&&!Array.isArray(s)||Array.isArray(s)&&!Array.isArray(t[r])?t[r]=s:_p(t[r])?I_(t[r],s,n):t[r]=s);}return t}function xl(t,e){let n=s=>{if(s!==Object(s))return "primitive";if(Array.isArray(s))return "array";if(s instanceof Map)return "map";if(s!=null&&[null,Object.prototype].includes(Object.getPrototypeOf(s)))return "plainObject";if(s instanceof Function)return "function";throw new Error(`deeply comparing an instance of type ${t.constructor?.name} is not supported.`)},r=n(t);if(r!==n(e))return false;if(r==="primitive")return t===e||Number.isNaN(t)&&Number.isNaN(e);if(r==="array")return t.length===e.length&&t.every((s,i)=>xl(s,e[i]));if(r==="map")return t.size===e.size&&[...t].every(([s,i])=>e.has(s)&&xl(i,e.get(s)));if(r==="plainObject"){let s=new Map(Object.entries(t)),i=new Map(Object.entries(e));return s.size===i.size&&[...s].every(([o,a])=>i.has(o)&&xl(a,i.get(o)))}else {if(r==="function")return t.toString()===e.toString();throw new Error("Unreachable")}}function Ep(...t){let[e,n,r]=t;return JSON.stringify(e,(s,i)=>typeof i=="bigint"?Number.parseInt(i.toString(),10):i instanceof Map?Object.fromEntries(i.entries()):i instanceof Set?Array.from(i):n&&typeof n=="function"?n(s,i):i,r)}var zr=I(()=>{});function vP(t){let e=t instanceof Request?new URL(t.url).searchParams:t;return Object.fromEntries(e.entries())}function AP(t,e){let n=t instanceof Request?new URL(t.url).searchParams:t,r={};for(let[s,i]of n.entries())e(s,i)&&(r[s]=i);return r}var xp=I(()=>{});function PP(){try{return !N_()&&global?.process?.release?.name==="node"}catch{return false}}function N_(){try{return typeof Bun<"u"}catch{return false}}function Tp(t,e){if(!t)throw new Error(e)}function $P(t,e){try{return t(),!1}catch(n){if(e){if(n instanceof e)return true;throw n}return true}}async function IP(t,e){try{return await t,!1}catch(n){if(e){if(n instanceof e)return true;throw n}return true}}function NP(t,e){try{return t()}catch{return e}}async function DP(t,e){let n=performance.now();await t();let r=performance.now();e(r-n);}var jP,Rp=I(()=>{jP={Map:t=>t instanceof Map?t:new Map(typeof t=="object"&&t!==null?Object.entries(t):[]),Set:t=>t instanceof Set?t:new Set(Array.isArray(t)?t:[]),Array:t=>Array.isArray(t)?t:["string","number","boolean"].includes(typeof t)?[t]:[]};});function Vr(t,e={}){return t.split(`
13
13
  `).map(n=>n.trim()).filter(n=>n.length>0).filter(n=>!n.startsWith(e.comments??"--")).join(`
14
- `)}function YP(t,e=true){return (e?Ts(t):t).split(";").filter(Boolean)}function Em(t){let e=[],n="",r=0,s=t.length,i=false,o=false,a=0,l=/^create(\s+or\s+replace)?(\s+temp(orary)?)?$/i,c=f=>{_m(f).length>0&&e.push(f.trim());},u=()=>{i=false,o=false,a=0;};for(;r<s;){let f=t[r],p=t[r+1];if(f==="-"&&p==="-"){for(;r<s&&t[r]!==`
15
- `;)n+=t[r],r++;continue}if(f==="/"&&p==="*"){for(n+="/*",r+=2;r<s&&!(t[r]==="*"&&t[r+1]==="/");)n+=t[r],r++;r<s&&(n+="*/",r+=2);continue}if(f==="'"){for(n+=f,r++;r<s;){if(t[r]==="'"&&t[r+1]==="'"){n+="''",r+=2;continue}if(n+=t[r],t[r]==="'"){r++;break}r++;}continue}if(f==='"'){for(n+=f,r++;r<s;){if(t[r]==='"'&&t[r+1]==='"'){n+='""',r+=2;continue}if(n+=t[r],t[r]==='"'){r++;break}r++;}continue}if(f==="$"){let d=t.indexOf("$",r+1);if(d!==-1){let g=t.slice(r,d+1);if(/^\$[A-Za-z_][A-Za-z0-9_]*\$$|^\$\$$/.test(g)){n+=g,r=d+1;let h=t.indexOf(g,r);h===-1?(n+=t.slice(r),r=s):(n+=t.slice(r,h+g.length),r=h+g.length);continue}}}if(/[A-Za-z_]/.test(f)){let d=r;for(;d<s&&/[A-Za-z0-9_]/.test(t[d]);)d++;let g=t.slice(r,d),m=g.toLowerCase();if(m==="trigger"&&l.test(_m(n))?i=true:i&&m==="begin"?(o=true,a++):i&&o&&m==="case"?a++:i&&o&&m==="end"&&a>0&&a--,n+=g,r=d,i&&o&&a===0){let h=r;for(;h<s&&/\s/.test(t[h]);)h++;t[h]===";"&&(r=h+1),c(n),n="",u();}continue}if(f===";"){if(i&&o&&a>0){n+=f,r++;continue}c(n),n="",u(),r++;continue}n+=f,r++;}return c(n),e}function _m(t){let e="",n=0,r=t.length;for(;n<r;){let s=t[n],i=t[n+1];if(s==="-"&&i==="-"){for(;n<r&&t[n]!==`
16
- `;)n++;continue}if(s==="/"&&i==="*"){for(n+=2;n<r&&!(t[n]==="*"&&t[n+1]==="/");)n++;n+=2;continue}e+=s,n++;}return e.trim()}function pc(t){return (t??"").trim().toLowerCase()}function dc(t){return (t??"").replace(/\s+/g," ").replace(/"/g,"").trim().toLowerCase()}function mc(t){if(t==null)return null;let e=t.trim();for(;e.startsWith("(")&&e.endsWith(")");)e=e.slice(1,-1).trim();return (e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))&&(e=e.slice(1,-1)),e}var sr=N(()=>{});function eN(t){return typeof t=="number"?t:Number.parseInt(String(t),10)}var xm=N(()=>{});function nN(){return crypto.randomUUID()}var Tm=N(()=>{});var Rs=N(()=>{dm();mm();xs();bm();Sm();sr();rr();xm();Tm();});var kn,Bo=N(()=>{ot();kn=class extends ae{get sqliteType(){return "INTEGER"}};});var $s,kc=N(()=>{Bo();$s=class extends kn{constructor(e){super({...e,isSerial:true});}};});function Rx(t,e){let{precision:n,scale:r}=e,s=10**r,i=10**(n-r);return Math.abs(Math.round(t*s)-t*s)<1e-4&&Math.abs(t)<i}var Os,$c=N(()=>{ot();Os=class extends ae{numericPrecision;constructor(e,n){super(e),this.numericPrecision=n;}get isShimBacked(){return this.numericPrecision!==void 0}get sqliteType(){return "REAL"}checkConstraint(){if(this.numericPrecision){let{precision:e,scale:n}=this.numericPrecision,r=this.context.column,s=10**n,i=10**(e-n);return `ABS(ROUND(${r} * ${s}) - ${r} * ${s}) < 0.0001 AND ABS(${r}) < ${i}`}return null}validateStorage(e){if(this.isNullish(e))return this.validationPass();if(typeof e!="number"||!Number.isFinite(e))return this.validationFail("Expected finite number.","Patch rows with finite numbers.");if(this.numericPrecision){let{precision:n,scale:r}=this.numericPrecision;if(!Rx(e,this.numericPrecision))return this.validationFail(`Does not fit numeric(${n}, ${r}).`,"Patch rows within numeric precision.")}return this.validationPass()}};});var ue,et=N(()=>{ot();ue=class extends ae{lengthConstraint;constructor(e,n){super(e),this.lengthConstraint=n;}get isShimBacked(){return this.lengthConstraint!==void 0}get sqliteType(){return "TEXT"}checkConstraint(){return this.lengthConstraint!==void 0?`length(${this.context.column}) <= ${this.lengthConstraint}`:null}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"?this.validationFail("Expected text.","Patch rows with text values."):this.lengthConstraint!==void 0&&Array.from(e).length>this.lengthConstraint?this.validationFail(`Exceeds length ${this.lengthConstraint}.`,"Patch rows with shorter text."):this.validationPass()}};});var Ps,Oc=N(()=>{ot();Ps=class extends ae{get sqliteType(){return "BLOB"}};});var Ns,Pc=N(()=>{ot();Ns=class extends ae{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}checkConstraint(){return `${this.context.column} IN (0, 1)`}serialize(e){if(this.isNullish(e))return e;if(e===true||e===1)return 1;if(e===false||e===0)return 0;throw this.checkError("boolean_range",e)}deserialize(e){if(this.isNullish(e)||e===true||e===false)return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return true;if(e===0)return false}return e===1n?true:e===0n?false:e==="1"||e==="true"?true:e==="0"||e==="false"?false:e}validateStorage(e){return this.isNullish(e)?this.validationPass():e===1||e===0?this.validationPass():this.validationFail("Expected 0 or 1.","Patch rows with boolean values.")}};});function Km(t){try{return {ok:!0,value:JSON.parse(t)}}catch{return {ok:false}}}var Is,Nc=N(()=>{ot();Is=class extends ae{get isShimBacked(){return true}get sqliteType(){return "TEXT"}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR json_valid(${e})`}serialize(e){if(this.isNullish(e))return e;try{return JSON.stringify(e)}catch{throw this.checkError("json_valid",e)}}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="string"){let n=Km(e);return n.ok?n.value:e}return e}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"?this.validationFail("Expected JSON text.","Patch rows with JSON values."):Km(e).ok?this.validationPass():this.validationFail("Invalid JSON text.","Patch rows with valid JSON.")}};});function Cx(t){if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return false;let e=new Date(`${t}T00:00:00.000Z`);return !Number.isNaN(e.getTime())&&e.toISOString().slice(0,10)===t}var Ds,Ic=N(()=>{et();Ds=class extends ue{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR date(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!Cx(e)?this.validationFail("Invalid date.","Patch rows with YYYY-MM-DD dates."):this.validationPass()}};});function vx(t){let e=t.match(/^(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?([+-](\d{2}):?(\d{2}))?$/);if(!e)return false;let n=Number(e[1]),r=Number(e[2]),s=e[3]===void 0?0:Number(e[3]),i=e[5]===void 0?null:Number(e[5]),o=e[6]===void 0?null:Number(e[6]),a=i===null||o!==null&&i<=15&&o<=59;return n<=24&&r<=59&&s<=59&&(n!==24||r===0&&s===0)&&a}var js,Dc=N(()=>{et();js=class extends ue{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR time(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!vx(e)?this.validationFail("Invalid time.","Patch rows with HH:MM[:SS] times."):this.validationPass()}};});function Ax(t){let e=t.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?(?:Z|([+-](\d{2}):?(\d{2})))?$/);if(!e)return false;let n=Number(e[1]),r=Number(e[2]),s=Number(e[3]),i=Number(e[4]),o=Number(e[5]),a=e[6]===void 0?0:Number(e[6]),l=e[8]===void 0?null:Number(e[8]),c=e[9]===void 0?null:Number(e[9]),u=new Date(Date.UTC(n,r-1,s)),f=u.getUTCFullYear()===n&&u.getUTCMonth()===r-1&&u.getUTCDate()===s,p=i<=24&&o<=59&&a<=59&&(i!==24||o===0&&a===0),d=l===null||c!==null&&l<=15&&c<=59;return f&&p&&d}var Ls,jc=N(()=>{et();Ls=class extends ue{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR datetime(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!Ax(e)?this.validationFail("Invalid timestamp.","Patch rows with ISO timestamps."):this.validationPass()}};});var Fs,Lc=N(()=>{et();Fs=class extends ue{get isShimBacked(){return true}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||e.trim().length===0?this.validationFail("Expected interval text.","Patch rows with interval strings."):/^-?\d+(?:\.\d+)?$/.test(e.trim())?this.validationFail("Ambiguous numeric interval.","Patch rows with explicit interval strings."):this.validationPass()}};});var Ms,Fc=N(()=>{et();Ms=class extends ue{enumValues;constructor(e,n){super(e),this.enumValues=n;}get isShimBacked(){return true}checkConstraint(){let e=this.context.column,n=this.enumValues.map(r=>`'${r.replace(/'/g,"''")}'`).join(", ");return `${e} IN (${n})`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string"||!this.enumValues.includes(e))throw this.checkError("enum_membership",e);return e}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!this.enumValues.includes(e)?this.validationFail("Invalid enum value.","Patch rows with declared enum values."):this.validationPass()}};});function Jm(t){try{return {ok:!0,value:JSON.parse(t)}}catch{return {ok:false}}}var ur,Mc=N(()=>{ot();ur=class extends ae{elementField;constructor(e,n){super(e),this.elementField=n;}get sqliteType(){return "TEXT"}get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR (json_valid(${e}) AND json_type(${e}) = 'array')`}serialize(e){if(this.isNullish(e))return e;if(!Array.isArray(e))throw this.checkError("array_type",e);return this.elementField?JSON.stringify(e.map(n=>this.elementField.serialize(n))):JSON.stringify(e)}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="string"){let n=Jm(e);if(n.ok&&Array.isArray(n.value))return this.elementField?n.value.map(r=>this.elementField.deserialize(r)):n.value}return e}validateStorage(e){if(this.isNullish(e))return this.validationPass();if(typeof e!="string")return this.validationFail("Expected JSON array text.","Patch rows with array values.");let n=Jm(e);if(!n.ok)return this.validationFail("Invalid JSON array text.","Patch rows with array values.");if(!Array.isArray(n.value))return this.validationFail("Expected JSON array.","Patch rows with array values.");if(this.elementField)for(let r of n.value){let s=this.elementField.validateStorage(r);if(s.status==="fail")return this.validationFail(`Invalid ${this.elementField.context.pgTypeName} array element.`,s.action??"Patch rows with valid array elements.")}return this.validationPass()}};});function zm(t){return $x.test(t.toLowerCase())}var kx,$x,Us,Uc=N(()=>{et();kx="????????-????-????-????-????????????",$x=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;Us=class extends ue{get isShimBacked(){return true}checkConstraint(){let e=this.quoteIfNeeded(this.context.column);return `${e} IS NULL OR ${e} GLOB '${kx}'`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string")throw this.checkError("uuid_format",e);let n=e.toLowerCase();if(!zm(n))throw this.checkError("uuid_format",e);return n}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!zm(e)?this.validationFail("Invalid UUID.","Patch rows with valid UUIDs."):this.validationPass()}};});function Ox(t){let e=t.split("/");if(e.length>2)return null;let n=e[0];if(!n)return null;if(e.length===1)return {address:n,prefix:null};let r=e[1];return !r||!/^\d+$/.test(r)?null:{address:n,prefix:Number(r)}}function Px(t){let e=t.split(".");return e.length!==4?false:e.every(n=>{if(!/^\d+$/.test(n))return false;let r=Number(n);return r>=0&&r<=255})}function Nx(t){if(!t.includes(":"))return false;try{return new URL(`http://[${t}]/`),!0}catch{return false}}function Vm(t){let e=Ox(t);return e?Px(e.address)?e.prefix===null||e.prefix>=0&&e.prefix<=32:Nx(e.address)?e.prefix===null||e.prefix>=0&&e.prefix<=128:false:false}var Bs,Bc=N(()=>{et();Bs=class extends ue{get isShimBacked(){return true}checkConstraint(){let e=this.quoteIfNeeded(this.context.column);return `${e} IS NULL OR (length(${e}) BETWEEN 3 AND 49 AND (instr(${e}, '.') > 0 OR instr(${e}, ':') > 0))`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string")throw this.checkError("inet_format",e);let n=e.trim();if(!Vm(n))throw this.checkError("inet_format",e);return n}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!Vm(e.trim())?this.validationFail("Invalid inet address.","Patch rows with valid inet strings."):this.validationPass()}};});var qs,qc=N(()=>{et();qs=class extends ue{serialize(e){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}deserialize(e){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}toColumnDDL(){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}};});function ut(t,e){if(e?.isArray){let r=ut(t,{...e,isArray:false});return new ur(t,r)}if(e?.enumValues)return new Ms(t,e.enumValues);let n=t.pgTypeName.toLowerCase().trim();if(n.startsWith("_")||n.endsWith("[]")){let r=n.startsWith("_")?n.slice(1):n.slice(0,-2),s={...t,pgTypeName:r},i=ut(s);return new ur(t,i)}return Dx.has(n)?new $s(t):Ix.has(n)?new kn(t):Mx.has(n)?new Ns(t):Ux.has(n)?new Is(t):Wx.has(n)?new Ds(t):Kx.has(n)?new js(t):Jx.has(n)?new Ls(t):zx.has(n)?new Fs(t):Fx.has(n)?new Ps(t):jx.has(n)?new Os(t,e?.numericPrecision):Bx.has(n)?new Us(t):qx.has(n)?new ue(t,63):Hx.has(n)?new Bs(t):Lx.has(n)?new ue(t,e?.lengthConstraint):new qs(t)}var Ix,Dx,jx,Lx,Fx,Mx,Ux,Bx,qx,Hx,Wx,Kx,Jx,zx,Hc=N(()=>{Bo();kc();$c();et();Oc();Pc();Nc();Ic();Dc();jc();Lc();Fc();Mc();Uc();Bc();qc();Ix=new Set(["int2","smallint","int4","integer","int","int8","bigint"]),Dx=new Set(["serial","serial4","bigserial","serial8","smallserial","serial2"]),jx=new Set(["float4","real","float8","double precision","numeric","decimal"]),Lx=new Set(["text","varchar","character varying","char","character","bpchar"]),Fx=new Set(["bytea"]),Mx=new Set(["bool","boolean"]),Ux=new Set(["json","jsonb"]),Bx=new Set(["uuid"]),qx=new Set(["name"]),Hx=new Set(["inet"]),Wx=new Set(["date"]),Kx=new Set(["time","timetz","time without time zone","time with time zone"]),Jx=new Set(["timestamp","timestamptz","timestamp without time zone","timestamp with time zone"]),zx=new Set(["interval"]);});function Wc(t,e="auto"){let n=t.toLowerCase(),r=qo[n];if(!r)return null;switch(e){case "translate":{if(!r.sqlite)throw new Error(`No SQLite translation for function "${t}"`);return {sqliteExpr:r.sqlite(),jsFn:null}}case "synthetic":{if(!r.js)throw new Error(`No JS implementation for function "${t}"`);return {sqliteExpr:null,jsFn:r.js}}case "auto":return r.js?{sqliteExpr:null,jsFn:r.js}:r.sqlite?{sqliteExpr:r.sqlite(),jsFn:null}:null}}var Gm,qo,Kc=N(()=>{Gm="lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))",qo={gen_random_uuid:{sqlite:()=>Gm,js:()=>crypto.randomUUID()},uuid_generate_v4:{sqlite:()=>Gm,js:()=>crypto.randomUUID()},now:{sqlite:()=>"datetime('now')",js:()=>new Date().toISOString()},current_timestamp:{sqlite:()=>"datetime('now')",js:()=>new Date().toISOString()},current_date:{sqlite:()=>"date('now')",js:()=>new Date().toISOString().split("T")[0]},current_time:{sqlite:()=>"time('now')",js:()=>new Date().toISOString().split("T")[1].replace("Z","")},random:{sqlite:()=>"random()",js:()=>Math.random()},length:{sqlite:()=>"length",js:null},lower:{sqlite:()=>"lower",js:null},upper:{sqlite:()=>"upper",js:null},substr:{sqlite:()=>"substr",js:null},substring:{sqlite:()=>"substr",js:null},trim:{sqlite:()=>"trim",js:null},ltrim:{sqlite:()=>"ltrim",js:null},rtrim:{sqlite:()=>"rtrim",js:null},replace:{sqlite:()=>"replace",js:null},coalesce:{sqlite:()=>"coalesce",js:null},nullif:{sqlite:()=>"nullif",js:null},count:{sqlite:()=>"count",js:null},sum:{sqlite:()=>"sum",js:null},avg:{sqlite:()=>"avg",js:null},min:{sqlite:()=>"min",js:null},max:{sqlite:()=>"max",js:null},localtime:{sqlite:()=>"time('now', 'localtime')",js:null},localtimestamp:{sqlite:()=>"datetime('now', 'localtime')",js:null}};});var tn,Qm=N(()=>{tn=class{table;schema;fields;constructor(e,n="public",r=new Map){this.table=e,this.schema=n,this.fields=r;}get(e){return this.fields.get(e)}has(e){return this.fields.has(e)}set(e,n){this.fields.set(e,n);}columns(){return Array.from(this.fields.keys())}all(){return Array.from(this.fields.values())}serializeRow(e){let n={};for(let[r,s]of Object.entries(e)){let i=this.fields.get(r);n[r]=i?i.serialize(s):s;}return n}deserializeRow(e){let n={};for(let[r,s]of Object.entries(e)){let i=this.fields.get(r);n[r]=i?i.deserialize(s):s;}return n}applyDefaults(e){let n={...e};for(let[r,s]of this.fields)!(r in n)&&s.context.defaultFn&&(n[r]=s.context.defaultFn());return n}};});var Jc=N(()=>{ot();eo();Bo();kc();$c();et();Oc();Pc();Nc();Ic();Dc();jc();Lc();Fc();Mc();Uc();Bc();qc();Hc();Kc();Qm();});var Sg={};qr(Sg,{AwsClient:()=>_u,AwsV4Signer:()=>Zo});async function Xs(t,e){let n=await crypto.subtle.importKey("raw",typeof t=="string"?Su.encode(t):t,{name:"HMAC",hash:{name:"SHA-256"}},false,["sign"]);return crypto.subtle.sign("HMAC",n,Su.encode(e))}async function yg(t){return crypto.subtle.digest("SHA-256",typeof t=="string"?Su.encode(t):t)}function wu(t){let e=new Uint8Array(t),n="";for(let r=0;r<e.length;r++){let s=e[r];n+=bg[s>>>4&15],n+=bg[s&15];}return n}function wg(t){return t.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}function uR(t,e){let{hostname:n,pathname:r}=t;if(n.endsWith(".on.aws")){let a=n.match(/^[^.]{1,63}\.lambda-url\.([^.]{1,63})\.on\.aws$/);return a!=null?["lambda",a[1]||""]:["",""]}if(n.endsWith(".r2.cloudflarestorage.com"))return ["s3","auto"];if(n.endsWith(".backblazeb2.com")){let a=n.match(/^(?:[^.]{1,63}\.)?s3\.([^.]{1,63})\.backblazeb2\.com$/);return a!=null?["s3",a[1]||""]:["",""]}let s=n.replace("dualstack.","").match(/([^.]{1,63})\.(?:([^.]{0,63})\.)?amazonaws\.com(?:\.cn)?$/),i=s&&s[1]||"",o=s&&s[2];if(o==="us-gov")o="us-gov-west-1";else if(o==="s3"||o==="s3-accelerate")o="us-east-1",i="s3";else if(i==="iot")n.startsWith("iot.")?i="execute-api":n.startsWith("data.jobs.iot.")?i="iot-jobs-data":i=r==="/mqtt"?"iotdevicegateway":"iotdata";else if(i==="autoscaling"){let a=(e.get("X-Amz-Target")||"").split(".")[0];a==="AnyScaleFrontendService"?i="application-autoscaling":a==="AnyScaleScalingPlannerFrontendService"&&(i="autoscaling-plans");}else o==null&&i.startsWith("s3-")?(o=i.slice(3).replace(/^fips-|^external-1/,""),i="s3"):i.endsWith("-fips")?i=i.slice(0,-5):o&&/-\d$/.test(i)&&!/-\d$/.test(o)&&([i,o]=[o,i]);return [lR[i]||i,o||""]}var Su,lR,cR,_u,Zo,bg,_g=N(()=>{Su=new TextEncoder,lR={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},cR=new Set(["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"]),_u=class{constructor({accessKeyId:e,secretAccessKey:n,sessionToken:r,service:s,region:i,cache:o,retries:a,initRetryMs:l}){if(e==null)throw new TypeError("accessKeyId is a required option");if(n==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=e,this.secretAccessKey=n,this.sessionToken=r,this.service=s,this.region=i,this.cache=o||new Map,this.retries=a??10,this.initRetryMs=l||50;}async sign(e,n){if(e instanceof Request){let{method:i,url:o,headers:a,body:l}=e;n=Object.assign({method:i,url:o,headers:a},n),n.body==null&&a.has("Content-Type")&&(n.body=l!=null&&a.has("X-Amz-Content-Sha256")?l:await e.clone().arrayBuffer()),e=o;}let r=new Zo(Object.assign({url:e.toString()},n,this,n&&n.aws)),s=Object.assign({},n,await r.sign());delete s.aws;try{return new Request(s.url.toString(),s)}catch(i){if(i instanceof TypeError)return new Request(s.url.toString(),Object.assign({duplex:"half"},s));throw i}}async fetch(e,n){for(let r=0;r<=this.retries;r++){let s=fetch(await this.sign(e,n));if(r===this.retries)return s;let i=await s;if(i.status<500&&i.status!==429)return i;await new Promise(o=>setTimeout(o,Math.random()*this.initRetryMs*Math.pow(2,r)));}throw new Error("An unknown error occurred, ensure retries is not negative")}},Zo=class{constructor({method:e,url:n,headers:r,body:s,accessKeyId:i,secretAccessKey:o,sessionToken:a,service:l,region:c,cache:u,datetime:f,signQuery:p,appendSessionToken:d,allHeaders:g,singleEncode:m}){if(n==null)throw new TypeError("url is a required option");if(i==null)throw new TypeError("accessKeyId is a required option");if(o==null)throw new TypeError("secretAccessKey is a required option");this.method=e||(s?"POST":"GET"),this.url=new URL(n),this.headers=new Headers(r||{}),this.body=s,this.accessKeyId=i,this.secretAccessKey=o,this.sessionToken=a;let h,y;(!l||!c)&&([h,y]=uR(this.url,this.headers)),this.service=l||h||"",this.region=c||y||"us-east-1",this.cache=u||new Map,this.datetime=f||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=p,this.appendSessionToken=d||this.service==="iotdevicegateway",this.headers.delete("Host"),this.service==="s3"&&!this.signQuery&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD");let S=this.signQuery?this.url.searchParams:this.headers;if(S.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&S.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(w=>g||!cR.has(w)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(w=>w+":"+(w==="host"?this.url.host:(this.headers.get(w)||"").replace(/\s+/g," "))).join(`
17
- `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!S.has("X-Amz-Expires")&&S.set("X-Amz-Expires","86400"),S.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),S.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),S.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "));}catch{this.encodedPath=this.url.pathname;}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");m||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=wg(this.encodedPath);let _=new Set;this.encodedSearch=[...this.url.searchParams].filter(([w])=>{if(!w)return false;if(this.service==="s3"){if(_.has(w))return false;_.add(w);}return true}).map(w=>w.map(x=>wg(encodeURIComponent(x)))).sort(([w,x],[E,T])=>w<E?-1:w>E?1:x<T?-1:x>T?1:0).map(w=>w.join("=")).join("&");}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return ["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let e=this.datetime.slice(0,8),n=[this.secretAccessKey,e,this.region,this.service].join(),r=this.cache.get(n);if(!r){let s=await Xs("AWS4"+this.secretAccessKey,e),i=await Xs(s,this.region),o=await Xs(i,this.service);r=await Xs(o,"aws4_request"),this.cache.set(n,r);}return wu(await Xs(r,await this.stringToSign()))}async stringToSign(){return ["AWS4-HMAC-SHA256",this.datetime,this.credentialString,wu(await yg(await this.canonicalString()))].join(`
14
+ `)}function FP(t,e=true){return (e?Vr(t):t).split(";").filter(Boolean)}function kp(t){let e=[],n="",r=0,s=t.length,i=false,o=false,a=0,l=/^create(\s+or\s+replace)?(\s+temp(orary)?)?$/i,c=u=>{Cp(u).length>0&&e.push(u.trim());},f=()=>{i=false,o=false,a=0;};for(;r<s;){let u=t[r],d=t[r+1];if(u==="-"&&d==="-"){for(;r<s&&t[r]!==`
15
+ `;)n+=t[r],r++;continue}if(u==="/"&&d==="*"){for(n+="/*",r+=2;r<s&&!(t[r]==="*"&&t[r+1]==="/");)n+=t[r],r++;r<s&&(n+="*/",r+=2);continue}if(u==="'"){for(n+=u,r++;r<s;){if(t[r]==="'"&&t[r+1]==="'"){n+="''",r+=2;continue}if(n+=t[r],t[r]==="'"){r++;break}r++;}continue}if(u==='"'){for(n+=u,r++;r<s;){if(t[r]==='"'&&t[r+1]==='"'){n+='""',r+=2;continue}if(n+=t[r],t[r]==='"'){r++;break}r++;}continue}if(u==="$"){let p=t.indexOf("$",r+1);if(p!==-1){let g=t.slice(r,p+1);if(/^\$[A-Za-z_][A-Za-z0-9_]*\$$|^\$\$$/.test(g)){n+=g,r=p+1;let h=t.indexOf(g,r);h===-1?(n+=t.slice(r),r=s):(n+=t.slice(r,h+g.length),r=h+g.length);continue}}}if(/[A-Za-z_]/.test(u)){let p=r;for(;p<s&&/[A-Za-z0-9_]/.test(t[p]);)p++;let g=t.slice(r,p),m=g.toLowerCase();if(m==="trigger"&&l.test(Cp(n))?i=true:i&&m==="begin"?(o=true,a++):i&&o&&m==="case"?a++:i&&o&&m==="end"&&a>0&&a--,n+=g,r=p,i&&o&&a===0){let h=r;for(;h<s&&/\s/.test(t[h]);)h++;t[h]===";"&&(r=h+1),c(n),n="",f();}continue}if(u===";"){if(i&&o&&a>0){n+=u,r++;continue}c(n),n="",f(),r++;continue}n+=u,r++;}return c(n),e}function Cp(t){let e="",n=0,r=t.length;for(;n<r;){let s=t[n],i=t[n+1];if(s==="-"&&i==="-"){for(;n<r&&t[n]!==`
16
+ `;)n++;continue}if(s==="/"&&i==="*"){for(n+=2;n<r&&!(t[n]==="*"&&t[n+1]==="/");)n++;n+=2;continue}e+=s,n++;}return e.trim()}function Rl(t){return (t??"").trim().toLowerCase()}function Cl(t){return (t??"").replace(/\s+/g," ").replace(/"/g,"").trim().toLowerCase()}function kl(t){if(t==null)return null;let e=t.trim();for(;e.startsWith("(")&&e.endsWith(")");)e=e.slice(1,-1).trim();return (e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))&&(e=e.slice(1,-1)),e}var Un=I(()=>{});function MP(t){return typeof t=="number"?t:Number.parseInt(String(t),10)}var vp=I(()=>{});function qP(){return crypto.randomUUID()}var Ap=I(()=>{});var Qr=I(()=>{bp();wp();zr();xp();Rp();Un();Fn();vp();Ap();});var fn,Zi=I(()=>{st();fn=class extends ie{get sqliteType(){return "INTEGER"}};});var Xr,vl=I(()=>{Zi();Xr=class extends fn{constructor(e){super({...e,isSerial:true});}};});function L_(t,e){let{precision:n,scale:r}=e,s=10**r,i=10**(n-r);return Math.abs(Math.round(t*s)-t*s)<1e-4&&Math.abs(t)<i}var Yr,Al=I(()=>{st();Yr=class extends ie{numericPrecision;constructor(e,n){super(e),this.numericPrecision=n;}get isShimBacked(){return this.numericPrecision!==void 0}get sqliteType(){return "REAL"}checkConstraint(){if(this.numericPrecision){let{precision:e,scale:n}=this.numericPrecision,r=this.context.column,s=10**n,i=10**(e-n);return `ABS(ROUND(${r} * ${s}) - ${r} * ${s}) < 0.0001 AND ABS(${r}) < ${i}`}return null}validateStorage(e){if(this.isNullish(e))return this.validationPass();if(typeof e!="number"||!Number.isFinite(e))return this.validationFail("Expected finite number.","Patch rows with finite numbers.");if(this.numericPrecision){let{precision:n,scale:r}=this.numericPrecision;if(!L_(e,this.numericPrecision))return this.validationFail(`Does not fit numeric(${n}, ${r}).`,"Patch rows within numeric precision.")}return this.validationPass()}};});var ae,Ze=I(()=>{st();ae=class extends ie{lengthConstraint;constructor(e,n){super(e),this.lengthConstraint=n;}get isShimBacked(){return this.lengthConstraint!==void 0}get sqliteType(){return "TEXT"}checkConstraint(){return this.lengthConstraint!==void 0?`length(${this.context.column}) <= ${this.lengthConstraint}`:null}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"?this.validationFail("Expected text.","Patch rows with text values."):this.lengthConstraint!==void 0&&Array.from(e).length>this.lengthConstraint?this.validationFail(`Exceeds length ${this.lengthConstraint}.`,"Patch rows with shorter text."):this.validationPass()}};});var Zr,Ol=I(()=>{st();Zr=class extends ie{get sqliteType(){return "BLOB"}};});var es,Pl=I(()=>{st();es=class extends ie{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}checkConstraint(){return `${this.context.column} IN (0, 1)`}serialize(e){if(this.isNullish(e))return e;if(e===true||e===1)return 1;if(e===false||e===0)return 0;throw this.checkError("boolean_range",e)}deserialize(e){if(this.isNullish(e)||e===true||e===false)return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return true;if(e===0)return false}return e===1n?true:e===0n?false:e==="1"||e==="true"?true:e==="0"||e==="false"?false:e}validateStorage(e){return this.isNullish(e)?this.validationPass():e===1||e===0?this.validationPass():this.validationFail("Expected 0 or 1.","Patch rows with boolean values.")}};});function Pp(t){try{return {ok:!0,value:JSON.parse(t)}}catch{return {ok:false}}}var ts,$l=I(()=>{st();ts=class extends ie{get isShimBacked(){return true}get sqliteType(){return "TEXT"}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR json_valid(${e})`}serialize(e){if(this.isNullish(e))return e;try{return JSON.stringify(e)}catch{throw this.checkError("json_valid",e)}}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="string"){let n=Pp(e);return n.ok?n.value:e}return e}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"?this.validationFail("Expected JSON text.","Patch rows with JSON values."):Pp(e).ok?this.validationPass():this.validationFail("Invalid JSON text.","Patch rows with valid JSON.")}};});function F_(t){if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return false;let e=new Date(`${t}T00:00:00.000Z`);return !Number.isNaN(e.getTime())&&e.toISOString().slice(0,10)===t}var ns,Il=I(()=>{Ze();ns=class extends ae{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR date(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!F_(e)?this.validationFail("Invalid date.","Patch rows with YYYY-MM-DD dates."):this.validationPass()}};});function U_(t){let e=t.match(/^(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?([+-](\d{2}):?(\d{2}))?$/);if(!e)return false;let n=Number(e[1]),r=Number(e[2]),s=e[3]===void 0?0:Number(e[3]),i=e[5]===void 0?null:Number(e[5]),o=e[6]===void 0?null:Number(e[6]),a=i===null||o!==null&&i<=15&&o<=59;return n<=24&&r<=59&&s<=59&&(n!==24||r===0&&s===0)&&a}var rs,Nl=I(()=>{Ze();rs=class extends ae{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR time(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!U_(e)?this.validationFail("Invalid time.","Patch rows with HH:MM[:SS] times."):this.validationPass()}};});function M_(t){let e=t.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?(?:Z|([+-](\d{2}):?(\d{2})))?$/);if(!e)return false;let n=Number(e[1]),r=Number(e[2]),s=Number(e[3]),i=Number(e[4]),o=Number(e[5]),a=e[6]===void 0?0:Number(e[6]),l=e[8]===void 0?null:Number(e[8]),c=e[9]===void 0?null:Number(e[9]),f=new Date(Date.UTC(n,r-1,s)),u=f.getUTCFullYear()===n&&f.getUTCMonth()===r-1&&f.getUTCDate()===s,d=i<=24&&o<=59&&a<=59&&(i!==24||o===0&&a===0),p=l===null||c!==null&&l<=15&&c<=59;return u&&d&&p}var ss,Dl=I(()=>{Ze();ss=class extends ae{get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR datetime(${e}) IS NOT NULL`}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!M_(e)?this.validationFail("Invalid timestamp.","Patch rows with ISO timestamps."):this.validationPass()}};});var is,jl=I(()=>{Ze();is=class extends ae{get isShimBacked(){return true}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||e.trim().length===0?this.validationFail("Expected interval text.","Patch rows with interval strings."):/^-?\d+(?:\.\d+)?$/.test(e.trim())?this.validationFail("Ambiguous numeric interval.","Patch rows with explicit interval strings."):this.validationPass()}};});var os,Ll=I(()=>{Ze();os=class extends ae{enumValues;constructor(e,n){super(e),this.enumValues=n;}get isShimBacked(){return true}checkConstraint(){let e=this.context.column,n=this.enumValues.map(r=>`'${r.replace(/'/g,"''")}'`).join(", ");return `${e} IN (${n})`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string"||!this.enumValues.includes(e))throw this.checkError("enum_membership",e);return e}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!this.enumValues.includes(e)?this.validationFail("Invalid enum value.","Patch rows with declared enum values."):this.validationPass()}};});function $p(t){try{return {ok:!0,value:JSON.parse(t)}}catch{return {ok:false}}}var Mn,Fl=I(()=>{st();Mn=class extends ie{elementField;constructor(e,n){super(e),this.elementField=n;}get sqliteType(){return "TEXT"}get isShimBacked(){return true}checkConstraint(){let e=this.context.column;return `${e} IS NULL OR (json_valid(${e}) AND json_type(${e}) = 'array')`}serialize(e){if(this.isNullish(e))return e;if(!Array.isArray(e))throw this.checkError("array_type",e);return this.elementField?JSON.stringify(e.map(n=>this.elementField.serialize(n))):JSON.stringify(e)}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="string"){let n=$p(e);if(n.ok&&Array.isArray(n.value))return this.elementField?n.value.map(r=>this.elementField.deserialize(r)):n.value}return e}validateStorage(e){if(this.isNullish(e))return this.validationPass();if(typeof e!="string")return this.validationFail("Expected JSON array text.","Patch rows with array values.");let n=$p(e);if(!n.ok)return this.validationFail("Invalid JSON array text.","Patch rows with array values.");if(!Array.isArray(n.value))return this.validationFail("Expected JSON array.","Patch rows with array values.");if(this.elementField)for(let r of n.value){let s=this.elementField.validateStorage(r);if(s.status==="fail")return this.validationFail(`Invalid ${this.elementField.context.pgTypeName} array element.`,s.action??"Patch rows with valid array elements.")}return this.validationPass()}};});function Ip(t){return q_.test(t.toLowerCase())}var B_,q_,as,Ul=I(()=>{Ze();B_="????????-????-????-????-????????????",q_=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;as=class extends ae{get isShimBacked(){return true}checkConstraint(){let e=this.quoteIfNeeded(this.context.column);return `${e} IS NULL OR ${e} GLOB '${B_}'`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string")throw this.checkError("uuid_format",e);let n=e.toLowerCase();if(!Ip(n))throw this.checkError("uuid_format",e);return n}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!Ip(e)?this.validationFail("Invalid UUID.","Patch rows with valid UUIDs."):this.validationPass()}};});function H_(t){let e=t.split("/");if(e.length>2)return null;let n=e[0];if(!n)return null;if(e.length===1)return {address:n,prefix:null};let r=e[1];return !r||!/^\d+$/.test(r)?null:{address:n,prefix:Number(r)}}function W_(t){let e=t.split(".");return e.length!==4?false:e.every(n=>{if(!/^\d+$/.test(n))return false;let r=Number(n);return r>=0&&r<=255})}function K_(t){if(!t.includes(":"))return false;try{return new URL(`http://[${t}]/`),!0}catch{return false}}function Np(t){let e=H_(t);return e?W_(e.address)?e.prefix===null||e.prefix>=0&&e.prefix<=32:K_(e.address)?e.prefix===null||e.prefix>=0&&e.prefix<=128:false:false}var ls,Ml=I(()=>{Ze();ls=class extends ae{get isShimBacked(){return true}checkConstraint(){let e=this.quoteIfNeeded(this.context.column);return `${e} IS NULL OR (length(${e}) BETWEEN 3 AND 49 AND (instr(${e}, '.') > 0 OR instr(${e}, ':') > 0))`}serialize(e){if(this.isNullish(e))return e;if(typeof e!="string")throw this.checkError("inet_format",e);let n=e.trim();if(!Np(n))throw this.checkError("inet_format",e);return n}validateStorage(e){return this.isNullish(e)?this.validationPass():typeof e!="string"||!Np(e.trim())?this.validationFail("Invalid inet address.","Patch rows with valid inet strings."):this.validationPass()}};});var cs,Bl=I(()=>{Ze();cs=class extends ae{serialize(e){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}deserialize(e){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}toColumnDDL(){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}};});function We(t,e){let n=oE(t,e);if(e){let{enumValues:r,...s}=e;n.factoryExtra=s;}return n}function oE(t,e){if(e?.isArray){let r=We(t,{...e,isArray:false});return new Mn(t,r)}if(e?.enumValues)return new os(t,e.enumValues);let n=t.pgTypeName.toLowerCase().trim();if(n.startsWith("_")||n.endsWith("[]")){let r=n.startsWith("_")?n.slice(1):n.slice(0,-2),s={...t,pgTypeName:r},i=We(s);return new Mn(t,i)}return G_.has(n)?new Xr(t):J_.has(n)?new fn(t):X_.has(n)?new es(t):Y_.has(n)?new ts(t):nE.has(n)?new ns(t):rE.has(n)?new rs(t):sE.has(n)?new ss(t):iE.has(n)?new is(t):Q_.has(n)?new Zr(t):z_.has(n)?new Yr(t,e?.numericPrecision):Z_.has(n)?new as(t):eE.has(n)?new ae(t,63):tE.has(n)?new ls(t):V_.has(n)?new ae(t,e?.lengthConstraint):new cs(t)}var J_,G_,z_,V_,Q_,X_,Y_,Z_,eE,tE,nE,rE,sE,iE,eo=I(()=>{Zi();vl();Al();Ze();Ol();Pl();$l();Il();Nl();Dl();jl();Ll();Fl();Ul();Ml();Bl();J_=new Set(["int2","smallint","int4","integer","int","int8","bigint"]),G_=new Set(["serial","serial4","bigserial","serial8","smallserial","serial2"]),z_=new Set(["float4","real","float8","double precision","numeric","decimal"]),V_=new Set(["text","varchar","character varying","char","character","bpchar"]),Q_=new Set(["bytea"]),X_=new Set(["bool","boolean"]),Y_=new Set(["json","jsonb"]),Z_=new Set(["uuid"]),eE=new Set(["name"]),tE=new Set(["inet"]),nE=new Set(["date"]),rE=new Set(["time","timetz","time without time zone","time with time zone"]),sE=new Set(["timestamp","timestamptz","timestamp without time zone","timestamp with time zone"]),iE=new Set(["interval"]);});function ql(t,e="auto"){let n=t.toLowerCase(),r=to[n];if(!r)return null;switch(e){case "translate":{if(!r.sqlite)throw new Error(`No SQLite translation for function "${t}"`);return {sqliteExpr:r.sqlite(),jsFn:null}}case "synthetic":{if(!r.js)throw new Error(`No JS implementation for function "${t}"`);return {sqliteExpr:null,jsFn:r.js}}case "auto":return r.js?{sqliteExpr:null,jsFn:r.js}:r.sqlite?{sqliteExpr:r.sqlite(),jsFn:null}:null}}var Dp,to,Hl=I(()=>{Dp="lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))",to={gen_random_uuid:{sqlite:()=>Dp,js:()=>crypto.randomUUID()},uuid_generate_v4:{sqlite:()=>Dp,js:()=>crypto.randomUUID()},now:{sqlite:()=>"datetime('now')",js:()=>new Date().toISOString()},current_timestamp:{sqlite:()=>"datetime('now')",js:()=>new Date().toISOString()},current_date:{sqlite:()=>"date('now')",js:()=>new Date().toISOString().split("T")[0]},current_time:{sqlite:()=>"time('now')",js:()=>new Date().toISOString().split("T")[1].replace("Z","")},random:{sqlite:()=>"random()",js:()=>Math.random()},length:{sqlite:()=>"length",js:null},lower:{sqlite:()=>"lower",js:null},upper:{sqlite:()=>"upper",js:null},substr:{sqlite:()=>"substr",js:null},substring:{sqlite:()=>"substr",js:null},trim:{sqlite:()=>"trim",js:null},ltrim:{sqlite:()=>"ltrim",js:null},rtrim:{sqlite:()=>"rtrim",js:null},replace:{sqlite:()=>"replace",js:null},coalesce:{sqlite:()=>"coalesce",js:null},nullif:{sqlite:()=>"nullif",js:null},count:{sqlite:()=>"count",js:null},sum:{sqlite:()=>"sum",js:null},avg:{sqlite:()=>"avg",js:null},min:{sqlite:()=>"min",js:null},max:{sqlite:()=>"max",js:null},localtime:{sqlite:()=>"time('now', 'localtime')",js:null},localtimestamp:{sqlite:()=>"datetime('now', 'localtime')",js:null}};});var at,Wl=I(()=>{at=class{table;schema;fields;constructor(e,n="public",r=new Map){this.table=e,this.schema=n,this.fields=r;}get(e){return this.fields.get(e)}has(e){return this.fields.has(e)}set(e,n){this.fields.set(e,n);}columns(){return Array.from(this.fields.keys())}all(){return Array.from(this.fields.values())}serializeRow(e){let n={};for(let[r,s]of Object.entries(e)){let i=this.fields.get(r);n[r]=i?i.serialize(s):s;}return n}deserializeRow(e){let n={};for(let[r,s]of Object.entries(e)){let i=this.fields.get(r);n[r]=i?i.deserialize(s):s;}return n}applyDefaults(e){let n={...e};for(let[r,s]of this.fields)!(r in n)&&s.context.defaultFn&&(n[r]=s.context.defaultFn());return n}};});var Kl=I(()=>{st();Ri();Zi();vl();Al();Ze();Ol();Pl();$l();Il();Nl();Dl();jl();Ll();Fl();Ul();Ml();Bl();eo();Hl();Wl();});var $h={};Xs($h,{AwsClient:()=>vc,AwsV4Signer:()=>bo});async function Ss(t,e){let n=await crypto.subtle.importKey("raw",typeof t=="string"?kc.encode(t):t,{name:"HMAC",hash:{name:"SHA-256"}},false,["sign"]);return crypto.subtle.sign("HMAC",n,kc.encode(e))}async function Ah(t){return crypto.subtle.digest("SHA-256",typeof t=="string"?kc.encode(t):t)}function Cc(t){let e=new Uint8Array(t),n="";for(let r=0;r<e.length;r++){let s=e[r];n+=Oh[s>>>4&15],n+=Oh[s&15];}return n}function Ph(t){return t.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}function Zx(t,e){let{hostname:n,pathname:r}=t;if(n.endsWith(".on.aws")){let a=n.match(/^[^.]{1,63}\.lambda-url\.([^.]{1,63})\.on\.aws$/);return a!=null?["lambda",a[1]||""]:["",""]}if(n.endsWith(".r2.cloudflarestorage.com"))return ["s3","auto"];if(n.endsWith(".backblazeb2.com")){let a=n.match(/^(?:[^.]{1,63}\.)?s3\.([^.]{1,63})\.backblazeb2\.com$/);return a!=null?["s3",a[1]||""]:["",""]}let s=n.replace("dualstack.","").match(/([^.]{1,63})\.(?:([^.]{0,63})\.)?amazonaws\.com(?:\.cn)?$/),i=s&&s[1]||"",o=s&&s[2];if(o==="us-gov")o="us-gov-west-1";else if(o==="s3"||o==="s3-accelerate")o="us-east-1",i="s3";else if(i==="iot")n.startsWith("iot.")?i="execute-api":n.startsWith("data.jobs.iot.")?i="iot-jobs-data":i=r==="/mqtt"?"iotdevicegateway":"iotdata";else if(i==="autoscaling"){let a=(e.get("X-Amz-Target")||"").split(".")[0];a==="AnyScaleFrontendService"?i="application-autoscaling":a==="AnyScaleScalingPlannerFrontendService"&&(i="autoscaling-plans");}else o==null&&i.startsWith("s3-")?(o=i.slice(3).replace(/^fips-|^external-1/,""),i="s3"):i.endsWith("-fips")?i=i.slice(0,-5):o&&/-\d$/.test(i)&&!/-\d$/.test(o)&&([i,o]=[o,i]);return [Xx[i]||i,o||""]}var kc,Xx,Yx,vc,bo,Oh,Ih=I(()=>{kc=new TextEncoder,Xx={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},Yx=new Set(["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"]),vc=class{constructor({accessKeyId:e,secretAccessKey:n,sessionToken:r,service:s,region:i,cache:o,retries:a,initRetryMs:l}){if(e==null)throw new TypeError("accessKeyId is a required option");if(n==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=e,this.secretAccessKey=n,this.sessionToken=r,this.service=s,this.region=i,this.cache=o||new Map,this.retries=a??10,this.initRetryMs=l||50;}async sign(e,n){if(e instanceof Request){let{method:i,url:o,headers:a,body:l}=e;n=Object.assign({method:i,url:o,headers:a},n),n.body==null&&a.has("Content-Type")&&(n.body=l!=null&&a.has("X-Amz-Content-Sha256")?l:await e.clone().arrayBuffer()),e=o;}let r=new bo(Object.assign({url:e.toString()},n,this,n&&n.aws)),s=Object.assign({},n,await r.sign());delete s.aws;try{return new Request(s.url.toString(),s)}catch(i){if(i instanceof TypeError)return new Request(s.url.toString(),Object.assign({duplex:"half"},s));throw i}}async fetch(e,n){for(let r=0;r<=this.retries;r++){let s=fetch(await this.sign(e,n));if(r===this.retries)return s;let i=await s;if(i.status<500&&i.status!==429)return i;await new Promise(o=>setTimeout(o,Math.random()*this.initRetryMs*Math.pow(2,r)));}throw new Error("An unknown error occurred, ensure retries is not negative")}},bo=class{constructor({method:e,url:n,headers:r,body:s,accessKeyId:i,secretAccessKey:o,sessionToken:a,service:l,region:c,cache:f,datetime:u,signQuery:d,appendSessionToken:p,allHeaders:g,singleEncode:m}){if(n==null)throw new TypeError("url is a required option");if(i==null)throw new TypeError("accessKeyId is a required option");if(o==null)throw new TypeError("secretAccessKey is a required option");this.method=e||(s?"POST":"GET"),this.url=new URL(n),this.headers=new Headers(r||{}),this.body=s,this.accessKeyId=i,this.secretAccessKey=o,this.sessionToken=a;let h,y;(!l||!c)&&([h,y]=Zx(this.url,this.headers)),this.service=l||h||"",this.region=c||y||"us-east-1",this.cache=f||new Map,this.datetime=u||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=d,this.appendSessionToken=p||this.service==="iotdevicegateway",this.headers.delete("Host"),this.service==="s3"&&!this.signQuery&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD");let w=this.signQuery?this.url.searchParams:this.headers;if(w.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&w.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(b=>g||!Yx.has(b)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(b=>b+":"+(b==="host"?this.url.host:(this.headers.get(b)||"").replace(/\s+/g," "))).join(`
17
+ `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!w.has("X-Amz-Expires")&&w.set("X-Amz-Expires","86400"),w.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),w.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),w.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "));}catch{this.encodedPath=this.url.pathname;}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");m||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=Ph(this.encodedPath);let S=new Set;this.encodedSearch=[...this.url.searchParams].filter(([b])=>{if(!b)return false;if(this.service==="s3"){if(S.has(b))return false;S.add(b);}return true}).map(b=>b.map(_=>Ph(encodeURIComponent(_)))).sort(([b,_],[E,x])=>b<E?-1:b>E?1:_<x?-1:_>x?1:0).map(b=>b.join("=")).join("&");}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return ["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let e=this.datetime.slice(0,8),n=[this.secretAccessKey,e,this.region,this.service].join(),r=this.cache.get(n);if(!r){let s=await Ss("AWS4"+this.secretAccessKey,e),i=await Ss(s,this.region),o=await Ss(i,this.service);r=await Ss(o,"aws4_request"),this.cache.set(n,r);}return Cc(await Ss(r,await this.stringToSign()))}async stringToSign(){return ["AWS4-HMAC-SHA256",this.datetime,this.credentialString,Cc(await Ah(await this.canonicalString()))].join(`
18
18
  `)}async canonicalString(){return [this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+`
19
19
  `,this.signedHeaders,await this.hexBodyHash()].join(`
20
- `)}async hexBodyHash(){let e=this.headers.get("X-Amz-Content-Sha256")||(this.service==="s3"&&this.signQuery?"UNSIGNED-PAYLOAD":null);if(e==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");e=wu(await yg(this.body||""));}return e}};bg=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];});var Cy=xf((YB,TC)=>{TC.exports={"dev/vite/main.tsx":{file:"assets/main-DO_xnvTw.js",name:"main",src:"dev/vite/main.tsx",isEntry:true,css:["assets/main-BITGMylP.css"]}};});var pf,Wy,Ky,_a=N(()=>{pf=(d=>(d.DISABLE_FOREIGN_KEYS="disable_foreign_keys",d.ENABLE_FOREIGN_KEYS="enable_foreign_keys",d.BEGIN_TRANSACTION="begin_transaction",d.COMMIT_TRANSACTION="commit_transaction",d.CREATE_TABLE="create_table",d.ADD_COLUMN="add_column",d.DROP_COLUMN="drop_column",d.ADD_INDEX="add_index",d.DROP_INDEX="drop_index",d.DROP_TABLE="drop_table",d.RENAME_TABLE="rename_table",d.COPY_DATA="copy_data",d.CREATE_TRIGGER="create_trigger",d))(pf||{}),Wy=class extends Error{constructor(n){super(`Migration would cause data loss:
20
+ `)}async hexBodyHash(){let e=this.headers.get("X-Amz-Content-Sha256")||(this.service==="s3"&&this.signQuery?"UNSIGNED-PAYLOAD":null);if(e==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");e=Cc(await Ah(this.body||""));}return e}};Oh=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];});var Bg=Iu((uU,fR)=>{fR.exports={"dev/vite/main.tsx":{file:"assets/main-1bwWb_1q.js",name:"main",src:"dev/vite/main.tsx",isEntry:true,css:["assets/main-BDsRycsc.css"]}};});var bu,ly,cy,Uo=I(()=>{bu=(p=>(p.DISABLE_FOREIGN_KEYS="disable_foreign_keys",p.ENABLE_FOREIGN_KEYS="enable_foreign_keys",p.BEGIN_TRANSACTION="begin_transaction",p.COMMIT_TRANSACTION="commit_transaction",p.CREATE_TABLE="create_table",p.ADD_COLUMN="add_column",p.DROP_COLUMN="drop_column",p.ADD_INDEX="add_index",p.DROP_INDEX="drop_index",p.DROP_TABLE="drop_table",p.RENAME_TABLE="rename_table",p.COPY_DATA="copy_data",p.CREATE_TRIGGER="create_trigger",p))(bu||{}),ly=class extends Error{constructor(n){super(`Migration would cause data loss:
21
21
  ${n.map(r=>` - ${r.table}: ${r.reason}`).join(`
22
- `)}`);this.warnings=n;this.name="DataLossError";}},Ky=class extends Error{constructor(n,r,s){super(`Migration failed at step ${n}: ${s.message}
23
- SQL: ${r}`);this.stepIndex=n;this.sql=r;this.cause=s;this.name="MigrationError";}};});var nt,Si=N(()=>{nt=class t{constructor(e){this.data=e;}appliesTo(e){return this.data.command==="ALL"||this.data.command===e}appliesToRole(e){return this.data.roles.length===0||this.data.roles.includes(e)}toJSON(){return this.data}static fromJSON(e){return new t(e)}};});var Ir,gf=N(()=>{sr();Ir=class{makeIndexKey(e){return `${e.table}:${e.name}:${e.unique}:${e.columns.join(",")}`}makeForeignKeyKey(e){return `${e.table}:${e.column}:${e.ref_table}:${e.ref_column}`}diff(e,n){let r=[],s=[],i=[],o=[],a=new Set(e.tables.map(m=>m.name)),l=new Set(n.tables.map(m=>m.name));for(let m of n.tables)a.has(m.name)||r.push({type:"added",name:m.name,sql:m.sql});for(let m of e.tables)l.has(m.name)||r.push({type:"removed",name:m.name});for(let m of e.tables){let h=n.tables.find(_=>_.name===m.name);if(!h)continue;let y=dc(m.sql),S=dc(h.sql);y!==S&&r.push({type:"modified",name:m.name,sql:h.sql});}let c=e.tables.filter(m=>l.has(m.name));for(let m of c){let h=e.columns.filter(w=>w.table===m.name),y=n.columns.filter(w=>w.table===m.name),S=new Map(h.map(w=>[w.name,w])),_=new Map(y.map(w=>[w.name,w]));for(let[w,x]of _)S.has(w)||s.push({type:"added",table:m.name,name:w,column:x});for(let[w]of S)_.has(w)||s.push({type:"removed",table:m.name,name:w});for(let[w,x]of S){let E=_.get(w);if(!E)continue;let T={};pc(x.type)!==pc(E.type)&&(T.type={from:x.type,to:E.type}),x.nullable!==E.nullable&&(T.nullable={from:x.nullable,to:E.nullable}),mc(x.default_value)!==mc(E.default_value)&&(T.default_value={from:x.default_value,to:E.default_value}),Object.keys(T).length>0&&s.push({type:"modified",table:m.name,name:w,changes:T});}}let u=new Map(e.indexes.map(m=>[this.makeIndexKey(m),m])),f=new Map(n.indexes.map(m=>[this.makeIndexKey(m),m]));for(let[m,h]of f)u.has(m)||i.push({type:"added",...h});for(let[m,h]of u)f.has(m)||i.push({type:"removed",...h});let p=new Map(e.foreign_keys.map(m=>[this.makeForeignKeyKey(m),m])),d=new Map(n.foreign_keys.map(m=>[this.makeForeignKeyKey(m),m]));for(let[m,h]of d)p.has(m)||o.push({type:"added",...h});for(let[m,h]of p)d.has(m)||o.push({type:"removed",...h});let g=r.length>0||s.length>0||i.length>0||o.length>0;return {tables:r,columns:s,indexes:i,foreign_keys:o,has_changes:g}}};});var gv,Dr,yf=N(()=>{_a();rr();gv=["CURRENT_TIMESTAMP","CURRENT_TIME","CURRENT_DATE"],Dr=class{plan(e,n,r,s){if(!e.has_changes)return {steps:[],warnings:[],unsafe:false};let i=[],o=[];i.push({sql:"PRAGMA foreign_keys=OFF;",description:"Disable foreign key checks",type:"disable_foreign_keys"}),i.push({sql:"BEGIN;",description:"Begin transaction",type:"begin_transaction"});for(let f of e.tables.filter(p=>p.type==="added")){i.push({sql:`${f.sql};`,description:`CREATE TABLE ${I(f.name)}`,type:"create_table"});let p=r.indexes.filter(d=>d.table===f.name);for(let d of p){let g=d.unique?"UNIQUE ":"",m=d.columns.map(h=>I(h)).join(", ");i.push({sql:`CREATE ${g}INDEX ${I(d.name)} ON ${I(f.name)} (${m});`,description:`Create index ${I(d.name)} on ${I(f.name)}`,type:"add_index"});}}let a=new Set(n.tables.map(f=>f.name)),l=new Set(r.tables.map(f=>f.name)),c=new Set(e.tables.filter(f=>f.type==="modified").map(f=>f.name)),u=[...a].filter(f=>l.has(f));for(let f of u){if(!(c.has(f)||e.columns.some(m=>m.table===f)||e.indexes.some(m=>m.table===f)||e.foreign_keys.some(m=>m.table===f)))continue;let{canAlter:d,addedCols:g}=this.canSimpleAlter(f,e,r);if(d){for(let y of g)i.push({sql:`ALTER TABLE ${I(f)} ADD COLUMN ${this.columnDef(y)};`,description:`Add column ${I(y.name)} to ${I(f)}`,type:"add_column"});let m=e.indexes.filter(y=>y.table===f&&y.type==="added"),h=e.indexes.filter(y=>y.table===f&&y.type==="removed");for(let y of h)i.push({sql:`DROP INDEX IF EXISTS ${I(y.name)};`,description:`Drop index ${I(y.name)}`,type:"drop_index"});for(let y of m){let S=y.unique?"UNIQUE ":"",_=y.columns.map(w=>I(w)).join(", ");i.push({sql:`CREATE ${S}INDEX ${I(y.name)} ON ${I(f)} (${_});`,description:`Create index ${I(y.name)} on ${I(f)}`,type:"add_index"});}}else {let m=this.rebuildTable(f,n,r,e);i.push(...m.steps),o.push(...m.warnings);}}for(let f of e.tables.filter(p=>p.type==="removed"))i.push({sql:`DROP TABLE ${I(f.name)};`,description:`Drop table ${I(f.name)}`,type:"drop_table"}),o.push({table:f.name,reason:"table will be dropped"});return i.push({sql:"COMMIT;",description:"Commit transaction",type:"commit_transaction"}),i.push({sql:"PRAGMA foreign_keys=ON;",description:"Re-enable foreign key checks",type:"enable_foreign_keys"}),{steps:i,warnings:o,unsafe:o.length>0}}rebuildTable(e,n,r,s){let i=[],o=[],a=r.tables.find(y=>y.name===e);if(!a)return {steps:i,warnings:o};let l=`_${e}_migrate_new`,c=a.sql.replace(new RegExp(`(CREATE\\s+TABLE\\s+)(?:"${e}"|${e})`,"i"),`$1${I(l)}`);i.push({sql:`${c};`,description:`Create temporary table ${I(l)}`,type:"create_table"});let u=n.columns.filter(y=>y.table===e).map(y=>y.name),f=r.columns.filter(y=>y.table===e).map(y=>y.name),p=u.filter(y=>f.includes(y));if(p.length>0){let y=p.map(S=>I(S)).join(", ");i.push({sql:`INSERT INTO ${I(l)} (${y})
22
+ `)}`);this.warnings=n;this.name="DataLossError";}},cy=class extends Error{constructor(n,r,s){super(`Migration failed at step ${n}: ${s.message}
23
+ SQL: ${r}`);this.stepIndex=n;this.sql=r;this.cause=s;this.name="MigrationError";}};});var Ge,Ks=I(()=>{Ge=class t{constructor(e){this.data=e;}appliesTo(e){return this.data.command==="ALL"||this.data.command===e}appliesToRole(e){return this.data.roles.length===0||this.data.roles.includes(e)}toJSON(){return this.data}static fromJSON(e){return new t(e)}};});var lr,Eu=I(()=>{Un();lr=class{makeIndexKey(e){return `${e.table}:${e.name}:${e.unique}:${e.columns.join(",")}`}makeForeignKeyKey(e){return `${e.table}:${e.column}:${e.ref_table}:${e.ref_column}`}diff(e,n){let r=[],s=[],i=[],o=[],a=new Set(e.tables.map(m=>m.name)),l=new Set(n.tables.map(m=>m.name));for(let m of n.tables)a.has(m.name)||r.push({type:"added",name:m.name,sql:m.sql});for(let m of e.tables)l.has(m.name)||r.push({type:"removed",name:m.name});for(let m of e.tables){let h=n.tables.find(S=>S.name===m.name);if(!h)continue;let y=Cl(m.sql),w=Cl(h.sql);y!==w&&r.push({type:"modified",name:m.name,sql:h.sql});}let c=e.tables.filter(m=>l.has(m.name));for(let m of c){let h=e.columns.filter(b=>b.table===m.name),y=n.columns.filter(b=>b.table===m.name),w=new Map(h.map(b=>[b.name,b])),S=new Map(y.map(b=>[b.name,b]));for(let[b,_]of S)w.has(b)||s.push({type:"added",table:m.name,name:b,column:_});for(let[b]of w)S.has(b)||s.push({type:"removed",table:m.name,name:b});for(let[b,_]of w){let E=S.get(b);if(!E)continue;let x={};Rl(_.type)!==Rl(E.type)&&(x.type={from:_.type,to:E.type}),_.nullable!==E.nullable&&(x.nullable={from:_.nullable,to:E.nullable}),kl(_.default_value)!==kl(E.default_value)&&(x.default_value={from:_.default_value,to:E.default_value}),Object.keys(x).length>0&&s.push({type:"modified",table:m.name,name:b,changes:x});}}let f=new Map(e.indexes.map(m=>[this.makeIndexKey(m),m])),u=new Map(n.indexes.map(m=>[this.makeIndexKey(m),m]));for(let[m,h]of u)f.has(m)||i.push({type:"added",...h});for(let[m,h]of f)u.has(m)||i.push({type:"removed",...h});let d=new Map(e.foreign_keys.map(m=>[this.makeForeignKeyKey(m),m])),p=new Map(n.foreign_keys.map(m=>[this.makeForeignKeyKey(m),m]));for(let[m,h]of p)d.has(m)||o.push({type:"added",...h});for(let[m,h]of d)p.has(m)||o.push({type:"removed",...h});let g=r.length>0||s.length>0||i.length>0||o.length>0;return {tables:r,columns:s,indexes:i,foreign_keys:o,has_changes:g}}};});var aC,cr,xu=I(()=>{Uo();Fn();aC=["CURRENT_TIMESTAMP","CURRENT_TIME","CURRENT_DATE"],cr=class{plan(e,n,r,s){if(!e.has_changes)return {steps:[],warnings:[],unsafe:false};let i=[],o=[];i.push({sql:"PRAGMA foreign_keys=OFF;",description:"Disable foreign key checks",type:"disable_foreign_keys"}),i.push({sql:"BEGIN;",description:"Begin transaction",type:"begin_transaction"});for(let u of e.tables.filter(d=>d.type==="added")){i.push({sql:`${u.sql};`,description:`CREATE TABLE ${N(u.name)}`,type:"create_table"});let d=r.indexes.filter(p=>p.table===u.name);for(let p of d){let g=p.unique?"UNIQUE ":"",m=p.columns.map(h=>N(h)).join(", ");i.push({sql:`CREATE ${g}INDEX ${N(p.name)} ON ${N(u.name)} (${m});`,description:`Create index ${N(p.name)} on ${N(u.name)}`,type:"add_index"});}}let a=new Set(n.tables.map(u=>u.name)),l=new Set(r.tables.map(u=>u.name)),c=new Set(e.tables.filter(u=>u.type==="modified").map(u=>u.name)),f=[...a].filter(u=>l.has(u));for(let u of f){if(!(c.has(u)||e.columns.some(m=>m.table===u)||e.indexes.some(m=>m.table===u)||e.foreign_keys.some(m=>m.table===u)))continue;let{canAlter:p,addedCols:g}=this.canSimpleAlter(u,e,r);if(p){for(let y of g)i.push({sql:`ALTER TABLE ${N(u)} ADD COLUMN ${this.columnDef(y)};`,description:`Add column ${N(y.name)} to ${N(u)}`,type:"add_column"});let m=e.indexes.filter(y=>y.table===u&&y.type==="added"),h=e.indexes.filter(y=>y.table===u&&y.type==="removed");for(let y of h)i.push({sql:`DROP INDEX IF EXISTS ${N(y.name)};`,description:`Drop index ${N(y.name)}`,type:"drop_index"});for(let y of m){let w=y.unique?"UNIQUE ":"",S=y.columns.map(b=>N(b)).join(", ");i.push({sql:`CREATE ${w}INDEX ${N(y.name)} ON ${N(u)} (${S});`,description:`Create index ${N(y.name)} on ${N(u)}`,type:"add_index"});}}else {let m=this.rebuildTable(u,n,r,e);i.push(...m.steps),o.push(...m.warnings);}}for(let u of e.tables.filter(d=>d.type==="removed"))i.push({sql:`DROP TABLE ${N(u.name)};`,description:`Drop table ${N(u.name)}`,type:"drop_table"}),o.push({table:u.name,reason:"table will be dropped"});return i.push({sql:"COMMIT;",description:"Commit transaction",type:"commit_transaction"}),i.push({sql:"PRAGMA foreign_keys=ON;",description:"Re-enable foreign key checks",type:"enable_foreign_keys"}),{steps:i,warnings:o,unsafe:o.length>0}}rebuildTable(e,n,r,s){let i=[],o=[],a=r.tables.find(y=>y.name===e);if(!a)return {steps:i,warnings:o};let l=`_${e}_migrate_new`,c=a.sql.replace(new RegExp(`(CREATE\\s+TABLE\\s+)(?:"${e}"|${e})`,"i"),`$1${N(l)}`);i.push({sql:`${c};`,description:`Create temporary table ${N(l)}`,type:"create_table"});let f=n.columns.filter(y=>y.table===e).map(y=>y.name),u=r.columns.filter(y=>y.table===e).map(y=>y.name),d=f.filter(y=>u.includes(y));if(d.length>0){let y=d.map(w=>N(w)).join(", ");i.push({sql:`INSERT INTO ${N(l)} (${y})
24
24
  SELECT ${y}
25
- FROM ${I(e)};`,description:`Copy data from ${I(e)} to ${I(l)}`,type:"copy_data"});}i.push({sql:`DROP TABLE ${I(e)};`,description:`Drop old table ${I(e)}`,type:"drop_table"}),i.push({sql:`ALTER TABLE ${I(l)} RENAME TO ${I(e)};`,description:`Rename ${I(l)} to ${I(e)}`,type:"rename_table"});let d=r.indexes.filter(y=>y.table===e);for(let y of d){let S=y.unique?"UNIQUE ":"",_=y.columns.map(w=>I(w)).join(", ");i.push({sql:`CREATE ${S}INDEX ${I(y.name)} ON ${I(e)} (${_});`,description:`Recreate index ${I(y.name)} on ${I(e)}`,type:"add_index"});}let g=r.triggers?.filter(y=>y.table===e)??[];for(let y of g)i.push({sql:`${y.sql};`,description:`Recreate trigger ${I(y.name)} on ${I(e)}`,type:"create_trigger"});let m=s.columns.filter(y=>y.table===e&&y.type==="removed");for(let y of m)o.push({table:e,reason:`column "${y.name}" will be dropped`});let h=s.columns.filter(y=>y.table===e&&y.type==="modified");for(let y of h)y.changes?.type&&o.push({table:e,reason:`column "${y.name}" type changes from ${y.changes.type.from} to ${y.changes.type.to}`}),y.changes?.nullable&&!y.changes.nullable.to&&o.push({table:e,reason:`column "${y.name}" becomes NOT NULL`});return {steps:i,warnings:o}}canSimpleAlter(e,n,r){let s=n.columns.filter(f=>f.table===e),i=s.filter(f=>f.type==="added"),o=s.filter(f=>f.type==="removed"),a=s.filter(f=>f.type==="modified"),l=n.foreign_keys.some(f=>f.table===e);if(o.length>0||a.length>0||l)return {canAlter:false,addedCols:i};let c=r.tables.find(f=>f.name===e);return c&&/\bCHECK\s*\(/i.test(c.sql)?{canAlter:false,addedCols:i}:{canAlter:i.every(f=>{let p=f.column;return this.hasNonConstantDefault(p.default_value)?false:p.nullable||p.default_value!=null})&&i.length>0,addedCols:i}}hasNonConstantDefault(e){if(e==null)return false;let n=e.trim().toUpperCase();return gv.includes(n)}columnDef(e){let n=e.column,r=`${I(n.name)} ${n.type||"TEXT"}`;return n.nullable||(r+=" NOT NULL"),n.default_value!=null&&(r+=` DEFAULT ${n.default_value}`),r}};});async function Lr(t){let{parse:e}=await import('pgsql-parser');return e(t)}var cb=N(()=>{});function _i(t){if("String"in t)return t.String.sval}function an(t){return t.map(_i).filter(e=>e!=null)}function Ln(t){return t==null?[]:t.List!==void 0?t.List.items||[]:Array.isArray(t)?t:[t]}function Aa(t){return QuoteUtils.quoteIdentifier(t)}function Fr(t){return Object.keys(t)[0]}function ub(t){if("A_Const"in t){if(t.A_Const.ival)return t.A_Const.ival.ival;if(t.A_Const.fval)return t.A_Const.fval.fval;if(t.A_Const.sval)return t.A_Const.sval.sval;if(t.A_Const.boolval)return t.A_Const.boolval.boolval;if(t.A_Const.isnull)return null}}var Fn=N(()=>{});function pb(t){let e=t.toLowerCase().trim();if(e.startsWith("_")||e.endsWith("[]"))return "TEXT";let n=vv[e];if(!n)throw new Mn(`Unsupported PostgreSQL type: "${t}"`);return n}function ka(t){let e=t.toLowerCase();return ["serial","serial4","bigserial","serial8","smallserial","serial2"].includes(e)}function $a(t){let e=t.toLowerCase();return ["varchar","character varying","char","character","bpchar"].includes(e)}function Oa(t){let e=t.toLowerCase();return ["numeric","decimal"].includes(e)}var Mn,F,vv,fb,Av,Pa,Mr=N(()=>{Fn();Mn=class extends Error{},F=class extends Mn{constructor(n,r){super(r??`Unsupported node type: ${Fr(n)}`);this.node=n;}},vv={int2:"INTEGER",smallint:"INTEGER",int4:"INTEGER",integer:"INTEGER",int:"INTEGER",int8:"INTEGER",bigint:"INTEGER",serial:"INTEGER",serial4:"INTEGER",bigserial:"INTEGER",serial8:"INTEGER",smallserial:"INTEGER",serial2:"INTEGER",float4:"REAL",real:"REAL",float8:"REAL","double precision":"REAL",numeric:"REAL",decimal:"REAL",text:"TEXT",varchar:"TEXT","character varying":"TEXT",char:"TEXT",character:"TEXT",bpchar:"TEXT",name:"TEXT",bytea:"BLOB",bool:"INTEGER",boolean:"INTEGER",date:"TEXT",time:"TEXT","time without time zone":"TEXT",timetz:"TEXT","time with time zone":"TEXT",timestamp:"TEXT","timestamp without time zone":"TEXT",timestamptz:"TEXT","timestamp with time zone":"TEXT",interval:"TEXT",json:"TEXT",jsonb:"TEXT",uuid:"TEXT",inet:"TEXT"},fb=["<",">","<=",">=","=","<>","!=","+","-","*","/","%","&","|","<<",">>","||","BETWEEN","NOT BETWEEN","IN","NOT IN","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS TRUE","IS NOT TRUE","IS FALSE","IS NOT FALSE","IS UNKNOWN","IS NOT UNKNOWN","AND","OR","NOT","->>"];Av={CreateEnumStmt:{react:"ignore"},CreateDomainStmt:{react:"warn"},CreateSeqStmt:{react:"ignore"},AlterSeqStmt:{react:"ignore"},CreateSchemaStmt:{react:"warn"},CreatePolicyStmt:{react:"ignore"},AlterPolicyStmt:{react:"ignore"},PartitionElem:{react:"error"},PartitionCmd:{react:"error"},VariableSetStmt:{react:"ignore"},CompositeTypeStmt:{react:"error"},AlterEnumStmt:{react:"error"},AlterObjectSchemaStmt:{react:"error"},AlterOwnerStmt:{react:"error"},AlterTypeStmt:{react:"error"},AlterFunctionStmt:{react:"error"},AlterDefaultPrivilegesStmt:{react:"error"},GrantStmt:{react:"error"},GrantRoleStmt:{react:"error"},CopyStmt:{react:"error"},CreateCastStmt:{react:"error"},AlterOpFamilyStmt:{react:"error"},AlterOperatorStmt:{react:"error"},TruncateStmt:{react:"error"},A_Indirection:{react:"error"},XmlExpr:{react:"error"},XmlSerialize:{react:"error"},RangeTableSample:{react:"error"},GroupingSet:{react:"error"}},Pa=new Map(Object.entries(Av));});var Na,db=N(()=>{Mr();Fn();Na=class{constructor(e){this.ast=e;this.result=[...this.walk(this.ast,[],{trackPaths:["returningList"]})];}result=[];*walk(e=this.ast,n=[],r={}){if(!e||typeof e!="object")return;let{trackPaths:s=[]}=r;if(Array.isArray(e)){for(let o=0;o<e.length;o++)yield*this.walk(e[o],n,r);return}let i=Object.keys(e);if(i.length===1&&i[0][0]>="A"&&i[0][0]<="Z"){let o=i[0];yield {node:e,path:n},yield*this.walk(e[o],[...n,o],r);}else for(let[o,a]of Object.entries(e))if(a&&typeof a=="object"){let l=s.includes(o)?[...n,o]:n;yield*this.walk(a,l,r);}}containsUnsupportedNode(){for(let{node:e}of this.result){let n=Fr(e),r=Pa.get(n);if(r&&r.react==="error")return true}}hasFuncCall(){for(let{node:e}of this.result)if("FuncCall"in e)return true;return false}getFuncCalls(){return Array.from(this.result).map(({node:e})=>e).filter(e=>"FuncCall"in e).map(e=>e.FuncCall)}getFuncCallNames(){return this.getFuncCalls().flatMap(e=>e.funcname?.map(n=>n.String?.sval||n.String?.str))}hasSqlValueFunction(){for(let{node:e}of this.result)if("SQLValueFunction"in e)return true;return false}getSqlValueFunctions(){return Array.from(this.result).map(({node:e})=>e).filter(e=>"SQLValueFunction"in e).map(e=>e.SQLValueFunction)}getSqlValueFunctionNames(){return this.getSqlValueFunctions().map(e=>e.op)}hasUnsafeStar(){let e=this.result.filter(({node:n})=>"A_Star"in n);if(e.length===0)return false;for(let{path:n}of e)if(!n.includes("SelectStmt")&&!n.includes("returningList"))return true;return false}getRelationDefinitions(){return this.result.filter(({node:n})=>"CreateStmt"in n).map(({node:n})=>n.CreateStmt).map(n=>({relation:{relname:n.relation?.relname??"",inh:n.relation?.inh,relpersistence:n.relation?.relpersistence},columns:n.tableElts?.map(r=>{let s=r.ColumnDef?.typeName?.names?.map(o=>"String"in o?o.String.sval:""),i=s?.some(o=>o.toLowerCase().includes("pg_catalog"));return {name:r.ColumnDef?.colname??"",is_local:r.ColumnDef?.is_local,pg_catalog:i,type:s?.filter(o=>!o.toLowerCase().includes("pg_catalog"))[0]??"",types:s,constraints:r.ColumnDef?.constraints}})}))}getRelationColumnTypes(){return {has_non_pg_catalog_types:this.getRelationDefinitions().some(e=>e.columns?.some(n=>!n.pg_catalog)),types:Array.from(new Set(this.getRelationDefinitions().flatMap(e=>e.columns?.map(n=>n.type))))}}};});var kv,$v,Ov,Pv,Ur,Ia,mb=N(()=>{Mr();kv=["DECLARE","IF","ELSIF","ELSE","LOOP","WHILE","FOR","FOREACH","EXCEPTION","RAISE","PERFORM","EXECUTE","SELECT"],$v=/^NEW\.(\w+)\s*(?::=|=)\s*(.+)$/is,Ov=/^RETURN\s+(NEW|OLD)$/i,Pv=/^(INSERT|UPDATE|DELETE)\b/i,Ur=class extends Mn{constructor(n,r,s){super(s??`Unsupported PL/pgSQL: ${n}`);this.hint=n;this.body=r;}},Ia=class{parse(e){let n=this.extractBlock(e),r=this.splitStatements(n),s=[],i=null;for(let o of r){let a=o.trim();if(!a)continue;this.rejectUnsupported(a);let l=a.match(Ov);if(l){i=l[1].toUpperCase(),s.push({type:"return",value:i});continue}let c=a.match($v);if(c){s.push({type:"assignment",column:c[1],expression:c[2].trim()});continue}if(Pv.test(a)){s.push({type:"dml",sql:a});continue}throw new Ur(`"${a.substring(0,80)}" is not translatable to SQLite`,n)}if(!i)throw new Mn("Trigger function body must end with RETURN NEW or RETURN OLD");return {statements:s,returnValue:i}}extractBlock(e){let n=e.trim(),r=n.toUpperCase();if(/^\s*DECLARE\b/i.test(n))throw new Ur('"DECLARE" is not translatable to SQLite',e);let s=r.indexOf("BEGIN"),i=r.lastIndexOf("END");if(s===-1||i===-1||i<=s)throw new Ur("Expected BEGIN ... END block in trigger function body",e);return n.slice(s+5,i).trim()}splitStatements(e){let n=[],r="",s=0,i=false,o="";for(let l=0;l<e.length;l++){let c=e[l];if(i){r+=c,c===o&&(l+1<e.length&&e[l+1]===o?r+=e[++l]:i=false);continue}if(c==="'"||c==='"'){i=true,o=c,r+=c;continue}if(c==="("){s++,r+=c;continue}if(c===")"){s--,r+=c;continue}if(c===";"&&s===0){n.push(r.trim()),r="";continue}r+=c;}let a=r.trim();return a&&n.push(a),n}rejectUnsupported(e){let n=e.match(/^(\w+)/)?.[1]?.toUpperCase();if(n&&kv.includes(n))throw new Ur(`"${n}" is not translatable to SQLite`,e)}};});function Lv(t){let e=t?.GrantStmt??t;return e?.is_grant!==true?false:e.targtype==="ACL_TARGET_ALL_IN_SCHEMA"?e.objtype==="OBJECT_TABLE"||e.objtype==="OBJECT_SEQUENCE":e.targtype==="ACL_TARGET_OBJECT"&&jv.has(e.objtype)}var jv,Da,hb=N(()=>{Mr();Fn();Fn();db();Rs();mb();_a();gf();yf();rr();Hc();Kc();jv=new Set(["OBJECT_TABLE","OBJECT_VIEW","OBJECT_SEQUENCE","OBJECT_SCHEMA"]);Da=class extends Deparser{enums;schemaHandling;warnings=[];helper;config;triggerFunctions=new Map;plpgsqlParser=new Ia;introspection;functionResolution;serialColumns;constructor(e,{enums:n,schemaHandling:r,introspection:s,serialColumns:i,...o}={}){super(e,o),this.schemaHandling=r??"default",this.enums=n??new Map,this.helper=new Na(e),this.config=o,this.introspection=s,this.functionResolution=o?.functionResolution??"translate",this.serialColumns=i??new WeakSet;}visit(e,n){let r=Fr(e);if(r==="GrantStmt"&&Lv(e))return "";let s=Pa.get(r);if(s){if(s.react==="error")throw new F({[r]:e},`Unsupported node type: ${r}`);return s.react==="warn"&&this.warnings.push({type:r,node:e}),""}return super.visit(e,n)}deparse(e,n){if(e==null)return null;if(!n){let r=new SqlFormatter;n=new DeparserContext({formatter:r});}return typeof e=="number"||e instanceof Number?e.toString():this.visit(e,n)}RawStmt(e,n){if(!e.stmt||e.stmt.CommentStmt)return "";let r=this.deparse(e.stmt,n);return !r||r.length===0?"":e.stmt_len?r+";":r}RangeVar(e,n){this.ensureRelation(e);let r=this.effectiveSchema(e.schemaname),s=e.relname,i=this.quoteBareIfNeeded(s);r&&(this.schemaHandling==="prefix"?i=`${r}__${s}`:i=`"${r}.${s}"`);let o=e.alias?" "+this.Alias(e.alias,n):"";return i+o}getRelationName(e){this.ensureRelation(e);let n=this.effectiveSchema(e.schemaname),r=e.relname;return n?this.schemaHandling==="prefix"?`${n}__${r}`:`${n}.${r}`:r}quoteBareIfNeeded(e){return /^[A-Za-z_][A-Za-z0-9_]*$/.test(e)?e:`"${e.replace(/"/g,'""')}"`}effectiveSchema(e){if(e){if(this.config.forceDefaultSchema||this.schemaHandling!=="default")return e;if(e!=="public")return e}}ensureRelation(e){let n=this.config.forceDefaultSchema;n&&(!e||typeof e!="object"||n.length===0||e.schemaname||(e.schemaname=n));}CreateStmt(e,n){if(e.inhRelations&&e.inhRelations.length>0)throw new F({CreateStmt:e},"Inheritance is not supported in SQLite");if(e.ofTypename!==void 0)throw new F({CreateStmt:e},"Typed tables (CREATE TABLE ... OF type_name) are not supported. Define columns directly in the CREATE TABLE statement instead.");if(e.options&&e.options.length>0&&(e.options=void 0),!e.tableElts||e.tableElts.length===0)throw new F({CreateStmt:e},"Empty tables are not supported in SQLite. Define at least one column.");return e.accessMethod&&(e.accessMethod=void 0),super.CreateStmt(e,n)+" STRICT"}TableLikeClause(e,n){throw new F({TableLikeClause:e},"CREATE TABLE ... (LIKE ...) is not supported in SQLite. Define the table columns explicitly instead.")}DefElem(e,n){if(["oids","fillfactor",/^autovacuum_/i,"toast_tuple_target","parallel_workers","user_catalog_table"].some(i=>wo(e.defname??"",i)))return "";let s=super.DefElem(e,n);throw new F({DefElem:e},`DefElem "${e.defname}" (${s}) not supported`)}TypeName(e,n){if(!e.names)return "";let r=e.names.map(i=>i.String?i.String.sval||i.String.str:"").filter(Boolean);if(r.length===0)return "";let s=r.length===2&&r[0]==="pg_catalog"?r[1]:r.join(".");return e.arrayBounds&&e.arrayBounds.length>0||this.enums.has(s.toLowerCase())?"TEXT":pb(s)}ColumnDef(e,n){let r=[],s=e.colname;s&&r.push(this.quoteIfNeeded(s));let i=false,o=false,a=null,l=null,c=null,u=false;if(e.typeName){let f=e.typeName.names?.map(g=>g.String?.sval||g.String?.str).filter(Boolean);c=f&&(f.length===2&&f[0]==="pg_catalog"?f[1]:f[0]),i=!!(c&&ka(c))||this.serialColumns.has(e),u=!!(e.typeName.arrayBounds&&e.typeName.arrayBounds.length>0);let p=Array.isArray(e.typeName.typmods)?e.typeName.typmods:[],d=g=>p[g]?.A_Const?.ival?.ival??p[g]?.A_Const?.val?.ival?.ival;if(c&&$a(c)&&p.length>0){let g=d(0);typeof g=="number"&&g>0&&(a={maxLen:g});}if(c&&Oa(c)&&p.length>=2){let g=d(0),m=d(1);typeof g=="number"&&typeof m=="number"&&g>0&&m>=0&&(l={precision:g,scale:m});}if(e.constraints){let g=Array.isArray(e.constraints)?e.constraints:[];o=g.some(m=>m.Constraint?.contype==="CONSTR_PRIMARY"),g.some(m=>m.Constraint?.contype==="CONSTR_IDENTITY")&&(i=true);}r.push(this.TypeName(e.typeName,n));}if(e.constraints){let f=Array.isArray(e.constraints)?e.constraints:[],p=f.map(g=>this.visit(g,n));r.push(...p.filter(Boolean));let d=f.some(g=>g.Constraint?.contype==="CONSTR_CHECK");i&&o&&!d?r.push("AUTOINCREMENT"):i&&!o&&this.warnings.push({type:"ColumnDef",node:{ColumnDef:e},message:`Column "${s}" is serial/auto-increment but not the primary key; SQLite can't auto-increment a non-primary-key column, so it becomes a plain INTEGER (no auto-increment).`});}if(s&&c){let f={isArray:u};a&&(f.lengthConstraint=a.maxLen),l&&(f.numericPrecision=l);let p=this.enums.get(c.toLowerCase());p&&(f.enumValues=p);let m=ut({schema:"public",table:"",column:s,pgTypeName:c,nullable:true,defaultValue:null,defaultFn:null,isPrimaryKey:o,isUnique:false,isSerial:i},f).checkConstraint();m&&r.push(`CHECK (${m})`);}return r.join(" ")}Constraint(e,n){let r=e.contype;if(r==="CONSTR_IDENTITY"||r==="CONSTR_ATTR_DEFERRABLE"||r==="CONSTR_ATTR_NOT_DEFERRABLE"||r==="CONSTR_ATTR_DEFERRED"||r==="CONSTR_ATTR_IMMEDIATE")return "";if(r==="CONSTR_NULL")return "NULL";if(r==="CONSTR_NOTNULL")return "NOT NULL";if(r==="CONSTR_DEFAULT"&&e.raw_expr){let s=this.visit(e.raw_expr,n);return s.includes("(")&&!s.startsWith("(")?`DEFAULT (${s})`:`DEFAULT ${s}`}if(r==="CONSTR_CHECK"&&e.raw_expr){let s=[];e.conname&&s.push("CONSTRAINT",Aa(e.conname)),s.push("CHECK");let i=this.visit(e.raw_expr,n);return s.push(`(${i})`),s.join(" ")}if(r==="CONSTR_PRIMARY")return e.keys&&e.keys.length>0?`PRIMARY KEY (${Ln(e.keys).map(i=>this.visit(i,n)).join(", ")})`:"PRIMARY KEY";if(r==="CONSTR_UNIQUE")return e.keys&&e.keys.length>0?`UNIQUE (${Ln(e.keys).map(i=>this.visit(i,n)).join(", ")})`:"UNIQUE";if(r==="CONSTR_FOREIGN")return super.Constraint(e,n).replace(/FOREIGN\s+KEY\s+REFERENCES/gi,"REFERENCES");if(r==="CONSTR_GENERATED"&&e.raw_expr)return `GENERATED ALWAYS AS (${this.visit(e.raw_expr,n)}) STORED`;if(r==="CONSTR_EXCLUSION")throw new F({Constraint:e},"EXCLUSION constraints are not supported in SQLite");return ""}FuncCall(e,n){let s=(e.funcname||[]).map(c=>c.String?.sval||c.String?.str).filter(Boolean);if(s.length===0)throw new Error("Function call has no name");let i=s[s.length-1].toLowerCase();if(i==="extract"&&e.args&&e.args.length>=2){let c=e.args[0];if((c?.A_Const?.sval?.sval||c?.String?.sval)==="epoch")return `strftime('%s', ${this.visit(e.args[1],n)})`}let a=(e.args??[]).map(c=>this.visit(c,n));if(e.agg_star)return `${i}(*)`;if(e.agg_distinct)return `${i}(DISTINCT ${a.join(", ")})`;let l=Wc(i,this.functionResolution);if(l){if(l.sqliteExpr!==null){let c=l.sqliteExpr;return c.includes("(")?c:`${c}(${a.join(", ")})`}if(l.jsFn!==null){let c=qo[i];if(c?.sqlite){let u=c.sqlite();return u.includes("(")?u:`${u}(${a.join(", ")})`}}}throw new F({FuncCall:e},`Function call "${i}" not supported`)}SQLValueFunction(e,n){switch(e.op){case "SVFOP_CURRENT_TIMESTAMP":return "datetime('now')";case "SVFOP_CURRENT_DATE":return "date('now')";case "SVFOP_CURRENT_TIME":return "time('now')";default:throw new F({SQLValueFunction:e},`SQLValueFunction "${e.op}" not supported`)}}ResTarget(e,n){if(e.indirection&&e.indirection.length>0)throw new F({ResTarget:e},"Indirections are not supported in SQLite");let r=[];return n.update&&e.name?(r.push(this.quoteIfNeeded(e.name)),r.push("="),e.val&&r.push(this.deparse(e.val,n))):n.insertColumns&&e.name?r.push(this.quoteIfNeeded(e.name)):(e.val&&r.push(this.deparse(e.val,n)),e.name&&r.push(this.Alias({aliasname:e.name},n))),r.join(" ")}A_Expr(e,n){if(["AEXPR_OP_ALL","AEXPR_OP_ANY"].includes(e.kind))throw new F({A_Expr:e},"ALL/ANY/SOME comparison operators are not supported. Use NOT EXISTS or IN instead");if(e.name&&e.name.length>0){if(e.name.length>1)throw new F({A_Expr:e},"Schema-qualified OPERATOR() syntax is not supported in SQLite");let r=e.name[0]?.String?.sval||e.name[0]?.String?.str;if(r){if(!e.lexpr||!e.rexpr)throw new F({A_Expr:e},"A_Expr missing left or right expression");if(!fb.includes(r.toUpperCase()))throw new F({A_Expr:e},`Operator "${r}" is not supported in SQLite`);if(r==="~~"||r==="~~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} LIKE ${i}`}if(r==="!~~"||r==="!~~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} NOT LIKE ${i}`}if(r==="~"||r==="~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} GLOB ${i}`}}}return super.A_Expr(e,n)}IndexStmt(e,n){let r=["CREATE"];e.unique&&r.push("UNIQUE"),r.push("INDEX"),e.if_not_exists&&r.push("IF NOT EXISTS"),e.idxname&&r.push(Aa(e.idxname)),r.push("ON"),e.relation&&r.push(this.RangeVar(e.relation,n));let s=(e.indexParams??[]).map(i=>"IndexElem"in i?this.IndexElem(i.IndexElem,n):this.visit(i,n)).filter(Boolean);return r.push(`(${s.join(", ")})`),r.join(" ")}IndexElem(e,n){let r=[];return e.name?r.push(Aa(e.name)):e.expr&&r.push(`(${this.visit(e.expr,n)})`),e.ordering==="SORTBY_ASC"&&r.push("ASC"),e.ordering==="SORTBY_DESC"&&r.push("DESC"),e.nulls_ordering==="SORTBY_NULLS_FIRST"&&r.push("NULLS FIRST"),e.nulls_ordering==="SORTBY_NULLS_LAST"&&r.push("NULLS LAST"),r.join(" ")}TypeCast(e,n){if(!e.arg||!e.typeName)return super.TypeCast(e,n);if([...this.helper.walk(e)].filter(({node:o})=>"A_Star"in o).length>0)throw new F({TypeCast:e},"A.* in type casts are not supported in SQLite");if(e.typeName.arrayBounds&&e.typeName.arrayBounds.length>0){if("A_Const"in e.arg&&e.arg.A_Const.sval){let o=e.arg.A_Const.sval.sval;if(o.startsWith("{")&&o.endsWith("}")){let a=e.typeName.names?.map(f=>f.String?.sval).filter(Boolean)??[],l=a.length===2&&a[0]==="pg_catalog"?a[1]:a[0],u=["text","varchar","character varying","char","bpchar","name","uuid"].includes(l?.toLowerCase());try{let f=this.parsePgArrayLiteral(o,u);return `'${JSON.stringify(f).replace(/'/g,"''")}'`}catch{}}}return this.visit(e.arg,n)}let s=this.visit(e.arg,n),i=this.TypeName(e.typeName,n);return `CAST(${s} AS ${i})`}A_ArrayExpr(e,n){let r=Ln(e.elements),s=this.tryExtractStaticArray(r);return s!==void 0?`'${JSON.stringify(s).replace(/'/g,"''")}'`:`json_array(${r.map(o=>this.visit(o,n)).join(", ")})`}tryExtractStaticArray(e){let n=[];for(let r of e)if("A_ArrayExpr"in r){let s=Ln(r.A_ArrayExpr.elements),i=this.tryExtractStaticArray(s);if(i===void 0)return;n.push(i);}else if("A_Const"in r){let s=r.A_Const;if(s.isnull)n.push(null);else if(s.ival)n.push(s.ival.ival);else if(s.fval)n.push(parseFloat(s.fval.fval));else if(s.sval)n.push(s.sval.sval);else if("boolval"in s)n.push(s.boolval.boolval===true);else return}else return;return n}parsePgArrayLiteral(e,n){if(!e.startsWith("{")||!e.endsWith("}"))throw new Error("Not a PG array literal");let r=e.slice(1,-1);if(r.length===0)return [];let s=[],i=0;for(;i<r.length;)if(r[i]==="{"){let o=0,a=i;for(;a<r.length;){if(r[a]==="{")o++;else if(r[a]==="}"&&(o--,o===0))break;a++;}s.push(this.parsePgArrayLiteral(r.slice(i,a+1),n)),i=a+1,r[i]===","&&i++;}else if(r[i]==='"'){let o=i+1,a="";for(;o<r.length&&r[o]!=='"';)r[o]==="\\"&&o++,a+=r[o],o++;s.push(a),i=o+1,r[i]===","&&i++;}else {let o=i;for(;o<r.length&&r[o]!==","&&r[o]!=="}";)o++;if(o===i)throw new Error("Malformed PG array literal");let a=r.slice(i,o);if(a==="NULL")s.push(null);else if(n)s.push(a);else {let l=Number(a);s.push(isNaN(l)?a:l);}i=o,r[i]===","&&i++;}return s}BetweenExpr(e,n){return super.A_Expr(e,n)}AlterTableStmt(e,n){let r=e.cmds??[],s=["AT_EnableRowSecurity","AT_ForceRowSecurity"],i=r.filter(u=>"AlterTableCmd"in u&&!s.includes(u.AlterTableCmd.subtype));if(i.length===0)return "";if(!["OBJECT_TABLE","OBJECT_INDEX","OBJECT_VIEW"].includes(e.objtype))throw new F({AlterTableStmt:e},`AlterTableStmt with objtype ${e.objtype} is not supported`);let o=["AT_AddColumn","AT_DropColumn"],a=["AT_AlterColumnType","AT_SetNotNull","AT_DropNotNull","AT_ColumnDefault","AT_AddConstraint","AT_DropConstraint"],l=[],c=[];for(let u of i){let f=u.AlterTableCmd.subtype;if(o.includes(f)){let p={...e,cmds:[u]};l.push(super.AlterTableStmt(p,n));}else if(a.includes(f))c.push(u.AlterTableCmd);else throw new F({AlterTableStmt:e},`AlterTableCmd with subtype ${f} is not supported in SQLite`)}if(c.length>0){let u=this.getRelationName(e.relation);l.push(this.generateRebuildSql(u,c));}return l.join(`;
26
- `)}AlterTableCmd(e,n){if(!["AT_AddColumn","AT_DropColumn"].includes(e.subtype))throw new F({AlterTableCmd:e},`AlterTableCmd with subtype ${e.subtype} is not supported`);return e.subtype==="AT_DropColumn"&&e.behavior?super.AlterTableCmd({...e,behavior:void 0},n):super.AlterTableCmd(e,n)}DefineStmt(e,n){if(e.kind==="OBJECT_AGGREGATE")throw new Error("AGGREGATE definitions are not supported in SQLite");return super.DefineStmt(e,n)}InsertStmt(e,n){if("selectStmt"in e){let s=(e.selectStmt?.SelectStmt?.valuesLists??[]).map(i=>i.List?.items?.map(o=>"SetToDefault"in o));if(s.length===1&&s[0]?.every(i=>i===true))return super.InsertStmt({...e,selectStmt:void 0,cols:void 0},n);if(s.some(i=>i.some(o=>o===true)))throw new F({InsertStmt:e},"Insert with partial DEFAULT values is not supported")}return super.InsertStmt(e,n)}SelectStmt(e,n){if(this.helper.hasUnsafeStar())throw new F({SelectStmt:e},"Row-wise comparison using .* is not supported in SQLite. Expand to explicit per-column comparisons instead.");if(e.intoClause)throw new F({SelectStmt:e},"SELECT ... INTO clause is not supported in SQLite");if(e.distinctClause){let s=Ln(e.distinctClause);if(s.length>0&&Object.keys(s[0]).length>0)throw new F({SelectStmt:e},"DISTINCT ON clause is not supported in SQLite. Use window functions instead.")}if(e.limitOffset&&!e.limitCount)throw new F({SelectStmt:e},"OFFSET without LIMIT is not supported in SQLite");let r=super.SelectStmt(e,n);if(/^SELECT\s+FROM/.test(r))throw new F({SelectStmt:e},"SELECT without a target list is not supported in SQLite");return r}JoinExpr(e,n){return e.alias&&this.Alias(e.alias,n),super.JoinExpr(e,n)}A_Const(e,n){if(e.bsval!==void 0)throw new F({A_Const:e},"Bit string literals are not supported in SQLite");let r=super.A_Const(e,n);return typeof r=="string"&&r.startsWith("E'")?r.substring(2,r.length-1):r}SortBy(e,n){if(e.sortby_dir==="SORTBY_USING"){let r=Ln(e.useOp),s=r[0]?.String?.sval;if(r.length>1||!["<",">"].includes(s??""))throw new F({SortBy:e},"Only `USING <` or `USING >` are supported.");e.sortby_dir=s==="<"?"SORTBY_DESC":"SORTBY_ASC",e.useOp=void 0;}return super.SortBy(e,n)}RangeSubselect(e,n){if(e.lateral)throw new F({RangeSubselect:e},"LATERAL subqueries are not supported in SQLite");return super.RangeSubselect(e,n)}SubLink(e,n){if(["ANY_SUBLINK","ALL_SUBLINK"].includes(e.subLinkType))throw new F({SubLink:e},"ANY/ALL/SOME subqueries are not supported. Use NOT EXISTS or IN instead");if(e.subLinkType==="ARRAY_SUBLINK")throw new F({SubLink:e},"ARRAY subqueries are not supported in SQLite");return super.SubLink(e,n)}LockingClause(e,n){return ""}UpdateStmt(e,n){if(n.parentNodeTypes.includes("SelectStmt"))throw new F({UpdateStmt:e},"UPDATE ... FROM (SELECT ...) is not supported in SQLite");return super.UpdateStmt(e,n)}Alias(e,n){if(e.colnames&&e.colnames.length>0)throw new F({Alias:e},"Aliasing with column names is not supported in SQLite");return `AS "${e.aliasname}"`}CreateFunctionStmt(e,n){let r=e.options??[],s=e.returnType?.names?.map(c=>c.String?.sval).filter(Boolean).join("."),i=r.find(c=>c.DefElem?.defname==="language")?.DefElem?.arg?.String?.sval;if(s!=="trigger"||i!=="plpgsql")throw new F({CreateFunctionStmt:e},"Only trigger functions with LANGUAGE plpgsql are supported");let o=e.funcname?.map(c=>c.String?.sval).filter(Boolean).pop();if(!o)throw new Error("Function has no name");let a=r.find(c=>c.DefElem?.defname==="as")?.DefElem?.arg?.List?.items?.[0]?.String?.sval;if(!a)throw new Error("Function has no body");let l=this.plpgsqlParser.parse(a);return this.triggerFunctions.set(o,l),""}CreateTrigStmt(e,n){let r=e.trigname,s=this.RangeVar(e.relation,n),i=e.funcname?.map(f=>f.String?.sval).filter(Boolean).pop();if(!i)throw new Error(`Trigger "${r}" has no function reference`);let o=this.triggerFunctions.get(i);if(!o)throw new F({CreateTrigStmt:e},`Trigger "${r}" references unknown function "${i}"`);let a=e.timing===2?"BEFORE":e.timing===64?"INSTEAD OF":"AFTER",l=[];if(e.events&4&&l.push("INSERT"),e.events&8&&l.push("DELETE"),e.events&16)if(e.columns?.length){let f=e.columns.map(p=>p.String?.sval).filter(Boolean);l.push(`UPDATE OF ${f.join(", ")}`);}else l.push("UPDATE");let c=l.join(" OR "),u=this.buildTriggerBody(o,s,n);return [`CREATE TRIGGER ${r}`,`${a} ${c} ON ${s}`,"FOR EACH ROW","BEGIN",...u.map(f=>` ${f};`),"END"].join(`
27
- `)}buildTriggerBody(e,n,r){let s=[],i=[];for(let o of e.statements)if(o.type!=="return"){if(o.type==="assignment"){i.push(o);continue}i.length>0&&(s.push(this.buildAssignmentUpdate(i,n,r)),i.length=0),o.type==="dml"&&s.push(this.translateDml(o.sql,r));}return i.length>0&&s.push(this.buildAssignmentUpdate(i,n,r)),s}buildAssignmentUpdate(e,n,r){let s=e.map(i=>{let o=this.translateExpression(i.expression,r);return `${i.column} = ${o}`});return `UPDATE ${n} SET ${s.join(", ")} WHERE rowid = NEW.rowid`}translateExpression(e,n){try{let r=`SELECT ${e}`,s=e.trim().toLowerCase();return s==="now()"||s==="current_timestamp"?"datetime('now')":e}catch{return e}}flattenTriggerTableRef(e,n){let r=this.effectiveSchema(e);return r?this.schemaHandling==="prefix"?`${r}__${n}`:`"${r}.${n}"`:this.quoteBareIfNeeded(n)}translateDml(e,n){let r=/^(\s*)(insert\s+into|update|delete\s+from)\s+(?:"([^"]+)"|(\w+))\s*\.\s*(?:"([^"]+)"|(\w+))/i;return e=e.replace(r,(s,i,o,a,l,c,u)=>`${i}${o} ${this.flattenTriggerTableRef(a??l,c??u)}`),e.replace(/\bnow\(\)/gi,"datetime('now')").replace(/\bcurrent_timestamp\b/gi,"datetime('now')").replace(/\bgen_random_uuid\(\)/gi,this.uuidExpression()).replace(/\buuid_generate_v4\(\)/gi,this.uuidExpression())}uuidExpression(){return "lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))"}NullTest(e,n){if(e.arg?.ColumnRef?.fields?.length>1)throw new F({NullTest:e},"row-level NULL tests are not supported in SQLite");return super.NullTest(e,n)}RenameStmt(e,n){if(!e.renameType)throw new Error("RenameStmt requires renameType");if(e.renameType==="OBJECT_POLICY")return "";let r=["OBJECT_TABLE","OBJECT_VIEW","OBJECT_COLUMN"];if(e.renameType==="OBJECT_COLUMN"&&(e.relationType==="OBJECT_FOREIGN_TABLE"||e.relationType==="OBJECT_VIEW"))throw new F({RenameStmt:e},`RenameStmt with relationType ${e.relationType} is not supported`);if(!r.includes(e.renameType))throw new F({RenameStmt:e},`RenameStmt with renameType ${e.renameType} is not supported in SQLite`);return super.RenameStmt(e,n)}DropStmt(e,n){let r=e.removeType;if(["OBJECT_TABLE","OBJECT_VIEW","OBJECT_INDEX","OBJECT_TRIGGER"].includes(r))return super.DropStmt(e,n);if(["OBJECT_POLICY"].includes(r))return "";throw new F({DropStmt:e},`DROP with removeType ${r} is not supported in SQLite`)}generateRebuildSql(e,n){if(!this.introspection)throw new Error(`ALTER TABLE on "${e}" requires 12-step rebuild but no introspection was provided. Pass introspection in DeparseOptions to enable column type changes, NOT NULL, defaults, and constraint modifications.`);let r=this.buildDesiredSchema(this.introspection,e,n),s=new Ir,i=new Dr,o=s.diff(this.introspection,r);return o.has_changes?i.plan(o,this.introspection,r).steps.filter(l=>!["disable_foreign_keys","begin_transaction","commit_transaction","enable_foreign_keys"].includes(l.type)).map(l=>l.sql).join(`
28
- `):""}buildDesiredSchema(e,n,r){let s={...e,tables:e.tables.map(i=>({...i})),columns:e.columns.map(i=>({...i})),indexes:e.indexes.map(i=>({...i})),foreign_keys:e.foreign_keys.map(i=>({...i})),primary_keys:e.primary_keys.map(i=>({...i})),views:e.views.map(i=>({...i})),triggers:(e.triggers??[]).map(i=>({...i})),check_constraints:e.check_constraints.map(i=>({...i})),unique_constraints:(e.unique_constraints??[]).map(i=>({...i})),comments:(e.comments??[]).map(i=>({...i})),custom_types:e.custom_types.map(i=>({...i}))};for(let i of r){let o=s.columns.findIndex(a=>a.table===n&&a.name===i.name);switch(i.subtype){case "AT_AlterColumnType":{if(o===-1)break;let a=this.extractTypeName(i);a&&(s.columns[o]={...s.columns[o],type:a.toLowerCase()});break}case "AT_SetNotNull":{if(o===-1)break;s.columns[o]={...s.columns[o],nullable:false};break}case "AT_DropNotNull":{if(o===-1)break;s.columns[o]={...s.columns[o],nullable:true};break}case "AT_ColumnDefault":{if(o===-1)break;if(i.def){let a=this.extractDefaultValue(i);s.columns[o]={...s.columns[o],default_value:a};}else s.columns[o]={...s.columns[o],default_value:null};break}case "AT_AddConstraint":case "AT_DropConstraint":{let a=s.tables.findIndex(l=>l.name===n);a!==-1&&(s.tables[a]={...s.tables[a],sql:s.tables[a].sql+" /* modified */"});break}}}return this.rebuildTableSql(s,n),s}rebuildTableSql(e,n){let r=e.tables.findIndex(f=>f.name===n);if(r===-1)return;let s=e.columns.filter(f=>f.table===n),i=e.foreign_keys.filter(f=>f.table===n),o=e.check_constraints.filter(f=>f.table===n),a=s.map(f=>{let p=`${I(f.name)} ${f.type||"TEXT"}`;return f.is_primary_key&&(p+=" PRIMARY KEY"),f.nullable||(p+=" NOT NULL"),f.default_value!=null&&(p+=` DEFAULT ${f.default_value}`),p}),l=i.map(f=>`FOREIGN KEY (${I(f.column)}) REFERENCES ${I(f.ref_table)}(${I(f.ref_column)}) ON UPDATE ${f.on_update} ON DELETE ${f.on_delete}`),c=o.map(f=>`CHECK (${f.expression})`),u=[...a,...l,...c];e.tables[r]={...e.tables[r],sql:`CREATE TABLE ${I(n)} (${u.join(", ")}) STRICT`};}extractTypeName(e){let n=e.def?.ColumnDef;return n?.typeName?.TypeName?(n.typeName.TypeName.names??[]).map(s=>s.String?.sval).filter(Boolean).pop()??null:null}extractDefaultValue(e){return e.def?"Integer"in e.def?String(e.def.Integer.ival):"Float"in e.def?e.def.Float.fval:"String"in e.def?`'${e.def.String.sval}'`:null:null}};});function gb(t){return `${t?.schemaname??"public"}.${t?.relname??""}`}function Fv(t){let e=t?.Constraint;if(!e||e.contype!=="CONSTR_DEFAULT")return false;let n=e.raw_expr?.FuncCall?.funcname;if(!Array.isArray(n))return false;let r=n.map(s=>s.String?.sval??s.String?.str).filter(Boolean);return r[r.length-1]?.toLowerCase()==="nextval"}function Mv(t){return (Array.isArray(t.constraints)?t.constraints:[]).some(n=>n.Constraint?.contype==="CONSTR_IDENTITY")}function yb(t,e){let n=Array.isArray(t.constraints)?t.constraints:[],r=n.filter(s=>!Fv(s));r.length!==n.length?(t.constraints=r,e.add(t)):Mv(t)&&e.add(t);}function Uv(t,e,n){let r=e?.Constraint;if(!r)return false;let s=r.contype;if(s!=="CONSTR_PRIMARY"&&s!=="CONSTR_UNIQUE"&&s!=="CONSTR_FOREIGN")return false;let i=t.tableElts??[];if(s==="CONSTR_PRIMARY"){let o=(r.keys??[]).map(a=>a.String?.sval??a.String?.str).filter(Boolean);if(o.length===1){let a=i.find(l=>"ColumnDef"in l&&l.ColumnDef.colname===o[0]);if(a&&n.has(a.ColumnDef)){let l=Array.isArray(a.ColumnDef.constraints)?a.ColumnDef.constraints:[];return l.push({Constraint:{contype:"CONSTR_PRIMARY"}}),a.ColumnDef.constraints=l,true}}}return i.push(e),t.tableElts=i,true}function bb(t){let e=new WeakSet,n=new Map;for(let r of t.stmts??[]){let s=r.stmt;if(!s||!("CreateStmt"in s))continue;let i=s.CreateStmt;n.set(gb(i.relation),i);for(let o of i.tableElts??[])"ColumnDef"in o&&yb(o.ColumnDef,e);}for(let r of t.stmts??[]){let s=r.stmt;if(!s||!("AlterTableStmt"in s))continue;let i=s.AlterTableStmt,o=n.get(gb(i.relation)),a=i.cmds??[],l=[];for(let c of a){let u=c.AlterTableCmd;u?.subtype==="AT_AddColumn"&&u.def&&"ColumnDef"in u.def&&yb(u.def.ColumnDef,e),!(o&&u?.subtype==="AT_AddConstraint"&&u.def&&Uv(o,u.def,e))&&l.push(c);}i.cmds=l;}return e}var wb=N(()=>{});var Qe,Un,bf=N(()=>{Fn();Mr();Qe=class extends F{constructor(e,n){super(e,`Unsupported expression: ${n}`);}},Un=class{deparse(e){if("A_Const"in e){let s=e.A_Const;if(s.boolval!==void 0)return s.boolval.boolval?{}:{$always:false}}let n=Object.keys(e)[0],r=this[n];if(!r)throw new Qe({[n]:e},`Unsupported expression: ${n}`);return r.call(this,e[n])}deparseValue(e){if("A_Const"in e)return this.A_Const(e.A_Const);if("ColumnRef"in e)return this.ColumnRef(e.ColumnRef);if("FuncCall"in e)return this.FuncCall(e.FuncCall);if("SubLink"in e)return this.SubLink(e.SubLink);if("TypeCast"in e)return this.TypeCast(e.TypeCast);if("A_Expr"in e){let r=this.isJwtAccessor(e.A_Expr);return r||this.A_Expr(e.A_Expr)}if("BoolExpr"in e)return this.BoolExpr(e.BoolExpr);let n=Object.keys(e)[0];throw new Qe({[n]:e},`deparseValue: ${n}`)}A_Expr(e){if(e.kind==="AEXPR_OP"){let n=e.name?.[0],r=n?_i(n):void 0;if(!r)throw new Qe({A_Expr:e},"A_Expr missing operator");let s=this.isJwtAccessor(e);if(s)return {[s]:{}};let i=e.lexpr?this.deparseValue(e.lexpr):void 0,o=e.rexpr?this.deparseValue(e.rexpr):void 0,a=this.mapOperator(r);if(!a)throw new Qe({A_Expr:e},`Unsupported operator: ${r}`);let l=e.rexpr!=null&&"ColumnRef"in e.rexpr;if(typeof i=="string"&&i.startsWith("{{")&&l)return {[o]:{[a]:i}};let c=l&&typeof o=="string"?{$ref:o}:o;return {[i]:{[a]:c}}}if(e.kind==="AEXPR_LIKE"||e.kind==="AEXPR_ILIKE"){let n=e.lexpr?this.deparseValue(e.lexpr):void 0,r=e.rexpr?this.deparseValue(e.rexpr):void 0,i=(e.name?.[0]?_i(e.name[0]):"~~")==="!~~"?"$notLike":"$like";return {[n]:{[i]:r}}}if(e.kind==="AEXPR_IN"){let n=e.lexpr?this.deparseValue(e.lexpr):void 0,r=e.rexpr&&"List"in e.rexpr&&e.rexpr.List.items?e.rexpr.List.items.map(s=>this.deparseValue(s)):[];return {[n]:{$in:r}}}throw new Qe({A_Expr:e},`A_Expr kind: ${e.kind}`)}BoolExpr(e){let n=e.args??[];switch(e.boolop){case "AND_EXPR":return {$and:n.map(r=>this.deparse(r))};case "OR_EXPR":return {$or:n.map(r=>this.deparse(r))};case "NOT_EXPR":return {$not:this.deparse(n[0])};default:throw new Qe({BoolExpr:e},`BoolExpr op: ${e.boolop}`)}}NullTest(e){let n=e.arg?this.deparseValue(e.arg):void 0;return e.nulltesttype==="IS_NULL"?{[n]:{$is:null}}:{[n]:{$isNot:null}}}SubLink(e){if(e.subLinkType==="ANY_SUBLINK"){let n=e.testexpr?this.deparseValue(e.testexpr):void 0,r=e.subselect?this.SelectStmt(e.subselect.SelectStmt):void 0;return {[n]:{$in:r}}}if(e.subLinkType==="EXISTS_SUBLINK")return {$exists:e.subselect?this.SelectStmt(e.subselect.SelectStmt):void 0};if(e.subLinkType==="EXPR_SUBLINK"){let n=e.subselect?e.subselect.SelectStmt:void 0;if(n?.fromClause?.length)return this.SelectStmt(n);if(n?.targetList?.[0]){let r=n.targetList[0],s="ResTarget"in r?r.ResTarget:void 0;if(s?.val){let i=this.deparseValue(s.val);return i}}}throw new Qe({SubLink:e},`SubLink type: ${e.subLinkType}`)}SelectStmt(e){let{from:n,schema:r,join:s}=this.deparseFromClause(e.fromClause??[]),i=[];for(let p of e.targetList??[]){let d="ResTarget"in p?p.ResTarget:void 0;if(d?.val){let g=this.deparseValue(d.val);Array.isArray(g)?i.push(...g.map(String)):g!=null&&g!==""&&i.push(String(g));}}let o=e.whereClause?this.deparse(e.whereClause):void 0,a=this.deparseSortClause(e.sortClause),l=this.deparseLimit(e.limitCount),c=this.deparseLimit(e.limitOffset),u=this.deparseGroupClause(e.groupClause),f={type:"query",from:n,select:i};return r&&(f.schema=r),Object.keys(s).length>0&&(f.join=s),o&&(f.where=o),a.length>0&&(f.order=a),l!==void 0&&(f.limit=l),c!==void 0&&(f.offset=c),u.length>0&&(f.group=u),f}FuncCall(e){let n=this.isAuthFunc(e.funcname??[]);if(n)return n;throw new Qe({FuncCall:e},`FuncCall: ${an(e.funcname??[]).join(".")}`)}ColumnRef(e){let n=an(e.fields??[]);return n.length===1?n[0]:n.join(".")}A_Const(e){if(e.boolval!==void 0)return e.boolval.boolval;if(e.ival!==void 0)return e.ival.ival??0;if(e.fval!==void 0)return parseFloat(e.fval.fval??"0");if(e.sval!==void 0)return e.sval.sval??"";if(e.isnull)return null;throw new Qe({A_Const:e},"A_Const: unknown variant")}TypeCast(e){if(!e.arg)throw new Qe({TypeCast:e},"TypeCast: missing arg");return this.deparseValue(e.arg)}BooleanTest(e){let n=e.arg?this.deparseValue(e.arg):void 0;return e.booltesttype==="IS_TRUE"?{[n]:{$eq:true}}:{[n]:{$eq:false}}}deparseFromClause(e){let n={};if(e.length===0)return {from:"",join:n};let r=e[0];if("RangeVar"in r){let s=r.RangeVar;return {from:s.relname??"",schema:s.schemaname,join:n}}if("JoinExpr"in r){let{from:s,schema:i}=this.walkJoinExpr(r.JoinExpr,n);return {from:s,schema:i,join:n}}return {from:"",join:n}}walkJoinExpr(e,n){let r={from:""};if(e.larg)if("RangeVar"in e.larg){let s=e.larg.RangeVar;r={from:s.relname??"",schema:s.schemaname};}else "JoinExpr"in e.larg&&(r=this.walkJoinExpr(e.larg.JoinExpr,n));if(e.rarg&&"RangeVar"in e.rarg){let s=e.rarg.RangeVar,i=s.relname??"",o=s.alias?.aliasname??i,a=e.jointype==="JOIN_LEFT"?"left":"inner",l={from:i,type:a};e.quals&&(l.on=this.deparse(e.quals));let c=o;if(c in n){let u=2;for(;`${c}_${u}`in n;)u++;c=`${c}_${u}`;}n[c]=l;}return r}deparseSortClause(e){if(!e)return [];let n=[];for(let r of e){if(!("SortBy"in r))continue;let s=r.SortBy;if(!s.node)continue;let i=String(this.deparseValue(s.node)),o=s.sortby_dir==="SORTBY_DESC"?"desc":"asc",a={column:i,direction:o};s.sortby_nulls==="SORTBY_NULLS_FIRST"?a.nullsFirst=true:s.sortby_nulls==="SORTBY_NULLS_LAST"&&(a.nullsFirst=false),n.push(a);}return n}deparseLimit(e){if(!e)return;let n=this.deparseValue(e);return typeof n=="number"?n:Number(n)}deparseGroupClause(e){return e?e.map(n=>String(this.deparseValue(n))):[]}isAuthFunc(e){let n=an(e);if(n.length===2&&n[0]==="auth"){if(n[1]==="uid")return "{{auth.uid}}";if(n[1]==="jwt")return "{{auth.jwt}}";if(n[1]==="role")return "{{auth.role}}";throw new Error(`Unsupported auth function: "${n.slice(1).join(".")}"`)}return null}isJwtAccessor(e){if(e.kind!=="AEXPR_OP")return null;let n=e.name?.[0]?_i(e.name[0]):void 0;if(n!=="->"&&n!=="->>")return null;let r=e.rexpr&&"A_Const"in e.rexpr?e.rexpr.A_Const.sval?.sval:void 0;if(r===void 0)return null;if(e.lexpr&&"FuncCall"in e.lexpr)return this.isAuthFunc(e.lexpr.FuncCall.funcname??[])==="{{auth.jwt}}"?`{{auth.jwt.${r}}}`:null;if(e.lexpr&&"A_Expr"in e.lexpr){let s=this.isJwtAccessor(e.lexpr.A_Expr);if(s)return `${s.slice(0,-2)}.${r}}}`}return null}mapOperator(e){switch(e){case "=":return "$eq";case "<>":case "!=":return "$neq";case ">":return "$gt";case ">=":return "$gte";case "<":return "$lt";case "<=":return "$lte";case "~~":return "$like";case "!~~":return "$notLike";default:return}}};});function xb(t){let e=new Map;for(let n of t.stmts??[]){if(!n.stmt||!("CreateEnumStmt"in n.stmt))continue;let r=n.stmt.CreateEnumStmt,s=an(r.typeName??[]).join(".");if(!s||!r.vals)continue;let i=an(r.vals);e.set(s.toLowerCase(),i);}return e}function Tb(t){let e=new Map;for(let n of t.stmts??[]){if(!n.stmt||!("VariableSetStmt"in n.stmt))continue;let r=n.stmt.VariableSetStmt,s=r.name,i=ub(r.args?.[0]??{});e.set(s,{value:i,local:r.is_local});}return e}function _b(t){let e=[],n=false;for(let r of t??[])if("RoleSpec"in r){let s=r.RoleSpec;s.roletype==="ROLESPEC_PUBLIC"?s.location===-1&&(n=true):s.roletype==="ROLESPEC_CSTRING"&&s.rolename&&e.push(s.rolename);}return {roles:e,implicitPublic:n}}function Eb(t,e){return t&&t.length>0?t:e}function wf(t,e,n){return t.findIndex(r=>r.data.name===e.name&&r.data.table===e.table&&Eb(r.data.schema,n)===Eb(e.schema,n))}function Sf(t,e){return new Error(`policy "${t}" for table "${e}" does not exist`)}function Rb(t,e={}){let n=e.defaultSchema||"public",r=e.validateMutations===true,s=new Un,i=new Set,o=[];for(let a of t.stmts??[])if(a.stmt){if("CreatePolicyStmt"in a.stmt){let l=a.stmt.CreatePolicyStmt,c=l.table?.relname??"",u=l.table?.schemaname,f={select:"SELECT",insert:"INSERT",update:"UPDATE",delete:"DELETE"},p=l.cmd_name?f[l.cmd_name]??"ALL":"ALL",d=l.permissive===true,{roles:g,implicitPublic:m}=_b(l.roles),h=l.qual?s.deparse(l.qual):void 0,y=l.with_check?s.deparse(l.with_check):void 0;if(m){let _=u?`${u}.${c}`:c,w=l.policy_name??"",x=`${_}::${w}`;if(!Sb.has(x)){Sb.add(x);let E=JSON.stringify(h)+JSON.stringify(y);/\{\{auth\.(uid|jwt|role)/i.test(E)||console.warn(`[supalite] policy "${w}" on "${_}" has no TO clause \u2014 applies to all roles (PUBLIC). For clarity, prefer an explicit \`TO <role>\` clause (e.g. \`TO authenticated\`).`);}}let S=new nt({name:l.policy_name??"",table:c,schema:u,command:p,permissive:d,roles:g,using:h,withCheck:y});o.push(S);}if("DropStmt"in a.stmt&&a.stmt.DropStmt.removeType==="OBJECT_POLICY"){let l=a.stmt.DropStmt,c=l.objects?.[0];if(c&&"List"in c){let u=an(c.List.items??[]),f=u[u.length-1],p=u[u.length-2],d=u.length>=3?u[u.length-3]:void 0;if(f&&p){let g=wf(o,{name:f,table:p,schema:d},n);if(g!==-1)o.splice(g,1);else if(r&&!l.missing_ok)throw Sf(f,p)}}}if("AlterPolicyStmt"in a.stmt){let l=a.stmt.AlterPolicyStmt,c=l.policy_name??"",u=l.table?.relname??"",f=l.table?.schemaname,p=wf(o,{name:c,table:u,schema:f},n);if(p===-1){if(r)throw Sf(c,u);continue}let d=o[p].data,g=l.roles?_b(l.roles).roles:d.roles,m=l.qual?s.deparse(l.qual):d.using,h=l.with_check?s.deparse(l.with_check):d.withCheck;o[p]=new nt({...d,roles:g,using:m,withCheck:h});}if("RenameStmt"in a.stmt&&a.stmt.RenameStmt.renameType==="OBJECT_POLICY"){let l=a.stmt.RenameStmt,c=l.subname??"",u=l.relation?.relname??"",f=l.relation?.schemaname,p=wf(o,{name:c,table:u,schema:f},n);if(p===-1){if(r)throw Sf(c,u);continue}l.newname&&(o[p]=new nt({...o[p].data,name:l.newname}));}if("AlterTableStmt"in a.stmt){let l=a.stmt.AlterTableStmt;if((l.cmds??[]).some(f=>"AlterTableCmd"in f&&(f.AlterTableCmd.subtype==="AT_EnableRowSecurity"||f.AlterTableCmd.subtype==="AT_ForceRowSecurity"))){let f=l.relation?.relname??"";i.add(f);}}}return {policies:o,tables:i}}function Cb(t,e){let n=new Map;for(let r of t.stmts??[]){if(!r.stmt||!("CreateStmt"in r.stmt))continue;let s=r.stmt.CreateStmt,i=s.relation?.relname??"",o=s.relation?.schemaname??"public";if(!i)continue;let a=new tn(i,o);for(let l of s.tableElts??[]){if(!("ColumnDef"in l))continue;let c=l.ColumnDef,u=c.colname;if(!u)continue;let f=c.typeName?.names?.map(C=>C.String?.sval||C.String?.str).filter(Boolean),p=f&&(f.length===2&&f[0]==="pg_catalog"?f[1]:f[0]);if(!p)continue;let d=!!c.typeName?.arrayBounds?.length,g=Array.isArray(c.typeName?.typmods)?c.typeName.typmods:[],m=C=>g[C]?.A_Const?.ival?.ival??g[C]?.A_Const?.val?.ival?.ival,h={isArray:d};if($a(p)&&g.length>0){let C=m(0);typeof C=="number"&&C>0&&(h.lengthConstraint=C);}if(Oa(p)&&g.length>=2){let C=m(0),q=m(1);typeof C=="number"&&typeof q=="number"&&C>0&&q>=0&&(h.numericPrecision={precision:C,scale:q});}let y=e.get(p.toLowerCase());y&&(h.enumValues=y);let S=Array.isArray(c.constraints)?c.constraints:[],_=S.some(C=>C.Constraint?.contype==="CONSTR_PRIMARY"),w=ka(p)||S.some(C=>C.Constraint?.contype==="CONSTR_IDENTITY"),x=S.some(C=>C.Constraint?.contype==="CONSTR_NOTNULL"),E=S.find(C=>C.Constraint?.contype==="CONSTR_UNIQUE"),T=S.find(C=>C.Constraint?.contype==="CONSTR_GENERATED"),O=S.find(C=>C.Constraint?.contype==="CONSTR_FOREIGN"),P=S.find(C=>C.Constraint?.contype==="CONSTR_CHECK"),D;if(O){let C=O.Constraint,q=C.pktable?.relname,J=C.pktable?.schemaname,M=C.pk_attrs?.[0]?.String?.sval;q&&M&&(D={refSchema:J,refTable:q,refColumn:M,constraintName:C.conname||void 0});}let k={schema:o,table:i,column:u,pgTypeName:p,nullable:!x&&!_,defaultValue:null,defaultFn:null,isPrimaryKey:_,isUnique:!!E,isSerial:w,isGenerated:!!T,fkRef:D,hasCheck:!!P,checkConstraintName:P?.Constraint?.conname||void 0,uniqueConstraintName:E?.Constraint?.conname||void 0};a.set(u,ut(k,h));}n.set(`${o}.${i}`,a);}return n}function vb(t){let e=[];for(let n of t.stmts??[]){if(!n.stmt||!("CreateStmt"in n.stmt))continue;let r=n.stmt.CreateStmt,s=r.relation?.relname??"",i=r.relation?.schemaname??"public";if(s)for(let o of r.tableElts??[]){if("ColumnDef"in o)continue;let a=o;if(!a.Constraint)continue;let l=a.Constraint,c=l.contype;if(c==="CONSTR_UNIQUE"){let u=(l.keys??[]).map(f=>f.String?.sval??f.String?.str).filter(Boolean);if(u.length===0)continue;e.push({schema:i,table:s,kind:"unique",name:l.conname||void 0,columns:u});}else if(c==="CONSTR_CHECK")e.push({schema:i,table:s,kind:"check",name:l.conname||void 0,columns:[]});else if(c==="CONSTR_FOREIGN"){let u=(l.fk_attrs??[]).map(d=>d.String?.sval??d.String?.str).filter(Boolean),f=(l.pk_attrs??[]).map(d=>d.String?.sval??d.String?.str).filter(Boolean),p=l.pktable?.relname;if(!p)continue;e.push({schema:i,table:s,kind:"foreign_key",name:l.conname||void 0,columns:u,refSchema:l.pktable?.schemaname,refTable:p,refColumns:f});}}}return e}function Ab(t){let e=[];for(let n of t.stmts??[]){if(!n.stmt||!("CommentStmt"in n.stmt))continue;let r=n.stmt.CommentStmt,s=r.comment??"";if(!s)continue;let i=r.objtype,o=(r.object?.List?.items??r.object?.items??[]).map(a=>a.String?.sval??a.String?.str).filter(Boolean);if(o.length!==0){if(i==="OBJECT_TABLE"||i==="OBJECT_VIEW"){let[a,l]=o.length>=2?o:["public",o[0]];e.push({schema:a,table:l,text:s});}else if(i==="OBJECT_COLUMN"){let a="public",l,c;o.length>=3?[a,l,c]=o:[l,c]=o,e.push({schema:a,table:l,column:c,text:s});}}}return e}var Sb,kb=N(()=>{bf();Fn();Si();Jc();Mr();Sb=new Set;});var Pb={};qr(Pb,{Policy:()=>nt,deparseDdl:()=>_f,deparseExpression:()=>Hv,deparsePostgresDdl:()=>qv,deparseSelect:()=>Wv,parse:()=>Lr,parseExpression:()=>Ob,translatePostgresDdl:()=>$b});async function $b(t,e={}){let n=await Lr(t);return _f(n,e).ddl}async function qv(t,e={}){let n=await Lr(t);return {ast:n,..._f(n,e)}}function _f(t,e={}){let n=bb(t),r=xb(t),s=Cb(t,r),i=Tb(t),o=vb(t),a=Ab(t),l=new Da(t,{...e,enums:r,serialColumns:n}),{policies:c,tables:u}=Rb(t,{defaultSchema:e.defaultSchema,validateMutations:e.strict});if(e.strict)for(let f of c){if(!s.get(`${f.data.schema??"public"}.${f.data.table}`))throw new Error(`Policy "${f.data.name}" references unknown table "${f.data.table}"`);if(!u.has(f.data.table))throw new Error(`RLS is not enabled on table "${f.data.table}"`)}return {ddl:l.deparseQuery(),enums:r,rls:{tables:u,policies:c},schema:s,vars:i,tableConstraints:o,comments:a}}async function Ob(t){let n=(await Lr(`SELECT 1 WHERE ${t}`)).stmts?.[0]?.stmt;if(!n||!("SelectStmt"in n))throw new Error("expected SelectStmt");let r=n.SelectStmt.whereClause;if(!r)throw new Error("no whereClause");return r}async function Hv(t){let e=await Ob(t);return new Un().deparse(e)}async function Wv(t){let n=(await Lr(t)).stmts?.[0]?.stmt;if(!n||!("SelectStmt"in n))throw new Error("expected SelectStmt");return new Un().deparse(n)}var Ef=N(()=>{cb();hb();wb();bf();kb();Si();});ie();function Lf(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),n.push.apply(n,r);}return n}function Ff(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Lf(Object(n),true).forEach(function(r){Qw(t,r,n[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Lf(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r));});}return t}function Qw(t,e,n){return e=Xw(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:true,configurable:true,writable:true}):t[e]=n,t}function Xw(t){var e=Yw(t,"string");return typeof e=="symbol"?e:String(e)}function Yw(t,e){if(typeof t!="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return (e==="string"?String:Number)(t)}var Zw=Mf({}),Le=Zw;function Mf(t){return e.withOptions=n=>Mf(Ff(Ff({},t),n)),e;function e(n,...r){let s=typeof n=="string"?[n]:n.raw,{alignValues:i=false,escapeSpecialCharacters:o=Array.isArray(n),trimWhitespace:a=true}=t,l="";for(let f=0;f<s.length;f++){let p=s[f];if(o&&(p=p.replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`").replace(/\\\$/g,"$").replace(/\\\{/g,"{")),l+=p,f<r.length){let d=i?eS(r[f],l):r[f];l+=d;}}let c=l.split(`
29
- `),u=null;for(let f of c){let p=f.match(/^(\s+)\S+/);if(p){let d=p[1].length;u?u=Math.min(u,d):u=d;}}if(u!==null){let f=u;l=c.map(p=>p[0]===" "||p[0]===" "?p.slice(f):p).join(`
25
+ FROM ${N(e)};`,description:`Copy data from ${N(e)} to ${N(l)}`,type:"copy_data"});}i.push({sql:`DROP TABLE ${N(e)};`,description:`Drop old table ${N(e)}`,type:"drop_table"}),i.push({sql:`ALTER TABLE ${N(l)} RENAME TO ${N(e)};`,description:`Rename ${N(l)} to ${N(e)}`,type:"rename_table"});let p=r.indexes.filter(y=>y.table===e);for(let y of p){let w=y.unique?"UNIQUE ":"",S=y.columns.map(b=>N(b)).join(", ");i.push({sql:`CREATE ${w}INDEX ${N(y.name)} ON ${N(e)} (${S});`,description:`Recreate index ${N(y.name)} on ${N(e)}`,type:"add_index"});}let g=r.triggers?.filter(y=>y.table===e)??[];for(let y of g)i.push({sql:`${y.sql};`,description:`Recreate trigger ${N(y.name)} on ${N(e)}`,type:"create_trigger"});let m=s.columns.filter(y=>y.table===e&&y.type==="removed");for(let y of m)o.push({table:e,reason:`column "${y.name}" will be dropped`});let h=s.columns.filter(y=>y.table===e&&y.type==="modified");for(let y of h)y.changes?.type&&o.push({table:e,reason:`column "${y.name}" type changes from ${y.changes.type.from} to ${y.changes.type.to}`}),y.changes?.nullable&&!y.changes.nullable.to&&o.push({table:e,reason:`column "${y.name}" becomes NOT NULL`});return {steps:i,warnings:o}}canSimpleAlter(e,n,r){let s=n.columns.filter(u=>u.table===e),i=s.filter(u=>u.type==="added"),o=s.filter(u=>u.type==="removed"),a=s.filter(u=>u.type==="modified"),l=n.foreign_keys.some(u=>u.table===e);if(o.length>0||a.length>0||l)return {canAlter:false,addedCols:i};let c=r.tables.find(u=>u.name===e);return c&&/\bCHECK\s*\(/i.test(c.sql)?{canAlter:false,addedCols:i}:{canAlter:i.every(u=>{let d=u.column;return this.hasNonConstantDefault(d.default_value)?false:d.nullable||d.default_value!=null})&&i.length>0,addedCols:i}}hasNonConstantDefault(e){if(e==null)return false;let n=e.trim().toUpperCase();return aC.includes(n)}columnDef(e){let n=e.column,r=`${N(n.name)} ${n.type||"TEXT"}`;return n.nullable||(r+=" NOT NULL"),n.default_value!=null&&(r+=` DEFAULT ${n.default_value}`),r}};});async function fr(t){let{parse:e}=await import('pgsql-parser');return e(t)}var vy=I(()=>{});function Gs(t){if("String"in t)return t.String.sval}function At(t){return t.map(Gs).filter(e=>e!=null)}function Sn(t){return t==null?[]:t.List!==void 0?t.List.items||[]:Array.isArray(t)?t:[t]}function Jo(t){return QuoteUtils.quoteIdentifier(t)}function dr(t){return Object.keys(t)[0]}function Ay(t){if("A_Const"in t){if(t.A_Const.ival)return t.A_Const.ival.ival;if(t.A_Const.fval)return t.A_Const.fval.fval;if(t.A_Const.sval)return t.A_Const.sval.sval;if(t.A_Const.boolval)return t.A_Const.boolval.boolval;if(t.A_Const.isnull)return null}}var _n=I(()=>{});function Py(t){let e=t.toLowerCase().trim();if(e.startsWith("_")||e.endsWith("[]"))return "TEXT";let n=SC[e];if(!n)throw new En(`Unsupported PostgreSQL type: "${t}"`);return n}function Go(t){let e=t.toLowerCase();return ["serial","serial4","bigserial","serial8","smallserial","serial2"].includes(e)}function zo(t){let e=t.toLowerCase();return ["varchar","character varying","char","character","bpchar"].includes(e)}function Vo(t){let e=t.toLowerCase();return ["numeric","decimal"].includes(e)}var En,L,SC,Oy,_C,Qo,pr=I(()=>{_n();En=class extends Error{},L=class extends En{constructor(n,r){super(r??`Unsupported node type: ${dr(n)}`);this.node=n;}},SC={int2:"INTEGER",smallint:"INTEGER",int4:"INTEGER",integer:"INTEGER",int:"INTEGER",int8:"INTEGER",bigint:"INTEGER",serial:"INTEGER",serial4:"INTEGER",bigserial:"INTEGER",serial8:"INTEGER",smallserial:"INTEGER",serial2:"INTEGER",float4:"REAL",real:"REAL",float8:"REAL","double precision":"REAL",numeric:"REAL",decimal:"REAL",text:"TEXT",varchar:"TEXT","character varying":"TEXT",char:"TEXT",character:"TEXT",bpchar:"TEXT",name:"TEXT",bytea:"BLOB",bool:"INTEGER",boolean:"INTEGER",date:"TEXT",time:"TEXT","time without time zone":"TEXT",timetz:"TEXT","time with time zone":"TEXT",timestamp:"TEXT","timestamp without time zone":"TEXT",timestamptz:"TEXT","timestamp with time zone":"TEXT",interval:"TEXT",json:"TEXT",jsonb:"TEXT",uuid:"TEXT",inet:"TEXT"},Oy=["<",">","<=",">=","=","<>","!=","+","-","*","/","%","&","|","<<",">>","||","BETWEEN","NOT BETWEEN","IN","NOT IN","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS TRUE","IS NOT TRUE","IS FALSE","IS NOT FALSE","IS UNKNOWN","IS NOT UNKNOWN","AND","OR","NOT","->>"];_C={CreateEnumStmt:{react:"ignore"},CreateDomainStmt:{react:"warn"},CreateSeqStmt:{react:"ignore"},AlterSeqStmt:{react:"ignore"},CreateSchemaStmt:{react:"warn"},CreatePolicyStmt:{react:"ignore"},AlterPolicyStmt:{react:"ignore"},PartitionElem:{react:"error"},PartitionCmd:{react:"error"},VariableSetStmt:{react:"ignore"},CompositeTypeStmt:{react:"error"},AlterEnumStmt:{react:"error"},AlterObjectSchemaStmt:{react:"error"},AlterOwnerStmt:{react:"error"},AlterTypeStmt:{react:"error"},AlterFunctionStmt:{react:"error"},AlterDefaultPrivilegesStmt:{react:"error"},GrantStmt:{react:"error"},GrantRoleStmt:{react:"error"},CopyStmt:{react:"error"},CreateCastStmt:{react:"error"},AlterOpFamilyStmt:{react:"error"},AlterOperatorStmt:{react:"error"},TruncateStmt:{react:"error"},A_Indirection:{react:"error"},XmlExpr:{react:"error"},XmlSerialize:{react:"error"},RangeTableSample:{react:"error"},GroupingSet:{react:"error"}},Qo=new Map(Object.entries(_C));});var Xo,$y=I(()=>{pr();_n();Xo=class{constructor(e){this.ast=e;this.result=[...this.walk(this.ast,[],{trackPaths:["returningList"]})];}result=[];*walk(e=this.ast,n=[],r={}){if(!e||typeof e!="object")return;let{trackPaths:s=[]}=r;if(Array.isArray(e)){for(let o=0;o<e.length;o++)yield*this.walk(e[o],n,r);return}let i=Object.keys(e);if(i.length===1&&i[0][0]>="A"&&i[0][0]<="Z"){let o=i[0];yield {node:e,path:n},yield*this.walk(e[o],[...n,o],r);}else for(let[o,a]of Object.entries(e))if(a&&typeof a=="object"){let l=s.includes(o)?[...n,o]:n;yield*this.walk(a,l,r);}}containsUnsupportedNode(){for(let{node:e}of this.result){let n=dr(e),r=Qo.get(n);if(r&&r.react==="error")return true}}hasFuncCall(){for(let{node:e}of this.result)if("FuncCall"in e)return true;return false}getFuncCalls(){return Array.from(this.result).map(({node:e})=>e).filter(e=>"FuncCall"in e).map(e=>e.FuncCall)}getFuncCallNames(){return this.getFuncCalls().flatMap(e=>e.funcname?.map(n=>n.String?.sval||n.String?.str))}hasSqlValueFunction(){for(let{node:e}of this.result)if("SQLValueFunction"in e)return true;return false}getSqlValueFunctions(){return Array.from(this.result).map(({node:e})=>e).filter(e=>"SQLValueFunction"in e).map(e=>e.SQLValueFunction)}getSqlValueFunctionNames(){return this.getSqlValueFunctions().map(e=>e.op)}hasUnsafeStar(){let e=this.result.filter(({node:n})=>"A_Star"in n);if(e.length===0)return false;for(let{path:n}of e)if(!n.includes("SelectStmt")&&!n.includes("returningList"))return true;return false}getRelationDefinitions(){return this.result.filter(({node:n})=>"CreateStmt"in n).map(({node:n})=>n.CreateStmt).map(n=>({relation:{relname:n.relation?.relname??"",inh:n.relation?.inh,relpersistence:n.relation?.relpersistence},columns:n.tableElts?.map(r=>{let s=r.ColumnDef?.typeName?.names?.map(o=>"String"in o?o.String.sval:""),i=s?.some(o=>o.toLowerCase().includes("pg_catalog"));return {name:r.ColumnDef?.colname??"",is_local:r.ColumnDef?.is_local,pg_catalog:i,type:s?.filter(o=>!o.toLowerCase().includes("pg_catalog"))[0]??"",types:s,constraints:r.ColumnDef?.constraints}})}))}getRelationColumnTypes(){return {has_non_pg_catalog_types:this.getRelationDefinitions().some(e=>e.columns?.some(n=>!n.pg_catalog)),types:Array.from(new Set(this.getRelationDefinitions().flatMap(e=>e.columns?.map(n=>n.type))))}}};});var EC,xC,TC,RC,mr,Yo,Iy=I(()=>{pr();EC=["DECLARE","IF","ELSIF","ELSE","LOOP","WHILE","FOR","FOREACH","EXCEPTION","RAISE","PERFORM","EXECUTE","SELECT"],xC=/^NEW\.(\w+)\s*(?::=|=)\s*(.+)$/is,TC=/^RETURN\s+(NEW|OLD)$/i,RC=/^(INSERT|UPDATE|DELETE)\b/i,mr=class extends En{constructor(n,r,s){super(s??`Unsupported PL/pgSQL: ${n}`);this.hint=n;this.body=r;}},Yo=class{parse(e){let n=this.extractBlock(e),r=this.splitStatements(n),s=[],i=null;for(let o of r){let a=o.trim();if(!a)continue;this.rejectUnsupported(a);let l=a.match(TC);if(l){i=l[1].toUpperCase(),s.push({type:"return",value:i});continue}let c=a.match(xC);if(c){s.push({type:"assignment",column:c[1],expression:c[2].trim()});continue}if(RC.test(a)){s.push({type:"dml",sql:a});continue}throw new mr(`"${a.substring(0,80)}" is not translatable to SQLite`,n)}if(!i)throw new En("Trigger function body must end with RETURN NEW or RETURN OLD");return {statements:s,returnValue:i}}extractBlock(e){let n=e.trim(),r=n.toUpperCase();if(/^\s*DECLARE\b/i.test(n))throw new mr('"DECLARE" is not translatable to SQLite',e);let s=r.indexOf("BEGIN"),i=r.lastIndexOf("END");if(s===-1||i===-1||i<=s)throw new mr("Expected BEGIN ... END block in trigger function body",e);return n.slice(s+5,i).trim()}splitStatements(e){let n=[],r="",s=0,i=false,o="";for(let l=0;l<e.length;l++){let c=e[l];if(i){r+=c,c===o&&(l+1<e.length&&e[l+1]===o?r+=e[++l]:i=false);continue}if(c==="'"||c==='"'){i=true,o=c,r+=c;continue}if(c==="("){s++,r+=c;continue}if(c===")"){s--,r+=c;continue}if(c===";"&&s===0){n.push(r.trim()),r="";continue}r+=c;}let a=r.trim();return a&&n.push(a),n}rejectUnsupported(e){let n=e.match(/^(\w+)/)?.[1]?.toUpperCase();if(n&&EC.includes(n))throw new mr(`"${n}" is not translatable to SQLite`,e)}};});function OC(t){let e=t?.GrantStmt??t;return e?.is_grant!==true?false:e.targtype==="ACL_TARGET_ALL_IN_SCHEMA"?e.objtype==="OBJECT_TABLE"||e.objtype==="OBJECT_SEQUENCE":e.targtype==="ACL_TARGET_OBJECT"&&AC.has(e.objtype)}var AC,Zo,Ny=I(()=>{pr();_n();_n();$y();Qr();Iy();Uo();Eu();xu();Fn();eo();Hl();AC=new Set(["OBJECT_TABLE","OBJECT_VIEW","OBJECT_SEQUENCE","OBJECT_SCHEMA"]);Zo=class extends Deparser{enums;schemaHandling;warnings=[];helper;config;triggerFunctions=new Map;plpgsqlParser=new Yo;introspection;functionResolution;serialColumns;constructor(e,{enums:n,schemaHandling:r,introspection:s,serialColumns:i,...o}={}){super(e,o),this.schemaHandling=r??"default",this.enums=n??new Map,this.helper=new Xo(e),this.config=o,this.introspection=s,this.functionResolution=o?.functionResolution??"translate",this.serialColumns=i??new WeakSet;}visit(e,n){let r=dr(e);if(r==="GrantStmt"&&OC(e))return "";let s=Qo.get(r);if(s){if(s.react==="error")throw new L({[r]:e},`Unsupported node type: ${r}`);return s.react==="warn"&&this.warnings.push({type:r,node:e}),""}return super.visit(e,n)}deparse(e,n){if(e==null)return null;if(!n){let r=new SqlFormatter;n=new DeparserContext({formatter:r});}return typeof e=="number"||e instanceof Number?e.toString():this.visit(e,n)}RawStmt(e,n){if(!e.stmt||e.stmt.CommentStmt)return "";let r=this.deparse(e.stmt,n);return !r||r.length===0?"":e.stmt_len?r+";":r}RangeVar(e,n){this.ensureRelation(e);let r=this.effectiveSchema(e.schemaname),s=e.relname,i=this.quoteBareIfNeeded(s);r&&(this.schemaHandling==="prefix"?i=`${r}__${s}`:i=`"${r}.${s}"`);let o=e.alias?" "+this.Alias(e.alias,n):"";return i+o}getRelationName(e){this.ensureRelation(e);let n=this.effectiveSchema(e.schemaname),r=e.relname;return n?this.schemaHandling==="prefix"?`${n}__${r}`:`${n}.${r}`:r}quoteBareIfNeeded(e){return /^[A-Za-z_][A-Za-z0-9_]*$/.test(e)?e:`"${e.replace(/"/g,'""')}"`}effectiveSchema(e){if(e){if(this.config.forceDefaultSchema||this.schemaHandling!=="default")return e;if(e!=="public")return e}}ensureRelation(e){let n=this.config.forceDefaultSchema;n&&(!e||typeof e!="object"||n.length===0||e.schemaname||(e.schemaname=n));}CreateStmt(e,n){if(e.inhRelations&&e.inhRelations.length>0)throw new L({CreateStmt:e},"Inheritance is not supported in SQLite");if(e.ofTypename!==void 0)throw new L({CreateStmt:e},"Typed tables (CREATE TABLE ... OF type_name) are not supported. Define columns directly in the CREATE TABLE statement instead.");if(e.options&&e.options.length>0&&(e.options=void 0),!e.tableElts||e.tableElts.length===0)throw new L({CreateStmt:e},"Empty tables are not supported in SQLite. Define at least one column.");return e.accessMethod&&(e.accessMethod=void 0),super.CreateStmt(e,n)+" STRICT"}TableLikeClause(e,n){throw new L({TableLikeClause:e},"CREATE TABLE ... (LIKE ...) is not supported in SQLite. Define the table columns explicitly instead.")}DefElem(e,n){if(["oids","fillfactor",/^autovacuum_/i,"toast_tuple_target","parallel_workers","user_catalog_table"].some(i=>Hi(e.defname??"",i)))return "";let s=super.DefElem(e,n);throw new L({DefElem:e},`DefElem "${e.defname}" (${s}) not supported`)}TypeName(e,n){if(!e.names)return "";let r=e.names.map(i=>i.String?i.String.sval||i.String.str:"").filter(Boolean);if(r.length===0)return "";let s=r.length===2&&r[0]==="pg_catalog"?r[1]:r.join(".");return e.arrayBounds&&e.arrayBounds.length>0||this.enums.has(s.toLowerCase())?"TEXT":Py(s)}ColumnDef(e,n){let r=[],s=e.colname;s&&r.push(this.quoteIfNeeded(s));let i=false,o=false,a=null,l=null,c=null,f=false;if(e.typeName){let u=e.typeName.names?.map(g=>g.String?.sval||g.String?.str).filter(Boolean);c=u&&(u.length===2&&u[0]==="pg_catalog"?u[1]:u[0]),i=!!(c&&Go(c))||this.serialColumns.has(e),f=!!(e.typeName.arrayBounds&&e.typeName.arrayBounds.length>0);let d=Array.isArray(e.typeName.typmods)?e.typeName.typmods:[],p=g=>d[g]?.A_Const?.ival?.ival??d[g]?.A_Const?.val?.ival?.ival;if(c&&zo(c)&&d.length>0){let g=p(0);typeof g=="number"&&g>0&&(a={maxLen:g});}if(c&&Vo(c)&&d.length>=2){let g=p(0),m=p(1);typeof g=="number"&&typeof m=="number"&&g>0&&m>=0&&(l={precision:g,scale:m});}if(e.constraints){let g=Array.isArray(e.constraints)?e.constraints:[];o=g.some(m=>m.Constraint?.contype==="CONSTR_PRIMARY"),g.some(m=>m.Constraint?.contype==="CONSTR_IDENTITY")&&(i=true);}r.push(this.TypeName(e.typeName,n));}if(e.constraints){let u=Array.isArray(e.constraints)?e.constraints:[],d=u.map(g=>this.visit(g,n));r.push(...d.filter(Boolean));let p=u.some(g=>g.Constraint?.contype==="CONSTR_CHECK");i&&o&&!p?r.push("AUTOINCREMENT"):i&&!o&&this.warnings.push({type:"ColumnDef",node:{ColumnDef:e},message:`Column "${s}" is serial/auto-increment but not the primary key; SQLite can't auto-increment a non-primary-key column, so it becomes a plain INTEGER (no auto-increment).`});}if(s&&c){let u={isArray:f};a&&(u.lengthConstraint=a.maxLen),l&&(u.numericPrecision=l);let d=this.enums.get(c.toLowerCase());d&&(u.enumValues=d);let m=We({schema:"public",table:"",column:s,pgTypeName:c,nullable:true,defaultValue:null,defaultFn:null,isPrimaryKey:o,isUnique:false,isSerial:i},u).checkConstraint();m&&r.push(`CHECK (${m})`);}return r.join(" ")}Constraint(e,n){let r=e.contype;if(r==="CONSTR_IDENTITY"||r==="CONSTR_ATTR_DEFERRABLE"||r==="CONSTR_ATTR_NOT_DEFERRABLE"||r==="CONSTR_ATTR_DEFERRED"||r==="CONSTR_ATTR_IMMEDIATE")return "";if(r==="CONSTR_NULL")return "NULL";if(r==="CONSTR_NOTNULL")return "NOT NULL";if(r==="CONSTR_DEFAULT"&&e.raw_expr){let s=this.visit(e.raw_expr,n);return s.includes("(")&&!s.startsWith("(")?`DEFAULT (${s})`:`DEFAULT ${s}`}if(r==="CONSTR_CHECK"&&e.raw_expr){let s=[];e.conname&&s.push("CONSTRAINT",Jo(e.conname)),s.push("CHECK");let i=this.visit(e.raw_expr,n);return s.push(`(${i})`),s.join(" ")}if(r==="CONSTR_PRIMARY")return e.keys&&e.keys.length>0?`PRIMARY KEY (${Sn(e.keys).map(i=>this.visit(i,n)).join(", ")})`:"PRIMARY KEY";if(r==="CONSTR_UNIQUE")return e.keys&&e.keys.length>0?`UNIQUE (${Sn(e.keys).map(i=>this.visit(i,n)).join(", ")})`:"UNIQUE";if(r==="CONSTR_FOREIGN")return super.Constraint(e,n).replace(/FOREIGN\s+KEY\s+REFERENCES/gi,"REFERENCES");if(r==="CONSTR_GENERATED"&&e.raw_expr)return `GENERATED ALWAYS AS (${this.visit(e.raw_expr,n)}) STORED`;if(r==="CONSTR_EXCLUSION")throw new L({Constraint:e},"EXCLUSION constraints are not supported in SQLite");return ""}FuncCall(e,n){let s=(e.funcname||[]).map(c=>c.String?.sval||c.String?.str).filter(Boolean);if(s.length===0)throw new Error("Function call has no name");let i=s[s.length-1].toLowerCase();if(i==="extract"&&e.args&&e.args.length>=2){let c=e.args[0];if((c?.A_Const?.sval?.sval||c?.String?.sval)==="epoch")return `strftime('%s', ${this.visit(e.args[1],n)})`}let a=(e.args??[]).map(c=>this.visit(c,n));if(e.agg_star)return `${i}(*)`;if(e.agg_distinct)return `${i}(DISTINCT ${a.join(", ")})`;let l=ql(i,this.functionResolution);if(l){if(l.sqliteExpr!==null){let c=l.sqliteExpr;return c.includes("(")?c:`${c}(${a.join(", ")})`}if(l.jsFn!==null){let c=to[i];if(c?.sqlite){let f=c.sqlite();return f.includes("(")?f:`${f}(${a.join(", ")})`}}}throw new L({FuncCall:e},`Function call "${i}" not supported`)}SQLValueFunction(e,n){switch(e.op){case "SVFOP_CURRENT_TIMESTAMP":return "datetime('now')";case "SVFOP_CURRENT_DATE":return "date('now')";case "SVFOP_CURRENT_TIME":return "time('now')";default:throw new L({SQLValueFunction:e},`SQLValueFunction "${e.op}" not supported`)}}ResTarget(e,n){if(e.indirection&&e.indirection.length>0)throw new L({ResTarget:e},"Indirections are not supported in SQLite");let r=[];return n.update&&e.name?(r.push(this.quoteIfNeeded(e.name)),r.push("="),e.val&&r.push(this.deparse(e.val,n))):n.insertColumns&&e.name?r.push(this.quoteIfNeeded(e.name)):(e.val&&r.push(this.deparse(e.val,n)),e.name&&r.push(this.Alias({aliasname:e.name},n))),r.join(" ")}A_Expr(e,n){if(["AEXPR_OP_ALL","AEXPR_OP_ANY"].includes(e.kind))throw new L({A_Expr:e},"ALL/ANY/SOME comparison operators are not supported. Use NOT EXISTS or IN instead");if(e.name&&e.name.length>0){if(e.name.length>1)throw new L({A_Expr:e},"Schema-qualified OPERATOR() syntax is not supported in SQLite");let r=e.name[0]?.String?.sval||e.name[0]?.String?.str;if(r){if(!e.lexpr||!e.rexpr)throw new L({A_Expr:e},"A_Expr missing left or right expression");if(!Oy.includes(r.toUpperCase()))throw new L({A_Expr:e},`Operator "${r}" is not supported in SQLite`);if(r==="~~"||r==="~~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} LIKE ${i}`}if(r==="!~~"||r==="!~~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} NOT LIKE ${i}`}if(r==="~"||r==="~*"){let s=this.visit(e.lexpr,n),i=this.visit(e.rexpr,n);return `${s} GLOB ${i}`}}}return super.A_Expr(e,n)}IndexStmt(e,n){let r=["CREATE"];e.unique&&r.push("UNIQUE"),r.push("INDEX"),e.if_not_exists&&r.push("IF NOT EXISTS"),e.idxname&&r.push(Jo(e.idxname)),r.push("ON"),e.relation&&r.push(this.RangeVar(e.relation,n));let s=(e.indexParams??[]).map(i=>"IndexElem"in i?this.IndexElem(i.IndexElem,n):this.visit(i,n)).filter(Boolean);return r.push(`(${s.join(", ")})`),r.join(" ")}IndexElem(e,n){let r=[];return e.name?r.push(Jo(e.name)):e.expr&&r.push(`(${this.visit(e.expr,n)})`),e.ordering==="SORTBY_ASC"&&r.push("ASC"),e.ordering==="SORTBY_DESC"&&r.push("DESC"),e.nulls_ordering==="SORTBY_NULLS_FIRST"&&r.push("NULLS FIRST"),e.nulls_ordering==="SORTBY_NULLS_LAST"&&r.push("NULLS LAST"),r.join(" ")}TypeCast(e,n){if(!e.arg||!e.typeName)return super.TypeCast(e,n);if([...this.helper.walk(e)].filter(({node:o})=>"A_Star"in o).length>0)throw new L({TypeCast:e},"A.* in type casts are not supported in SQLite");if(e.typeName.arrayBounds&&e.typeName.arrayBounds.length>0){if("A_Const"in e.arg&&e.arg.A_Const.sval){let o=e.arg.A_Const.sval.sval;if(o.startsWith("{")&&o.endsWith("}")){let a=e.typeName.names?.map(u=>u.String?.sval).filter(Boolean)??[],l=a.length===2&&a[0]==="pg_catalog"?a[1]:a[0],f=["text","varchar","character varying","char","bpchar","name","uuid"].includes(l?.toLowerCase());try{let u=this.parsePgArrayLiteral(o,f);return `'${JSON.stringify(u).replace(/'/g,"''")}'`}catch{}}}return this.visit(e.arg,n)}let s=this.visit(e.arg,n),i=this.TypeName(e.typeName,n);return `CAST(${s} AS ${i})`}A_ArrayExpr(e,n){let r=Sn(e.elements),s=this.tryExtractStaticArray(r);return s!==void 0?`'${JSON.stringify(s).replace(/'/g,"''")}'`:`json_array(${r.map(o=>this.visit(o,n)).join(", ")})`}tryExtractStaticArray(e){let n=[];for(let r of e)if("A_ArrayExpr"in r){let s=Sn(r.A_ArrayExpr.elements),i=this.tryExtractStaticArray(s);if(i===void 0)return;n.push(i);}else if("A_Const"in r){let s=r.A_Const;if(s.isnull)n.push(null);else if(s.ival)n.push(s.ival.ival);else if(s.fval)n.push(parseFloat(s.fval.fval));else if(s.sval)n.push(s.sval.sval);else if("boolval"in s)n.push(s.boolval.boolval===true);else return}else return;return n}parsePgArrayLiteral(e,n){if(!e.startsWith("{")||!e.endsWith("}"))throw new Error("Not a PG array literal");let r=e.slice(1,-1);if(r.length===0)return [];let s=[],i=0;for(;i<r.length;)if(r[i]==="{"){let o=0,a=i;for(;a<r.length;){if(r[a]==="{")o++;else if(r[a]==="}"&&(o--,o===0))break;a++;}s.push(this.parsePgArrayLiteral(r.slice(i,a+1),n)),i=a+1,r[i]===","&&i++;}else if(r[i]==='"'){let o=i+1,a="";for(;o<r.length&&r[o]!=='"';)r[o]==="\\"&&o++,a+=r[o],o++;s.push(a),i=o+1,r[i]===","&&i++;}else {let o=i;for(;o<r.length&&r[o]!==","&&r[o]!=="}";)o++;if(o===i)throw new Error("Malformed PG array literal");let a=r.slice(i,o);if(a==="NULL")s.push(null);else if(n)s.push(a);else {let l=Number(a);s.push(isNaN(l)?a:l);}i=o,r[i]===","&&i++;}return s}BetweenExpr(e,n){return super.A_Expr(e,n)}AlterTableStmt(e,n){let r=e.cmds??[],s=["AT_EnableRowSecurity","AT_ForceRowSecurity","AT_ChangeOwner"],i=r.filter(f=>"AlterTableCmd"in f&&!s.includes(f.AlterTableCmd.subtype));if(i.length===0)return "";if(!["OBJECT_TABLE","OBJECT_INDEX","OBJECT_VIEW"].includes(e.objtype))throw new L({AlterTableStmt:e},`AlterTableStmt with objtype ${e.objtype} is not supported`);let o=["AT_AddColumn","AT_DropColumn"],a=["AT_AlterColumnType","AT_SetNotNull","AT_DropNotNull","AT_ColumnDefault","AT_AddConstraint","AT_DropConstraint"],l=[],c=[];for(let f of i){let u=f.AlterTableCmd.subtype;if(o.includes(u)){let d={...e,cmds:[f]};l.push(super.AlterTableStmt(d,n));}else if(a.includes(u))c.push(f.AlterTableCmd);else throw new L({AlterTableStmt:e},`AlterTableCmd with subtype ${u} is not supported in SQLite`)}if(c.length>0){let f=this.getRelationName(e.relation);l.push(this.generateRebuildSql(f,c));}return l.join(`;
26
+ `)}AlterTableCmd(e,n){if(!["AT_AddColumn","AT_DropColumn"].includes(e.subtype))throw new L({AlterTableCmd:e},`AlterTableCmd with subtype ${e.subtype} is not supported`);return e.subtype==="AT_DropColumn"&&e.behavior?super.AlterTableCmd({...e,behavior:void 0},n):super.AlterTableCmd(e,n)}DefineStmt(e,n){if(e.kind==="OBJECT_AGGREGATE")throw new Error("AGGREGATE definitions are not supported in SQLite");return super.DefineStmt(e,n)}InsertStmt(e,n){if("selectStmt"in e){let s=(e.selectStmt?.SelectStmt?.valuesLists??[]).map(i=>i.List?.items?.map(o=>"SetToDefault"in o));if(s.length===1&&s[0]?.every(i=>i===true))return super.InsertStmt({...e,selectStmt:void 0,cols:void 0},n);if(s.some(i=>i.some(o=>o===true)))throw new L({InsertStmt:e},"Insert with partial DEFAULT values is not supported")}return super.InsertStmt(e,n)}SelectStmt(e,n){if(this.helper.hasUnsafeStar())throw new L({SelectStmt:e},"Row-wise comparison using .* is not supported in SQLite. Expand to explicit per-column comparisons instead.");if(e.intoClause)throw new L({SelectStmt:e},"SELECT ... INTO clause is not supported in SQLite");if(e.distinctClause){let s=Sn(e.distinctClause);if(s.length>0&&Object.keys(s[0]).length>0)throw new L({SelectStmt:e},"DISTINCT ON clause is not supported in SQLite. Use window functions instead.")}if(e.limitOffset&&!e.limitCount)throw new L({SelectStmt:e},"OFFSET without LIMIT is not supported in SQLite");let r=super.SelectStmt(e,n);if(/^SELECT\s+FROM/.test(r))throw new L({SelectStmt:e},"SELECT without a target list is not supported in SQLite");return r}JoinExpr(e,n){return e.alias&&this.Alias(e.alias,n),super.JoinExpr(e,n)}A_Const(e,n){if(e.bsval!==void 0)throw new L({A_Const:e},"Bit string literals are not supported in SQLite");let r=super.A_Const(e,n);return typeof r=="string"&&r.startsWith("E'")?r.substring(2,r.length-1):r}SortBy(e,n){if(e.sortby_dir==="SORTBY_USING"){let r=Sn(e.useOp),s=r[0]?.String?.sval;if(r.length>1||!["<",">"].includes(s??""))throw new L({SortBy:e},"Only `USING <` or `USING >` are supported.");e.sortby_dir=s==="<"?"SORTBY_DESC":"SORTBY_ASC",e.useOp=void 0;}return super.SortBy(e,n)}RangeSubselect(e,n){if(e.lateral)throw new L({RangeSubselect:e},"LATERAL subqueries are not supported in SQLite");return super.RangeSubselect(e,n)}SubLink(e,n){if(["ANY_SUBLINK","ALL_SUBLINK"].includes(e.subLinkType))throw new L({SubLink:e},"ANY/ALL/SOME subqueries are not supported. Use NOT EXISTS or IN instead");if(e.subLinkType==="ARRAY_SUBLINK")throw new L({SubLink:e},"ARRAY subqueries are not supported in SQLite");return super.SubLink(e,n)}LockingClause(e,n){return ""}UpdateStmt(e,n){if(n.parentNodeTypes.includes("SelectStmt"))throw new L({UpdateStmt:e},"UPDATE ... FROM (SELECT ...) is not supported in SQLite");return super.UpdateStmt(e,n)}Alias(e,n){if(e.colnames&&e.colnames.length>0)throw new L({Alias:e},"Aliasing with column names is not supported in SQLite");return `AS "${e.aliasname}"`}CreateFunctionStmt(e,n){let r=e.options??[],s=e.returnType?.names?.map(c=>c.String?.sval).filter(Boolean).join("."),i=r.find(c=>c.DefElem?.defname==="language")?.DefElem?.arg?.String?.sval;if(s!=="trigger"||i!=="plpgsql")throw new L({CreateFunctionStmt:e},"Only trigger functions with LANGUAGE plpgsql are supported");let o=e.funcname?.map(c=>c.String?.sval).filter(Boolean).pop();if(!o)throw new Error("Function has no name");let a=r.find(c=>c.DefElem?.defname==="as")?.DefElem?.arg?.List?.items?.[0]?.String?.sval;if(!a)throw new Error("Function has no body");let l=this.plpgsqlParser.parse(a);return this.triggerFunctions.set(o,l),""}CreateTrigStmt(e,n){let r=e.trigname,s=this.RangeVar(e.relation,n),i=e.funcname?.map(u=>u.String?.sval).filter(Boolean).pop();if(!i)throw new Error(`Trigger "${r}" has no function reference`);let o=this.triggerFunctions.get(i);if(!o)throw new L({CreateTrigStmt:e},`Trigger "${r}" references unknown function "${i}"`);let a=e.timing===2?"BEFORE":e.timing===64?"INSTEAD OF":"AFTER",l=[];if(e.events&4&&l.push("INSERT"),e.events&8&&l.push("DELETE"),e.events&16)if(e.columns?.length){let u=e.columns.map(d=>d.String?.sval).filter(Boolean);l.push(`UPDATE OF ${u.join(", ")}`);}else l.push("UPDATE");let c=l.join(" OR "),f=this.buildTriggerBody(o,s,n);return [`CREATE TRIGGER ${r}`,`${a} ${c} ON ${s}`,"FOR EACH ROW","BEGIN",...f.map(u=>` ${u};`),"END"].join(`
27
+ `)}buildTriggerBody(e,n,r){let s=[],i=[];for(let o of e.statements)if(o.type!=="return"){if(o.type==="assignment"){i.push(o);continue}i.length>0&&(s.push(this.buildAssignmentUpdate(i,n,r)),i.length=0),o.type==="dml"&&s.push(this.translateDml(o.sql,r));}return i.length>0&&s.push(this.buildAssignmentUpdate(i,n,r)),s}buildAssignmentUpdate(e,n,r){let s=e.map(i=>{let o=this.translateExpression(i.expression,r);return `${i.column} = ${o}`});return `UPDATE ${n} SET ${s.join(", ")} WHERE rowid = NEW.rowid`}translateExpression(e,n){try{let r=`SELECT ${e}`,s=e.trim().toLowerCase();return s==="now()"||s==="current_timestamp"?"datetime('now')":e}catch{return e}}flattenTriggerTableRef(e,n){let r=this.effectiveSchema(e);return r?this.schemaHandling==="prefix"?`${r}__${n}`:`"${r}.${n}"`:this.quoteBareIfNeeded(n)}translateDml(e,n){let r=/^(\s*)(insert\s+into|update|delete\s+from)\s+(?:"([^"]+)"|(\w+))\s*\.\s*(?:"([^"]+)"|(\w+))/i;return e=e.replace(r,(s,i,o,a,l,c,f)=>`${i}${o} ${this.flattenTriggerTableRef(a??l,c??f)}`),e.replace(/\bnow\(\)/gi,"datetime('now')").replace(/\bcurrent_timestamp\b/gi,"datetime('now')").replace(/\bgen_random_uuid\(\)/gi,this.uuidExpression()).replace(/\buuid_generate_v4\(\)/gi,this.uuidExpression())}uuidExpression(){return "lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))"}NullTest(e,n){if(e.arg?.ColumnRef?.fields?.length>1)throw new L({NullTest:e},"row-level NULL tests are not supported in SQLite");return super.NullTest(e,n)}RenameStmt(e,n){if(!e.renameType)throw new Error("RenameStmt requires renameType");if(e.renameType==="OBJECT_POLICY")return "";let r=["OBJECT_TABLE","OBJECT_VIEW","OBJECT_COLUMN"];if(e.renameType==="OBJECT_COLUMN"&&(e.relationType==="OBJECT_FOREIGN_TABLE"||e.relationType==="OBJECT_VIEW"))throw new L({RenameStmt:e},`RenameStmt with relationType ${e.relationType} is not supported`);if(!r.includes(e.renameType))throw new L({RenameStmt:e},`RenameStmt with renameType ${e.renameType} is not supported in SQLite`);return super.RenameStmt(e,n)}DropStmt(e,n){let r=e.removeType;if(["OBJECT_TABLE","OBJECT_VIEW","OBJECT_INDEX","OBJECT_TRIGGER"].includes(r))return this.foldDropObjectSchemas(e),super.DropStmt(e,n);if(["OBJECT_POLICY"].includes(r))return "";throw new L({DropStmt:e},`DROP with removeType ${r} is not supported in SQLite`)}foldDropObjectSchemas(e){let n=e.removeType==="OBJECT_TRIGGER"?3:2;for(let r of e.objects??[]){let s=r?.List?.items;if(!Array.isArray(s)||s.length!==n)continue;let i=s[0]?.String?.sval,o=s[1]?.String?.sval;if(typeof i!="string"||typeof o!="string")continue;let a=this.effectiveSchema(i),l=a===void 0?o:this.schemaHandling==="prefix"?`${a}__${o}`:`${a}.${o}`;s.splice(0,2,{String:{sval:l}});}}generateRebuildSql(e,n){if(!this.introspection)throw new Error(`ALTER TABLE on "${e}" requires 12-step rebuild but no introspection was provided. Pass introspection in DeparseOptions to enable column type changes, NOT NULL, defaults, and constraint modifications.`);let r=this.buildDesiredSchema(this.introspection,e,n),s=new lr,i=new cr,o=s.diff(this.introspection,r);return o.has_changes?i.plan(o,this.introspection,r).steps.filter(l=>!["disable_foreign_keys","begin_transaction","commit_transaction","enable_foreign_keys"].includes(l.type)).map(l=>l.sql).join(`
28
+ `):""}buildDesiredSchema(e,n,r){let s={...e,tables:e.tables.map(i=>({...i})),columns:e.columns.map(i=>({...i})),indexes:e.indexes.map(i=>({...i})),foreign_keys:e.foreign_keys.map(i=>({...i})),primary_keys:e.primary_keys.map(i=>({...i})),views:e.views.map(i=>({...i})),triggers:(e.triggers??[]).map(i=>({...i})),check_constraints:e.check_constraints.map(i=>({...i})),unique_constraints:(e.unique_constraints??[]).map(i=>({...i})),comments:(e.comments??[]).map(i=>({...i})),custom_types:e.custom_types.map(i=>({...i}))};for(let i of r){let o=s.columns.findIndex(a=>a.table===n&&a.name===i.name);switch(i.subtype){case "AT_AlterColumnType":{if(o===-1)break;let a=this.extractTypeName(i);a&&(s.columns[o]={...s.columns[o],type:a.toLowerCase()});break}case "AT_SetNotNull":{if(o===-1)break;s.columns[o]={...s.columns[o],nullable:false};break}case "AT_DropNotNull":{if(o===-1)break;s.columns[o]={...s.columns[o],nullable:true};break}case "AT_ColumnDefault":{if(o===-1)break;if(i.def){let a=this.extractDefaultValue(i);s.columns[o]={...s.columns[o],default_value:a};}else s.columns[o]={...s.columns[o],default_value:null};break}case "AT_AddConstraint":case "AT_DropConstraint":{let a=s.tables.findIndex(l=>l.name===n);a!==-1&&(s.tables[a]={...s.tables[a],sql:s.tables[a].sql+" /* modified */"});break}}}return this.rebuildTableSql(s,n),s}rebuildTableSql(e,n){let r=e.tables.findIndex(u=>u.name===n);if(r===-1)return;let s=e.columns.filter(u=>u.table===n),i=e.foreign_keys.filter(u=>u.table===n),o=e.check_constraints.filter(u=>u.table===n),a=s.map(u=>{let d=`${N(u.name)} ${u.type||"TEXT"}`;return u.is_primary_key&&(d+=" PRIMARY KEY"),u.nullable||(d+=" NOT NULL"),u.default_value!=null&&(d+=` DEFAULT ${u.default_value}`),d}),l=i.map(u=>`FOREIGN KEY (${N(u.column)}) REFERENCES ${N(u.ref_table)}(${N(u.ref_column)}) ON UPDATE ${u.on_update} ON DELETE ${u.on_delete}`),c=o.map(u=>`CHECK (${u.expression})`),f=[...a,...l,...c];e.tables[r]={...e.tables[r],sql:`CREATE TABLE ${N(n)} (${f.join(", ")}) STRICT`};}extractTypeName(e){let n=e.def?.ColumnDef;return n?.typeName?.TypeName?(n.typeName.TypeName.names??[]).map(s=>s.String?.sval).filter(Boolean).pop()??null:null}extractDefaultValue(e){return e.def?"Integer"in e.def?String(e.def.Integer.ival):"Float"in e.def?e.def.Float.fval:"String"in e.def?`'${e.def.String.sval}'`:null:null}};});function Dy(t){return `${t?.schemaname??"public"}.${t?.relname??""}`}function PC(t){let e=t?.Constraint;if(!e||e.contype!=="CONSTR_DEFAULT")return false;let n=e.raw_expr?.FuncCall?.funcname;if(!Array.isArray(n))return false;let r=n.map(s=>s.String?.sval??s.String?.str).filter(Boolean);return r[r.length-1]?.toLowerCase()==="nextval"}function $C(t){return (Array.isArray(t.constraints)?t.constraints:[]).some(n=>n.Constraint?.contype==="CONSTR_IDENTITY")}function jy(t,e){let n=Array.isArray(t.constraints)?t.constraints:[],r=n.filter(s=>!PC(s));r.length!==n.length?(t.constraints=r,e.add(t)):$C(t)&&e.add(t);}function IC(t,e,n){let r=e?.Constraint;if(!r)return false;let s=r.contype;if(s!=="CONSTR_PRIMARY"&&s!=="CONSTR_UNIQUE"&&s!=="CONSTR_FOREIGN")return false;let i=t.tableElts??[];return s==="CONSTR_PRIMARY"&&Ly(t,r,n)||(i.push(e),t.tableElts=i),true}function Ly(t,e,n){let r=(e.keys??[]).map(o=>o.String?.sval??o.String?.str).filter(Boolean);if(r.length!==1)return false;let s=(t.tableElts??[]).find(o=>"ColumnDef"in o&&o.ColumnDef.colname===r[0]);if(!s||!n.has(s.ColumnDef))return false;let i=Array.isArray(s.ColumnDef.constraints)?s.ColumnDef.constraints:[];return i.push({Constraint:{contype:"CONSTR_PRIMARY"}}),s.ColumnDef.constraints=i,true}function NC(t,e){let n=t.tableElts??[],r=n.filter(s=>{let i=s?.Constraint;return !i||i.contype!=="CONSTR_PRIMARY"?true:!Ly(t,i,e)});r.length!==n.length&&(t.tableElts=r);}function Fy(t){let e=new WeakSet,n=new Map;for(let r of t.stmts??[]){let s=r.stmt;if(!s||!("CreateStmt"in s))continue;let i=s.CreateStmt;n.set(Dy(i.relation),i);for(let o of i.tableElts??[])"ColumnDef"in o&&jy(o.ColumnDef,e);NC(i,e);}for(let r of t.stmts??[]){let s=r.stmt;if(!s||!("AlterTableStmt"in s))continue;let i=s.AlterTableStmt,o=n.get(Dy(i.relation)),a=i.cmds??[],l=[];for(let c of a){let f=c.AlterTableCmd;f?.subtype==="AT_AddColumn"&&f.def&&"ColumnDef"in f.def&&jy(f.def.ColumnDef,e),!(o&&f?.subtype==="AT_AddConstraint"&&f.def&&IC(o,f.def,e))&&l.push(c);}i.cmds=l;}return e}var Uy=I(()=>{});var ze,xn,ku=I(()=>{_n();pr();ze=class extends L{constructor(e,n){super(e,`Unsupported expression: ${n}`);}},xn=class{deparse(e){if("A_Const"in e){let s=e.A_Const;if(s.boolval!==void 0)return s.boolval.boolval?{}:{$always:false}}let n=Object.keys(e)[0],r=this[n];if(!r)throw new ze({[n]:e},`Unsupported expression: ${n}`);return r.call(this,e[n])}deparseValue(e){if("A_Const"in e)return this.A_Const(e.A_Const);if("ColumnRef"in e)return this.ColumnRef(e.ColumnRef);if("FuncCall"in e)return this.FuncCall(e.FuncCall);if("SubLink"in e)return this.SubLink(e.SubLink);if("TypeCast"in e)return this.TypeCast(e.TypeCast);if("A_Expr"in e){let r=this.isJwtAccessor(e.A_Expr);return r||this.A_Expr(e.A_Expr)}if("BoolExpr"in e)return this.BoolExpr(e.BoolExpr);let n=Object.keys(e)[0];throw new ze({[n]:e},`deparseValue: ${n}`)}A_Expr(e){if(e.kind==="AEXPR_OP"){let n=e.name?.[0],r=n?Gs(n):void 0;if(!r)throw new ze({A_Expr:e},"A_Expr missing operator");let s=this.isJwtAccessor(e);if(s)return {[s]:{}};let i=e.lexpr?this.deparseValue(e.lexpr):void 0,o=e.rexpr?this.deparseValue(e.rexpr):void 0,a=this.mapOperator(r);if(!a)throw new ze({A_Expr:e},`Unsupported operator: ${r}`);let l=e.rexpr!=null&&"ColumnRef"in e.rexpr;if(typeof i=="string"&&i.startsWith("{{")&&l)return {[o]:{[a]:i}};let c=l&&typeof o=="string"?{$ref:o}:o;return {[i]:{[a]:c}}}if(e.kind==="AEXPR_LIKE"||e.kind==="AEXPR_ILIKE"){let n=e.lexpr?this.deparseValue(e.lexpr):void 0,r=e.rexpr?this.deparseValue(e.rexpr):void 0,i=(e.name?.[0]?Gs(e.name[0]):"~~")==="!~~"?"$notLike":"$like";return {[n]:{[i]:r}}}if(e.kind==="AEXPR_IN"){let n=e.lexpr?this.deparseValue(e.lexpr):void 0,r=e.rexpr&&"List"in e.rexpr&&e.rexpr.List.items?e.rexpr.List.items.map(s=>this.deparseValue(s)):[];return {[n]:{$in:r}}}throw new ze({A_Expr:e},`A_Expr kind: ${e.kind}`)}BoolExpr(e){let n=e.args??[];switch(e.boolop){case "AND_EXPR":return {$and:n.map(r=>this.deparse(r))};case "OR_EXPR":return {$or:n.map(r=>this.deparse(r))};case "NOT_EXPR":return {$not:this.deparse(n[0])};default:throw new ze({BoolExpr:e},`BoolExpr op: ${e.boolop}`)}}NullTest(e){let n=e.arg?this.deparseValue(e.arg):void 0;return e.nulltesttype==="IS_NULL"?{[n]:{$is:null}}:{[n]:{$isNot:null}}}SubLink(e){if(e.subLinkType==="ANY_SUBLINK"){let n=e.testexpr?this.deparseValue(e.testexpr):void 0,r=e.subselect?this.SelectStmt(e.subselect.SelectStmt):void 0;return {[n]:{$in:r}}}if(e.subLinkType==="EXISTS_SUBLINK")return {$exists:e.subselect?this.SelectStmt(e.subselect.SelectStmt):void 0};if(e.subLinkType==="EXPR_SUBLINK"){let n=e.subselect?e.subselect.SelectStmt:void 0;if(n?.fromClause?.length)return this.SelectStmt(n);if(n?.targetList?.[0]){let r=n.targetList[0],s="ResTarget"in r?r.ResTarget:void 0;if(s?.val){let i=this.deparseValue(s.val);return i}}}throw new ze({SubLink:e},`SubLink type: ${e.subLinkType}`)}SelectStmt(e){let{from:n,schema:r,join:s}=this.deparseFromClause(e.fromClause??[]),i=[];for(let d of e.targetList??[]){let p="ResTarget"in d?d.ResTarget:void 0;if(p?.val){let g=this.deparseValue(p.val);Array.isArray(g)?i.push(...g.map(String)):g!=null&&g!==""&&i.push(String(g));}}let o=e.whereClause?this.deparse(e.whereClause):void 0,a=this.deparseSortClause(e.sortClause),l=this.deparseLimit(e.limitCount),c=this.deparseLimit(e.limitOffset),f=this.deparseGroupClause(e.groupClause),u={type:"query",from:n,select:i};return r&&(u.schema=r),Object.keys(s).length>0&&(u.join=s),o&&(u.where=o),a.length>0&&(u.order=a),l!==void 0&&(u.limit=l),c!==void 0&&(u.offset=c),f.length>0&&(u.group=f),u}FuncCall(e){let n=this.isAuthFunc(e.funcname??[]);if(n)return n;throw new ze({FuncCall:e},`FuncCall: ${At(e.funcname??[]).join(".")}`)}ColumnRef(e){let n=At(e.fields??[]);return n.length===1?n[0]:n.join(".")}A_Const(e){if(e.boolval!==void 0)return e.boolval.boolval;if(e.ival!==void 0)return e.ival.ival??0;if(e.fval!==void 0)return parseFloat(e.fval.fval??"0");if(e.sval!==void 0)return e.sval.sval??"";if(e.isnull)return null;throw new ze({A_Const:e},"A_Const: unknown variant")}TypeCast(e){if(!e.arg)throw new ze({TypeCast:e},"TypeCast: missing arg");return this.deparseValue(e.arg)}BooleanTest(e){let n=e.arg?this.deparseValue(e.arg):void 0;return e.booltesttype==="IS_TRUE"?{[n]:{$eq:true}}:{[n]:{$eq:false}}}deparseFromClause(e){let n={};if(e.length===0)return {from:"",join:n};let r=e[0];if("RangeVar"in r){let s=r.RangeVar;return {from:s.relname??"",schema:s.schemaname,join:n}}if("JoinExpr"in r){let{from:s,schema:i}=this.walkJoinExpr(r.JoinExpr,n);return {from:s,schema:i,join:n}}return {from:"",join:n}}walkJoinExpr(e,n){let r={from:""};if(e.larg)if("RangeVar"in e.larg){let s=e.larg.RangeVar;r={from:s.relname??"",schema:s.schemaname};}else "JoinExpr"in e.larg&&(r=this.walkJoinExpr(e.larg.JoinExpr,n));if(e.rarg&&"RangeVar"in e.rarg){let s=e.rarg.RangeVar,i=s.relname??"",o=s.alias?.aliasname??i,a=e.jointype==="JOIN_LEFT"?"left":"inner",l={from:i,type:a};e.quals&&(l.on=this.deparse(e.quals));let c=o;if(c in n){let f=2;for(;`${c}_${f}`in n;)f++;c=`${c}_${f}`;}n[c]=l;}return r}deparseSortClause(e){if(!e)return [];let n=[];for(let r of e){if(!("SortBy"in r))continue;let s=r.SortBy;if(!s.node)continue;let i=String(this.deparseValue(s.node)),o=s.sortby_dir==="SORTBY_DESC"?"desc":"asc",a={column:i,direction:o};s.sortby_nulls==="SORTBY_NULLS_FIRST"?a.nullsFirst=true:s.sortby_nulls==="SORTBY_NULLS_LAST"&&(a.nullsFirst=false),n.push(a);}return n}deparseLimit(e){if(!e)return;let n=this.deparseValue(e);return typeof n=="number"?n:Number(n)}deparseGroupClause(e){return e?e.map(n=>String(this.deparseValue(n))):[]}isAuthFunc(e){let n=At(e);if(n.length===2&&n[0]==="auth"){if(n[1]==="uid")return "{{auth.uid}}";if(n[1]==="jwt")return "{{auth.jwt}}";if(n[1]==="role")return "{{auth.role}}";throw new Error(`Unsupported auth function: "${n.slice(1).join(".")}"`)}return null}isJwtAccessor(e){if(e.kind!=="AEXPR_OP")return null;let n=e.name?.[0]?Gs(e.name[0]):void 0;if(n!=="->"&&n!=="->>")return null;let r=e.rexpr&&"A_Const"in e.rexpr?e.rexpr.A_Const.sval?.sval:void 0;if(r===void 0)return null;if(e.lexpr&&"FuncCall"in e.lexpr)return this.isAuthFunc(e.lexpr.FuncCall.funcname??[])==="{{auth.jwt}}"?`{{auth.jwt.${r}}}`:null;if(e.lexpr&&"A_Expr"in e.lexpr){let s=this.isJwtAccessor(e.lexpr.A_Expr);if(s)return `${s.slice(0,-2)}.${r}}}`}return null}mapOperator(e){switch(e){case "=":return "$eq";case "<>":case "!=":return "$neq";case ">":return "$gt";case ">=":return "$gte";case "<":return "$lt";case "<=":return "$lte";case "~~":return "$like";case "!~~":return "$notLike";default:return}}};});function Hy(t){let e=new Map;for(let n of t.stmts??[]){if(!n.stmt||!("CreateEnumStmt"in n.stmt))continue;let r=n.stmt.CreateEnumStmt,s=At(r.typeName??[]).join(".");if(!s||!r.vals)continue;let i=At(r.vals);e.set(s.toLowerCase(),i);}return e}function Wy(t){let e=new Map;for(let n of t.stmts??[]){if(!n.stmt||!("VariableSetStmt"in n.stmt))continue;let r=n.stmt.VariableSetStmt,s=r.name,i=Ay(r.args?.[0]??{});e.set(s,{value:i,local:r.is_local});}return e}function By(t){let e=[],n=false;for(let r of t??[])if("RoleSpec"in r){let s=r.RoleSpec;s.roletype==="ROLESPEC_PUBLIC"?s.location===-1&&(n=true):s.roletype==="ROLESPEC_CSTRING"&&s.rolename&&e.push(s.rolename);}return {roles:e,implicitPublic:n}}function ea(t,e){return t&&t.length>0?t:e}function vu(t,e,n){return t.findIndex(r=>r.data.name===e.name&&r.data.table===e.table&&ea(r.data.schema,n)===ea(e.schema,n))}function Au(t,e){return new Error(`policy "${t}" for table "${e}" does not exist`)}function qy(t,e,n,r){return t.data.table===e&&ea(t.data.schema,r)===ea(n,r)}function Ky(t,e={}){let n=e.defaultSchema||"public",r=e.validateMutations===true,s=new xn,i=new Set,o=[];for(let a of t.stmts??[])if(a.stmt){if("CreatePolicyStmt"in a.stmt){let l=a.stmt.CreatePolicyStmt,c=l.table?.relname??"",f=l.table?.schemaname,u={select:"SELECT",insert:"INSERT",update:"UPDATE",delete:"DELETE"},d=l.cmd_name?u[l.cmd_name]??"ALL":"ALL",p=l.permissive===true,{roles:g,implicitPublic:m}=By(l.roles),h=l.qual?s.deparse(l.qual):void 0,y=l.with_check?s.deparse(l.with_check):void 0;if(m){let S=f?`${f}.${c}`:c,b=l.policy_name??"",_=`${S}::${b}`;if(!My.has(_)){My.add(_);let E=JSON.stringify(h)+JSON.stringify(y);/\{\{auth\.(uid|jwt|role)/i.test(E)||console.warn(`[supalite] policy "${b}" on "${S}" has no TO clause \u2014 applies to all roles (PUBLIC). For clarity, prefer an explicit \`TO <role>\` clause (e.g. \`TO authenticated\`).`);}}let w=new Ge({name:l.policy_name??"",table:c,schema:f,command:d,permissive:p,roles:g,using:h,withCheck:y});o.push(w);}if("DropStmt"in a.stmt&&a.stmt.DropStmt.removeType==="OBJECT_POLICY"){let l=a.stmt.DropStmt,c=l.objects?.[0];if(c&&"List"in c){let f=At(c.List.items??[]),u=f[f.length-1],d=f[f.length-2],p=f.length>=3?f[f.length-3]:void 0;if(u&&d){let g=vu(o,{name:u,table:d,schema:p},n);if(g!==-1)o.splice(g,1);else if(r&&!l.missing_ok)throw Au(u,d)}}}if("AlterPolicyStmt"in a.stmt){let l=a.stmt.AlterPolicyStmt,c=l.policy_name??"",f=l.table?.relname??"",u=l.table?.schemaname,d=vu(o,{name:c,table:f,schema:u},n);if(d===-1){if(r)throw Au(c,f);continue}let p=o[d].data,g=l.roles?By(l.roles).roles:p.roles,m=l.qual?s.deparse(l.qual):p.using,h=l.with_check?s.deparse(l.with_check):p.withCheck;o[d]=new Ge({...p,roles:g,using:m,withCheck:h});}if("RenameStmt"in a.stmt&&a.stmt.RenameStmt.renameType==="OBJECT_POLICY"){let l=a.stmt.RenameStmt,c=l.subname??"",f=l.relation?.relname??"",u=l.relation?.schemaname,d=vu(o,{name:c,table:f,schema:u},n);if(d===-1){if(r)throw Au(c,f);continue}l.newname&&(o[d]=new Ge({...o[d].data,name:l.newname}));}if("RenameStmt"in a.stmt&&a.stmt.RenameStmt.renameType==="OBJECT_TABLE"){let l=a.stmt.RenameStmt,c=l.relation?.relname??"",f=l.newname??"",u=l.relation?.schemaname;if(c&&f&&c!==f){i.delete(c)&&i.add(f);for(let d=0;d<o.length;d++)qy(o[d],c,u,n)&&(o[d]=new Ge({...o[d].data,table:f}));}}if("DropStmt"in a.stmt&&a.stmt.DropStmt.removeType==="OBJECT_TABLE")for(let l of a.stmt.DropStmt.objects??[]){if(!("List"in l))continue;let c=At(l.List.items??[]),f=c[c.length-1],u=c.length>=2?c[c.length-2]:void 0;if(f){i.delete(f);for(let d=o.length-1;d>=0;d--)qy(o[d],f,u,n)&&o.splice(d,1);}}if("AlterTableStmt"in a.stmt){let l=a.stmt.AlterTableStmt,c=l.relation?.relname??"";for(let f of l.cmds??[]){if(!("AlterTableCmd"in f))continue;let u=f.AlterTableCmd.subtype;u==="AT_EnableRowSecurity"?i.add(c):u==="AT_DisableRowSecurity"&&i.delete(c);}}}return {policies:o,tables:i}}function Jy(t,e){let n=new Map;for(let r of t.stmts??[]){if(!r.stmt||!("CreateStmt"in r.stmt))continue;let s=r.stmt.CreateStmt,i=s.relation?.relname??"",o=s.relation?.schemaname??"public";if(!i)continue;let a=new at(i,o);for(let l of s.tableElts??[]){if(!("ColumnDef"in l))continue;let c=l.ColumnDef,f=c.colname;if(!f)continue;let u=c.typeName?.names?.map(R=>R.String?.sval||R.String?.str).filter(Boolean),d=u&&(u.length===2&&u[0]==="pg_catalog"?u[1]:u[0]);if(!d)continue;let p=!!c.typeName?.arrayBounds?.length,g=Array.isArray(c.typeName?.typmods)?c.typeName.typmods:[],m=R=>g[R]?.A_Const?.ival?.ival??g[R]?.A_Const?.val?.ival?.ival,h={isArray:p};if(zo(d)&&g.length>0){let R=m(0);typeof R=="number"&&R>0&&(h.lengthConstraint=R);}if(Vo(d)&&g.length>=2){let R=m(0),U=m(1);typeof R=="number"&&typeof U=="number"&&R>0&&U>=0&&(h.numericPrecision={precision:R,scale:U});}let y=e.get(d.toLowerCase());y&&(h.enumValues=y);let w=Array.isArray(c.constraints)?c.constraints:[],S=w.some(R=>R.Constraint?.contype==="CONSTR_PRIMARY"),b=Go(d)||w.some(R=>R.Constraint?.contype==="CONSTR_IDENTITY"),_=w.some(R=>R.Constraint?.contype==="CONSTR_NOTNULL"),E=w.find(R=>R.Constraint?.contype==="CONSTR_UNIQUE"),x=w.find(R=>R.Constraint?.contype==="CONSTR_GENERATED"),O=w.find(R=>R.Constraint?.contype==="CONSTR_FOREIGN"),v=w.find(R=>R.Constraint?.contype==="CONSTR_CHECK"),P;if(O){let R=O.Constraint,U=R.pktable?.relname,J=R.pktable?.schemaname,F=R.pk_attrs?.[0]?.String?.sval;U&&F&&(P={refSchema:J,refTable:U,refColumn:F,constraintName:R.conname||void 0});}let C={schema:o,table:i,column:f,pgTypeName:d,nullable:!_&&!S,defaultValue:null,defaultFn:null,isPrimaryKey:S,isUnique:!!E,isSerial:b,isGenerated:!!x,fkRef:P,hasCheck:!!v,checkConstraintName:v?.Constraint?.conname||void 0,uniqueConstraintName:E?.Constraint?.conname||void 0};a.set(f,We(C,h));}n.set(`${o}.${i}`,a);}return n}function Gy(t){let e=[];for(let n of t.stmts??[]){if(!n.stmt||!("CreateStmt"in n.stmt))continue;let r=n.stmt.CreateStmt,s=r.relation?.relname??"",i=r.relation?.schemaname??"public";if(s)for(let o of r.tableElts??[]){if("ColumnDef"in o)continue;let a=o;if(!a.Constraint)continue;let l=a.Constraint,c=l.contype;if(c==="CONSTR_UNIQUE"){let f=(l.keys??[]).map(u=>u.String?.sval??u.String?.str).filter(Boolean);if(f.length===0)continue;e.push({schema:i,table:s,kind:"unique",name:l.conname||void 0,columns:f});}else if(c==="CONSTR_CHECK")e.push({schema:i,table:s,kind:"check",name:l.conname||void 0,columns:[]});else if(c==="CONSTR_FOREIGN"){let f=(l.fk_attrs??[]).map(p=>p.String?.sval??p.String?.str).filter(Boolean),u=(l.pk_attrs??[]).map(p=>p.String?.sval??p.String?.str).filter(Boolean),d=l.pktable?.relname;if(!d)continue;e.push({schema:i,table:s,kind:"foreign_key",name:l.conname||void 0,columns:f,refSchema:l.pktable?.schemaname,refTable:d,refColumns:u});}}}return e}function zy(t){let e=[];for(let n of t.stmts??[]){if(!n.stmt||!("CommentStmt"in n.stmt))continue;let r=n.stmt.CommentStmt,s=r.comment??"";if(!s)continue;let i=r.objtype,o=(r.object?.List?.items??r.object?.items??[]).map(a=>a.String?.sval??a.String?.str).filter(Boolean);if(o.length!==0){if(i==="OBJECT_TABLE"||i==="OBJECT_VIEW"){let[a,l]=o.length>=2?o:["public",o[0]];e.push({schema:a,table:l,text:s});}else if(i==="OBJECT_COLUMN"){let a="public",l,c;o.length>=3?[a,l,c]=o:[l,c]=o,e.push({schema:a,table:l,column:c,text:s});}}}return e}var My,Vy=I(()=>{ku();_n();Ks();Kl();pr();My=new Set;});var Yy={};Xs(Yy,{Policy:()=>Ge,deparseDdl:()=>Ou,deparseExpression:()=>LC,deparsePostgresDdl:()=>jC,deparseSelect:()=>FC,parse:()=>fr,parseExpression:()=>Xy,translatePostgresDdl:()=>Qy});async function Qy(t,e={}){let n=await fr(t);return Ou(n,e).ddl}async function jC(t,e={}){let n=await fr(t);return {ast:n,...Ou(n,e)}}function Ou(t,e={}){let n=Fy(t),r=Hy(t),s=Jy(t,r),i=Wy(t),o=Gy(t),a=zy(t),l=new Zo(t,{...e,enums:r,serialColumns:n}),{policies:c,tables:f}=Ky(t,{defaultSchema:e.defaultSchema,validateMutations:e.strict});if(e.strict)for(let u of c){if(!s.get(`${u.data.schema??"public"}.${u.data.table}`))throw new Error(`Policy "${u.data.name}" references unknown table "${u.data.table}"`);if(!f.has(u.data.table))throw new Error(`RLS is not enabled on table "${u.data.table}"`)}return {ddl:l.deparseQuery(),enums:r,rls:{tables:f,policies:c},schema:s,vars:i,tableConstraints:o,comments:a}}async function Xy(t){let n=(await fr(`SELECT 1 WHERE ${t}`)).stmts?.[0]?.stmt;if(!n||!("SelectStmt"in n))throw new Error("expected SelectStmt");let r=n.SelectStmt.whereClause;if(!r)throw new Error("no whereClause");return r}async function LC(t){let e=await Xy(t);return new xn().deparse(e)}async function FC(t){let n=(await fr(t)).stmts?.[0]?.stmt;if(!n||!("SelectStmt"in n))throw new Error("expected SelectStmt");return new xn().deparse(n)}var Pu=I(()=>{vy();Ny();Uy();ku();Vy();Ks();});function Nu(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),n.push.apply(n,r);}return n}function Du(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Nu(Object(n),true).forEach(function(r){ub(t,r,n[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Nu(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r));});}return t}function ub(t,e,n){return e=fb(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:true,configurable:true,writable:true}):t[e]=n,t}function fb(t){var e=db(t,"string");return typeof e=="symbol"?e:String(e)}function db(t,e){if(typeof t!="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return (e==="string"?String:Number)(t)}var pb=ju({}),je=pb;function ju(t){return e.withOptions=n=>ju(Du(Du({},t),n)),e;function e(n,...r){let s=typeof n=="string"?[n]:n.raw,{alignValues:i=false,escapeSpecialCharacters:o=Array.isArray(n),trimWhitespace:a=true}=t,l="";for(let u=0;u<s.length;u++){let d=s[u];if(o&&(d=d.replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`").replace(/\\\$/g,"$").replace(/\\\{/g,"{")),l+=d,u<r.length){let p=i?mb(r[u],l):r[u];l+=p;}}let c=l.split(`
29
+ `),f=null;for(let u of c){let d=u.match(/^(\s+)\S+/);if(d){let p=d[1].length;f?f=Math.min(f,p):f=p;}}if(f!==null){let u=f;l=c.map(d=>d[0]===" "||d[0]===" "?d.slice(u):d).join(`
30
30
  `);}return a&&(l=l.trim()),o&&(l=l.replace(/\\n/g,`
31
- `).replace(/\\t/g," ").replace(/\\r/g,"\r").replace(/\\v/g,"\v").replace(/\\b/g,"\b").replace(/\\f/g,"\f").replace(/\\0/g,"\0").replace(/\\x([\da-fA-F]{2})/g,(f,p)=>String.fromCharCode(parseInt(p,16))).replace(/\\u\{([\da-fA-F]{1,6})\}/g,(f,p)=>String.fromCodePoint(parseInt(p,16))).replace(/\\u([\da-fA-F]{4})/g,(f,p)=>String.fromCharCode(parseInt(p,16)))),typeof Bun<"u"&&(l=l.replace(/\\u(?:\{([\da-fA-F]{1,6})\}|([\da-fA-F]{4}))/g,(f,p,d)=>{var g;let m=(g=p??d)!==null&&g!==void 0?g:"";return String.fromCodePoint(parseInt(m,16))})),l}}function eS(t,e){if(typeof t!="string"||!t.includes(`
31
+ `).replace(/\\t/g," ").replace(/\\r/g,"\r").replace(/\\v/g,"\v").replace(/\\b/g,"\b").replace(/\\f/g,"\f").replace(/\\0/g,"\0").replace(/\\x([\da-fA-F]{2})/g,(u,d)=>String.fromCharCode(parseInt(d,16))).replace(/\\u\{([\da-fA-F]{1,6})\}/g,(u,d)=>String.fromCodePoint(parseInt(d,16))).replace(/\\u([\da-fA-F]{4})/g,(u,d)=>String.fromCharCode(parseInt(d,16)))),typeof Bun<"u"&&(l=l.replace(/\\u(?:\{([\da-fA-F]{1,6})\}|([\da-fA-F]{4}))/g,(u,d,p)=>{var g;let m=(g=d??p)!==null&&g!==void 0?g:"";return String.fromCodePoint(parseInt(m,16))})),l}}function mb(t,e){if(typeof t!="string"||!t.includes(`
32
32
  `))return t;let r=e.slice(e.lastIndexOf(`
33
33
  `)+1).match(/^(\s+)/);if(r){let s=r[1];return t.replace(/\n/g,`
34
- ${s}`)}return t}ie();var Uf=[{name:"Self-hosted Logflare Configuration",link:"https://supabase.com/docs/reference/self-hosting-analytics/list-endpoints#getting-started"}],Pi=["analytics"],Bf=b.strictObject({enabled:b.boolean({default:false,description:"Enable the local Logflare service.",tags:Pi,links:Uf}),port:b.number({default:54327,description:"Port to the local Logflare service.",tags:Pi}),vector_port:b.number({default:54328,description:"Port to the local syslog ingest service.",tags:Pi}),backend:b.string({enum:["postgres","bigquery"],default:"postgres",description:Le`
34
+ ${s}`)}return t}var Lu=[{name:"Self-hosted Logflare Configuration",link:"https://supabase.com/docs/reference/self-hosting-analytics/list-endpoints#getting-started"}],Ys=["analytics"],Fu=s.strictObject({enabled:s.boolean({default:false,description:"Enable the local Logflare service.",tags:Ys,links:Lu}),port:s.number({default:54327,description:"Port to the local Logflare service.",tags:Ys}),vector_port:s.number({default:54328,description:"Port to the local syslog ingest service.",tags:Ys}),backend:s.string({enum:["postgres","bigquery"],default:"postgres",description:je`
35
35
  Configure one of the supported backends:
36
36
 
37
37
  - \`postgres\`
38
- - \`bigquery\``,tags:Pi,links:Uf})}).partial();ie();var tS=Symbol.for("lite-only"),Bt=t=>(Object.defineProperty(t,tS,{value:true,enumerable:false,writable:false,configurable:false}),t);var st=[{name:"PostgREST configuration",link:"https://postgrest.org/en/stable/configuration.html"}],We=["api"],qf=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local PostgREST service.",tags:We,links:st}),port:b.number({default:54321,description:"Port to use for the API URL.",tags:We,links:st}),schemas:b.array(b.string({description:"Schemas to expose in your API. Tables, views and functions in this schema will get API endpoints. `public` and `storage` are always included.",tags:We,links:st}),{default:["public","storage","graphql_public"]}),extra_search_path:b.array(b.string({description:"Extra schemas to add to the search_path of every request. public is always included.",tags:We,links:st}),{default:["public","extensions"]}),max_rows:b.number({default:1e3,description:"The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests.",tags:We,links:st}),pg_safe_update:b.boolean({default:false,description:"Require a WHERE clause on UPDATE and DELETE requests. Equivalent to pg_safe_update extension.",tags:We,links:st}),plan_enabled:Bt(b.boolean({default:false,description:"Enable the EXPLAIN plan feature via `Accept: application/vnd.pgrst.plan`. Disabled by default to match PostgREST's `db-plan-enabled` setting.",tags:We,links:st})),aggregates_enabled:Bt(b.boolean({default:false,description:"Enable aggregate functions (count(), sum(), avg(), min(), max()) in select. Disabled by default to match PostgREST's `db-aggregates-enabled` setting.",tags:We,links:st})),limited_mutations_enabled:Bt(b.boolean({default:false,description:"Honor `?limit`, `?offset`, and `?order` on UPDATE/DELETE via subquery. Disabled by default to match PostgREST's silent-ignore behavior.",tags:We,links:st})),anonymous_enabled:Bt(b.boolean({default:true,description:"Allow requests without an Authorization header. When false, unauthenticated requests receive 401 PGRST302 'Anonymous access is disabled'. Mirrors PostgREST's `db-anon-role`.",tags:We,links:st})),tls:b.strictObject({enabled:b.boolean({default:false,description:"Enable TLS for the local PostgREST service.",tags:We})}).partial(),external_url:b.string({default:"http://127.0.0.1:54321",description:"External URL for accessing the API server.",tags:We})}).partial();ie();ie();var un=["auth"],fn={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"}},Jr=(t,e)=>b.strictObject({subject:b.string({default:e,description:`The subject of the ${t} email.`}),content_path:b.string({description:`The path to the content of the ${t} email.`})}).partial(),Hf=b.strictObject({enable_signup:b.boolean({default:true,description:"Allow/disallow new user signups via email to your project.",tags:un,links:[fn.auth]}),double_confirm_changes:b.boolean({default:true,description:"If enabled, a user will be required to confirm any email change on both the old, and new email addresses. If disabled, only the new email is required to confirm.",tags:un,links:[fn.auth]}),enable_confirmations:b.boolean({default:false,description:"If enabled, users need to confirm their email address before signing in.",tags:un,links:[fn.auth]}),secure_password_change:b.boolean({default:false,description:"If enabled, users will need to reauthenticate or have logged in recently to change their password.",tags:un,links:[fn.auth]}),max_frequency:b.string({default:"1s",description:"Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email.",tags:un,links:[fn.auth]}),smtp:b.strictObject({host:b.string({default:"inbucket",description:"Hostname or IP address of the SMTP server."}),port:b.number({default:2500,description:"Port number of the SMTP server."}),user:b.string({description:"Username for authenticating with the SMTP server."}),pass:b.string({description:"Password for authenticating with the SMTP server."}),admin_email:b.string({default:"admin@email.com",description:"Email used as the sender for emails sent from the application."}),sender_name:b.string({description:"Display name used as the sender for emails sent from the application."})}).partial(),template:b.strictObject({invite:Jr("invite","You have been invited"),confirmation:Jr("confirmation","Confirm Your Signup"),recovery:Jr("recovery","Reset Your Password"),magic_link:Jr("magic link","Your Magic Link"),email_change:Jr("email change","Confirm Email Change")}).partial(),otp_length:b.number({default:6,description:"Number of characters used in the email OTP.",tags:un,links:[fn.auth]}),otp_expiry:b.number({default:3600,description:"Number of seconds before the email OTP expires (defaults to 1 hour).",tags:un,links:[fn.auth]})}).partial();ie();var Ni=["auth"],Ga=(t,e)=>({name:t,link:`https://supabase.com/docs/guides/auth/auth-hooks/${e}`}),zr=(t,e)=>b.strictObject({enabled:b.boolean({default:false,description:`Enable/disable the ${t.toLowerCase()}.`,tags:Ni,links:[Ga(t,e)]}),uri:b.string({description:"The URI of the postgres function or HTTP endpoint to call.",tags:Ni,links:[Ga(t,e)]}),secrets:b.array(b.string({description:"A secret to pass to the function or endpoint.",tags:Ni}),{description:"The secrets to pass to the postgres function or HTTP endpoint.",tags:Ni,links:[Ga(t,e)]})}).partial(),Wf=b.strictObject({mfa_verification_attempt:zr("MFA Verification Hook","mfa-verification-hook"),password_verification_attempt:zr("Password Verification Hook","password-verification-hook"),custom_access_token:zr("Custom Access Token Hook","custom-access-token-hook"),send_sms:zr("Send SMS Hook","send-sms-hook"),send_email:zr("Send Email Hook","send-email-hook")}).partial();ie();var qt=["auth"],Ht={mfa:{name:"Multi-Factor Authentication",link:"https://supabase.com/docs/guides/auth/auth-mfa"},totp:{name:"Multi-Factor Authentication (TOTP)",link:"https://supabase.com/docs/guides/auth/auth-mfa/totp"},phone:{name:"Multi-Factor Authentication (Phone)",link:"https://supabase.com/docs/guides/auth/auth-mfa/phone"}},Kf=b.strictObject({totp:b.strictObject({enroll_enabled:b.boolean({default:true,description:"Allow/disallow TOTP enrollment for users.",tags:qt,links:[Ht.totp]}),verify_enabled:b.boolean({default:true,description:"Allow/disallow TOTP verification for users.",tags:qt,links:[Ht.totp]})}).partial(),phone:b.strictObject({enroll_enabled:b.boolean({default:false,description:"Allow/disallow phone enrollment for users.",tags:qt,links:[Ht.phone]}),verify_enabled:b.boolean({default:false,description:"Allow/disallow phone verification for users.",tags:qt,links:[Ht.phone]}),otp_length:b.number({default:6,description:"The length of the OTP code.",tags:qt,links:[Ht.phone]}),template:b.string({default:"Your code is {{ .Code }}",description:"The template to use for the phone message.",tags:qt,links:[Ht.phone]}),max_frequency:b.string({default:"60s",description:"The maximum frequency of the phone messages.",tags:qt,links:[Ht.phone]})}).partial(),max_enrolled_factors:b.number({default:10,description:"The maximum number of MFA factors a user can enroll in.",tags:qt,links:[Ht.mfa]})}).partial();ie();ie();var Qa=class extends Va{},_t=t=>new Qa(t);var Wn=["auth"],he=t=>{let e=[{name:`Login with ${t.name}`,link:`https://supabase.com/docs/guides/auth/social-login/auth-${t.id}`}];return b.strictObject({enabled:b.boolean({default:false,description:`Use the ${t.name} OAuth provider.`,tags:Wn,links:e}),client_id:b.string({description:`Client ID for the ${t.name} OAuth provider.`,tags:Wn,links:e}),secret:_t({default:`env(SUPABASE_AUTH_EXTERNAL_${t.id.toUpperCase()}_SECRET)`,description:Le`
38
+ - \`bigquery\``,tags:Ys,links:Lu})}).partial();var hb=Symbol.for("lite-only"),Pt=t=>(Object.defineProperty(t,hb,{value:true,enumerable:false,writable:false,configurable:false}),t);var nt=[{name:"PostgREST configuration",link:"https://postgrest.org/en/stable/configuration.html"}],Be=["api"],Uu=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local PostgREST service.",tags:Be,links:nt}),port:s.number({default:54321,description:"Port to use for the API URL.",tags:Be,links:nt}),schemas:s.array(s.string({description:"Schemas to expose in your API. Tables, views and functions in this schema will get API endpoints. `public` and `storage` are always included.",tags:Be,links:nt}),{default:["public","storage","graphql_public"]}),extra_search_path:s.array(s.string({description:"Extra schemas to add to the search_path of every request. public is always included.",tags:Be,links:nt}),{default:["public","extensions"]}),max_rows:s.number({default:1e3,description:"The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests.",tags:Be,links:nt}),pg_safe_update:s.boolean({default:false,description:"Require a WHERE clause on UPDATE and DELETE requests. Equivalent to pg_safe_update extension.",tags:Be,links:nt}),plan_enabled:Pt(s.boolean({default:false,description:"Enable the EXPLAIN plan feature via `Accept: application/vnd.pgrst.plan`. Disabled by default to match PostgREST's `db-plan-enabled` setting.",tags:Be,links:nt})),aggregates_enabled:Pt(s.boolean({default:false,description:"Enable aggregate functions (count(), sum(), avg(), min(), max()) in select. Disabled by default to match PostgREST's `db-aggregates-enabled` setting.",tags:Be,links:nt})),limited_mutations_enabled:Pt(s.boolean({default:false,description:"Honor `?limit`, `?offset`, and `?order` on UPDATE/DELETE via subquery. Disabled by default to match PostgREST's silent-ignore behavior.",tags:Be,links:nt})),anonymous_enabled:Pt(s.boolean({default:true,description:"Allow requests without an Authorization header. When false, unauthenticated requests receive 401 PGRST302 'Anonymous access is disabled'. Mirrors PostgREST's `db-anon-role`.",tags:Be,links:nt})),tls:s.strictObject({enabled:s.boolean({default:false,description:"Enable TLS for the local PostgREST service.",tags:Be})}).partial(),external_url:s.string({default:"http://127.0.0.1:54321",description:"External URL for accessing the API server.",tags:Be})}).partial();var zt=["auth"],Vt={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"}},yr=(t,e)=>s.strictObject({subject:s.string({default:e,description:`The subject of the ${t} email.`}),content_path:s.string({description:`The path to the content of the ${t} email.`})}).partial(),Mu=s.strictObject({enable_signup:s.boolean({default:true,description:"Allow/disallow new user signups via email to your project.",tags:zt,links:[Vt.auth]}),double_confirm_changes:s.boolean({default:true,description:"If enabled, a user will be required to confirm any email change on both the old, and new email addresses. If disabled, only the new email is required to confirm.",tags:zt,links:[Vt.auth]}),enable_confirmations:s.boolean({default:false,description:"If enabled, users need to confirm their email address before signing in.",tags:zt,links:[Vt.auth]}),secure_password_change:s.boolean({default:false,description:"If enabled, users will need to reauthenticate or have logged in recently to change their password.",tags:zt,links:[Vt.auth]}),max_frequency:s.string({default:"1s",description:"Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email.",tags:zt,links:[Vt.auth]}),smtp:s.strictObject({host:s.string({default:"inbucket",description:"Hostname or IP address of the SMTP server."}),port:s.number({default:2500,description:"Port number of the SMTP server."}),user:s.string({description:"Username for authenticating with the SMTP server."}),pass:s.string({description:"Password for authenticating with the SMTP server."}),admin_email:s.string({default:"admin@email.com",description:"Email used as the sender for emails sent from the application."}),sender_name:s.string({description:"Display name used as the sender for emails sent from the application."})}).partial(),template:s.strictObject({invite:yr("invite","You have been invited"),confirmation:yr("confirmation","Confirm Your Signup"),recovery:yr("recovery","Reset Your Password"),magic_link:yr("magic link","Your Magic Link"),email_change:yr("email change","Confirm Email Change")}).partial(),otp_length:s.number({default:6,description:"Number of characters used in the email OTP.",tags:zt,links:[Vt.auth]}),otp_expiry:s.number({default:3600,description:"Number of seconds before the email OTP expires (defaults to 1 hour).",tags:zt,links:[Vt.auth]})}).partial();var Zs=["auth"],oa=(t,e)=>({name:t,link:`https://supabase.com/docs/guides/auth/auth-hooks/${e}`}),br=(t,e)=>s.strictObject({enabled:s.boolean({default:false,description:`Enable/disable the ${t.toLowerCase()}.`,tags:Zs,links:[oa(t,e)]}),uri:s.string({description:"The URI of the postgres function or HTTP endpoint to call.",tags:Zs,links:[oa(t,e)]}),secrets:s.array(s.string({description:"A secret to pass to the function or endpoint.",tags:Zs}),{description:"The secrets to pass to the postgres function or HTTP endpoint.",tags:Zs,links:[oa(t,e)]})}).partial(),Bu=s.strictObject({mfa_verification_attempt:br("MFA Verification Hook","mfa-verification-hook"),password_verification_attempt:br("Password Verification Hook","password-verification-hook"),custom_access_token:br("Custom Access Token Hook","custom-access-token-hook"),send_sms:br("Send SMS Hook","send-sms-hook"),send_email:br("Send Email Hook","send-email-hook")}).partial();var $t=["auth"],It={mfa:{name:"Multi-Factor Authentication",link:"https://supabase.com/docs/guides/auth/auth-mfa"},totp:{name:"Multi-Factor Authentication (TOTP)",link:"https://supabase.com/docs/guides/auth/auth-mfa/totp"},phone:{name:"Multi-Factor Authentication (Phone)",link:"https://supabase.com/docs/guides/auth/auth-mfa/phone"}},qu=s.strictObject({totp:s.strictObject({enroll_enabled:s.boolean({default:true,description:"Allow/disallow TOTP enrollment for users.",tags:$t,links:[It.totp]}),verify_enabled:s.boolean({default:true,description:"Allow/disallow TOTP verification for users.",tags:$t,links:[It.totp]})}).partial(),phone:s.strictObject({enroll_enabled:s.boolean({default:false,description:"Allow/disallow phone enrollment for users.",tags:$t,links:[It.phone]}),verify_enabled:s.boolean({default:false,description:"Allow/disallow phone verification for users.",tags:$t,links:[It.phone]}),otp_length:s.number({default:6,description:"The length of the OTP code.",tags:$t,links:[It.phone]}),template:s.string({default:"Your code is {{ .Code }}",description:"The template to use for the phone message.",tags:$t,links:[It.phone]}),max_frequency:s.string({default:"60s",description:"The maximum frequency of the phone messages.",tags:$t,links:[It.phone]})}).partial(),max_enrolled_factors:s.number({default:10,description:"The maximum number of MFA factors a user can enroll in.",tags:$t,links:[It.mfa]})}).partial();var aa=class extends yt.StringSchema{},gt=t=>new aa(t);var Qt=["auth"],me=t=>{let e=[{name:`Login with ${t.name}`,link:`https://supabase.com/docs/guides/auth/social-login/auth-${t.id}`}];return s.strictObject({enabled:s.boolean({default:false,description:`Use the ${t.name} OAuth provider.`,tags:Qt,links:e}),client_id:s.string({description:`Client ID for the ${t.name} OAuth provider.`,tags:Qt,links:e}),secret:gt({default:`env(SUPABASE_AUTH_EXTERNAL_${t.id.toUpperCase()}_SECRET)`,description:je`
39
39
  Client secret for the ${t.name} OAuth provider.
40
40
 
41
41
  DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead.
42
- `,tags:Wn,links:e}),url:b.string({description:"The base URL used for constructing the URLs to request authorization and access tokens.",...t.url,tags:Wn,links:e}),redirect_uri:b.string({description:`The URI the ${t.name} OAuth2 provider will redirect to with the code and state values.`,tags:Wn,links:e}),skip_nonce_check:b.boolean({default:false,description:"If true, the nonce check will be skipped.",tags:Wn,links:e})}).partial()},Jf=b.strictObject({apple:he({id:"apple",name:"Apple"}),azure:he({id:"azure",name:"Azure"}),bitbucket:he({id:"bitbucket",name:"Bitbucket"}),discord:he({id:"discord",name:"Discord"}),facebook:he({id:"facebook",name:"Facebook"}),github:he({id:"github",name:"GitHub"}),gitlab:he({id:"gitlab",name:"Gitlab",url:{default:"https://gitlab.com"}}),google:he({id:"google",name:"Google"}),kakao:he({id:"kakao",name:"Kakao"}),keycloak:he({id:"keycloak",name:"Keycloak",url:{examples:["https://keycloak.example.com/realms/myrealm"]}}),linkedin:he({id:"linkedin",name:"LinkedIn"}),notion:he({id:"notion",name:"Notion"}),twitch:he({id:"twitch",name:"Twitch"}),twitter:he({id:"twitter",name:"Twitter"}),slack:he({id:"slack",name:"Slack"}),spotify:he({id:"spotify",name:"Spotify"}),workos:he({id:"workos",name:"WorkOS"}),zoom:he({id:"zoom",name:"Zoom"})}).partial();ie();var Xa=["auth"],Ya=[{name:"User sessions",link:"https://supabase.com/docs/guides/auth/sessions"}],zf=b.strictObject({timebox:b.string({description:"The timebox for the user session.",tags:Xa,links:Ya}),inactivity_timeout:b.string({description:"The inactivity timeout for the user session.",tags:Xa,links:Ya}),single_per_user:b.boolean({default:false,description:"Limit each user to one active refreshable session.",tags:Xa,links:Ya})}).partial();ie();var oe=["auth"],ce={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"},phoneLogin:t=>({name:`Enabling Phone Login (${t})`,link:`https://supabase.com/docs/guides/auth/phone-login?showSmsProvider=${t}#enabling-phone-login`})},Vf=b.strictObject({enable_signup:b.boolean({default:true,description:"Allow/disallow new user signups via SMS to your project.",tags:oe,links:[ce.auth]}),enable_confirmations:b.boolean({default:false,description:"If enabled, users need to confirm their phone number before signing in.",tags:oe,links:[ce.auth]}),template:b.string({default:"Your code is {{ .Code }}",description:"The template to use for the SMS message.",tags:oe,links:[ce.auth]}),max_frequency:b.string({default:"60s",description:"Controls the minimum amount of time that must pass before sending another sms otp.",tags:oe}),twilio:b.strictObject({enabled:b.boolean({default:false,description:"Enable/disable Twilio provider for phone login.",tags:oe,links:[ce.phoneLogin("Twilio")]}),account_sid:b.string({description:"The account SID for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]}),message_service_sid:b.string({description:"The message service SID for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]}),auth_token:b.string({description:"The auth token for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]})}).partial(),twilio_verify:b.strictObject({enabled:b.boolean({default:false,description:"Enable/disable Twilio Verify provider for phone verification.",tags:oe,links:[ce.phoneLogin("Twilio")]}),account_sid:b.string({description:"The account SID for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]}),message_service_sid:b.string({description:"The message service SID for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]}),auth_token:b.string({description:"The auth token for the Twilio API.",tags:oe,links:[ce.phoneLogin("Twilio")]})}).partial(),messagebird:b.strictObject({enabled:b.boolean({default:false,description:"Enable/disable MessageBird provider for phone login.",tags:oe,links:[ce.phoneLogin("MessageBird")]}),originator:b.string({description:"The originator of the SMS message.",tags:oe,links:[ce.phoneLogin("MessageBird")]}),api_key:b.string({description:"The API key for the MessageBird API.",tags:oe,links:[ce.phoneLogin("MessageBird")]})}).partial(),textlocal:b.strictObject({enabled:b.boolean({default:false,description:"Enable/disable Textlocal provider for phone login.",tags:oe,links:[ce.phoneLogin("Textlocal%2520(Community%2520Supported)")]}),sender:b.string({description:"The sender of the SMS message.",tags:oe,links:[ce.phoneLogin("Textlocal%2520(Community%2520Supported)")]}),api_key:b.string({description:"The API key for the Textlocal API.",tags:oe,links:[ce.phoneLogin("Textlocal%2520(Community%2520Supported)")]})}).partial(),vonage:b.strictObject({enabled:b.boolean({default:false,description:"Enable/disable Vonage provider for phone login.",tags:oe,links:[ce.phoneLogin("Vonage")]}),from:b.string({description:"The sender of the SMS message.",tags:oe,links:[ce.phoneLogin("Vonage")]}),api_key:b.string({description:"The API key for the Vonage API.",tags:oe,links:[ce.phoneLogin("Vonage")]}),api_secret:b.string({description:"The API secret for the Vonage API.",tags:oe,links:[ce.phoneLogin("Vonage")]})}).partial(),test_otp:b.record(b.string(),{description:"Use pre-defined map of phone number to OTP for testing.",tags:oe,links:[ce.auth]})}).partial();var Fe=["auth"],Ke={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"}},Gf=["letters_digits","lower_upper_letters_digits","lower_upper_letters_digits_symbols"],Qf=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local GoTrue service.",tags:Fe,links:[Ke.auth]}),jwt_secret:b.string({default:"unsafe-secret-change-me",description:"The secret used to sign JWT tokens.",tags:Fe,links:[Ke.auth]}),site_url:b.string({default:"http://localhost:3000",description:"The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails.",tags:Fe,links:[Ke.auth]}),additional_redirect_urls:b.array(b.string({description:"A URL that auth providers are permitted to redirect to.",tags:Fe}),{default:["https://localhost:3000"],description:"A list of _exact_ URLs that auth providers are permitted to redirect to post authentication.",tags:Fe,links:[Ke.auth]}),jwt_expiry:b.number({default:3600,description:"How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week).",tags:Fe,links:[Ke.auth]}),enable_refresh_token_rotation:b.boolean({default:true,description:"If disabled, the refresh token will never expire.",tags:Fe,links:[Ke.auth]}),refresh_token_reuse_interval:b.number({default:10,description:"Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. Requires enable_refresh_token_rotation = true.",tags:Fe,links:[Ke.auth]}),enable_manual_linking:b.boolean({default:false,description:"Allow/disallow testing manual linking of accounts.",tags:Fe,links:[Ke.auth]}),enable_signup:b.boolean({default:true,description:"Allow/disallow new user signups to your project.",tags:Fe,links:[Ke.auth]}),enable_anonymous_sign_ins:b.boolean({default:false,description:"Allow/disallow anonymous sign-ins to your project.",tags:Fe,links:[Ke.auth]}),minimum_password_length:b.number({default:6,description:"Passwords shorter than this value will be rejected as weak. Minimum 6, recommended 8 or more.",tags:Fe,links:[Ke.auth]}),password_requirements:b.string({description:`Passwords that do not meet the following requirements will be rejected as weak. Supported values are: ${Gf.join(", ")}`,enum:["",...Gf],tags:Fe,links:[Ke.auth]}),hook:Wf,mfa:Kf,sessions:zf,email:Hf,sms:Vf,external:Jf}).partial();ie();var pn={postgres:{name:"PostgreSQL configuration",link:"https://postgrest.org/en/stable/configuration.html"},pgbouncer:t=>({name:"PgBouncer Configuration",link:`https://www.pgbouncer.org/config.html${t?`#${t}`:""}`})},Ae=["database"],Xf=b.object({driver:Bt(b.string({enum:["sqlite","sqlite-postgres","pglite","postgres"],default:"sqlite-postgres",description:"The database driver to use.",tags:Ae})),url:Bt(b.string({description:"Path to the database file/directory (Supalite only).",tags:Ae})),port:b.number({default:54322,description:"Port to use for the local database URL.",tags:Ae,links:[pn.postgres]}),shadow_port:b.number({default:54320,description:"Port to use for the local shadow database.",tags:Ae}),major_version:b.number({default:15,description:"The database major version to use. This has to be the same as your remote database's. Run `SHOW server_version;` on the remote database to check.",tags:Ae,links:[pn.postgres]}),pooler:b.object({enabled:b.boolean({default:false,description:"Enable the local PgBouncer service.",tags:Ae,links:[pn.pgbouncer()]}),port:b.number({default:54329,description:"Port to use for the local connection pooler.",tags:Ae,links:[pn.pgbouncer("listen_port")]}),pool_mode:b.string({enum:["transaction","session"],default:"transaction",description:"Specifies when a server connection can be reused by other clients. Configure one of the supported pooler modes: `transaction`, `session`.",tags:Ae,links:[pn.pgbouncer("pool_mode")]}),default_pool_size:b.number({default:20,description:"How many server connections to allow per user/database pair.",tags:Ae,links:[pn.pgbouncer("default_pool_size")]}),max_client_conn:b.number({default:100,description:"Maximum number of client connections allowed.",tags:Ae,links:[pn.pgbouncer("max_client_conn")]})}).partial(),seed:b.strictObject({enabled:b.boolean({default:true,description:"Enable seeding the database with SQL files.",tags:Ae}),sql_paths:b.array(b.string({description:"Path to a SQL file to seed the database with.",tags:Ae}),{default:["./seed.sql"],description:"Paths to SQL files to seed the database with. Supports glob patterns relative to supabase directory.",examples:[["./seeds/*.sql","../project-src/seeds/*-load-testing.sql"]],tags:Ae})}).partial(),migrations:b.strictObject({enabled:b.boolean({default:true,description:"Enable migrations.",tags:Ae}),schema_paths:b.array(b.string({description:"Path to a SQL file to seed the database with.",tags:Ae}),{default:["./schemas/schema.sql"]})}).partial()}).partial();ie();var Za=["edge-functions"],Yf=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local Edge Runtime service.",tags:Za}),policy:b.string({enum:["oneshot","per_worker"],default:"oneshot",description:"Configure the supported request policy. Use `oneshot` for hot reload, or `per_worker` for load testing.",tags:Za}),inspector_port:b.number({default:8083,description:"Port to run the Edge Functions inspector on.",tags:Za})}).partial();ie();var Vr=["experimental"],Zf=b.strictObject({orioledb_version:b.string({description:"Postgres storage engine to use OrioleDB (S3)",tags:Vr}),s3_host:_t({description:"S3 bucket URL.",examples:["<bucket_name>.s3-<region>.amazonaws.com"],default:"env(S3_HOST)",tags:Vr}),s3_region:_t({description:"S3 bucket region.",examples:["us-east-1"],default:"env(S3_REGION)",tags:Vr}),s3_access_key:_t({description:"S3 access key.",default:"env(S3_ACCESS_KEY)",tags:Vr}),s3_secret_key:_t({description:"S3 secret key.",default:"env(S3_SECRET_KEY)",tags:Vr})}).partial();ie();var Ii=["functions"],Di=[{name:"`supabase functions` CLI subcommands",link:"https://supabase.com/docs/reference/cli/supabase-functions"}],nS=Hn({enabled:Kr({default:true,description:Le`
42
+ `,tags:Qt,links:e}),url:s.string({description:"The base URL used for constructing the URLs to request authorization and access tokens.",...t.url,tags:Qt,links:e}),redirect_uri:s.string({description:`The URI the ${t.name} OAuth2 provider will redirect to with the code and state values.`,tags:Qt,links:e}),skip_nonce_check:s.boolean({default:false,description:"If true, the nonce check will be skipped.",tags:Qt,links:e}),email_optional:s.boolean({default:false,description:"If true, an email address is not required to sign in with this provider.",tags:Qt,links:e})}).partial()},Wu=s.strictObject({apple:me({id:"apple",name:"Apple"}),azure:me({id:"azure",name:"Azure"}),bitbucket:me({id:"bitbucket",name:"Bitbucket"}),discord:me({id:"discord",name:"Discord"}),facebook:me({id:"facebook",name:"Facebook"}),github:me({id:"github",name:"GitHub"}),gitlab:me({id:"gitlab",name:"Gitlab",url:{default:"https://gitlab.com"}}),google:me({id:"google",name:"Google"}),kakao:me({id:"kakao",name:"Kakao"}),keycloak:me({id:"keycloak",name:"Keycloak",url:{examples:["https://keycloak.example.com/realms/myrealm"]}}),linkedin:me({id:"linkedin",name:"LinkedIn"}),notion:me({id:"notion",name:"Notion"}),twitch:me({id:"twitch",name:"Twitch"}),twitter:me({id:"twitter",name:"Twitter"}),slack:me({id:"slack",name:"Slack"}),spotify:me({id:"spotify",name:"Spotify"}),workos:me({id:"workos",name:"WorkOS"}),zoom:me({id:"zoom",name:"Zoom"})}).partial();var la=["auth"],ca=[{name:"User sessions",link:"https://supabase.com/docs/guides/auth/sessions"}],Ku=s.strictObject({timebox:s.string({description:"The timebox for the user session.",tags:la,links:ca}),inactivity_timeout:s.string({description:"The inactivity timeout for the user session.",tags:la,links:ca}),single_per_user:s.boolean({default:false,description:"Limit each user to one active refreshable session.",tags:la,links:ca})}).partial();var se=["auth"],oe={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"},phoneLogin:t=>({name:`Enabling Phone Login (${t})`,link:`https://supabase.com/docs/guides/auth/phone-login?showSmsProvider=${t}#enabling-phone-login`})},Ju=s.strictObject({enable_signup:s.boolean({default:true,description:"Allow/disallow new user signups via SMS to your project.",tags:se,links:[oe.auth]}),enable_confirmations:s.boolean({default:false,description:"If enabled, users need to confirm their phone number before signing in.",tags:se,links:[oe.auth]}),template:s.string({default:"Your code is {{ .Code }}",description:"The template to use for the SMS message.",tags:se,links:[oe.auth]}),max_frequency:s.string({default:"60s",description:"Controls the minimum amount of time that must pass before sending another sms otp.",tags:se}),twilio:s.strictObject({enabled:s.boolean({default:false,description:"Enable/disable Twilio provider for phone login.",tags:se,links:[oe.phoneLogin("Twilio")]}),account_sid:s.string({description:"The account SID for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]}),message_service_sid:s.string({description:"The message service SID for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]}),auth_token:s.string({description:"The auth token for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]})}).partial(),twilio_verify:s.strictObject({enabled:s.boolean({default:false,description:"Enable/disable Twilio Verify provider for phone verification.",tags:se,links:[oe.phoneLogin("Twilio")]}),account_sid:s.string({description:"The account SID for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]}),message_service_sid:s.string({description:"The message service SID for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]}),auth_token:s.string({description:"The auth token for the Twilio API.",tags:se,links:[oe.phoneLogin("Twilio")]})}).partial(),messagebird:s.strictObject({enabled:s.boolean({default:false,description:"Enable/disable MessageBird provider for phone login.",tags:se,links:[oe.phoneLogin("MessageBird")]}),originator:s.string({description:"The originator of the SMS message.",tags:se,links:[oe.phoneLogin("MessageBird")]}),api_key:s.string({description:"The API key for the MessageBird API.",tags:se,links:[oe.phoneLogin("MessageBird")]})}).partial(),textlocal:s.strictObject({enabled:s.boolean({default:false,description:"Enable/disable Textlocal provider for phone login.",tags:se,links:[oe.phoneLogin("Textlocal%2520(Community%2520Supported)")]}),sender:s.string({description:"The sender of the SMS message.",tags:se,links:[oe.phoneLogin("Textlocal%2520(Community%2520Supported)")]}),api_key:s.string({description:"The API key for the Textlocal API.",tags:se,links:[oe.phoneLogin("Textlocal%2520(Community%2520Supported)")]})}).partial(),vonage:s.strictObject({enabled:s.boolean({default:false,description:"Enable/disable Vonage provider for phone login.",tags:se,links:[oe.phoneLogin("Vonage")]}),from:s.string({description:"The sender of the SMS message.",tags:se,links:[oe.phoneLogin("Vonage")]}),api_key:s.string({description:"The API key for the Vonage API.",tags:se,links:[oe.phoneLogin("Vonage")]}),api_secret:s.string({description:"The API secret for the Vonage API.",tags:se,links:[oe.phoneLogin("Vonage")]})}).partial(),test_otp:s.record(s.string(),{description:"Use pre-defined map of phone number to OTP for testing.",tags:se,links:[oe.auth]})}).partial();var Ce=["auth"],Ie={auth:{name:"Auth Server configuration",link:"https://supabase.com/docs/reference/auth"}},Gu=["letters_digits","lower_upper_letters_digits","lower_upper_letters_digits_symbols"],zu=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local GoTrue service.",tags:Ce,links:[Ie.auth]}),jwt_secret:s.string({default:"unsafe-secret-change-me",description:"The secret used to sign JWT tokens.",tags:Ce,links:[Ie.auth]}),publishable_key:s.string({description:"The `sb_publishable_*` API key clients use to authenticate as `anon`.",tags:Ce,links:[Ie.auth]}),secret_key:s.string({description:"The `sb_secret_*` API key clients use to authenticate as `service_role`.",tags:Ce,links:[Ie.auth]}),site_url:s.string({default:"http://localhost:3000",description:"The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails.",tags:Ce,links:[Ie.auth]}),additional_redirect_urls:s.array(s.string({description:"A URL that auth providers are permitted to redirect to.",tags:Ce}),{default:["https://localhost:3000"],description:"A list of _exact_ URLs that auth providers are permitted to redirect to post authentication.",tags:Ce,links:[Ie.auth]}),jwt_expiry:s.number({default:3600,description:"How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week).",tags:Ce,links:[Ie.auth]}),enable_refresh_token_rotation:s.boolean({default:true,description:"If disabled, the refresh token will never expire.",tags:Ce,links:[Ie.auth]}),refresh_token_reuse_interval:s.number({default:10,description:"Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. Requires enable_refresh_token_rotation = true.",tags:Ce,links:[Ie.auth]}),enable_manual_linking:s.boolean({default:false,description:"Allow/disallow testing manual linking of accounts.",tags:Ce,links:[Ie.auth]}),enable_signup:s.boolean({default:true,description:"Allow/disallow new user signups to your project.",tags:Ce,links:[Ie.auth]}),enable_anonymous_sign_ins:s.boolean({default:false,description:"Allow/disallow anonymous sign-ins to your project.",tags:Ce,links:[Ie.auth]}),minimum_password_length:s.number({default:6,description:"Passwords shorter than this value will be rejected as weak. Minimum 6, recommended 8 or more.",tags:Ce,links:[Ie.auth]}),password_requirements:s.string({description:`Passwords that do not meet the following requirements will be rejected as weak. Supported values are: ${Gu.join(", ")}`,enum:["",...Gu],tags:Ce,links:[Ie.auth]}),hook:Bu,mfa:qu,sessions:Ku,email:Mu,sms:Ju,external:Wu}).partial();var Xt={postgres:{name:"PostgreSQL configuration",link:"https://postgrest.org/en/stable/configuration.html"},pgbouncer:t=>({name:"PgBouncer Configuration",link:`https://www.pgbouncer.org/config.html${t?`#${t}`:""}`})},ke=["database"],Vu=s.object({driver:Pt(s.string({enum:["sqlite","sqlite-postgres","pglite","postgres"],default:"sqlite-postgres",description:"The database driver to use.",tags:ke})),url:Pt(s.string({description:"Path to the database file/directory (Supalite only).",tags:ke})),port:s.number({default:54322,description:"Port to use for the local database URL.",tags:ke,links:[Xt.postgres]}),shadow_port:s.number({default:54320,description:"Port to use for the local shadow database.",tags:ke}),major_version:s.number({default:15,description:"The database major version to use. This has to be the same as your remote database's. Run `SHOW server_version;` on the remote database to check.",tags:ke,links:[Xt.postgres]}),pooler:s.object({enabled:s.boolean({default:false,description:"Enable the local PgBouncer service.",tags:ke,links:[Xt.pgbouncer()]}),port:s.number({default:54329,description:"Port to use for the local connection pooler.",tags:ke,links:[Xt.pgbouncer("listen_port")]}),pool_mode:s.string({enum:["transaction","session"],default:"transaction",description:"Specifies when a server connection can be reused by other clients. Configure one of the supported pooler modes: `transaction`, `session`.",tags:ke,links:[Xt.pgbouncer("pool_mode")]}),default_pool_size:s.number({default:20,description:"How many server connections to allow per user/database pair.",tags:ke,links:[Xt.pgbouncer("default_pool_size")]}),max_client_conn:s.number({default:100,description:"Maximum number of client connections allowed.",tags:ke,links:[Xt.pgbouncer("max_client_conn")]})}).partial(),seed:s.strictObject({enabled:s.boolean({default:true,description:"Enable seeding the database with SQL files.",tags:ke}),sql_paths:s.array(s.string({description:"Path to a SQL file to seed the database with.",tags:ke}),{default:["./seed.sql"],description:"Paths to SQL files to seed the database with. Supports glob patterns relative to supabase directory.",examples:[["./seeds/*.sql","../project-src/seeds/*-load-testing.sql"]],tags:ke})}).partial(),migrations:s.strictObject({enabled:s.boolean({default:true,description:"Enable migrations.",tags:ke}),schema_paths:s.array(s.string({description:"Path to a SQL file to seed the database with.",tags:ke}),{default:["./schemas/schema.sql"]})}).partial()}).partial();var ua=["edge-functions"],Qu=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local Edge Runtime service.",tags:ua}),policy:s.string({enum:["oneshot","per_worker"],default:"oneshot",description:"Configure the supported request policy. Use `oneshot` for hot reload, or `per_worker` for load testing.",tags:ua}),inspector_port:s.number({default:8083,description:"Port to run the Edge Functions inspector on.",tags:ua})}).partial();var wr=["experimental"],Yu=s.strictObject({orioledb_version:s.string({description:"Postgres storage engine to use OrioleDB (S3)",tags:wr}),s3_host:gt({description:"S3 bucket URL.",examples:["<bucket_name>.s3-<region>.amazonaws.com"],default:"env(S3_HOST)",tags:wr}),s3_region:gt({description:"S3 bucket region.",examples:["us-east-1"],default:"env(S3_REGION)",tags:wr}),s3_access_key:gt({description:"S3 access key.",default:"env(S3_ACCESS_KEY)",tags:wr}),s3_secret_key:gt({description:"S3 secret key.",default:"env(S3_SECRET_KEY)",tags:wr})}).partial();var ni=["functions"],ri=[{name:"`supabase functions` CLI subcommands",link:"https://supabase.com/docs/reference/cli/supabase-functions"}],gb=yt.strictObject({enabled:yt.boolean({default:true,description:je`
43
43
  Controls whether a function is deployed or served. When set to false,
44
44
  the function will be skipped during deployment and won't be served locally.
45
45
  This is useful for disabling demo functions or temporarily disabling a function
46
46
  without removing its code.
47
- `,tags:Ii,links:Di}),verify_jwt:Kr({default:true,description:Le`
47
+ `,tags:ni,links:ri}),verify_jwt:yt.boolean({default:true,description:je`
48
48
  By default, when you deploy your Edge Functions or serve them locally, it
49
49
  will reject requests without a valid JWT in the Authorization header.
50
50
  Setting this configuration changes the default behavior.
51
- `,tags:Ii,links:Di}),import_map:cn({description:Le`
51
+ `,tags:ni,links:ri}),import_map:yt.string({description:je`
52
52
  Specify the Deno import map file to use for the Function.
53
53
 
54
54
  Note that the \`--import-map\` flag overrides this configuration.
55
- `,tags:Ii,links:Di}),entrypoint:cn({description:Le`
55
+ `,tags:ni,links:ri}),entrypoint:yt.string({description:je`
56
56
  Specify the entrypoint path to the Function (defaults to "functions/slug/index.ts").
57
57
 
58
58
  Both \`.js\` and \`.ts\` file extensions are supported.
59
- `,tags:Ii,links:Di})}).partial(),ep=Hn({},{patternProperties:{"^[a-zA-Z0-9_-]+$":nS}});ie();var ji=[{name:"Inbucket documentation",link:"https://www.inbucket.org"}],Li=["local"],tp=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local InBucket service.",tags:Li,links:ji}),port:b.number({default:54324,description:Le`
59
+ `,tags:ni,links:ri})}).partial(),Zu=yt.strictObject({},{patternProperties:{"^[a-zA-Z0-9_-]+$":gb}});var si=[{name:"Inbucket documentation",link:"https://www.inbucket.org"}],ii=["local"],ef=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local InBucket service.",tags:ii,links:si}),port:s.number({default:54324,description:je`
60
60
  Port to use for the email testing server web interface.
61
61
 
62
62
  Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface.
63
- `,tags:Li,links:ji}),smtp_port:b.number({default:54325,description:Le`
63
+ `,tags:ii,links:si}),smtp_port:s.number({default:54325,description:je`
64
64
  Port to use for the email testing server SMTP port.
65
65
 
66
66
  Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface.
67
67
 
68
68
  If set, you can access the SMTP server from this port.
69
- `,tags:Li,links:ji}),pop3_port:b.number({default:54326,description:Le`
69
+ `,tags:ii,links:si}),pop3_port:s.number({default:54326,description:je`
70
70
  Port to use for the email testing server POP3 port.
71
71
 
72
72
  Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface.
73
73
 
74
74
  If set, you can access the POP3 server from this port.
75
- `,tags:Li,links:ji})}).partial();ie();var rS=[{name:"Supabase Realtime",link:"https://supabase.com/docs/guides/realtime"}],el=["realtime"],np=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local Realtime service.",tags:el,links:rS}),ip_version:b.string({enum:["IPv4","IPv6"],default:"IPv4",description:"Bind realtime via either IPv4 or IPv6.",tags:el,links:[{name:"Supabase Realtime Configuration",link:"https://supabase.com/docs/guides/realtime/self-hosting"}]}),max_header_length:b.number({default:4096,description:"Maximum length of the HTTP header.",tags:el})}).partial();ie();var Fi=[{name:"Storage server configuration",link:"https://supabase.com/docs/guides/self-hosting/storage/config"}],Wt=["storage"],sS=b.strictObject({public:b.boolean({default:false,description:"Enable public access to the bucket."}),file_size_limit:b.string({default:"50MiB",description:"The maximum file size allowed for the bucket.",examples:["5MB","500KB"],tags:Wt,links:Fi}),allowed_mime_types:b.array(b.string({description:"A MIME type allowed for the bucket.",tags:Wt}),{examples:[["image/png","image/jpeg"]],description:"The list of allowed MIME types for the bucket.",tags:Wt}),objects_path:b.string({description:"The path to the objects in the bucket.",tags:Wt})}).partial(),rp=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local Storage service.",tags:Wt,links:Fi}),file_size_limit:b.string({default:"50MiB",description:"The maximum file size allowed.",examples:["5MB","500KB"],tags:Wt,links:Fi}),image_transformation:b.strictObject({enabled:b.boolean({default:true,description:"Enable image transformation.",tags:Wt,links:Fi})}).partial(),buckets:b.record(sS,{description:"Storage buckets configuration.",tags:Wt})}).partial();ie();var tl={studio:{name:"Supabase Studio",link:"https://supabase.com/docs/guides/studio"},config:{name:"Supabase Studio Configuration",link:"https://supabase.com/docs/guides/self-hosting/studio"}},Mi=["studio"],sp=b.strictObject({enabled:b.boolean({default:true,description:"Enable the local Supabase Studio dashboard.",tags:Mi,links:[tl.studio]}),port:b.number({default:54323,description:"Port to use for Supabase Studio.",tags:Mi}),api_url:b.string({default:"http://localhost",description:"External URL of the API server that frontend connects to.",tags:Mi,links:[tl.config]}),openai_api_key:_t({default:"env(OPENAI_API_KEY)",description:"OpenAI API key to use for Supabase AI in the Supabase Studio.",tags:Mi,links:[tl.config]})}).partial();var Ui=Hn({project_id:cn({description:"A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`.",tags:["general"]}),analytics:Bf,api:qf,auth:Qf,db:Xf,edge_runtime:Yf,functions:ep,inbucket:tp,realtime:np,storage:rp,studio:sp,experimental:Zf}).partial();var nl=(t,e,n)=>(r,s)=>{let i=-1;return o(0);async function o(a){if(a<=i)throw new Error("next() called multiple times");i=a;let l,c=false,u;if(t[a]?(u=t[a][0][0],r.req.routeIndex=a):u=a===t.length&&s||void 0,u)try{l=await u(r,()=>o(a+1));}catch(f){if(f instanceof Error&&e)r.error=f,l=await e(f,r),c=true;else throw f}else r.finalized===false&&n&&(l=await n(r));return l&&(r.finalized===false||c)&&(r.res=l),r}};var Bi=class extends Error{res;status;constructor(t=500,e){super(e?.message,{cause:e?.cause}),this.res=e?.res,this.status=t;}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}};var ip=Symbol();var op=async(t,e=Object.create(null))=>{let{all:n=false,dot:r=false}=e,i=(t instanceof qi?t.raw.headers:t.headers).get("Content-Type");return i?.startsWith("multipart/form-data")||i?.startsWith("application/x-www-form-urlencoded")?iS(t,{all:n,dot:r}):{}};async function iS(t,e){let n=await t.formData();return n?oS(n,e):{}}function oS(t,e){let n=Object.create(null);return t.forEach((r,s)=>{e.all||s.endsWith("[]")?aS(n,s,r):n[s]=r;}),e.dot&&Object.entries(n).forEach(([r,s])=>{r.includes(".")&&(lS(n,r,s),delete n[r]);}),n}var aS=(t,e,n)=>{t[e]!==void 0?Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]:e.endsWith("[]")?t[e]=[n]:t[e]=n;},lS=(t,e,n)=>{let r=t,s=e.split(".");s.forEach((i,o)=>{o===s.length-1?r[i]=n:((!r[i]||typeof r[i]!="object"||Array.isArray(r[i])||r[i]instanceof File)&&(r[i]=Object.create(null)),r=r[i]);});};var sl=t=>{let e=t.split("/");return e[0]===""&&e.shift(),e},ap=t=>{let{groups:e,path:n}=cS(t),r=sl(n);return uS(r,e)},cS=t=>{let e=[];return t=t.replace(/\{[^}]+\}/g,(n,r)=>{let s=`@${r}`;return e.push([s,n]),s}),{groups:e,path:t}},uS=(t,e)=>{for(let n=e.length-1;n>=0;n--){let[r]=e[n];for(let s=t.length-1;s>=0;s--)if(t[s].includes(r)){t[s]=t[s].replace(r,e[n][1]);break}}return t},Hi={},lp=(t,e)=>{if(t==="*")return "*";let n=t.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(n){let r=`${t}#${e}`;return Hi[r]||(n[2]?Hi[r]=e&&e[0]!==":"&&e[0]!=="*"?[r,n[1],new RegExp(`^${n[2]}(?=/${e})`)]:[t,n[1],new RegExp(`^${n[2]}$`)]:Hi[r]=[t,n[1],true]),Hi[r]}return null},Kn=(t,e)=>{try{return e(t)}catch{return t.replace(/(?:%[0-9A-Fa-f]{2})+/g,n=>{try{return e(n)}catch{return n}})}},fS=t=>Kn(t,decodeURI),il=t=>{let e=t.url,n=e.indexOf("/",e.indexOf(":")+4),r=n;for(;r<e.length;r++){let s=e.charCodeAt(r);if(s===37){let i=e.indexOf("?",r),o=e.indexOf("#",r),a=i===-1?o===-1?void 0:o:o===-1?i:Math.min(i,o),l=e.slice(n,a);return fS(l.includes("%25")?l.replace(/%25/g,"%2525"):l)}else if(s===63||s===35)break}return e.slice(n,r)};var cp=t=>{let e=il(t);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},dn=(t,e,...n)=>(n.length&&(e=dn(e,...n)),`${t?.[0]==="/"?"":"/"}${t}${e==="/"?"":`${t?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),Wi=t=>{if(t.charCodeAt(t.length-1)!==63||!t.includes(":"))return null;let e=t.split("/"),n=[],r="";return e.forEach(s=>{if(s!==""&&!/\:/.test(s))r+="/"+s;else if(/\:/.test(s))if(/\?/.test(s)){n.length===0&&r===""?n.push("/"):n.push(r);let i=s.replace("?","");r+="/"+i,n.push(r);}else r+="/"+s;}),n.filter((s,i,o)=>o.indexOf(s)===i)},rl=t=>/[%+]/.test(t)?(t.indexOf("+")!==-1&&(t=t.replace(/\+/g," ")),t.indexOf("%")!==-1?Kn(t,Gr):t):t,up=(t,e,n)=>{let r;if(!n&&e&&!/[%+]/.test(e)){let o=t.indexOf("?",8);if(o===-1)return;for(t.startsWith(e,o+1)||(o=t.indexOf(`&${e}`,o+1));o!==-1;){let a=t.charCodeAt(o+e.length+1);if(a===61){let l=o+e.length+2,c=t.indexOf("&",l);return rl(t.slice(l,c===-1?void 0:c))}else if(a==38||isNaN(a))return "";o=t.indexOf(`&${e}`,o+1);}if(r=/[%+]/.test(t),!r)return}let s={};r??=/[%+]/.test(t);let i=t.indexOf("?",8);for(;i!==-1;){let o=t.indexOf("&",i+1),a=t.indexOf("=",i);a>o&&o!==-1&&(a=-1);let l=t.slice(i+1,a===-1?o===-1?void 0:o:a);if(r&&(l=rl(l)),i=o,l==="")continue;let c;a===-1?c="":(c=t.slice(a+1,o===-1?void 0:o),r&&(c=rl(c))),n?(s[l]&&Array.isArray(s[l])||(s[l]=[]),s[l].push(c)):s[l]??=c;}return e?s[e]:s},fp=up,pp=(t,e)=>up(t,e,true),Gr=decodeURIComponent;var dp=t=>Kn(t,Gr),qi=class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(t,e="/",n=[[]]){this.raw=t,this.path=e,this.#t=n,this.#e={};}param(t){return t?this.#n(t):this.#i()}#n(t){let e=this.#t[0][this.routeIndex][1][t],n=this.#r(e);return n&&/\%/.test(n)?dp(n):n}#i(){let t={},e=Object.keys(this.#t[0][this.routeIndex][1]);for(let n of e){let r=this.#r(this.#t[0][this.routeIndex][1][n]);r!==void 0&&(t[n]=/\%/.test(r)?dp(r):r);}return t}#r(t){return this.#t[1]?this.#t[1][t]:t}query(t){return fp(this.url,t)}queries(t){return pp(this.url,t)}header(t){if(t)return this.raw.headers.get(t)??void 0;let e={};return this.raw.headers.forEach((n,r)=>{e[r]=n;}),e}async parseBody(t){return this.bodyCache.parsedBody??=await op(this,t)}#s=t=>{let{bodyCache:e,raw:n}=this,r=e[t];if(r)return r;let s=Object.keys(e)[0];return s?e[s].then(i=>(s==="json"&&(i=JSON.stringify(i)),new Response(i)[t]())):e[t]=n[t]()};json(){return this.#s("text").then(t=>JSON.parse(t))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(t,e){this.#e[t]=e;}valid(t){return this.#e[t]}get url(){return this.raw.url}get method(){return this.raw.method}get[ip](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,t]])=>t)}get routePath(){return this.#t[0].map(([[,t]])=>t)[this.routeIndex].path}};var Ye={Stringify:1},X=(t,e)=>{let n=new String(t);return n.isEscaped=true,n.callbacks=e,n},pS=/[&<>'"]/,Ki=async(t,e)=>{let n="";e||=[];let r=await Promise.all(t);for(let s=r.length-1;n+=r[s],s--,!(s<0);s--){let i=r[s];typeof i=="object"&&e.push(...i.callbacks||[]);let o=i.isEscaped;if(i=await(typeof i=="object"?i.toString():i),typeof i=="object"&&e.push(...i.callbacks||[]),i.isEscaped??o)n+=i;else {let a=[n];Et(i,a),n=a[0];}}return X(n,e)},Et=(t,e)=>{let n=t.search(pS);if(n===-1){e[0]+=t;return}let r,s,i=0;for(s=n;s<t.length;s++){switch(t.charCodeAt(s)){case 34:r="&quot;";break;case 39:r="&#39;";break;case 38:r="&amp;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}e[0]+=t.substring(i,s)+r,i=s+1;}e[0]+=t.substring(i,s);},ol=t=>{let e=t.callbacks;if(!e?.length)return t;let n=[t],r={};return e.forEach(s=>s({phase:Ye.Stringify,buffer:n,context:r})),n[0]},mn=async(t,e,n,r,s)=>{typeof t=="object"&&!(t instanceof String)&&(t instanceof Promise||(t=t.toString()),t instanceof Promise&&(t=await t));let i=t.callbacks;if(!i?.length)return Promise.resolve(t);s?s[0]+=t:s=[t];let o=Promise.all(i.map(a=>a({phase:e,buffer:s,context:r}))).then(a=>Promise.all(a.filter(Boolean).map(l=>mn(l,e,false,r,s))).then(()=>s[0]));return n?X(await o,i):o};var dS="text/plain; charset=UTF-8",al=(t,e)=>({"Content-Type":t,...e}),Qr=(t,e)=>new Response(t,e),mp=class{#e;#t;env={};#n;finalized=false;error;#i;#r;#s;#u;#l;#c;#a;#f;#p;constructor(t,e){this.#e=t,e&&(this.#r=e.executionCtx,this.env=e.env,this.#c=e.notFoundHandler,this.#p=e.path,this.#f=e.matchResult);}get req(){return this.#t??=new qi(this.#e,this.#p,this.#f),this.#t}get event(){if(this.#r&&"respondWith"in this.#r)return this.#r;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#r)return this.#r;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=Qr(null,{headers:this.#a??=new Headers})}set res(t){if(this.#s&&t){t=Qr(t.body,t);for(let[e,n]of this.#s.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let r=this.#s.headers.getSetCookie();t.headers.delete("set-cookie");for(let s of r)t.headers.append("set-cookie",s);}else t.headers.set(e,n);}this.#s=t,this.finalized=true;}render=(...t)=>(this.#l??=e=>this.html(e),this.#l(...t));setLayout=t=>this.#u=t;getLayout=()=>this.#u;setRenderer=t=>{this.#l=t;};header=(t,e,n)=>{this.finalized&&(this.#s=Qr(this.#s.body,this.#s));let r=this.#s?this.#s.headers:this.#a??=new Headers;e===void 0?r.delete(t):n?.append?r.append(t,e):r.set(t,e);};status=t=>{this.#i=t;};set=(t,e)=>{this.#n??=new Map,this.#n.set(t,e);};get=t=>this.#n?this.#n.get(t):void 0;get var(){return this.#n?Object.fromEntries(this.#n):{}}#o(t,e,n){let r=this.#s?new Headers(this.#s.headers):this.#a??new Headers;if(typeof e=="object"&&"headers"in e){let i=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[o,a]of i)o.toLowerCase()==="set-cookie"?r.append(o,a):r.set(o,a);}if(n)for(let[i,o]of Object.entries(n))if(typeof o=="string")r.set(i,o);else {r.delete(i);for(let a of o)r.append(i,a);}let s=typeof e=="number"?e:e?.status??this.#i;return Qr(t,{status:s,headers:r})}newResponse=(...t)=>this.#o(...t);body=(t,e,n)=>this.#o(t,e,n);text=(t,e,n)=>!this.#a&&!this.#i&&!e&&!n&&!this.finalized?new Response(t):this.#o(t,e,al(dS,n));json=(t,e,n)=>this.#o(JSON.stringify(t),e,al("application/json",n));html=(t,e,n)=>{let r=s=>this.#o(s,e,al("text/html; charset=UTF-8",n));return typeof t=="object"?mn(t,Ye.Stringify,false,{}).then(r):r(t)};redirect=(t,e)=>{let n=String(t);return this.header("Location",/[^\x00-\xFF]/.test(n)?encodeURI(n):n),this.newResponse(null,e??302)};notFound=()=>(this.#c??=()=>Qr(),this.#c(this))};var re="ALL",hp="all",gp=["get","post","put","delete","options","patch"],Ji="Can not add a route since the matcher is already built.",zi=class extends Error{};var yp="__COMPOSED_HANDLER";var mS=t=>t.text("404 Not Found",404),bp=(t,e)=>{if("getResponse"in t){let n=t.getResponse();return e.newResponse(n.body,n)}return console.error(t),e.text("Internal Server Error",500)},wp=class Sp{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(e={}){[...gp,hp].forEach(i=>{this[i]=(o,...a)=>(typeof o=="string"?this.#e=o:this.#i(i,this.#e,o),a.forEach(l=>{this.#i(i,this.#e,l);}),this);}),this.on=(i,o,...a)=>{for(let l of [o].flat()){this.#e=l;for(let c of [i].flat())a.map(u=>{this.#i(c.toUpperCase(),this.#e,u);});}return this},this.use=(i,...o)=>(typeof i=="string"?this.#e=i:(this.#e="*",o.unshift(i)),o.forEach(a=>{this.#i(re,this.#e,a);}),this);let{strict:r,...s}=e;Object.assign(this,s),this.getPath=r??true?e.getPath??il:cp;}#t(){let e=new Sp({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#n=this.#n,e.routes=this.routes,e}#n=mS;errorHandler=bp;route(e,n){let r=this.basePath(e);return n.routes.map(s=>{let i;n.errorHandler===bp?i=s.handler:(i=async(o,a)=>(await nl([],n.errorHandler)(o,()=>s.handler(o,a))).res,i[yp]=s.handler),r.#i(s.method,s.path,i);}),this}basePath(e){let n=this.#t();return n._basePath=dn(this._basePath,e),n}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#n=e,this);mount(e,n,r){let s,i;r&&(typeof r=="function"?i=r:(i=r.optionHandler,r.replaceRequest===false?s=l=>l:s=r.replaceRequest));let o=i?l=>{let c=i(l);return Array.isArray(c)?c:[c]}:l=>{let c;try{c=l.executionCtx;}catch{}return [l.env,c]};s||=(()=>{let l=dn(this._basePath,e),c=l==="/"?0:l.length;return u=>{let f=new URL(u.url);return f.pathname=f.pathname.slice(c)||"/",new Request(f,u)}})();let a=async(l,c)=>{let u=await n(s(l.req.raw),...o(l));if(u)return u;await c();};return this.#i(re,dn(e,"*"),a),this}#i(e,n,r){e=e.toUpperCase(),n=dn(this._basePath,n);let s={basePath:this._basePath,path:n,method:e,handler:r};this.router.add(e,n,[r,s]),this.routes.push(s);}#r(e,n){if(e instanceof Error)return this.errorHandler(e,n);throw e}#s(e,n,r,s){if(s==="HEAD")return (async()=>new Response(null,await this.#s(e,n,r,"GET")))();let i=this.getPath(e,{env:r}),o=this.router.match(s,i),a=new mp(e,{path:i,matchResult:o,env:r,executionCtx:n,notFoundHandler:this.#n});if(o[0].length===1){let c;try{c=o[0][0][0][0](a,async()=>{a.res=await this.#n(a);});}catch(u){return this.#r(u,a)}return c instanceof Promise?c.then(u=>u||(a.finalized?a.res:this.#n(a))).catch(u=>this.#r(u,a)):c??this.#n(a)}let l=nl(o[0],this.errorHandler,this.#n);return (async()=>{try{let c=await l(a);if(!c.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return c.res}catch(c){return this.#r(c,a)}})()}fetch=(e,...n)=>this.#s(e,n[1],n[0],e.method);request=(e,n,r,s)=>e instanceof Request?this.fetch(n?new Request(e,n):e,r,s):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${dn("/",e)}`,n),r,s));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#s(e.request,e,void 0,e.request.method));});}};var Vi=[];function ll(t,e){let n=this.buildAllMatchers(),r=((s,i)=>{let o=n[s]||n[re],a=o[2][i];if(a)return a;let l=i.match(o[0]);if(!l)return [[],Vi];let c=l.indexOf("",1);return [o[1][c],l]});return this.match=r,r(t,e)}var Gi="[^/]+",Xr=".*",Yr="(?:|/.*)",hn=Symbol(),hS=new Set(".\\+*[^]$()");function gS(t,e){return t.length===1?e.length===1?t<e?-1:1:-1:e.length===1||t===Xr||t===Yr?1:e===Xr||e===Yr?-1:t===Gi?1:e===Gi?-1:t.length===e.length?t<e?-1:1:e.length-t.length}var _p=class cl{#e;#t;#n=Object.create(null);insert(e,n,r,s,i){if(e.length===0){if(this.#e!==void 0)throw hn;if(i)return;this.#e=n;return}let[o,...a]=e,l=o==="*"?a.length===0?["","",Xr]:["","",Gi]:o==="/*"?["","",Yr]:o.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),c;if(l){let u=l[1],f=l[2]||Gi;if(u&&l[2]&&(f===".*"||(f=f.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(f))))throw hn;if(c=this.#n[f],!c){if(Object.keys(this.#n).some(p=>p!==Xr&&p!==Yr))throw hn;if(i)return;c=this.#n[f]=new cl,u!==""&&(c.#t=s.varIndex++);}!i&&u!==""&&r.push([u,c.#t]);}else if(c=this.#n[o],!c){if(Object.keys(this.#n).some(u=>u.length>1&&u!==Xr&&u!==Yr))throw hn;if(i)return;c=this.#n[o]=new cl;}c.insert(a,n,r,s,i);}buildRegExpStr(){let n=Object.keys(this.#n).sort(gS).map(r=>{let s=this.#n[r];return (typeof s.#t=="number"?`(${r})@${s.#t}`:hS.has(r)?`\\${r}`:r)+s.buildRegExpStr()});return typeof this.#e=="number"&&n.unshift(`#${this.#e}`),n.length===0?"":n.length===1?n[0]:"(?:"+n.join("|")+")"}};var Ep=class{#e={varIndex:0};#t=new _p;insert(t,e,n){let r=[],s=[];for(let o=0;;){let a=false;if(t=t.replace(/\{[^}]+\}/g,l=>{let c=`@\\${o}`;return s[o]=[c,l],o++,a=true,c}),!a)break}let i=t.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let o=s.length-1;o>=0;o--){let[a]=s[o];for(let l=i.length-1;l>=0;l--)if(i[l].indexOf(a)!==-1){i[l]=i[l].replace(a,s[o][1]);break}}return this.#t.insert(i,e,r,this.#e,n),r}buildRegExp(){let t=this.#t.buildRegExpStr();if(t==="")return [/^$/,[],[]];let e=0,n=[],r=[];return t=t.replace(/#(\d+)|@(\d+)|\.\*\$/g,(s,i,o)=>i!==void 0?(n[++e]=Number(i),"$()"):(o!==void 0&&(r[Number(o)]=++e),"")),[new RegExp(`^${t}`),n,r]}};var yS=[/^$/,[],Object.create(null)],xp=Object.create(null);function Tp(t){return xp[t]??=new RegExp(t==="*"?"":`^${t.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,n)=>n?`\\${n}`:"(?:|/.*)")}$`)}function bS(){xp=Object.create(null);}function wS(t){let e=new Ep,n=[];if(t.length===0)return yS;let r=t.map(c=>[!/\*|\/:/.test(c[0]),...c]).sort(([c,u],[f,p])=>c?1:f?-1:u.length-p.length),s=Object.create(null);for(let c=0,u=-1,f=r.length;c<f;c++){let[p,d,g]=r[c];p?s[d]=[g.map(([h])=>[h,Object.create(null)]),Vi]:u++;let m;try{m=e.insert(d,u,p);}catch(h){throw h===hn?new zi(d):h}p||(n[u]=g.map(([h,y])=>{let S=Object.create(null);for(y-=1;y>=0;y--){let[_,w]=m[y];S[_]=w;}return [h,S]}));}let[i,o,a]=e.buildRegExp();for(let c=0,u=n.length;c<u;c++)for(let f=0,p=n[c].length;f<p;f++){let d=n[c][f]?.[1];if(!d)continue;let g=Object.keys(d);for(let m=0,h=g.length;m<h;m++)d[g[m]]=a[d[g[m]]];}let l=[];for(let c in o)l[c]=n[o[c]];return [i,l,s]}function Jn(t,e){if(t){for(let n of Object.keys(t).sort((r,s)=>s.length-r.length))if(Tp(n).test(e))return [...t[n]]}}var Qi=class{name="RegExpRouter";#e;#t;constructor(){this.#e={[re]:Object.create(null)},this.#t={[re]:Object.create(null)};}add(t,e,n){let r=this.#e,s=this.#t;if(!r||!s)throw new Error(Ji);r[t]||[r,s].forEach(a=>{a[t]=Object.create(null),Object.keys(a[re]).forEach(l=>{a[t][l]=[...a[re][l]];});}),e==="/*"&&(e="*");let i=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let a=Tp(e);t===re?Object.keys(r).forEach(l=>{r[l][e]||=Jn(r[l],e)||Jn(r[re],e)||[];}):r[t][e]||=Jn(r[t],e)||Jn(r[re],e)||[],Object.keys(r).forEach(l=>{(t===re||t===l)&&Object.keys(r[l]).forEach(c=>{a.test(c)&&r[l][c].push([n,i]);});}),Object.keys(s).forEach(l=>{(t===re||t===l)&&Object.keys(s[l]).forEach(c=>a.test(c)&&s[l][c].push([n,i]));});return}let o=Wi(e)||[e];for(let a=0,l=o.length;a<l;a++){let c=o[a];Object.keys(s).forEach(u=>{(t===re||t===u)&&(s[u][c]||=[...Jn(r[u],c)||Jn(r[re],c)||[]],s[u][c].push([n,i-l+a+1]));});}}match=ll;buildAllMatchers(){let t=Object.create(null);return Object.keys(this.#t).concat(Object.keys(this.#e)).forEach(e=>{t[e]||=this.#n(e);}),this.#e=this.#t=void 0,bS(),t}#n(t){let e=[],n=t===re;return [this.#e,this.#t].forEach(r=>{let s=r[t]?Object.keys(r[t]).map(i=>[i,r[t][i]]):[];s.length!==0?(n||=true,e.push(...s)):t!==re&&e.push(...Object.keys(r[re]).map(i=>[i,r[re][i]]));}),n?wS(e):null}};var ul=class{name="SmartRouter";#e=[];#t=[];constructor(t){this.#e=t.routers;}add(t,e,n){if(!this.#t)throw new Error(Ji);this.#t.push([t,e,n]);}match(t,e){if(!this.#t)throw new Error("Fatal error");let n=this.#e,r=this.#t,s=n.length,i=0,o;for(;i<s;i++){let a=n[i];try{for(let l=0,c=r.length;l<c;l++)a.add(...r[l]);o=a.match(t,e);}catch(l){if(l instanceof zi)continue;throw l}this.match=a.match.bind(a),this.#e=[a],this.#t=void 0;break}if(i===s)throw new Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,o}get activeRouter(){if(this.#t||this.#e.length!==1)throw new Error("No active router has been determined yet.");return this.#e[0]}};var Zr=Object.create(null),SS=t=>{for(let e in t)return true;return false},Rp=class Cp{#e;#t;#n;#i=0;#r=Zr;constructor(e,n,r){if(this.#t=r||Object.create(null),this.#e=[],e&&n){let s=Object.create(null);s[e]={handler:n,possibleKeys:[],score:0},this.#e=[s];}this.#n=[];}insert(e,n,r){this.#i=++this.#i;let s=this,i=ap(n),o=[];for(let a=0,l=i.length;a<l;a++){let c=i[a],u=i[a+1],f=lp(c,u),p=Array.isArray(f)?f[0]:c;if(p in s.#t){s=s.#t[p],f&&o.push(f[1]);continue}s.#t[p]=new Cp,f&&(s.#n.push(f),o.push(f[1])),s=s.#t[p];}return s.#e.push({[e]:{handler:r,possibleKeys:o.filter((a,l,c)=>c.indexOf(a)===l),score:this.#i}}),s}#s(e,n,r,s,i){for(let o=0,a=n.#e.length;o<a;o++){let l=n.#e[o],c=l[r]||l[re],u={};if(c!==void 0&&(c.params=Object.create(null),e.push(c),s!==Zr||i&&i!==Zr))for(let f=0,p=c.possibleKeys.length;f<p;f++){let d=c.possibleKeys[f],g=u[c.score];c.params[d]=i?.[d]&&!g?i[d]:s[d]??i?.[d],u[c.score]=true;}}}search(e,n){let r=[];this.#r=Zr;let i=[this],o=sl(n),a=[],l=o.length,c=null;for(let u=0;u<l;u++){let f=o[u],p=u===l-1,d=[];for(let m=0,h=i.length;m<h;m++){let y=i[m],S=y.#t[f];S&&(S.#r=y.#r,p?(S.#t["*"]&&this.#s(r,S.#t["*"],e,y.#r),this.#s(r,S,e,y.#r)):d.push(S));for(let _=0,w=y.#n.length;_<w;_++){let x=y.#n[_],E=y.#r===Zr?{}:{...y.#r};if(x==="*"){let k=y.#t["*"];k&&(this.#s(r,k,e,y.#r),k.#r=E,d.push(k));continue}let[T,O,P]=x;if(!f&&!(P instanceof RegExp))continue;let D=y.#t[T];if(P instanceof RegExp){if(c===null){c=new Array(l);let q=n[0]==="/"?1:0;for(let J=0;J<l;J++)c[J]=q,q+=o[J].length+1;}let k=n.substring(c[u]),C=P.exec(k);if(C){if(E[O]=C[0],this.#s(r,D,e,y.#r,E),SS(D.#t)){D.#r=E;let q=C[0].match(/\//)?.length??0;(a[q]||=[]).push(D);}continue}}(P===true||P.test(f))&&(E[O]=f,p?(this.#s(r,D,e,E,y.#r),D.#t["*"]&&this.#s(r,D.#t["*"],e,E,y.#r)):(D.#r=E,d.push(D)));}}let g=a.shift();i=g?d.concat(g):d;}return r.length>1&&r.sort((u,f)=>u.score-f.score),[r.map(({handler:u,params:f})=>[u,f])]}};var fl=class{name="TrieRouter";#e;constructor(){this.#e=new Rp;}add(t,e,n){let r=Wi(e);if(r){for(let s=0,i=r.length;s<i;s++)this.#e.insert(t,r[s],n);return}this.#e.insert(t,e,n);}match(t,e){return this.#e.search(t,e)}};var _e=class extends wp{constructor(t={}){super(t),this.router=t.router??new ul({routers:[new Qi,new fl]});}};var vp=t=>{let n={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...t},r=(i=>typeof i=="string"?i==="*"?()=>i:o=>i===o?o:null:typeof i=="function"?i:o=>i.includes(o)?o:null)(n.origin),s=(i=>typeof i=="function"?i:Array.isArray(i)?()=>i:()=>[])(n.allowMethods);return async function(o,a){function l(u,f){o.res.headers.set(u,f);}let c=await r(o.req.header("origin")||"",o);if(c&&l("Access-Control-Allow-Origin",c),n.credentials&&l("Access-Control-Allow-Credentials","true"),n.exposeHeaders?.length&&l("Access-Control-Expose-Headers",n.exposeHeaders.join(",")),o.req.method==="OPTIONS"){n.origin!=="*"&&l("Vary","Origin"),n.maxAge!=null&&l("Access-Control-Max-Age",n.maxAge.toString());let u=await s(o.req.header("origin")||"",o);u.length&&l("Access-Control-Allow-Methods",u.join(","));let f=n.allowHeaders;if(!f?.length){let p=o.req.header("Access-Control-Request-Headers");p&&(f=p.split(/\s*,\s*/));}return f?.length&&(l("Access-Control-Allow-Headers",f.join(",")),o.res.headers.append("Vary","Access-Control-Request-Headers")),o.res.headers.delete("Content-Length"),o.res.headers.delete("Content-Type"),new Response(null,{headers:o.res.headers,status:204,statusText:"No Content"})}await a(),n.origin!=="*"&&o.header("Vary","Origin",{append:true});}};var ES=t=>JSON.parse(jsonStringify(t)),Ap=new _e().get("/ping",t=>t.json({message:"pong"})).get("/config",t=>t.json(t.var.app.config)).get("/info",t=>t.json(ES({connection:t.var.app.connection.config,config:t.var.app.config}))).get("/introspect",async t=>{let e=await t.var.app.connection.introspect();return t.json(e)});var ke=class extends Error{code;details;hint;httpStatus;constructor(e){super(e.message),this.name="EmbedError",this.code=e.code,this.details=e.details,this.hint=e.hint,this.httpStatus=e.httpStatus;}},Je=class extends Error{constructor(n,r=n){super(n);this.details=r;this.name="SelectParseError";}},Kt=class extends Error{constructor(n,r=n){super(n);this.details=r;this.name="QueryParamParseError";}},zn=class extends Error{constructor(n="Invalid path specified in request URL",r=null){super(n);this.details=r;this.name="RouteValidationError";}},Vn=class extends Error{constructor(n){super(`invalid input syntax for type integer: "${n}"`);this.rawValue=n;this.name="SqliteIntegerCastError";}code="22P02"},pe=class extends Error{constructor(n,r,s){super(n);this.details=r;this.position=s;this.name="OrderParseError";}};var xS="/rest/v1";function pl(t,e=xS){let n=new URL(t.url),r=decodeURIComponent(n.pathname);r.startsWith(e)&&(r=r.slice(e.length)),r=r.replace(/^\/+|\/+$/g,"");let s=r.split("/");if(s[0]==="rpc"&&s[1])return {function:s[1],isRpc:true};if(s.length>1)throw new zn;return {from:s[0]||void 0,isRpc:false}}function dl(t){let e=t.method.toUpperCase(),n;e==="GET"||e==="HEAD"?n=t.headers.get("Accept-Profile")??void 0:n=t.headers.get("Content-Profile")??void 0;let r=[],s=[],i=t.headers.get("Prefer");i&&s.push(i);for(let a of s){let l=a.split(",").map(c=>c.trim()).filter(Boolean);for(let c of l){let u=c.indexOf("=");if(u===-1)continue;let f=c.slice(0,u).trim(),p=c.slice(u+1).trim();f==="max-affected"?r.push({key:"max-affected",value:Number(p)}):r.push({key:f,value:p});}}let o=t.headers.get("Accept")??"application/json";return {schema:n,preferTokens:r,accept:o}}var kp=new Set(["count","sum","avg","min","max"]);function W(t){return t.input[t.pos]??""}function H(t,e=1){t.pos+=e;}function Oe(t){return t.pos>=t.input.length}function $e(t,e){return t.input.startsWith(e,t.pos)}function hl(t){return /^[a-zA-Z0-9_]$/.test(t)}function V(t){for(;!Oe(t)&&/\s/.test(W(t));)H(t);}function yl(t){let n=new URL(t.url).searchParams.get("select");if(n==null)return {select:[],join:{},embeddedAliases:new Set};if(n==="")return {select:[],join:{},embeddedAliases:new Set};if(n.trim()==="")throw new Je("failed to parse select parameter");let r={},s=new Set;try{let i={input:n,pos:0},o=Np(i,r,s);if(V(i),TS(i),!Oe(i))throw new Error(`Unexpected input at position ${i.pos}: "${i.input.slice(i.pos)}"`);return {select:o,join:r,embeddedAliases:s}}catch(i){if(RS(n))return {select:[],join:{},embeddedAliases:new Set};throw i}}function TS(t){let e=t.pos-1;for(;e>=0&&/\s/.test(t.input[e]??"");)e--;if(t.input[e]!==")")return;let n=t.pos;for(;W(t)==="'";)H(t);t.pos!==n&&V(t);}function RS(t){if(/^\s/.test(t))return false;let e=t.trimStart();if(e==="")return false;if(CS(e)||e.startsWith("::")||e.startsWith("->"))return true;let n=e[0]??"";return new Set([".",":","!","@","#","%","`","[","-","(","'","~"]).has(n)}function CS(t){return t.startsWith("...")?!/^\.{3}\s*(?:"[^"]+"|[a-zA-Z_][a-zA-Z0-9_$ -]*)\s*(?:![a-zA-Z_][a-zA-Z0-9_]*)*\s*\(/.test(t):false}function Np(t,e,n){let r=[];if(V(t),Oe(t)||W(t)===")"||W(t)===","&&(H(t),V(t),Oe(t)||W(t)===")"))return r;for(r.push($p(t,e,n));!Oe(t)&&(V(t),W(t)===",");)H(t),V(t),r.push($p(t,e,n));return r}function $p(t,e,n){if(V(t),W(t)==="*")return H(t),$S(t),$e(t,".count()")&&H(t,8),"*";if($e(t,"..."))return H(t,3),V(t),vS(t,e,n);let r=Ze(t,{allowSpaces:true,allowDollar:true});return V(t),$e(t,"::")?gl(r,void 0,t,e,n):W(t)===":"?(H(t),V(t),AS(r,t,e,n)):gl(r,void 0,t,e,n)}function vS(t,e,n){let r=Ze(t);V(t);let{hint:s,innerJoin:i}=Ip(t);if(V(t),W(t)!=="(")throw new Error(`Expected "(" for spread embed at position ${t.pos}`);let{subSelect:o,subJoin:a}=Dp(t),l=r,c={};i&&(c.type="inner"),s&&(c.hint=s),e[l]=c,n.add(l);let u={spread:true,select:o};return Object.keys(a).length>0&&(u.join=a),{[l]:u}}function AS(t,e,n,r){let s=Ze(e,{allowSpaces:true,allowDollar:true});return V(e),gl(s,t,e,n,r)}function gl(t,e,n,r,s){return V(n),t==="count"&&(Oe(n)||W(n)===","||W(n)===")"||W(n)==="("||$e(n,"::"))?PS(e,n):W(n)==="!"||W(n)==="("?kS(t,e,n,r,s):NS(t,e,n)}function kS(t,e,n,r,s){let{hint:i,innerJoin:o}=Ip(n);if(V(n),W(n)!=="(")throw new Je("failed to parse select parameter");let{subSelect:a,subJoin:l}=Dp(n),c=e??t,u={};e&&(u.from=t),o&&(u.type="inner"),i&&(u.hint=i),r[c]=u,s.add(c),e&&t!==c&&s.add(t);let f={select:a};return Object.keys(l).length>0&&(f.join=l),{[c]:f}}function Ip(t){if(V(t),W(t)!=="!")return {};H(t);let e=Ze(t);if(e==="inner")return {innerJoin:true};if(e==="left")return {};let n=e;if(V(t),W(t)==="!"){H(t);let r=Ze(t);if(r==="inner")return {hint:n,innerJoin:true};if(r==="left")return {hint:n};throw new Error(`Expected "inner" or "left" after hint, got "${r}" at position ${t.pos}`)}return {hint:n}}function $S(t){for(;W(t)==="*";)H(t);for(;W(t)==="!";){let e=t.pos;if(H(t),!OS(t)){t.pos=e;return}}}function OS(t){let e=t.pos;try{return Ze(t),!0}catch{return t.pos=e,false}}function Dp(t,e,n){if(W(t)!=="(")throw new Error(`Expected "(" at position ${t.pos}`);H(t),V(t);let r={},s=new Set;if(W(t)===")")return H(t),{subSelect:[],subJoin:r};let i=Np(t,r,s);if(V(t),W(t)!==")")throw new Error(`Expected ")" at position ${t.pos}`);return H(t),{subSelect:i,subJoin:r}}function PS(t,e){V(e);let n=true;if(W(e)==="("){n=false,H(e);let o=e.pos;for(;!Oe(e)&&W(e)!==")";)H(e);if(Oe(e))throw new Je("expected closing paren for count()");let a=e.input.slice(o,e.pos).trim();if(H(e),a!=="")throw new Je("expected null arg for count()")}V(e);let r;$e(e,"::")&&(H(e,2),r=ts(e));let s=t??"count",i={aggregate:"count"};return n&&(i.bareCount=true),r&&(i.cast=r),{[s]:i}}function NS(t,e,n){V(n);let r,s,i=false,o;if($e(n,"->")){let{path:u,lastProp:f,lastIsText:p,invalidTextTraversalKey:d}=IS(n);r=u,s=f||void 0,i=p,o=d;}V(n);let a,l;if($e(n,"::")){H(n,2);let u=ts(n);if(V(n),W(n)==="."&&!Oe(n)){let f=n.input[n.pos+1]??"";if(hl(f)){let p=n.pos;H(n);let d=Ze(n);if(kp.has(d)&&$e(n,"()"))return a=u,H(n,2),V(n),$e(n,"::")&&(H(n,2),l=ts(n),ml(n)),Op(t,e,r,s,i,o,a,d,l);n.pos=p;}}l=u,ml(n);}let c;if(W(n)==="."&&!Oe(n)){let u=n.input[n.pos+1]??"";if(hl(u)){let f=n.pos;H(n);let p=Ze(n);kp.has(p)&&$e(n,"()")?(c=p,H(n,2),V(n),$e(n,"::")&&(H(n,2),l=ts(n),ml(n))):n.pos=f;}}return Op(t,e,r,s,i,o,a,c,l)}function ml(t){for(V(t);$e(t,"::");)H(t,2),ts(t),V(t);}function ts(t){V(t);let e=[Ze(t)];for(;!Oe(t);){let n=t.pos;if(V(t),t.pos===n)break;let r=W(t);if(!(r==='"'||/^[a-zA-Z0-9_]$/.test(r))){t.pos=n;break}e.push(Ze(t));}return e.join(" ")}function Op(t,e,n,r,s,i,o,a,l){let c=e??(a||void 0)??r;if(!c&&!o&&!l&&!a&&!n)return t;let u=c??t,f={};return t!==u&&(f.column=t),a&&!f.column&&t===u&&(f.column=t),n&&(f.column||(f.column=t),f.path=n,s&&(f.pathText=true),i&&(f.invalidJsonTextTraversalKey=i)),o&&(f.preCast=o),a&&(f.aggregate=a),l&&(f.cast=l),{[u]:f}}function IS(t){let e=[],n="",r=false,s;for(;$e(t,"->");){let o=r;H(t,2);let a=false;W(t)===">"&&(H(t),a=true);let l=DS(t);e.push(l),o&&s===void 0&&(s=l),/^-?\d+$/.test(l)||(n=l),r=a;}return {path:"$."+e.join("."),lastProp:n,lastIsText:r,invalidTextTraversalKey:s}}function DS(t){return jS(t)}var Pp=new Set(["(",".",">","<"]);function es(t,e,n){throw new Je(`"failed to parse select parameter (${t.input})" (line 1, column ${e})`,n)}function jS(t){V(t);let e=t.pos;if(W(t)==='"')return Ze(t);let n="";for(;!Oe(t)&&!($e(t,"->")||$e(t,"::"));){let s=W(t);if(s===","||s==="."||s===":"||/\s/.test(s))break;n+=s,H(t);}n===""&&es(t,e+1,"unexpected end of input");let r=n[0]??"";Pp.has(r)&&es(t,e+1,`unexpected "${r}" expecting "-", digit or any non reserved character different from: .,>()`);for(let s=1;s<n.length;s++){let i=n[s];Pp.has(i)&&es(t,e+s+1,`unexpected "${i}" expecting "-", digit or any non reserved character different from: .,>()`);}if(n.includes("--")){let s=n.indexOf("--"),i=s===0&&n.length>1?e+2:e+s+1;es(t,i,'unexpected "-" expecting digit');}if(n.endsWith("-")&&es(t,e+n.length,'unexpected "-" expecting digit'),/^-\d+\D/.test(n))throw new Je("failed to parse select parameter");return n}function Ze(t,e={}){if(V(t),W(t)==='"'){H(t);let r="";for(;!Oe(t)&&W(t)!=='"';)r+=W(t),H(t);if(Oe(t))throw new Error(`Missing closing quote at position ${t.pos}`);return H(t),r}let n="";for(;!Oe(t);){let r=W(t);if(hl(r))n+=r,H(t);else if(e.allowDollar&&r==="$")n+=r,H(t);else if(e.allowSpaces&&r===" ")n+=r,H(t);else if(r==="-"&&n.length>0){if((t.input[t.pos+1]??"")===">")break;n+=r,H(t);}else break}if(e.allowSpaces&&(n=n.trimEnd()),n==="")throw new Error(`Expected identifier at position ${t.pos}`);if(n.includes("--")||n.endsWith("-"))throw new Je("failed to parse select parameter");return n}var LS=new Set(["application/json","text/csv","application/x-www-form-urlencoded"]);function FS(t){return t.split(";")[0]?.trim().toLowerCase()??""}var ns=class extends Error{mediaType;constructor(e){super(`Content-Type not acceptable: ${e}`),this.name="ContentTypeNotAcceptableError",this.mediaType=e;}};async function bl(t){let e=t.method.toUpperCase();if(e==="GET"||e==="HEAD")return {};let n=await t.text(),r=t.headers.get("Content-Type")??"",s=FS(r);if(!n&&r.includes("text/csv"))throw new Gn('parse error (not enough input) at ""');if(!n)return {};if(s&&!LS.has(s))throw new ns(s);if(r.includes("application/json")||s===""||s==="application/json")try{let i=JSON.parse(n);return Array.isArray(i)?{values:i}:{values:i}}catch{throw new Error(`Invalid JSON body: ${n.slice(0,100)}`)}if(r.includes("text/csv"))return {values:MS(n)};if(r.includes("application/x-www-form-urlencoded")){let i=new URLSearchParams(n),o={};for(let[a,l]of i)o[a]=l;return {values:o}}return {raw:n}}function MS(t){let e=t.replace(/\r\n/g,`
75
+ `,tags:ii,links:si})}).partial();var yb=[{name:"Supabase Realtime",link:"https://supabase.com/docs/guides/realtime"}],fa=["realtime"],tf=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local Realtime service.",tags:fa,links:yb}),ip_version:s.string({enum:["IPv4","IPv6"],default:"IPv4",description:"Bind realtime via either IPv4 or IPv6.",tags:fa,links:[{name:"Supabase Realtime Configuration",link:"https://supabase.com/docs/guides/realtime/self-hosting"}]}),max_header_length:s.number({default:4096,description:"Maximum length of the HTTP header.",tags:fa})}).partial();var ai=[{name:"Storage server configuration",link:"https://supabase.com/docs/guides/self-hosting/storage/config"}],Dt=["storage"],bb=s.strictObject({public:s.boolean({default:false,description:"Enable public access to the bucket."}),file_size_limit:s.string({default:"50MiB",description:"The maximum file size allowed for the bucket.",examples:["5MB","500KB"],tags:Dt,links:ai}),allowed_mime_types:s.array(s.string({description:"A MIME type allowed for the bucket.",tags:Dt}),{examples:[["image/png","image/jpeg"]],description:"The list of allowed MIME types for the bucket.",tags:Dt}),objects_path:s.string({description:"The path to the objects in the bucket.",tags:Dt})}).partial(),nf=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local Storage service.",tags:Dt,links:ai}),file_size_limit:s.string({default:"50MiB",description:"The maximum file size allowed.",examples:["5MB","500KB"],tags:Dt,links:ai}),image_transformation:s.strictObject({enabled:s.boolean({default:true,description:"Enable image transformation.",tags:Dt,links:ai})}).partial(),buckets:s.record(bb,{description:"Storage buckets configuration.",tags:Dt})}).partial();var da={studio:{name:"Supabase Studio",link:"https://supabase.com/docs/guides/studio"},config:{name:"Supabase Studio Configuration",link:"https://supabase.com/docs/guides/self-hosting/studio"}},ci=["studio"],rf=s.strictObject({enabled:s.boolean({default:true,description:"Enable the local Supabase Studio dashboard.",tags:ci,links:[da.studio]}),port:s.number({default:54323,description:"Port to use for Supabase Studio.",tags:ci}),api_url:s.string({default:"http://localhost",description:"External URL of the API server that frontend connects to.",tags:ci,links:[da.config]}),openai_api_key:gt({default:"env(OPENAI_API_KEY)",description:"OpenAI API key to use for Supabase AI in the Supabase Studio.",tags:ci,links:[da.config]})}).partial();var fi=yt.strictObject({project_id:yt.string({description:"A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`.",tags:["general"]}),analytics:Fu,api:Uu,auth:zu,db:Vu,edge_runtime:Qu,functions:Zu,inbucket:ef,realtime:tf,storage:nf,studio:rf,experimental:Yu}).partial();var pa=(t,e,n)=>(r,s)=>{let i=-1;return o(0);async function o(a){if(a<=i)throw new Error("next() called multiple times");i=a;let l,c=false,f;if(t[a]?(f=t[a][0][0],r.req.routeIndex=a):f=a===t.length&&s||void 0,f)try{l=await f(r,()=>o(a+1));}catch(u){if(u instanceof Error&&e)r.error=u,l=await e(u,r),c=true;else throw u}else r.finalized===false&&n&&(l=await n(r));return l&&(r.finalized===false||c)&&(r.res=l),r}};var sf=Symbol();var of=async(t,e=Object.create(null))=>{let{all:n=false,dot:r=false}=e,i=(t instanceof di?t.raw.headers:t.headers).get("Content-Type");return i?.startsWith("multipart/form-data")||i?.startsWith("application/x-www-form-urlencoded")?wb(t,{all:n,dot:r}):{}};async function wb(t,e){let n=await t.formData();return n?Sb(n,e):{}}function Sb(t,e){let n=Object.create(null);return t.forEach((r,s)=>{e.all||s.endsWith("[]")?_b(n,s,r):n[s]=r;}),e.dot&&Object.entries(n).forEach(([r,s])=>{r.includes(".")&&(Eb(n,r,s),delete n[r]);}),n}var _b=(t,e,n)=>{t[e]!==void 0?Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]:e.endsWith("[]")?t[e]=[n]:t[e]=n;},Eb=(t,e,n)=>{let r=t,s=e.split(".");s.forEach((i,o)=>{o===s.length-1?r[i]=n:((!r[i]||typeof r[i]!="object"||Array.isArray(r[i])||r[i]instanceof File)&&(r[i]=Object.create(null)),r=r[i]);});};var ha=t=>{let e=t.split("/");return e[0]===""&&e.shift(),e},af=t=>{let{groups:e,path:n}=xb(t),r=ha(n);return Tb(r,e)},xb=t=>{let e=[];return t=t.replace(/\{[^}]+\}/g,(n,r)=>{let s=`@${r}`;return e.push([s,n]),s}),{groups:e,path:t}},Tb=(t,e)=>{for(let n=e.length-1;n>=0;n--){let[r]=e[n];for(let s=t.length-1;s>=0;s--)if(t[s].includes(r)){t[s]=t[s].replace(r,e[n][1]);break}}return t},pi={},lf=(t,e)=>{if(t==="*")return "*";let n=t.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(n){let r=`${t}#${e}`;return pi[r]||(n[2]?pi[r]=e&&e[0]!==":"&&e[0]!=="*"?[r,n[1],new RegExp(`^${n[2]}(?=/${e})`)]:[t,n[1],new RegExp(`^${n[2]}$`)]:pi[r]=[t,n[1],true]),pi[r]}return null},mi=(t,e)=>{try{return e(t)}catch{return t.replace(/(?:%[0-9A-Fa-f]{2})+/g,n=>{try{return e(n)}catch{return n}})}},Rb=t=>mi(t,decodeURI),ga=t=>{let e=t.url,n=e.indexOf("/",e.indexOf(":")+4),r=n;for(;r<e.length;r++){let s=e.charCodeAt(r);if(s===37){let i=e.indexOf("?",r),o=e.indexOf("#",r),a=i===-1?o===-1?void 0:o:o===-1?i:Math.min(i,o),l=e.slice(n,a);return Rb(l.includes("%25")?l.replace(/%25/g,"%2525"):l)}else if(s===63||s===35)break}return e.slice(n,r)};var cf=t=>{let e=ga(t);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},Yt=(t,e,...n)=>(n.length&&(e=Yt(e,...n)),`${t?.[0]==="/"?"":"/"}${t}${e==="/"?"":`${t?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),hi=t=>{if(t.charCodeAt(t.length-1)!==63||!t.includes(":"))return null;let e=t.split("/"),n=[],r="";return e.forEach(s=>{if(s!==""&&!/\:/.test(s))r+="/"+s;else if(/\:/.test(s))if(/\?/.test(s)){n.length===0&&r===""?n.push("/"):n.push(r);let i=s.replace("?","");r+="/"+i,n.push(r);}else r+="/"+s;}),n.filter((s,i,o)=>o.indexOf(s)===i)},ma=t=>/[%+]/.test(t)?(t.indexOf("+")!==-1&&(t=t.replace(/\+/g," ")),t.indexOf("%")!==-1?mi(t,ya):t):t,uf=(t,e,n)=>{let r;if(!n&&e&&!/[%+]/.test(e)){let o=t.indexOf("?",8);if(o===-1)return;for(t.startsWith(e,o+1)||(o=t.indexOf(`&${e}`,o+1));o!==-1;){let a=t.charCodeAt(o+e.length+1);if(a===61){let l=o+e.length+2,c=t.indexOf("&",l);return ma(t.slice(l,c===-1?void 0:c))}else if(a==38||isNaN(a))return "";o=t.indexOf(`&${e}`,o+1);}if(r=/[%+]/.test(t),!r)return}let s={};r??=/[%+]/.test(t);let i=t.indexOf("?",8);for(;i!==-1;){let o=t.indexOf("&",i+1),a=t.indexOf("=",i);a>o&&o!==-1&&(a=-1);let l=t.slice(i+1,a===-1?o===-1?void 0:o:a);if(r&&(l=ma(l)),i=o,l==="")continue;let c;a===-1?c="":(c=t.slice(a+1,o===-1?void 0:o),r&&(c=ma(c))),n?(s[l]&&Array.isArray(s[l])||(s[l]=[]),s[l].push(c)):s[l]??=c;}return e?s[e]:s},ff=uf,df=(t,e)=>uf(t,e,true),ya=decodeURIComponent;var pf=t=>mi(t,ya),di=class{raw;#t;#e;routeIndex=0;path;bodyCache={};constructor(t,e="/",n=[[]]){this.raw=t,this.path=e,this.#e=n,this.#t={};}param(t){return t?this.#n(t):this.#i()}#n(t){let e=this.#e[0][this.routeIndex][1][t],n=this.#r(e);return n&&/\%/.test(n)?pf(n):n}#i(){let t={},e=Object.keys(this.#e[0][this.routeIndex][1]);for(let n of e){let r=this.#r(this.#e[0][this.routeIndex][1][n]);r!==void 0&&(t[n]=/\%/.test(r)?pf(r):r);}return t}#r(t){return this.#e[1]?this.#e[1][t]:t}query(t){return ff(this.url,t)}queries(t){return df(this.url,t)}header(t){if(t)return this.raw.headers.get(t)??void 0;let e={};return this.raw.headers.forEach((n,r)=>{e[r]=n;}),e}async parseBody(t){return this.bodyCache.parsedBody??=await of(this,t)}#s=t=>{let{bodyCache:e,raw:n}=this,r=e[t];if(r)return r;let s=Object.keys(e)[0];return s?e[s].then(i=>(s==="json"&&(i=JSON.stringify(i)),new Response(i)[t]())):e[t]=n[t]()};json(){return this.#s("text").then(t=>JSON.parse(t))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(t,e){this.#t[t]=e;}valid(t){return this.#t[t]}get url(){return this.raw.url}get method(){return this.raw.method}get[sf](){return this.#e}get matchedRoutes(){return this.#e[0].map(([[,t]])=>t)}get routePath(){return this.#e[0].map(([[,t]])=>t)[this.routeIndex].path}};var Xe={Stringify:1},Y=(t,e)=>{let n=new String(t);return n.isEscaped=true,n.callbacks=e,n},Cb=/[&<>'"]/,gi=async(t,e)=>{let n="";e||=[];let r=await Promise.all(t);for(let s=r.length-1;n+=r[s],s--,!(s<0);s--){let i=r[s];typeof i=="object"&&e.push(...i.callbacks||[]);let o=i.isEscaped;if(i=await(typeof i=="object"?i.toString():i),typeof i=="object"&&e.push(...i.callbacks||[]),i.isEscaped??o)n+=i;else {let a=[n];bt(i,a),n=a[0];}}return Y(n,e)},bt=(t,e)=>{let n=t.search(Cb);if(n===-1){e[0]+=t;return}let r,s,i=0;for(s=n;s<t.length;s++){switch(t.charCodeAt(s)){case 34:r="&quot;";break;case 39:r="&#39;";break;case 38:r="&amp;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}e[0]+=t.substring(i,s)+r,i=s+1;}e[0]+=t.substring(i,s);},ba=t=>{let e=t.callbacks;if(!e?.length)return t;let n=[t],r={};return e.forEach(s=>s({phase:Xe.Stringify,buffer:n,context:r})),n[0]},Zt=async(t,e,n,r,s)=>{typeof t=="object"&&!(t instanceof String)&&(t instanceof Promise||(t=t.toString()),t instanceof Promise&&(t=await t));let i=t.callbacks;if(!i?.length)return Promise.resolve(t);s?s[0]+=t:s=[t];let o=Promise.all(i.map(a=>a({phase:e,buffer:s,context:r}))).then(a=>Promise.all(a.filter(Boolean).map(l=>Zt(l,e,false,r,s))).then(()=>s[0]));return n?Y(await o,i):o};var kb="text/plain; charset=UTF-8",wa=(t,e)=>({"Content-Type":t,...e}),_r=(t,e)=>new Response(t,e),mf=class{#t;#e;env={};#n;finalized=false;error;#i;#r;#s;#u;#l;#c;#a;#f;#d;constructor(t,e){this.#t=t,e&&(this.#r=e.executionCtx,this.env=e.env,this.#c=e.notFoundHandler,this.#d=e.path,this.#f=e.matchResult);}get req(){return this.#e??=new di(this.#t,this.#d,this.#f),this.#e}get event(){if(this.#r&&"respondWith"in this.#r)return this.#r;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#r)return this.#r;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=_r(null,{headers:this.#a??=new Headers})}set res(t){if(this.#s&&t){t=_r(t.body,t);for(let[e,n]of this.#s.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let r=this.#s.headers.getSetCookie();t.headers.delete("set-cookie");for(let s of r)t.headers.append("set-cookie",s);}else t.headers.set(e,n);}this.#s=t,this.finalized=true;}render=(...t)=>(this.#l??=e=>this.html(e),this.#l(...t));setLayout=t=>this.#u=t;getLayout=()=>this.#u;setRenderer=t=>{this.#l=t;};header=(t,e,n)=>{this.finalized&&(this.#s=_r(this.#s.body,this.#s));let r=this.#s?this.#s.headers:this.#a??=new Headers;e===void 0?r.delete(t):n?.append?r.append(t,e):r.set(t,e);};status=t=>{this.#i=t;};set=(t,e)=>{this.#n??=new Map,this.#n.set(t,e);};get=t=>this.#n?this.#n.get(t):void 0;get var(){return this.#n?Object.fromEntries(this.#n):{}}#o(t,e,n){let r=this.#s?new Headers(this.#s.headers):this.#a??new Headers;if(typeof e=="object"&&"headers"in e){let i=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[o,a]of i)o.toLowerCase()==="set-cookie"?r.append(o,a):r.set(o,a);}if(n)for(let[i,o]of Object.entries(n))if(typeof o=="string")r.set(i,o);else {r.delete(i);for(let a of o)r.append(i,a);}let s=typeof e=="number"?e:e?.status??this.#i;return _r(t,{status:s,headers:r})}newResponse=(...t)=>this.#o(...t);body=(t,e,n)=>this.#o(t,e,n);text=(t,e,n)=>!this.#a&&!this.#i&&!e&&!n&&!this.finalized?new Response(t):this.#o(t,e,wa(kb,n));json=(t,e,n)=>this.#o(JSON.stringify(t),e,wa("application/json",n));html=(t,e,n)=>{let r=s=>this.#o(s,e,wa("text/html; charset=UTF-8",n));return typeof t=="object"?Zt(t,Xe.Stringify,false,{}).then(r):r(t)};redirect=(t,e)=>{let n=String(t);return this.header("Location",/[^\x00-\xFF]/.test(n)?encodeURI(n):n),this.newResponse(null,e??302)};notFound=()=>(this.#c??=()=>_r(),this.#c(this))};var ne="ALL",hf="all",gf=["get","post","put","delete","options","patch"],yi="Can not add a route since the matcher is already built.",bi=class extends Error{};var yf="__COMPOSED_HANDLER";var vb=t=>t.text("404 Not Found",404),bf=(t,e)=>{if("getResponse"in t){let n=t.getResponse();return e.newResponse(n.body,n)}return console.error(t),e.text("Internal Server Error",500)},wf=class Sf{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(e={}){[...gf,hf].forEach(i=>{this[i]=(o,...a)=>(typeof o=="string"?this.#t=o:this.#i(i,this.#t,o),a.forEach(l=>{this.#i(i,this.#t,l);}),this);}),this.on=(i,o,...a)=>{for(let l of [o].flat()){this.#t=l;for(let c of [i].flat())a.map(f=>{this.#i(c.toUpperCase(),this.#t,f);});}return this},this.use=(i,...o)=>(typeof i=="string"?this.#t=i:(this.#t="*",o.unshift(i)),o.forEach(a=>{this.#i(ne,this.#t,a);}),this);let{strict:r,...s}=e;Object.assign(this,s),this.getPath=r??true?e.getPath??ga:cf;}#e(){let e=new Sf({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#n=this.#n,e.routes=this.routes,e}#n=vb;errorHandler=bf;route(e,n){let r=this.basePath(e);return n.routes.map(s=>{let i;n.errorHandler===bf?i=s.handler:(i=async(o,a)=>(await pa([],n.errorHandler)(o,()=>s.handler(o,a))).res,i[yf]=s.handler),r.#i(s.method,s.path,i);}),this}basePath(e){let n=this.#e();return n._basePath=Yt(this._basePath,e),n}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#n=e,this);mount(e,n,r){let s,i;r&&(typeof r=="function"?i=r:(i=r.optionHandler,r.replaceRequest===false?s=l=>l:s=r.replaceRequest));let o=i?l=>{let c=i(l);return Array.isArray(c)?c:[c]}:l=>{let c;try{c=l.executionCtx;}catch{}return [l.env,c]};s||=(()=>{let l=Yt(this._basePath,e),c=l==="/"?0:l.length;return f=>{let u=new URL(f.url);return u.pathname=u.pathname.slice(c)||"/",new Request(u,f)}})();let a=async(l,c)=>{let f=await n(s(l.req.raw),...o(l));if(f)return f;await c();};return this.#i(ne,Yt(e,"*"),a),this}#i(e,n,r){e=e.toUpperCase(),n=Yt(this._basePath,n);let s={basePath:this._basePath,path:n,method:e,handler:r};this.router.add(e,n,[r,s]),this.routes.push(s);}#r(e,n){if(e instanceof Error)return this.errorHandler(e,n);throw e}#s(e,n,r,s){if(s==="HEAD")return (async()=>new Response(null,await this.#s(e,n,r,"GET")))();let i=this.getPath(e,{env:r}),o=this.router.match(s,i),a=new mf(e,{path:i,matchResult:o,env:r,executionCtx:n,notFoundHandler:this.#n});if(o[0].length===1){let c;try{c=o[0][0][0][0](a,async()=>{a.res=await this.#n(a);});}catch(f){return this.#r(f,a)}return c instanceof Promise?c.then(f=>f||(a.finalized?a.res:this.#n(a))).catch(f=>this.#r(f,a)):c??this.#n(a)}let l=pa(o[0],this.errorHandler,this.#n);return (async()=>{try{let c=await l(a);if(!c.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return c.res}catch(c){return this.#r(c,a)}})()}fetch=(e,...n)=>this.#s(e,n[1],n[0],e.method);request=(e,n,r,s)=>e instanceof Request?this.fetch(n?new Request(e,n):e,r,s):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${Yt("/",e)}`,n),r,s));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#s(e.request,e,void 0,e.request.method));});}};var wi=[];function Sa(t,e){let n=this.buildAllMatchers(),r=((s,i)=>{let o=n[s]||n[ne],a=o[2][i];if(a)return a;let l=i.match(o[0]);if(!l)return [[],wi];let c=l.indexOf("",1);return [o[1][c],l]});return this.match=r,r(t,e)}var Si="[^/]+",Er=".*",xr="(?:|/.*)",en=Symbol(),Ab=new Set(".\\+*[^]$()");function Ob(t,e){return t.length===1?e.length===1?t<e?-1:1:-1:e.length===1||t===Er||t===xr?1:e===Er||e===xr?-1:t===Si?1:e===Si?-1:t.length===e.length?t<e?-1:1:e.length-t.length}var _f=class _a{#t;#e;#n=Object.create(null);insert(e,n,r,s,i){if(e.length===0){if(this.#t!==void 0)throw en;if(i)return;this.#t=n;return}let[o,...a]=e,l=o==="*"?a.length===0?["","",Er]:["","",Si]:o==="/*"?["","",xr]:o.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),c;if(l){let f=l[1],u=l[2]||Si;if(f&&l[2]&&(u===".*"||(u=u.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(u))))throw en;if(c=this.#n[u],!c){if(Object.keys(this.#n).some(d=>d!==Er&&d!==xr))throw en;if(i)return;c=this.#n[u]=new _a,f!==""&&(c.#e=s.varIndex++);}!i&&f!==""&&r.push([f,c.#e]);}else if(c=this.#n[o],!c){if(Object.keys(this.#n).some(f=>f.length>1&&f!==Er&&f!==xr))throw en;if(i)return;c=this.#n[o]=new _a;}c.insert(a,n,r,s,i);}buildRegExpStr(){let n=Object.keys(this.#n).sort(Ob).map(r=>{let s=this.#n[r];return (typeof s.#e=="number"?`(${r})@${s.#e}`:Ab.has(r)?`\\${r}`:r)+s.buildRegExpStr()});return typeof this.#t=="number"&&n.unshift(`#${this.#t}`),n.length===0?"":n.length===1?n[0]:"(?:"+n.join("|")+")"}};var Ef=class{#t={varIndex:0};#e=new _f;insert(t,e,n){let r=[],s=[];for(let o=0;;){let a=false;if(t=t.replace(/\{[^}]+\}/g,l=>{let c=`@\\${o}`;return s[o]=[c,l],o++,a=true,c}),!a)break}let i=t.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let o=s.length-1;o>=0;o--){let[a]=s[o];for(let l=i.length-1;l>=0;l--)if(i[l].indexOf(a)!==-1){i[l]=i[l].replace(a,s[o][1]);break}}return this.#e.insert(i,e,r,this.#t,n),r}buildRegExp(){let t=this.#e.buildRegExpStr();if(t==="")return [/^$/,[],[]];let e=0,n=[],r=[];return t=t.replace(/#(\d+)|@(\d+)|\.\*\$/g,(s,i,o)=>i!==void 0?(n[++e]=Number(i),"$()"):(o!==void 0&&(r[Number(o)]=++e),"")),[new RegExp(`^${t}`),n,r]}};var Pb=[/^$/,[],Object.create(null)],xf=Object.create(null);function Tf(t){return xf[t]??=new RegExp(t==="*"?"":`^${t.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,n)=>n?`\\${n}`:"(?:|/.*)")}$`)}function $b(){xf=Object.create(null);}function Ib(t){let e=new Ef,n=[];if(t.length===0)return Pb;let r=t.map(c=>[!/\*|\/:/.test(c[0]),...c]).sort(([c,f],[u,d])=>c?1:u?-1:f.length-d.length),s=Object.create(null);for(let c=0,f=-1,u=r.length;c<u;c++){let[d,p,g]=r[c];d?s[p]=[g.map(([h])=>[h,Object.create(null)]),wi]:f++;let m;try{m=e.insert(p,f,d);}catch(h){throw h===en?new bi(p):h}d||(n[f]=g.map(([h,y])=>{let w=Object.create(null);for(y-=1;y>=0;y--){let[S,b]=m[y];w[S]=b;}return [h,w]}));}let[i,o,a]=e.buildRegExp();for(let c=0,f=n.length;c<f;c++)for(let u=0,d=n[c].length;u<d;u++){let p=n[c][u]?.[1];if(!p)continue;let g=Object.keys(p);for(let m=0,h=g.length;m<h;m++)p[g[m]]=a[p[g[m]]];}let l=[];for(let c in o)l[c]=n[o[c]];return [i,l,s]}function Cn(t,e){if(t){for(let n of Object.keys(t).sort((r,s)=>s.length-r.length))if(Tf(n).test(e))return [...t[n]]}}var _i=class{name="RegExpRouter";#t;#e;constructor(){this.#t={[ne]:Object.create(null)},this.#e={[ne]:Object.create(null)};}add(t,e,n){let r=this.#t,s=this.#e;if(!r||!s)throw new Error(yi);r[t]||[r,s].forEach(a=>{a[t]=Object.create(null),Object.keys(a[ne]).forEach(l=>{a[t][l]=[...a[ne][l]];});}),e==="/*"&&(e="*");let i=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let a=Tf(e);t===ne?Object.keys(r).forEach(l=>{r[l][e]||=Cn(r[l],e)||Cn(r[ne],e)||[];}):r[t][e]||=Cn(r[t],e)||Cn(r[ne],e)||[],Object.keys(r).forEach(l=>{(t===ne||t===l)&&Object.keys(r[l]).forEach(c=>{a.test(c)&&r[l][c].push([n,i]);});}),Object.keys(s).forEach(l=>{(t===ne||t===l)&&Object.keys(s[l]).forEach(c=>a.test(c)&&s[l][c].push([n,i]));});return}let o=hi(e)||[e];for(let a=0,l=o.length;a<l;a++){let c=o[a];Object.keys(s).forEach(f=>{(t===ne||t===f)&&(s[f][c]||=[...Cn(r[f],c)||Cn(r[ne],c)||[]],s[f][c].push([n,i-l+a+1]));});}}match=Sa;buildAllMatchers(){let t=Object.create(null);return Object.keys(this.#e).concat(Object.keys(this.#t)).forEach(e=>{t[e]||=this.#n(e);}),this.#t=this.#e=void 0,$b(),t}#n(t){let e=[],n=t===ne;return [this.#t,this.#e].forEach(r=>{let s=r[t]?Object.keys(r[t]).map(i=>[i,r[t][i]]):[];s.length!==0?(n||=true,e.push(...s)):t!==ne&&e.push(...Object.keys(r[ne]).map(i=>[i,r[ne][i]]));}),n?Ib(e):null}};var Ea=class{name="SmartRouter";#t=[];#e=[];constructor(t){this.#t=t.routers;}add(t,e,n){if(!this.#e)throw new Error(yi);this.#e.push([t,e,n]);}match(t,e){if(!this.#e)throw new Error("Fatal error");let n=this.#t,r=this.#e,s=n.length,i=0,o;for(;i<s;i++){let a=n[i];try{for(let l=0,c=r.length;l<c;l++)a.add(...r[l]);o=a.match(t,e);}catch(l){if(l instanceof bi)continue;throw l}this.match=a.match.bind(a),this.#t=[a],this.#e=void 0;break}if(i===s)throw new Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,o}get activeRouter(){if(this.#e||this.#t.length!==1)throw new Error("No active router has been determined yet.");return this.#t[0]}};var Tr=Object.create(null),Nb=t=>{for(let e in t)return true;return false},Rf=class Cf{#t;#e;#n;#i=0;#r=Tr;constructor(e,n,r){if(this.#e=r||Object.create(null),this.#t=[],e&&n){let s=Object.create(null);s[e]={handler:n,possibleKeys:[],score:0},this.#t=[s];}this.#n=[];}insert(e,n,r){this.#i=++this.#i;let s=this,i=af(n),o=[];for(let a=0,l=i.length;a<l;a++){let c=i[a],f=i[a+1],u=lf(c,f),d=Array.isArray(u)?u[0]:c;if(d in s.#e){s=s.#e[d],u&&o.push(u[1]);continue}s.#e[d]=new Cf,u&&(s.#n.push(u),o.push(u[1])),s=s.#e[d];}return s.#t.push({[e]:{handler:r,possibleKeys:o.filter((a,l,c)=>c.indexOf(a)===l),score:this.#i}}),s}#s(e,n,r,s,i){for(let o=0,a=n.#t.length;o<a;o++){let l=n.#t[o],c=l[r]||l[ne],f={};if(c!==void 0&&(c.params=Object.create(null),e.push(c),s!==Tr||i&&i!==Tr))for(let u=0,d=c.possibleKeys.length;u<d;u++){let p=c.possibleKeys[u],g=f[c.score];c.params[p]=i?.[p]&&!g?i[p]:s[p]??i?.[p],f[c.score]=true;}}}search(e,n){let r=[];this.#r=Tr;let i=[this],o=ha(n),a=[],l=o.length,c=null;for(let f=0;f<l;f++){let u=o[f],d=f===l-1,p=[];for(let m=0,h=i.length;m<h;m++){let y=i[m],w=y.#e[u];w&&(w.#r=y.#r,d?(w.#e["*"]&&this.#s(r,w.#e["*"],e,y.#r),this.#s(r,w,e,y.#r)):p.push(w));for(let S=0,b=y.#n.length;S<b;S++){let _=y.#n[S],E=y.#r===Tr?{}:{...y.#r};if(_==="*"){let C=y.#e["*"];C&&(this.#s(r,C,e,y.#r),C.#r=E,p.push(C));continue}let[x,O,v]=_;if(!u&&!(v instanceof RegExp))continue;let P=y.#e[x];if(v instanceof RegExp){if(c===null){c=new Array(l);let U=n[0]==="/"?1:0;for(let J=0;J<l;J++)c[J]=U,U+=o[J].length+1;}let C=n.substring(c[f]),R=v.exec(C);if(R){if(E[O]=R[0],this.#s(r,P,e,y.#r,E),Nb(P.#e)){P.#r=E;let U=R[0].match(/\//)?.length??0;(a[U]||=[]).push(P);}continue}}(v===true||v.test(u))&&(E[O]=u,d?(this.#s(r,P,e,E,y.#r),P.#e["*"]&&this.#s(r,P.#e["*"],e,E,y.#r)):(P.#r=E,p.push(P)));}}let g=a.shift();i=g?p.concat(g):p;}return r.length>1&&r.sort((f,u)=>f.score-u.score),[r.map(({handler:f,params:u})=>[f,u])]}};var xa=class{name="TrieRouter";#t;constructor(){this.#t=new Rf;}add(t,e,n){let r=hi(e);if(r){for(let s=0,i=r.length;s<i;s++)this.#t.insert(t,r[s],n);return}this.#t.insert(t,e,n);}match(t,e){return this.#t.search(t,e)}};var _e=class extends wf{constructor(t={}){super(t),this.router=t.router??new Ea({routers:[new _i,new xa]});}};var kf=t=>{let n={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...t},r=(i=>typeof i=="string"?i==="*"?()=>i:o=>i===o?o:null:typeof i=="function"?i:o=>i.includes(o)?o:null)(n.origin),s=(i=>typeof i=="function"?i:Array.isArray(i)?()=>i:()=>[])(n.allowMethods);return async function(o,a){function l(f,u){o.res.headers.set(f,u);}let c=await r(o.req.header("origin")||"",o);if(c&&l("Access-Control-Allow-Origin",c),n.credentials&&l("Access-Control-Allow-Credentials","true"),n.exposeHeaders?.length&&l("Access-Control-Expose-Headers",n.exposeHeaders.join(",")),o.req.method==="OPTIONS"){n.origin!=="*"&&l("Vary","Origin"),n.maxAge!=null&&l("Access-Control-Max-Age",n.maxAge.toString());let f=await s(o.req.header("origin")||"",o);f.length&&l("Access-Control-Allow-Methods",f.join(","));let u=n.allowHeaders;if(!u?.length){let d=o.req.header("Access-Control-Request-Headers");d&&(u=d.split(/\s*,\s*/));}return u?.length&&(l("Access-Control-Allow-Headers",u.join(",")),o.res.headers.append("Vary","Access-Control-Request-Headers")),o.res.headers.delete("Content-Length"),o.res.headers.delete("Content-Type"),new Response(null,{headers:o.res.headers,status:204,statusText:"No Content"})}await a(),n.origin!=="*"&&o.header("Vary","Origin",{append:true});}};var kn=Symbol("lite-internal-request"),vf=Symbol("lite-peer-address");var Db=["/rest/v1","/storage/v1"],jb=new Set(["localhost","127.0.0.1","::1","[::1]"]);function Lb(t){let e=t.trim().toLowerCase();if(e.startsWith("[")){let r=e.indexOf("]");return r===-1?e:e.slice(0,r+1)}let n=e.indexOf(":");return n===-1?e:e.slice(0,n)}function Fb(t){let e=t.trim().toLowerCase();return e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1)),e=e.split("%")[0],e==="::1"?true:(e.startsWith("::ffff:")&&(e=e.slice(7)),e==="localhost"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e))}function Ub(t){let e=t.req.header("Origin");if(!e)return true;try{return new URL(e).origin.toLowerCase()===new URL(t.req.url).origin.toLowerCase()}catch{return false}}function Mb(t){let e=t.req.header("Host")??new URL(t.req.url).host;if(!jb.has(Lb(e)))return false;let n=t.req.raw[vf];return typeof n=="string"&&n.length>0?Fb(n):true}function Bb(t){return t.req.header("apikey")!==void 0||t.req.query("apikey")!==void 0||t.req.header("Authorization")!==void 0}function Ta(t){return Ub(t)&&Mb(t)}function qb(t){return t.req.method==="OPTIONS"||!Db.some(e=>t.req.path.startsWith(e))||Bb(t)?false:Ta(t)}function Af(t){return async(e,n)=>qb(e)?(e.set("admin",true),e.set("apiKeyType","secret"),e.set("ignoreAuthorization",true),e.set("jwt",{role:"service_role"}),n()):t(e,n)}var $f=t=>JSON.parse(jsonStringify(t)),Of="[redacted]";function Pf(t){let e=$f(t);return e?.auth&&typeof e.auth=="object"&&("secret_key"in e.auth&&(e.auth.secret_key=Of),"jwt_secret"in e.auth&&(e.auth.jwt_secret=Of)),e}var If=new _e().get("/ping",t=>t.json({message:"pong"})).get("/config",t=>t.json(Pf(t.var.app.config))).get("/info",t=>t.json({connection:$f(t.var.app.connection.config),config:Pf(t.var.app.config),admin:t.var.app.adminMode&&Ta(t)})).get("/introspect",async t=>{let e=await t.var.app.connection.introspect();return t.json(e)});var ve=class extends Error{code;details;hint;httpStatus;constructor(e){super(e.message),this.name="EmbedError",this.code=e.code,this.details=e.details,this.hint=e.hint,this.httpStatus=e.httpStatus;}},He=class extends Error{constructor(n,r=n){super(n);this.details=r;this.name="SelectParseError";}},jt=class extends Error{constructor(n,r=n){super(n);this.details=r;this.name="QueryParamParseError";}},vn=class extends Error{constructor(n="Invalid path specified in request URL",r=null){super(n);this.details=r;this.name="RouteValidationError";}},An=class extends Error{constructor(n){super(`invalid input syntax for type integer: "${n}"`);this.rawValue=n;this.name="SqliteIntegerCastError";}code="22P02"},fe=class extends Error{constructor(n,r,s){super(n);this.details=r;this.position=s;this.name="OrderParseError";}};var Wb="/rest/v1";function Ra(t,e=Wb){let n=new URL(t.url),r=decodeURIComponent(n.pathname);r.startsWith(e)&&(r=r.slice(e.length)),r=r.replace(/^\/+|\/+$/g,"");let s=r.split("/");if(s[0]==="rpc"&&s[1])return {function:s[1],isRpc:true};if(s.length>1)throw new vn;return {from:s[0]||void 0,isRpc:false}}function Ca(t){let e=t.method.toUpperCase(),n;e==="GET"||e==="HEAD"?n=t.headers.get("Accept-Profile")??void 0:n=t.headers.get("Content-Profile")??void 0;let r=[],s=[],i=t.headers.get("Prefer");i&&s.push(i);for(let a of s){let l=a.split(",").map(c=>c.trim()).filter(Boolean);for(let c of l){let f=c.indexOf("=");if(f===-1)continue;let u=c.slice(0,f).trim(),d=c.slice(f+1).trim();u==="max-affected"?r.push({key:"max-affected",value:Number(d)}):r.push({key:u,value:d});}}let o=t.headers.get("Accept")??"application/json";return {schema:n,preferTokens:r,accept:o}}var Nf=new Set(["count","sum","avg","min","max"]);function W(t){return t.input[t.pos]??""}function q(t,e=1){t.pos+=e;}function Oe(t){return t.pos>=t.input.length}function Ae(t,e){return t.input.startsWith(e,t.pos)}function va(t){return /^[a-zA-Z0-9_]$/.test(t)}function z(t){for(;!Oe(t)&&/\s/.test(W(t));)q(t);}function Oa(t){let n=new URL(t.url).searchParams.get("select");if(n==null)return {select:[],join:{},embeddedAliases:new Set};if(n==="")return {select:[],join:{},embeddedAliases:new Set};if(n.trim()==="")throw new He("failed to parse select parameter");let r={},s=new Set;try{let i={input:n,pos:0},o=Ff(i,r,s);if(z(i),Kb(i),!Oe(i))throw new Error(`Unexpected input at position ${i.pos}: "${i.input.slice(i.pos)}"`);return {select:o,join:r,embeddedAliases:s}}catch(i){if(Jb(n))return {select:[],join:{},embeddedAliases:new Set};throw i}}function Kb(t){let e=t.pos-1;for(;e>=0&&/\s/.test(t.input[e]??"");)e--;if(t.input[e]!==")")return;let n=t.pos;for(;W(t)==="'";)q(t);t.pos!==n&&z(t);}function Jb(t){if(/^\s/.test(t))return false;let e=t.trimStart();if(e==="")return false;if(Gb(e)||e.startsWith("::")||e.startsWith("->"))return true;let n=e[0]??"";return new Set([".",":","!","@","#","%","`","[","-","(","'","~"]).has(n)}function Gb(t){return t.startsWith("...")?!/^\.{3}\s*(?:"[^"]+"|[a-zA-Z_][a-zA-Z0-9_$ -]*)\s*(?:![a-zA-Z_][a-zA-Z0-9_]*)*\s*\(/.test(t):false}function Ff(t,e,n){let r=[];if(z(t),Oe(t)||W(t)===")"||W(t)===","&&(q(t),z(t),Oe(t)||W(t)===")"))return r;for(r.push(Df(t,e,n));!Oe(t)&&(z(t),W(t)===",");)q(t),z(t),r.push(Df(t,e,n));return r}function Df(t,e,n){if(z(t),W(t)==="*")return q(t),Xb(t),Ae(t,".count()")&&q(t,8),"*";if(Ae(t,"..."))return q(t,3),z(t),zb(t,e,n);let r=Ye(t,{allowSpaces:true,allowDollar:true});return z(t),Ae(t,"::")?Aa(r,void 0,t,e,n):W(t)===":"?(q(t),z(t),Vb(r,t,e,n)):Aa(r,void 0,t,e,n)}function zb(t,e,n){let r=Ye(t);z(t);let{hint:s,innerJoin:i}=Uf(t);if(z(t),W(t)!=="(")throw new Error(`Expected "(" for spread embed at position ${t.pos}`);let{subSelect:o,subJoin:a}=Mf(t),l=r,c={};i&&(c.type="inner"),s&&(c.hint=s),e[l]=c,n.add(l);let f={spread:true,select:o};return Object.keys(a).length>0&&(f.join=a),{[l]:f}}function Vb(t,e,n,r){let s=Ye(e,{allowSpaces:true,allowDollar:true});return z(e),Aa(s,t,e,n,r)}function Aa(t,e,n,r,s){return z(n),t==="count"&&(Oe(n)||W(n)===","||W(n)===")"||W(n)==="("||Ae(n,"::"))?Zb(e,n):W(n)==="!"||W(n)==="("?Qb(t,e,n,r,s):ew(t,e,n)}function Qb(t,e,n,r,s){let{hint:i,innerJoin:o}=Uf(n);if(z(n),W(n)!=="(")throw new He("failed to parse select parameter");let{subSelect:a,subJoin:l}=Mf(n),c=e??t,f={};e&&(f.from=t),o&&(f.type="inner"),i&&(f.hint=i),r[c]=f,s.add(c),e&&t!==c&&s.add(t);let u={select:a};return Object.keys(l).length>0&&(u.join=l),{[c]:u}}function Uf(t){if(z(t),W(t)!=="!")return {};q(t);let e=Ye(t);if(e==="inner")return {innerJoin:true};if(e==="left")return {};let n=e;if(z(t),W(t)==="!"){q(t);let r=Ye(t);if(r==="inner")return {hint:n,innerJoin:true};if(r==="left")return {hint:n};throw new Error(`Expected "inner" or "left" after hint, got "${r}" at position ${t.pos}`)}return {hint:n}}function Xb(t){for(;W(t)==="*";)q(t);for(;W(t)==="!";){let e=t.pos;if(q(t),!Yb(t)){t.pos=e;return}}}function Yb(t){let e=t.pos;try{return Ye(t),!0}catch{return t.pos=e,false}}function Mf(t,e,n){if(W(t)!=="(")throw new Error(`Expected "(" at position ${t.pos}`);q(t),z(t);let r={},s=new Set;if(W(t)===")")return q(t),{subSelect:[],subJoin:r};let i=Ff(t,r,s);if(z(t),W(t)!==")")throw new Error(`Expected ")" at position ${t.pos}`);return q(t),{subSelect:i,subJoin:r}}function Zb(t,e){z(e);let n=true;if(W(e)==="("){n=false,q(e);let o=e.pos;for(;!Oe(e)&&W(e)!==")";)q(e);if(Oe(e))throw new He("expected closing paren for count()");let a=e.input.slice(o,e.pos).trim();if(q(e),a!=="")throw new He("expected null arg for count()")}z(e);let r;Ae(e,"::")&&(q(e,2),r=Cr(e));let s=t??"count",i={aggregate:"count"};return n&&(i.bareCount=true),r&&(i.cast=r),{[s]:i}}function ew(t,e,n){z(n);let r,s,i=false,o;if(Ae(n,"->")){let{path:f,lastProp:u,lastIsText:d,invalidTextTraversalKey:p}=tw(n);r=f,s=u||void 0,i=d,o=p;}z(n);let a,l;if(Ae(n,"::")){q(n,2);let f=Cr(n);if(z(n),W(n)==="."&&!Oe(n)){let u=n.input[n.pos+1]??"";if(va(u)){let d=n.pos;q(n);let p=Ye(n);if(Nf.has(p)&&Ae(n,"()"))return a=f,q(n,2),z(n),Ae(n,"::")&&(q(n,2),l=Cr(n),ka(n)),jf(t,e,r,s,i,o,a,p,l);n.pos=d;}}l=f,ka(n);}let c;if(W(n)==="."&&!Oe(n)){let f=n.input[n.pos+1]??"";if(va(f)){let u=n.pos;q(n);let d=Ye(n);Nf.has(d)&&Ae(n,"()")?(c=d,q(n,2),z(n),Ae(n,"::")&&(q(n,2),l=Cr(n),ka(n))):n.pos=u;}}return jf(t,e,r,s,i,o,a,c,l)}function ka(t){for(z(t);Ae(t,"::");)q(t,2),Cr(t),z(t);}function Cr(t){z(t);let e=[Ye(t)];for(;!Oe(t);){let n=t.pos;if(z(t),t.pos===n)break;let r=W(t);if(!(r==='"'||/^[a-zA-Z0-9_]$/.test(r))){t.pos=n;break}e.push(Ye(t));}return e.join(" ")}function jf(t,e,n,r,s,i,o,a,l){let c=e??(a||void 0)??r;if(!c&&!o&&!l&&!a&&!n)return t;let f=c??t,u={};return t!==f&&(u.column=t),a&&!u.column&&t===f&&(u.column=t),n&&(u.column||(u.column=t),u.path=n,s&&(u.pathText=true),i&&(u.invalidJsonTextTraversalKey=i)),o&&(u.preCast=o),a&&(u.aggregate=a),l&&(u.cast=l),{[f]:u}}function tw(t){let e=[],n="",r=false,s;for(;Ae(t,"->");){let o=r;q(t,2);let a=false;W(t)===">"&&(q(t),a=true);let l=nw(t);e.push(l),o&&s===void 0&&(s=l),/^-?\d+$/.test(l)||(n=l),r=a;}return {path:"$."+e.join("."),lastProp:n,lastIsText:r,invalidTextTraversalKey:s}}function nw(t){return rw(t)}var Lf=new Set(["(",".",">","<"]);function Rr(t,e,n){throw new He(`"failed to parse select parameter (${t.input})" (line 1, column ${e})`,n)}function rw(t){z(t);let e=t.pos;if(W(t)==='"')return Ye(t);let n="";for(;!Oe(t)&&!(Ae(t,"->")||Ae(t,"::"));){let s=W(t);if(s===","||s==="."||s===":"||/\s/.test(s))break;n+=s,q(t);}n===""&&Rr(t,e+1,"unexpected end of input");let r=n[0]??"";Lf.has(r)&&Rr(t,e+1,`unexpected "${r}" expecting "-", digit or any non reserved character different from: .,>()`);for(let s=1;s<n.length;s++){let i=n[s];Lf.has(i)&&Rr(t,e+s+1,`unexpected "${i}" expecting "-", digit or any non reserved character different from: .,>()`);}if(n.includes("--")){let s=n.indexOf("--"),i=s===0&&n.length>1?e+2:e+s+1;Rr(t,i,'unexpected "-" expecting digit');}if(n.endsWith("-")&&Rr(t,e+n.length,'unexpected "-" expecting digit'),/^-\d+\D/.test(n))throw new He("failed to parse select parameter");return n}function Ye(t,e={}){if(z(t),W(t)==='"'){q(t);let r="";for(;!Oe(t)&&W(t)!=='"';)r+=W(t),q(t);if(Oe(t))throw new Error(`Missing closing quote at position ${t.pos}`);return q(t),r}let n="";for(;!Oe(t);){let r=W(t);if(va(r))n+=r,q(t);else if(e.allowDollar&&r==="$")n+=r,q(t);else if(e.allowSpaces&&r===" ")n+=r,q(t);else if(r==="-"&&n.length>0){if((t.input[t.pos+1]??"")===">")break;n+=r,q(t);}else break}if(e.allowSpaces&&(n=n.trimEnd()),n==="")throw new Error(`Expected identifier at position ${t.pos}`);if(n.includes("--")||n.endsWith("-"))throw new He("failed to parse select parameter");return n}var sw=new Set(["application/json","text/csv","application/x-www-form-urlencoded"]);function iw(t){return t.split(";")[0]?.trim().toLowerCase()??""}var kr=class extends Error{mediaType;constructor(e){super(`Content-Type not acceptable: ${e}`),this.name="ContentTypeNotAcceptableError",this.mediaType=e;}};async function Pa(t){let e=t.method.toUpperCase();if(e==="GET"||e==="HEAD")return {};let n=await t.text(),r=t.headers.get("Content-Type")??"",s=iw(r);if(!n&&r.includes("text/csv"))throw new On('parse error (not enough input) at ""');if(!n)return {};if(s&&!sw.has(s))throw new kr(s);if(r.includes("application/json")||s===""||s==="application/json")try{let i=JSON.parse(n);return Array.isArray(i)?{values:i}:{values:i}}catch{throw new Error(`Invalid JSON body: ${n.slice(0,100)}`)}if(r.includes("text/csv"))return {values:ow(n)};if(r.includes("application/x-www-form-urlencoded")){let i=new URLSearchParams(n),o={};for(let[a,l]of i)o[a]=l;return {values:o}}return {raw:n}}function ow(t){let e=t.replace(/\r\n/g,`
76
76
  `).replace(/\r/g,`
77
- `),n=US(e);if(n.length===0)throw new Gn("parse error (not enough input)");let r=n[0];if(n.length===1)return [];let s=[];for(let i=1;i<n.length;i++){let o=n[i],a={};for(let l=0;l<r.length;l++){let c=l<o.length?o[l]:"";a[r[l]]=c===""?null:c;}s.push(a);}return s}function US(t){let e=[],n=0,r=t.length;for(;n<r&&!(n===r-1&&t[n]===`
78
- `);){let{row:s,nextPos:i}=BS(t,n);e.push(s),n=i;}return e}function BS(t,e){let n=[],r=e,s=t.length;for(;r<=s;){if(r===s||t[r]===`
77
+ `),n=aw(e);if(n.length===0)throw new On("parse error (not enough input)");let r=n[0];if(n.length===1)return [];let s=[];for(let i=1;i<n.length;i++){let o=n[i],a={};for(let l=0;l<r.length;l++){let c=l<o.length?o[l]:"";a[r[l]]=c===""?null:c;}s.push(a);}return s}function aw(t){let e=[],n=0,r=t.length;for(;n<r&&!(n===r-1&&t[n]===`
78
+ `);){let{row:s,nextPos:i}=lw(t,n);e.push(s),n=i;}return e}function lw(t,e){let n=[],r=e,s=t.length;for(;r<=s;){if(r===s||t[r]===`
79
79
  `)return n.length,{row:n,nextPos:r+1};if(t[r]==='"'){let i="";for(r++;r<s;)if(t[r]==='"')if(r+1<s&&t[r+1]==='"')i+='"',r+=2;else {r++;break}else i+=t[r],r++;n.push(i),r<s&&t[r]===","&&r++;}else {let i="";for(;r<s&&t[r]!==","&&t[r]!==`
80
- `;)i+=t[r],r++;n.push(i),r<s&&t[r]===","&&r++;}}return {row:n,nextPos:r}}var Gn=class extends Error{constructor(e){super(e),this.name="CsvParseError";}};function wl(t){let e=new URL(t.url),n=new Map;for(let[r,s]of e.searchParams.entries()){let i=n.get(r)??[];i.push(s),n.set(r,i);}return n}function Sl(t,e,n){let r=e.toUpperCase();if(t.isRpc)return "rpc";switch(r){case "GET":case "HEAD":return "query";case "POST":return n.preferTokens.find(i=>i.key==="resolution"&&(i.value==="merge-duplicates"||i.value==="ignore-duplicates"))?"upsert":"insert";case "PATCH":return "update";case "PUT":return "put";case "DELETE":return "delete";default:return "query"}}var Lp=new Set(["eq","neq","gt","gte","lt","lte","like","ilike","match","imatch","is","isdistinct","in","cs","cd","ov","sl","sr","nxl","nxr","adj","fts","plfts","phfts","wfts","not"]),jp={eq:"$eq",neq:"$neq",gt:"$gt",gte:"$gte",lt:"$lt",lte:"$lte",like:"$like",ilike:"$ilike",match:"$regex",imatch:"$iregex",is:"$is",isdistinct:"$isDistinct",in:"$in",cs:"$contains",cd:"$containedBy",ov:"$overlaps",sl:"$rangeLt",sr:"$rangeGt",nxl:"$rangeGte",nxr:"$rangeLte",adj:"$rangeAdjacent"},qS={any:"Any",all:"All"},HS=new Set(["eq","gt","gte","lt","lte","like","ilike","match","imatch"]),WS={fts:void 0,plfts:"plain",phfts:"phrase",wfts:"websearch"};function Xi(t){let e=t.match(/^(\w+)\((any|all)\)$/);if(e){let[,s,i]=e;if(!HS.has(s))return null;let o=jp[s];return o?{astOp:o+qS[i]}:null}let n=t.match(/^(p[lh]fts|wfts|fts)(?:\(([^)]+)\))?$/);if(n){let[,s,i]=n;return i!==void 0&&!/^[A-Za-z_][A-Za-z0-9_ ]*(?:\.[A-Za-z_][A-Za-z0-9_]*)?$/.test(i)?null:{astOp:"$textSearch",ftsType:WS[s],ftsConfig:i}}let r=jp[t];return r?{astOp:r}:null}function rs(t){let e=t.indexOf(".");if(e===-1)return false;let r=t.substring(0,e).replace(/\((any|all)\)$/,"").replace(/^(p[lh]fts|wfts|fts)\([^)]+\)$/,"$1");return Lp.has(r)}var gn=new Set(["select","order","limit","offset","on_conflict","columns"]);function ss(t){if(t.startsWith("(")&&t.endsWith(")")&&(t=t.slice(1,-1)),t.trim()==="")return [];let e=[],n=0;for(;n<t.length;){if(t[n]==='"'){n++;let r="";for(;n<t.length&&t[n]!=='"';)t[n]==="\\"&&n+1<t.length&&n++,r+=t[n],n++;n<t.length&&n++,e.push(r);}else {let r="";for(;n<t.length&&t[n]!==",";)r+=t[n],n++;e.push(it(r,{preserveWhitespace:true}));}n<t.length&&t[n]===","&&(n++,n===t.length&&e.push(""));}return e}function yn(t){if(t.startsWith("{")&&t.endsWith("}")&&(t=t.slice(1,-1)),t==="")return [];let e=[],n=0;for(;n<t.length;){if(t[n]==='"'){n++;let r="";for(;n<t.length&&t[n]!=='"';)t[n]==="\\"&&n+1<t.length&&n++,r+=t[n],n++;n<t.length&&n++,e.push(r);}else {let r="";for(;n<t.length&&t[n]!==",";)r+=t[n],n++;e.push(it(r));}n<t.length&&t[n]===","&&n++;}return e}var Qn=Symbol.for("postgrest:not_null"),bn=Symbol.for("postgrest:unknown");function it(t,e){let n=e?.preserveWhitespace===true,r=t.trim();if(r.startsWith('"')&&r.endsWith('"')&&r.length>=2)return r.slice(1,-1);let s=r.toLowerCase();if(s==="null")return null;if(s==="not_null")return Qn;if(s==="true")return true;if(s==="false")return false;if(s==="unknown")return null;if(/^-?0\d+$/.test(r)||/^[0-9A-Fa-f]+$/.test(r)&&/[A-Fa-f]/.test(r))return r;if(r!==""&&!Number.isNaN(Number(r))&&Number.isFinite(Number(r)))return Number(r);if(r.startsWith("{")&&r.endsWith("}"))try{let i=JSON.parse(r);if(typeof i=="object"&&!Array.isArray(i))return i}catch{}return n?r===""?"":t:r}function as(t,e,n,r){let s={},i={};for(let[o,a]of t){if(gn.has(o))continue;let c=o.startsWith('"')?-1:o.indexOf(".");if(c>0&&!o.slice(0,c).includes("->")){let u=o.slice(0,c),f=o.slice(c+1);if(e.has(u)){if(f==="order"||f==="limit"||f==="offset")continue;if(f.includes(".")){let p=f.lastIndexOf("."),d=f.slice(p+1);if(d==="order"||d==="limit"||d==="offset")continue}i[u]||(i[u]={}),VS(f,a,i[u]);continue}if(o!=="not.or"&&o!=="not.and")throw JS(u)}if(e.has(o)&&!a.every(KS)&&!r?.has(o)){let u=n?`${n}.${o}`:o,f=new Error(`column ${u} does not exist`);throw f.code="42703",f}El(o,a,s);}return {where:s,embeddedWheres:i}}function KS(t){return /^(not\.)?is\.(null|true|false|distinct\.)/.test(t.trim())}function JS(t){return new ke({httpStatus:400,code:"PGRST108",message:`'${t}' is not an embedded resource in this request`,details:null,hint:`Verify that '${t}' is included in the 'select' query parameter.`})}function El(t,e,n){if(t==="or"||t==="and"){if(e.every(o=>!o.includes("("))){for(let o of e)zS(t,o,n);return}let s=e.map(o=>Mp(o)),i=s.length===1?s[0]:s.flat();n[`$${t}`]=i;return}if(t==="not.or"||t==="not.and"){let s=t.slice(4),i=e.map(a=>Mp(a)),o=i.length===1?i[0]:i.flat();n.$not={[`$${s}`]:o};return}let r=Up(ZS(t),{stopAtSpace:false});Bp(r);for(let s of e){let i=xl(s);n[r]?Object.assign(n[r],i):n[r]=i;}}function zS(t,e,n){let r=e.indexOf("."),s=r===-1?e:e.slice(0,r),i=`${t}${s}`,o=r===-1?"":e.slice(r+1),a=xl(o);n[i]?Object.assign(n[i],a):n[i]=a;}function VS(t,e,n){let r=GS(t);if(!r){El(t,e,n);return}let s={};El(r.filterKey,e,s);for(let[i,o]of Object.entries(s))n[`${r.path}.${i}`]=o;}function GS(t){for(let e of ["not.or","not.and","or","and"]){let n=`.${e}`;if(t.endsWith(n)){let r=t.slice(0,-n.length);if((e==="or"||e==="and")&&r==="not")continue;if(r)return {path:r,filterKey:e}}}}function xl(t){let e=t,n=false;e.startsWith("not.")&&(n=true,e=e.slice(4));let r=e.indexOf("."),s,i;r===-1?(s=e,i=""):(s=e.slice(0,r),i=e.slice(r+1));let o=Xi(s);if(!o){let f=s.match(/^(p[lh]fts|wfts|fts)\(\)$/);throw f?new Error(`"failed to parse filter (${t})" (line 1, column ${f[1].length+2})`):new Error(`"failed to parse filter (${t})" (line 1, column 1)`)}let{astOp:a,ftsType:l,ftsConfig:c}=o;if(n&&a==="$in")return {$notIn:_l(a,i)};if(n&&a==="$is")return {$isNot:_l(a,i)};let u=a==="$textSearch"?XS(i,l,c):_l(a,i);return n?{$not:{[a]:u}}:{[a]:u}}function _l(t,e){if(t==="$in"||t==="$notIn"){if(!e.startsWith("(")||!e.endsWith(")")){let n=t==="$in"?"in":"not.in";throw new Error(`"failed to parse filter (${n}.${e})" (line 1, column ${n.length+e.length+2})`)}return ss(e)}if(t.endsWith("Any")||t.endsWith("All")){if(e.startsWith("{"))return yn(e);if(!QS(t))throw Object.assign(new Error(`malformed array literal: "${e}"`),{code:"22P02",detail:'Array value must start with "{" or dimension information.'});return ss(e)}if(t==="$contains"||t==="$containedBy"||t==="$overlaps"){if(e.startsWith("{")){try{let n=JSON.parse(e);if(typeof n=="object"&&!Array.isArray(n))return n}catch{}return yn(e)}return e.startsWith("[")||e.startsWith("(")?e:it(e)}if(t.startsWith("$range"))return e;if(t==="$is"){let n=e.toLowerCase().trim(),s=["not_null","unknown","null","true","false"].find(i=>n===i||n.startsWith(i));if(!s)throw new Error(`"failed to parse filter (is.${e})" (line 1, column ${2+e.length})`);return s==="unknown"?bn:s==="not_null"?Qn:s==="null"?null:s==="true"?true:s==="false"?false:it(e)}if(t==="$like"||t==="$ilike"||t==="$likeAny"||t==="$ilikeAny"||t==="$likeAll"||t==="$ilikeAll"){let n=e.replace(/\*/g,"%");return t.endsWith("Any")||t.endsWith("All")?n.startsWith("{")?yn(n):ss(n):n}if(t==="$isDistinct")return e.startsWith("{")?yn(e):e;if((t==="$eq"||t==="$neq")&&e.startsWith("{")&&e.endsWith("}")){try{let n=JSON.parse(e);if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n}catch{}return yn(e)}return it(e)}function QS(t){return t==="$likeAny"||t==="$ilikeAny"||t==="$likeAll"||t==="$ilikeAll"}function XS(t,e,n){let r={query:t};return e&&(r.type=e),n&&(r.config=n),r}function YS(t){let e=t.match(/^\(\(or\([^)]*\),/);if(e)return e[0].length+8;let n=t.match(/^\(or\([^)]*\),/);return n?n[0].length+8:t.length+2}function Fp(t){return new Error(`"failed to parse logic tree (${t})" (line 1, column ${YS(t)})`)}function Mp(t){if(!t.startsWith("(")||!t.endsWith(")"))throw new Error(`"failed to parse logic tree (${t})" (line 1, column ${t.length+3})`);let e=t.slice(1,-1);for(;e.endsWith(")");){let n=0;for(let r of e)r==="("?n++:r===")"&&n--;if(n<0)e=e.slice(0,e.length+n);else break}if(e.trim()==="")throw Fp(t);try{return is(e).map(r=>os(r))}catch{throw Fp(t)}}function is(t){let e=[],n=0,r=0,s=false,i="";for(let o of t)if(o==='"'&&!s?s=true:o==='"'&&s&&(s=false),s||(o==="("?n++:o===")"?n--:o==="{"?r++:o==="}"&&r--),o===","&&n===0&&r===0&&!s){if(i.trim()==="")throw new Error("empty logical expression");e.push(i.trim()),i="";}else i+=o;if(i.trim())e.push(i.trim());else if(t.trim().endsWith(","))throw new Error("empty logical expression");return e}function os(t){let e=t.trim(),n=e.match(/^and\s*\((.*)\)$/s);if(n)return {$and:is(n[1]).map(p=>os(p))};let r=e.match(/^or\s*\((.*)\)$/s);if(r)return {$or:is(r[1]).map(p=>os(p))};let s=e.match(/^not\.and\s*\((.*)\)$/s);if(s)return {$not:{$and:is(s[1]).map(p=>os(p))}};let i=e.match(/^not\.or\s*\((.*)\)$/s);if(i)return {$not:{$or:is(i[1]).map(p=>os(p))}};if(/^(?:and|or|not)=/.test(e))throw new Error(`Invalid filter expression: "${t}"`);if(e.startsWith("not("))throw new Error(`Invalid filter expression: "${t}"`);let o=t;if(o.startsWith("not.")){let d=o.slice(4).split(".")[0];if(!(d.length>0&&Xi(d)!==null))throw new Error(`Invalid filter expression: "${t}"`)}let l=o.indexOf(".");if(l===-1)throw new Error(`Invalid filter expression: "${t}"`);let c=Up(o.slice(0,l),{stopAtSpace:true});Bp(c);let u=o.slice(l+1),f=xl(u);return {[c]:f}}function Up(t,e){let r=(e.stopAtSpace?/[!@/\\~[\]()\t ]/:/[!@/\\~[\]()\t]/).exec(t),s=r?t.slice(0,r.index):t,i=s.indexOf("::");i!==-1&&(s=s.slice(0,i));let o=s.indexOf("=");o!==-1&&(s=s.slice(0,o));let a=s.indexOf(":");return a!==-1&&(s=s.slice(0,a)),s}function ZS(t){return t.length>=2&&t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1).replace(/""/g,'"'):t}function Bp(t){if(t===""||t==="*"||t.startsWith(".")||t.includes("--")||t.endsWith("-"))throw new Error(`Invalid filter expression: "${t}"`);if(/->>?-\d+[A-Za-z]/.test(t))throw new Error(`Invalid filter expression: "${t}"`)}function e_(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\(([^)]+)\)$/);return e?{embed:e[1],column:e[2]}:null}function qp(t){if(t===void 0)return;let e=t.trim();if(!/^[+-]?\d+$/.test(e))return;let n=Number(e);return Number.isFinite(n)?n:void 0}function Tl(t,e){let n=qp(t),r=qp(e);return r!==void 0&&r<0&&(n!==void 0&&n>=0&&(n=Math.max(0,n+r)),r=void 0),{limit:n,offset:r}}function Cl(t,e){let n={embeddedTransforms:{}},r,s,i={},o={},a={},l={};for(let[p,d]of t){let g=d[0],m=p.indexOf(".");if(m>0){let h=p.slice(0,m),y=p.slice(m+1);if(e.has(h)){if(y==="order"||y==="limit"||y==="offset"){n.embeddedTransforms[h]||(n.embeddedTransforms[h]={}),y==="order"?n.embeddedTransforms[h].order=Rl(g):y==="limit"?i[h]=g:y==="offset"&&(o[h]=g);continue}if(y.includes(".")){let S=y.lastIndexOf("."),_=y.slice(S+1);if(_==="order"||_==="limit"||_==="offset"){n.embeddedTransforms[h]||(n.embeddedTransforms[h]={});let w=n.embeddedTransforms[h],x=y.slice(0,S);w._nested||(w._nested={});let E=w._nested;E[x]||(E[x]={});let T=E[x];_==="order"?T.order=Rl(g):_==="limit"?(a[h]||(a[h]={}),a[h][x]=g):_==="offset"&&(l[h]||(l[h]={}),l[h][x]=g);continue}}}}p==="order"?n.order=Rl(g):p==="limit"?r=g:p==="offset"&&(s=g);}if(n.order){for(let p of n.order)if(p.embed&&!e.has(p.embed))throw new ke({httpStatus:400,code:"PGRST108",message:`'${p.embed}' is not an embedded resource in this request`,details:null,hint:`Verify that '${p.embed}' is included in the 'select' query parameter.`})}let c=Tl(r,s);c.limit!==void 0&&(n.limit=c.limit),c.offset!==void 0&&(n.offset=c.offset);let u=new Set([...Object.keys(i),...Object.keys(o)]);for(let p of u){let d=Tl(i[p],o[p]);n.embeddedTransforms[p]||(n.embeddedTransforms[p]={}),d.limit!==void 0&&(n.embeddedTransforms[p].limit=d.limit),d.offset!==void 0&&(n.embeddedTransforms[p].offset=d.offset);}let f=new Set([...Object.keys(a),...Object.keys(l)]);for(let p of f){let d=new Set([...Object.keys(a[p]??{}),...Object.keys(l[p]??{})]);for(let g of d){let m=Tl(a[p]?.[g],l[p]?.[g]),h=n.embeddedTransforms[p]?._nested?.[g];h&&(m.limit!==void 0&&(h.limit=m.limit),m.offset!==void 0&&(h.offset=m.offset));}}return n}function Rl(t){return t_(t).map(({entry:e,start:n},r)=>{let s=r===0?e.trim():e.trimEnd(),i=r===0?n+e.length-e.trimStart().length:n;return n_(s,t,i)})}function t_(t){let e=[],n=0,r=0;for(let s=0;s<t.length;s++){let i=t[s];i==="("?n++:i===")"?n=Math.max(0,n-1):i===","&&n===0&&(e.push({entry:t.slice(r,s),start:r}),r=s+1);}return e.push({entry:t.slice(r),start:r}),e}function n_(t,e,n){let r=t.split("."),s={column:r[0].replace(/\s+$/,"")},i=r[0];if(!i)throw new pe(`failed to parse order (${e})`,'unexpected end of input expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input',1);let o=i.indexOf("::");if(o!==-1)throw new pe(`failed to parse order (${e})`,`unexpected ':' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+o+1);let a=i.indexOf("--");if(a!==-1)throw new pe(`failed to parse order (${e})`,`unexpected '-' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+a+2);let l=i.search(/[@#%]/);if(l!==-1)throw new pe(`failed to parse order (${e})`,`unexpected '${i[l]}' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+l+1);if(i.endsWith("-"))throw new pe(`failed to parse order (${e})`,`unexpected '-' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+i.length);let c=i.indexOf(":");if(c!==-1)throw new pe(`failed to parse order (${e})`,`unexpected ':' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+c+1);let u=e_(i);if(u){if(u.column.includes(","))throw new pe(`failed to parse order (${e})`,`unexpected ',' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+i.indexOf(",",u.embed.length)+1);s.column=u.column,s.embed=u.embed;}else if(i.includes("(")||i.includes(")")){let g=i.search(/[()]/);throw new pe(`failed to parse order (${e})`,`unexpected '${i[g]}' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+g+1)}let f=n+i.length+1,p=false,d=false;for(let g=1;g<r.length;g++){let m=r[g];if(m==="asc"||m==="desc"){if(p)throw new pe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,f+1);if(d)throw new pe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,f+1);s.direction=m,p=true,f+=m.length+1;}else if(m==="nullsfirst"||m==="nullslast"){if(d)throw new pe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,f+1);s.nullsFirst=m==="nullsfirst",d=true,f+=m.length+1;}else {let h=["asc","desc","nullsfirst","nullslast"],y=null;for(let S of h)if(m.startsWith(S)&&m.length>S.length){y=S;break}if(y){let S=m[y.length],_=f+y.length;throw new pe(`failed to parse order (${e})`,`unexpected '${S}' expecting "," or end of input`,_+1)}throw new pe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,f+1)}}return s}function vl(t,e,n){let r={};for(let i of t.preferTokens)switch(i.key){case "count":r.count===void 0&&(r.count=i.value);break;case "missing":r.missing===void 0&&(r.missing=i.value);break;case "handling":r.handling===void 0&&(r.handling=i.value);break;case "tx":r.tx===void 0&&(r.tx=i.value,i.value==="rollback"&&(r.rollback=true));break;case "max-affected":r.maxAffected===void 0&&(r.maxAffected=i.value);break;case "timezone":r.timezone===void 0&&(r.timezone=i.value);break;case "return":r.return===void 0&&(r.return=i.value);break}n.toUpperCase()==="HEAD"&&(r.head=true),t.accept.includes("application/vnd.pgrst.object")&&(r.cardinality="one"),t.accept.includes("application/vnd.pgrst.plan")&&(r.explain=i_(t.accept));let s=e.get("columns");if(s){let i=s[0];r.columns=r_("columns",i);}return r}function r_(t,e){let n=e.split(",").map(r=>s_(r));if(n.length===0||n.some(r=>r===""||r==="*"||r.includes("--")||r.endsWith("-")))throw new Kt(`"failed to parse ${t} parameter (${e})" (line 1, column 1)`,"unexpected input");return n}function s_(t){let e=t.trim();return e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e.replace(/@.*$/,"")}function i_(t){let e={},n=t.match(/options=([^;]+)/);if(n){let r=n[1].split("|").map(s=>s.trim());e.analyze=r.includes("analyze"),e.verbose=r.includes("verbose"),e.settings=r.includes("settings"),e.buffers=r.includes("buffers"),e.wal=r.includes("wal");}return e}function Al(t,e,n,r){if(!t.isRpc)return {};if(e.toUpperCase()==="POST"){let a={httpMethod:"POST"};return r.values?(Array.isArray(r.values)?(a.args=r.values,a.paramsType="positional"):(a.args=r.values,a.paramsType="named"),a.inputType="json"):r.raw!==void 0&&(a.args={_raw:r.raw},a.inputType="text"),a}let i={};for(let[a,l]of n){if(gn.has(a))continue;let c=l.filter(u=>!rs(u));c.length!==0&&(c.length>1?i[a]=c.map(u=>it(u)):i[a]=it(c[0]));}let o={httpMethod:"GET",paramsType:"named",inputType:"json"};return Object.keys(i).length>0&&(o.args=i),o}function kl(t,e){let n=t.get("on_conflict"),r=n===void 0?void 0:o_(n[0]),i=e.preferTokens.find(o=>o.key==="resolution")?.value==="ignore-duplicates";return {onConflict:r?.length?r:void 0,ignoreDuplicates:i}}function o_(t){let e=t.split(",").map(n=>n.trim());if(e.length===0||e.some(n=>n===""||n.includes("--")||n.endsWith("-")))throw new Kt(`"failed to parse on_conflict parameter (${t})" (line 1, column 1)`,"unexpected input");return e.map(n=>n.replace(/[!@/\\~[\]()\t ].*$/,""))}async function Yi(t,e){let n=e?.basePath,r=e?.parseRoute??(k=>pl(k,n)),s=e?.parseHeaders??dl,i=e?.parseSelect??yl,o=e?.parseBody??bl,a=e?.parseQueryParams??wl,l=e?.resolveType??Sl,c=e?.resolveFilters??as,u=e?.resolveTransforms??Cl,f=e?.resolveMeta??vl,p=e?.resolveRpcParams??Al,d=e?.resolveUpsertParams??kl,[g,m,h,y,S]=await Promise.all([r(t),s(t),i(t),o(t),a(t)]),_=t.method,w=l(g,_,m),x=S;if(g.isRpc&&_.toUpperCase()==="GET"){x=new Map;for(let[k,C]of S){if(gn.has(k)){x.set(k,C);continue}let q=C.filter(J=>rs(J));q.length>0&&x.set(k,q);}}let E=c(x,h.embeddedAliases,g.isRpc?void 0:g.from,e?.parentColumns),T=u(S,h.embeddedAliases),O=f(m,S,_),P=p(g,_,S,y),D=w==="upsert"||w==="put"?d(S,m):void 0;return a_(w,g,m,h,y,E,T,O,P,D)}function a_(t,e,n,r,s,i,o,a,l,c){let u={type:t};return e.isRpc?u.function=e.function:u.from=e.from,n.schema&&(u.schema=n.schema),Object.keys(r.join).length>0&&(u.join=r.join),r.select.length>0&&(u.select=Hp(r.select,i.embeddedWheres,o.embeddedTransforms,r.join)),Object.keys(i.where).length>0&&(u.where=i.where),(t==="insert"||t==="update"||t==="upsert"||t==="put")&&s.values!==void 0&&(u.values=s.values),t==="rpc"&&(l.args!==void 0&&(u.args=l.args),l.httpMethod&&(u.httpMethod=l.httpMethod),l.paramsType&&(u.paramsType=l.paramsType),l.inputType&&(u.inputType=l.inputType)),(t==="upsert"||t==="put")&&c&&(c.onConflict&&(u.onConflict=c.onConflict),u.ignoreDuplicates=c.ignoreDuplicates),a.return==="representation"&&(t==="insert"||t==="update"||t==="delete"||t==="upsert"||t==="put")&&(!u.select||u.select.length===0)&&(u.select=["*"]),o.order&&(u.order=o.order),o.limit!==void 0&&(u.limit=o.limit),o.offset!==void 0&&(u.offset=o.offset),Object.keys(a).length>0&&(u.$meta=a),u}function l_(t,e,n){return t.map(r=>{if(typeof r=="string"||!(e in r))return r;let s=r[e];return s.select?{[e]:{...s,where:{...s.where??{},...n}}}:r})}function Hp(t,e,n,r,s){return t.map(i=>{if(typeof i=="string")return i;let o=Object.keys(i)[0],a=i[o];if(!a.select)return i;let l={...a},c=r?.[o]?.from,u=e[o]||c&&e[c],f=n[o]||c&&n[c];if(u&&s!==o){let p={},d={};for(let[g,m]of Object.entries(u)){let h=g.indexOf(".");if(h>0){let y=g.slice(0,h),S=g.slice(h+1);if(l.join?.[y]||l.select?.some(x=>typeof x=="object"&&y in x&&"select"in(x[y]??{}))){d[y]||(d[y]={}),d[y][S]=m;continue}}p[g]=m;}Object.keys(p).length>0&&(l.where=p);for(let[g,m]of Object.entries(d))l.select=l_(l.select??[],g,m);}if(f){let p=f;if(p.order&&(l.order=p.order),p.limit!==void 0&&(l.limit=p.limit),p.offset!==void 0&&(l.offset=p.offset),p._nested)for(let[d,g]of Object.entries(p._nested))n[d]=g;}return l.select&&(l.select=Hp(l.select,e,n,l.join,o)),{[o]:l}})}function Zi(t){return t!=null&&typeof t=="object"&&"$ref"in t}ot();var $l=class extends ae{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}serialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="string")return Xn(e);throw this.checkError("color_range",e)}deserialize(e){if(this.isNullish(e))return "";if(typeof e=="number"&&Number.isFinite(e))return Wp(e);if(typeof e=="string"&&e.startsWith("#"))return e;if(typeof e=="string"||typeof e=="bigint"){let n=Number(e);if(Number.isFinite(n))return Wp(n)}return e}},Ol=class extends ae{get isShimBacked(){return true}get sqliteType(){return "TEXT"}serialize(e){return this.isNullish(e)?e:typeof e=="string"?e.replace(/Z$/,"+00:00"):e}deserialize(e){if(this.isNullish(e)||typeof e!="string")return e;let n=e.trim();if(/^\d{4}-\d{2}-\d{2}T/.test(n))return n.replace(/\+00:00$/,"Z");if(/^\d{4}-\d{2}-\d{2}$/.test(n))return `${n}T00:00:00Z`;if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(n)){let r=n.replace(" ","T");return /(?:Z|[+-]\d{2}:\d{2})$/.test(r)?r.replace(/\+00:00$/,"Z"):`${r}Z`}return n.replace(/\+00:00$/,"Z")}},Pl=class extends ae{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}serialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="string"){let n=Date.parse(e);if(Number.isFinite(n))return Math.trunc(n/1e3)}return e}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="bigint")return Number(e);if(e instanceof Date&&Number.isFinite(e.getTime()))return Math.trunc(e.getTime()/1e3);if(typeof e=="string"){let n=e.trim();if(/^\d+$/.test(n))return Number(n);let r=Date.parse(n);if(Number.isFinite(r))return Math.trunc(r/1e3)}return e}},Nl=class extends ae{get isShimBacked(){return true}get sqliteType(){return "TEXT"}serialize(e){return this.isNullish(e)?e:typeof e=="number"&&Number.isFinite(e)?e.toFixed(2):e}deserialize(e){return e}},Il=class extends ae{get isShimBacked(){return true}get sqliteType(){return "TEXT"}deserialize(e){if(this.isNullish(e))return e;let n=null;if(typeof e=="string")n=e;else if(e instanceof Uint8Array)n=Buffer.from(e).toString("base64");else if(e&&typeof e=="object"&&!Array.isArray(e)){let s=Object.values(e);n=Buffer.from(s).toString("base64");}if(n===null)return e;n=n.replace(/\s/g,"");let r=(4-n.length%4)%4;return r===0?n:n+"=".repeat(r)}};function Xn(t){let e=t.trim(),r=(e.startsWith("#")?e.slice(1):e).padStart(8,"0");return Number.parseInt(r,16)>>>0}function Wp(t){return `#${(Math.trunc(t)&16777215).toString(16).toUpperCase().padStart(6,"0")}`}function Jp(t,e){return e==="postgres"||e==="pglite"?sql`('"' || upper('#' || lpad(to_hex((${t})::bigint & 16777215), 6, '0')) || '"')`:sql`('"' || upper(printf('#%06X', (${t}) & 16777215)) || '"')`}var c_=new Set(["color","isodate","isodatetext","unixtz","monetary","monetarytext","bytea_b64"]),u_=new Set(["bool","boolean"]),zp=new Map;function Me(t){if(!t)return false;let e=t.toLowerCase().trim();return c_.has(e)||zp.has(e)}function Ie(t,e){return (t??e).toLowerCase().trim()}function Dl(t,e){let n=Ie(t.pg_type,t.type);return Me(n)||!e?n:f_(t.table,t.name,e)??n}function f_(t,e,n){let r=n.views.find(i=>i.name===t);if(!r?.sql)return;let s=[new RegExp(`CAST\\s*\\(.+?\\s+AS\\s+([\\w.]+)\\)\\s+AS\\s+${e}\\b`,"is"),new RegExp(`::\\s*(?:[\\w.]+\\.)?([\\w]+)\\s+AS\\s+${e}\\b`,"i")];for(let i of s){let o=r.sql.match(i);if(!o)continue;let a=o[1].split(".").pop().toLowerCase();if(Me(a)||u_.has(a))return a}}function jl(t){if(typeof t=="string"&&t.trim()==="Z")throw Object.assign(new Error('invalid input syntax for type timestamp with time zone: "Z"'),{code:"22007",detail:null,hint:null})}function Vp(t){return Array.isArray(t)?t.map(e=>Kp(e)):Kp(t)}function Kp(t){if(typeof t=="number"&&Number.isFinite(t))return Math.trunc(t);if(typeof t=="string"){let e=t.trim();return Xn(e.startsWith("#")?e:`#${e}`)}return t}function to(t,e){let n=e.toLowerCase().trim();return n==="color"?sql`to_json('#' || lpad(upper(to_hex((${t})::bigint & 16777215)), 6, '0'))`:n==="unixtz"?sql`to_json(EXTRACT(EPOCH FROM ${t})::bigint)`:n==="monetary"||n==="monetarytext"?sql`to_json((${t})::text)`:n==="bytea_b64"?sql`to_json(encode((${t})::bytea, 'base64'))`:n==="isodate"||n==="isodatetext"?sql`to_json(to_char((${t}) AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'))`:null}function Gp(t,e){let n=e.toLowerCase().trim();if(n==="unixtz"){let r=typeof t=="number"?t:typeof t=="string"?Number(t):NaN;if(Number.isFinite(r)){let s=new Date(r*1e3);if(Number.isFinite(s.getTime()))return s.toISOString()}return t}if(n==="bytea_b64"){if(typeof t=="string")try{let r=t.replace(/=+$/,"");for(;r.length%4!==0;)r+="=";let s=atob(r),i="";for(let o=0;o<s.length;o++)i+=s.charCodeAt(o).toString(16).padStart(2,"0");return `\\x${i}`}catch{return t}return t}return n==="monetary"||n==="monetarytext"?typeof t=="number"?String(t):t:(n==="isodate"||n==="isodatetext")&&typeof t=="string"?t.replace(/Z$/,"+00:00"):t}function ls(t,e,n,r,s,i){if(r!=="postgres"||!e||!s?.columns)return t;let o=i??"public",a=s.columns.find(c=>c.table===e&&c.name===n&&(c.schema??"public")===o);if(!a)return t;let l=Ie(a.pg_type,a.type);return Me(l)?to(t,l)??t:t}function Qp(t,e,n,r){if(!t||!n?.columns)return false;let s=r??"public",i=n.columns.find(o=>o.table===t&&o.name===e&&(o.schema??"public")===s);return i?Me(Ie(i.pg_type,i.type)):false}function cs(t,e,n){if(!t||!e?.columns)return false;let r=n??"public";return e.columns.some(s=>s.table!==t||(s.schema??"public")!==r?false:Me(Ie(s.pg_type,s.type)))}function Ll(t,e,n){let r=n??"public";return e.columns.filter(s=>s.table===t&&(s.schema??"public")===r).sort((s,i)=>s.ordinal_position-i.ordinal_position).map(s=>{let i=Ie(s.pg_type,s.type),o=Me(i);return {name:s.name,isDomain:o,domainTypeName:o?i:null}})}function Xp(t){let e=t.pgTypeName.toLowerCase().trim(),n=zp.get(e);if(n)return n(t);switch(e){case "color":return new $l(t);case "isodate":case "isodatetext":return new Ol(t);case "unixtz":return new Pl(t);case "monetary":case "monetarytext":return new Nl(t);case "bytea_b64":return new Il(t);default:return null}}var p_=/^[a-zA-Z_][a-zA-Z0-9_.]*$/,d_=/[;'"\\/*\-#]/,m_=/['\\;(]/,xt=class extends Error{constructor(n,r){super(`Unsafe ${r}: "${n}"`);this.value=n;this.context=r;this.name="SanitizeError";}};function Pe(t,e){if(!p_.test(t))throw new xt(t,e)}function _n(t,e){if(d_.test(t))throw new xt(t,e);let n=0;for(let r of t)if(r==="("?n++:r===")"&&n--,n<0)throw new xt(t,e);if(n!==0)throw new xt(t,e)}function Yn(t,e){if(m_.test(t))throw new xt(t,e)}function En(t){let e=t.indexOf("->");if(e===-1)return {col:t,parts:[]};let n=t.slice(0,e),r=t.slice(e),s=[];for(;r.length>0;){let i;if(r.startsWith("->>"))i="->>",r=r.slice(3);else if(r.startsWith("->"))i="->",r=r.slice(2);else break;let o=r.indexOf("->"),a=o===-1?r:r.slice(0,o);s.push({op:i,key:a}),r=o===-1?"":r.slice(o);}return {col:n,parts:s}}function us(t,e){return t.map(n=>{let r=/^-?\d+$/.test(n.key);return r||Yn(n.key,e),r?`${n.op}${n.key}`:`${n.op}'${n.key}'`}).join("")}function v(t){return typeof t=="string"?sql.ref(t):t}function h_(t){return `"${t.replace(/"/g,'""')}"`}function Fl(t){return sql.raw(h_(t))}function Ml(t,e,n=e.currentTable,r=e.currentSchema){if(!n||!e.introspection?.columns)return;let s=e.introspection.columns.filter(i=>i.table===n&&i.name===t);if(s.length!==0)return s.find(i=>!r||i.schema===r)??s.find(i=>["","public"].includes(i.schema??""))??s[0]}function no(t,e,n=e.currentTable,r=e.currentSchema){return Ml(t,e,n,r)!==void 0}function de(t,e,n=e.currentTable){return no(t,e,n)?Fl(t):sql.ref(t)}function Tt(t,e,n,r=n.currentTable){let s=no(e,n,r)?Fl(e):sql.ref(e);return sql`${sql.ref(t)}.${s}`}function g_(t){return (t?.pg_type??t?.type??"").toLowerCase()}function Yp(t,e,n=e.currentTable){if(e.dialect!=="postgres")return false;let r=g_(Ml(t,e,n));return r.endsWith("[]")||r.startsWith("_")||r==="array"}function Zp(t){let e=[];for(let n of t){if(!/^\d+$/.test(n))return;e.push(`[${Number(n)+1}]`);}return e.join("")}function Jt(t,e,n=e.currentTable){if(e.dialect!=="postgres")return false;let r=e.currentSchema??e.introspection?.default_schema,s=Ml(t,e,n,r),i=s?.pg_type??s?.type;return i?e.introspection?.custom_types?.some(o=>o.kind==="composite"&&o.type===i&&(!s?.udt_schema||!o.schema||o.schema===s.udt_schema))??false:false}function ed(t,e){let n=t;for(let r of e)n=sql`(${n}).${Fl(r)}`;return n}function td(t,e,n,r=n.currentTable,s=false){let i=e.replace(/^\$\./,"").split(".").filter(Boolean);if(i.length===0)return de(t,n,r);if(Yp(t,n,r)){let l=Zp(i);if(l)return sql`${de(t,n,r)}${sql.raw(l)}`}if(Jt(t,n,r))return ed(de(t,n,r),i);let o=i.map((l,c)=>({op:c===i.length-1&&s?"->>":"->",key:l})),a=us(o,"JSON path key");return sql`${de(t,n,r)}${sql.raw(a)}`}function fs(t,e,n=e.currentTable,r){let{col:s,parts:i}=En(t),o=r?Tt(r,s,e,n):de(s,e,n);if(i.length===0)return o;if(Yp(s,e,n)){let c=Zp(i.map(u=>u.key));if(c)return sql`${o}${sql.raw(c)}`}if(Jt(s,e,n))return ed(o,i.map(c=>c.key));let a=e.dialect==="sqlite"?i.map((c,u)=>u===i.length-1?{...c,op:"->>"}:c):i,l=us(a,"JSON path key");return sql`${o}${sql.raw(l)}`}var ro={$eq:(t,e,n)=>sql`${v(e)} = ${n}`,$neq:(t,e,n)=>sql`${v(e)} != ${n}`,$gt:(t,e,n)=>sql`${v(e)} > ${n}`,$gte:(t,e,n)=>sql`${v(e)} >= ${n}`,$lt:(t,e,n)=>sql`${v(e)} < ${n}`,$lte:(t,e,n)=>sql`${v(e)} <= ${n}`,$like:(t,e,n)=>sql`${v(e)} like ${n}`,$is:(t,e,n)=>{let r=v(e);return n===Qn?sql`${r} IS NOT NULL`:n===bn?sql`${r} IS UNKNOWN`:n===null?sql`${r} IS NULL`:n===true?sql`${r} IS TRUE`:n===false?sql`${r} IS FALSE`:sql`${r} IS NULL`},$isNot:(t,e,n)=>{let r=v(e);return n===Qn?sql`${r} IS NULL`:n===bn?sql`${r} IS NOT UNKNOWN`:n===null?sql`${r} IS NOT NULL`:n===true?sql`${r} IS NOT TRUE`:n===false?sql`${r} IS NOT FALSE`:sql`${r} IS NOT NULL`},$in:(t,e,n)=>{if(Array.isArray(n)&&n.length===0)return sql`false`;let r=v(e);return Array.isArray(n)?sql`${r} in (${sql.join(n.map(s=>sql`${s}`))})`:sql`${r} in ${n}`},$notIn:(t,e,n)=>{if(Array.isArray(n)&&n.length===0)return sql`true`;let r=v(e);return Array.isArray(n)?sql`${r} not in (${sql.join(n.map(s=>sql`${s}`))})`:sql`${r} not in ${n}`},$isDistinct:(t,e,n)=>sql`${v(e)} is distinct from ${n}`},so={$eq:"=",$neq:"!=",$gt:">",$gte:">=",$lt:"<",$lte:"<="};function nd(t){let e=t.replace(/^setof\s+/i,"").trim();return (e.includes(".")?e.slice(e.lastIndexOf(".")+1):e).replace(/^"|"$/g,"").trim()}function Ul(t,e,n){let r=t.replace(/^setof\s+/i,"").trim(),s=r.lastIndexOf(".");if(s>=0){let i=r.slice(0,s).replace(/^"|"$/g,"").trim(),o=r.slice(s+1).replace(/^"|"$/g,"").trim();return i===n&&o===e}return r.replace(/^"|"$/g,"").trim()===e}function oo(t,e,n,r){let s=r??t?.default_schema??"public";return !!t?.columns?.some(i=>i.table===e&&i.name===n&&i.schema===s)}function io(t,e,n){return !!(t?.tables?.some(r=>r.name===e&&r.schema===n)||t?.views?.some(r=>r.name===e&&r.schema===n))}function zt(t,e,n,r,s){if(r!=="postgres")return null;let i=t?.functions;if(!i)return null;let o=s??t?.default_schema??"public";for(let a of i){if(a.name!==n||a.schema!==o||a.has_variadic||a.arg_types.length!==1||!Ul(a.arg_types[0],e,a.schema)||!io(t,e,a.schema)||a.return_typtype!=="c")continue;let l=nd(a.return_type);if(Ul(a.return_type,l,a.schema)&&io(t,l,a.schema))return {fnName:a.name,schema:a.schema,targetTable:l,toOne:!a.return_is_setof||a.return_rows===1}}return null}function ps(t,e,n){let r=t.schema?`${t.schema}.${t.fnName}`:t.fnName;return Pe(r,"computed relationship function reference"),sql`${sql.raw(r)}(${sql.ref(e)})`.as(n)}function ao(t,e,n,r,s){if(r!=="postgres")return null;let i=t?.functions;if(!i)return null;let o=s??t?.default_schema??"public";for(let a of i)if(a.name===n&&a.schema===o&&!(a.has_variadic||a.arg_types.length!==1)&&Ul(a.arg_types[0],e,a.schema)&&io(t,e,a.schema)&&!(a.return_typtype==="c"&&io(t,nd(a.return_type),a.schema)))return {fnName:a.name,schema:a.schema};return null}function lo(t,e){let n=t.schema?`${t.schema}.${t.fnName}`:t.fnName;return Pe(n,"computed column function reference"),sql`${sql.raw(n)}(${sql.ref(e)})`}var y_=new Set(["$like","$ilike","$likeAny","$ilikeAny","$likeAll","$ilikeAll"]);function Bl(t){return t!=null&&typeof t=="object"&&t.type==="query"}function xn(t,e){if(e.dialect==="postgres"&&e.currentTable&&!t.includes("->")&&!oo(e.introspection,e.currentTable,t,e.currentSchema)){let r=ao(e.introspection,e.currentTable,t,e.dialect,e.currentSchema);if(r)return lo(r,e.currentTableAlias??e.currentTable)}return de(t,e)}function co(t,e){let n=e.db;return t.schema&&(n=n.withSchema(t.schema)),Hl(t,e,n)}function b_(t){return t.includes("->")}function ad(t,e){let{col:n,parts:r}=En(t);return r.length===0?de(t,e):fs(t,e)}function Ee(t,e,n){let r=[];for(let[s,i]of Object.entries(e)){if(s==="$always"){i===false&&r.push(sql`0 = 1`);continue}if(s==="$or"){let o=i;r.push(t.or(o.map(a=>Ee(t,a,n))));}else if(s==="$and"){let o=i;r.push(t.and(o.map(a=>Ee(t,a,n))));}else if(s==="$not")r.push(t.not(Ee(t,i,n)));else if(s==="$exists"){let o=i;r.push(t.exists(co(o,n)));}else {let o=i,a=b_(s);for(let[l,c]of Object.entries(o)){if(Zi(c)){let u=so[l];if(!u)throw new Error(`Unsupported ref operator: ${l}`);r.push(sql`${a?ad(s,n):xn(s,n)} ${sql.raw(u)} ${de(c.$ref,n)}`);continue}if(l==="$not"){let u=c;for(let[f,p]of Object.entries(u))if(a)r.push(t.not(od(s,f,p,n)));else {let d=rd(s,f,p,n);if(d){r.push(t.not(d));continue}let g=id(s,f,p,n);if(g){r.push(t.not(g));continue}let m=sd(s,f,p,n);if(m){r.push(t.not(m));continue}let h=n.operators[f];if(!h)throw new Error(`Unsupported operator: ${f}`);r.push(t.not(h(t,xn(s,n),p)));}}else if(Bl(c)){let u=co(c,n),f=n.operators[l];if(!f)throw new Error(`Unsupported operator: ${l}`);r.push(f(t,xn(s,n),u));}else if(a)r.push(od(s,l,c,n));else {let u=rd(s,l,c,n);if(u){r.push(u);continue}let f=S_(s,l,c,n);if(f){r.push(f);continue}E_(s,l,n);let p=ql(s,c,n),d=id(s,l,p,n);if(d){r.push(d);continue}let g=sd(s,l,p,n);if(g){r.push(g);continue}let m=n.operators[l];if(!m)throw new Error(`Unsupported operator: ${l}`);r.push(m(t,xn(s,n),p));}}}}return r.length===1?r[0]:t.and(r)}function rd(t,e,n,r){if(e!=="$is"&&e!=="$isNot"||n!==bn)return null;let s=er(t,r);if(!s)return null;let i=ld(s.pg_type??s.type);if(i==="boolean")return r.dialect!=="sqlite"?null:e==="$is"?sql`${de(t,r)} IS NULL`:sql`${de(t,r)} IS NOT NULL`;throw Object.assign(new Error(`argument of IS UNKNOWN must be type boolean, not type ${i}`),{code:"42804",detail:null})}function er(t,e){if(!e.introspection?.columns||!e.currentTable)return null;let n=t.includes("->")?En(t).col:t,r=e.introspection.columns.filter(i=>i.table===e.currentTable&&i.name===n);if(r.length===0)return null;let s=e.currentSchema;return r.find(i=>!s||i.schema===s)??r.find(i=>["","public"].includes(i.schema??""))??r[0]}var w_={$contains:{sym:"@>",cast:"ltree"},$containedBy:{sym:"<@",cast:"ltree"},$regex:{sym:"~",cast:"lquery"},$iregex:{sym:"~*",cast:"lquery"}};function sd(t,e,n,r){if(r.dialect!=="postgres")return null;let s=w_[e];if(!s)return null;let i=er(t,r);if(!i||Ie(i.pg_type,i.type)!=="ltree")return null;let o=`"${(i.udt_schema??"public").replace(/"/g,'""')}"`;return sql`${xn(t,r)} OPERATOR(${sql.raw(`${o}.${s.sym}`)}) ${n}::${sql.raw(`${o}.${s.cast}`)}`}function id(t,e,n,r){if(r.dialect!=="postgres"||e!=="$textSearch")return null;let s=er(t,r);if(!s||Ie(s.pg_type,s.type)==="tsvector")return null;let i=n,o=i.config,a="to_tsquery";i.type==="plain"?a="plainto_tsquery":i.type==="phrase"?a="phraseto_tsquery":i.type==="websearch"&&(a="websearch_to_tsquery");let l=o?sql`to_tsvector(${sql.literal(o)}, ${xn(t,r)})`:sql`to_tsvector(${xn(t,r)})`,c=o?sql`${sql.raw(a)}(${sql.literal(o)}, ${i.query})`:sql`${sql.raw(a)}(${i.query})`;return sql`${l} @@ ${c}`}function ld(t){switch(t.toLowerCase()){case "bool":return "boolean";case "int8":case "bigserial":case "serial8":return "bigint";case "int4":case "serial":case "serial4":return "integer";case "int2":return "smallint";default:return t.toLowerCase()}}function S_(t,e,n,r){if(r.dialect!=="postgres"||e!=="$eq"&&e!=="$neq"||typeof n!="string"||!/^\s*[[{]/.test(n))return null;let s=er(t,r),i=ld(s?.pg_type??s?.type??"");if(i!=="json"&&i!=="jsonb")return null;let o=de(t,r),a=sql`cast(${sql.raw(__(n))} as ${sql.raw(i)})`;return e==="$eq"?sql`${o} = ${a}`:sql`${o} != ${a}`}function __(t){return `'${t.replace(/'/g,"''")}'`}function E_(t,e,n){if(!y_.has(e))return;let r=er(t,n);if(!r||Ie(r.pg_type,r.type)!=="color")return;let i=e.includes("ilike")?"~~*":"~~";throw Object.assign(new Error(`operator does not exist: color ${i} unknown`),{code:"42883",detail:null,hint:"No operator matches the given name and argument types. You might need to add explicit type casts."})}function ql(t,e,n){if(!n?.currentTable)return e;let r=er(t,n);if(!r)return e;let s=Ie(r.pg_type,r.type);if(s==="color")return Vp(e);if(s==="isodate"||s==="isodatetext")if(Array.isArray(e))for(let i of e)jl(i);else jl(e);return e}function od(t,e,n,r){let s=r?ad(t,r):v(t),o={$eq:"=",$neq:"!=",$gt:">",$gte:">=",$lt:"<",$lte:"<=",$like:"like",$ilike:"ilike"}[e];if(o)return sql`${s} ${sql.raw(o)} ${n}`;if(e==="$is")return n===null?sql`${s} IS NULL`:n===true?sql`${s} IS TRUE`:n===false?sql`${s} IS FALSE`:sql`${s} IS NULL`;if(e==="$isNot")return n===null?sql`${s} IS NOT NULL`:n===true?sql`${s} IS NOT TRUE`:n===false?sql`${s} IS NOT FALSE`:sql`${s} IS NOT NULL`;if(e==="$in"){if(r&&Bl(n))return sql`${s} in ${co(n,r)}`;let a=ql(t,n,r);return a.length===0?sql`false`:sql`${s} in (${sql.join(a.map(l=>sql`${l}`))})`}if(e==="$notIn"){if(r&&Bl(n))return sql`${s} not in ${co(n,r)}`;let a=ql(t,n,r);return a.length===0?sql`true`:sql`${s} not in (${sql.join(a.map(l=>sql`${l}`))})`}return sql`${s} = ${n}`}function ds(t,e){let n={};for(let[r,s]of Object.entries(t))r==="$or"||r==="$and"?n[r]=s.map(i=>ds(i,e)):r==="$not"?n[r]=ds(s,e):r.startsWith("$")||r.includes(".")?n[r]=s:n[`${e}.${r}`]=s;return n}function at(t){let e=t.leftCols??[t.leftCol],n=t.rightCols??[t.rightCol];return e.map((r,s)=>({leftCol:r,rightCol:n[s]??t.rightCol}))}function Wl(t,e){return `${t}_${e}_fkey`}function uo(t,e){return e===Wl(t.table,t.column)}function cd(t){let e=new Map;for(let n of t){let r=n.foreign_key_group??n.foreign_key_name,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function ud(t,e,n){return {leftCol:`${t}.${n.column}`,rightCol:`${e}.${n.ref_column}`,type:"m2o"}}function fd(t,e,n){return {leftCol:`${e}.${n.column}`,rightCol:`${t}.${n.ref_column}`,type:"o2m"}}function x_(t,e,n){switch(t.kind){case "constraint":case "pg_autogen":case "ref_column":return t.direction==="m2o"?ud(e,n,t.fk):fd(e,n,t.fk);case "parent_column":return ud(e,n,t.fk);case "target_column":return fd(e,n,t.fk);case "junction_table":return {type:"m2m",junctionTable:t.junctionTable,junctionToParentCols:t.toParent.map(r=>r.column),parentCols:t.toParent.map(r=>r.ref_column),junctionToTargetCols:t.toTarget.map(r=>r.column),targetCols:t.toTarget.map(r=>r.ref_column)}}}function pd(t,e,n,r){let s=r.find(o=>o.foreign_key_name===t&&o.table===e&&o.ref_table===n);if(s)return {kind:"constraint",fk:s,direction:"m2o"};let i=r.find(o=>o.foreign_key_name===t&&o.table===n&&o.ref_table===e);return i?{kind:"constraint",fk:i,direction:"o2m"}:null}function dd(t,e,n,r){let s=r.find(o=>o.table===e&&o.ref_table===n&&uo(o,t));if(s)return {kind:"pg_autogen",fk:s,direction:"m2o"};let i=r.find(o=>o.table===n&&o.ref_table===e&&uo(o,t));return i?{kind:"pg_autogen",fk:i,direction:"o2m"}:null}function md(t,e,n,r){let s=r.find(i=>i.table===e&&i.column===t&&i.ref_table===n);return s?{kind:"parent_column",fk:s}:null}function hd(t,e,n,r){let s=r.find(i=>i.table===n&&i.column===t&&i.ref_table===e);return s?{kind:"target_column",fk:s}:null}function gd(t,e,n,r){let s=r.filter(a=>a.table===t),i=cd(s.filter(a=>a.ref_table===e)),o=cd(s.filter(a=>a.ref_table===n));return i.length===0||o.length===0?null:{kind:"junction_table",junctionTable:t,toParent:i[0],toTarget:o[0]}}function yd(t,e,n,r){let s=r.find(i=>i.table===n&&i.ref_column===t&&i.ref_table===e);return s?{kind:"ref_column",fk:s,direction:"o2m"}:null}function bd(t,e,n,r){let s=r.find(i=>i.table===e&&i.ref_column===t&&i.ref_table===n);return s?{kind:"ref_column",fk:s,direction:"m2o"}:null}var T_=[pd,dd,md,hd,gd,yd,bd];function wd(t,e,n,r,s={}){let i=s.preferSelfReferenceTargetColumn&&e===n?[pd,dd,hd,md,gd,yd,bd]:T_;for(let o of i){let a=o(t,e,n,r);if(a)return x_(a,e,n)}return null}function fo(t,e,n,r){t=t.innerJoin(e.junctionTable,s=>{let i=s;for(let o=0;o<e.junctionToTargetCols.length;o++)i=i.onRef(`${e.junctionTable}.${e.junctionToTargetCols[o]}`,"=",`${n}.${e.targetCols[o]}`);return i});for(let s=0;s<e.junctionToParentCols.length;s++)t=t.whereRef(`${e.junctionTable}.${e.junctionToParentCols[s]}`,"=",`${r}.${e.parentCols[s]}`);return t}function ms(t,e,n,r){if(e.type==="m2m")return fo(t,e,n,r);for(let{leftCol:s,rightCol:i}of at(e))t=t.whereRef(s,"=",i);return t}function hs(t){return t.foreign_key_name?.endsWith("_fkey")||t.foreign_key_name&&!t.foreign_key_name.startsWith("fk_")?t.foreign_key_name:Wl(t.table,t.column)}function tr(t,e,n,r,s,i){if(!n||!e||!i.introspection?.foreign_keys)return {qb:t,remainingWhere:e};if(Object.keys(e).length===0||!Ed(e,n))return {qb:t,remainingWhere:e};let o=e;return t=t.where(a=>{let l=Sd(a,e,n,r,s,i);return o=l.remainingWhere,l.expression??sql`1 = 1`}),Object.keys(o).length===Object.keys(e).length?{qb:t,remainingWhere:e}:{qb:t,remainingWhere:o}}function Sd(t,e,n,r,s,i){let o=[],a={};for(let[c,u]of Object.entries(e)){if((c==="$or"||c==="$and")&&Array.isArray(u)){let p=u.map(d=>Sd(t,d,n,r,s,i));if(p.length>0&&p.every(d=>d.fullyHandled&&d.expression)){o.push(c==="$or"?t.or(p.map(d=>d.expression)):t.and(p.map(d=>d.expression)));continue}a[c]=u;continue}let f=R_(t,c,u,n,r,s,i);f?o.push(f):a[c]=u;}let l=o.length===0?null:o.length===1?o[0]:t.and(o);return {expression:l,remainingWhere:a,fullyHandled:l!==null&&Object.keys(a).length===0}}function R_(t,e,n,r,s,i,o){let a=n;if(!a||typeof a!="object")return null;let l="$is"in a&&a.$is===null,c="$isNot"in a&&a.$isNot===null;if(!l&&!c)return null;let u=_d(r,e);if(!u)return null;let f=s?.[e],p=zt(o.introspection,i,f?.from||e,o.dialect,o.currentSchema);if(p){let S=t.selectFrom(ps(p,i,p.targetTable)).select(sql`1`.as("_"));if(u.where&&Object.keys(u.where).length>0){let w=tr(S,u.where,u.select,u.join,p.targetTable,o);if(S=w.qb,Object.keys(w.remainingWhere).length>0){let x=ds(w.remainingWhere,p.targetTable);S=S.where(E=>Ee(E,x,o));}}let _=t.exists(S);return c?_:t.not(_)}let d=xe(i,e,f,o.introspection),{targetTable:g,fkRel:m}=d;if(!m)return null;let h=t.selectFrom(g).select(sql`1`.as("_"));if(f?.on?h=h.where(S=>Ee(S,f.on,o)):h=ms(h,m,g,i),u.where&&Object.keys(u.where).length>0){let S=tr(h,u.where,u.select,u.join,g,o);if(h=S.qb,Object.keys(S.remainingWhere).length>0){let _=ds(S.remainingWhere,g);h=h.where(w=>Ee(w,_,o));}}let y=t.exists(h);return c?y:t.not(y)}function _d(t,e){for(let n of t){if(typeof n=="string")continue;let r=n[e];if(r&&se(r))return r}return null}function Ed(t,e){for(let[n,r]of Object.entries(t)){if((n==="$or"||n==="$and")&&Array.isArray(r)){if(r.some(a=>Ed(a,e)))return true;continue}let s=r;if(!s||typeof s!="object")continue;let i="$is"in s&&s.$is===null,o="$isNot"in s&&s.$isNot===null;if((i||o)&&_d(e,n))return true}return false}function se(t){return "select"in t||"spread"in t||"join"in t}function Gl(t){if(typeof t=="string")return null;let[e,n]=Object.entries(t)[0]??[];return !e||n===void 0?null:{alias:e,def:n}}function ys(t){return Gl(t)?.def??null}function C_(t,e,n,r){if(t?.hint)return t.hint;if(!n||!r?.foreign_keys)return;let s=t?.from;return s&&s!==e&&r.foreign_keys.some(a=>a.table===n&&a.column===s)?s:r.foreign_keys.some(o=>o.table===n&&o.column===e)?e:void 0}function xd(t){return t.includes(".")?t.slice(t.lastIndexOf(".")+1):t}function go(t,e,n,r,s,i=false,o,a){let l=o??s,c=n.dialect==="postgres";if(!e||e.length===0)return c&&l&&(cs(l,n.introspection,Ue(n))||mo(l,n))?Td(t,l,n,new Set,false,s):t.selectAll();for(let u of e)if(typeof u=="string")if(u==="*")if(c&&l&&(cs(l,n.introspection,Ue(n))||mo(l,n))){let f=new Set;for(let p of e){if(p===u)break;if(typeof p=="string"&&p!=="*")f.add(p.includes(".")?p.split(".").pop():p);else if(typeof p!="string")for(let[d]of Object.entries(p))f.add(d);}t=Td(t,l,n,f,i,s);}else t=i&&s?t.selectAll(s):t.selectAll();else if(/^-?\d+(?:\.\d+)?$/.test(u))t=t.select(sql.lit(Number(u)).as("_lit"));else if(F_(u,n,s)){let f=i&&s?Tt(s,u,n,s):de(u,n,s);t=t.select(sql`json(${f})`.as(u));}else if(c&&l&&s&&!u.includes(".")&&!oo(n.introspection,l,u,n.currentSchema)){let f=ao(n.introspection,l,u,n.dialect,n.currentSchema);t=f?t.select(lo(f,s).as(u)):t.select(u);}else if(c&&s&&l&&Qp(l,xd(u),n.introspection,Ue(n))){let f=xd(u),p=u.includes(".")?sql.ref(u):i?Tt(s,u,n,s):sql.ref(u);t=t.select(ls(p,l,f,n.dialect,n.introspection,Ue(n)).as(f));}else t=i&&s&&!u.includes(".")?t.select(Tt(s,u,n,s).as(u)):!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)&&no(u,n,s)?t.select(de(u,n,s).as(u)):t.select(u);else for(let[f,p]of Object.entries(u))se(p)?t=aE(t,f,p,n,r,l,a):t=P_(t,f,p,n,s,i,l);return t}function Ue(t){return t.currentSchema??t.introspection?.default_schema??"public"}function mo(t,e){if(!t||e.dialect!=="postgres"||!e.introspection?.columns)return false;let n=Ue(e);return e.introspection.columns.some(r=>r.table===t&&(r.schema??"public")===n&&Jt(r.name,e,t))}function Td(t,e,n,r,s=false,i=e){if(!n.introspection)return s?t.selectAll(i):t.selectAll();let o=Ll(e,n.introspection,Ue(n));if(o.length===0)return s?t.selectAll(i):t.selectAll();for(let{name:a,isDomain:l,domainTypeName:c}of o){if(r.has(a))continue;let u=s?sql`${sql.ref(i)}.${sql.ref(a)}`:sql.ref(a);if(l&&c){let f=to(u,c);t=t.select((f??u).as(a));}else Jt(a,n,e)?t=t.select(sql`to_jsonb(${u})`.as(a)):t=s?t.select(u.as(a)):t.select(a);}return t}function bs(t,e,n){let r=n?.dialect==="postgres",s=n?.currentTable;if(!e||e.length===0)return r&&s&&(cs(s,n.introspection,Ue(n))||mo(s,n))?Rd(t,s,n):t;for(let i of e)if(typeof i=="string")if(i==="*")if(r&&s&&(cs(s,n.introspection,Ue(n))||mo(s,n))){let o=new Set;for(let a of e){if(a===i)break;if(typeof a=="string"&&a!=="*")o.add(a.includes(".")?a.split(".").pop():a);else if(typeof a!="string")for(let[l]of Object.entries(a))o.add(l);}t=Rd(t,s,n,o);}else t=t.returningAll();else if(r&&s&&Jt(i,n,s))t=t.returning(sql`to_jsonb(${sql.ref(i)})`.as(i));else if(r&&s){let o=sql.ref(i),a=ls(o,s,i,n.dialect,n.introspection,Ue(n));t=a!==o?t.returning(a.as(i)):t.returning(i);}else t=t.returning(i);else for(let[o,a]of Object.entries(i)){if(se(a))continue;let l=a.column||o;if(r&&s&&!a.cast&&!a.path&&!a.aggregate&&Jt(l,n,s))t=t.returning(sql`to_jsonb(${sql.ref(l)})`.as(o));else if(r&&s&&!a.cast&&!a.path&&!a.aggregate){let c=sql.ref(l),u=ls(c,s,l,n.dialect,n.introspection,Ue(n));t=u!==c?t.returning(u.as(o)):t.returning(l);}else t=t.returning(l);}return t}function Rd(t,e,n,r){if(!n.introspection)return t.returningAll();let s=Ll(e,n.introspection,Ue(n));if(s.length===0)return t.returningAll();for(let{name:i,isDomain:o,domainTypeName:a}of s)if(!r?.has(i))if(o&&a){let l=sql.ref(i),c=to(l,a);c?t=t.returning(c.as(i)):t=t.returning(i);}else Jt(i,n,e)?t=t.returning(sql`to_jsonb(${sql.ref(i)})`.as(i)):t=t.returning(i);return t}function ws(t,e,n,r,s,i=false,o){let a;if(n.aggregate==="count"&&!n.column&&!n.path)a=t.fn.countAll();else {let l=n.column||e;if(n.invalidJsonTextTraversalKey&&r.dialect==="postgres")throw Object.assign(new Error(`operator does not exist: text -> ${A_(n.invalidJsonTextTraversalKey)}`),{code:"42883",detail:null,hint:"No operator matches the given name and argument types. You might need to add explicit type casts."});if(n.path)a=td(l,n.path,r,s,n.pathText===true);else {let c=s&&i?Tt(s,l,r,s):de(l,r,s);a=r.dialect==="postgres"&&!n.cast&&!n.preCast&&!n.aggregate?ls(c,o??s??r.currentTable,l,r.dialect,r.introspection,Ue(r)):c;}n.preCast&&(_n(n.preCast,"pre-cast type"),a=sql`cast(${a} as ${sql.raw(n.preCast)})`),n.aggregate&&(a=sql`${sql.raw(n.aggregate)}(${a})`);}return n.cast&&(_n(n.cast,"cast type"),r.dialect==="sqlite"&&n.pathText===true&&v_(n.cast)||(n.cast.trim().toLowerCase()==="text"&&n.column&&O_(r,s,n.column)?a=Jp(a,r.dialect):a=r.dialect==="sqlite"&&(k_(n.cast)||$_(n.cast))?sql`json(${a})`:sql`cast(${a} as ${sql.raw(n.cast)})`)),a}function v_(t){let e=t.trim().toLowerCase();return e==="integer"||e==="int"||e==="int2"||e==="int4"||e==="int8"||e==="bigint"||e==="smallint"}function A_(t){return /^-?\d+$/.test(t)?"integer":"unknown"}function k_(t){let e=t.trim().toLowerCase();return e==="json"||e==="jsonb"}function $_(t){let e=t.trim().toLowerCase();return e.startsWith("_")||e.endsWith("[]")}function O_(t,e,n){let r=e??t.currentTable;if(!r||!t.introspection?.columns)return false;let s=t.introspection.columns.filter(o=>o.table===r&&o.name===n);if(s.length===0)return false;let i=s.find(o=>o.schema===Ue(t))??s.find(o=>o.schema==="public")??s[0];return Ie(i.pg_type,i.type)==="color"}function P_(t,e,n,r,s,i=false,o){return t.select(a=>ws(a,e,n,r,s,i,o).as(e))}function N_(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(!se(n)&&n.aggregate)return true}return false}function I_(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(se(n)&&n.spread&&Ql(n.select))return true}return false}function Cd(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(se(n)&&n.spread)return true}return false}function D_(t){return N_(t)||I_(t)}function Ql(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let n of Object.values(e)){if(se(n)){if(Ql(n.select))return true;continue}if(n.aggregate)return true}return false}function Xl(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let n of Object.values(e)){if(se(n)){if(n.spread)continue;if(Xl(n.select))return true;continue}if(n.aggregate&&!n.bareCount)return true}return false}function Yl(t,e,n,r,s,i=false,o){if(!D_(e))return t;let a=[];for(let l of e){if(typeof l=="string"){if(l==="*")continue;a.push(de(l,n,r));continue}for(let[c,u]of Object.entries(l))se(u)||u.aggregate||a.push(f=>ws(f,c,u,n,r,i,o));}return j_(a,e,n,r,s),a.length===0?t:t.groupBy(a)}function j_(t,e,n,r,s){if(!(!e||!r||!n.introspection?.foreign_keys)){for(let i of e)if(typeof i!="string")for(let[o,a]of Object.entries(i)){if(!se(a)||!a.spread)continue;let l=a,c=s?.[o],u=xe(r,o,c,n.introspection);if(!u.fkRel||!Rt(u))continue;let f=u.targetTable;u.fkRel;let d=bo(l.select,f,n.introspection)??l.select??[],g=`_spread_${o}`;for(let m of d){if(typeof m=="string"){m!=="*"&&t.push(`${g}.${m}`);continue}let[h,y]=Object.entries(m)[0];se(y)||y.aggregate||t.push(S=>ws(S,h,y,n,g,true));}}}}function Od(t,e,n,r,s){if(!t||!e||!r||!s.introspection?.foreign_keys)return t;let i=new Set;for(let o of e)if(typeof o!="string")for(let[a,l]of Object.entries(o)){if(!se(l)||!l.spread)continue;let c=n?.[a],u=xe(r,a,c,s.introspection);u.fkRel&&Rt(u)&&i.add(a);}return i.size===0?t:t.map(o=>o.embed&&i.has(o.embed)?{...o,embed:`_spread_${o.embed}`}:o)}function Pd(t,e,n,r){if(!t||!n||!r.introspection?.foreign_keys)return false;for(let s of t)if(typeof s!="string")for(let[i,o]of Object.entries(s)){if(!se(o)||!o.spread)continue;let a=e?.[i],l=xe(n,i,a,r.introspection);if(l.fkRel&&Rt(l))return true}return false}function nr(t){let e=new Map;for(let n of t){let r=n.foreign_key_group??n.foreign_key_name,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function gs(t,e,n,r){let s=r==="m2o"?n.map(o=>`${t}.${o.column}`):n.map(o=>`${e}.${o.column}`),i=r==="m2o"?n.map(o=>`${e}.${o.ref_column}`):n.map(o=>`${t}.${o.ref_column}`);return {leftCol:s[0],rightCol:i[0],leftCols:s,rightCols:i,type:r,fk:n[0]}}function Zl(t,e,n,r,s=n){let i=s===n?n:`${n} as ${s}`;return e.type==="m2o"?t.leftJoin(i,o=>{let a=o;for(let{leftCol:l,rightCol:c}of at(e)){let[,u]=l.split("."),[,f]=c.split(".");a=a.onRef(`${s}.${f}`,"=",`${r}.${u}`);}return a}):t.leftJoin(i,o=>{let a=o;for(let{leftCol:l,rightCol:c}of at(e)){let[,u]=l.split("."),[,f]=c.split(".");a=a.onRef(`${s}.${u}`,"=",`${r}.${f}`);}return a})}function yo(t,e,n,r,s){let i=new Set;if(!e||!r.introspection?.foreign_keys)return {sub:t,joined:i};for(let o of e){if(!o.embed||i.has(o.embed))continue;Pe(o.embed,"order embed alias");let a=s?.[o.embed],l=xe(n,o.embed,a,r.introspection);if(l.targetTable!==o.embed&&Pe(l.targetTable,"order embed target"),!l.fkRel||!Rt(l)||l.fkRel.type==="m2m")continue;let{targetTable:c,fkRel:u}=l;t=Zl(t,u,c,n,o.embed),i.add(o.embed),i.add(c);}return {sub:t,joined:i}}function L_(t){return t&&t.map(e=>e.embed&&e.nullsFirst===void 0?{...e,nullsFirst:e.direction==="desc"}:e)}function ho(t,e,n){let r=n.includes(".")?n.split(".").pop():n,s=t.introspection?.columns?.find(o=>o.table===e&&o.name===r),i=(s?.pg_type||s?.type||"").toLowerCase();return i==="json"||i==="jsonb"}function F_(t,e,n){return e.dialect==="sqlite"&&n!==void 0&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)&&ho(e,n,t)}function M_(t,e){if(!t)return false;let n=e.includes(".")?e.split(".").pop():e;return t.some(r=>r.column.includes("->")?r.column.slice(0,r.column.indexOf("->"))===n:false)}function Nd(t,e,n,r){return ho(t,e,n)||M_(r,n)}function U_(t,e,n){if(!t)return null;let r=[];for(let s of t){if(typeof s=="string"){if(s==="*")return null;let l=s.includes(".")?s.split(".").pop():s;r.push({alias:l,asJson:ho(n,e,l)});continue}let[i,o]=Object.entries(s)[0];if(!i||!o)continue;if(se(o))return null;let a=ho(n,e,o.column||i);r.push({alias:i,asJson:a});}return r}function B_(t,e,n,r){let s=U_(e,n,r);if(!s||s.length===0)return r.jsonObjectFrom(t);let i=s.flatMap(o=>[sql.lit(o.alias),o.asJson?sql`json(${sql.ref(`obj.${o.alias}`)})`:sql.ref(`obj.${o.alias}`)]);return sql`(select json_object(${sql.join(i)}) from ${t} as obj)`}function Id(t){if(!t||t.length===0)return false;for(let e of t){if(typeof e=="string")return true;let n=Gl(e);if(n&&(!se(n.def)||Id(n.def.select)))return true}return false}function Dd(t,e,n){return n?n.indexes?.some(i=>i.table===t&&i.unique&&i.columns.length===1&&i.columns[0]===e)||n.unique_constraints?.some(i=>i.table===t&&i.columns.length===1&&i.columns[0]===e)?true:n.primary_keys?.some(i=>i.table===t&&i.columns.length===1&&i.columns[0]===e)??false:false}function q_(t,e,n,r){if(t.type==="m2m")return "many-to-many";if(t.type==="m2o"&&r&&t.fk)return Dd(e,t.fk.column,r)?"one-to-one":"many-to-one";if(t.type==="o2m"&&r&&t.fk){let s={leftCol:`${n}.${t.fk.column}`,rightCol:`${e}.${t.fk.ref_column}`,type:"o2m"};if(Md(r,e,n,void 0,s))return "one-to-one"}return "one-to-many"}function H_(t,e,n){if(!t?.views?.length)return [];let r=n??t.tables?.find(s=>s.name===e)?.schema??t.foreign_keys?.find(s=>s.table===e)?.schema;return t.views.filter(s=>s.name!==e&&s.sql&&W_(s.sql)===e&&(!r||s.schema===r)).map(s=>s.name)}function W_(t){let e=t.match(/\bfrom\s+((?:"[^"]+"|`[^`]+`|\[[^\]]+\]|[\w$]+)(?:\s*\.\s*(?:"[^"]+"|`[^`]+`|\[[^\]]+\]|[\w$]+))?)/i);if(!e)return;let n=e[1].split(/\s*\.\s*/);return n[n.length-1].replace(/^["`[]|["`\]]$/g,"")}function K_(t,e){let n=new Set(e?.views?.map(s=>s.name)??[]),r=t.filter(s=>s.type==="m2m"&&!n.has(s.junctionTable));for(let s of r){if(s.type!=="m2m")continue;let i=s.parentFkGroup?.[0]?.schema;for(let o of H_(e,s.junctionTable,i))t.push({...s,junctionTable:o});}}function J_(t){if(t.type!=="m2m")return null;let e=t.parentFkGroup?.[0]?.foreign_key_name??"",n=t.targetFkGroup?.[0]?.foreign_key_name??"";return `${t.junctionTable}:${e}:${n}`}function vd(t){return t.type!=="m2m"?0:[...t.parentFkGroup??[],...t.targetFkGroup??[]].filter(n=>n.foreign_key_group).length}function z_(t){let e=[],n=new Map;for(let r of t){let s=J_(r);if(!s){e.push(r);continue}let i=n.get(s);if(i===void 0){n.set(s,e.length),e.push(r);continue}vd(r)<vd(e[i])&&(e[i]=r);}return e}function Jl(t,e){if(t.type==="m2m")return t.junctionTable;if(t.fk)return hs(t.fk)}function zl(t,e,n,r){if(t.type==="m2m"&&t.parentFkGroup?.[0]&&t.targetFkGroup?.[0]){let a=t.parentFkGroup[0],l=t.targetFkGroup[0];return `${t.junctionTable} using ${hs(a)}(${a.column}) and ${hs(l)}(${l.column})`}if(t.type==="m2m"||!t.fk)return "";let s=hs(t.fk);if(t.type==="o2m"){let a=po(t.rightCols??[t.rightCol]),l=po(t.leftCols??[t.leftCol]);return `${s} using ${e}(${a}) and ${n}(${l})`}let i=po(t.leftCols??[t.leftCol]),o=po(t.rightCols??[t.rightCol]);return `${s} using ${e}(${i}) and ${n}(${o})`}function po(t){return t.map(e=>e.split(".").at(-1)??e).join(", ")}function V_(t,e,n){if(!t||!e)return null;let r=t.partitions?.find(o=>o.name===e&&(!n||o.schema===n));if(r)return `Perhaps you meant '${r.parent}' instead of '${e}'.`;let s=[];for(let o of t.tables??[])s.push(o.name);for(let o of t.views??[])s.push(o.name);let i=s.find(o=>o.length===e.length+1&&o.startsWith(e));return i?`Perhaps you meant '${i}' instead of '${e}'.`:null}function ec(t,e,n,r){let s=t?.foreign_keys?.find(o=>o.table===e||o.ref_table===e)?.schema||"test",i=r?` using the hint '${r}'`:"";throw new ke({httpStatus:400,code:"PGRST200",message:`Could not find a relationship between '${e}' and '${n}' in the schema cache`,details:`Searched for a foreign key relationship between '${e}' and '${n}'${i} in the schema '${s}', but no matches were found.`,hint:V_(t,n,s)})}function G_(t,e,n,r,s=false){if(!t||!t.foreign_keys)return null;let i=t.foreign_keys.filter(h=>h.is_visible!==false);if(r){let h=wd(r,e,n,i,{preferSelfReferenceTargetColumn:s});if(h)return h;ec(t,e,n,r);}if(e===n){let h=nr(i.filter(y=>y.table===n&&y.ref_table===e))[0];if(h)return gs(e,n,h,"o2m")}let o=i.filter(h=>h.table===e&&h.ref_table===n),a=nr(o),l=i.filter(h=>h.table===n&&h.ref_table===e),c=nr(l),u=[],f=nr(i.filter(h=>h.ref_table===e));for(let h of f){let y=h[0].table;if(y===e||y===n)continue;let S=i.filter(_=>_.table===y&&_.ref_table===n);if(S.length!==0)for(let _ of nr(S))u.push({type:"m2m",junctionTable:y,junctionToParentCols:h.map(w=>w.column),parentCols:h.map(w=>w.ref_column),junctionToTargetCols:_.map(w=>w.column),targetCols:_.map(w=>w.ref_column),fk:h[0],parentFkGroup:h,targetFkGroup:_});}if(a.length+c.length+u.length===0)return null;let d=[...u];K_(d,t),d=z_(d);let g=e!==n&&a.length>0&&c.length>0;if(a.length>1||c.length>1||a.length===0&&c.length===0&&d.length>1||g||a.length>0&&d.length>1){let h=[...a.map(E=>gs(e,n,E,"m2o")),...c.map(E=>gs(e,n,E,"o2m")),...d],y={o2m:0,m2o:1,m2m:2},S=[...h].sort((E,T)=>{let O=y[E.type]??3,P=y[T.type]??3;if(O!==P)return O-P;let D=Jl(E)??"",k=Jl(T)??"",C=D.localeCompare(k);return C!==0?C:zl(E,e,n).localeCompare(zl(T,e,n))}),_=S.map(E=>({cardinality:q_(E,e,n,t),embedding:`${e} with ${n}`,relationship:zl(E,e,n)})),x=S.map(E=>Jl(E)).filter(Boolean).map(E=>`'${n}!${E}'`).join(", ");throw new ke({httpStatus:300,code:"PGRST201",message:`Could not embed because more than one relationship was found for '${e}' and '${n}'`,details:_,hint:x?`Try changing '${n}' to one of the following: ${x}. Find the desired relationship in the 'details' key.`:null})}return a.length===1?gs(e,n,a[0],"m2o"):c.length===1?gs(e,n,c[0],"o2m"):u.length===1?u[0]:null}function Q_(t,e,n){if(!n?.foreign_keys)return {targetTable:t};let r=n.foreign_keys,s=r.find(l=>l.table===e&&l.column===t);if(s)return {targetTable:s.ref_table,resolvedFkHint:t};let i=r.find(l=>(l.foreign_key_name===t||uo(l,t))&&(l.table===e||l.ref_table===e));if(i)return {targetTable:i.table===e?i.ref_table:i.table,resolvedFkHint:t};let o=r.find(l=>l.ref_table===e&&l.ref_column===t);return o?{targetTable:o.table,resolvedFkHint:t}:n.tables?.some(l=>l.name===t)||n.views?.some(l=>l.name===t)?{targetTable:t}:{targetTable:t}}function X_(t,e,n,r,s){if(!t)return "o2m";if(t.type==="m2m")return "m2m";if(t.type==="m2o"){let i=t.leftCol.split(".")[1];return Dd(e,i,s)?"o2o":"m2o"}return Md(s,e,n,r,t)?"o2o":"o2m"}function xe(t,e,n,r){let s=n?.from||e,{targetTable:i,resolvedFkHint:o}=Q_(s,t,r),a=C_(n,e,t,r)??o,l=t===i&&!!(n?.hint&&n.from&&n.from!==e),c=r?.foreign_keys&&t?G_(r,t,i,a,l):null,u=X_(c,t,i,a,r);return {targetTable:i,fkRel:c,cardinality:u,displayHint:a}}function Rt(t){return t.cardinality==="m2o"||t.cardinality==="o2o"}function jd(t,e,n,r){if(!(!t||!n||!r.introspection?.foreign_keys))for(let s of t){if(!s.embed)continue;let i=e?.[s.embed],o=xe(n,s.embed,i,r.introspection);if(o.fkRel&&!Rt(o))throw new ke({httpStatus:400,code:"PGRST118",message:`A related order on '${s.embed}' is not possible`,details:`'${n}' and '${s.embed}' do not form a many-to-one or one-to-one relationship`,hint:null})}}function Ad(t,e,n,r,s){let i=e.join??r;if(!e.select||!i)return t;for(let o of e.select){if(typeof o=="string")continue;let a=Object.keys(o)[0],l=o[a];if(!se(l)||!l.select)continue;let c=i[a];if(c?.type!=="inner")continue;let u=zt(s.introspection,n,c?.from||a,s.dialect,s.currentSchema),f=u?u.targetTable:xe(n,a,c,s.introspection).targetTable;t=t.where(p=>Ld(p,l,f,n,c,l.join??i,s));}return t}function Ld(t,e,n,r,s,i,o){let a=r?zt(o.introspection,r,s?.from??n,o.dialect,o.currentSchema):null;if(a){let f=t.selectFrom(ps(a,r,a.targetTable)).select(sql`1`.as("_"));return e.where&&Object.keys(e.where).length>0&&(f=f.where(p=>Ee(p,e.where,{...o,currentTable:a.targetTable}))),r&&(f=Ad(f,e,a.targetTable,i,o)),t.exists(f)}let c=(r?xe(r,s?.from??n,s,o.introspection):null)?.fkRel??null,u=t.selectFrom(n).select(sql`1`.as("_"));if(s?.on)u=u.where(f=>Ee(f,s.on,o));else if(c&&c.type==="m2m")u=fo(u,c,n,r);else if(c)for(let{leftCol:f,rightCol:p}of at(c))u=u.whereRef(f,"=",p);else r&&(u=u.whereRef(`${n}.${r}_id`,"=",`${r}.id`));return e.where&&Object.keys(e.where).length>0&&(u=u.where(f=>Ee(f,e.where,{...o,currentTable:n}))),r&&(u=Ad(u,e,n,i,o)),t.exists(u)}function kd(t,e,n,r,s,i){let o=s?.[e],a=i?zt(r.introspection,i,o?.from||e,r.dialect,r.currentSchema):null,l=a?a.targetTable:i?xe(i,e,o,r.introspection).targetTable:o?.from||e;return t.where(c=>Ld(c,n,l,i,o,s,r))}function Fd(t,e,n){if(!n||t.type!=="o2m")return false;let r=t.leftCol.split(".")[1];return n.indexes?.some(o=>o.table===e&&o.unique&&o.columns.length===1&&o.columns[0]===r)||n.unique_constraints?.some(o=>o.table===e&&o.columns.length===1&&o.columns[0]===r)?true:n.primary_keys?.some(o=>o.table===e&&o.columns.length===1&&o.columns[0]===r)??false}function Md(t,e,n,r,s){if(!t?.foreign_keys||!s||s.type!=="o2m")return false;if(Fd(s,n,t))return true;let o=t.foreign_keys.filter(f=>f.is_visible!==false).filter(f=>f.table===n&&f.ref_table===e);if(r){let f=o.filter(p=>p.foreign_key_name===r);f.length>0&&(o=f);}let a=nr(o);if(a.length!==1)return false;let l=[...a[0].map(f=>f.column)].sort(),c=t.primary_keys?.find(f=>f.table===n);if(!c?.columns?.length)return false;let u=[...c.columns].sort();return l.length===u.length&&l.every((f,p)=>f===u[p])}function Y_(t,e){return t&&t.map(n=>typeof n!="string"||n==="*"||n.includes(".")||/^-?\d+(?:\.\d+)?$/.test(n)?n:`${e}.${n}`)}function Gt(t){if(typeof t=="string")return {colAlias:t,colName:t};let e=Object.keys(t)[0],n=t[e];return {colAlias:e,colName:n?.column||e}}function Z_(t,e,n,r,s,i){if(!n.select||!i)return t;let o=s?.[e],a=xe(i,e,o,r.introspection),{targetTable:l,fkRel:c}=a,u=bo(n.select,l,r.introspection)??n.select;if(!r.introspection?.foreign_keys)return oE(t,u,l,i,c);if(!c)throw new ke({httpStatus:400,code:"PGRST120",message:"Could not embed because the relationship is not a one-to-one or many-to-one",details:null,hint:null});if(!Rt(a)){if(Ql(n.select))throw new ke({httpStatus:400,code:"PGRST127",message:"Feature not implemented",details:"Aggregates are not implemented for one-to-many or many-to-many spreads.",hint:null});return iE(t,u,n,c,l,i,r)}let f=`_spread_${e}`;if(c.type!=="m2o"&&c.type!=="o2m")throw new ke({httpStatus:400,code:"PGRST120",message:"Could not embed because the relationship is not a one-to-one or many-to-one",details:null,hint:null});let p=at(c).map(({leftCol:m,rightCol:h},y)=>{let[S,_]=m.split("."),[,w]=h.split(".");return {targetSideCol:S===l?_:w,parentSideCol:S===i?_:w,joinKey:`__spread_join_key_${y}`}}),d=[],g=new Set;for(let m of u){if(typeof m=="string"&&m==="*")continue;let h;if(typeof m!="string"){let _=ys(m);if(!_||se(_))continue;h=_;}let{colAlias:y,colName:S}=Gt(m);d.push({src:S,out:y,def:h}),g.add(S);}t=t.leftJoin(m=>{let h=m.selectFrom(l);for(let{targetSideCol:y,joinKey:S}of p)h=h.select(`${l}.${y} as ${S}`);for(let y of g)h=h.select(`${l}.${y} as ${y}`);return h.as(f)},m=>{let h=m;for(let{joinKey:y,parentSideCol:S}of p)h=h.onRef(`${f}.${y}`,"=",`${i}.${S}`);return h});for(let{out:m,def:h}of d)h?t=t.select(y=>ws(y,m,h,r,f,true).as(m)):t=t.select(`${f}.${m}`);return t}function eE(t,e,n,r){for(let s of t){if(typeof s=="string")continue;let i=ys(s);if(!i||!se(i))continue;let{colAlias:o}=Gt(s),a=e.join?.[o],l=xe(n,o,a,r.introspection),c=l.targetTable,u=l.fkRel;if(!u||u.type!=="o2m"||!Fd(u,c,r.introspection))continue;let f=r.introspection?.primary_keys?.find(p=>p.table===c);if(f?.columns?.length)return {nestedTargetTable:c,fkRel:u,pkColumns:f.columns}}return null}function tE(t,e){let n=e.frames[0],{fkRel:r,fromTable:s,parentTable:i,embed:o}=n,a=t.selectFrom(s);if(a=ms(a,r,s,i),o.where&&Object.keys(o.where).length>0){let c=e.frames.length>1?e.config:{...e.config,currentTable:s};a=a.where(u=>Ee(u,o.where,c));}let l=yo(a,o.order,s,e.config,o.join);return a=l.sub,o.order&&(a=Vt(a,L_(o.order),void 0,e.config,s)),o.limit!==void 0&&(a=a.limit(o.limit)),o.offset!==void 0&&(a=a.offset(o.offset)),e.tieBreaker&&e.frames.length===1&&(a=Zl(a,e.tieBreaker.fkRel,e.tieBreaker.nestedTargetTable,s),a=Vt(a,e.tieBreaker.pkColumns.map(c=>({column:c,embed:e.tieBreaker.nestedTargetTable})),void 0,e.config)),{inner:a,joinedToOne:l.joined}}function nE(t,e,n,r){if(e.frames[0].embed.order||!n.fkRel||n.fkRel.type!=="o2m")return t;let s=e.config.introspection?.primary_keys?.find(i=>i.table===n.fromTable);return s?.columns?.length?Vt(t,s.columns.map(i=>({column:i,embed:n.fromTable})),void 0,e.config):t}function rE(t,e,n){if(n&&se(n)&&!n.spread)return true;let r=t.frames[t.frames.length-1],s=r.embedRel;if(t.frames.length>1&&s&&!Rt(s))return true;let{colName:i}=Gt(e);return Nd(t.config,r.fromTable,i,t.frames[0].embed.order)}function sE(t,e,n,r){let s=ys(n),{colAlias:i,colName:o}=Gt(n),l=e.frames[r].fromTable;if(r===0&&s&&se(s)&&!s.spread){let c=e.frames[0].embed.join?.[i];return t.select(u=>Ud(u,i,s,e.config,c,l).as("value"))}if(s&&!se(s)){let c=r>0?{...s,column:`${l}.${o}`}:s,u=r>0?i:o;return t.select(f=>ws(f,u,c,e.config,r>0?void 0:l).as("value"))}return t.select(`${l}.${o} as value`)}function Vl(t,e,n,r,s){if(r===e.frames.length-1)return sE(t,e,n,r);let o=e.frames[r],a=e.frames[r+1];if(!a.fkRel)return t.where(sql`1 = 0`).select(sql`null`.as("value"));let l=a.embedRel;if(!l)return t.where(sql`1 = 0`).select(sql`null`.as("value"));if(Rt(l))return s.has(a.fromTable)||(t=Zl(t,a.fkRel,a.fromTable,o.fromTable),s.add(a.fromTable)),t=nE(t,e,a),Vl(t,e,n,r+1,s);let{colName:c}=Gt(n);return t.select(u=>{let f=u.selectFrom(a.fromTable);return f=ms(f,a.fkRel,a.fromTable,o.fromTable),f=Vl(f,e,n,r+1,new Set),e.config.jsonScalarArrayFrom(f,"value",Nd(e.config,a.fromTable,c,e.frames[0].embed.order)).as("value")})}function $d(t,e,n){let{colAlias:r}=Gt(n),s=ys(n);return t.select(i=>{let{inner:o,joinedToOne:a}=tE(i,e),l=e.frames[e.frames.length-1];if(e.frames.length>1&&!l.fkRel){let u=o.where(sql`1 = 0`).select(sql`null`.as("value"));return e.config.jsonScalarArrayFrom(u).as(r)}let c=Vl(o,e,n,0,a);return e.config.jsonScalarArrayFrom(c,"value",rE(e,n,s)).as(r)})}function iE(t,e,n,r,s,i,o){let a=n.order?null:eE(e,n,s,o),l={frames:[{embed:n,fkRel:r,fromTable:s,parentTable:i}],config:o,tieBreaker:a};for(let c of e){if(typeof c=="string"&&c==="*")continue;let u=ys(c),f=u!==null&&se(u)&&u.spread,{colAlias:p}=Gt(c);if(f){let d=u,g=n.join?.[p],m=xe(s,p,g,o.introspection),h=bo(d.select,m.targetTable,o.introspection)??d.select??[],y={...l,frames:[...l.frames,{embed:d,fkRel:m.fkRel,fromTable:m.targetTable,parentTable:s,embedRel:m}]};for(let S of h)typeof S=="string"&&S==="*"||(t=$d(t,y,S));continue}t=$d(t,l,c);}return t}function oE(t,e,n,r,s){for(let i of e){if(typeof i=="string"&&i==="*")continue;let{colAlias:o,colName:a}=Gt(i);t=t.select(l=>{let c=l.selectFrom(n).select(`${n}.${a}`);if(s&&s.type!=="m2m")for(let{leftCol:u,rightCol:f}of at(s))c=c.whereRef(u,"=",f);else c=c.whereRef(`${n}.${r}_id`,"=",`${r}.id`);return c=c.limit(1),c.as(o)});}return t}function bo(t,e,n){if(!t||!n?.columns||!t.some(i=>i==="*"))return t;let r=n.columns.filter(i=>i.table===e).sort((i,o)=>i.ordinal_position-o.ordinal_position).map(i=>i.name);if(r.length===0)return t;let s=[];for(let i of t)if(i==="*")for(let o of r)s.push(o);else s.push(i);return s}function aE(t,e,n,r,s,i,o){let a=s?.[e];if(!Id(n.select)){if(a?.type==="inner"&&i)return kd(t,e,n,r,s,i);if(i&&!a?.on&&r.introspection?.foreign_keys&&!zt(r.introspection,i,a?.from||e,r.dialect,r.currentSchema)){let l=xe(i,e,a,r.introspection);l.fkRel||ec(r.introspection,i,l.targetTable,l.displayHint);}return t}return a?.type==="inner"&&i&&(t=kd(t,e,n,r,s,i)),n.spread&&i?Z_(t,e,n,r,s,i):t.select(l=>Ud(l,e,n,r,a,i,o).as(e))}function Ud(t,e,n,r,s,i,o){let a=i?zt(r.introspection,i,s?.from||e,r.dialect,r.currentSchema):null,l=a||!i?{targetTable:a?.targetTable??(s?.from||e),fkRel:null,cardinality:"o2m",displayHint:void 0}:xe(i,e,s,r.introspection),c=l.targetTable,{displayHint:u,fkRel:f}=l,p=i===c,d=p?o?`${c}_nested`:`${c}_self`:c,g=p?`${c} as ${d}`:c,m=a?t.selectFrom(ps(a,o??i,d)):t.selectFrom(g),h=i&&!s?.on&&!a?f:null,y=h?.type==="m2m",S=bo(n.select,c,r.introspection),_=y?Y_(S,d):S;if(m=go(m,_,r,n.join,d,y||Cd(_),p?c:d,p?d:void 0),n.where&&Object.keys(n.where).length>0){let T=tr(m,n.where,n.select,n.join,c,r);m=T.qb,Object.keys(T.remainingWhere).length>0&&(m=m.where(O=>Ee(O,T.remainingWhere,{...r,currentTable:c,currentTableAlias:d})));}let w=l.cardinality==="m2m"?"m2m":l.cardinality==="m2o"?"m2o":"o2m";if(s?.on)m=m.where(T=>Ee(T,s.on,r));else if(i&&!a){let T=h;if(T&&T.type==="m2m")w="m2m",m=fo(m,T,d,i);else if(T?.type==="m2o"){for(let{leftCol:O,rightCol:P}of at(T)){let[,D]=O.split("."),[,k]=P.split("."),C=o?`${o}.${D}`:`${i}.${D}`;m=m.whereRef(`${d}.${k}`,"=",C);}w="m2o";}else if(T){for(let{leftCol:O,rightCol:P}of at(T)){let[,D]=O.split("."),[,k]=P.split("."),C=p?`${d}.${D}`:O,q=o?`${o}.${k}`:p?P.replace(`${c}.`,`${i}.`):P;m=m.whereRef(C,"=",q);}w=T.type;}else r.introspection?.foreign_keys?ec(r.introspection,i,c,u):m=m.whereRef(`${d}.${i}_id`,"=",`${i}.id`);}m=Yl(m,_,r,d,void 0,y||Cd(_),p?c:d),n.order?.some(T=>T.embed)&&(m=yo(m,n.order,c,r,n.join).sub),m=Vt(m,n.order,void 0,r,c),w==="m2m"&&!n.order&&h?.type==="m2m"&&r.dialect==="sqlite"&&(m=m.orderBy(`${h.junctionTable}.${r.rowIdColumn}`,"asc")),n.limit!==void 0&&(m=m.limit(n.limit)),n.offset!==void 0&&(m=m.offset(n.offset)),a?.toOne&&(m=m.limit(1));let x=n.spread?true:a?a.toOne:w==="m2o"||l.cardinality==="o2o";return x&&r.dialect==="sqlite"?B_(m,_,c,r):(x?r.jsonObjectFrom:r.jsonArrayFrom)(m)}function Bd(t,e,n,r){if(!t||!r.introspection?.foreign_keys)return false;for(let s of t){let i=Gl(s);if(!i||!se(i.def))continue;let{alias:o,def:a}=i;if(!a.spread)continue;let l=e?.[o],c=xe(n,o,l,r.introspection);if(c.fkRel&&!Rt(c))return true}return false}rr();function tc(t){return t.startsWith("pg_catalog.")?t.slice(11):t}function fE(t,e,n){let r=n.arg_types.map((s,i)=>`${n.arg_names[i]??""} => ${tc(s)}`);return `${t}.${e}(${r.join(", ")})`}function pE(t){return [...t].sort((e,n)=>{let r=e.arg_types.length-n.arg_types.length;if(r!==0)return r;let s=e.arg_types.map(tc).join(","),i=n.arg_types.map(tc).join(",");return s<i?-1:s>i?1:0})}function Hd(t,e,n){return {message:`Could not choose the best candidate function between: ${pE(n).map(i=>fE(t,e,i)).join(", ")}`,details:null,hint:"Try renaming the parameters or the function itself in the database so function overloading can be resolved"}}function Kd(t,e){let n=t??[],{schema:r,fnName:s,method:i,providedNames:o,inputType:a,paramsType:l}=e,c=n.filter(f=>f.schema===r&&f.name===s);if(c.length===0)return null;if(!(l==="positional"&&o.length===0)){let f=Qt(n,{schema:r,fnName:s,providedNames:o});if(f.length>1)return Hd(r,s,c);if(f.length===1)return null}if(i==="POST"&&a!=="text"){let f=c.filter(p=>!p.has_variadic&&p.arg_types.length===1&&p.arg_names.length===0&&(p.arg_types[0]==="json"||p.arg_types[0]==="jsonb"));if(f.length>1)return Hd(r,s,f)}return null}function Tn(t){let e=t.args;if(e==null)return [];if(Array.isArray(e)){let n=e[0];return n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n):[]}return typeof e=="object"?"_raw"in e?[]:Object.keys(e):[]}function Jd(t){if(!t)return;let e=t.toLowerCase();if(e.includes("application/octet-stream"))return "bytea";if(e.includes("xml"))return "xml";if(e.includes("text/plain"))return "text"}function dE(t,e){let n=new Set(t.arg_names.filter(i=>i!=="")),r=new Set(e);for(let i of e)if(!n.has(i))return false;let s=t.arg_types.length-(t.arg_defaults||0)-(t.has_variadic?1:0);for(let i=0;i<s;i++){let o=t.arg_names[i];if(!o||!r.has(o))return false}return true}function Qt(t,e){let{schema:n,fnName:r,providedNames:s}=e;return t.filter(i=>i.schema===n&&i.name===r&&dE(i,s))}function So(t,e){let n=t??[],r=e.paramsType==="positional"&&e.providedNames.length===0&&e.method==="POST"&&e.inputType!=="text",s;if(r)s=[];else if(e.paramsType==="positional"){let i=e.argCount??0;s=n.filter(o=>o.schema===e.schema&&o.name===e.fnName&&o.arg_types.length===i);}else s=Qt(n,{schema:e.schema,fnName:e.fnName,providedNames:e.providedNames});if(s.length===1)return s[0];if(s.length===0&&e.method==="POST"&&e.inputType!=="text"){let i=n.filter(o=>o.schema===e.schema&&o.name===e.fnName&&!o.has_variadic&&o.arg_types.length===1&&o.arg_names.length===0&&(o.arg_types[0]==="json"||o.arg_types[0]==="jsonb"));if(i.length===1)return i[0]}return null}function _o(t,e){let n=So(t,e);if(!n)return null;let r=n.has_out_args||n.return_typtype==="c"||n.return_typtype==="p",s=n.return_type.toLowerCase()==="void"&&!n.has_out_args;return {return_is_setof:n.return_is_setof,return_type:n.return_type,returns_object:r,returns_void:s,volatility:n.volatility}}function zd(t,e){let n=So(t?.functions,e);if(!n||n.return_typtype!=="c")return null;let r=n.return_type.replace(/^setof\s+/i,"").trim(),s=(r.includes(".")?r.slice(r.lastIndexOf(".")+1):r).replace(/^"|"$/g,""),i=[...t?.tables??[],...t?.views??[]];return i.find(a=>a.name===s&&a.schema===e.schema)??i.find(a=>a.name===s)?s:null}function mE(t){return [...t].sort().join(", ")}function hE(t){if(t.arg_types.length===0)return null;let e=t.arg_names.filter(n=>n!=="");return e.length!==t.arg_types.length?null:{arity:t.arg_types.length,sig:mE(e)}}function gE(t,e,n,r){let s=r.filter(p=>p.schema===t),i=()=>{let p=[...new Set(s.map(d=>d.name))].filter(d=>d!==e);return Ss(e,p)},o=p=>`Perhaps you meant to call the function ${t}.${p}`,a=p=>`Perhaps you meant to call the function ${t}.${e}(${p})`,l=s.filter(p=>p.name===e).map(hE).filter(p=>p!==null);if(l.length===0){let p=i();return p?o(p):null}if(s.filter(p=>p.name===e).length>1){let p=l.filter(d=>d.arity===n.length);return p.length===1?a(p[0].sig):null}return l[0].sig.split(", ").every(p=>n.includes(p)||Ss(p,n)!==null)?a(l[0].sig):null}function Wd(t,e){let{schema:n,fnName:r,method:s,providedNames:i,inputType:o,rawKind:a}=t,l=[...i].sort(),c=s==="POST",u=c&&o==="text",f;u?f=`with a single unnamed ${a??"text"} parameter`:c?f=l.length===0?"without parameters or with a single unnamed json/jsonb parameter":`with ${l.length===1?"parameter":"parameters"} ${l.join(", ")} or with a single unnamed json/jsonb parameter`:f=l.length===0?"without parameters":`with ${l.length===1?"parameter":"parameters"} ${l.join(", ")}`;let p=`Searched for the function ${n}.${r} ${f}, but no matches were found in the schema cache.`,d;l.length>0?d=`${n}.${r}(${l.join(", ")})`:u?d=`${n}.${r}`:d=`${n}.${r} without parameters`;let g=`Could not find the function ${d} in the schema cache`,m=gE(n,r,i,e);return {message:g,details:p,hint:m}}function nc(t,e){let n=t??[],r=n.filter(s=>s.schema===e.schema&&s.name===e.fnName);return r.length===0?Wd(e,n):e.paramsType==="positional"&&e.providedNames.length===0||Qt(n,{schema:e.schema,fnName:e.fnName,providedNames:e.providedNames}).length>0||e.method==="POST"&&e.inputType!=="text"&&r.some(i=>!i.has_variadic&&i.arg_types.length===1&&i.arg_names.length===0&&(i.arg_types[0]==="json"||i.arg_types[0]==="jsonb"))||e.inputType==="text"?null:Wd(e,n)}function yE(t,e,n){return t.schema?.get(`${e??"public"}.${n}`)}function sc(t,e,n,r,s={}){if(!t)return t;let i=yE(e,n,r),o=a=>{let l=bE(a,i,e,n,r),c=s.applyDefaults&&i?i.applyDefaults(l):l;return i?i.serializeRow(c):wE(c,e,n,r)};return Array.isArray(t)?t.map(a=>o(a)):o(t)}function bE(t,e,n,r,s){let i={};for(let[o,a]of Object.entries(t)){let l=e?.get(o)?.context.pgTypeName??Yd(n,r,s,o)??void 0;i[o]=SE(a,l,n.dialect);}return i}function wE(t,e,n,r){if(e.dialect!=="sqlite")return t;let s={};for(let[i,o]of Object.entries(t)){let a=Yd(e,n,r,i);s[i]=_E(a)?xo(o):o;}return s}function Yd(t,e,n,r){let i=(t.introspection?.columns??[]).filter(l=>l.table===n&&l.name===r);if(i.length===0)return;let o=e??t.introspection?.default_schema??"public",a=i.find(l=>l.schema===o)??i.find(l=>l.schema==="public")??i[0];return Ie(a.pg_type,a.type)}function SE(t,e,n){if(t==null)return t;let r=e?.toLowerCase().trim();if(n!=="sqlite"&&r&&Me(r)){if(r==="color"){if(typeof t=="string"){let i=t.trim();return Xn(i.startsWith("#")?i:`#${i}`)}return t}return Gp(t,r)}if(typeof t!="string")return t;if(r==="color"){let i=t.trim();return Xn(i.startsWith("#")?i:`#${i}`)}if(n!=="sqlite"){let i=_s(e);return i==="boolean"?Vd(t):i==="integer"?Eo(t,true):i==="number"?Eo(t,false):i==="json"?rc(t):i==="array"?Gd(t):t}if(r==="color")return Xn(t);if(r==="isodate"||r==="isodatetext")return t.replace(/Z$/,"+00:00");if(r==="unixtz"){let i=Date.parse(t);if(Number.isFinite(i))return Math.trunc(i/1e3)}if(r==="monetary"||r==="monetarytext"){let i=Number(t);return Number.isFinite(i)?i.toFixed(2):t}let s=_s(e);return s==="boolean"?Vd(t):s==="integer"?Eo(t,true):s==="number"?Eo(t,false):s==="json"?rc(t):s==="array"?Gd(t):t}function _s(t){if(!t)return;let e=t.toLowerCase().trim();if(e.startsWith("_")||e.endsWith("[]"))return "array";if(e==="bool"||e==="boolean")return "boolean";if(["int2","smallint","int4","integer","int","int8","bigint"].includes(e))return "integer";if(["float4","real","float8","double precision","numeric","decimal"].includes(e))return "number";if(e==="json"||e==="jsonb")return "json"}function Vd(t){let e=t.trim().toLowerCase();return ["true","t","1","yes","y","on"].includes(e)?true:["false","f","0","no","n","off"].includes(e)?false:t}function Eo(t,e){let n=t.trim();if(n==="")return t;let r=Number(n);return !Number.isFinite(r)||e&&!Number.isInteger(r)?t:r}function rc(t){let e=t.trim();if(e==="")return t;try{return JSON.parse(e)}catch{return t}}function Gd(t){let e=rc(t);return Array.isArray(e)?e:t}function _E(t){let e=_s(t);return e==="json"||e==="array"}var EE=new Set(["text","character","character varying","bpchar","varchar","name","citext"]);function Qd(t){let e=t.toLowerCase().trim(),n=e.endsWith("[]")?e.slice(0,-2).trim():e;return !EE.has(n)}function xo(t){return t==null||typeof t=="string"?t:JSON.stringify(t)}function Zd(t,e){let n=e.db;switch(t.schema&&(n=n.withSchema(t.schema),e={...e,currentSchema:t.schema}),t.type){case "query":return Hl(t,e,n);case "insert":return TE(t,e,n);case "update":return RE(t,e,n);case "delete":return CE(t,e,n);case "upsert":case "put":return vE(t,e,n);case "rpc":return kE(t,e,n);default:throw t&&"type"in t?(console.error(t),new Error(`Unsupported AST type: ${t.type}`)):new Error("Invalid AST")}}function Vt(t,e,n,r,s){if(!e)return t;for(let i of e){let o=i.embed?(Pe(i.embed,"order embed alias"),i.column.includes("->")?r?fs(i.column,r,s,i.embed):Xd(i.column,i.embed):(Pe(i.column,"order embed column"),r?Tt(i.embed,i.column,r,s):sql`${sql.ref(i.embed)}.${sql.ref(i.column)}`)):i.column.includes("->")?r?fs(i.column,r,s,n):Xd(i.column,void 0,n):n?r?Tt(n,i.column,r,s):sql`${sql.ref(n)}.${sql.ref(i.column)}`:r?de(i.column,r,s):i.column,a=i.nullsFirst!==void 0?i.nullsFirst:r?.dialect==="sqlite"?i.direction==="desc":void 0;a!==void 0?t=t.orderBy(o,l=>{let c=i.direction==="desc"?l.desc():l.asc();return a?c.nullsFirst():c.nullsLast()}):t=t.orderBy(o,i.direction||"asc");}return t}function Xd(t,e,n){let{col:r,parts:s}=En(t);if(s.length===0)return sql.ref(t);e&&Pe(r,"order embed column");let i=us(s,"ORDER BY JSON path key");return e?sql`${sql.ref(e)}.${sql.ref(r)}${sql.raw(i)}`:n?sql`${sql.ref(n)}.${sql.ref(r)}${sql.raw(i)}`:sql`${sql.ref(r)}${sql.raw(i)}`}function Es(t,e,n,r,s){return !e||Object.keys(e).length===0?t:t.where(i=>Ee(i,e,{...n,currentTable:r,currentSchema:s}))}function Hl(t,e,n){let r=n.selectFrom(t.from);return em(r,t,e,t.from)}function em(t,e,n,r){t=xE(t,e.join,e.select);let s=e.order?.some(u=>u.embed)===true;t=go(t,e.select,n,e.join,r,s||Pd(e.select,e.join,r,n));let i=e.where??{},{qb:o,remainingWhere:a}=tr(t,i,e.select,e.join,r,n);t=o,t=Es(t,a,n,r,e.schema),t=Yl(t,e.select,n,r,e.join),jd(e.order,e.join,r,n),s&&(t=yo(t,e.order,r,n,e.join).sub);let l=Bd(e.select,e.join,r,n)?r:void 0,c=Od(e.order,e.select,e.join,r,n);return t=Vt(t,c,l,n,r),e.limit!==void 0&&(t=t.limit(e.limit)),e.offset!==void 0&&(t=t.offset(e.offset)),t}function xE(t,e,n){if(!e)return t;let r=new Set;if(n){for(let s of n)if(typeof s!="string")for(let i of Object.keys(s))r.add(i);}for(let[s,i]of Object.entries(e)){if(!i.on||r.has(s))continue;let o=i.from||s,a=i.type==="left"?"leftJoin":"innerJoin";t=t[a](`${o} as ${s}`,l=>tm(l,i.on));}return t}function tm(t,e){for(let[n,r]of Object.entries(e))if(n==="$and")for(let s of r)t=tm(t,s);else {let s=r;for(let[i,o]of Object.entries(s)){let a=so[i];if(!a)throw new Error(`Unsupported join operator: ${i}`);Zi(o)?t=t.onRef(n,a,o.$ref):t=t.on(n,a,o);}}return t}function TE(t,e,n){let r=n.insertInto(t.from);if(t.values){let i=sc(t.values,e,t.schema,t.from,{applyDefaults:true});r=r.values(i);}let s=t.from?{...e,currentTable:t.from}:e;return r=bs(r,t.select,s),r}function RE(t,e,n){let r=n.updateTable(t.from);if(t.values){let i=t.values;Array.isArray(i)&&(i=i.length>0?i[0]:i);let o=sc(i,e,t.schema,t.from);r=r.set(o);}t.limit!==void 0||t.offset!==void 0?r=nm(r,t,e,n):r=Es(r,t.where??{},e,t.from,t.schema);let s=t.from?{...e,currentTable:t.from}:e;return r=bs(r,t.select,s),r}function CE(t,e,n){let r=n.deleteFrom(t.from);t.limit!==void 0||t.offset!==void 0?r=nm(r,t,e,n):r=Es(r,t.where??{},e,t.from,t.schema);let s=t.from?{...e,currentTable:t.from}:e;return r=bs(r,t.select,s),r}function nm(t,e,n,r){let i=n.introspection?.primary_keys.find(l=>l.table===e.from)?.columns??[],o=r.selectFrom(e.from),a=n.rowIdColumn;if(i.length>0)for(let l of i)o=o.select(l);else o=o.select(sql.ref(a).as("__rowid"));if(o=Es(o,e.where??{},n,e.from,e.schema),o=Vt(o,e.order,void 0,n,e.from),e.limit!==void 0&&(o=o.limit(e.limit)),e.offset!==void 0&&(o=o.offset(e.offset)),i.length===1)return t.where(i[0],"in",o);if(i.length>1){let l="__ltd_target",c=r.selectFrom(o.as(l)).select(sql`1`.as("_"));for(let u of i)c=c.whereRef(`${l}.${u}`,"=",`${e.from}.${u}`);return t.where(u=>u.exists(c))}else return t.where(sql.ref(a),"in",o)}function vE(t,e,n){let r=t.values,s=sc(r,e,t.schema,t.from,{applyDefaults:true}),i=n.insertInto(t.from).values(s);t.onConflict&&(i=i.onConflict(a=>{let l=t.onConflict.length===1?a.column(t.onConflict[0]):a.columns(t.onConflict);if(t.ignoreDuplicates)return l.doNothing();let c=Array.isArray(s)?s[0]:s,u=Object.keys(c).filter(f=>!t.onConflict.includes(f));return u.length===0?l.doUpdateSet({[t.onConflict[0]]:sql.ref(`excluded.${t.onConflict[0]}`)}):l.doUpdateSet(f=>{let p={};for(let d of u)p[d]=f.ref(`excluded.${d}`);return p})}));let o=t.from?{...e,currentTable:t.from}:e;return i=bs(i,t.select,o),i}function AE(t,e,n){let r=n.introspection?.functions;if(!r)return null;let s=t.schema??n.introspection?.default_schema??"public",i=Array.isArray(t.args)?Tn(t):Object.keys(t.args);if(Qt(r,{schema:s,fnName:e,providedNames:i}).length>0)return null;let o=r.filter(a=>a.schema===s&&a.name===e&&!a.has_variadic&&a.arg_types.length===1&&a.arg_names.length===0&&(a.arg_types[0]==="json"||a.arg_types[0]==="jsonb"));return o.length===1?o[0].arg_types[0]:null}function kE(t,e,n){let r=t.function;Pe(r,"RPC function name");let s=t.schema??e.introspection?.default_schema,i;r.includes(".")?s!==void 0?(Pe(s,"RPC schema"),i=`"${s}"."${r}"`):i=r:(i=s?`${s}.${r}`:r,Pe(i,"RPC function reference"));let o,l=e.dialect==="postgres"&&t.httpMethod==="POST"&&t.inputType!=="text"&&t.args!=null?AE(t,r,e):null;if(l)o=sql`${sql.raw(i)}(${xo(t.args)}::${sql.raw(l)})`;else if(t.args&&!Array.isArray(t.args)&&Object.keys(t.args).length>0){let f=Object.entries(t.args),p=null,d=null,g=null;if(e.dialect==="postgres"&&e.introspection?.functions){let y=f.map(([_])=>_),S=Qt(e.introspection.functions,{schema:t.schema??e.introspection?.default_schema??"public",fnName:r,providedNames:y});if(S.length===1){let _=S[0];p=new Map;for(let w=0;w<_.arg_names.length;w++)p.set(_.arg_names[w],_.arg_types[w]);if(_.has_variadic&&_.arg_names.length>0){d=_.arg_names[_.arg_names.length-1];let w=_.arg_types[_.arg_types.length-1];g=w.endsWith("[]")?w.slice(0,-2):w;}}}let m=t.httpMethod==="GET",h=f.map(([y,S])=>{if(Pe(y,"RPC param key"),p){let w=p.get(y);if(w){if(y===d&&g){_n(g,"RPC variadic elem type"),Pe(y,"RPC variadic param key");let x=Array.isArray(S)?S:[S];return sql`VARIADIC ${sql.raw(y)} := ${x}::${sql.raw(g+"[]")}`}if(Qd(w)){_n(w,"RPC arg type");let x=m&&Array.isArray(S)?S[S.length-1]:S,E=_s(w),T=E==="json"||E==="array"&&!Array.isArray(x)?xo(x):x;return sql`${sql.raw(y)} := ${T}::${sql.raw(w)}`}}}let _=m&&Array.isArray(S)?S[S.length-1]:S;return sql`${sql.raw(y)} := ${_}`});o=sql`${sql.raw(i)}(${sql.join(h)})`;}else if(Array.isArray(t.args)&&t.args.length>0){let f=null;if(e.dialect==="postgres"&&e.introspection?.functions){let d=e.introspection.functions,g=t.schema??e.introspection?.default_schema??"public",h=t.args.length,y=d.filter(S=>S.schema===g&&S.name===r&&S.arg_types.length===h);y.length===1&&(f=y[0].arg_types);}let p=t.args.map((d,g)=>{if(f){let m=f[g];if(m&&Qd(m)){_n(m,"RPC positional arg type");let h=_s(m),y=h==="json"||h==="array"&&!Array.isArray(d)?xo(d):d;return sql`${y}::${sql.raw(m)}`}}return sql`${d}`});o=sql`${sql.raw(i)}(${sql.join(p)})`;}else o=sql`${sql.raw(i)}()`;let c=!!t.join&&Object.keys(t.join).length>0;if(e.dialect==="postgres"&&c){let f=zd(e.introspection,{schema:t.schema??e.introspection?.default_schema??"public",fnName:r,providedNames:Tn(t),paramsType:t.paramsType,argCount:Array.isArray(t.args)?t.args.length:void 0,method:t.httpMethod,inputType:t.inputType});if(f)return em(n.selectFrom(o.as(f)),t,e,f)}let u=n.selectFrom(o.as(r));return u=go(u,t.select,e),u=Es(u,t.where??{},e,t.from,t.schema),u=Vt(u,t.order,void 0,e,t.from),t.limit!==void 0&&(u=u.limit(t.limit)),t.offset!==void 0&&(u=u.offset(t.offset)),u}var LE=new Kysely({dialect:{createAdapter:()=>new PostgresAdapter,createDriver:()=>new DummyDriver,createIntrospector:t=>new PostgresIntrospector(t),createQueryCompiler:()=>new PostgresQueryCompiler}}),FE={$ilike:(t,e,n)=>sql`${v(e)} ilike ${n}`,$regex:(t,e,n)=>sql`${v(e)} ~ ${n}`,$iregex:(t,e,n)=>sql`${v(e)} ~* ${n}`,$contains:(t,e,n)=>sql`${v(e)} @> ${n}`,$containedBy:(t,e,n)=>sql`${v(e)} <@ ${n}`,$overlaps:(t,e,n)=>sql`${v(e)} && ${n}`,$rangeLt:(t,e,n)=>sql`${v(e)} << ${n}`,$rangeGt:(t,e,n)=>sql`${v(e)} >> ${n}`,$rangeGte:(t,e,n)=>sql`${v(e)} &> ${n}`,$rangeLte:(t,e,n)=>sql`${v(e)} &< ${n}`,$rangeAdjacent:(t,e,n)=>sql`${v(e)} -|- ${n}`,$textSearch:(t,e,n)=>{let r=n,s=r.config||"english",i="to_tsquery";return r.type==="plain"?i="plainto_tsquery":r.type==="phrase"?i="phraseto_tsquery":r.type==="websearch"&&(i="websearch_to_tsquery"),sql`${v(e)} @@ ${sql.raw(i)}(${sql.literal(s)}, ${r.query})`},$eqAny:(t,e,n)=>sql`${v(e)} = any(${n})`,$neqAny:(t,e,n)=>sql`${v(e)} != any(${n})`,$gtAny:(t,e,n)=>sql`${v(e)} > any(${n})`,$gteAny:(t,e,n)=>sql`${v(e)} >= any(${n})`,$ltAny:(t,e,n)=>sql`${v(e)} < any(${n})`,$lteAny:(t,e,n)=>sql`${v(e)} <= any(${n})`,$likeAny:(t,e,n)=>sql`${v(e)} like any(${n})`,$ilikeAny:(t,e,n)=>sql`${v(e)} ilike any(${n})`,$eqAll:(t,e,n)=>sql`${v(e)} = all(${n})`,$neqAll:(t,e,n)=>sql`${v(e)} != all(${n})`,$gtAll:(t,e,n)=>sql`${v(e)} > all(${n})`,$gteAll:(t,e,n)=>sql`${v(e)} >= all(${n})`,$ltAll:(t,e,n)=>sql`${v(e)} < all(${n})`,$lteAll:(t,e,n)=>sql`${v(e)} <= all(${n})`,$likeAll:(t,e,n)=>sql`${v(e)} like all(${n})`,$ilikeAll:(t,e,n)=>sql`${v(e)} ilike all(${n})`,$regexAny:(t,e,n)=>sql`${v(e)} ~ any(${n})`,$iregexAny:(t,e,n)=>sql`${v(e)} ~* any(${n})`,$regexAll:(t,e,n)=>sql`${v(e)} ~ all(${n})`,$iregexAll:(t,e,n)=>sql`${v(e)} ~* all(${n})`};function ME(t,e){let n=e.replace(/^\$\./,"").split(".");if(n.length===0)return sql.ref(t);let r=n.map((s,i)=>{let o=i===n.length-1?"->>":"->",a=/^-?\d+$/.test(s);return a||Yn(s,"JSON path key"),a?`${o}${s}`:`${o}'${s}'`}).join("");return sql`${sql.ref(t)}${sql.raw(r)}`}function UE(t,e="value",n=false){let r=sql.ref(e);return sql`(select coalesce(json_agg(${r}), '[]'::json) from ${t} as _agg)`}var rm={db:LE,operators:{...ro,...FE},jsonArrayFrom:jsonArrayFrom$1,jsonObjectFrom:jsonObjectFrom$1,jsonScalarArrayFrom:UE,jsonPath:ME,rowIdColumn:"ctid"};var BE=/[.*+?[\]{}()|]/;function To(t){let e="";for(let n of t)n==="\\"||n==="*"||n==="?"||n==="["?e+=`[${n}]`:e+=n;return e}function sm(t){return t==="\\"||t==="*"||t==="?"||t==="["?`[${t}]`:t}function ic(t){let e="";for(let n=0;n<t.length;){let r=t[n];if(r==="\\"){if(n+1>=t.length){e+="[\\\\]",n+=1;continue}e+=sm(t[n+1]),n+=2;continue}if(r==="%"){e+="*",n+=1;continue}if(r==="_"){e+="?",n+=1;continue}e+=sm(r),n+=1;}return e}function Ro(t){return t?BE.test(t)?/^[A-Za-z0-9_\-\\%]+$/.test(t):true:false}function im(t){if(t.startsWith("^")&&t.endsWith("$")&&t.length>=2){let e=t.slice(1,-1);return Ro(e)?{mode:"exact",text:To(e)}:null}if(t.startsWith("^")){let e=t.slice(1);return Ro(e)?{mode:"prefix",text:To(e)}:null}if(t.endsWith("$")){let e=t.slice(0,-1);return Ro(e)?{mode:"suffix",text:To(e)}:null}return Ro(t)?{mode:"contains",text:To(t)}:null}function om(t,e){switch(t){case "exact":return e;case "prefix":return `${e}*`;case "suffix":return `*${e}`;case "contains":return `*${e}*`}}function am(t,e){switch(t){case "exact":return e;case "prefix":return `${e}%`;case "suffix":return `%${e}`;case "contains":return `%${e}%`}}var GE=new Kysely({dialect:{createAdapter:()=>new SqliteAdapter,createDriver:()=>new DummyDriver,createIntrospector:t=>new SqliteIntrospector(t),createQueryCompiler:()=>new SqliteQueryCompiler}});function QE(t,e){let n=e.replace(/^\$\./,"").split(".");if(n.length===0)return sql.ref(t);let r=n.map((s,i)=>{let o=i===n.length-1?"->>":"->",a=/^-?\d+$/.test(s);return a||Yn(s,"JSON path key"),a?`${o}${s}`:`${o}'${s}'`}).join("");return sql`${sql.ref(t)}${sql.raw(r)}`}function XE(t,e){let n=v(t);if(e.length===0)return sql`(${n} is not null)`;let r=sql.join(e.map(s=>sql`${s}`));return sql`(${n} is not null and (select count(distinct value) from json_each(${n}) where value in (${r})) = ${sql.lit(e.length)})`}function YE(t,e){let n=v(t),r=Object.keys(e);if(r.length===0)return sql`${n} is not null`;let s=r.map(i=>(Yn(i,"JSON object key"),sql`json_extract(${n}, ${sql.raw(`'$.${i}'`)}) = ${e[i]}`));return sql`(${n} is not null and ${sql.join(s,sql` and `)})`}var ZE=new Set(["a","an","and","are","as","at","be","by","for","from","in","is","it","of","on","or","that","the","to","was","with"]);function ex(t){let e=t.toLowerCase().replace(/'/g,"''");return e.endsWith("s")&&!e.endsWith("ss")&&e.length>3&&(e=e.slice(0,-1)),e.length===7?e.slice(0,4):e.length>6?e.slice(0,6):e}function lm(t,e,n){let r=ex(e);if(!r)return sql`1 = 1`;let i=n!=null&&n!=="english"&&n!=="simple"&&r.length>=5?`%'${r}%':%`:`%'${r}':%`;return sql`lower(${t}) like ${i}`}function tx(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch{return t}}function oc(t,e){let n=v(t),r=tx(e.query).trim();if(!r)return sql`1 = 1`;if(e.type==="websearch"){let o=r.split(/\s+or\s+/i).map(l=>l.trim()).filter(Boolean);if(o.length>1){let l=o.map(c=>oc(t,{...e,query:c,type:"plain",config:e.config}));return sql`(${sql.join(l,sql` or `)})`}let a=r.split(/\s+and\s+/i).map(l=>l.trim()).filter(Boolean);if(a.length>1){let l=a.map(c=>oc(t,{...e,query:c,type:"plain",config:e.config}));return sql`(${sql.join(l,sql` and `)})`}}if(r.includes("|")&&e.type!=="phrase"&&e.type!=="plain"){let o=r.split("|").map(a=>a.trim()).filter(Boolean);return o.length===0?sql`1 = 1`:sql`(${sql.join(o.map(a=>lm(n,a,e.config)),sql` or `)})`}let s=r.split(/\s+/).map(o=>o.trim()).filter(Boolean);if((e.type==="phrase"||e.type==="plain")&&(s=s.filter(o=>!ZE.has(o.toLowerCase()))),s.length===0)return sql`1 = 1`;let i=sql` and `;return sql`(${sql.join(s.map(o=>lm(n,o,e.config)),i)})`}function ac(t,e){return sql`${v(t)} GLOB ${e}`}function nx(t,e){let n=v(t);return sql`json(${n}) = json(${JSON.stringify(e)})`}function rx(t,e){let n=v(t);return Array.isArray(e)||e!==null&&typeof e=="object"?sql`json(${n}) is distinct from json(${JSON.stringify(e)})`:sql`${n} is distinct from ${e}`}function cm(t,e,n){if(typeof e!="string")throw new Error(`$${n?"iregex":"regex"} on sqlite requires a string value`);let r=im(e);if(!r)throw new Error(`Unsupported operator: $${n?"iregex":"regex"}`);if(n){let i=am(r.mode,r.text),o=v(t);return sql`lower(${o}) like lower(${i}) escape '\\'`}let s=om(r.mode,r.text);return ac(t,s)}function Co(t,e,n,r){if(!Array.isArray(e))throw new Error(`$${n}${r} on sqlite requires an array value`);if(e.length===0)return r==="any"?sql`false`:sql`true`;let s=v(t),i=e.map(o=>n==="ilike"?sql`lower(${s}) like lower(${o})`:ac(t,typeof o=="string"?ic(o):o));return sql`(${sql.join(i,r==="any"?sql` or `:sql` and `)})`}var sx={$eq:(t,e,n)=>Array.isArray(n)||n!==null&&typeof n=="object"?nx(e,n):sql`${v(e)} = ${n}`,$neq:(t,e,n)=>Array.isArray(n)||n!==null&&typeof n=="object"?sql`json(${v(e)}) != json(${JSON.stringify(n)})`:sql`${v(e)} != ${n}`,$textSearch:(t,e,n)=>oc(e,n),$like:(t,e,n)=>{if(typeof n!="string")throw new Error("$like on sqlite requires a string value");return ac(e,ic(n))},$regex:(t,e,n)=>cm(e,n,false),$iregex:(t,e,n)=>cm(e,n,true),$ilike:(t,e,n)=>sql`lower(${v(e)}) like lower(${n})`,$likeAny:(t,e,n)=>Co(e,n,"like","any"),$ilikeAny:(t,e,n)=>Co(e,n,"ilike","any"),$likeAll:(t,e,n)=>Co(e,n,"like","all"),$ilikeAll:(t,e,n)=>Co(e,n,"ilike","all"),$isDistinct:(t,e,n)=>rx(e,n),$contains:(t,e,n)=>{if(Array.isArray(n))return XE(e,n);if(n!==null&&typeof n=="object")return YE(e,n);throw new Error("$contains on sqlite requires an array or object value")},$containedBy:(t,e,n)=>{if(!Array.isArray(n))throw new Error("$containedBy on sqlite requires an array value");let r=v(e),s=n.length===0?sql`${r} is not null and not exists (select 1 from json_each(${r}))`:sql`${r} is not null and not exists (select 1 from json_each(${r}) where value not in (${sql.join(n.map(i=>sql`${i}`))}))`;return sql`(case when ${r} is null then null else (${s}) end)`},$overlaps:(t,e,n)=>{if(!Array.isArray(n))throw new Error("$overlaps on sqlite requires an array value");let r=v(e);if(n.length===0)return sql`1 = 0`;let s=sql.join(n.map(i=>sql`${i}`));return sql`(${r} is not null and exists (select 1 from json_each(${r}) where value in (${s})))`}};function ix(t,e="value",n=false){let r=sql.ref(e),s=n?sql`json_group_array(json(${r}))`:sql`json_group_array(${r})`;return sql`(select coalesce(${s}, json('[]')) from ${t} as _agg)`}var um={db:GE,operators:{...ro,...sx},jsonArrayFrom:jsonArrayFrom,jsonObjectFrom:jsonObjectFrom,jsonScalarArrayFrom:ix,jsonPath:QE,rowIdColumn:"rowid"};function ox(t){switch(t){case "postgres":return rm;case "sqlite":return um;default:throw new Error(`Unsupported dialect: ${t}`)}}function ne(t,e="postgres",n){let r=ox(e),s=n&&"introspection"in n?n:{db:n,introspection:void 0};return Zd(t,{...r,dialect:e,db:s.db??r.db,introspection:s.introspection,schema:s.schema})}var ru=Ua(cc());Rs();function R(t,e,n,r,s){let i=JSON.stringify({code:e,details:r,hint:s,message:n}),o=new TextEncoder().encode(i);return new Response(o,{status:t,headers:{"Content-Type":"application/json; charset=utf-8","Content-Length":String(o.byteLength)}})}function lt(t){return R(t.status,t.code,t.message,t.details??null,t.hint??null)}var Rn=new TextEncoder,Ct=new TextDecoder;function ko(...t){let e=t.reduce((s,{length:i})=>s+i,0),n=new Uint8Array(e),r=0;for(let s of t)n.set(s,r),r+=s.length;return n}function Yt(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);if(r>127)throw new TypeError("non-ASCII string encountered in encode()");e[n]=r;}return e}function Rm(t){if(Uint8Array.prototype.toBase64)return t.toBase64();let e=32768,n=[];for(let r=0;r<t.length;r+=e)n.push(String.fromCharCode.apply(null,t.subarray(r,r+e)));return btoa(n.join(""))}function Cm(t){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(t);let e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}function ir(t){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof t=="string"?t:Ct.decode(t),{alphabet:"base64url"});let e=t;e instanceof Uint8Array&&(e=Ct.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/");try{return Cm(e)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}}function $o(t){let e=t;return typeof e=="string"&&(e=Rn.encode(e)),Uint8Array.prototype.toBase64?e.toBase64({alphabet:"base64url",omitPadding:true}):Rm(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var At={};qr(At,{JOSEAlgNotAllowed:()=>Cs,JOSEError:()=>ye,JOSENotSupported:()=>Be,JWEDecryptionFailed:()=>hc,JWEInvalid:()=>gc,JWKInvalid:()=>yc,JWKSInvalid:()=>bc,JWKSMultipleMatchingKeys:()=>Sc,JWKSNoMatchingKey:()=>wc,JWKSTimeout:()=>_c,JWSInvalid:()=>Z,JWSSignatureVerificationFailed:()=>vs,JWTClaimValidationFailed:()=>De,JWTExpired:()=>or,JWTInvalid:()=>vt});var ye=class extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,n){super(e,n),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor);}},De=class extends ye{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,n,r="unspecified",s="unspecified"){super(e,{cause:{claim:r,reason:s,payload:n}}),this.claim=r,this.reason=s,this.payload=n;}},or=class extends ye{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,n,r="unspecified",s="unspecified"){super(e,{cause:{claim:r,reason:s,payload:n}}),this.claim=r,this.reason=s,this.payload=n;}},Cs=class extends ye{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},Be=class extends ye{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"},hc=class extends ye{static code="ERR_JWE_DECRYPTION_FAILED";code="ERR_JWE_DECRYPTION_FAILED";constructor(e="decryption operation failed",n){super(e,n);}},gc=class extends ye{static code="ERR_JWE_INVALID";code="ERR_JWE_INVALID"},Z=class extends ye{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},vt=class extends ye{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"},yc=class extends ye{static code="ERR_JWK_INVALID";code="ERR_JWK_INVALID"},bc=class extends ye{static code="ERR_JWKS_INVALID";code="ERR_JWKS_INVALID"},wc=class extends ye{static code="ERR_JWKS_NO_MATCHING_KEY";code="ERR_JWKS_NO_MATCHING_KEY";constructor(e="no applicable key found in the JSON Web Key Set",n){super(e,n);}},Sc=class extends ye{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",n){super(e,n);}},_c=class extends ye{static code="ERR_JWKS_TIMEOUT";code="ERR_JWKS_TIMEOUT";constructor(e="request timed out",n){super(e,n);}},vs=class extends ye{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",n){super(e,n);}};var ct=(t,e="algorithm.name")=>new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`),ar=(t,e)=>t.name===e;function Ec(t){return parseInt(t.name.slice(4),10)}function dx(t){switch(t){case "ES256":return "P-256";case "ES384":return "P-384";case "ES512":return "P-521";default:throw new Error("unreachable")}}function mx(t,e){if(e&&!t.usages.includes(e))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${e}.`)}function vm(t,e,n){switch(e){case "HS256":case "HS384":case "HS512":{if(!ar(t.algorithm,"HMAC"))throw ct("HMAC");let r=parseInt(e.slice(2),10);if(Ec(t.algorithm.hash)!==r)throw ct(`SHA-${r}`,"algorithm.hash");break}case "RS256":case "RS384":case "RS512":{if(!ar(t.algorithm,"RSASSA-PKCS1-v1_5"))throw ct("RSASSA-PKCS1-v1_5");let r=parseInt(e.slice(2),10);if(Ec(t.algorithm.hash)!==r)throw ct(`SHA-${r}`,"algorithm.hash");break}case "PS256":case "PS384":case "PS512":{if(!ar(t.algorithm,"RSA-PSS"))throw ct("RSA-PSS");let r=parseInt(e.slice(2),10);if(Ec(t.algorithm.hash)!==r)throw ct(`SHA-${r}`,"algorithm.hash");break}case "Ed25519":case "EdDSA":{if(!ar(t.algorithm,"Ed25519"))throw ct("Ed25519");break}case "ML-DSA-44":case "ML-DSA-65":case "ML-DSA-87":{if(!ar(t.algorithm,e))throw ct(e);break}case "ES256":case "ES384":case "ES512":{if(!ar(t.algorithm,"ECDSA"))throw ct("ECDSA");let r=dx(e);if(t.algorithm.namedCurve!==r)throw ct(r,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}mx(t,n);}function Am(t,e,...n){if(n=n.filter(Boolean),n.length>2){let r=n.pop();t+=`one of type ${n.join(", ")}, or ${r}.`;}else n.length===2?t+=`one of type ${n[0]} or ${n[1]}.`:t+=`of type ${n[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&e.constructor?.name&&(t+=` Received an instance of ${e.constructor.name}`),t}var km=(t,...e)=>Am("Key must be ",t,...e),xc=(t,e,...n)=>Am(`Key for the ${t} algorithm must be `,e,...n);var Tc=t=>{if(t?.[Symbol.toStringTag]==="CryptoKey")return true;try{return t instanceof CryptoKey}catch{return false}},Rc=t=>t?.[Symbol.toStringTag]==="KeyObject",Cc=t=>Tc(t)||Rc(t);function Oo(...t){let e=t.filter(Boolean);if(e.length===0||e.length===1)return true;let n;for(let r of e){let s=Object.keys(r);if(!n||n.size===0){n=new Set(s);continue}for(let i of s){if(n.has(i))return false;n.add(i);}}return true}var hx=t=>typeof t=="object"&&t!==null;function Zt(t){if(!hx(t)||Object.prototype.toString.call(t)!=="[object Object]")return false;if(Object.getPrototypeOf(t)===null)return true;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Po(t,e){if(t.startsWith("RS")||t.startsWith("PS")){let{modulusLength:n}=e.algorithm;if(typeof n!="number"||n<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}}function gx(t){let e,n;switch(t.kty){case "AKP":{switch(t.alg){case "ML-DSA-44":case "ML-DSA-65":case "ML-DSA-87":e={name:t.alg},n=t.priv?["sign"]:["verify"];break;default:throw new Be('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case "RSA":{switch(t.alg){case "PS256":case "PS384":case "PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case "RS256":case "RS384":case "RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case "RSA-OAEP":case "RSA-OAEP-256":case "RSA-OAEP-384":case "RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},n=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new Be('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case "EC":{switch(t.alg){case "ES256":e={name:"ECDSA",namedCurve:"P-256"},n=t.d?["sign"]:["verify"];break;case "ES384":e={name:"ECDSA",namedCurve:"P-384"},n=t.d?["sign"]:["verify"];break;case "ES512":e={name:"ECDSA",namedCurve:"P-521"},n=t.d?["sign"]:["verify"];break;case "ECDH-ES":case "ECDH-ES+A128KW":case "ECDH-ES+A192KW":case "ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},n=t.d?["deriveBits"]:[];break;default:throw new Be('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case "OKP":{switch(t.alg){case "Ed25519":case "EdDSA":e={name:"Ed25519"},n=t.d?["sign"]:["verify"];break;case "ECDH-ES":case "ECDH-ES+A128KW":case "ECDH-ES+A192KW":case "ECDH-ES+A256KW":e={name:t.crv},n=t.d?["deriveBits"]:[];break;default:throw new Be('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new Be('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return {algorithm:e,keyUsages:n}}async function $m(t){if(!t.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');let{algorithm:e,keyUsages:n}=gx(t),r={...t};return r.kty!=="AKP"&&delete r.alg,delete r.use,crypto.subtle.importKey("jwk",r,e,t.ext??!(t.d||t.priv),t.key_ops??n)}function No(t,e,n,r,s){if(s.crit!==void 0&&r?.crit===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||r.crit===void 0)return new Set;if(!Array.isArray(r.crit)||r.crit.length===0||r.crit.some(o=>typeof o!="string"||o.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let i;n!==void 0?i=new Map([...Object.entries(n),...e.entries()]):i=e;for(let o of r.crit){if(!i.has(o))throw new Be(`Extension Header Parameter "${o}" is not recognized`);if(s[o]===void 0)throw new t(`Extension Header Parameter "${o}" is missing`);if(i.get(o)&&r[o]===void 0)throw new t(`Extension Header Parameter "${o}" MUST be integrity protected`)}return new Set(r.crit)}function Om(t,e){if(e!==void 0&&(!Array.isArray(e)||e.some(n=>typeof n!="string")))throw new TypeError(`"${t}" option must be an array of strings`);if(e)return new Set(e)}var As=t=>Zt(t)&&typeof t.kty=="string",Pm=t=>t.kty!=="oct"&&(t.kty==="AKP"&&typeof t.priv=="string"||typeof t.d=="string"),Nm=t=>t.kty!=="oct"&&t.d===void 0&&t.priv===void 0,Im=t=>t.kty==="oct"&&typeof t.k=="string";var lr,Dm=async(t,e,n,r=false)=>{lr||=new WeakMap;let s=lr.get(t);if(s?.[n])return s[n];let i=await $m({...e,alg:n});return r&&Object.freeze(t),s?s[n]=i:lr.set(t,{[n]:i}),i},bx=(t,e)=>{lr||=new WeakMap;let n=lr.get(t);if(n?.[e])return n[e];let r=t.type==="public",s=!!r,i;if(t.asymmetricKeyType==="x25519"){switch(e){case "ECDH-ES":case "ECDH-ES+A128KW":case "ECDH-ES+A192KW":case "ECDH-ES+A256KW":break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}i=t.toCryptoKey(t.asymmetricKeyType,s,r?[]:["deriveBits"]);}if(t.asymmetricKeyType==="ed25519"){if(e!=="EdDSA"&&e!=="Ed25519")throw new TypeError("given KeyObject instance cannot be used for this algorithm");i=t.toCryptoKey(t.asymmetricKeyType,s,[r?"verify":"sign"]);}switch(t.asymmetricKeyType){case "ml-dsa-44":case "ml-dsa-65":case "ml-dsa-87":{if(e!==t.asymmetricKeyType.toUpperCase())throw new TypeError("given KeyObject instance cannot be used for this algorithm");i=t.toCryptoKey(t.asymmetricKeyType,s,[r?"verify":"sign"]);}}if(t.asymmetricKeyType==="rsa"){let o;switch(e){case "RSA-OAEP":o="SHA-1";break;case "RS256":case "PS256":case "RSA-OAEP-256":o="SHA-256";break;case "RS384":case "PS384":case "RSA-OAEP-384":o="SHA-384";break;case "RS512":case "PS512":case "RSA-OAEP-512":o="SHA-512";break;default:throw new TypeError("given KeyObject instance cannot be used for this algorithm")}if(e.startsWith("RSA-OAEP"))return t.toCryptoKey({name:"RSA-OAEP",hash:o},s,r?["encrypt"]:["decrypt"]);i=t.toCryptoKey({name:e.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:o},s,[r?"verify":"sign"]);}if(t.asymmetricKeyType==="ec"){let a=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(t.asymmetricKeyDetails?.namedCurve);if(!a)throw new TypeError("given KeyObject instance cannot be used for this algorithm");e==="ES256"&&a==="P-256"&&(i=t.toCryptoKey({name:"ECDSA",namedCurve:a},s,[r?"verify":"sign"])),e==="ES384"&&a==="P-384"&&(i=t.toCryptoKey({name:"ECDSA",namedCurve:a},s,[r?"verify":"sign"])),e==="ES512"&&a==="P-521"&&(i=t.toCryptoKey({name:"ECDSA",namedCurve:a},s,[r?"verify":"sign"])),e.startsWith("ECDH-ES")&&(i=t.toCryptoKey({name:"ECDH",namedCurve:a},s,r?[]:["deriveBits"]));}if(!i)throw new TypeError("given KeyObject instance cannot be used for this algorithm");return n?n[e]=i:lr.set(t,{[e]:i}),i};async function Io(t,e){if(t instanceof Uint8Array||Tc(t))return t;if(Rc(t)){if(t.type==="secret")return t.export();if("toCryptoKey"in t&&typeof t.toCryptoKey=="function")try{return bx(t,e)}catch(r){if(r instanceof TypeError)throw r}let n=t.export({format:"jwk"});return Dm(t,n,e)}if(As(t))return t.k?ir(t.k):Dm(t,t,e,true);throw new Error("unreachable")}var cr=t=>t?.[Symbol.toStringTag],vc=(t,e,n)=>{if(e.use!==void 0){let r;switch(n){case "sign":case "verify":r="sig";break;case "encrypt":case "decrypt":r="enc";break}if(e.use!==r)throw new TypeError(`Invalid key for this operation, its "use" must be "${r}" when present`)}if(e.alg!==void 0&&e.alg!==t)throw new TypeError(`Invalid key for this operation, its "alg" must be "${t}" when present`);if(Array.isArray(e.key_ops)){let r;switch(true){case(n==="sign"||n==="verify"):case t==="dir":case t.includes("CBC-HS"):r=n;break;case t.startsWith("PBES2"):r="deriveBits";break;case /^A\d{3}(?:GCM)?(?:KW)?$/.test(t):!t.includes("GCM")&&t.endsWith("KW")?r=n==="encrypt"?"wrapKey":"unwrapKey":r=n;break;case(n==="encrypt"&&t.startsWith("RSA")):r="wrapKey";break;case n==="decrypt":r=t.startsWith("RSA")?"unwrapKey":"deriveBits";break}if(r&&e.key_ops?.includes?.(r)===false)throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${r}" when present`)}return true},wx=(t,e,n)=>{if(!(e instanceof Uint8Array)){if(As(e)){if(Im(e)&&vc(t,e,n))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!Cc(e))throw new TypeError(xc(t,e,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if(e.type!=="secret")throw new TypeError(`${cr(e)} instances for symmetric algorithms must be of type "secret"`)}},Sx=(t,e,n)=>{if(As(e))switch(n){case "decrypt":case "sign":if(Pm(e)&&vc(t,e,n))return;throw new TypeError("JSON Web Key for this operation must be a private JWK");case "encrypt":case "verify":if(Nm(e)&&vc(t,e,n))return;throw new TypeError("JSON Web Key for this operation must be a public JWK")}if(!Cc(e))throw new TypeError(xc(t,e,"CryptoKey","KeyObject","JSON Web Key"));if(e.type==="secret")throw new TypeError(`${cr(e)} instances for asymmetric algorithms must not be of type "secret"`);if(e.type==="public")switch(n){case "sign":throw new TypeError(`${cr(e)} instances for asymmetric algorithm signing must be of type "private"`);case "decrypt":throw new TypeError(`${cr(e)} instances for asymmetric algorithm decryption must be of type "private"`)}if(e.type==="private")switch(n){case "verify":throw new TypeError(`${cr(e)} instances for asymmetric algorithm verifying must be of type "public"`);case "encrypt":throw new TypeError(`${cr(e)} instances for asymmetric algorithm encryption must be of type "public"`)}};function Do(t,e,n){switch(t.substring(0,2)){case "A1":case "A2":case "di":case "HS":case "PB":wx(t,e,n);break;default:Sx(t,e,n);}}function jo(t,e){let n=`SHA-${t.slice(-3)}`;switch(t){case "HS256":case "HS384":case "HS512":return {hash:n,name:"HMAC"};case "PS256":case "PS384":case "PS512":return {hash:n,name:"RSA-PSS",saltLength:parseInt(t.slice(-3),10)>>3};case "RS256":case "RS384":case "RS512":return {hash:n,name:"RSASSA-PKCS1-v1_5"};case "ES256":case "ES384":case "ES512":return {hash:n,name:"ECDSA",namedCurve:e.namedCurve};case "Ed25519":case "EdDSA":return {name:"Ed25519"};case "ML-DSA-44":case "ML-DSA-65":case "ML-DSA-87":return {name:t};default:throw new Be(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}async function Lo(t,e,n){if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(km(e,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",e,{hash:`SHA-${t.slice(-3)}`,name:"HMAC"},false,[n])}return vm(e,t,n),e}async function jm(t,e,n,r){let s=await Lo(t,e,"verify");Po(t,s);let i=jo(t,s.algorithm);try{return await crypto.subtle.verify(i,s,n,r)}catch{return false}}async function Lm(t,e,n){if(!Zt(t))throw new Z("Flattened JWS must be an object");if(t.protected===void 0&&t.header===void 0)throw new Z('Flattened JWS must have either of the "protected" or "header" members');if(t.protected!==void 0&&typeof t.protected!="string")throw new Z("JWS Protected Header incorrect type");if(t.payload===void 0)throw new Z("JWS Payload missing");if(typeof t.signature!="string")throw new Z("JWS Signature missing or incorrect type");if(t.header!==void 0&&!Zt(t.header))throw new Z("JWS Unprotected Header incorrect type");let r={};if(t.protected)try{let h=ir(t.protected);r=JSON.parse(Ct.decode(h));}catch{throw new Z("JWS Protected Header is invalid")}if(!Oo(r,t.header))throw new Z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let s={...r,...t.header},i=No(Z,new Map([["b64",true]]),n?.crit,r,s),o=true;if(i.has("b64")&&(o=r.b64,typeof o!="boolean"))throw new Z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:a}=s;if(typeof a!="string"||!a)throw new Z('JWS "alg" (Algorithm) Header Parameter missing or invalid');let l=n&&Om("algorithms",n.algorithms);if(l&&!l.has(a))throw new Cs('"alg" (Algorithm) Header Parameter value not allowed');if(o){if(typeof t.payload!="string")throw new Z("JWS Payload must be a string")}else if(typeof t.payload!="string"&&!(t.payload instanceof Uint8Array))throw new Z("JWS Payload must be a string or an Uint8Array instance");let c=false;typeof e=="function"&&(e=await e(r,t),c=true),Do(a,e,"verify");let u=ko(t.protected!==void 0?Yt(t.protected):new Uint8Array,Yt("."),typeof t.payload=="string"?o?Yt(t.payload):Rn.encode(t.payload):t.payload),f;try{f=ir(t.signature);}catch{throw new Z("Failed to base64url decode the signature")}let p=await Io(e,a);if(!await jm(a,p,f,u))throw new vs;let g;if(o)try{g=ir(t.payload);}catch{throw new Z("Failed to base64url decode the payload")}else typeof t.payload=="string"?g=Rn.encode(t.payload):g=t.payload;let m={payload:g};return t.protected!==void 0&&(m.protectedHeader=r),t.header!==void 0&&(m.unprotectedHeader=t.header),c?{...m,key:p}:m}async function Fm(t,e,n){if(t instanceof Uint8Array&&(t=Ct.decode(t)),typeof t!="string")throw new Z("Compact JWS must be a string or Uint8Array");let{0:r,1:s,2:i,length:o}=t.split(".");if(o!==3)throw new Z("Invalid Compact JWS");let a=await Lm({payload:s,protected:r,signature:i},e,n),l={payload:a.payload,protectedHeader:a.protectedHeader};return typeof e=="function"?{...l,key:a.key}:l}var en=t=>Math.floor(t.getTime()/1e3),Um=60,Bm=Um*60,Ac=Bm*24,_x=Ac*7,Ex=Ac*365.25,xx=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;function ks(t){let e=xx.exec(t);if(!e||e[4]&&e[1])throw new TypeError("Invalid time period format");let n=parseFloat(e[2]),r=e[3].toLowerCase(),s;switch(r){case "sec":case "secs":case "second":case "seconds":case "s":s=Math.round(n);break;case "minute":case "minutes":case "min":case "mins":case "m":s=Math.round(n*Um);break;case "hour":case "hours":case "hr":case "hrs":case "h":s=Math.round(n*Bm);break;case "day":case "days":case "d":s=Math.round(n*Ac);break;case "week":case "weeks":case "w":s=Math.round(n*_x);break;default:s=Math.round(n*Ex);break}return e[1]==="-"||e[4]==="ago"?-s:s}function Cn(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}var Mm=t=>t.includes("/")?t.toLowerCase():`application/${t.toLowerCase()}`,Tx=(t,e)=>typeof t=="string"?e.includes(t):Array.isArray(t)?e.some(Set.prototype.has.bind(new Set(t))):false;function qm(t,e,n={}){let r;try{r=JSON.parse(Ct.decode(e));}catch{}if(!Zt(r))throw new vt("JWT Claims Set must be a top-level JSON object");let{typ:s}=n;if(s&&(typeof t.typ!="string"||Mm(t.typ)!==Mm(s)))throw new De('unexpected "typ" JWT header value',r,"typ","check_failed");let{requiredClaims:i=[],issuer:o,subject:a,audience:l,maxTokenAge:c}=n,u=[...i];c!==void 0&&u.push("iat"),l!==void 0&&u.push("aud"),a!==void 0&&u.push("sub"),o!==void 0&&u.push("iss");for(let g of new Set(u.reverse()))if(!(g in r))throw new De(`missing required "${g}" claim`,r,g,"missing");if(o&&!(Array.isArray(o)?o:[o]).includes(r.iss))throw new De('unexpected "iss" claim value',r,"iss","check_failed");if(a&&r.sub!==a)throw new De('unexpected "sub" claim value',r,"sub","check_failed");if(l&&!Tx(r.aud,typeof l=="string"?[l]:l))throw new De('unexpected "aud" claim value',r,"aud","check_failed");let f;switch(typeof n.clockTolerance){case "string":f=ks(n.clockTolerance);break;case "number":f=n.clockTolerance;break;case "undefined":f=0;break;default:throw new TypeError("Invalid clockTolerance option type")}let{currentDate:p}=n,d=en(p||new Date);if((r.iat!==void 0||c)&&typeof r.iat!="number")throw new De('"iat" claim must be a number',r,"iat","invalid");if(r.nbf!==void 0){if(typeof r.nbf!="number")throw new De('"nbf" claim must be a number',r,"nbf","invalid");if(r.nbf>d+f)throw new De('"nbf" claim timestamp check failed',r,"nbf","check_failed")}if(r.exp!==void 0){if(typeof r.exp!="number")throw new De('"exp" claim must be a number',r,"exp","invalid");if(r.exp<=d-f)throw new or('"exp" claim timestamp check failed',r,"exp","check_failed")}if(c){let g=d-r.iat,m=typeof c=="number"?c:ks(c);if(g-f>m)throw new or('"iat" claim timestamp check failed (too far in the past)',r,"iat","check_failed");if(g<0-f)throw new De('"iat" claim timestamp check failed (it should be in the past)',r,"iat","check_failed")}return r}var Fo=class{#e;constructor(e){if(!Zt(e))throw new TypeError("JWT Claims Set MUST be an object");this.#e=structuredClone(e);}data(){return Rn.encode(JSON.stringify(this.#e))}get iss(){return this.#e.iss}set iss(e){this.#e.iss=e;}get sub(){return this.#e.sub}set sub(e){this.#e.sub=e;}get aud(){return this.#e.aud}set aud(e){this.#e.aud=e;}set jti(e){this.#e.jti=e;}set nbf(e){typeof e=="number"?this.#e.nbf=Cn("setNotBefore",e):e instanceof Date?this.#e.nbf=Cn("setNotBefore",en(e)):this.#e.nbf=en(new Date)+ks(e);}set exp(e){typeof e=="number"?this.#e.exp=Cn("setExpirationTime",e):e instanceof Date?this.#e.exp=Cn("setExpirationTime",en(e)):this.#e.exp=en(new Date)+ks(e);}set iat(e){e===void 0?this.#e.iat=en(new Date):e instanceof Date?this.#e.iat=Cn("setIssuedAt",en(e)):typeof e=="string"?this.#e.iat=Cn("setIssuedAt",en(new Date)+ks(e)):this.#e.iat=Cn("setIssuedAt",e);}};async function vn(t,e,n){let r=await Fm(t,e,n);if(r.protectedHeader.crit?.includes("b64")&&r.protectedHeader.b64===false)throw new vt("JWTs MUST NOT use unencoded payload");let i={payload:qm(r.protectedHeader,r.payload,n),protectedHeader:r.protectedHeader};return typeof e=="function"?{...i,key:r.key}:i}async function Hm(t,e,n){let r=await Lo(t,e,"sign");Po(t,r);let s=await crypto.subtle.sign(jo(t,r.algorithm),r,n);return new Uint8Array(s)}var Mo=class{#e;#t;#n;constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this.#e=e;}setProtectedHeader(e){if(this.#t)throw new TypeError("setProtectedHeader can only be called once");return this.#t=e,this}setUnprotectedHeader(e){if(this.#n)throw new TypeError("setUnprotectedHeader can only be called once");return this.#n=e,this}async sign(e,n){if(!this.#t&&!this.#n)throw new Z("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Oo(this.#t,this.#n))throw new Z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let r={...this.#t,...this.#n},s=No(Z,new Map([["b64",true]]),n?.crit,this.#t,r),i=true;if(s.has("b64")&&(i=this.#t.b64,typeof i!="boolean"))throw new Z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:o}=r;if(typeof o!="string"||!o)throw new Z('JWS "alg" (Algorithm) Header Parameter missing or invalid');Do(o,e,"sign");let a,l;i?(a=$o(this.#e),l=Yt(a)):(l=this.#e,a="");let c,u;this.#t?(c=$o(JSON.stringify(this.#t)),u=Yt(c)):(c="",u=new Uint8Array);let f=ko(u,Yt("."),l),p=await Io(e,o),d=await Hm(o,p,f),g={signature:$o(d),payload:a};return this.#n&&(g.header=this.#n),this.#t&&(g.protected=c),g}};var Uo=class{#e;constructor(e){this.#e=new Mo(e);}setProtectedHeader(e){return this.#e.setProtectedHeader(e),this}async sign(e,n){let r=await this.#e.sign(e,n);if(r.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return `${r.protected}.${r.payload}.${r.signature}`}};var An=class{#e;#t;constructor(e={}){this.#t=new Fo(e);}setIssuer(e){return this.#t.iss=e,this}setSubject(e){return this.#t.sub=e,this}setAudience(e){return this.#t.aud=e,this}setJti(e){return this.#t.jti=e,this}setNotBefore(e){return this.#t.nbf=e,this}setExpirationTime(e){return this.#t.exp=e,this}setIssuedAt(e){return this.#t.iat=e,this}setProtectedHeader(e){return this.#e=e,this}async sign(e,n){let r=new Uo(this.#t.data());if(r.setProtectedHeader(this.#e),Array.isArray(this.#e?.crit)&&this.#e.crit.includes("b64")&&this.#e.b64===false)throw new vt("JWTs MUST NOT use unencoded payload");return r.sign(e,n)}};async function Wm(t,e){if(!t||!t.startsWith("Bearer "))return e.anonymousEnabled?{kind:"ok",payload:null}:{kind:"error",response:lt({status:401,code:"PGRST302",message:"Anonymous access is disabled"})};let n=t.slice(7).trim(),r=n.split(".");if(r.length!==3||r.some(s=>s.length===0))return e.anonymousEnabled?{kind:"ok",payload:null}:{kind:"error",response:lt({status:401,code:"PGRST301",message:`Expected 3 parts in JWT; got ${Math.max(1,r.filter(s=>s.length>0).length)}`})};if(!e.jwtSecret)return {kind:"error",response:lt({status:500,code:"PGRST300",message:"Server lacks JWT secret"})};try{let s=new TextEncoder().encode(e.jwtSecret),{payload:i}=await vn(n,s,{algorithms:["HS256"]});return typeof i.iat=="number"&&i.iat>Math.floor(Date.now()/1e3)?{kind:"error",response:lt({status:401,code:"PGRST303",message:"JWT issued at future"})}:{kind:"ok",payload:i}}catch(s){return s instanceof At.JWTExpired?{kind:"error",response:lt({status:401,code:"PGRST303",message:"JWT expired"})}:{kind:"error",response:lt({status:401,code:"PGRST301",message:"No suitable key or wrong key type",details:"None of the keys was able to decode the JWT"})}}}Jc();function Vx(t,e,n,r){if(n){let i=t.get(`${n}.${e}`);if(i)return i}let s=t.get(`${r}.${e}`);if(s)return s;for(let[i,o]of t)if(i.endsWith(`.${e}`))return o}function Gx(t,e){let n=t.schema||"public",r=Dl(t,e);return {schema:n,table:t.table,column:t.name,pgTypeName:r,nullable:t.nullable,defaultValue:t.default_value??null,isPrimaryKey:t.is_primary_key,isUnique:false,isSerial:!!t.is_identity,isGenerated:t.is_generated}}function Xm(t,e){let n=Gx(t,e);return Me(n.pgTypeName)?Xp(n)??ut(n):ut(n)}function Qx(t,e="sqlite"){let n=new Map;for(let r of t.columns){let s=r.schema||"public",i=`${s}.${r.table}`,o=n.get(i);o||(o=new tn(r.table,s),n.set(i,o)),o.set(r.name,Xm(r,t));}return n}function Xx(t,e){for(let n of e.columns){if(!Me(Dl(n,e)))continue;let r=n.schema||"public",s=`${r}.${n.table}`,i=t.get(s);i||(i=new tn(n.table,r),t.set(s,i)),i.set(n.name,Xm(n,e));}return t}function Ym(t,e,n){if(n==="sqlite")return Qx(e,n);if(n==="postgres"||n==="pglite"){let r=t&&t.size>0?t:new Map;return Xx(new Map(r),e)}return t&&t.size>0?t:new Map}function Zm(t,e){let n=t.config?.translation?.schemas;return e.schema??n?.defaultSchema??"public"}function eh(t,e,n,r){return !n||!e?.from?t:t.map(s=>zc(s,e.select,e.from,e.schema,e.join,n,r))}function zc(t,e,n,r,s,i,o){let a=Vx(i,n,r,o),l=Zx(e,s),c={};for(let[u,f]of Object.entries(t)){let p=l.get(u);if(p&&"embed"in p){let m=p.embed;c[u]=Yx(f,m,r,i,o);continue}let d=p?.sourceColumn??u,g=a?.get(d);c[u]=g?.isShimBacked?g.deserialize(f):f;}return c}function Yx(t,e,n,r,s){return Array.isArray(t)?t.map(i=>i&&typeof i=="object"?zc(i,e.select,e.table,n,e.join,r,s):i):t&&typeof t=="object"?zc(t,e.select,e.table,n,e.join,r,s):t}function Zx(t,e){let n=new Map;if(!t)return n;for(let r of t){if(typeof r=="string"){if(r==="*")continue;n.set(r,{sourceColumn:r});continue}if(!(!r||typeof r!="object"))for(let[s,i]of Object.entries(r))if(eT(i)){let o=e?.[s]?.from??s;n.set(s,{embed:{table:o,select:i.select,join:i.join}});}else {let o=i;if(o.cast||o.path||o.aggregate)continue;n.set(s,{sourceColumn:o.column??s});}}return n}function eT(t){return t!=null&&typeof t=="object"&&("select"in t||"where"in t||"order"in t||"limit"in t||"offset"in t||"spread"in t||"join"in t)}var fr=class extends Error{constructor(n,r){super(`Could not find the table '${[n,r].filter(Boolean).join(".")}' in the schema cache`);this.schema=n;this.relation=r;}},Vc=class{constructor(e){this.config=e;}kysely;introspection;async translateDdl(e){return e}async clearSchemaCache(){this.introspection=void 0,await this.deleteCachedIntrospection();}async readCachedIntrospection(e){if(typeof this.introspection=="object"&&e?.useCache===true)return this.introspection;if(e?.useCache!==true||!this.config.schemaCache)return;let n=await this.config.schemaCache?.get(this.schemaCacheKey());if(n)try{return this.introspection=JSON.parse(n),this.introspection}catch{await this.deleteCachedIntrospection();return}}async writeCachedIntrospection(e,n){this.introspection=e,n?.useDriver===true&&await this.config.schemaCache?.set(this.schemaCacheKey(),JSON.stringify(e));}async deleteCachedIntrospection(){await this.config.schemaCache?.delete(this.schemaCacheKey());}schemaCacheKey(){return ["@supabase/lite","schema-cache",this.dialect,this.config.introspection?.name??"",this.config.url??""].join(":")}async exec(e,...n){try{return sql(e,...n??[]).execute(this.kysely)}catch(r){throw console.error(r),new Error(`Failed to execute query: ${e}`)}}async ping(){try{let e=await this.exec("SELECT 1");return e&&Array.isArray(e.rows)&&e.rows.length===1}catch{return false}}async transaction(e,n){throw new Error("This Connection does not support transactions")}createMigrator(e){throw new Error("This Connection does not support migrations")}async onPostgrestAST(e,n){return e}deserializeRow(e){return e}normalizeDbError(e){return e}async withContext(e,n,r){return n(this.kysely)}get supportsRpc(){return false}async viewOptionsMetadata(e,n){return null}};function kt(t){return JSON.stringify(t,(e,n)=>typeof n=="bigint"?Number.parseInt(n.toString(),10):n)}var th=/application\/vnd\.pgrst\.plan(?:\+(json|text))?/i;function nh(t){let e=t.match(th);if(!e)return null;let n=e[1]?.toLowerCase()==="json"?"json":"text",r=t.match(/;\s*options=([^;]+)/i),s=r?`; options=${r[1].trim()}`:"";return {format:n,optionsSegment:s}}function rh(t){return th.test(t)}function sh(t){return /;\s*nulls\s*=\s*stripped/i.test(t)}function $n(t){if(Array.isArray(t))return t.map(e=>$n(e));if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==null&&(e[n]=$n(r));return e}return t}function Ho(t,e){if(!e||e.length===0)return t;let n=(r,s)=>{for(let i of e){if(i.embed)continue;let o=r[i.column],a=s[i.column],l=o==null,c=a==null;if(l&&c)continue;if(l)return i.nullsFirst?-1:1;if(c)return i.nullsFirst?1:-1;let u;if(typeof o=="number"&&typeof a=="number"?u=o-a:u=String(o).localeCompare(String(a)),u!==0)return i.direction==="desc"?-u:u}return 0};return [...t].sort(n)}function nT(t,e){return !e||e.length===0?t:t.map(n=>Zc(n,e))}function ih(t,e,n){if(!e||e.length===0||t.length===0)return t;let r=nT(t,e);return r=sT(r,e),r=iT(r,e),r=oT(r,e),n==="sqlite"&&(r=aT(r,e),r=rT(r,e)),r}function rT(t,e){if(!e||e.length===0)return t;let n=lT(e);return n.size===0?t:t.map(r=>{if(!dr(r))return r;let s={...r};for(let i of n){let o=s[i];o!==null&&typeof o=="object"&&(s[i]=JSON.stringify(o));}return s})}function sT(t,e){return !e||e.length===0?t:t.map(n=>Qc(n,e))}function iT(t,e){return !e||e.length===0?t:t.map(n=>Xc(n,e))}function oT(t,e){return !e||e.length===0?t:t.map(n=>Yc(n,e))}function aT(t,e){return !e||e.length===0?t:t.map(n=>Gc(n,e))}function lT(t){let e=new Set;for(let n of t){if(typeof n=="string")continue;let[r,s]=Object.entries(n)[0]??[];if(!r||!s)continue;let i=s;i.path&&i.pathText&&!oh(i.cast)&&e.add(r);}return e}function oh(t){let e=t?.trim().toLowerCase();return e==="json"||e==="jsonb"}function cT(t){let e=t?.trim().toLowerCase();return e==="integer"||e==="int"||e==="int2"||e==="int4"||e==="int8"||e==="bigint"||e==="smallint"}function Gc(t,e){if(Array.isArray(t))return t.map(r=>Gc(r,e));if(!dr(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(Hs(i)){s in n&&i.select&&(n[s]=Gc(n[s],i.select));continue}let o=i;if(!o.path||o.pathText!==true||!cT(o.cast)||!(s in n))continue;let a=n[s];if(a==null)continue;let l=String(a);if(!/^-?\d+$/.test(l))throw new Vn(l);n[s]=Number.parseInt(l,10);}return n}function Zc(t,e){if(Array.isArray(t))return t.map(r=>Zc(r,e));if(!dr(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];!s||!i||!Hs(i)||s in n&&(n[s]=fT(n[s],i.select));}return n}function Qc(t,e){if(Array.isArray(t))return t.map(r=>Qc(r,e));if(!dr(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(Hs(i)){s in n&&i.select&&(n[s]=Qc(n[s],i.select));continue}let o=i;o.aggregate==="avg"&&o.cast!=="text"&&s in n&&(n[s]=uT(n[s]));}return n}function Xc(t,e){if(Array.isArray(t))return t.map(r=>Xc(r,e));if(!dr(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(Hs(i)){s in n&&i.select&&(n[s]=Xc(n[s],i.select));continue}oh(i.cast)&&s in n&&(n[s]=ah(n[s]));}return n}function Yc(t,e){if(Array.isArray(t))return t.map(r=>Yc(r,e));if(!dr(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(Hs(i)){s in n&&i.select&&(n[s]=Yc(n[s],i.select));continue}let o=i;o.path&&!o.pathText&&s in n&&(n[s]=ah(n[s]));}return n}function uT(t){if(typeof t!="string")return t;let e=t.trim();if(!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i.test(e))return t;let n=Number(e);return !Number.isFinite(n)||e.replace(/^[+-]/,"").replace(/e[+-]?\d+$/i,"").replace(".","").replace(/^0+/,"").replace(/0+$/,"").length>15?t:n}function fT(t,e){let n=pT(t);return !e||e.length===0?n:Zc(n,e)}function pT(t){if(typeof t!="string")return t;let e=t[0];if(e!=="["&&e!=="{")return t;try{return JSON.parse(t)}catch{return t}}function ah(t){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}function dr(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Hs(t){return t!==null&&typeof t=="object"&&("select"in t||"spread"in t||"join"in t)}var dT=new Set(["*/*","application/*","application/json","application/vnd.pgrst.object","application/vnd.pgrst.object+json","application/vnd.pgrst.array","application/vnd.pgrst.array+json","application/octet-stream","text/csv"]);function lh(t){let e=nh(t);return e?`application/vnd.pgrst.plan+${e.format}; for="application/json"${e.optionsSegment}`:t}function ch(t,e){let n=t.split(",").map(r=>r.split(";")[0].trim().toLowerCase()).filter(Boolean);if(n.length===0)return true;for(let r of n)if(dT.has(r)||e&&r.startsWith("application/vnd.pgrst.plan"))return true;return false}function uh(t,e){let n=nh(t)??{format:"text",optionsSegment:""},r=`application/vnd.pgrst.plan+${n.format}; for="application/json"${n.optionsSegment}; charset=utf-8`,s=n.format==="json"?kt({sql:e.sql,parameters:[...e.parameters]}):e.sql;return new Response(s,{status:200,headers:{"Content-Type":r}})}function ft(t,e,n){let r=t+e-1,s=n!==void 0?`${n}`:"*";return `${t}-${r}/${s}`}function fh(t,e){let n=e.startsWith("?")?e.slice(1):e;if(!n)return;let s=[...new URLSearchParams(n).entries()].sort(([o],[a])=>o.localeCompare(a)),i=new URLSearchParams(s).toString();return i?`${t}?${i}`:t}async function pr(t,e,n,r){if(e.type==="rpc"){let u={...e,order:void 0,limit:void 0,offset:void 0},f=ne(u,n,{db:t,introspection:r}),{sql:p,parameters:d}=f.compile(),g=`SELECT count(*) as __count FROM (${p}) AS __inner_count`,m=await t.executeQuery({sql:g,parameters:d,query:{kind:"RawNode"}});return Number(m.rows?.[0]?.__count??0)}let s=e.join&&Object.values(e.join).some(u=>u.type==="inner"),i=mT(e);if(s||i){let u={...e,type:"query",order:void 0,limit:void 0,offset:void 0},f=ne(u,n,{db:t,introspection:r}),{sql:p,parameters:d}=f.compile(),g=`SELECT count(*) as __count FROM (${p}) AS __inner_count`,h=(await t.executeQuery({sql:g,parameters:d,query:{kind:"RawNode"}})).rows?.[0];return Number(h?.__count??0)}let o={...e,type:"query",select:[{__count:{aggregate:"count"}}],order:void 0,limit:void 0,offset:void 0,join:void 0},l=await ne(o,n,{db:t,introspection:r}).execute(),c=Array.isArray(l)?l[0]:l;return Number(c?.__count??0)}async function eu(t,e,n,r){if(e.$meta?.count!=="planned"&&e.$meta?.count!=="estimated"||n!=="postgres"||e.type==="rpc")return pr(t,e,n,r);let s={...e,type:"query",order:void 0,limit:void 0,offset:void 0},o=ne(s,n,{db:t,introspection:r}).compile(),c=(await t.executeQuery({sql:`EXPLAIN (FORMAT JSON) ${o.sql}`,parameters:o.parameters,query:{kind:"RawNode"}})).rows?.[0]?.["QUERY PLAN"],u=Array.isArray(c)&&c[0]&&typeof c[0]=="object"?c[0].Plan:void 0,f=u&&typeof u=="object"?Number(u["Plan Rows"]):Number.NaN;return Number.isFinite(f)?f:pr(t,e,n,r)}function mT(t){if(t.type!=="query"||!t.where||!t.select)return false;let e=hT(t.select);return e.size===0?false:ph(t.where,e)}function ph(t,e){for(let[n,r]of Object.entries(t)){if((n==="$or"||n==="$and")&&Array.isArray(r)){if(r.some(i=>i&&typeof i=="object"&&ph(i,e)))return true;continue}if(!e.has(n)||!r||typeof r!="object")continue;let s=r;if(s.$is===null||s.$isNot===null)return true}return false}function hT(t){let e=new Set;for(let n of t){if(typeof n=="string")continue;let[r,s]=Object.entries(n)[0]??[];r&&s&&typeof s=="object"&&"select"in s&&e.add(r);}return e}function tu(t){return t?.count==="exact"||t?.count==="planned"||t?.count==="estimated"}function nn(t,e,n){return tu(e)?`*/${n??0}`:t.type==="update"&&n!==0?ft(0,n??1,void 0):"*/*"}function dh(t,e,n,r){return e&&(t.type==="insert"||t.type==="upsert"||t.type==="delete")?r!==void 0?`*/${r}`:"*/*":ft(n,1,r)}var gT=/[",\n\r ]/;function mh(t){if(t==null)return "";let e;return typeof t=="string"?e=t:typeof t=="number"||typeof t=="boolean"?e=String(t):typeof t=="bigint"?e=t.toString():e=JSON.stringify(t),gT.test(e)?`"${e.replace(/"/g,'""')}"`:e}function Wo(t,e){let n=t.length>0?Object.keys(t[0]):[];if(n.length===0)return "";let r=[n.map(s=>mh(s)).join(",")];for(let s of t)r.push(n.map(i=>mh(s[i])).join(","));return r.join(`
81
- `)}function hh(t){return t.split(",").map(n=>n.split(";")[0].trim().toLowerCase()).includes("text/csv")}function bh(t){return t==null?[]:Array.isArray(t)?t.map(e=>Ws(e)?new Set(Object.keys(e)):new Set):Ws(t)?[new Set(Object.keys(t))]:[]}function wh(t,e,n){return !e?.length||!n?.length||t.length===0?t:t.map((r,s)=>{let i=n[s]??n[0],o={...r};for(let a of e)i.has(a)||(o[a]=null);return o})}function Sh(t,e){if(t.type!=="upsert"&&t.type!=="put")return {ast:t};if(t.type==="put"){if(t.limit!==void 0||t.offset!==void 0)return R(400,"PGRST114","limit/offset querystring parameters are not allowed for PUT",null,null);let r=gh(t,e),s=yT(t.where,r);if(!s)return R(405,"PGRST105","Filters must include all and only primary key columns with 'eq' operators",null,null);if(Array.isArray(t.values)&&t.values.length===0)return {ast:t,emptyPayload:true};if(!Ws(t.values))return R(400,"PGRST102","Empty or invalid json",null,null);for(let i of r)if(!wT(t.values[i],s[i]))return R(400,"PGRST115","Payload values do not match URL in primary key column(s)",null,null);return t.onConflict=r,t.ignoreDuplicates=false,{ast:t,preflight:{mode:"put",conflictColumns:r}}}let n=t.onConflict?.length?t.onConflict:gh(t,e);return n.length===0?(t.onConflict=void 0,{ast:t}):(t.onConflict=n,{ast:t,appliedResolution:t.ignoreDuplicates?"ignore-duplicates":"merge-duplicates",preflight:t.ignoreDuplicates?void 0:{mode:"merge-duplicates",conflictColumns:n}})}function _h(t,e){let n=t.$meta,r={"Content-Type":"application/json; charset=utf-8"},s=Ks(n,e.appliedResolution),i=n?.count==="exact"||n?.count==="planned"||n?.count==="estimated"?"*/0":"*/*",o=t.type==="upsert"?200:tt(t,n?.return==="representation"?"representation":"no-return",e.appliedResolution,false);return n?.return==="representation"?(r["Content-Range"]=i,r["Content-Length"]="2",s&&(r["Preference-Applied"]=s),new Response("[]",{status:o,headers:r})):(r["Content-Range"]=i,s&&(r["Preference-Applied"]=s),new Response(null,{status:o,headers:r}))}function gh(t,e){if(!t.from)return [];let n=t.schema??"public",r=e.primary_keys.find(s=>s.table===t.from&&s.schema===n);return r?r.columns:e.primary_keys.find(s=>s.table===t.from)?.columns??[]}function yT(t,e){if(!t||e.length===0)return null;let n=Object.keys(t);if(n.length!==e.length)return null;let r={};for(let s of n){if(s.startsWith("$")||!e.includes(s))return null;let i=bT(t[s]);if(!i.ok)return null;r[s]=i.value;}return r}function bT(t){if(!Ws(t))return {ok:false};let e=Object.keys(t);return e.length!==1||e[0]!=="$eq"?{ok:false}:{ok:true,value:t.$eq}}function wT(t,e){return Object.is(t,e)?true:t!==null&&e!==null&&t!==void 0&&e!==void 0&&typeof t!="object"&&typeof e!="object"?String(t)===String(e):kt(t)===kt(e)}function Ks(t,e){let n=[];return e&&n.push(`resolution=${e}`),t?.missing&&n.push(`missing=${t.missing}`),t?.return&&n.push(`return=${t.return}`),t?.count&&t.count!=="none"&&n.push(`count=${t.count}`),t?.tx&&n.push(`tx=${t.tx}`),n.length>0?n.join(", "):void 0}function tt(t,e,n,r){switch(t.type){case "insert":return 201;case "upsert":return !n||n==="ignore-duplicates"?201:r===false?200:201;case "put":return e==="representation"?r?201:200:204;case "update":case "delete":return e==="representation"?200:204;default:return 200}}async function Eh(t,e,n,r,s){if(e.type==="insert")return true;if(!s.preflight||!e.from)return;if(s.preflight.mode==="put")return !await yh(t,e.from,e.schema,e.where??{},n,r);let i=Array.isArray(e.values)?e.values:e.values?[e.values]:[];for(let o of i){if(!Ws(o))continue;let a=ST(s.preflight.conflictColumns,o);if(!a||!await yh(t,e.from,e.schema,a,n,r))return true}return false}function ST(t,e){let n={};for(let r of t){if(!(r in e))return;n[r]={$eq:e[r]};}return n}async function yh(t,e,n,r,s,i){return await pr(t,{type:"query",from:e,schema:n,where:r},s,i)>0}function Ws(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function _T(t){return "select"in t||"spread"in t||"join"in t}function xh(t,e){if(t){for(let n of t)if(typeof n!="string")for(let r of Object.values(n))_T(r)&&((r.limit===void 0||r.limit>e)&&(r.limit=e),xh(r.select,e));}}var ET={count:new Set(["exact","planned","estimated"]),resolution:new Set(["merge-duplicates","ignore-duplicates"]),return:new Set(["minimal","headers-only","representation"]),tx:new Set(["commit","rollback"]),missing:new Set(["default","null"]),handling:new Set(["strict","lenient"]),"max-affected":"number",timezone:"string",params:new Set(["single-object","multiple-objects"])};function xT(t,e){if(!t)return [];let n=t.split(",").map(i=>i.trim()).filter(Boolean);if(n.find(i=>i.startsWith("handling="))!=="handling=strict")return [];let s=e?new Set(e):void 0;return n.filter(i=>!TT(i,s))}function TT(t,e){let n=t.indexOf("=");if(n===-1)return false;let r=t.slice(0,n).trim(),s=t.slice(n+1).trim();if(r==="timezone")return e?e.has(s):s.length>0;let i=ET[r];return i?i==="string"?s.length>0:i==="number"?/^-?\d+$/.test(s):i.has(s):false}function RT(t){if(!t.from||!t.order)return null;let e=t.order.find(n=>/^\s+/.test(n.column));return e?R(400,"42703",`column ${t.from}.${e.column.trim()} does not exist`,null,null):null}function Th(t){let e=t.ast,{dialect:n,introspection:r,apiConfig:s,acceptHeader:i,preferHeader:o,httpMethod:a,rangeHeader:l}=t,c=s??{};if(c?.aggregates_enabled!==true&&Xl(e.select))return R(400,"PGRST123","Use of aggregate functions is not allowed",null,null);let u=c?.plan_enabled===true;if(!t.allowRawMedia&&!ch(i,u))return R(406,"PGRST107",`None of these media types are available: ${lh(i)}`,null,null);let f=sh(i),p=hh(i),d=xT(o,r.timezones);if(d.length>0)return R(400,"PGRST122","Invalid preferences given with handling=strict",`Invalid preferences: ${d.join(", ")}`,null);let g=RT(e);if(g)return g;if(n==="sqlite"&&e.from){let w=e.schema??"",x=r.tables.some(T=>T.name===e.from&&(T.schema??"")===w),E=r.views.some(T=>T.name===e.from&&(T.schema??"")===w);if(!x&&!E)throw new fr(e.schema,e.from)}let m=e.$meta,h=e.type==="update"||e.type==="delete"||e.type==="insert"||e.type==="upsert"||e.type==="put",y={ast:e};if(h&&m?.return!=="representation"&&(e.select=void 0),(e.type==="put"||e.type==="upsert")&&(e.limit!==void 0||e.offset!==void 0))return R(400,"PGRST114","limit/offset querystring parameters are not allowed for PUT",null,null);if((e.type==="update"||e.type==="delete"||e.type==="insert")&&c?.limited_mutations_enabled!==true&&(e.limit=void 0,e.offset=void 0),c?.pg_safe_update&&h){let w=e.where&&Object.keys(e.where).length>0;if(e.type==="update"&&!w)return R(400,"21000","UPDATE requires a WHERE clause",null,null);if(e.type==="delete"&&!w)return R(400,"21000","DELETE requires a WHERE clause",null,null)}if(h&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){if((e.type==="update"||e.type==="insert"||e.type==="upsert"||e.type==="put")&&(e.values===void 0||e.values===null))return R(400,"PGRST102","Empty or invalid json",null,null);if(e.type==="update"&&e.values&&typeof e.values=="object"&&!Array.isArray(e.values)&&Object.keys(e.values).length===0){let w=m?.return==="representation"?200:204,x=Ks(m,y.appliedResolution),E={"Content-Type":"application/json; charset=utf-8","Content-Range":nn(e,m,0)};if(x&&(E["Preference-Applied"]=x),m?.return==="representation"){let T=new TextEncoder().encode("[]");return E["Content-Length"]=String(T.byteLength),new Response(T,{status:w,headers:E})}return new Response(null,{status:w,headers:E})}if(e.type==="put"&&Array.isArray(e.values)&&(e.values.length===0?y.emptyPayload=true:e.values=e.values[0]),Array.isArray(e.values)){if(m?.cardinality==="one"&&(e.type==="insert"||e.type==="upsert")&&e.values.length>1)return R(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${e.values.length} rows`,null);if(e.values.length>0&&e.values.some(w=>typeof w!="object"||w===null||Array.isArray(w)))return m?.columns?R(400,"22023","argument of jsonb_to_recordset must be an array of objects",null,null):R(400,"PGRST102","All object keys must match",null,null);if(!m?.columns&&e.values.length>1){let w=Object.keys(e.values[0]).sort().join(",");for(let x=1;x<e.values.length;x++)if(Object.keys(e.values[x]).sort().join(",")!==w)return R(400,"PGRST102","All object keys must match",null,null)}}if(m?.columns&&e.from){y.bodyKeySets=bh(e.values);let w=r.columns.filter(E=>E.table===e.from).map(E=>E.name);for(let E of m.columns){if(E==="")return R(400,"PGRST100",'"failed to parse columns parameter ()" (line 1, column 1)',"unexpected end of input",null);if(!w.includes(E))return R(400,"PGRST204",`Could not find the '${E}' column of '${e.from}' in the schema cache`,null,null)}let x=new Set(m.columns);if(e.values)if(Array.isArray(e.values))e.values=e.values.map(E=>{let T={};for(let O of x)O in E&&(T[O]=E[O]);return T});else {let E={};for(let T of x)T in e.values&&(E[T]=e.values[T]);e.values=E;}}if(!m?.columns&&e.values&&e.from&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){let w=r.columns.filter(x=>x.table===e.from).map(x=>x.name);if(w.length>0){let x=Array.isArray(e.values)?e.values.length>0?Object.keys(e.values[0]):[]:Object.keys(e.values);for(let E of x)if(!w.includes(E))return R(400,"PGRST204",`Could not find the '${E}' column of '${e.from}' in the schema cache`,null,null)}}if(e.values&&e.from&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){let w=e.schema??"public",x=new Set(r.columns.filter(E=>E.table===e.from&&(E.schema||"public")===w&&E.is_generated===true).map(E=>E.name));if(x.size>0){let E=Array.isArray(e.values)?e.values:[e.values];for(let T of E)if(!(!T||typeof T!="object")){for(let O of Object.keys(T))if(x.has(O))return R(400,"428C9",`cannot insert a non-DEFAULT value into column "${O}"`,`Column "${O}" is a generated column.`,null)}}}}let S=Sh(e,r);if(S instanceof Response)return S;let _=y.bodyKeySets;if(y=S,y.bodyKeySets=_,e=y.ast,h&&((e.type==="insert"||e.type==="upsert")&&Array.isArray(e.values)&&e.values.length===0||y.emptyPayload))return m?.cardinality==="one"?R(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null):_h(e,y);if(l&&(a==="GET"||a==="HEAD")){let w=l.match(/^(\d+)-(\d*)$/);if(w){let x=parseInt(w[1],10);if(w[2]!==""){let E=parseInt(w[2],10);if(x>E)return R(416,"PGRST103","Requested range not satisfiable","The lower boundary must be lower than or equal to the upper boundary in the Range header.",null);e.offset=x,e.limit=E-x+1;}else e.offset=x;}}if(e.limit!==void 0&&e.limit<0||e.limit===0&&e.offset!==void 0&&e.offset>0)return R(416,"PGRST103","Requested range not satisfiable","Limit should be greater than or equal to zero.",null);if(e.offset!==void 0&&e.offset<0&&(e.offset=0),!h){let w=c?.max_rows;w!==void 0&&w>0&&((e.limit===void 0||e.limit>w)&&(e.limit=w),xh(e.select,w));}return {ast:e,meta:m,mutationPlan:y,isMutation:h,stripNullsResponse:f,csvResponse:p,planEnabled:u}}var mr=class extends Error{constructor(n){super(`new row violates row-level security policy for table "${n.data.table}"`);this.policy=n;this.name="PolicyViolation";}};eo();xs();rr();function Rh(t){if(t.from)return t.from}function Ah(t,e){let{connection:n,introspection:r,vars:s,ast:i}=e;if(t instanceof pe){let a=`"${t.message}" (line 1, column ${t.position})`;return R(400,"PGRST100",a,t.details,null)}if(t instanceof Je)return R(400,"PGRST100",t.message,t.details,null);if(t instanceof Vn)return R(400,t.code,t.message,null,null);if(t instanceof Kt)return R(400,"PGRST100",t.message,t.details,null);if(t instanceof zn)return R(404,"PGRST125",t.message,t.details,null);if(t instanceof ke)return R(t.httpStatus,t.code,t.message,t.details,t.hint);if(t instanceof Gn)return R(400,"PGRST102",t.message,null,null);if(t instanceof ns)return R(400,"PGRST102",t.message,null,null);if(t instanceof Error&&t.message.startsWith("Invalid JSON body"))return R(400,"PGRST102","Empty or invalid json",null,null);if(t instanceof xt)return R(400,"PGRST100",t.message,t.message,null);if(t instanceof wn)return R(400,"23514",t.message,`check constraint "${t.constraint}" violated`,null);if(t instanceof mr){let l=Xt(s,"auth.role","anon")==="anon"?401:403;return lt({status:l,code:"PGRST301",message:t.message})}let o=n.normalizeDbError(t);if(console.error(o),o instanceof fr){let a=o.schema||"public",l=[...r.tables.filter(p=>(p.schema||"public")===a).map(p=>p.name),...r.views.filter(p=>(p.schema||"public")===a).map(p=>p.name)],c=l.length>0?l:[...r.tables.map(p=>p.name),...r.views.map(p=>p.name)],u=Ss(o.relation,c),f=u?`Perhaps you meant the table '${a}.${u}'`:null;return lt({status:404,code:"PGRST205",message:o.message,hint:f})}if(typeof o?.code=="string"){if(o.code==="PGRST")return vT(o);let a=/^PT(\d{3})$/.exec(o.code);if(a){let l=Number(a[1]);return R(l>=200&&l<=599?l:500,o.code,o.message,o.detail??null,o.hint??null)}if(o.code.startsWith("PT"))return R(500,o.code,o.message,o.detail??null,o.hint??null)}if(o?.code==="42501"){let l=Xt(s,"auth.role","anon")==="anon"?401:403;return R(l,"42501",o.message,o.detail??null,o.hint??null)}if(o?.code==="42P01")return R(404,"PGRST205","Could not find the relation in the schema cache",o.message,null);if(o?.code==="23505"||o?.code==="23503")return R(409,o.code,o.message,o.detail??null,null);if(o?.code==="25006")return R(405,"25006",o.message,o.detail??null,o.hint??null);if(typeof o?.code=="string"){let a=o.code.slice(0,2);if(o.code==="42883"){let l=o.message;return l=l.replace(/^operator does not exist: [\w.]+\.([\w]+) /,"operator does not exist: $1 "),R(404,o.code,l,o.detail??null,o.hint??null)}if(o.code==="42P17")return R(500,o.code,o.message,o.detail??null,o.hint??null);if(a==="42"||a==="22"||a==="21"||o.code==="23502"){let l=o.message,c=i?Rh(i):void 0;if(o.code==="42703"&&c){let u=i?.onConflict;l=l.replace(/^column "([^"]+)" does not exist$/,(f,p)=>u?.includes(p)?f:`column ${c}.${p} does not exist`);}return R(400,o.code,l,o.detail??null,o.hint??null)}if(a==="55"||a==="53")return R(500,o.code,o.message,o.detail??null,o.hint??null)}return o?.message?.includes("Unknown operator")?R(400,"PGRST100",o.message,null,null):o instanceof Error&&(o.message.includes("Expected identifier")||o.message.includes("Invalid filter")||o.message.includes("Unexpected input")||o.message.includes("Unsupported operator")||o.message.includes("failed to parse filter")||o.message.includes("failed to parse logic tree")||/^Expected .* at position \d+$/.test(o.message)||o.message.startsWith('Expected "(" for spread embed'))?R(400,"PGRST100",o.message,o.message,null):R(500,"SUP",String(o),null,null)}var nu=`Could not parse JSON in the "RAISE SQLSTATE 'PGRST'" error`,CT="MESSAGE must be a JSON object with obligatory keys: 'code', 'message' and optional keys: 'details', 'hint'.",Ch="DETAIL must be a JSON object with obligatory keys: 'status', 'headers' and optional key: 'status_text'.";function vh(t){if(typeof t!="string")return null;try{let e=JSON.parse(t);return e&&typeof e=="object"&&!Array.isArray(e)?e:null}catch{return null}}function vT(t){let e=typeof t.message=="string"?t.message:"",n=vh(e);if(!n||typeof n.code!="string"||typeof n.message!="string")return R(500,"PGRST121",nu,`Invalid JSON value for MESSAGE: '${e}'`,CT);let r=t.detail;if(r==null||r==="")return R(500,"PGRST121",nu,"DETAIL is missing in the RAISE statement",Ch);let s=vh(r),i=s?.headers,o=!!i&&typeof i=="object"&&!Array.isArray(i);if(!s||typeof s.status!="number"||!o)return R(500,"PGRST121",nu,`Invalid JSON value for DETAIL: '${r}'`,Ch);let a=JSON.stringify({code:n.code,details:n.details??null,hint:n.hint??null,message:n.message}),l=new TextEncoder().encode(a),c={"Content-Type":"application/json; charset=utf-8","Content-Length":String(l.byteLength)};for(let[f,p]of Object.entries(i))typeof p=="string"&&(c[f]=p);let u={status:s.status,headers:c};typeof s.status_text=="string"&&(u.statusText=s.status_text);try{return new Response(l,u)}catch{return new Response(l,{status:500,headers:{"Content-Type":"application/json; charset=utf-8","Content-Length":String(l.byteLength)}})}}var kT="response.status guc must be a valid status code",hr="response.headers guc must be a JSON array composed of objects with a single key and a string value";async function kh(t,e){let n=(await sql`
80
+ `;)i+=t[r],r++;n.push(i),r<s&&t[r]===","&&r++;}}return {row:n,nextPos:r}}var On=class extends Error{constructor(e){super(e),this.name="CsvParseError";}};function $a(t){let e=new URL(t.url),n=new Map;for(let[r,s]of e.searchParams.entries()){let i=n.get(r)??[];i.push(s),n.set(r,i);}return n}function Ia(t,e,n){let r=e.toUpperCase();if(t.isRpc)return "rpc";switch(r){case "GET":case "HEAD":return "query";case "POST":return n.preferTokens.find(i=>i.key==="resolution"&&(i.value==="merge-duplicates"||i.value==="ignore-duplicates"))?"upsert":"insert";case "PATCH":return "update";case "PUT":return "put";case "DELETE":return "delete";default:return "query"}}var qf=new Set(["eq","neq","gt","gte","lt","lte","like","ilike","match","imatch","is","isdistinct","in","cs","cd","ov","sl","sr","nxl","nxr","adj","fts","plfts","phfts","wfts","not"]),Bf={eq:"$eq",neq:"$neq",gt:"$gt",gte:"$gte",lt:"$lt",lte:"$lte",like:"$like",ilike:"$ilike",match:"$regex",imatch:"$iregex",is:"$is",isdistinct:"$isDistinct",in:"$in",cs:"$contains",cd:"$containedBy",ov:"$overlaps",sl:"$rangeLt",sr:"$rangeGt",nxl:"$rangeGte",nxr:"$rangeLte",adj:"$rangeAdjacent"},cw={any:"Any",all:"All"},uw=new Set(["eq","gt","gte","lt","lte","like","ilike","match","imatch"]),fw={fts:void 0,plfts:"plain",phfts:"phrase",wfts:"websearch"};function Ei(t){let e=t.match(/^(\w+)\((any|all)\)$/);if(e){let[,s,i]=e;if(!uw.has(s))return null;let o=Bf[s];return o?{astOp:o+cw[i]}:null}let n=t.match(/^(p[lh]fts|wfts|fts)(?:\(([^)]+)\))?$/);if(n){let[,s,i]=n;return i!==void 0&&!/^[A-Za-z_][A-Za-z0-9_ ]*(?:\.[A-Za-z_][A-Za-z0-9_]*)?$/.test(i)?null:{astOp:"$textSearch",ftsType:fw[s],ftsConfig:i}}let r=Bf[t];return r?{astOp:r}:null}function vr(t){let e=t.indexOf(".");if(e===-1)return false;let r=t.substring(0,e).replace(/\((any|all)\)$/,"").replace(/^(p[lh]fts|wfts|fts)\([^)]+\)$/,"$1");return qf.has(r)}var tn=new Set(["select","order","limit","offset","on_conflict","columns","apikey"]);function Ar(t){if(t.startsWith("(")&&t.endsWith(")")&&(t=t.slice(1,-1)),t.trim()==="")return [];let e=[],n=0;for(;n<t.length;){if(t[n]==='"'){n++;let r="";for(;n<t.length&&t[n]!=='"';)t[n]==="\\"&&n+1<t.length&&n++,r+=t[n],n++;n<t.length&&n++,e.push(r);}else {let r="";for(;n<t.length&&t[n]!==",";)r+=t[n],n++;e.push(rt(r,{preserveWhitespace:true}));}n<t.length&&t[n]===","&&(n++,n===t.length&&e.push(""));}return e}function nn(t){if(t.startsWith("{")&&t.endsWith("}")&&(t=t.slice(1,-1)),t==="")return [];let e=[],n=0;for(;n<t.length;){if(t[n]==='"'){n++;let r="";for(;n<t.length&&t[n]!=='"';)t[n]==="\\"&&n+1<t.length&&n++,r+=t[n],n++;n<t.length&&n++,e.push(r);}else {let r="";for(;n<t.length&&t[n]!==",";)r+=t[n],n++;e.push(rt(r));}n<t.length&&t[n]===","&&n++;}return e}var Pn=Symbol.for("postgrest:not_null"),rn=Symbol.for("postgrest:unknown");function rt(t,e){let n=e?.preserveWhitespace===true,r=t.trim();if(r.startsWith('"')&&r.endsWith('"')&&r.length>=2)return r.slice(1,-1);let s=r.toLowerCase();if(s==="null")return null;if(s==="not_null")return Pn;if(s==="true")return true;if(s==="false")return false;if(s==="unknown")return null;if(/^-?0\d+$/.test(r)||/^[0-9A-Fa-f]+$/.test(r)&&/[A-Fa-f]/.test(r))return r;if(r!==""&&!Number.isNaN(Number(r))&&Number.isFinite(Number(r)))return Number(r);if(r.startsWith("{")&&r.endsWith("}"))try{let i=JSON.parse(r);if(typeof i=="object"&&!Array.isArray(i))return i}catch{}return n?r===""?"":t:r}function $r(t,e,n,r){let s={},i={};for(let[o,a]of t){if(tn.has(o))continue;let c=o.startsWith('"')?-1:o.indexOf(".");if(c>0&&!o.slice(0,c).includes("->")){let f=o.slice(0,c),u=o.slice(c+1);if(e.has(f)){if(u==="order"||u==="limit"||u==="offset")continue;if(u.includes(".")){let d=u.lastIndexOf("."),p=u.slice(d+1);if(p==="order"||p==="limit"||p==="offset")continue}i[f]||(i[f]={}),hw(u,a,i[f]);continue}if(o!=="not.or"&&o!=="not.and")throw pw(f)}if(e.has(o)&&!a.every(dw)&&!r?.has(o)){let f=n?`${n}.${o}`:o,u=new Error(`column ${f} does not exist`);throw u.code="42703",u}Da(o,a,s);}return {where:s,embeddedWheres:i}}function dw(t){return /^(not\.)?is\.(null|true|false|distinct\.)/.test(t.trim())}function pw(t){return new ve({httpStatus:400,code:"PGRST108",message:`'${t}' is not an embedded resource in this request`,details:null,hint:`Verify that '${t}' is included in the 'select' query parameter.`})}function Da(t,e,n){if(t==="or"||t==="and"){if(e.every(o=>!o.includes("("))){for(let o of e)mw(t,o,n);return}let s=e.map(o=>Wf(o)),i=s.length===1?s[0]:s.flat();n[`$${t}`]=i;return}if(t==="not.or"||t==="not.and"){let s=t.slice(4),i=e.map(a=>Wf(a)),o=i.length===1?i[0]:i.flat();n.$not={[`$${s}`]:o};return}let r=Kf(Sw(t),{stopAtSpace:false});Jf(r);for(let s of e){let i=ja(s);n[r]?Object.assign(n[r],i):n[r]=i;}}function mw(t,e,n){let r=e.indexOf("."),s=r===-1?e:e.slice(0,r),i=`${t}${s}`,o=r===-1?"":e.slice(r+1),a=ja(o);n[i]?Object.assign(n[i],a):n[i]=a;}function hw(t,e,n){let r=gw(t);if(!r){Da(t,e,n);return}let s={};Da(r.filterKey,e,s);for(let[i,o]of Object.entries(s))n[`${r.path}.${i}`]=o;}function gw(t){for(let e of ["not.or","not.and","or","and"]){let n=`.${e}`;if(t.endsWith(n)){let r=t.slice(0,-n.length);if((e==="or"||e==="and")&&r==="not")continue;if(r)return {path:r,filterKey:e}}}}function ja(t){let e=t,n=false;e.startsWith("not.")&&(n=true,e=e.slice(4));let r=e.indexOf("."),s,i;r===-1?(s=e,i=""):(s=e.slice(0,r),i=e.slice(r+1));let o=Ei(s);if(!o){let u=s.match(/^(p[lh]fts|wfts|fts)\(\)$/);throw u?new Error(`"failed to parse filter (${t})" (line 1, column ${u[1].length+2})`):new Error(`"failed to parse filter (${t})" (line 1, column 1)`)}let{astOp:a,ftsType:l,ftsConfig:c}=o;if(n&&a==="$in")return {$notIn:Na(a,i)};if(n&&a==="$is")return {$isNot:Na(a,i)};let f=a==="$textSearch"?bw(i,l,c):Na(a,i);return n?{$not:{[a]:f}}:{[a]:f}}function Na(t,e){if(t==="$in"||t==="$notIn"){if(!e.startsWith("(")||!e.endsWith(")")){let n=t==="$in"?"in":"not.in";throw new Error(`"failed to parse filter (${n}.${e})" (line 1, column ${n.length+e.length+2})`)}return Ar(e)}if(t.endsWith("Any")||t.endsWith("All")){if(e.startsWith("{"))return nn(e);if(!yw(t))throw Object.assign(new Error(`malformed array literal: "${e}"`),{code:"22P02",detail:'Array value must start with "{" or dimension information.'});return Ar(e)}if(t==="$contains"||t==="$containedBy"||t==="$overlaps"){if(e.startsWith("{")){try{let n=JSON.parse(e);if(typeof n=="object"&&!Array.isArray(n))return n}catch{}return nn(e)}return e.startsWith("[")||e.startsWith("(")?e:rt(e)}if(t.startsWith("$range"))return e;if(t==="$is"){let n=e.toLowerCase().trim(),s=["not_null","unknown","null","true","false"].find(i=>n===i||n.startsWith(i));if(!s)throw new Error(`"failed to parse filter (is.${e})" (line 1, column ${2+e.length})`);return s==="unknown"?rn:s==="not_null"?Pn:s==="null"?null:s==="true"?true:s==="false"?false:rt(e)}if(t==="$like"||t==="$ilike"||t==="$likeAny"||t==="$ilikeAny"||t==="$likeAll"||t==="$ilikeAll"){let n=e.replace(/\*/g,"%");return t.endsWith("Any")||t.endsWith("All")?n.startsWith("{")?nn(n):Ar(n):n}if(t==="$isDistinct")return e.startsWith("{")?nn(e):e;if((t==="$eq"||t==="$neq")&&e.startsWith("{")&&e.endsWith("}")){try{let n=JSON.parse(e);if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n}catch{}return nn(e)}return rt(e)}function yw(t){return t==="$likeAny"||t==="$ilikeAny"||t==="$likeAll"||t==="$ilikeAll"}function bw(t,e,n){let r={query:t};return e&&(r.type=e),n&&(r.config=n),r}function ww(t){let e=t.match(/^\(\(or\([^)]*\),/);if(e)return e[0].length+8;let n=t.match(/^\(or\([^)]*\),/);return n?n[0].length+8:t.length+2}function Hf(t){return new Error(`"failed to parse logic tree (${t})" (line 1, column ${ww(t)})`)}function Wf(t){if(!t.startsWith("(")||!t.endsWith(")"))throw new Error(`"failed to parse logic tree (${t})" (line 1, column ${t.length+3})`);let e=t.slice(1,-1);for(;e.endsWith(")");){let n=0;for(let r of e)r==="("?n++:r===")"&&n--;if(n<0)e=e.slice(0,e.length+n);else break}if(e.trim()==="")throw Hf(t);try{return Or(e).map(r=>Pr(r))}catch{throw Hf(t)}}function Or(t){let e=[],n=0,r=0,s=false,i="";for(let o of t)if(o==='"'&&!s?s=true:o==='"'&&s&&(s=false),s||(o==="("?n++:o===")"?n--:o==="{"?r++:o==="}"&&r--),o===","&&n===0&&r===0&&!s){if(i.trim()==="")throw new Error("empty logical expression");e.push(i.trim()),i="";}else i+=o;if(i.trim())e.push(i.trim());else if(t.trim().endsWith(","))throw new Error("empty logical expression");return e}function Pr(t){let e=t.trim(),n=e.match(/^and\s*\((.*)\)$/s);if(n)return {$and:Or(n[1]).map(d=>Pr(d))};let r=e.match(/^or\s*\((.*)\)$/s);if(r)return {$or:Or(r[1]).map(d=>Pr(d))};let s=e.match(/^not\.and\s*\((.*)\)$/s);if(s)return {$not:{$and:Or(s[1]).map(d=>Pr(d))}};let i=e.match(/^not\.or\s*\((.*)\)$/s);if(i)return {$not:{$or:Or(i[1]).map(d=>Pr(d))}};if(/^(?:and|or|not)=/.test(e))throw new Error(`Invalid filter expression: "${t}"`);if(e.startsWith("not("))throw new Error(`Invalid filter expression: "${t}"`);let o=t;if(o.startsWith("not.")){let p=o.slice(4).split(".")[0];if(!(p.length>0&&Ei(p)!==null))throw new Error(`Invalid filter expression: "${t}"`)}let l=o.indexOf(".");if(l===-1)throw new Error(`Invalid filter expression: "${t}"`);let c=Kf(o.slice(0,l),{stopAtSpace:true});Jf(c);let f=o.slice(l+1),u=ja(f);return {[c]:u}}function Kf(t,e){let r=(e.stopAtSpace?/[!@/\\~[\]()\t ]/:/[!@/\\~[\]()\t]/).exec(t),s=r?t.slice(0,r.index):t,i=s.indexOf("::");i!==-1&&(s=s.slice(0,i));let o=s.indexOf("=");o!==-1&&(s=s.slice(0,o));let a=s.indexOf(":");return a!==-1&&(s=s.slice(0,a)),s}function Sw(t){return t.length>=2&&t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1).replace(/""/g,'"'):t}function Jf(t){if(t===""||t==="*"||t.startsWith(".")||t.includes("--")||t.endsWith("-"))throw new Error(`Invalid filter expression: "${t}"`);if(/->>?-\d+[A-Za-z]/.test(t))throw new Error(`Invalid filter expression: "${t}"`)}function _w(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\(([^)]+)\)$/);return e?{embed:e[1],column:e[2]}:null}function Gf(t){if(t===void 0)return;let e=t.trim();if(!/^[+-]?\d+$/.test(e))return;let n=Number(e);return Number.isFinite(n)?n:void 0}function La(t,e){let n=Gf(t),r=Gf(e);return r!==void 0&&r<0&&(n!==void 0&&n>=0&&(n=Math.max(0,n+r)),r=void 0),{limit:n,offset:r}}function Ua(t,e){let n={embeddedTransforms:{}},r,s,i={},o={},a={},l={};for(let[d,p]of t){let g=p[0],m=d.indexOf(".");if(m>0){let h=d.slice(0,m),y=d.slice(m+1);if(e.has(h)){if(y==="order"||y==="limit"||y==="offset"){n.embeddedTransforms[h]||(n.embeddedTransforms[h]={}),y==="order"?n.embeddedTransforms[h].order=Fa(g):y==="limit"?i[h]=g:y==="offset"&&(o[h]=g);continue}if(y.includes(".")){let w=y.lastIndexOf("."),S=y.slice(w+1);if(S==="order"||S==="limit"||S==="offset"){n.embeddedTransforms[h]||(n.embeddedTransforms[h]={});let b=n.embeddedTransforms[h],_=y.slice(0,w);b._nested||(b._nested={});let E=b._nested;E[_]||(E[_]={});let x=E[_];S==="order"?x.order=Fa(g):S==="limit"?(a[h]||(a[h]={}),a[h][_]=g):S==="offset"&&(l[h]||(l[h]={}),l[h][_]=g);continue}}}}d==="order"?n.order=Fa(g):d==="limit"?r=g:d==="offset"&&(s=g);}if(n.order){for(let d of n.order)if(d.embed&&!e.has(d.embed))throw new ve({httpStatus:400,code:"PGRST108",message:`'${d.embed}' is not an embedded resource in this request`,details:null,hint:`Verify that '${d.embed}' is included in the 'select' query parameter.`})}let c=La(r,s);c.limit!==void 0&&(n.limit=c.limit),c.offset!==void 0&&(n.offset=c.offset);let f=new Set([...Object.keys(i),...Object.keys(o)]);for(let d of f){let p=La(i[d],o[d]);n.embeddedTransforms[d]||(n.embeddedTransforms[d]={}),p.limit!==void 0&&(n.embeddedTransforms[d].limit=p.limit),p.offset!==void 0&&(n.embeddedTransforms[d].offset=p.offset);}let u=new Set([...Object.keys(a),...Object.keys(l)]);for(let d of u){let p=new Set([...Object.keys(a[d]??{}),...Object.keys(l[d]??{})]);for(let g of p){let m=La(a[d]?.[g],l[d]?.[g]),h=n.embeddedTransforms[d]?._nested?.[g];h&&(m.limit!==void 0&&(h.limit=m.limit),m.offset!==void 0&&(h.offset=m.offset));}}return n}function Fa(t){return Ew(t).map(({entry:e,start:n},r)=>{let s=r===0?e.trim():e.trimEnd(),i=r===0?n+e.length-e.trimStart().length:n;return xw(s,t,i)})}function Ew(t){let e=[],n=0,r=0;for(let s=0;s<t.length;s++){let i=t[s];i==="("?n++:i===")"?n=Math.max(0,n-1):i===","&&n===0&&(e.push({entry:t.slice(r,s),start:r}),r=s+1);}return e.push({entry:t.slice(r),start:r}),e}function xw(t,e,n){let r=t.split("."),s={column:r[0].replace(/\s+$/,"")},i=r[0];if(!i)throw new fe(`failed to parse order (${e})`,'unexpected end of input expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input',1);let o=i.indexOf("::");if(o!==-1)throw new fe(`failed to parse order (${e})`,`unexpected ':' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+o+1);let a=i.indexOf("--");if(a!==-1)throw new fe(`failed to parse order (${e})`,`unexpected '-' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+a+2);let l=i.search(/[@#%]/);if(l!==-1)throw new fe(`failed to parse order (${e})`,`unexpected '${i[l]}' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+l+1);if(i.endsWith("-"))throw new fe(`failed to parse order (${e})`,`unexpected '-' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+i.length);let c=i.indexOf(":");if(c!==-1)throw new fe(`failed to parse order (${e})`,`unexpected ':' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+c+1);let f=_w(i);if(f){if(f.column.includes(","))throw new fe(`failed to parse order (${e})`,`unexpected ',' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+i.indexOf(",",f.embed.length)+1);s.column=f.column,s.embed=f.embed;}else if(i.includes("(")||i.includes(")")){let g=i.search(/[()]/);throw new fe(`failed to parse order (${e})`,`unexpected '${i[g]}' expecting letter, digit, "-", "->>", "->", delimiter (.), "," or end of input`,n+g+1)}let u=n+i.length+1,d=false,p=false;for(let g=1;g<r.length;g++){let m=r[g];if(m==="asc"||m==="desc"){if(d)throw new fe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,u+1);if(p)throw new fe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,u+1);s.direction=m,d=true,u+=m.length+1;}else if(m==="nullsfirst"||m==="nullslast"){if(p)throw new fe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,u+1);s.nullsFirst=m==="nullsfirst",p=true,u+=m.length+1;}else {let h=["asc","desc","nullsfirst","nullslast"],y=null;for(let w of h)if(m.startsWith(w)&&m.length>w.length){y=w;break}if(y){let w=m[y.length],S=u+y.length;throw new fe(`failed to parse order (${e})`,`unexpected '${w}' expecting "," or end of input`,S+1)}throw new fe(`failed to parse order (${e})`,`unexpected '${m[0]}' expecting "," or end of input`,u+1)}}return s}function Ma(t,e,n){let r={};for(let i of t.preferTokens)switch(i.key){case "count":r.count===void 0&&(r.count=i.value);break;case "missing":r.missing===void 0&&(r.missing=i.value);break;case "handling":r.handling===void 0&&(r.handling=i.value);break;case "tx":r.tx===void 0&&(r.tx=i.value,i.value==="rollback"&&(r.rollback=true));break;case "max-affected":r.maxAffected===void 0&&(r.maxAffected=i.value);break;case "timezone":r.timezone===void 0&&(r.timezone=i.value);break;case "return":r.return===void 0&&(r.return=i.value);break}n.toUpperCase()==="HEAD"&&(r.head=true),t.accept.includes("application/vnd.pgrst.object")&&(r.cardinality="one"),t.accept.includes("application/vnd.pgrst.plan")&&(r.explain=Cw(t.accept));let s=e.get("columns");if(s){let i=s[0];r.columns=Tw("columns",i);}return r}function Tw(t,e){let n=e.split(",").map(r=>Rw(r));if(n.length===0||n.some(r=>r===""||r==="*"||r.includes("--")||r.endsWith("-")))throw new jt(`"failed to parse ${t} parameter (${e})" (line 1, column 1)`,"unexpected input");return n}function Rw(t){let e=t.trim();return e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e.replace(/@.*$/,"")}function Cw(t){let e={},n=t.match(/options=([^;]+)/);if(n){let r=n[1].split("|").map(s=>s.trim());e.analyze=r.includes("analyze"),e.verbose=r.includes("verbose"),e.settings=r.includes("settings"),e.buffers=r.includes("buffers"),e.wal=r.includes("wal");}return e}function Ba(t,e,n,r){if(!t.isRpc)return {};if(e.toUpperCase()==="POST"){let a={httpMethod:"POST"};return r.values?(Array.isArray(r.values)?(a.args=r.values,a.paramsType="positional"):(a.args=r.values,a.paramsType="named"),a.inputType="json"):r.raw!==void 0&&(a.args={_raw:r.raw},a.inputType="text"),a}let i={};for(let[a,l]of n){if(tn.has(a))continue;let c=l.filter(f=>!vr(f));c.length!==0&&(c.length>1?i[a]=c.map(f=>rt(f)):i[a]=rt(c[0]));}let o={httpMethod:"GET",paramsType:"named",inputType:"json"};return Object.keys(i).length>0&&(o.args=i),o}function qa(t,e){let n=t.get("on_conflict"),r=n===void 0?void 0:kw(n[0]),i=e.preferTokens.find(o=>o.key==="resolution")?.value==="ignore-duplicates";return {onConflict:r?.length?r:void 0,ignoreDuplicates:i}}function kw(t){let e=t.split(",").map(n=>n.trim());if(e.length===0||e.some(n=>n===""||n.includes("--")||n.endsWith("-")))throw new jt(`"failed to parse on_conflict parameter (${t})" (line 1, column 1)`,"unexpected input");return e.map(n=>n.replace(/[!@/\\~[\]()\t ].*$/,""))}async function xi(t,e){let n=e?.basePath,r=e?.parseRoute??(C=>Ra(C,n)),s=e?.parseHeaders??Ca,i=e?.parseSelect??Oa,o=e?.parseBody??Pa,a=e?.parseQueryParams??$a,l=e?.resolveType??Ia,c=e?.resolveFilters??$r,f=e?.resolveTransforms??Ua,u=e?.resolveMeta??Ma,d=e?.resolveRpcParams??Ba,p=e?.resolveUpsertParams??qa,[g,m,h,y,w]=await Promise.all([r(t),s(t),i(t),o(t),a(t)]),S=t.method,b=l(g,S,m),_=w;if(g.isRpc&&S.toUpperCase()==="GET"){_=new Map;for(let[C,R]of w){if(tn.has(C)){_.set(C,R);continue}let U=R.filter(J=>vr(J));U.length>0&&_.set(C,U);}}let E=c(_,h.embeddedAliases,g.isRpc?void 0:g.from,e?.parentColumns),x=f(w,h.embeddedAliases),O=u(m,w,S),v=d(g,S,w,y),P=b==="upsert"||b==="put"?p(w,m):void 0;return vw(b,g,m,h,y,E,x,O,v,P)}function vw(t,e,n,r,s,i,o,a,l,c){let f={type:t};return e.isRpc?f.function=e.function:f.from=e.from,n.schema&&(f.schema=n.schema),Object.keys(r.join).length>0&&(f.join=r.join),r.select.length>0&&(f.select=zf(r.select,i.embeddedWheres,o.embeddedTransforms,r.join)),Object.keys(i.where).length>0&&(f.where=i.where),(t==="insert"||t==="update"||t==="upsert"||t==="put")&&s.values!==void 0&&(f.values=s.values),t==="rpc"&&(l.args!==void 0&&(f.args=l.args),l.httpMethod&&(f.httpMethod=l.httpMethod),l.paramsType&&(f.paramsType=l.paramsType),l.inputType&&(f.inputType=l.inputType)),(t==="upsert"||t==="put")&&c&&(c.onConflict&&(f.onConflict=c.onConflict),f.ignoreDuplicates=c.ignoreDuplicates),a.return==="representation"&&(t==="insert"||t==="update"||t==="delete"||t==="upsert"||t==="put")&&(!f.select||f.select.length===0)&&(f.select=["*"]),o.order&&(f.order=o.order),o.limit!==void 0&&(f.limit=o.limit),o.offset!==void 0&&(f.offset=o.offset),Object.keys(a).length>0&&(f.$meta=a),f}function Aw(t,e,n){return t.map(r=>{if(typeof r=="string"||!(e in r))return r;let s=r[e];return s.select?{[e]:{...s,where:{...s.where??{},...n}}}:r})}function zf(t,e,n,r,s){return t.map(i=>{if(typeof i=="string")return i;let o=Object.keys(i)[0],a=i[o];if(!a.select)return i;let l={...a},c=r?.[o]?.from,f=e[o]||c&&e[c],u=n[o]||c&&n[c];if(f&&s!==o){let d={},p={};for(let[g,m]of Object.entries(f)){let h=g.indexOf(".");if(h>0){let y=g.slice(0,h),w=g.slice(h+1);if(l.join?.[y]||l.select?.some(_=>typeof _=="object"&&y in _&&"select"in(_[y]??{}))){p[y]||(p[y]={}),p[y][w]=m;continue}}d[g]=m;}Object.keys(d).length>0&&(l.where=d);for(let[g,m]of Object.entries(p))l.select=Aw(l.select??[],g,m);}if(u){let d=u;if(d.order&&(l.order=d.order),d.limit!==void 0&&(l.limit=d.limit),d.offset!==void 0&&(l.offset=d.offset),d._nested)for(let[p,g]of Object.entries(d._nested))n[p]=g;}return l.select&&(l.select=zf(l.select,e,n,l.join,o)),{[o]:l}})}function Ti(t){return t!=null&&typeof t=="object"&&"$ref"in t}st();var Ha=class extends ie{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}serialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="string")return $n(e);throw this.checkError("color_range",e)}deserialize(e){if(this.isNullish(e))return "";if(typeof e=="number"&&Number.isFinite(e))return Vf(e);if(typeof e=="string"&&e.startsWith("#"))return e;if(typeof e=="string"||typeof e=="bigint"){let n=Number(e);if(Number.isFinite(n))return Vf(n)}return e}},Wa=class extends ie{get isShimBacked(){return true}get sqliteType(){return "TEXT"}serialize(e){return this.isNullish(e)?e:typeof e=="string"?e.replace(/Z$/,"+00:00"):e}deserialize(e){if(this.isNullish(e)||typeof e!="string")return e;let n=e.trim();if(/^\d{4}-\d{2}-\d{2}T/.test(n))return n.replace(/\+00:00$/,"Z");if(/^\d{4}-\d{2}-\d{2}$/.test(n))return `${n}T00:00:00Z`;if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(n)){let r=n.replace(" ","T");return /(?:Z|[+-]\d{2}:\d{2})$/.test(r)?r.replace(/\+00:00$/,"Z"):`${r}Z`}return n.replace(/\+00:00$/,"Z")}},Ka=class extends ie{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}serialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="string"){let n=Date.parse(e);if(Number.isFinite(n))return Math.trunc(n/1e3)}return e}deserialize(e){if(this.isNullish(e))return e;if(typeof e=="number"&&Number.isFinite(e))return Math.trunc(e);if(typeof e=="bigint")return Number(e);if(e instanceof Date&&Number.isFinite(e.getTime()))return Math.trunc(e.getTime()/1e3);if(typeof e=="string"){let n=e.trim();if(/^\d+$/.test(n))return Number(n);let r=Date.parse(n);if(Number.isFinite(r))return Math.trunc(r/1e3)}return e}},Ja=class extends ie{get isShimBacked(){return true}get sqliteType(){return "TEXT"}serialize(e){return this.isNullish(e)?e:typeof e=="number"&&Number.isFinite(e)?e.toFixed(2):e}deserialize(e){return e}},Ga=class extends ie{get isShimBacked(){return true}get sqliteType(){return "TEXT"}deserialize(e){if(this.isNullish(e))return e;let n=null;if(typeof e=="string")n=e;else if(e instanceof Uint8Array)n=Buffer.from(e).toString("base64");else if(e&&typeof e=="object"&&!Array.isArray(e)){let s=Object.values(e);n=Buffer.from(s).toString("base64");}if(n===null)return e;n=n.replace(/\s/g,"");let r=(4-n.length%4)%4;return r===0?n:n+"=".repeat(r)}};function $n(t){let e=t.trim(),r=(e.startsWith("#")?e.slice(1):e).padStart(8,"0");return Number.parseInt(r,16)>>>0}function Vf(t){return `#${(Math.trunc(t)&16777215).toString(16).toUpperCase().padStart(6,"0")}`}function Xf(t,e){return e==="postgres"||e==="pglite"?sql`('"' || upper('#' || lpad(to_hex((${t})::bigint & 16777215), 6, '0')) || '"')`:sql`('"' || upper(printf('#%06X', (${t}) & 16777215)) || '"')`}var Ow=new Set(["color","isodate","isodatetext","unixtz","monetary","monetarytext","bytea_b64"]),Pw=new Set(["bool","boolean"]),Yf=new Map;function Le(t){if(!t)return false;let e=t.toLowerCase().trim();return Ow.has(e)||Yf.has(e)}function Ne(t,e){return (t??e).toLowerCase().trim()}function za(t,e){let n=Ne(t.pg_type,t.type);return Le(n)||!e?n:$w(t.table,t.name,e)??n}function $w(t,e,n){let r=n.views.find(i=>i.name===t);if(!r?.sql)return;let s=[new RegExp(`CAST\\s*\\(.+?\\s+AS\\s+([\\w.]+)\\)\\s+AS\\s+${e}\\b`,"is"),new RegExp(`::\\s*(?:[\\w.]+\\.)?([\\w]+)\\s+AS\\s+${e}\\b`,"i")];for(let i of s){let o=r.sql.match(i);if(!o)continue;let a=o[1].split(".").pop().toLowerCase();if(Le(a)||Pw.has(a))return a}}function Va(t){if(typeof t=="string"&&t.trim()==="Z")throw Object.assign(new Error('invalid input syntax for type timestamp with time zone: "Z"'),{code:"22007",detail:null,hint:null})}function Zf(t){return Array.isArray(t)?t.map(e=>Qf(e)):Qf(t)}function Qf(t){if(typeof t=="number"&&Number.isFinite(t))return Math.trunc(t);if(typeof t=="string"){let e=t.trim();return $n(e.startsWith("#")?e:`#${e}`)}return t}function Ci(t,e){let n=e.toLowerCase().trim();return n==="color"?sql`to_json('#' || lpad(upper(to_hex((${t})::bigint & 16777215)), 6, '0'))`:n==="unixtz"?sql`to_json(EXTRACT(EPOCH FROM ${t})::bigint)`:n==="monetary"||n==="monetarytext"?sql`to_json((${t})::text)`:n==="bytea_b64"?sql`to_json(encode((${t})::bytea, 'base64'))`:n==="isodate"||n==="isodatetext"?sql`to_json(to_char((${t}) AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'))`:null}function ed(t,e){let n=e.toLowerCase().trim();if(n==="unixtz"){let r=typeof t=="number"?t:typeof t=="string"?Number(t):NaN;if(Number.isFinite(r)){let s=new Date(r*1e3);if(Number.isFinite(s.getTime()))return s.toISOString()}return t}if(n==="bytea_b64"){if(typeof t=="string")try{let r=t.replace(/=+$/,"");for(;r.length%4!==0;)r+="=";let s=atob(r),i="";for(let o=0;o<s.length;o++)i+=s.charCodeAt(o).toString(16).padStart(2,"0");return `\\x${i}`}catch{return t}return t}return n==="monetary"||n==="monetarytext"?typeof t=="number"?String(t):t:(n==="isodate"||n==="isodatetext")&&typeof t=="string"?t.replace(/Z$/,"+00:00"):t}function Ir(t,e,n,r,s,i){if(r!=="postgres"||!e||!s?.columns)return t;let o=i??"public",a=s.columns.find(c=>c.table===e&&c.name===n&&(c.schema??"public")===o);if(!a)return t;let l=Ne(a.pg_type,a.type);return Le(l)?Ci(t,l)??t:t}function td(t,e,n,r){if(!t||!n?.columns)return false;let s=r??"public",i=n.columns.find(o=>o.table===t&&o.name===e&&(o.schema??"public")===s);return i?Le(Ne(i.pg_type,i.type)):false}function Nr(t,e,n){if(!t||!e?.columns)return false;let r=n??"public";return e.columns.some(s=>s.table!==t||(s.schema??"public")!==r?false:Le(Ne(s.pg_type,s.type)))}function Qa(t,e,n){let r=n??"public";return e.columns.filter(s=>s.table===t&&(s.schema??"public")===r).sort((s,i)=>s.ordinal_position-i.ordinal_position).map(s=>{let i=Ne(s.pg_type,s.type),o=Le(i);return {name:s.name,isDomain:o,domainTypeName:o?i:null}})}function nd(t){let e=t.pgTypeName.toLowerCase().trim(),n=Yf.get(e);if(n)return n(t);switch(e){case "color":return new Ha(t);case "isodate":case "isodatetext":return new Wa(t);case "unixtz":return new Ka(t);case "monetary":case "monetarytext":return new Ja(t);case "bytea_b64":return new Ga(t);default:return null}}var Iw=/^[a-zA-Z_][a-zA-Z0-9_.]*$/,Nw=/[;'"\\/*\-#]/,Dw=/['\\;(]/,wt=class extends Error{constructor(n,r){super(`Unsafe ${r}: "${n}"`);this.value=n;this.context=r;this.name="SanitizeError";}};function Pe(t,e){if(!Iw.test(t))throw new wt(t,e)}function an(t,e){if(Nw.test(t))throw new wt(t,e);let n=0;for(let r of t)if(r==="("?n++:r===")"&&n--,n<0)throw new wt(t,e);if(n!==0)throw new wt(t,e)}function In(t,e){if(Dw.test(t))throw new wt(t,e)}function ln(t){let e=t.indexOf("->");if(e===-1)return {col:t,parts:[]};let n=t.slice(0,e),r=t.slice(e),s=[];for(;r.length>0;){let i;if(r.startsWith("->>"))i="->>",r=r.slice(3);else if(r.startsWith("->"))i="->",r=r.slice(2);else break;let o=r.indexOf("->"),a=o===-1?r:r.slice(0,o);s.push({op:i,key:a}),r=o===-1?"":r.slice(o);}return {col:n,parts:s}}function Dr(t,e){return t.map(n=>{let r=/^-?\d+$/.test(n.key);return r||In(n.key,e),r?`${n.op}${n.key}`:`${n.op}'${n.key}'`}).join("")}function k(t){return typeof t=="string"?sql.ref(t):t}function jw(t){return `"${t.replace(/"/g,'""')}"`}function Xa(t){return sql.raw(jw(t))}function Ya(t,e,n=e.currentTable,r=e.currentSchema){if(!n||!e.introspection?.columns)return;let s=e.introspection.columns.filter(i=>i.table===n&&i.name===t);if(s.length!==0)return s.find(i=>!r||i.schema===r)??s.find(i=>["","public"].includes(i.schema??""))??s[0]}function ki(t,e,n=e.currentTable,r=e.currentSchema){return Ya(t,e,n,r)!==void 0}function de(t,e,n=e.currentTable){return ki(t,e,n)?Xa(t):sql.ref(t)}function St(t,e,n,r=n.currentTable){let s=ki(e,n,r)?Xa(e):sql.ref(e);return sql`${sql.ref(t)}.${s}`}function Lw(t){return (t?.pg_type??t?.type??"").toLowerCase()}function rd(t,e,n=e.currentTable){if(e.dialect!=="postgres")return false;let r=Lw(Ya(t,e,n));return r.endsWith("[]")||r.startsWith("_")||r==="array"}function sd(t){let e=[];for(let n of t){if(!/^\d+$/.test(n))return;e.push(`[${Number(n)+1}]`);}return e.join("")}function Lt(t,e,n=e.currentTable){if(e.dialect!=="postgres")return false;let r=e.currentSchema??e.introspection?.default_schema,s=Ya(t,e,n,r),i=s?.pg_type??s?.type;return i?e.introspection?.custom_types?.some(o=>o.kind==="composite"&&o.type===i&&(!s?.udt_schema||!o.schema||o.schema===s.udt_schema))??false:false}function id(t,e){let n=t;for(let r of e)n=sql`(${n}).${Xa(r)}`;return n}function od(t,e,n,r=n.currentTable,s=false){let i=e.replace(/^\$\./,"").split(".").filter(Boolean);if(i.length===0)return de(t,n,r);if(rd(t,n,r)){let l=sd(i);if(l)return sql`${de(t,n,r)}${sql.raw(l)}`}if(Lt(t,n,r))return id(de(t,n,r),i);let o=i.map((l,c)=>({op:c===i.length-1&&s?"->>":"->",key:l})),a=Dr(o,"JSON path key");return sql`${de(t,n,r)}${sql.raw(a)}`}function jr(t,e,n=e.currentTable,r){let{col:s,parts:i}=ln(t),o=r?St(r,s,e,n):de(s,e,n);if(i.length===0)return o;if(rd(s,e,n)){let c=sd(i.map(f=>f.key));if(c)return sql`${o}${sql.raw(c)}`}if(Lt(s,e,n))return id(o,i.map(c=>c.key));let a=e.dialect==="sqlite"?i.map((c,f)=>f===i.length-1?{...c,op:"->>"}:c):i,l=Dr(a,"JSON path key");return sql`${o}${sql.raw(l)}`}var vi={$eq:(t,e,n)=>sql`${k(e)} = ${n}`,$neq:(t,e,n)=>sql`${k(e)} != ${n}`,$gt:(t,e,n)=>sql`${k(e)} > ${n}`,$gte:(t,e,n)=>sql`${k(e)} >= ${n}`,$lt:(t,e,n)=>sql`${k(e)} < ${n}`,$lte:(t,e,n)=>sql`${k(e)} <= ${n}`,$like:(t,e,n)=>sql`${k(e)} like ${n}`,$is:(t,e,n)=>{let r=k(e);return n===Pn?sql`${r} IS NOT NULL`:n===rn?sql`${r} IS UNKNOWN`:n===null?sql`${r} IS NULL`:n===true?sql`${r} IS TRUE`:n===false?sql`${r} IS FALSE`:sql`${r} IS NULL`},$isNot:(t,e,n)=>{let r=k(e);return n===Pn?sql`${r} IS NULL`:n===rn?sql`${r} IS NOT UNKNOWN`:n===null?sql`${r} IS NOT NULL`:n===true?sql`${r} IS NOT TRUE`:n===false?sql`${r} IS NOT FALSE`:sql`${r} IS NOT NULL`},$in:(t,e,n)=>{if(Array.isArray(n)&&n.length===0)return sql`false`;let r=k(e);return Array.isArray(n)?sql`${r} in (${sql.join(n.map(s=>sql`${s}`))})`:sql`${r} in ${n}`},$notIn:(t,e,n)=>{if(Array.isArray(n)&&n.length===0)return sql`true`;let r=k(e);return Array.isArray(n)?sql`${r} not in (${sql.join(n.map(s=>sql`${s}`))})`:sql`${r} not in ${n}`},$isDistinct:(t,e,n)=>sql`${k(e)} is distinct from ${n}`},Ai={$eq:"=",$neq:"!=",$gt:">",$gte:">=",$lt:"<",$lte:"<="};function ad(t){let e=t.replace(/^setof\s+/i,"").trim();return (e.includes(".")?e.slice(e.lastIndexOf(".")+1):e).replace(/^"|"$/g,"").trim()}function Za(t,e,n){let r=t.replace(/^setof\s+/i,"").trim(),s=r.lastIndexOf(".");if(s>=0){let i=r.slice(0,s).replace(/^"|"$/g,"").trim(),o=r.slice(s+1).replace(/^"|"$/g,"").trim();return i===n&&o===e}return r.replace(/^"|"$/g,"").trim()===e}function Pi(t,e,n,r){let s=r??t?.default_schema??"public";return !!t?.columns?.some(i=>i.table===e&&i.name===n&&i.schema===s)}function Oi(t,e,n){return !!(t?.tables?.some(r=>r.name===e&&r.schema===n)||t?.views?.some(r=>r.name===e&&r.schema===n))}function Ft(t,e,n,r,s){if(r!=="postgres")return null;let i=t?.functions;if(!i)return null;let o=s??t?.default_schema??"public";for(let a of i){if(a.name!==n||a.schema!==o||a.has_variadic||a.arg_types.length!==1||!Za(a.arg_types[0],e,a.schema)||!Oi(t,e,a.schema)||a.return_typtype!=="c")continue;let l=ad(a.return_type);if(Za(a.return_type,l,a.schema)&&Oi(t,l,a.schema))return {fnName:a.name,schema:a.schema,targetTable:l,toOne:!a.return_is_setof||a.return_rows===1}}return null}function Lr(t,e,n){let r=t.schema?`${t.schema}.${t.fnName}`:t.fnName;return Pe(r,"computed relationship function reference"),sql`${sql.raw(r)}(${sql.ref(e)})`.as(n)}function $i(t,e,n,r,s){if(r!=="postgres")return null;let i=t?.functions;if(!i)return null;let o=s??t?.default_schema??"public";for(let a of i)if(a.name===n&&a.schema===o&&!(a.has_variadic||a.arg_types.length!==1)&&Za(a.arg_types[0],e,a.schema)&&Oi(t,e,a.schema)&&!(a.return_typtype==="c"&&Oi(t,ad(a.return_type),a.schema)))return {fnName:a.name,schema:a.schema};return null}function Ii(t,e){let n=t.schema?`${t.schema}.${t.fnName}`:t.fnName;return Pe(n,"computed column function reference"),sql`${sql.raw(n)}(${sql.ref(e)})`}var Fw=new Set(["$like","$ilike","$likeAny","$ilikeAny","$likeAll","$ilikeAll"]);function el(t){return t!=null&&typeof t=="object"&&t.type==="query"}function cn(t,e){if(e.dialect==="postgres"&&e.currentTable&&!t.includes("->")&&!Pi(e.introspection,e.currentTable,t,e.currentSchema)){let r=$i(e.introspection,e.currentTable,t,e.dialect,e.currentSchema);if(r)return Ii(r,e.currentTableAlias??e.currentTable)}return de(t,e)}function Ni(t,e){let n=e.db;return t.schema&&(n=n.withSchema(t.schema)),nl(t,e,n)}function Uw(t){return t.includes("->")}function dd(t,e){let{col:n,parts:r}=ln(t);return r.length===0?de(t,e):jr(t,e)}function Ee(t,e,n){let r=[];for(let[s,i]of Object.entries(e)){if(s==="$always"){i===false&&r.push(sql`0 = 1`);continue}if(s==="$or"){let o=i;r.push(t.or(o.map(a=>Ee(t,a,n))));}else if(s==="$and"){let o=i;r.push(t.and(o.map(a=>Ee(t,a,n))));}else if(s==="$not")r.push(t.not(Ee(t,i,n)));else if(s==="$exists"){let o=i;r.push(t.exists(Ni(o,n)));}else {let o=i,a=Uw(s);for(let[l,c]of Object.entries(o)){if(Ti(c)){let f=Ai[l];if(!f)throw new Error(`Unsupported ref operator: ${l}`);r.push(sql`${a?dd(s,n):cn(s,n)} ${sql.raw(f)} ${de(c.$ref,n)}`);continue}if(l==="$not"){let f=c;for(let[u,d]of Object.entries(f))if(a)r.push(t.not(fd(s,u,d,n)));else {let p=ld(s,u,d,n);if(p){r.push(t.not(p));continue}let g=ud(s,u,d,n);if(g){r.push(t.not(g));continue}let m=cd(s,u,d,n);if(m){r.push(t.not(m));continue}let h=n.operators[u];if(!h)throw new Error(`Unsupported operator: ${u}`);r.push(t.not(h(t,cn(s,n),d)));}}else if(el(c)){let f=Ni(c,n),u=n.operators[l];if(!u)throw new Error(`Unsupported operator: ${l}`);r.push(u(t,cn(s,n),f));}else if(a)r.push(fd(s,l,c,n));else {let f=ld(s,l,c,n);if(f){r.push(f);continue}let u=Bw(s,l,c,n);if(u){r.push(u);continue}Hw(s,l,n);let d=tl(s,c,n),p=ud(s,l,d,n);if(p){r.push(p);continue}let g=cd(s,l,d,n);if(g){r.push(g);continue}let m=n.operators[l];if(!m)throw new Error(`Unsupported operator: ${l}`);r.push(m(t,cn(s,n),d));}}}}return r.length===1?r[0]:t.and(r)}function ld(t,e,n,r){if(e!=="$is"&&e!=="$isNot"||n!==rn)return null;let s=Dn(t,r);if(!s)return null;let i=pd(s.pg_type??s.type);if(i==="boolean")return r.dialect!=="sqlite"?null:e==="$is"?sql`${de(t,r)} IS NULL`:sql`${de(t,r)} IS NOT NULL`;throw Object.assign(new Error(`argument of IS UNKNOWN must be type boolean, not type ${i}`),{code:"42804",detail:null})}function Dn(t,e){if(!e.introspection?.columns||!e.currentTable)return null;let n=t.includes("->")?ln(t).col:t,r=e.introspection.columns.filter(i=>i.table===e.currentTable&&i.name===n);if(r.length===0)return null;let s=e.currentSchema;return r.find(i=>!s||i.schema===s)??r.find(i=>["","public"].includes(i.schema??""))??r[0]}var Mw={$contains:{sym:"@>",cast:"ltree"},$containedBy:{sym:"<@",cast:"ltree"},$regex:{sym:"~",cast:"lquery"},$iregex:{sym:"~*",cast:"lquery"}};function cd(t,e,n,r){if(r.dialect!=="postgres")return null;let s=Mw[e];if(!s)return null;let i=Dn(t,r);if(!i||Ne(i.pg_type,i.type)!=="ltree")return null;let o=`"${(i.udt_schema??"public").replace(/"/g,'""')}"`;return sql`${cn(t,r)} OPERATOR(${sql.raw(`${o}.${s.sym}`)}) ${n}::${sql.raw(`${o}.${s.cast}`)}`}function ud(t,e,n,r){if(r.dialect!=="postgres"||e!=="$textSearch")return null;let s=Dn(t,r);if(!s||Ne(s.pg_type,s.type)==="tsvector")return null;let i=n,o=i.config,a="to_tsquery";i.type==="plain"?a="plainto_tsquery":i.type==="phrase"?a="phraseto_tsquery":i.type==="websearch"&&(a="websearch_to_tsquery");let l=o?sql`to_tsvector(${sql.literal(o)}, ${cn(t,r)})`:sql`to_tsvector(${cn(t,r)})`,c=o?sql`${sql.raw(a)}(${sql.literal(o)}, ${i.query})`:sql`${sql.raw(a)}(${i.query})`;return sql`${l} @@ ${c}`}function pd(t){switch(t.toLowerCase()){case "bool":return "boolean";case "int8":case "bigserial":case "serial8":return "bigint";case "int4":case "serial":case "serial4":return "integer";case "int2":return "smallint";default:return t.toLowerCase()}}function Bw(t,e,n,r){if(r.dialect!=="postgres"||e!=="$eq"&&e!=="$neq"||typeof n!="string"||!/^\s*[[{]/.test(n))return null;let s=Dn(t,r),i=pd(s?.pg_type??s?.type??"");if(i!=="json"&&i!=="jsonb")return null;let o=de(t,r),a=sql`cast(${sql.raw(qw(n))} as ${sql.raw(i)})`;return e==="$eq"?sql`${o} = ${a}`:sql`${o} != ${a}`}function qw(t){return `'${t.replace(/'/g,"''")}'`}function Hw(t,e,n){if(!Fw.has(e))return;let r=Dn(t,n);if(!r||Ne(r.pg_type,r.type)!=="color")return;let i=e.includes("ilike")?"~~*":"~~";throw Object.assign(new Error(`operator does not exist: color ${i} unknown`),{code:"42883",detail:null,hint:"No operator matches the given name and argument types. You might need to add explicit type casts."})}function tl(t,e,n){if(!n?.currentTable)return e;let r=Dn(t,n);if(!r)return e;let s=Ne(r.pg_type,r.type);if(s==="color")return Zf(e);if(s==="isodate"||s==="isodatetext")if(Array.isArray(e))for(let i of e)Va(i);else Va(e);return e}function fd(t,e,n,r){let s=r?dd(t,r):k(t),o={$eq:"=",$neq:"!=",$gt:">",$gte:">=",$lt:"<",$lte:"<=",$like:"like",$ilike:"ilike"}[e];if(o)return sql`${s} ${sql.raw(o)} ${n}`;if(e==="$is")return n===null?sql`${s} IS NULL`:n===true?sql`${s} IS TRUE`:n===false?sql`${s} IS FALSE`:sql`${s} IS NULL`;if(e==="$isNot")return n===null?sql`${s} IS NOT NULL`:n===true?sql`${s} IS NOT TRUE`:n===false?sql`${s} IS NOT FALSE`:sql`${s} IS NOT NULL`;if(e==="$in"){if(r&&el(n))return sql`${s} in ${Ni(n,r)}`;let a=tl(t,n,r);return a.length===0?sql`false`:sql`${s} in (${sql.join(a.map(l=>sql`${l}`))})`}if(e==="$notIn"){if(r&&el(n))return sql`${s} not in ${Ni(n,r)}`;let a=tl(t,n,r);return a.length===0?sql`true`:sql`${s} not in (${sql.join(a.map(l=>sql`${l}`))})`}return sql`${s} = ${n}`}function Fr(t,e){let n={};for(let[r,s]of Object.entries(t))r==="$or"||r==="$and"?n[r]=s.map(i=>Fr(i,e)):r==="$not"?n[r]=Fr(s,e):r.startsWith("$")||r.includes(".")?n[r]=s:n[`${e}.${r}`]=s;return n}function it(t){let e=t.leftCols??[t.leftCol],n=t.rightCols??[t.rightCol];return e.map((r,s)=>({leftCol:r,rightCol:n[s]??t.rightCol}))}function rl(t,e){return `${t}_${e}_fkey`}function Di(t,e){return e===rl(t.table,t.column)}function md(t){let e=new Map;for(let n of t){let r=n.foreign_key_group??n.foreign_key_name,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function hd(t,e,n){return {leftCol:`${t}.${n.column}`,rightCol:`${e}.${n.ref_column}`,type:"m2o"}}function gd(t,e,n){return {leftCol:`${e}.${n.column}`,rightCol:`${t}.${n.ref_column}`,type:"o2m"}}function Ww(t,e,n){switch(t.kind){case "constraint":case "pg_autogen":case "ref_column":return t.direction==="m2o"?hd(e,n,t.fk):gd(e,n,t.fk);case "parent_column":return hd(e,n,t.fk);case "target_column":return gd(e,n,t.fk);case "junction_table":return {type:"m2m",junctionTable:t.junctionTable,junctionToParentCols:t.toParent.map(r=>r.column),parentCols:t.toParent.map(r=>r.ref_column),junctionToTargetCols:t.toTarget.map(r=>r.column),targetCols:t.toTarget.map(r=>r.ref_column)}}}function yd(t,e,n,r){let s=r.find(o=>o.foreign_key_name===t&&o.table===e&&o.ref_table===n);if(s)return {kind:"constraint",fk:s,direction:"m2o"};let i=r.find(o=>o.foreign_key_name===t&&o.table===n&&o.ref_table===e);return i?{kind:"constraint",fk:i,direction:"o2m"}:null}function bd(t,e,n,r){let s=r.find(o=>o.table===e&&o.ref_table===n&&Di(o,t));if(s)return {kind:"pg_autogen",fk:s,direction:"m2o"};let i=r.find(o=>o.table===n&&o.ref_table===e&&Di(o,t));return i?{kind:"pg_autogen",fk:i,direction:"o2m"}:null}function wd(t,e,n,r){let s=r.find(i=>i.table===e&&i.column===t&&i.ref_table===n);return s?{kind:"parent_column",fk:s}:null}function Sd(t,e,n,r){let s=r.find(i=>i.table===n&&i.column===t&&i.ref_table===e);return s?{kind:"target_column",fk:s}:null}function _d(t,e,n,r){let s=r.filter(a=>a.table===t),i=md(s.filter(a=>a.ref_table===e)),o=md(s.filter(a=>a.ref_table===n));return i.length===0||o.length===0?null:{kind:"junction_table",junctionTable:t,toParent:i[0],toTarget:o[0]}}function Ed(t,e,n,r){let s=r.find(i=>i.table===n&&i.ref_column===t&&i.ref_table===e);return s?{kind:"ref_column",fk:s,direction:"o2m"}:null}function xd(t,e,n,r){let s=r.find(i=>i.table===e&&i.ref_column===t&&i.ref_table===n);return s?{kind:"ref_column",fk:s,direction:"m2o"}:null}var Kw=[yd,bd,wd,Sd,_d,Ed,xd];function Td(t,e,n,r,s={}){let i=s.preferSelfReferenceTargetColumn&&e===n?[yd,bd,Sd,wd,_d,Ed,xd]:Kw;for(let o of i){let a=o(t,e,n,r);if(a)return Ww(a,e,n)}return null}function ji(t,e,n,r){t=t.innerJoin(e.junctionTable,s=>{let i=s;for(let o=0;o<e.junctionToTargetCols.length;o++)i=i.onRef(`${e.junctionTable}.${e.junctionToTargetCols[o]}`,"=",`${n}.${e.targetCols[o]}`);return i});for(let s=0;s<e.junctionToParentCols.length;s++)t=t.whereRef(`${e.junctionTable}.${e.junctionToParentCols[s]}`,"=",`${r}.${e.parentCols[s]}`);return t}function Ur(t,e,n,r){if(e.type==="m2m")return ji(t,e,n,r);for(let{leftCol:s,rightCol:i}of it(e))t=t.whereRef(s,"=",i);return t}function Mr(t){return t.foreign_key_name?.endsWith("_fkey")||t.foreign_key_name&&!t.foreign_key_name.startsWith("fk_")?t.foreign_key_name:rl(t.table,t.column)}function jn(t,e,n,r,s,i){if(!n||!e||!i.introspection?.foreign_keys)return {qb:t,remainingWhere:e};if(Object.keys(e).length===0||!kd(e,n))return {qb:t,remainingWhere:e};let o=e;return t=t.where(a=>{let l=Rd(a,e,n,r,s,i);return o=l.remainingWhere,l.expression??sql`1 = 1`}),Object.keys(o).length===Object.keys(e).length?{qb:t,remainingWhere:e}:{qb:t,remainingWhere:o}}function Rd(t,e,n,r,s,i){let o=[],a={};for(let[c,f]of Object.entries(e)){if((c==="$or"||c==="$and")&&Array.isArray(f)){let d=f.map(p=>Rd(t,p,n,r,s,i));if(d.length>0&&d.every(p=>p.fullyHandled&&p.expression)){o.push(c==="$or"?t.or(d.map(p=>p.expression)):t.and(d.map(p=>p.expression)));continue}a[c]=f;continue}let u=Jw(t,c,f,n,r,s,i);u?o.push(u):a[c]=f;}let l=o.length===0?null:o.length===1?o[0]:t.and(o);return {expression:l,remainingWhere:a,fullyHandled:l!==null&&Object.keys(a).length===0}}function Jw(t,e,n,r,s,i,o){let a=n;if(!a||typeof a!="object")return null;let l="$is"in a&&a.$is===null,c="$isNot"in a&&a.$isNot===null;if(!l&&!c)return null;let f=Cd(r,e);if(!f)return null;let u=s?.[e],d=Ft(o.introspection,i,u?.from||e,o.dialect,o.currentSchema);if(d){let w=t.selectFrom(Lr(d,i,d.targetTable)).select(sql`1`.as("_"));if(f.where&&Object.keys(f.where).length>0){let b=jn(w,f.where,f.select,f.join,d.targetTable,o);if(w=b.qb,Object.keys(b.remainingWhere).length>0){let _=Fr(b.remainingWhere,d.targetTable);w=w.where(E=>Ee(E,_,o));}}let S=t.exists(w);return c?S:t.not(S)}let p=xe(i,e,u,o.introspection),{targetTable:g,fkRel:m}=p;if(!m)return null;let h=t.selectFrom(g).select(sql`1`.as("_"));if(u?.on?h=h.where(w=>Ee(w,u.on,o)):h=Ur(h,m,g,i),f.where&&Object.keys(f.where).length>0){let w=jn(h,f.where,f.select,f.join,g,o);if(h=w.qb,Object.keys(w.remainingWhere).length>0){let S=Fr(w.remainingWhere,g);h=h.where(b=>Ee(b,S,o));}}let y=t.exists(h);return c?y:t.not(y)}function Cd(t,e){for(let n of t){if(typeof n=="string")continue;let r=n[e];if(r&&re(r))return r}return null}function kd(t,e){for(let[n,r]of Object.entries(t)){if((n==="$or"||n==="$and")&&Array.isArray(r)){if(r.some(a=>kd(a,e)))return true;continue}let s=r;if(!s||typeof s!="object")continue;let i="$is"in s&&s.$is===null,o="$isNot"in s&&s.$isNot===null;if((i||o)&&Cd(e,n))return true}return false}function re(t){return "select"in t||"spread"in t||"join"in t}function ll(t){if(typeof t=="string")return null;let[e,n]=Object.entries(t)[0]??[];return !e||n===void 0?null:{alias:e,def:n}}function qr(t){return ll(t)?.def??null}function Gw(t,e,n,r){if(t?.hint)return t.hint;if(!n||!r?.foreign_keys)return;let s=t?.from;return s&&s!==e&&r.foreign_keys.some(a=>a.table===n&&a.column===s)?s:r.foreign_keys.some(o=>o.table===n&&o.column===e)?e:void 0}function vd(t){return t.includes(".")?t.slice(t.lastIndexOf(".")+1):t}function Mi(t,e,n,r,s,i=false,o,a){let l=o??s,c=n.dialect==="postgres";if(!e||e.length===0)return c&&l&&(Nr(l,n.introspection,Fe(n))||Fi(l,n))?Ad(t,l,n,new Set,false,s):t.selectAll();for(let f of e)if(typeof f=="string")if(f==="*")if(c&&l&&(Nr(l,n.introspection,Fe(n))||Fi(l,n))){let u=new Set;for(let d of e){if(d===f)break;if(typeof d=="string"&&d!=="*")u.add(d.includes(".")?d.split(".").pop():d);else if(typeof d!="string")for(let[p]of Object.entries(d))u.add(p);}t=Ad(t,l,n,u,i,s);}else t=i&&s?t.selectAll(s):t.selectAll();else if(/^-?\d+(?:\.\d+)?$/.test(f))t=t.select(sql.lit(Number(f)).as("_lit"));else if(iS(f,n,s)){let u=i&&s?St(s,f,n,s):de(f,n,s);t=t.select(sql`json(${u})`.as(f));}else if(c&&l&&s&&!f.includes(".")&&!Pi(n.introspection,l,f,n.currentSchema)){let u=$i(n.introspection,l,f,n.dialect,n.currentSchema);t=u?t.select(Ii(u,s).as(f)):t.select(f);}else if(c&&s&&l&&td(l,vd(f),n.introspection,Fe(n))){let u=vd(f),d=f.includes(".")?sql.ref(f):i?St(s,f,n,s):sql.ref(f);t=t.select(Ir(d,l,u,n.dialect,n.introspection,Fe(n)).as(u));}else t=i&&s&&!f.includes(".")?t.select(St(s,f,n,s).as(f)):!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(f)&&ki(f,n,s)?t.select(de(f,n,s).as(f)):t.select(f);else for(let[u,d]of Object.entries(f))re(d)?t=vS(t,u,d,n,r,l,a):t=Zw(t,u,d,n,s,i,l);return t}function Fe(t){return t.currentSchema??t.introspection?.default_schema??"public"}function Fi(t,e){if(!t||e.dialect!=="postgres"||!e.introspection?.columns)return false;let n=Fe(e);return e.introspection.columns.some(r=>r.table===t&&(r.schema??"public")===n&&Lt(r.name,e,t))}function Ad(t,e,n,r,s=false,i=e){if(!n.introspection)return s?t.selectAll(i):t.selectAll();let o=Qa(e,n.introspection,Fe(n));if(o.length===0)return s?t.selectAll(i):t.selectAll();for(let{name:a,isDomain:l,domainTypeName:c}of o){if(r.has(a))continue;let f=s?sql`${sql.ref(i)}.${sql.ref(a)}`:sql.ref(a);if(l&&c){let u=Ci(f,c);t=t.select((u??f).as(a));}else Lt(a,n,e)?t=t.select(sql`to_jsonb(${f})`.as(a)):t=s?t.select(f.as(a)):t.select(a);}return t}function Hr(t,e,n){let r=n?.dialect==="postgres",s=n?.currentTable;if(!e||e.length===0)return r&&s&&(Nr(s,n.introspection,Fe(n))||Fi(s,n))?Od(t,s,n):t;for(let i of e)if(typeof i=="string")if(i==="*")if(r&&s&&(Nr(s,n.introspection,Fe(n))||Fi(s,n))){let o=new Set;for(let a of e){if(a===i)break;if(typeof a=="string"&&a!=="*")o.add(a.includes(".")?a.split(".").pop():a);else if(typeof a!="string")for(let[l]of Object.entries(a))o.add(l);}t=Od(t,s,n,o);}else t=t.returningAll();else if(r&&s&&Lt(i,n,s))t=t.returning(sql`to_jsonb(${sql.ref(i)})`.as(i));else if(r&&s){let o=sql.ref(i),a=Ir(o,s,i,n.dialect,n.introspection,Fe(n));t=a!==o?t.returning(a.as(i)):t.returning(i);}else t=t.returning(i);else for(let[o,a]of Object.entries(i)){if(re(a))continue;let l=a.column||o;if(r&&s&&!a.cast&&!a.path&&!a.aggregate&&Lt(l,n,s))t=t.returning(sql`to_jsonb(${sql.ref(l)})`.as(o));else if(r&&s&&!a.cast&&!a.path&&!a.aggregate){let c=sql.ref(l),f=Ir(c,s,l,n.dialect,n.introspection,Fe(n));t=f!==c?t.returning(f.as(o)):t.returning(l);}else t=t.returning(l);}return t}function Od(t,e,n,r){if(!n.introspection)return t.returningAll();let s=Qa(e,n.introspection,Fe(n));if(s.length===0)return t.returningAll();for(let{name:i,isDomain:o,domainTypeName:a}of s)if(!r?.has(i))if(o&&a){let l=sql.ref(i),c=Ci(l,a);c?t=t.returning(c.as(i)):t=t.returning(i);}else Lt(i,n,e)?t=t.returning(sql`to_jsonb(${sql.ref(i)})`.as(i)):t=t.returning(i);return t}function Wr(t,e,n,r,s,i=false,o){let a;if(n.aggregate==="count"&&!n.column&&!n.path)a=t.fn.countAll();else {let l=n.column||e;if(n.invalidJsonTextTraversalKey&&r.dialect==="postgres")throw Object.assign(new Error(`operator does not exist: text -> ${Vw(n.invalidJsonTextTraversalKey)}`),{code:"42883",detail:null,hint:"No operator matches the given name and argument types. You might need to add explicit type casts."});if(n.path)a=od(l,n.path,r,s,n.pathText===true);else {let c=s&&i?St(s,l,r,s):de(l,r,s);a=r.dialect==="postgres"&&!n.cast&&!n.preCast&&!n.aggregate?Ir(c,o??s??r.currentTable,l,r.dialect,r.introspection,Fe(r)):c;}n.preCast&&(an(n.preCast,"pre-cast type"),a=sql`cast(${a} as ${sql.raw(n.preCast)})`),n.aggregate&&(a=sql`${sql.raw(n.aggregate)}(${a})`);}return n.cast&&(an(n.cast,"cast type"),r.dialect==="sqlite"&&n.pathText===true&&zw(n.cast)||(n.cast.trim().toLowerCase()==="text"&&n.column&&Yw(r,s,n.column)?a=Xf(a,r.dialect):a=r.dialect==="sqlite"&&(Qw(n.cast)||Xw(n.cast))?sql`json(${a})`:sql`cast(${a} as ${sql.raw(n.cast)})`)),a}function zw(t){let e=t.trim().toLowerCase();return e==="integer"||e==="int"||e==="int2"||e==="int4"||e==="int8"||e==="bigint"||e==="smallint"}function Vw(t){return /^-?\d+$/.test(t)?"integer":"unknown"}function Qw(t){let e=t.trim().toLowerCase();return e==="json"||e==="jsonb"}function Xw(t){let e=t.trim().toLowerCase();return e.startsWith("_")||e.endsWith("[]")}function Yw(t,e,n){let r=e??t.currentTable;if(!r||!t.introspection?.columns)return false;let s=t.introspection.columns.filter(o=>o.table===r&&o.name===n);if(s.length===0)return false;let i=s.find(o=>o.schema===Fe(t))??s.find(o=>o.schema==="public")??s[0];return Ne(i.pg_type,i.type)==="color"}function Zw(t,e,n,r,s,i=false,o){return t.select(a=>Wr(a,e,n,r,s,i,o).as(e))}function eS(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(!re(n)&&n.aggregate)return true}return false}function tS(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(re(n)&&n.spread&&cl(n.select))return true}return false}function Pd(t){if(!t)return false;for(let e of t)if(typeof e!="string"){for(let n of Object.values(e))if(re(n)&&n.spread)return true}return false}function nS(t){return eS(t)||tS(t)}function cl(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let n of Object.values(e)){if(re(n)){if(cl(n.select))return true;continue}if(n.aggregate)return true}return false}function ul(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let n of Object.values(e)){if(re(n)){if(n.spread)continue;if(ul(n.select))return true;continue}if(n.aggregate&&!n.bareCount)return true}return false}function fl(t,e,n,r,s,i=false,o){if(!nS(e))return t;let a=[];for(let l of e){if(typeof l=="string"){if(l==="*")continue;a.push(de(l,n,r));continue}for(let[c,f]of Object.entries(l))re(f)||f.aggregate||a.push(u=>Wr(u,c,f,n,r,i,o));}return rS(a,e,n,r,s),a.length===0?t:t.groupBy(a)}function rS(t,e,n,r,s){if(!(!e||!r||!n.introspection?.foreign_keys)){for(let i of e)if(typeof i!="string")for(let[o,a]of Object.entries(i)){if(!re(a)||!a.spread)continue;let l=a,c=s?.[o],f=xe(r,o,c,n.introspection);if(!f.fkRel||!_t(f))continue;let u=f.targetTable;f.fkRel;let p=qi(l.select,u,n.introspection)??l.select??[],g=`_spread_${o}`;for(let m of p){if(typeof m=="string"){m!=="*"&&t.push(`${g}.${m}`);continue}let[h,y]=Object.entries(m)[0];re(y)||y.aggregate||t.push(w=>Wr(w,h,y,n,g,true));}}}}function jd(t,e,n,r,s){if(!t||!e||!r||!s.introspection?.foreign_keys)return t;let i=new Set;for(let o of e)if(typeof o!="string")for(let[a,l]of Object.entries(o)){if(!re(l)||!l.spread)continue;let c=n?.[a],f=xe(r,a,c,s.introspection);f.fkRel&&_t(f)&&i.add(a);}return i.size===0?t:t.map(o=>o.embed&&i.has(o.embed)?{...o,embed:`_spread_${o.embed}`}:o)}function Ld(t,e,n,r){if(!t||!n||!r.introspection?.foreign_keys)return false;for(let s of t)if(typeof s!="string")for(let[i,o]of Object.entries(s)){if(!re(o)||!o.spread)continue;let a=e?.[i],l=xe(n,i,a,r.introspection);if(l.fkRel&&_t(l))return true}return false}function Ln(t){let e=new Map;for(let n of t){let r=n.foreign_key_group??n.foreign_key_name,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function Br(t,e,n,r){let s=r==="m2o"?n.map(o=>`${t}.${o.column}`):n.map(o=>`${e}.${o.column}`),i=r==="m2o"?n.map(o=>`${e}.${o.ref_column}`):n.map(o=>`${t}.${o.ref_column}`);return {leftCol:s[0],rightCol:i[0],leftCols:s,rightCols:i,type:r,fk:n[0]}}function dl(t,e,n,r,s=n){let i=s===n?n:`${n} as ${s}`;return e.type==="m2o"?t.leftJoin(i,o=>{let a=o;for(let{leftCol:l,rightCol:c}of it(e)){let[,f]=l.split("."),[,u]=c.split(".");a=a.onRef(`${s}.${u}`,"=",`${r}.${f}`);}return a}):t.leftJoin(i,o=>{let a=o;for(let{leftCol:l,rightCol:c}of it(e)){let[,f]=l.split("."),[,u]=c.split(".");a=a.onRef(`${s}.${f}`,"=",`${r}.${u}`);}return a})}function Bi(t,e,n,r,s){let i=new Set;if(!e||!r.introspection?.foreign_keys)return {sub:t,joined:i};for(let o of e){if(!o.embed||i.has(o.embed))continue;Pe(o.embed,"order embed alias");let a=s?.[o.embed],l=xe(n,o.embed,a,r.introspection);if(l.targetTable!==o.embed&&Pe(l.targetTable,"order embed target"),!l.fkRel||!_t(l)||l.fkRel.type==="m2m")continue;let{targetTable:c,fkRel:f}=l;t=dl(t,f,c,n,o.embed),i.add(o.embed),i.add(c);}return {sub:t,joined:i}}function sS(t){return t&&t.map(e=>e.embed&&e.nullsFirst===void 0?{...e,nullsFirst:e.direction==="desc"}:e)}function Ui(t,e,n){let r=n.includes(".")?n.split(".").pop():n,s=t.introspection?.columns?.find(o=>o.table===e&&o.name===r),i=(s?.pg_type||s?.type||"").toLowerCase();return i==="json"||i==="jsonb"}function iS(t,e,n){return e.dialect==="sqlite"&&n!==void 0&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)&&Ui(e,n,t)}function oS(t,e){if(!t)return false;let n=e.includes(".")?e.split(".").pop():e;return t.some(r=>r.column.includes("->")?r.column.slice(0,r.column.indexOf("->"))===n:false)}function Fd(t,e,n,r){return Ui(t,e,n)||oS(r,n)}function aS(t,e,n){if(!t)return null;let r=[];for(let s of t){if(typeof s=="string"){if(s==="*")return null;let l=s.includes(".")?s.split(".").pop():s;r.push({alias:l,asJson:Ui(n,e,l)});continue}let[i,o]=Object.entries(s)[0];if(!i||!o)continue;if(re(o))return null;let a=Ui(n,e,o.column||i);r.push({alias:i,asJson:a});}return r}function lS(t,e,n,r){let s=aS(e,n,r);if(!s||s.length===0)return r.jsonObjectFrom(t);let i=s.flatMap(o=>[sql.lit(o.alias),o.asJson?sql`json(${sql.ref(`obj.${o.alias}`)})`:sql.ref(`obj.${o.alias}`)]);return sql`(select json_object(${sql.join(i)}) from ${t} as obj)`}function Ud(t){if(!t||t.length===0)return false;for(let e of t){if(typeof e=="string")return true;let n=ll(e);if(n&&(!re(n.def)||Ud(n.def.select)))return true}return false}function Md(t,e,n){return n?n.indexes?.some(i=>i.table===t&&i.unique&&i.columns.length===1&&i.columns[0]===e)||n.unique_constraints?.some(i=>i.table===t&&i.columns.length===1&&i.columns[0]===e)?true:n.primary_keys?.some(i=>i.table===t&&i.columns.length===1&&i.columns[0]===e)??false:false}function cS(t,e,n,r){if(t.type==="m2m")return "many-to-many";if(t.type==="m2o"&&r&&t.fk)return Md(e,t.fk.column,r)?"one-to-one":"many-to-one";if(t.type==="o2m"&&r&&t.fk){let s={leftCol:`${n}.${t.fk.column}`,rightCol:`${e}.${t.fk.ref_column}`,type:"o2m"};if(Wd(r,e,n,void 0,s))return "one-to-one"}return "one-to-many"}function uS(t,e,n){if(!t?.views?.length)return [];let r=n??t.tables?.find(s=>s.name===e)?.schema??t.foreign_keys?.find(s=>s.table===e)?.schema;return t.views.filter(s=>s.name!==e&&s.sql&&fS(s.sql)===e&&(!r||s.schema===r)).map(s=>s.name)}function fS(t){let e=t.match(/\bfrom\s+((?:"[^"]+"|`[^`]+`|\[[^\]]+\]|[\w$]+)(?:\s*\.\s*(?:"[^"]+"|`[^`]+`|\[[^\]]+\]|[\w$]+))?)/i);if(!e)return;let n=e[1].split(/\s*\.\s*/);return n[n.length-1].replace(/^["`[]|["`\]]$/g,"")}function dS(t,e){let n=new Set(e?.views?.map(s=>s.name)??[]),r=t.filter(s=>s.type==="m2m"&&!n.has(s.junctionTable));for(let s of r){if(s.type!=="m2m")continue;let i=s.parentFkGroup?.[0]?.schema;for(let o of uS(e,s.junctionTable,i))t.push({...s,junctionTable:o});}}function pS(t){if(t.type!=="m2m")return null;let e=t.parentFkGroup?.[0]?.foreign_key_name??"",n=t.targetFkGroup?.[0]?.foreign_key_name??"";return `${t.junctionTable}:${e}:${n}`}function $d(t){return t.type!=="m2m"?0:[...t.parentFkGroup??[],...t.targetFkGroup??[]].filter(n=>n.foreign_key_group).length}function mS(t){let e=[],n=new Map;for(let r of t){let s=pS(r);if(!s){e.push(r);continue}let i=n.get(s);if(i===void 0){n.set(s,e.length),e.push(r);continue}$d(r)<$d(e[i])&&(e[i]=r);}return e}function il(t,e){if(t.type==="m2m")return t.junctionTable;if(t.fk)return Mr(t.fk)}function ol(t,e,n,r){if(t.type==="m2m"&&t.parentFkGroup?.[0]&&t.targetFkGroup?.[0]){let a=t.parentFkGroup[0],l=t.targetFkGroup[0];return `${t.junctionTable} using ${Mr(a)}(${a.column}) and ${Mr(l)}(${l.column})`}if(t.type==="m2m"||!t.fk)return "";let s=Mr(t.fk);if(t.type==="o2m"){let a=Li(t.rightCols??[t.rightCol]),l=Li(t.leftCols??[t.leftCol]);return `${s} using ${e}(${a}) and ${n}(${l})`}let i=Li(t.leftCols??[t.leftCol]),o=Li(t.rightCols??[t.rightCol]);return `${s} using ${e}(${i}) and ${n}(${o})`}function Li(t){return t.map(e=>e.split(".").at(-1)??e).join(", ")}function hS(t,e,n){if(!t||!e)return null;let r=t.partitions?.find(o=>o.name===e&&(!n||o.schema===n));if(r)return `Perhaps you meant '${r.parent}' instead of '${e}'.`;let s=[];for(let o of t.tables??[])s.push(o.name);for(let o of t.views??[])s.push(o.name);let i=s.find(o=>o.length===e.length+1&&o.startsWith(e));return i?`Perhaps you meant '${i}' instead of '${e}'.`:null}function pl(t,e,n,r){let s=t?.foreign_keys?.find(o=>o.table===e||o.ref_table===e)?.schema||"test",i=r?` using the hint '${r}'`:"";throw new ve({httpStatus:400,code:"PGRST200",message:`Could not find a relationship between '${e}' and '${n}' in the schema cache`,details:`Searched for a foreign key relationship between '${e}' and '${n}'${i} in the schema '${s}', but no matches were found.`,hint:hS(t,n,s)})}function gS(t,e,n,r,s=false){if(!t||!t.foreign_keys)return null;let i=t.foreign_keys.filter(h=>h.is_visible!==false);if(r){let h=Td(r,e,n,i,{preferSelfReferenceTargetColumn:s});if(h)return h;pl(t,e,n,r);}if(e===n){let h=Ln(i.filter(y=>y.table===n&&y.ref_table===e))[0];if(h)return Br(e,n,h,"o2m")}let o=i.filter(h=>h.table===e&&h.ref_table===n),a=Ln(o),l=i.filter(h=>h.table===n&&h.ref_table===e),c=Ln(l),f=[],u=Ln(i.filter(h=>h.ref_table===e));for(let h of u){let y=h[0].table;if(y===e||y===n)continue;let w=i.filter(S=>S.table===y&&S.ref_table===n);if(w.length!==0)for(let S of Ln(w))f.push({type:"m2m",junctionTable:y,junctionToParentCols:h.map(b=>b.column),parentCols:h.map(b=>b.ref_column),junctionToTargetCols:S.map(b=>b.column),targetCols:S.map(b=>b.ref_column),fk:h[0],parentFkGroup:h,targetFkGroup:S});}if(a.length+c.length+f.length===0)return null;let p=[...f];dS(p,t),p=mS(p);let g=e!==n&&a.length>0&&c.length>0;if(a.length>1||c.length>1||a.length===0&&c.length===0&&p.length>1||g||a.length>0&&p.length>1){let h=[...a.map(E=>Br(e,n,E,"m2o")),...c.map(E=>Br(e,n,E,"o2m")),...p],y={o2m:0,m2o:1,m2m:2},w=[...h].sort((E,x)=>{let O=y[E.type]??3,v=y[x.type]??3;if(O!==v)return O-v;let P=il(E)??"",C=il(x)??"",R=P.localeCompare(C);return R!==0?R:ol(E,e,n).localeCompare(ol(x,e,n))}),S=w.map(E=>({cardinality:cS(E,e,n,t),embedding:`${e} with ${n}`,relationship:ol(E,e,n)})),_=w.map(E=>il(E)).filter(Boolean).map(E=>`'${n}!${E}'`).join(", ");throw new ve({httpStatus:300,code:"PGRST201",message:`Could not embed because more than one relationship was found for '${e}' and '${n}'`,details:S,hint:_?`Try changing '${n}' to one of the following: ${_}. Find the desired relationship in the 'details' key.`:null})}return a.length===1?Br(e,n,a[0],"m2o"):c.length===1?Br(e,n,c[0],"o2m"):f.length===1?f[0]:null}function yS(t,e,n){if(!n?.foreign_keys)return {targetTable:t};let r=n.foreign_keys,s=r.find(l=>l.table===e&&l.column===t);if(s)return {targetTable:s.ref_table,resolvedFkHint:t};let i=r.find(l=>(l.foreign_key_name===t||Di(l,t))&&(l.table===e||l.ref_table===e));if(i)return {targetTable:i.table===e?i.ref_table:i.table,resolvedFkHint:t};let o=r.find(l=>l.ref_table===e&&l.ref_column===t);return o?{targetTable:o.table,resolvedFkHint:t}:n.tables?.some(l=>l.name===t)||n.views?.some(l=>l.name===t)?{targetTable:t}:{targetTable:t}}function bS(t,e,n,r,s){if(!t)return "o2m";if(t.type==="m2m")return "m2m";if(t.type==="m2o"){let i=t.leftCol.split(".")[1];return Md(e,i,s)?"o2o":"m2o"}return Wd(s,e,n,r,t)?"o2o":"o2m"}function xe(t,e,n,r){let s=n?.from||e,{targetTable:i,resolvedFkHint:o}=yS(s,t,r),a=Gw(n,e,t,r)??o,l=t===i&&!!(n?.hint&&n.from&&n.from!==e),c=r?.foreign_keys&&t?gS(r,t,i,a,l):null,f=bS(c,t,i,a,r);return {targetTable:i,fkRel:c,cardinality:f,displayHint:a}}function _t(t){return t.cardinality==="m2o"||t.cardinality==="o2o"}function Bd(t,e,n,r){if(!(!t||!n||!r.introspection?.foreign_keys))for(let s of t){if(!s.embed)continue;let i=e?.[s.embed],o=xe(n,s.embed,i,r.introspection);if(o.fkRel&&!_t(o))throw new ve({httpStatus:400,code:"PGRST118",message:`A related order on '${s.embed}' is not possible`,details:`'${n}' and '${s.embed}' do not form a many-to-one or one-to-one relationship`,hint:null})}}function Id(t,e,n,r,s){let i=e.join??r;if(!e.select||!i)return t;for(let o of e.select){if(typeof o=="string")continue;let a=Object.keys(o)[0],l=o[a];if(!re(l)||!l.select)continue;let c=i[a];if(c?.type!=="inner")continue;let f=Ft(s.introspection,n,c?.from||a,s.dialect,s.currentSchema),u=f?f.targetTable:xe(n,a,c,s.introspection).targetTable;t=t.where(d=>qd(d,l,u,n,c,l.join??i,s));}return t}function qd(t,e,n,r,s,i,o){let a=r?Ft(o.introspection,r,s?.from??n,o.dialect,o.currentSchema):null;if(a){let u=t.selectFrom(Lr(a,r,a.targetTable)).select(sql`1`.as("_"));return e.where&&Object.keys(e.where).length>0&&(u=u.where(d=>Ee(d,e.where,{...o,currentTable:a.targetTable}))),r&&(u=Id(u,e,a.targetTable,i,o)),t.exists(u)}let c=(r?xe(r,s?.from??n,s,o.introspection):null)?.fkRel??null,f=t.selectFrom(n).select(sql`1`.as("_"));if(s?.on)f=f.where(u=>Ee(u,s.on,o));else if(c&&c.type==="m2m")f=ji(f,c,n,r);else if(c)for(let{leftCol:u,rightCol:d}of it(c))f=f.whereRef(u,"=",d);else r&&(f=f.whereRef(`${n}.${r}_id`,"=",`${r}.id`));return e.where&&Object.keys(e.where).length>0&&(f=f.where(u=>Ee(u,e.where,{...o,currentTable:n}))),r&&(f=Id(f,e,n,i,o)),t.exists(f)}function Nd(t,e,n,r,s,i){let o=s?.[e],a=i?Ft(r.introspection,i,o?.from||e,r.dialect,r.currentSchema):null,l=a?a.targetTable:i?xe(i,e,o,r.introspection).targetTable:o?.from||e;return t.where(c=>qd(c,n,l,i,o,s,r))}function Hd(t,e,n){if(!n||t.type!=="o2m")return false;let r=t.leftCol.split(".")[1];return n.indexes?.some(o=>o.table===e&&o.unique&&o.columns.length===1&&o.columns[0]===r)||n.unique_constraints?.some(o=>o.table===e&&o.columns.length===1&&o.columns[0]===r)?true:n.primary_keys?.some(o=>o.table===e&&o.columns.length===1&&o.columns[0]===r)??false}function Wd(t,e,n,r,s){if(!t?.foreign_keys||!s||s.type!=="o2m")return false;if(Hd(s,n,t))return true;let o=t.foreign_keys.filter(u=>u.is_visible!==false).filter(u=>u.table===n&&u.ref_table===e);if(r){let u=o.filter(d=>d.foreign_key_name===r);u.length>0&&(o=u);}let a=Ln(o);if(a.length!==1)return false;let l=[...a[0].map(u=>u.column)].sort(),c=t.primary_keys?.find(u=>u.table===n);if(!c?.columns?.length)return false;let f=[...c.columns].sort();return l.length===f.length&&l.every((u,d)=>u===f[d])}function wS(t,e){return t&&t.map(n=>typeof n!="string"||n==="*"||n.includes(".")||/^-?\d+(?:\.\d+)?$/.test(n)?n:`${e}.${n}`)}function Mt(t){if(typeof t=="string")return {colAlias:t,colName:t};let e=Object.keys(t)[0],n=t[e];return {colAlias:e,colName:n?.column||e}}function SS(t,e,n,r,s,i){if(!n.select||!i)return t;let o=s?.[e],a=xe(i,e,o,r.introspection),{targetTable:l,fkRel:c}=a,f=qi(n.select,l,r.introspection)??n.select;if(!r.introspection?.foreign_keys)return kS(t,f,l,i,c);if(!c)throw new ve({httpStatus:400,code:"PGRST120",message:"Could not embed because the relationship is not a one-to-one or many-to-one",details:null,hint:null});if(!_t(a)){if(cl(n.select))throw new ve({httpStatus:400,code:"PGRST127",message:"Feature not implemented",details:"Aggregates are not implemented for one-to-many or many-to-many spreads.",hint:null});return CS(t,f,n,c,l,i,r)}let u=`_spread_${e}`;if(c.type!=="m2o"&&c.type!=="o2m")throw new ve({httpStatus:400,code:"PGRST120",message:"Could not embed because the relationship is not a one-to-one or many-to-one",details:null,hint:null});let d=it(c).map(({leftCol:m,rightCol:h},y)=>{let[w,S]=m.split("."),[,b]=h.split(".");return {targetSideCol:w===l?S:b,parentSideCol:w===i?S:b,joinKey:`__spread_join_key_${y}`}}),p=[],g=new Set;for(let m of f){if(typeof m=="string"&&m==="*")continue;let h;if(typeof m!="string"){let S=qr(m);if(!S||re(S))continue;h=S;}let{colAlias:y,colName:w}=Mt(m);p.push({src:w,out:y,def:h}),g.add(w);}t=t.leftJoin(m=>{let h=m.selectFrom(l);for(let{targetSideCol:y,joinKey:w}of d)h=h.select(`${l}.${y} as ${w}`);for(let y of g)h=h.select(`${l}.${y} as ${y}`);return h.as(u)},m=>{let h=m;for(let{joinKey:y,parentSideCol:w}of d)h=h.onRef(`${u}.${y}`,"=",`${i}.${w}`);return h});for(let{out:m,def:h}of p)h?t=t.select(y=>Wr(y,m,h,r,u,true).as(m)):t=t.select(`${u}.${m}`);return t}function _S(t,e,n,r){for(let s of t){if(typeof s=="string")continue;let i=qr(s);if(!i||!re(i))continue;let{colAlias:o}=Mt(s),a=e.join?.[o],l=xe(n,o,a,r.introspection),c=l.targetTable,f=l.fkRel;if(!f||f.type!=="o2m"||!Hd(f,c,r.introspection))continue;let u=r.introspection?.primary_keys?.find(d=>d.table===c);if(u?.columns?.length)return {nestedTargetTable:c,fkRel:f,pkColumns:u.columns}}return null}function ES(t,e){let n=e.frames[0],{fkRel:r,fromTable:s,parentTable:i,embed:o}=n,a=t.selectFrom(s);if(a=Ur(a,r,s,i),o.where&&Object.keys(o.where).length>0){let c=e.frames.length>1?e.config:{...e.config,currentTable:s};a=a.where(f=>Ee(f,o.where,c));}let l=Bi(a,o.order,s,e.config,o.join);return a=l.sub,o.order&&(a=Ut(a,sS(o.order),void 0,e.config,s)),o.limit!==void 0&&(a=a.limit(o.limit)),o.offset!==void 0&&(a=a.offset(o.offset)),e.tieBreaker&&e.frames.length===1&&(a=dl(a,e.tieBreaker.fkRel,e.tieBreaker.nestedTargetTable,s),a=Ut(a,e.tieBreaker.pkColumns.map(c=>({column:c,embed:e.tieBreaker.nestedTargetTable})),void 0,e.config)),{inner:a,joinedToOne:l.joined}}function xS(t,e,n,r){if(e.frames[0].embed.order||!n.fkRel||n.fkRel.type!=="o2m")return t;let s=e.config.introspection?.primary_keys?.find(i=>i.table===n.fromTable);return s?.columns?.length?Ut(t,s.columns.map(i=>({column:i,embed:n.fromTable})),void 0,e.config):t}function TS(t,e,n){if(n&&re(n)&&!n.spread)return true;let r=t.frames[t.frames.length-1],s=r.embedRel;if(t.frames.length>1&&s&&!_t(s))return true;let{colName:i}=Mt(e);return Fd(t.config,r.fromTable,i,t.frames[0].embed.order)}function RS(t,e,n,r){let s=qr(n),{colAlias:i,colName:o}=Mt(n),l=e.frames[r].fromTable;if(r===0&&s&&re(s)&&!s.spread){let c=e.frames[0].embed.join?.[i];return t.select(f=>Kd(f,i,s,e.config,c,l).as("value"))}if(s&&!re(s)){let c=r>0?{...s,column:`${l}.${o}`}:s,f=r>0?i:o;return t.select(u=>Wr(u,f,c,e.config,r>0?void 0:l).as("value"))}return t.select(`${l}.${o} as value`)}function al(t,e,n,r,s){if(r===e.frames.length-1)return RS(t,e,n,r);let o=e.frames[r],a=e.frames[r+1];if(!a.fkRel)return t.where(sql`1 = 0`).select(sql`null`.as("value"));let l=a.embedRel;if(!l)return t.where(sql`1 = 0`).select(sql`null`.as("value"));if(_t(l))return s.has(a.fromTable)||(t=dl(t,a.fkRel,a.fromTable,o.fromTable),s.add(a.fromTable)),t=xS(t,e,a),al(t,e,n,r+1,s);let{colName:c}=Mt(n);return t.select(f=>{let u=f.selectFrom(a.fromTable);return u=Ur(u,a.fkRel,a.fromTable,o.fromTable),u=al(u,e,n,r+1,new Set),e.config.jsonScalarArrayFrom(u,"value",Fd(e.config,a.fromTable,c,e.frames[0].embed.order)).as("value")})}function Dd(t,e,n){let{colAlias:r}=Mt(n),s=qr(n);return t.select(i=>{let{inner:o,joinedToOne:a}=ES(i,e),l=e.frames[e.frames.length-1];if(e.frames.length>1&&!l.fkRel){let f=o.where(sql`1 = 0`).select(sql`null`.as("value"));return e.config.jsonScalarArrayFrom(f).as(r)}let c=al(o,e,n,0,a);return e.config.jsonScalarArrayFrom(c,"value",TS(e,n,s)).as(r)})}function CS(t,e,n,r,s,i,o){let a=n.order?null:_S(e,n,s,o),l={frames:[{embed:n,fkRel:r,fromTable:s,parentTable:i}],config:o,tieBreaker:a};for(let c of e){if(typeof c=="string"&&c==="*")continue;let f=qr(c),u=f!==null&&re(f)&&f.spread,{colAlias:d}=Mt(c);if(u){let p=f,g=n.join?.[d],m=xe(s,d,g,o.introspection),h=qi(p.select,m.targetTable,o.introspection)??p.select??[],y={...l,frames:[...l.frames,{embed:p,fkRel:m.fkRel,fromTable:m.targetTable,parentTable:s,embedRel:m}]};for(let w of h)typeof w=="string"&&w==="*"||(t=Dd(t,y,w));continue}t=Dd(t,l,c);}return t}function kS(t,e,n,r,s){for(let i of e){if(typeof i=="string"&&i==="*")continue;let{colAlias:o,colName:a}=Mt(i);t=t.select(l=>{let c=l.selectFrom(n).select(`${n}.${a}`);if(s&&s.type!=="m2m")for(let{leftCol:f,rightCol:u}of it(s))c=c.whereRef(f,"=",u);else c=c.whereRef(`${n}.${r}_id`,"=",`${r}.id`);return c=c.limit(1),c.as(o)});}return t}function qi(t,e,n){if(!t||!n?.columns||!t.some(i=>i==="*"))return t;let r=n.columns.filter(i=>i.table===e).sort((i,o)=>i.ordinal_position-o.ordinal_position).map(i=>i.name);if(r.length===0)return t;let s=[];for(let i of t)if(i==="*")for(let o of r)s.push(o);else s.push(i);return s}function vS(t,e,n,r,s,i,o){let a=s?.[e];if(!Ud(n.select)){if(a?.type==="inner"&&i)return Nd(t,e,n,r,s,i);if(i&&!a?.on&&r.introspection?.foreign_keys&&!Ft(r.introspection,i,a?.from||e,r.dialect,r.currentSchema)){let l=xe(i,e,a,r.introspection);l.fkRel||pl(r.introspection,i,l.targetTable,l.displayHint);}return t}return a?.type==="inner"&&i&&(t=Nd(t,e,n,r,s,i)),n.spread&&i?SS(t,e,n,r,s,i):t.select(l=>Kd(l,e,n,r,a,i,o).as(e))}function Kd(t,e,n,r,s,i,o){let a=i?Ft(r.introspection,i,s?.from||e,r.dialect,r.currentSchema):null,l=a||!i?{targetTable:a?.targetTable??(s?.from||e),fkRel:null,cardinality:"o2m",displayHint:void 0}:xe(i,e,s,r.introspection),c=l.targetTable,{displayHint:f,fkRel:u}=l,d=i===c,p=d?o?`${c}_nested`:`${c}_self`:c,g=d?`${c} as ${p}`:c,m=a?t.selectFrom(Lr(a,o??i,p)):t.selectFrom(g),h=i&&!s?.on&&!a?u:null,y=h?.type==="m2m",w=qi(n.select,c,r.introspection),S=y?wS(w,p):w;if(m=Mi(m,S,r,n.join,p,y||Pd(S),d?c:p,d?p:void 0),n.where&&Object.keys(n.where).length>0){let x=jn(m,n.where,n.select,n.join,c,r);m=x.qb,Object.keys(x.remainingWhere).length>0&&(m=m.where(O=>Ee(O,x.remainingWhere,{...r,currentTable:c,currentTableAlias:p})));}let b=l.cardinality==="m2m"?"m2m":l.cardinality==="m2o"?"m2o":"o2m";if(s?.on)m=m.where(x=>Ee(x,s.on,r));else if(i&&!a){let x=h;if(x&&x.type==="m2m")b="m2m",m=ji(m,x,p,i);else if(x?.type==="m2o"){for(let{leftCol:O,rightCol:v}of it(x)){let[,P]=O.split("."),[,C]=v.split("."),R=o?`${o}.${P}`:`${i}.${P}`;m=m.whereRef(`${p}.${C}`,"=",R);}b="m2o";}else if(x){for(let{leftCol:O,rightCol:v}of it(x)){let[,P]=O.split("."),[,C]=v.split("."),R=d?`${p}.${P}`:O,U=o?`${o}.${C}`:d?v.replace(`${c}.`,`${i}.`):v;m=m.whereRef(R,"=",U);}b=x.type;}else r.introspection?.foreign_keys?pl(r.introspection,i,c,f):m=m.whereRef(`${p}.${i}_id`,"=",`${i}.id`);}m=fl(m,S,r,p,void 0,y||Pd(S),d?c:p),n.order?.some(x=>x.embed)&&(m=Bi(m,n.order,c,r,n.join).sub),m=Ut(m,n.order,void 0,r,c),b==="m2m"&&!n.order&&h?.type==="m2m"&&r.dialect==="sqlite"&&(m=m.orderBy(`${h.junctionTable}.${r.rowIdColumn}`,"asc")),n.limit!==void 0&&(m=m.limit(n.limit)),n.offset!==void 0&&(m=m.offset(n.offset)),a?.toOne&&(m=m.limit(1));let _=n.spread?true:a?a.toOne:b==="m2o"||l.cardinality==="o2o";return _&&r.dialect==="sqlite"?lS(m,S,c,r):(_?r.jsonObjectFrom:r.jsonArrayFrom)(m)}function Jd(t,e,n,r){if(!t||!r.introspection?.foreign_keys)return false;for(let s of t){let i=ll(s);if(!i||!re(i.def))continue;let{alias:o,def:a}=i;if(!a.spread)continue;let l=e?.[o],c=xe(n,o,l,r.introspection);if(c.fkRel&&!_t(c))return true}return false}Fn();function ml(t){return t.startsWith("pg_catalog.")?t.slice(11):t}function IS(t,e,n){let r=n.arg_types.map((s,i)=>`${n.arg_names[i]??""} => ${ml(s)}`);return `${t}.${e}(${r.join(", ")})`}function NS(t){return [...t].sort((e,n)=>{let r=e.arg_types.length-n.arg_types.length;if(r!==0)return r;let s=e.arg_types.map(ml).join(","),i=n.arg_types.map(ml).join(",");return s<i?-1:s>i?1:0})}function zd(t,e,n){return {message:`Could not choose the best candidate function between: ${NS(n).map(i=>IS(t,e,i)).join(", ")}`,details:null,hint:"Try renaming the parameters or the function itself in the database so function overloading can be resolved"}}function Qd(t,e){let n=t??[],{schema:r,fnName:s,method:i,providedNames:o,inputType:a,paramsType:l}=e,c=n.filter(u=>u.schema===r&&u.name===s);if(c.length===0)return null;if(!(l==="positional"&&o.length===0)){let u=Bt(n,{schema:r,fnName:s,providedNames:o});if(u.length>1)return zd(r,s,c);if(u.length===1)return null}if(i==="POST"&&a!=="text"){let u=c.filter(d=>!d.has_variadic&&d.arg_types.length===1&&d.arg_names.length===0&&(d.arg_types[0]==="json"||d.arg_types[0]==="jsonb"));if(u.length>1)return zd(r,s,u)}return null}function un(t){let e=t.args;if(e==null)return [];if(Array.isArray(e)){let n=e[0];return n&&typeof n=="object"&&!Array.isArray(n)?Object.keys(n):[]}return typeof e=="object"?"_raw"in e?[]:Object.keys(e):[]}function Xd(t){if(!t)return;let e=t.toLowerCase();if(e.includes("application/octet-stream"))return "bytea";if(e.includes("xml"))return "xml";if(e.includes("text/plain"))return "text"}function DS(t,e){let n=new Set(t.arg_names.filter(i=>i!=="")),r=new Set(e);for(let i of e)if(!n.has(i))return false;let s=t.arg_types.length-(t.arg_defaults||0)-(t.has_variadic?1:0);for(let i=0;i<s;i++){let o=t.arg_names[i];if(!o||!r.has(o))return false}return true}function Bt(t,e){let{schema:n,fnName:r,providedNames:s}=e;return t.filter(i=>i.schema===n&&i.name===r&&DS(i,s))}function Wi(t,e){let n=t??[],r=e.paramsType==="positional"&&e.providedNames.length===0&&e.method==="POST"&&e.inputType!=="text",s;if(r)s=[];else if(e.paramsType==="positional"){let i=e.argCount??0;s=n.filter(o=>o.schema===e.schema&&o.name===e.fnName&&o.arg_types.length===i);}else s=Bt(n,{schema:e.schema,fnName:e.fnName,providedNames:e.providedNames});if(s.length===1)return s[0];if(s.length===0&&e.method==="POST"&&e.inputType!=="text"){let i=n.filter(o=>o.schema===e.schema&&o.name===e.fnName&&!o.has_variadic&&o.arg_types.length===1&&o.arg_names.length===0&&(o.arg_types[0]==="json"||o.arg_types[0]==="jsonb"));if(i.length===1)return i[0]}return null}function Ki(t,e){let n=Wi(t,e);if(!n)return null;let r=n.has_out_args||n.return_typtype==="c"||n.return_typtype==="p",s=n.return_type.toLowerCase()==="void"&&!n.has_out_args;return {return_is_setof:n.return_is_setof,return_type:n.return_type,returns_object:r,returns_void:s,volatility:n.volatility}}function Yd(t,e){let n=Wi(t?.functions,e);if(!n||n.return_typtype!=="c")return null;let r=n.return_type.replace(/^setof\s+/i,"").trim(),s=(r.includes(".")?r.slice(r.lastIndexOf(".")+1):r).replace(/^"|"$/g,""),i=[...t?.tables??[],...t?.views??[]];return i.find(a=>a.name===s&&a.schema===e.schema)??i.find(a=>a.name===s)?s:null}function jS(t){return [...t].sort().join(", ")}function LS(t){if(t.arg_types.length===0)return null;let e=t.arg_names.filter(n=>n!=="");return e.length!==t.arg_types.length?null:{arity:t.arg_types.length,sig:jS(e)}}function FS(t,e,n,r){let s=r.filter(d=>d.schema===t),i=()=>{let d=[...new Set(s.map(p=>p.name))].filter(p=>p!==e);return Kr(e,d)},o=d=>`Perhaps you meant to call the function ${t}.${d}`,a=d=>`Perhaps you meant to call the function ${t}.${e}(${d})`,l=s.filter(d=>d.name===e).map(LS).filter(d=>d!==null);if(l.length===0){let d=i();return d?o(d):null}if(s.filter(d=>d.name===e).length>1){let d=l.filter(p=>p.arity===n.length);return d.length===1?a(d[0].sig):null}return l[0].sig.split(", ").every(d=>n.includes(d)||Kr(d,n)!==null)?a(l[0].sig):null}function Vd(t,e){let{schema:n,fnName:r,method:s,providedNames:i,inputType:o,rawKind:a}=t,l=[...i].sort(),c=s==="POST",f=c&&o==="text",u;f?u=`with a single unnamed ${a??"text"} parameter`:c?u=l.length===0?"without parameters or with a single unnamed json/jsonb parameter":`with ${l.length===1?"parameter":"parameters"} ${l.join(", ")} or with a single unnamed json/jsonb parameter`:u=l.length===0?"without parameters":`with ${l.length===1?"parameter":"parameters"} ${l.join(", ")}`;let d=`Searched for the function ${n}.${r} ${u}, but no matches were found in the schema cache.`,p;l.length>0?p=`${n}.${r}(${l.join(", ")})`:f?p=`${n}.${r}`:p=`${n}.${r} without parameters`;let g=`Could not find the function ${p} in the schema cache`,m=FS(n,r,i,e);return {message:g,details:d,hint:m}}function hl(t,e){let n=t??[],r=n.filter(s=>s.schema===e.schema&&s.name===e.fnName);return r.length===0?Vd(e,n):e.paramsType==="positional"&&e.providedNames.length===0||Bt(n,{schema:e.schema,fnName:e.fnName,providedNames:e.providedNames}).length>0||e.method==="POST"&&e.inputType!=="text"&&r.some(i=>!i.has_variadic&&i.arg_types.length===1&&i.arg_names.length===0&&(i.arg_types[0]==="json"||i.arg_types[0]==="jsonb"))||e.inputType==="text"?null:Vd(e,n)}function US(t,e,n){return t.schema?.get(`${e??"public"}.${n}`)}function yl(t,e,n,r,s={}){if(!t)return t;let i=US(e,n,r),o=a=>{let l=MS(a,i,e,n,r),c=s.applyDefaults&&i?i.applyDefaults(l):l;return i?i.serializeRow(c):BS(c,e,n,r)};return Array.isArray(t)?t.map(a=>o(a)):o(t)}function MS(t,e,n,r,s){let i={};for(let[o,a]of Object.entries(t)){let l=e?.get(o)?.context.pgTypeName??rp(n,r,s,o)??void 0;i[o]=qS(a,l,n.dialect);}return i}function BS(t,e,n,r){if(e.dialect!=="sqlite")return t;let s={};for(let[i,o]of Object.entries(t)){let a=rp(e,n,r,i);s[i]=HS(a)?Gi(o):o;}return s}function rp(t,e,n,r){let i=(t.introspection?.columns??[]).filter(l=>l.table===n&&l.name===r);if(i.length===0)return;let o=e??t.introspection?.default_schema??"public",a=i.find(l=>l.schema===o)??i.find(l=>l.schema==="public")??i[0];return Ne(a.pg_type,a.type)}function qS(t,e,n){if(t==null)return t;let r=e?.toLowerCase().trim();if(n!=="sqlite"&&r&&Le(r)){if(r==="color"){if(typeof t=="string"){let i=t.trim();return $n(i.startsWith("#")?i:`#${i}`)}return t}return ed(t,r)}if(typeof t!="string")return t;if(r==="color"){let i=t.trim();return $n(i.startsWith("#")?i:`#${i}`)}if(n!=="sqlite"){let i=Jr(e);return i==="boolean"?Zd(t):i==="integer"?Ji(t,true):i==="number"?Ji(t,false):i==="json"?gl(t):i==="array"?ep(t):t}if(r==="color")return $n(t);if(r==="isodate"||r==="isodatetext")return t.replace(/Z$/,"+00:00");if(r==="unixtz"){let i=Date.parse(t);if(Number.isFinite(i))return Math.trunc(i/1e3)}if(r==="monetary"||r==="monetarytext"){let i=Number(t);return Number.isFinite(i)?i.toFixed(2):t}let s=Jr(e);return s==="boolean"?Zd(t):s==="integer"?Ji(t,true):s==="number"?Ji(t,false):s==="json"?gl(t):s==="array"?ep(t):t}function Jr(t){if(!t)return;let e=t.toLowerCase().trim();if(e.startsWith("_")||e.endsWith("[]"))return "array";if(e==="bool"||e==="boolean")return "boolean";if(["int2","smallint","int4","integer","int","int8","bigint"].includes(e))return "integer";if(["float4","real","float8","double precision","numeric","decimal"].includes(e))return "number";if(e==="json"||e==="jsonb")return "json"}function Zd(t){let e=t.trim().toLowerCase();return ["true","t","1","yes","y","on"].includes(e)?true:["false","f","0","no","n","off"].includes(e)?false:t}function Ji(t,e){let n=t.trim();if(n==="")return t;let r=Number(n);return !Number.isFinite(r)||e&&!Number.isInteger(r)?t:r}function gl(t){let e=t.trim();if(e==="")return t;try{return JSON.parse(e)}catch{return t}}function ep(t){let e=gl(t);return Array.isArray(e)?e:t}function HS(t){let e=Jr(t);return e==="json"||e==="array"}var WS=new Set(["text","character","character varying","bpchar","varchar","name","citext"]);function tp(t){let e=t.toLowerCase().trim(),n=e.endsWith("[]")?e.slice(0,-2).trim():e;return !WS.has(n)}function Gi(t){return t==null||typeof t=="string"?t:JSON.stringify(t)}function sp(t,e){let n=e.db;switch(t.schema&&(n=n.withSchema(t.schema),e={...e,currentSchema:t.schema}),t.type){case "query":return nl(t,e,n);case "insert":return JS(t,e,n);case "update":return GS(t,e,n);case "delete":return zS(t,e,n);case "upsert":case "put":return VS(t,e,n);case "rpc":return XS(t,e,n);default:throw t&&"type"in t?(console.error(t),new Error(`Unsupported AST type: ${t.type}`)):new Error("Invalid AST")}}function Ut(t,e,n,r,s){if(!e)return t;for(let i of e){let o=i.embed?(Pe(i.embed,"order embed alias"),i.column.includes("->")?r?jr(i.column,r,s,i.embed):np(i.column,i.embed):(Pe(i.column,"order embed column"),r?St(i.embed,i.column,r,s):sql`${sql.ref(i.embed)}.${sql.ref(i.column)}`)):i.column.includes("->")?r?jr(i.column,r,s,n):np(i.column,void 0,n):n?r?St(n,i.column,r,s):sql`${sql.ref(n)}.${sql.ref(i.column)}`:r?de(i.column,r,s):i.column,a=i.nullsFirst!==void 0?i.nullsFirst:r?.dialect==="sqlite"?i.direction==="desc":void 0;a!==void 0?t=t.orderBy(o,l=>{let c=i.direction==="desc"?l.desc():l.asc();return a?c.nullsFirst():c.nullsLast()}):t=t.orderBy(o,i.direction||"asc");}return t}function np(t,e,n){let{col:r,parts:s}=ln(t);if(s.length===0)return sql.ref(t);e&&Pe(r,"order embed column");let i=Dr(s,"ORDER BY JSON path key");return e?sql`${sql.ref(e)}.${sql.ref(r)}${sql.raw(i)}`:n?sql`${sql.ref(n)}.${sql.ref(r)}${sql.raw(i)}`:sql`${sql.ref(r)}${sql.raw(i)}`}function Gr(t,e,n,r,s){return !e||Object.keys(e).length===0?t:t.where(i=>Ee(i,e,{...n,currentTable:r,currentSchema:s}))}function nl(t,e,n){let r=n.selectFrom(t.from);return ip(r,t,e,t.from)}function ip(t,e,n,r){t=KS(t,e.join,e.select);let s=e.order?.some(f=>f.embed)===true;t=Mi(t,e.select,n,e.join,r,s||Ld(e.select,e.join,r,n));let i=e.where??{},{qb:o,remainingWhere:a}=jn(t,i,e.select,e.join,r,n);t=o,t=Gr(t,a,n,r,e.schema),t=fl(t,e.select,n,r,e.join),Bd(e.order,e.join,r,n),s&&(t=Bi(t,e.order,r,n,e.join).sub);let l=Jd(e.select,e.join,r,n)?r:void 0,c=jd(e.order,e.select,e.join,r,n);return t=Ut(t,c,l,n,r),e.limit!==void 0&&(t=t.limit(e.limit)),e.offset!==void 0&&(t=t.offset(e.offset)),t}function KS(t,e,n){if(!e)return t;let r=new Set;if(n){for(let s of n)if(typeof s!="string")for(let i of Object.keys(s))r.add(i);}for(let[s,i]of Object.entries(e)){if(!i.on||r.has(s))continue;let o=i.from||s,a=i.type==="left"?"leftJoin":"innerJoin";t=t[a](`${o} as ${s}`,l=>op(l,i.on));}return t}function op(t,e){for(let[n,r]of Object.entries(e))if(n==="$and")for(let s of r)t=op(t,s);else {let s=r;for(let[i,o]of Object.entries(s)){let a=Ai[i];if(!a)throw new Error(`Unsupported join operator: ${i}`);Ti(o)?t=t.onRef(n,a,o.$ref):t=t.on(n,a,o);}}return t}function JS(t,e,n){let r=n.insertInto(t.from);if(t.values){let i=yl(t.values,e,t.schema,t.from,{applyDefaults:true});r=r.values(i);}let s=t.from?{...e,currentTable:t.from}:e;return r=Hr(r,t.select,s),r}function GS(t,e,n){let r=n.updateTable(t.from);if(t.values){let i=t.values;Array.isArray(i)&&(i=i.length>0?i[0]:i);let o=yl(i,e,t.schema,t.from);r=r.set(o);}t.limit!==void 0||t.offset!==void 0?r=ap(r,t,e,n):r=Gr(r,t.where??{},e,t.from,t.schema);let s=t.from?{...e,currentTable:t.from}:e;return r=Hr(r,t.select,s),r}function zS(t,e,n){let r=n.deleteFrom(t.from);t.limit!==void 0||t.offset!==void 0?r=ap(r,t,e,n):r=Gr(r,t.where??{},e,t.from,t.schema);let s=t.from?{...e,currentTable:t.from}:e;return r=Hr(r,t.select,s),r}function ap(t,e,n,r){let i=n.introspection?.primary_keys.find(l=>l.table===e.from)?.columns??[],o=r.selectFrom(e.from),a=n.rowIdColumn;if(i.length>0)for(let l of i)o=o.select(l);else o=o.select(sql.ref(a).as("__rowid"));if(o=Gr(o,e.where??{},n,e.from,e.schema),o=Ut(o,e.order,void 0,n,e.from),e.limit!==void 0&&(o=o.limit(e.limit)),e.offset!==void 0&&(o=o.offset(e.offset)),i.length===1)return t.where(i[0],"in",o);if(i.length>1){let l="__ltd_target",c=r.selectFrom(o.as(l)).select(sql`1`.as("_"));for(let f of i)c=c.whereRef(`${l}.${f}`,"=",`${e.from}.${f}`);return t.where(f=>f.exists(c))}else return t.where(sql.ref(a),"in",o)}function VS(t,e,n){let r=t.values,s=yl(r,e,t.schema,t.from,{applyDefaults:true}),i=n.insertInto(t.from).values(s);t.onConflict&&(i=i.onConflict(a=>{let l=t.onConflict.length===1?a.column(t.onConflict[0]):a.columns(t.onConflict);if(t.ignoreDuplicates)return l.doNothing();let c=Array.isArray(s)?s[0]:s,f=Object.keys(c).filter(u=>!t.onConflict.includes(u));return f.length===0?l.doUpdateSet({[t.onConflict[0]]:sql.ref(`excluded.${t.onConflict[0]}`)}):l.doUpdateSet(u=>{let d={};for(let p of f)d[p]=u.ref(`excluded.${p}`);return d})}));let o=t.from?{...e,currentTable:t.from}:e;return i=Hr(i,t.select,o),i}function QS(t,e,n){let r=n.introspection?.functions;if(!r)return null;let s=t.schema??n.introspection?.default_schema??"public",i=Array.isArray(t.args)?un(t):Object.keys(t.args);if(Bt(r,{schema:s,fnName:e,providedNames:i}).length>0)return null;let o=r.filter(a=>a.schema===s&&a.name===e&&!a.has_variadic&&a.arg_types.length===1&&a.arg_names.length===0&&(a.arg_types[0]==="json"||a.arg_types[0]==="jsonb"));return o.length===1?o[0].arg_types[0]:null}function XS(t,e,n){let r=t.function;Pe(r,"RPC function name");let s=t.schema??e.introspection?.default_schema,i;r.includes(".")?s!==void 0?(Pe(s,"RPC schema"),i=`"${s}"."${r}"`):i=r:(i=s?`${s}.${r}`:r,Pe(i,"RPC function reference"));let o,l=e.dialect==="postgres"&&t.httpMethod==="POST"&&t.inputType!=="text"&&t.args!=null?QS(t,r,e):null;if(l)o=sql`${sql.raw(i)}(${Gi(t.args)}::${sql.raw(l)})`;else if(t.args&&!Array.isArray(t.args)&&Object.keys(t.args).length>0){let u=Object.entries(t.args),d=null,p=null,g=null;if(e.dialect==="postgres"&&e.introspection?.functions){let y=u.map(([S])=>S),w=Bt(e.introspection.functions,{schema:t.schema??e.introspection?.default_schema??"public",fnName:r,providedNames:y});if(w.length===1){let S=w[0];d=new Map;for(let b=0;b<S.arg_names.length;b++)d.set(S.arg_names[b],S.arg_types[b]);if(S.has_variadic&&S.arg_names.length>0){p=S.arg_names[S.arg_names.length-1];let b=S.arg_types[S.arg_types.length-1];g=b.endsWith("[]")?b.slice(0,-2):b;}}}let m=t.httpMethod==="GET",h=u.map(([y,w])=>{if(Pe(y,"RPC param key"),d){let b=d.get(y);if(b){if(y===p&&g){an(g,"RPC variadic elem type"),Pe(y,"RPC variadic param key");let _=Array.isArray(w)?w:[w];return sql`VARIADIC ${sql.raw(y)} := ${_}::${sql.raw(g+"[]")}`}if(tp(b)){an(b,"RPC arg type");let _=m&&Array.isArray(w)?w[w.length-1]:w,E=Jr(b),x=E==="json"||E==="array"&&!Array.isArray(_)?Gi(_):_;return sql`${sql.raw(y)} := ${x}::${sql.raw(b)}`}}}let S=m&&Array.isArray(w)?w[w.length-1]:w;return sql`${sql.raw(y)} := ${S}`});o=sql`${sql.raw(i)}(${sql.join(h)})`;}else if(Array.isArray(t.args)&&t.args.length>0){let u=null;if(e.dialect==="postgres"&&e.introspection?.functions){let p=e.introspection.functions,g=t.schema??e.introspection?.default_schema??"public",h=t.args.length,y=p.filter(w=>w.schema===g&&w.name===r&&w.arg_types.length===h);y.length===1&&(u=y[0].arg_types);}let d=t.args.map((p,g)=>{if(u){let m=u[g];if(m&&tp(m)){an(m,"RPC positional arg type");let h=Jr(m),y=h==="json"||h==="array"&&!Array.isArray(p)?Gi(p):p;return sql`${y}::${sql.raw(m)}`}}return sql`${p}`});o=sql`${sql.raw(i)}(${sql.join(d)})`;}else o=sql`${sql.raw(i)}()`;let c=!!t.join&&Object.keys(t.join).length>0;if(e.dialect==="postgres"&&c){let u=Yd(e.introspection,{schema:t.schema??e.introspection?.default_schema??"public",fnName:r,providedNames:un(t),paramsType:t.paramsType,argCount:Array.isArray(t.args)?t.args.length:void 0,method:t.httpMethod,inputType:t.inputType});if(u)return ip(n.selectFrom(o.as(u)),t,e,u)}let f=n.selectFrom(o.as(r));return f=Mi(f,t.select,e),f=Gr(f,t.where??{},e,t.from,t.schema),f=Ut(f,t.order,void 0,e,t.from),t.limit!==void 0&&(f=f.limit(t.limit)),t.offset!==void 0&&(f=f.offset(t.offset)),f}var i_=new Kysely({dialect:{createAdapter:()=>new PostgresAdapter,createDriver:()=>new DummyDriver,createIntrospector:t=>new PostgresIntrospector(t),createQueryCompiler:()=>new PostgresQueryCompiler}}),o_={$ilike:(t,e,n)=>sql`${k(e)} ilike ${n}`,$regex:(t,e,n)=>sql`${k(e)} ~ ${n}`,$iregex:(t,e,n)=>sql`${k(e)} ~* ${n}`,$contains:(t,e,n)=>sql`${k(e)} @> ${n}`,$containedBy:(t,e,n)=>sql`${k(e)} <@ ${n}`,$overlaps:(t,e,n)=>sql`${k(e)} && ${n}`,$rangeLt:(t,e,n)=>sql`${k(e)} << ${n}`,$rangeGt:(t,e,n)=>sql`${k(e)} >> ${n}`,$rangeGte:(t,e,n)=>sql`${k(e)} &> ${n}`,$rangeLte:(t,e,n)=>sql`${k(e)} &< ${n}`,$rangeAdjacent:(t,e,n)=>sql`${k(e)} -|- ${n}`,$textSearch:(t,e,n)=>{let r=n,s=r.config||"english",i="to_tsquery";return r.type==="plain"?i="plainto_tsquery":r.type==="phrase"?i="phraseto_tsquery":r.type==="websearch"&&(i="websearch_to_tsquery"),sql`${k(e)} @@ ${sql.raw(i)}(${sql.literal(s)}, ${r.query})`},$eqAny:(t,e,n)=>sql`${k(e)} = any(${n})`,$neqAny:(t,e,n)=>sql`${k(e)} != any(${n})`,$gtAny:(t,e,n)=>sql`${k(e)} > any(${n})`,$gteAny:(t,e,n)=>sql`${k(e)} >= any(${n})`,$ltAny:(t,e,n)=>sql`${k(e)} < any(${n})`,$lteAny:(t,e,n)=>sql`${k(e)} <= any(${n})`,$likeAny:(t,e,n)=>sql`${k(e)} like any(${n})`,$ilikeAny:(t,e,n)=>sql`${k(e)} ilike any(${n})`,$eqAll:(t,e,n)=>sql`${k(e)} = all(${n})`,$neqAll:(t,e,n)=>sql`${k(e)} != all(${n})`,$gtAll:(t,e,n)=>sql`${k(e)} > all(${n})`,$gteAll:(t,e,n)=>sql`${k(e)} >= all(${n})`,$ltAll:(t,e,n)=>sql`${k(e)} < all(${n})`,$lteAll:(t,e,n)=>sql`${k(e)} <= all(${n})`,$likeAll:(t,e,n)=>sql`${k(e)} like all(${n})`,$ilikeAll:(t,e,n)=>sql`${k(e)} ilike all(${n})`,$regexAny:(t,e,n)=>sql`${k(e)} ~ any(${n})`,$iregexAny:(t,e,n)=>sql`${k(e)} ~* any(${n})`,$regexAll:(t,e,n)=>sql`${k(e)} ~ all(${n})`,$iregexAll:(t,e,n)=>sql`${k(e)} ~* all(${n})`};function a_(t,e){let n=e.replace(/^\$\./,"").split(".");if(n.length===0)return sql.ref(t);let r=n.map((s,i)=>{let o=i===n.length-1?"->>":"->",a=/^-?\d+$/.test(s);return a||In(s,"JSON path key"),a?`${o}${s}`:`${o}'${s}'`}).join("");return sql`${sql.ref(t)}${sql.raw(r)}`}function l_(t,e="value",n=false){let r=sql.ref(e);return sql`(select coalesce(json_agg(${r}), '[]'::json) from ${t} as _agg)`}var lp={db:i_,operators:{...vi,...o_},jsonArrayFrom:jsonArrayFrom$1,jsonObjectFrom:jsonObjectFrom$1,jsonScalarArrayFrom:l_,jsonPath:a_,rowIdColumn:"ctid"};var c_=/[.*+?[\]{}()|]/;function zi(t){let e="";for(let n of t)n==="\\"||n==="*"||n==="?"||n==="["?e+=`[${n}]`:e+=n;return e}function cp(t){return t==="\\"||t==="*"||t==="?"||t==="["?`[${t}]`:t}function bl(t){let e="";for(let n=0;n<t.length;){let r=t[n];if(r==="\\"){if(n+1>=t.length){e+="[\\\\]",n+=1;continue}e+=cp(t[n+1]),n+=2;continue}if(r==="%"){e+="*",n+=1;continue}if(r==="_"){e+="?",n+=1;continue}e+=cp(r),n+=1;}return e}function Vi(t){return t?c_.test(t)?/^[A-Za-z0-9_\-\\%]+$/.test(t):true:false}function up(t){if(t.startsWith("^")&&t.endsWith("$")&&t.length>=2){let e=t.slice(1,-1);return Vi(e)?{mode:"exact",text:zi(e)}:null}if(t.startsWith("^")){let e=t.slice(1);return Vi(e)?{mode:"prefix",text:zi(e)}:null}if(t.endsWith("$")){let e=t.slice(0,-1);return Vi(e)?{mode:"suffix",text:zi(e)}:null}return Vi(t)?{mode:"contains",text:zi(t)}:null}function fp(t,e){switch(t){case "exact":return e;case "prefix":return `${e}*`;case "suffix":return `*${e}`;case "contains":return `*${e}*`}}function dp(t,e){switch(t){case "exact":return e;case "prefix":return `${e}%`;case "suffix":return `%${e}`;case "contains":return `%${e}%`}}var y_=new Kysely({dialect:{createAdapter:()=>new SqliteAdapter,createDriver:()=>new DummyDriver,createIntrospector:t=>new SqliteIntrospector(t),createQueryCompiler:()=>new SqliteQueryCompiler}});function b_(t,e){let n=e.replace(/^\$\./,"").split(".");if(n.length===0)return sql.ref(t);let r=n.map((s,i)=>{let o=i===n.length-1?"->>":"->",a=/^-?\d+$/.test(s);return a||In(s,"JSON path key"),a?`${o}${s}`:`${o}'${s}'`}).join("");return sql`${sql.ref(t)}${sql.raw(r)}`}function w_(t,e){let n=k(t);if(e.length===0)return sql`(${n} is not null)`;let r=sql.join(e.map(s=>sql`${s}`));return sql`(${n} is not null and (select count(distinct value) from json_each(${n}) where value in (${r})) = ${sql.lit(e.length)})`}function S_(t,e){let n=k(t),r=Object.keys(e);if(r.length===0)return sql`${n} is not null`;let s=r.map(i=>(In(i,"JSON object key"),sql`json_extract(${n}, ${sql.raw(`'$.${i}'`)}) = ${e[i]}`));return sql`(${n} is not null and ${sql.join(s,sql` and `)})`}var __=new Set(["a","an","and","are","as","at","be","by","for","from","in","is","it","of","on","or","that","the","to","was","with"]);function E_(t){let e=t.toLowerCase().replace(/'/g,"''");return e.endsWith("s")&&!e.endsWith("ss")&&e.length>3&&(e=e.slice(0,-1)),e.length===7?e.slice(0,4):e.length>6?e.slice(0,6):e}function pp(t,e,n){let r=E_(e);if(!r)return sql`1 = 1`;let i=n!=null&&n!=="english"&&n!=="simple"&&r.length>=5?`%'${r}%':%`:`%'${r}':%`;return sql`lower(${t}) like ${i}`}function x_(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch{return t}}function wl(t,e){let n=k(t),r=x_(e.query).trim();if(!r)return sql`1 = 1`;if(e.type==="websearch"){let o=r.split(/\s+or\s+/i).map(l=>l.trim()).filter(Boolean);if(o.length>1){let l=o.map(c=>wl(t,{...e,query:c,type:"plain",config:e.config}));return sql`(${sql.join(l,sql` or `)})`}let a=r.split(/\s+and\s+/i).map(l=>l.trim()).filter(Boolean);if(a.length>1){let l=a.map(c=>wl(t,{...e,query:c,type:"plain",config:e.config}));return sql`(${sql.join(l,sql` and `)})`}}if(r.includes("|")&&e.type!=="phrase"&&e.type!=="plain"){let o=r.split("|").map(a=>a.trim()).filter(Boolean);return o.length===0?sql`1 = 1`:sql`(${sql.join(o.map(a=>pp(n,a,e.config)),sql` or `)})`}let s=r.split(/\s+/).map(o=>o.trim()).filter(Boolean);if((e.type==="phrase"||e.type==="plain")&&(s=s.filter(o=>!__.has(o.toLowerCase()))),s.length===0)return sql`1 = 1`;let i=sql` and `;return sql`(${sql.join(s.map(o=>pp(n,o,e.config)),i)})`}function Sl(t,e){return sql`${k(t)} GLOB ${e}`}function T_(t,e){let n=k(t);return sql`json(${n}) = json(${JSON.stringify(e)})`}function R_(t,e){let n=k(t);return Array.isArray(e)||e!==null&&typeof e=="object"?sql`json(${n}) is distinct from json(${JSON.stringify(e)})`:sql`${n} is distinct from ${e}`}function mp(t,e,n){if(typeof e!="string")throw new Error(`$${n?"iregex":"regex"} on sqlite requires a string value`);let r=up(e);if(!r)throw new Error(`Unsupported operator: $${n?"iregex":"regex"}`);if(n){let i=dp(r.mode,r.text),o=k(t);return sql`lower(${o}) like lower(${i}) escape '\\'`}let s=fp(r.mode,r.text);return Sl(t,s)}function Qi(t,e,n,r){if(!Array.isArray(e))throw new Error(`$${n}${r} on sqlite requires an array value`);if(e.length===0)return r==="any"?sql`false`:sql`true`;let s=k(t),i=e.map(o=>n==="ilike"?sql`lower(${s}) like lower(${o})`:Sl(t,typeof o=="string"?bl(o):o));return sql`(${sql.join(i,r==="any"?sql` or `:sql` and `)})`}var C_={$eq:(t,e,n)=>Array.isArray(n)||n!==null&&typeof n=="object"?T_(e,n):sql`${k(e)} = ${n}`,$neq:(t,e,n)=>Array.isArray(n)||n!==null&&typeof n=="object"?sql`json(${k(e)}) != json(${JSON.stringify(n)})`:sql`${k(e)} != ${n}`,$textSearch:(t,e,n)=>wl(e,n),$like:(t,e,n)=>{if(typeof n!="string")throw new Error("$like on sqlite requires a string value");return Sl(e,bl(n))},$regex:(t,e,n)=>mp(e,n,false),$iregex:(t,e,n)=>mp(e,n,true),$ilike:(t,e,n)=>sql`lower(${k(e)}) like lower(${n})`,$likeAny:(t,e,n)=>Qi(e,n,"like","any"),$ilikeAny:(t,e,n)=>Qi(e,n,"ilike","any"),$likeAll:(t,e,n)=>Qi(e,n,"like","all"),$ilikeAll:(t,e,n)=>Qi(e,n,"ilike","all"),$isDistinct:(t,e,n)=>R_(e,n),$contains:(t,e,n)=>{if(Array.isArray(n))return w_(e,n);if(n!==null&&typeof n=="object")return S_(e,n);throw new Error("$contains on sqlite requires an array or object value")},$containedBy:(t,e,n)=>{if(!Array.isArray(n))throw new Error("$containedBy on sqlite requires an array value");let r=k(e),s=n.length===0?sql`${r} is not null and not exists (select 1 from json_each(${r}))`:sql`${r} is not null and not exists (select 1 from json_each(${r}) where value not in (${sql.join(n.map(i=>sql`${i}`))}))`;return sql`(case when ${r} is null then null else (${s}) end)`},$overlaps:(t,e,n)=>{if(!Array.isArray(n))throw new Error("$overlaps on sqlite requires an array value");let r=k(e);if(n.length===0)return sql`1 = 0`;let s=sql.join(n.map(i=>sql`${i}`));return sql`(${r} is not null and exists (select 1 from json_each(${r}) where value in (${s})))`}};function k_(t,e="value",n=false){let r=sql.ref(e),s=n?sql`json_group_array(json(${r}))`:sql`json_group_array(${r})`;return sql`(select coalesce(${s}, json('[]')) from ${t} as _agg)`}var hp={db:y_,operators:{...vi,...C_},jsonArrayFrom:jsonArrayFrom,jsonObjectFrom:jsonObjectFrom,jsonScalarArrayFrom:k_,jsonPath:b_,rowIdColumn:"rowid"};function v_(t){switch(t){case "postgres":return lp;case "sqlite":return hp;default:throw new Error(`Unsupported dialect: ${t}`)}}function te(t,e="postgres",n){let r=v_(e),s=n&&"introspection"in n?n:{db:n,introspection:void 0};return sp(t,{...r,dialect:e,db:s.db??r.db,introspection:s.introspection,schema:s.schema})}var nc=ia(El());Qr();function T(t,e,n,r,s){let i=JSON.stringify({code:e,details:r,hint:s,message:n}),o=new TextEncoder().encode(i);return new Response(o,{status:t,headers:{"Content-Type":"application/json; charset=utf-8","Content-Length":String(o.byteLength)}})}function ot(t){return T(t.status,t.code,t.message,t.details??null,t.hint??null)}async function Op(t,e){if(!t||!t.startsWith("Bearer "))return e.anonymousEnabled?{kind:"ok",payload:null}:{kind:"error",response:ot({status:401,code:"PGRST302",message:"Anonymous access is disabled"})};let n=t.slice(7).trim(),r=n.split(".");if(r.length!==3||r.some(s=>s.length===0))return e.anonymousEnabled?{kind:"ok",payload:null}:{kind:"error",response:ot({status:401,code:"PGRST301",message:`Expected 3 parts in JWT; got ${Math.max(1,r.filter(s=>s.length>0).length)}`})};if(!e.jwtSecret)return {kind:"error",response:ot({status:500,code:"PGRST300",message:"Server lacks JWT secret"})};try{let s=new TextEncoder().encode(e.jwtSecret),{payload:i}=await jwtVerify(n,s,{algorithms:["HS256"]});return typeof i.iat=="number"&&i.iat>Math.floor(Date.now()/1e3)?{kind:"error",response:ot({status:401,code:"PGRST303",message:"JWT issued at future"})}:{kind:"ok",payload:i}}catch(s){return s instanceof errors.JWTExpired?{kind:"error",response:ot({status:401,code:"PGRST303",message:"JWT expired"})}:{kind:"error",response:ot({status:401,code:"PGRST301",message:"No suitable key or wrong key type",details:"None of the keys was able to decode the JWT"})}}}Kl();function aE(t,e,n,r){if(n){let i=t.get(`${n}.${e}`);if(i)return i}let s=t.get(`${r}.${e}`);if(s)return s;for(let[i,o]of t)if(i.endsWith(`.${e}`))return o}function lE(t,e){let n=t.schema||"public",r=za(t,e);return {schema:n,table:t.table,column:t.name,pgTypeName:r,nullable:t.nullable,defaultValue:t.default_value??null,isPrimaryKey:t.is_primary_key,isUnique:false,isSerial:!!t.is_identity,isGenerated:t.is_generated}}function jp(t,e){let n=lE(t,e);return Le(n.pgTypeName)?nd(n)??We(n):We(n)}function cE(t,e="sqlite"){let n=new Map;for(let r of t.columns){let s=r.schema||"public",i=`${s}.${r.table}`,o=n.get(i);o||(o=new at(r.table,s),n.set(i,o)),o.set(r.name,jp(r,t));}return n}function uE(t,e){for(let n of e.columns){if(!Le(za(n,e)))continue;let r=n.schema||"public",s=`${r}.${n.table}`,i=t.get(s);i||(i=new at(n.table,r),t.set(s,i)),i.set(n.name,jp(n,e));}return t}function Lp(t,e,n){if(n==="sqlite")return cE(e,n);if(n==="postgres"||n==="pglite"){let r=t&&t.size>0?t:new Map;return uE(new Map(r),e)}return t&&t.size>0?t:new Map}function Fp(t,e){let n=t.config?.translation?.schemas;return e.schema??n?.defaultSchema??"public"}function Up(t,e,n,r){return !n||!e?.from?t:t.map(s=>Jl(s,e.select,e.from,e.schema,e.join,n,r))}function Jl(t,e,n,r,s,i,o){let a=aE(i,n,r,o),l=dE(e,s),c={};for(let[f,u]of Object.entries(t)){let d=l.get(f);if(d&&"embed"in d){let m=d.embed;c[f]=fE(u,m,r,i,o);continue}let p=d?.sourceColumn??f,g=a?.get(p);c[f]=g?.isShimBacked?g.deserialize(u):u;}return c}function fE(t,e,n,r,s){return Array.isArray(t)?t.map(i=>i&&typeof i=="object"?Jl(i,e.select,e.table,n,e.join,r,s):i):t&&typeof t=="object"?Jl(t,e.select,e.table,n,e.join,r,s):t}function dE(t,e){let n=new Map;if(!t)return n;for(let r of t){if(typeof r=="string"){if(r==="*")continue;n.set(r,{sourceColumn:r});continue}if(!(!r||typeof r!="object"))for(let[s,i]of Object.entries(r))if(pE(i)){let o=e?.[s]?.from??s;n.set(s,{embed:{table:o,select:i.select,join:i.join}});}else {let o=i;if(o.cast||o.path||o.aggregate)continue;n.set(s,{sourceColumn:o.column??s});}}return n}function pE(t){return t!=null&&typeof t=="object"&&("select"in t||"where"in t||"order"in t||"limit"in t||"offset"in t||"spread"in t||"join"in t)}var Bn=class extends Error{constructor(n,r){super(`Could not find the table '${[n,r].filter(Boolean).join(".")}' in the schema cache`);this.schema=n;this.relation=r;}},Gl=class{constructor(e){this.config=e;}kysely;introspection;async translateDdl(e){return e}async clearSchemaCache(){this.introspection=void 0,await this.deleteCachedIntrospection();}async readCachedIntrospection(e){if(typeof this.introspection=="object"&&e?.useCache===true)return this.introspection;if(e?.useCache!==true||!this.config.schemaCache)return;let n=await this.config.schemaCache?.get(this.schemaCacheKey());if(n)try{return this.introspection=JSON.parse(n),this.introspection}catch{await this.deleteCachedIntrospection();return}}async writeCachedIntrospection(e,n){this.introspection=e,n?.useDriver===true&&await this.config.schemaCache?.set(this.schemaCacheKey(),JSON.stringify(e));}async deleteCachedIntrospection(){await this.config.schemaCache?.delete(this.schemaCacheKey());}schemaCacheKey(){return ["@supabase/lite","schema-cache",this.dialect,this.config.introspection?.name??"",this.config.url??""].join(":")}async exec(e,...n){try{return sql(e,...n??[]).execute(this.kysely)}catch(r){throw console.error(r),new Error(`Failed to execute query: ${e}`)}}async ping(){try{let e=await this.exec("SELECT 1");return e&&Array.isArray(e.rows)&&e.rows.length===1}catch{return false}}async transaction(e,n){throw new Error("This Connection does not support transactions")}async runInTransaction(e){return this.kysely.transaction().execute(n=>e(n))}createMigrator(e){throw new Error("This Connection does not support migrations")}async onPostgrestAST(e,n){return e}deserializeRow(e){return e}normalizeDbError(e){return e}async withContext(e,n,r){return n(this.kysely)}get supportsRpc(){return false}async viewOptionsMetadata(e,n){return null}};function Et(t){return JSON.stringify(t,(e,n)=>typeof n=="bigint"?Number.parseInt(n.toString(),10):n)}var Mp=/application\/vnd\.pgrst\.plan(?:\+(json|text))?/i;function Bp(t){let e=t.match(Mp);if(!e)return null;let n=e[1]?.toLowerCase()==="json"?"json":"text",r=t.match(/;\s*options=([^;]+)/i),s=r?`; options=${r[1].trim()}`:"";return {format:n,optionsSegment:s}}function qp(t){return Mp.test(t)}function Hp(t){return /;\s*nulls\s*=\s*stripped/i.test(t)}function dn(t){if(Array.isArray(t))return t.map(e=>dn(e));if(t!==null&&typeof t=="object"){let e={};for(let[n,r]of Object.entries(t))r!==null&&(e[n]=dn(r));return e}return t}function no(t,e){if(!e||e.length===0)return t;let n=(r,s)=>{for(let i of e){if(i.embed)continue;let o=r[i.column],a=s[i.column],l=o==null,c=a==null;if(l&&c)continue;if(l)return i.nullsFirst?-1:1;if(c)return i.nullsFirst?1:-1;let f;if(typeof o=="number"&&typeof a=="number"?f=o-a:f=String(o).localeCompare(String(a)),f!==0)return i.direction==="desc"?-f:f}return 0};return [...t].sort(n)}function hE(t,e){return !e||e.length===0?t:t.map(n=>Yl(n,e))}function Wp(t,e,n){if(!e||e.length===0||t.length===0)return t;let r=hE(t,e);return r=yE(r,e),r=bE(r,e),r=wE(r,e),n==="sqlite"&&(r=SE(r,e),r=gE(r,e)),r}function gE(t,e){if(!e||e.length===0)return t;let n=_E(e);return n.size===0?t:t.map(r=>{if(!Hn(r))return r;let s={...r};for(let i of n){let o=s[i];o!==null&&typeof o=="object"&&(s[i]=JSON.stringify(o));}return s})}function yE(t,e){return !e||e.length===0?t:t.map(n=>Vl(n,e))}function bE(t,e){return !e||e.length===0?t:t.map(n=>Ql(n,e))}function wE(t,e){return !e||e.length===0?t:t.map(n=>Xl(n,e))}function SE(t,e){return !e||e.length===0?t:t.map(n=>zl(n,e))}function _E(t){let e=new Set;for(let n of t){if(typeof n=="string")continue;let[r,s]=Object.entries(n)[0]??[];if(!r||!s)continue;let i=s;i.path&&i.pathText&&!Kp(i.cast)&&e.add(r);}return e}function Kp(t){let e=t?.trim().toLowerCase();return e==="json"||e==="jsonb"}function EE(t){let e=t?.trim().toLowerCase();return e==="integer"||e==="int"||e==="int2"||e==="int4"||e==="int8"||e==="bigint"||e==="smallint"}function zl(t,e){if(Array.isArray(t))return t.map(r=>zl(r,e));if(!Hn(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(us(i)){s in n&&i.select&&(n[s]=zl(n[s],i.select));continue}let o=i;if(!o.path||o.pathText!==true||!EE(o.cast)||!(s in n))continue;let a=n[s];if(a==null)continue;let l=String(a);if(!/^-?\d+$/.test(l))throw new An(l);n[s]=Number.parseInt(l,10);}return n}function Yl(t,e){if(Array.isArray(t))return t.map(r=>Yl(r,e));if(!Hn(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];!s||!i||!us(i)||s in n&&(n[s]=TE(n[s],i.select));}return n}function Vl(t,e){if(Array.isArray(t))return t.map(r=>Vl(r,e));if(!Hn(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(us(i)){s in n&&i.select&&(n[s]=Vl(n[s],i.select));continue}let o=i;o.aggregate==="avg"&&o.cast!=="text"&&s in n&&(n[s]=xE(n[s]));}return n}function Ql(t,e){if(Array.isArray(t))return t.map(r=>Ql(r,e));if(!Hn(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(us(i)){s in n&&i.select&&(n[s]=Ql(n[s],i.select));continue}Kp(i.cast)&&s in n&&(n[s]=Jp(n[s]));}return n}function Xl(t,e){if(Array.isArray(t))return t.map(r=>Xl(r,e));if(!Hn(t))return t;let n={...t};for(let r of e){if(typeof r=="string")continue;let[s,i]=Object.entries(r)[0]??[];if(!s||!i)continue;if(us(i)){s in n&&i.select&&(n[s]=Xl(n[s],i.select));continue}let o=i;o.path&&!o.pathText&&s in n&&(n[s]=Jp(n[s]));}return n}function xE(t){if(typeof t!="string")return t;let e=t.trim();if(!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i.test(e))return t;let n=Number(e);return !Number.isFinite(n)||e.replace(/^[+-]/,"").replace(/e[+-]?\d+$/i,"").replace(".","").replace(/^0+/,"").replace(/0+$/,"").length>15?t:n}function TE(t,e){let n=RE(t);return !e||e.length===0?n:Yl(n,e)}function RE(t){if(typeof t!="string")return t;let e=t[0];if(e!=="["&&e!=="{")return t;try{return JSON.parse(t)}catch{return t}}function Jp(t){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}function Hn(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function us(t){return t!==null&&typeof t=="object"&&("select"in t||"spread"in t||"join"in t)}var CE=new Set(["*/*","application/*","application/json","application/vnd.pgrst.object","application/vnd.pgrst.object+json","application/vnd.pgrst.array","application/vnd.pgrst.array+json","application/octet-stream","text/csv"]);function Gp(t){let e=Bp(t);return e?`application/vnd.pgrst.plan+${e.format}; for="application/json"${e.optionsSegment}`:t}function zp(t,e){let n=t.split(",").map(r=>r.split(";")[0].trim().toLowerCase()).filter(Boolean);if(n.length===0)return true;for(let r of n)if(CE.has(r)||e&&r.startsWith("application/vnd.pgrst.plan"))return true;return false}function Vp(t,e){let n=Bp(t)??{format:"text",optionsSegment:""},r=`application/vnd.pgrst.plan+${n.format}; for="application/json"${n.optionsSegment}; charset=utf-8`,s=n.format==="json"?Et({sql:e.sql,parameters:[...e.parameters]}):e.sql;return new Response(s,{status:200,headers:{"Content-Type":r}})}function lt(t,e,n){let r=t+e-1,s=n!==void 0?`${n}`:"*";return `${t}-${r}/${s}`}function Qp(t,e){let n=e.startsWith("?")?e.slice(1):e;if(!n)return;let s=[...new URLSearchParams(n).entries()].sort(([o],[a])=>o.localeCompare(a)),i=new URLSearchParams(s).toString();return i?`${t}?${i}`:t}async function qn(t,e,n,r){if(e.type==="rpc"){let f={...e,order:void 0,limit:void 0,offset:void 0},u=te(f,n,{db:t,introspection:r}),{sql:d,parameters:p}=u.compile(),g=`SELECT count(*) as __count FROM (${d}) AS __inner_count`,m=await t.executeQuery({sql:g,parameters:p,query:{kind:"RawNode"}});return Number(m.rows?.[0]?.__count??0)}let s=e.join&&Object.values(e.join).some(f=>f.type==="inner"),i=kE(e);if(s||i){let f={...e,type:"query",order:void 0,limit:void 0,offset:void 0},u=te(f,n,{db:t,introspection:r}),{sql:d,parameters:p}=u.compile(),g=`SELECT count(*) as __count FROM (${d}) AS __inner_count`,h=(await t.executeQuery({sql:g,parameters:p,query:{kind:"RawNode"}})).rows?.[0];return Number(h?.__count??0)}let o={...e,type:"query",select:[{__count:{aggregate:"count"}}],order:void 0,limit:void 0,offset:void 0,join:void 0},l=await te(o,n,{db:t,introspection:r}).execute(),c=Array.isArray(l)?l[0]:l;return Number(c?.__count??0)}async function Zl(t,e,n,r){if(e.$meta?.count!=="planned"&&e.$meta?.count!=="estimated"||n!=="postgres"||e.type==="rpc")return qn(t,e,n,r);let s={...e,type:"query",order:void 0,limit:void 0,offset:void 0},o=te(s,n,{db:t,introspection:r}).compile(),c=(await t.executeQuery({sql:`EXPLAIN (FORMAT JSON) ${o.sql}`,parameters:o.parameters,query:{kind:"RawNode"}})).rows?.[0]?.["QUERY PLAN"],f=Array.isArray(c)&&c[0]&&typeof c[0]=="object"?c[0].Plan:void 0,u=f&&typeof f=="object"?Number(f["Plan Rows"]):Number.NaN;return Number.isFinite(u)?u:qn(t,e,n,r)}function kE(t){if(t.type!=="query"||!t.where||!t.select)return false;let e=vE(t.select);return e.size===0?false:Xp(t.where,e)}function Xp(t,e){for(let[n,r]of Object.entries(t)){if((n==="$or"||n==="$and")&&Array.isArray(r)){if(r.some(i=>i&&typeof i=="object"&&Xp(i,e)))return true;continue}if(!e.has(n)||!r||typeof r!="object")continue;let s=r;if(s.$is===null||s.$isNot===null)return true}return false}function vE(t){let e=new Set;for(let n of t){if(typeof n=="string")continue;let[r,s]=Object.entries(n)[0]??[];r&&s&&typeof s=="object"&&"select"in s&&e.add(r);}return e}function ec(t){return t?.count==="exact"||t?.count==="planned"||t?.count==="estimated"}function Ht(t,e,n){return ec(e)?`*/${n??0}`:t.type==="update"&&n!==0?lt(0,n??1,void 0):"*/*"}function Yp(t,e,n,r){return e&&(t.type==="insert"||t.type==="upsert"||t.type==="delete")?r!==void 0?`*/${r}`:"*/*":lt(n,1,r)}var AE=/[",\n\r ]/;function Zp(t){if(t==null)return "";let e;return typeof t=="string"?e=t:typeof t=="number"||typeof t=="boolean"?e=String(t):typeof t=="bigint"?e=t.toString():e=JSON.stringify(t),AE.test(e)?`"${e.replace(/"/g,'""')}"`:e}function ro(t,e){let n=t.length>0?Object.keys(t[0]):[];if(n.length===0)return "";let r=[n.map(s=>Zp(s)).join(",")];for(let s of t)r.push(n.map(i=>Zp(s[i])).join(","));return r.join(`
81
+ `)}function em(t){return t.split(",").map(n=>n.split(";")[0].trim().toLowerCase()).includes("text/csv")}function rm(t){return t==null?[]:Array.isArray(t)?t.map(e=>fs(e)?new Set(Object.keys(e)):new Set):fs(t)?[new Set(Object.keys(t))]:[]}function sm(t,e,n){return !e?.length||!n?.length||t.length===0?t:t.map((r,s)=>{let i=n[s]??n[0],o={...r};for(let a of e)i.has(a)||(o[a]=null);return o})}function im(t,e){if(t.type!=="upsert"&&t.type!=="put")return {ast:t};if(t.type==="put"){if(t.limit!==void 0||t.offset!==void 0)return T(400,"PGRST114","limit/offset querystring parameters are not allowed for PUT",null,null);let r=tm(t,e),s=OE(t.where,r);if(!s)return T(405,"PGRST105","Filters must include all and only primary key columns with 'eq' operators",null,null);if(Array.isArray(t.values)&&t.values.length===0)return {ast:t,emptyPayload:true};if(!fs(t.values))return T(400,"PGRST102","Empty or invalid json",null,null);for(let i of r)if(!$E(t.values[i],s[i]))return T(400,"PGRST115","Payload values do not match URL in primary key column(s)",null,null);return t.onConflict=r,t.ignoreDuplicates=false,{ast:t,preflight:{mode:"put",conflictColumns:r}}}let n=t.onConflict?.length?t.onConflict:tm(t,e);return n.length===0?(t.onConflict=void 0,{ast:t}):(t.onConflict=n,{ast:t,appliedResolution:t.ignoreDuplicates?"ignore-duplicates":"merge-duplicates",preflight:t.ignoreDuplicates?void 0:{mode:"merge-duplicates",conflictColumns:n}})}function om(t,e){let n=t.$meta,r={"Content-Type":"application/json; charset=utf-8"},s=ds(n,e.appliedResolution),i=n?.count==="exact"||n?.count==="planned"||n?.count==="estimated"?"*/0":"*/*",o=t.type==="upsert"?200:et(t,n?.return==="representation"?"representation":"no-return",e.appliedResolution,false);return n?.return==="representation"?(r["Content-Range"]=i,r["Content-Length"]="2",s&&(r["Preference-Applied"]=s),new Response("[]",{status:o,headers:r})):(r["Content-Range"]=i,s&&(r["Preference-Applied"]=s),new Response(null,{status:o,headers:r}))}function tm(t,e){if(!t.from)return [];let n=t.schema??"public",r=e.primary_keys.find(s=>s.table===t.from&&s.schema===n);return r?r.columns:e.primary_keys.find(s=>s.table===t.from)?.columns??[]}function OE(t,e){if(!t||e.length===0)return null;let n=Object.keys(t);if(n.length!==e.length)return null;let r={};for(let s of n){if(s.startsWith("$")||!e.includes(s))return null;let i=PE(t[s]);if(!i.ok)return null;r[s]=i.value;}return r}function PE(t){if(!fs(t))return {ok:false};let e=Object.keys(t);return e.length!==1||e[0]!=="$eq"?{ok:false}:{ok:true,value:t.$eq}}function $E(t,e){return Object.is(t,e)?true:t!==null&&e!==null&&t!==void 0&&e!==void 0&&typeof t!="object"&&typeof e!="object"?String(t)===String(e):Et(t)===Et(e)}function ds(t,e){let n=[];return e&&n.push(`resolution=${e}`),t?.missing&&n.push(`missing=${t.missing}`),t?.return&&n.push(`return=${t.return}`),t?.count&&t.count!=="none"&&n.push(`count=${t.count}`),t?.tx&&n.push(`tx=${t.tx}`),n.length>0?n.join(", "):void 0}function et(t,e,n,r){switch(t.type){case "insert":return 201;case "upsert":return !n||n==="ignore-duplicates"?201:r===false?200:201;case "put":return e==="representation"?r?201:200:204;case "update":case "delete":return e==="representation"?200:204;default:return 200}}async function am(t,e,n,r,s){if(e.type==="insert")return true;if(!s.preflight||!e.from)return;if(s.preflight.mode==="put")return !await nm(t,e.from,e.schema,e.where??{},n,r);let i=Array.isArray(e.values)?e.values:e.values?[e.values]:[];for(let o of i){if(!fs(o))continue;let a=IE(s.preflight.conflictColumns,o);if(!a||!await nm(t,e.from,e.schema,a,n,r))return true}return false}function IE(t,e){let n={};for(let r of t){if(!(r in e))return;n[r]={$eq:e[r]};}return n}async function nm(t,e,n,r,s,i){return await qn(t,{type:"query",from:e,schema:n,where:r},s,i)>0}function fs(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function NE(t){return "select"in t||"spread"in t||"join"in t}function lm(t,e){if(t){for(let n of t)if(typeof n!="string")for(let r of Object.values(n))NE(r)&&((r.limit===void 0||r.limit>e)&&(r.limit=e),lm(r.select,e));}}var DE={count:new Set(["exact","planned","estimated"]),resolution:new Set(["merge-duplicates","ignore-duplicates"]),return:new Set(["minimal","headers-only","representation"]),tx:new Set(["commit","rollback"]),missing:new Set(["default","null"]),handling:new Set(["strict","lenient"]),"max-affected":"number",timezone:"string",params:new Set(["single-object","multiple-objects"])};function jE(t,e){if(!t)return [];let n=t.split(",").map(i=>i.trim()).filter(Boolean);if(n.find(i=>i.startsWith("handling="))!=="handling=strict")return [];let s=e?new Set(e):void 0;return n.filter(i=>!LE(i,s))}function LE(t,e){let n=t.indexOf("=");if(n===-1)return false;let r=t.slice(0,n).trim(),s=t.slice(n+1).trim();if(r==="timezone")return e?e.has(s):s.length>0;let i=DE[r];return i?i==="string"?s.length>0:i==="number"?/^-?\d+$/.test(s):i.has(s):false}function FE(t){if(!t.from||!t.order)return null;let e=t.order.find(n=>/^\s+/.test(n.column));return e?T(400,"42703",`column ${t.from}.${e.column.trim()} does not exist`,null,null):null}function cm(t){let e=t.ast,{dialect:n,introspection:r,apiConfig:s,acceptHeader:i,preferHeader:o,httpMethod:a,rangeHeader:l}=t,c=s??{};if(c?.aggregates_enabled!==true&&ul(e.select))return T(400,"PGRST123","Use of aggregate functions is not allowed",null,null);let f=c?.plan_enabled===true;if(!t.allowRawMedia&&!zp(i,f))return T(406,"PGRST107",`None of these media types are available: ${Gp(i)}`,null,null);let u=Hp(i),d=em(i),p=jE(o,r.timezones);if(p.length>0)return T(400,"PGRST122","Invalid preferences given with handling=strict",`Invalid preferences: ${p.join(", ")}`,null);let g=FE(e);if(g)return g;if(n==="sqlite"&&e.from){let b=e.schema??"",_=r.tables.some(x=>x.name===e.from&&(x.schema??"")===b),E=r.views.some(x=>x.name===e.from&&(x.schema??"")===b);if(!_&&!E)throw new Bn(e.schema,e.from)}let m=e.$meta,h=e.type==="update"||e.type==="delete"||e.type==="insert"||e.type==="upsert"||e.type==="put",y={ast:e};if(h&&m?.return!=="representation"&&(e.select=void 0),(e.type==="put"||e.type==="upsert")&&(e.limit!==void 0||e.offset!==void 0))return T(400,"PGRST114","limit/offset querystring parameters are not allowed for PUT",null,null);if((e.type==="update"||e.type==="delete"||e.type==="insert")&&c?.limited_mutations_enabled!==true&&(e.limit=void 0,e.offset=void 0),c?.pg_safe_update&&h){let b=e.where&&Object.keys(e.where).length>0;if(e.type==="update"&&!b)return T(400,"21000","UPDATE requires a WHERE clause",null,null);if(e.type==="delete"&&!b)return T(400,"21000","DELETE requires a WHERE clause",null,null)}if(h&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){if((e.type==="update"||e.type==="insert"||e.type==="upsert"||e.type==="put")&&(e.values===void 0||e.values===null))return T(400,"PGRST102","Empty or invalid json",null,null);if(e.type==="update"&&e.values&&typeof e.values=="object"&&!Array.isArray(e.values)&&Object.keys(e.values).length===0){let b=m?.return==="representation"?200:204,_=ds(m,y.appliedResolution),E={"Content-Type":"application/json; charset=utf-8","Content-Range":Ht(e,m,0)};if(_&&(E["Preference-Applied"]=_),m?.return==="representation"){let x=new TextEncoder().encode("[]");return E["Content-Length"]=String(x.byteLength),new Response(x,{status:b,headers:E})}return new Response(null,{status:b,headers:E})}if(e.type==="put"&&Array.isArray(e.values)&&(e.values.length===0?y.emptyPayload=true:e.values=e.values[0]),Array.isArray(e.values)){if(m?.cardinality==="one"&&(e.type==="insert"||e.type==="upsert")&&e.values.length>1)return T(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${e.values.length} rows`,null);if(e.values.length>0&&e.values.some(b=>typeof b!="object"||b===null||Array.isArray(b)))return m?.columns?T(400,"22023","argument of jsonb_to_recordset must be an array of objects",null,null):T(400,"PGRST102","All object keys must match",null,null);if(!m?.columns&&e.values.length>1){let b=Object.keys(e.values[0]).sort().join(",");for(let _=1;_<e.values.length;_++)if(Object.keys(e.values[_]).sort().join(",")!==b)return T(400,"PGRST102","All object keys must match",null,null)}}if(m?.columns&&e.from){y.bodyKeySets=rm(e.values);let b=r.columns.filter(E=>E.table===e.from).map(E=>E.name);for(let E of m.columns){if(E==="")return T(400,"PGRST100",'"failed to parse columns parameter ()" (line 1, column 1)',"unexpected end of input",null);if(!b.includes(E))return T(400,"PGRST204",`Could not find the '${E}' column of '${e.from}' in the schema cache`,null,null)}let _=new Set(m.columns);if(e.values)if(Array.isArray(e.values))e.values=e.values.map(E=>{let x={};for(let O of _)O in E&&(x[O]=E[O]);return x});else {let E={};for(let x of _)x in e.values&&(E[x]=e.values[x]);e.values=E;}}if(!m?.columns&&e.values&&e.from&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){let b=r.columns.filter(_=>_.table===e.from).map(_=>_.name);if(b.length>0){let _=Array.isArray(e.values)?e.values.length>0?Object.keys(e.values[0]):[]:Object.keys(e.values);for(let E of _)if(!b.includes(E))return T(400,"PGRST204",`Could not find the '${E}' column of '${e.from}' in the schema cache`,null,null)}}if(e.values&&e.from&&(e.type==="insert"||e.type==="update"||e.type==="upsert"||e.type==="put")){let b=e.schema??"public",_=new Set(r.columns.filter(E=>E.table===e.from&&(E.schema||"public")===b&&E.is_generated===true).map(E=>E.name));if(_.size>0){let E=Array.isArray(e.values)?e.values:[e.values];for(let x of E)if(!(!x||typeof x!="object")){for(let O of Object.keys(x))if(_.has(O))return T(400,"428C9",`cannot insert a non-DEFAULT value into column "${O}"`,`Column "${O}" is a generated column.`,null)}}}}let w=im(e,r);if(w instanceof Response)return w;let S=y.bodyKeySets;if(y=w,y.bodyKeySets=S,e=y.ast,h&&((e.type==="insert"||e.type==="upsert")&&Array.isArray(e.values)&&e.values.length===0||y.emptyPayload))return m?.cardinality==="one"?T(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null):om(e,y);if(l&&(a==="GET"||a==="HEAD")){let b=l.match(/^(\d+)-(\d*)$/);if(b){let _=parseInt(b[1],10);if(b[2]!==""){let E=parseInt(b[2],10);if(_>E)return T(416,"PGRST103","Requested range not satisfiable","The lower boundary must be lower than or equal to the upper boundary in the Range header.",null);e.offset=_,e.limit=E-_+1;}else e.offset=_;}}if(e.limit!==void 0&&e.limit<0||e.limit===0&&e.offset!==void 0&&e.offset>0)return T(416,"PGRST103","Requested range not satisfiable","Limit should be greater than or equal to zero.",null);if(e.offset!==void 0&&e.offset<0&&(e.offset=0),!h){let b=c?.max_rows;b!==void 0&&b>0&&((e.limit===void 0||e.limit>b)&&(e.limit=b),lm(e.select,b));}return {ast:e,meta:m,mutationPlan:y,isMutation:h,stripNullsResponse:u,csvResponse:d,planEnabled:f}}var Wn=class extends Error{constructor(n){super(`new row violates row-level security policy for table "${n.data.table}"`);this.policy=n;this.name="PolicyViolation";}};Ri();zr();Fn();function um(t){if(t.from)return t.from}function pm(t,e){let{connection:n,introspection:r,vars:s,ast:i}=e;if(t instanceof fe){let a=`"${t.message}" (line 1, column ${t.position})`;return T(400,"PGRST100",a,t.details,null)}if(t instanceof He)return T(400,"PGRST100",t.message,t.details,null);if(t instanceof An)return T(400,t.code,t.message,null,null);if(t instanceof jt)return T(400,"PGRST100",t.message,t.details,null);if(t instanceof vn)return T(404,"PGRST125",t.message,t.details,null);if(t instanceof ve)return T(t.httpStatus,t.code,t.message,t.details,t.hint);if(t instanceof On)return T(400,"PGRST102",t.message,null,null);if(t instanceof kr)return T(400,"PGRST102",t.message,null,null);if(t instanceof Error&&t.message.startsWith("Invalid JSON body"))return T(400,"PGRST102","Empty or invalid json",null,null);if(t instanceof wt)return T(400,"PGRST100",t.message,t.message,null);if(t instanceof sn)return T(400,"23514",t.message,`check constraint "${t.constraint}" violated`,null);if(t instanceof Wn){let l=qt(s,"auth.role","anon")==="anon"?401:403;return ot({status:l,code:"PGRST301",message:t.message})}let o=n.normalizeDbError(t);if(console.error(o),o instanceof Bn){let a=o.schema||"public",l=[...r.tables.filter(d=>(d.schema||"public")===a).map(d=>d.name),...r.views.filter(d=>(d.schema||"public")===a).map(d=>d.name)],c=l.length>0?l:[...r.tables.map(d=>d.name),...r.views.map(d=>d.name)],f=Kr(o.relation,c),u=f?`Perhaps you meant the table '${a}.${f}'`:null;return ot({status:404,code:"PGRST205",message:o.message,hint:u})}if(typeof o?.code=="string"){if(o.code==="PGRST")return ME(o);let a=/^PT(\d{3})$/.exec(o.code);if(a){let l=Number(a[1]);return T(l>=200&&l<=599?l:500,o.code,o.message,o.detail??null,o.hint??null)}if(o.code.startsWith("PT"))return T(500,o.code,o.message,o.detail??null,o.hint??null)}if(o?.code==="42501"){let l=qt(s,"auth.role","anon")==="anon"?401:403;return T(l,"42501",o.message,o.detail??null,o.hint??null)}if(o?.code==="42P01")return T(404,"PGRST205","Could not find the relation in the schema cache",o.message,null);if(o?.code==="23505"||o?.code==="23503")return T(409,o.code,o.message,o.detail??null,null);if(o?.code==="25006")return T(405,"25006",o.message,o.detail??null,o.hint??null);if(typeof o?.code=="string"){let a=o.code.slice(0,2);if(o.code==="42883"){let l=o.message;return l=l.replace(/^operator does not exist: [\w.]+\.([\w]+) /,"operator does not exist: $1 "),T(404,o.code,l,o.detail??null,o.hint??null)}if(o.code==="42P17")return T(500,o.code,o.message,o.detail??null,o.hint??null);if(a==="42"||a==="22"||a==="21"||o.code==="23502"){let l=o.message,c=i?um(i):void 0;if(o.code==="42703"&&c){let f=i?.onConflict;l=l.replace(/^column "([^"]+)" does not exist$/,(u,d)=>f?.includes(d)?u:`column ${c}.${d} does not exist`);}return T(400,o.code,l,o.detail??null,o.hint??null)}if(a==="55"||a==="53")return T(500,o.code,o.message,o.detail??null,o.hint??null)}return o?.message?.includes("Unknown operator")?T(400,"PGRST100",o.message,null,null):o instanceof Error&&(o.message.includes("Expected identifier")||o.message.includes("Invalid filter")||o.message.includes("Unexpected input")||o.message.includes("Unsupported operator")||o.message.includes("failed to parse filter")||o.message.includes("failed to parse logic tree")||/^Expected .* at position \d+$/.test(o.message)||o.message.startsWith('Expected "(" for spread embed'))?T(400,"PGRST100",o.message,o.message,null):T(500,"SUP",String(o),null,null)}var tc=`Could not parse JSON in the "RAISE SQLSTATE 'PGRST'" error`,UE="MESSAGE must be a JSON object with obligatory keys: 'code', 'message' and optional keys: 'details', 'hint'.",fm="DETAIL must be a JSON object with obligatory keys: 'status', 'headers' and optional key: 'status_text'.";function dm(t){if(typeof t!="string")return null;try{let e=JSON.parse(t);return e&&typeof e=="object"&&!Array.isArray(e)?e:null}catch{return null}}function ME(t){let e=typeof t.message=="string"?t.message:"",n=dm(e);if(!n||typeof n.code!="string"||typeof n.message!="string")return T(500,"PGRST121",tc,`Invalid JSON value for MESSAGE: '${e}'`,UE);let r=t.detail;if(r==null||r==="")return T(500,"PGRST121",tc,"DETAIL is missing in the RAISE statement",fm);let s=dm(r),i=s?.headers,o=!!i&&typeof i=="object"&&!Array.isArray(i);if(!s||typeof s.status!="number"||!o)return T(500,"PGRST121",tc,`Invalid JSON value for DETAIL: '${r}'`,fm);let a=JSON.stringify({code:n.code,details:n.details??null,hint:n.hint??null,message:n.message}),l=new TextEncoder().encode(a),c={"Content-Type":"application/json; charset=utf-8","Content-Length":String(l.byteLength)};for(let[u,d]of Object.entries(i))typeof d=="string"&&(c[u]=d);let f={status:s.status,headers:c};typeof s.status_text=="string"&&(f.statusText=s.status_text);try{return new Response(l,f)}catch{return new Response(l,{status:500,headers:{"Content-Type":"application/json; charset=utf-8","Content-Length":String(l.byteLength)}})}}var qE="response.status guc must be a valid status code",Kn="response.headers guc must be a JSON array composed of objects with a single key and a string value";async function mm(t,e){let n=(await sql`
82
82
  SELECT current_setting('response.status', true) AS status,
83
83
  current_setting('response.headers', true) AS headers
84
- `.execute(t)).rows[0],r=n?.status??null,s=n?.headers??null,i;if(r&&r.length>0){let u=Number(r);if(!Number.isInteger(u)||u<200||u>599)return R(500,"PGRST112",kT,null,null);i=u;}let o;if(s&&s.length>0){let u;try{u=JSON.parse(s);}catch{return R(500,"PGRST111",hr,null,null)}if(!Array.isArray(u))return R(500,"PGRST111",hr,null,null);let f=[];for(let p of u){if(!p||typeof p!="object"||Array.isArray(p))return R(500,"PGRST111",hr,null,null);let d=Object.keys(p);if(d.length!==1)return R(500,"PGRST111",hr,null,null);let g=p[d[0]];if(typeof g!="string")return R(500,"PGRST111",hr,null,null);f.push([d[0],g]);}o=f;}if(i===void 0&&!o)return e;let a=i??e.status,l=new Headers(e.headers);if(o)try{for(let[u,f]of o)l.set(u,f);}catch{return R(500,"PGRST111",hr,null,null)}let c;return $T.has(a)?(c=null,l.delete("Content-Length"),l.delete("Content-Type")):c=e.body?await e.arrayBuffer():null,new Response(c,{status:a,statusText:e.statusText,headers:l})}var $T=new Set([101,204,205,304]);var OT=/^[\w.+*-]+\/[\w.+*-]+$/,PT=new Set(["text/plain","text/xml","text/csv","application/json","application/geo+json","application/openapi+json"]);function NT(t){return t.replace(/^"([\s\S]*)"$/,"$1")}function IT(t){let e=t.match(/^(?:"(?:[^"]|"")*"|[^."]+)\.([\s\S]+)$/);return e?e[1]:t}function DT(t){if(t.return_typtype!=="d"||t.return_is_setof)return null;let e=NT(IT(t.return_type));return OT.test(e)?e:null}function $h(t){if(!t)return [];let e=[];for(let n of t.split(",")){let r=n.split(";"),s=r[0].trim().toLowerCase();if(!s)continue;let i=1;for(let o of r.slice(1)){let a=o.trim().match(/^q=(.+)$/i);if(a){let l=Number.parseFloat(a[1]);Number.isFinite(l)&&(i=l);}}e.push({media:s,q:i});}return e}function Oh(t){return PT.has(t)?`${t}; charset=utf-8`:t}function jT(t,e){let n=e.indexOf("/"),r=n>0?e.slice(0,n):e,s=-1,i=0;for(let o of t){let a=o.media===e?2:o.media===`${r}/*`?1:o.media==="*/*"?0:-1;a<0||(a>s?(s=a,i=o.q):a===s&&(i=Math.max(i,o.q)));}return s<0?0:i}function LT(t,e){let n=DT(t);if(!n)return null;if(n==="*/*"){let r=$h(e);return r.some(s=>s.media==="*/*"&&s.q<=0)?null:!e||r.some(s=>s.q>0)?{mediaType:"application/octet-stream",isBinary:true}:null}return jT($h(e),n)>0?{mediaType:n,isBinary:(t.return_base_type??"").toLowerCase()==="bytea"}:null}function Ko(t,e,n){let r=So(t,e);return r?LT(r,n):null}function Ph(t,e){if(t instanceof Uint8Array){let s=new Uint8Array(t.byteLength);return s.set(t),s}if(e&&typeof t=="string"&&t.startsWith("\\x")){let s=t.slice(2),i=new Uint8Array(Math.floor(s.length/2));for(let o=0;o<i.length;o++)i[o]=parseInt(s.substr(o*2,2),16);return i}let n=new TextEncoder().encode(t==null?"":String(t)),r=new Uint8Array(n.byteLength);return r.set(n),r}var Nh=Ua(cc());function Te(t,e,n){if(!n)return;let{sql:r,parameters:s}=e.compile();console.info(Nh.default.dim(`[POSTGREST:SQL:${t}] ${r}
85
- - ${JSON.stringify([...s])}`));}async function Ih(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,mutationPlan:a,mutationCreated:l}=t;if(!t.isMutation||n?.return!=="minimal")return null;let c={...e,select:void 0},u=ne(c,s,{db:r,introspection:i,schema:o});Te("",u,t.debug);let f=await u.execute(),p=Array.isArray(f)&&f.length>0&&f[0]&&typeof f[0]=="object"&&("numUpdatedRows"in f[0]||"numInsertedOrUpdatedRows"in f[0]||"numDeletedRows"in f[0])?f[0]:void 0,d=p===void 0?void 0:Number(p.numUpdatedRows??p.numInsertedOrUpdatedRows??p.numDeletedRows??0),g=tt(e,"no-return",a.appliedResolution,l),m={"Content-Range":nn(e,n,d)};return t.prefApplied&&(m["Preference-Applied"]=t.prefApplied),new Response(null,{status:g,headers:m})}async function Dh(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,mutationPlan:a,mutationCreated:l,prefApplied:c}=t;if(!t.isMutation||n?.return!=="headers-only")return null;let f=i.primary_keys.find(S=>S.table===e.from)?.columns??[],p={...e,select:f.length>0?f:void 0},d=ne(p,s,{db:r,introspection:i,schema:o});Te("",d,t.debug);let g=await d.execute(),m=Array.isArray(g)?g.length:0,h=tt(e,"no-return",a.appliedResolution,l),y={"Content-Range":nn(e,n,m)};if(c&&(y["Preference-Applied"]=c),f.length>0&&Array.isArray(g)&&g.length>0){let S=g[0],_=f.map(w=>`${w}=eq.${S[w]}`).join("&");y.Location=`/${e.from}?${_}`;}return new Response(null,{status:h,headers:y})}function gr({rows:t,ast:e,connection:n,responseSchemaMap:r,mutationNullify:s}){let i=t.map(o=>n.deserializeRow(o));return i=eh(i,e,r,Zm(n,e)),i=ih(i,e.select,n.dialect),s?.meta?.return==="representation"&&(e.type==="insert"||e.type==="upsert"||e.type==="update")&&(i=wh(i,s.meta?.columns,s.mutationPlan.bodyKeySets)),i}function Jo(t){let{rows:e,stripNullsResponse:n,csvResponse:r,contentRange:s,status:i=200,preferenceApplied:o,location:a,contentType:l="array"}=t,c=n?$n(e):e,u=r?Wo(Array.isArray(c)?c:[c]):kt(c),f=new TextEncoder().encode(u),p={"Content-Type":r?"text/csv; charset=utf-8":n?l==="object"?"application/vnd.pgrst.object+json;nulls=stripped; charset=utf-8":"application/vnd.pgrst.array+json;nulls=stripped; charset=utf-8":l==="object"?"application/vnd.pgrst.object+json; charset=utf-8":"application/json; charset=utf-8","Content-Range":s,"Content-Length":String(f.byteLength)};return o&&(p["Preference-Applied"]=o),a&&(p.Location=a),new Response(f,{status:i,headers:p})}async function jh(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l}=t;if(!(t.isMutation&&(e.type==="update"||e.type==="delete")&&(e.limit!==void 0||e.offset!==void 0)))return null;let u={...e,select:void 0},f=ne(u,s,{db:r,introspection:i,schema:o});if(Te("LTD",f,t.debug),await f.execute(),n?.return==="representation"){let _={...e,type:"query",values:void 0,limit:void 0,offset:void 0},w=ne(_,s,{db:r,introspection:i,schema:o});Te("LTD-SEL",w,t.debug);let x=await w.execute(),E=Array.isArray(x)?x:[],T=gr({rows:E,ast:e,connection:a,responseSchemaMap:l}),O=T.length,P=[];n.return==="representation"&&P.push("return=representation"),n.count&&P.push(`count=${n.count}`),n.tx&&P.push(`tx=${n.tx}`);let D=e.type==="delete"?"*/*":O>0?ft(0,O,void 0):"*/*";return Jo({rows:T,stripNullsResponse:t.stripNullsResponse,csvResponse:t.csvResponse,contentRange:D,preferenceApplied:P.length>0?P.join(", "):void 0})}let p={...e,type:"query",select:[{__count:{aggregate:"count"}}],values:void 0,order:void 0,limit:void 0,offset:void 0},g=await ne(p,s,{db:r,introspection:i,schema:o}).execute(),m=Number((Array.isArray(g)?g[0]:g)?.__count??0),y={"Content-Range":m>0?ft(0,m,void 0):"*/*"},S=[];return n?.count&&S.push(`count=${n.count}`),n?.tx&&S.push(`tx=${n.tx}`),S.length>0&&(y["Preference-Applied"]=S.join(", ")),new Response(null,{status:204,headers:y})}function FT(t){return "select"in t||"spread"in t||"join"in t}function Lh(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let[n,r]of Object.entries(e)){if(FT(r))return true;let s=r;if(s.path||s.cast||s.preCast||s.aggregate||(s.column??n)!==n)return true}return false}async function Fh(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l,mutationPlan:c,mutationCreated:u}=t;if(!(t.isMutation&&n?.return==="representation"&&Lh(e.select)))return null;let d=i.primary_keys.find(x=>x.table===e.from)?.columns??[],g=[];if(e.type==="delete"){let x={...e,type:"query",values:void 0},E=ne(x,s,{db:r,introspection:i,schema:o});Te("EMB-PRE",E,t.debug),g=await E.execute();let T={...e,select:void 0},O=ne(T,s,{db:r,introspection:i,schema:o});Te("EMB-DEL",O,t.debug),await O.execute();}else {if(d.length===0)return R(500,"PGRSTXXX","Cannot return embedded data on a table without a primary key",null,null);let x={...e,select:d},E=ne(x,s,{db:r,introspection:i,schema:o});Te("EMB-MUT",E,t.debug);let T=await E.execute(),O=Array.isArray(T)?T:[];if(O.length>0){let P;if(d.length===1){let q=d[0];P={[q]:{$in:O.map(J=>J[q])}};}else P={$or:O.map(q=>{let J={};for(let M of d)J[M]={$eq:q[M]};return J})};let D=e.where?{$and:[e.where,P]}:P,k={...e,type:"query",values:void 0,where:D},C=ne(k,s,{db:r,introspection:i,schema:o});Te("EMB-SEL",C,t.debug),g=await C.execute();}}let m=gr({rows:g,ast:e,connection:a,responseSchemaMap:l,mutationNullify:{meta:n,mutationPlan:c}});e.order&&e.order.length>0&&(m=Ho(m,e.order));let h=tt(e,"representation",c.appliedResolution,u),y=m.length,S=["return=representation"];n?.count&&S.push(`count=${n.count}`),n?.tx&&S.push(`tx=${n.tx}`);let _=e.type==="delete"||e.type==="insert"||e.type==="upsert"?"*/*":y>0?ft(0,y,void 0):"*/*",w;if((e.type==="insert"||e.type==="upsert")&&d.length>0&&m.length>0){let x=m[0],E=d.map(T=>`${T}=eq.${x[T]}`).join("&");w=`/${e.from}?${E}`;}return Jo({rows:m,stripNullsResponse:t.stripNullsResponse,csvResponse:t.csvResponse,contentRange:_,status:h,preferenceApplied:S.join(", "),location:w})}function MT(t){return t?.handling!=="strict"||typeof t.maxAffected!="number"||!Number.isFinite(t.maxAffected)?null:t.maxAffected}function Mh(t){return R(400,"PGRST124","Query result exceeds max-affected preference constraint",`The query affects ${t} rows`,null)}function UT(t){return t.type!=="insert"&&t.type!=="upsert"&&t.type!=="put"?null:Array.isArray(t.values)?t.values.length:t.values&&typeof t.values=="object"?1:0}async function Uh(t){if(!t.isMutation)return null;let e=MT(t.meta);if(e===null)return null;let n=UT(t.ast);if(n!==null)return n>e?Mh(n):null;if(t.ast.type!=="update"&&t.ast.type!=="delete")return null;let r={...t.ast,type:"query",select:[{__count:{aggregate:"count"}}],values:void 0,order:void 0,limit:void 0,offset:void 0},s=ne(r,t.dialect,{db:t.db,introspection:t.introspection,schema:t.deparseSchema});Te("MAX-AFFECTED",s,t.debug);let i=await s.execute(),o=Number((Array.isArray(i)?i[0]:i)?.__count??0);return t.ast.offset!==void 0&&(o=Math.max(o-t.ast.offset,0)),t.ast.limit!==void 0&&(o=Math.min(o,t.ast.limit)),o>e?Mh(o):null}function On(t){return t||"public"}function BT(t,e,n){let r=On(e);return n.views.some(s=>s.name===t&&On(s.schema)===r)}function qT(t){let e=t.match(/\bINSERT\s+INTO\s+(?:(?:"([^"]+)"|'([^']+)')|(\w+))(?:\.(?:(?:"([^"]+)"|'([^']+)')|(\w+)))?/i);if(e)return e[6]??e[3]}function HT(t,e,n){let r=On(e);for(let s of n.triggers){if(s.table!==t||On(s.schema)!==r||!/\bINSTEAD\s+OF\b/i.test(s.sql))continue;let i=qT(s.sql);if(i)return i}}async function Bh(t,e,n,r,s,i){if(r!=="sqlite"&&r!=="postgres"||!e.from||t.length===0||!BT(e.from,e.schema,n))return t;let o=e.select;if(!o?.length)return t;let a=On(e.schema),l=n.primary_keys.find(h=>h.table===e.from&&On(h.schema)===a)?.columns??[];if(l.length===0){let h=HT(e.from,e.schema,n);h&&(l=n.primary_keys.find(y=>y.table===h&&On(y.schema)===a)?.columns??[]);}if(l.length===0&&t[0]&&"id"in t[0]&&(l=["id"]),l.length!==1)return t;let c=l[0],u=t.map(h=>h[c]).filter(h=>h!=null);if(u.length===0)return t;let f={type:"query",from:e.from,schema:e.schema,select:o,where:{[c]:{$in:u}}},d=await ne(f,r,{db:s,introspection:n,schema:i}).execute(),g=h=>String(h[c]),m=new Map(d.map(h=>[g(h),h]));return t.map(h=>m.get(g(h))??h)}async function qh(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l,mutationPlan:c,mutationCreated:u,prefApplied:f,isMutation:p,stripNullsResponse:d,csvResponse:g,requestUrl:m,acceptHeader:h}=t,y=ne(e,s,{db:r,introspection:i,schema:o});Te("",y,t.debug);let S=await y.execute(),_,w=false,x=0;if(p&&Array.isArray(S)&&S.length>0&&S[0]&&typeof S[0]=="object"&&("numUpdatedRows"in S[0]||"numInsertedOrUpdatedRows"in S[0]||"numDeletedRows"in S[0])){w=true;let z=S[0];x=Number(z.numUpdatedRows??z.numInsertedOrUpdatedRows??z.numDeletedRows??0),_=[];}else _=S;p&&Array.isArray(_)&&_.length>0&&(_=await Bh(_,e,i,s,r,o));let E=false,T,O=false,P=false,D=false,k=null;if(e.type==="rpc"&&Array.isArray(_)){let z={schema:e.schema??i.default_schema??"public",fnName:e.function??"",providedNames:Tn(e),paramsType:e.paramsType,argCount:Array.isArray(e.args)?e.args.length:void 0,method:e.httpMethod,inputType:e.inputType};k=Ko(i.functions,z,h);let me=_o(i.functions,z);if(me){let He=e.function??"",bt=_;E=!me.returns_object&&bt.length>0&&bt.every(Ti=>{let Br=Object.keys(Ti);return Br.length===1&&Br[0]===He}),E&&(T=He,_=bt.map(Ti=>Ti[He])),O=!me.return_is_setof,D=me.volatility!=="v",P=me.returns_void;}}if(P){let z={"Content-Range":"0-0/*"};return f&&(z["Preference-Applied"]=f),new Response(null,{status:204,headers:z})}if(k&&Array.isArray(_)&&_.length===1){let z=_[0];if(!E&&z&&typeof z=="object"&&!Array.isArray(z)&&!(z instanceof Uint8Array)){let bt=Object.keys(z);bt.length===1&&(z=z[bt[0]]);}let me=Ph(z,k.isBinary),He={"Content-Type":Oh(k.mediaType),"Content-Range":"0-0/*","Content-Length":String(me.byteLength)};return f&&(He["Preference-Applied"]=f),n?.head?new Response(null,{status:200,headers:He}):new Response(me,{status:200,headers:He})}let C=Array.isArray(_);C&&!E&&(_=gr({rows:_,ast:e,connection:a,responseSchemaMap:l,mutationNullify:{meta:n,mutationPlan:c}})),p&&C&&e.order&&e.order.length>0&&(_=Ho(_,e.order));let q=C?_:[],J=q.length,M=e.offset??0;if(p&&w){if(n?.cardinality==="one"){if(x===0)return R(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null);if(x>1)return R(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${x} rows`,null)}let z=tt(e,"no-return",c.appliedResolution,u),me={"Content-Type":"application/json; charset=utf-8","Content-Range":nn(e,n,x)};return f&&(me["Preference-Applied"]=f),new Response(null,{status:z,headers:me})}let G;if(tu(n)&&(p?G=J:e.type==="rpc"?M===0&&J<(e.limit??Number.POSITIVE_INFINITY)?G=J:D&&(G=await eu(r,e,s,i)):G=await eu(r,e,s,i)),n?.cardinality==="one"||O){if(J===0)return R(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null);if(J>1)return R(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${J} rows`,null);let z=200;p&&(z=tt(e,"representation",c.appliedResolution,u));let me=d?$n(q[0]):q[0],He=kt(me),bt=new TextEncoder().encode(He),Br=n?.cardinality==="one"?"application/vnd.pgrst.object+json":"application/json",Fa={"Content-Type":d?`${Br};nulls=stripped; charset=utf-8`:`${Br}; charset=utf-8`,"Content-Range":dh(e,p,M,G),"Content-Length":String(bt.byteLength)};return f&&(Fa["Preference-Applied"]=f),n?.head?new Response(null,{status:z,headers:Fa}):new Response(bt,{status:z,headers:Fa})}if(G!==void 0&&M>0&&J===0&&M>=G){let z=JSON.stringify({code:"PGRST103",details:`An offset of ${M} was requested, but there are only ${G} rows.`,hint:null,message:"Requested range not satisfiable"}),me=new TextEncoder().encode(z),He={"Content-Type":"application/json; charset=utf-8","Content-Range":`*/${G}`,"Content-Length":String(me.byteLength)};return f&&(He["Preference-Applied"]=f),new Response(me,{status:416,headers:He})}let Se;p&&(e.type==="insert"||e.type==="upsert"||e.type==="delete")?Se=G!==void 0?`*/${G}`:"*/*":p&&n?.return!=="representation"?Se=G!==void 0?`*/${G}`:"*/*":J>0?Se=ft(M,J,G):Se=G!==void 0?`*/${G}`:"*/*";let ge=200;p?ge=tt(e,"representation",c.appliedResolution,u):G!==void 0&&(M+J<G||M>0)&&(ge=206);let Xe=d?$n(_):_,Bn=Array.isArray(Xe)?Xe:[Xe];if(g&&E&&T!==void 0){let z=T;Bn=Bn.map(me=>({[z]:me}));}let xi=g?Wo(Bn):kt(Xe),La=new TextEncoder().encode(xi),Ft={"Content-Type":g?"text/csv; charset=utf-8":d?"application/vnd.pgrst.array+json;nulls=stripped; charset=utf-8":"application/json; charset=utf-8","Content-Range":Se,"Content-Length":String(La.byteLength)};if(!p&&e.from&&m){let z=fh(`/${e.from}`,new URL(m).search);z&&(Ft["Content-Location"]=z);}return f&&(Ft["Preference-Applied"]=f),n?.head?new Response(null,{status:ge,headers:Ft}):new Response(La,{status:ge,headers:Ft})}var yr=Symbol("lite-internal-request");function Hh(t){return t==="snake_case"?"__":"."}function Wh(t,e){let n=new Set;for(let r of t.tables)r.schema&&n.add(r.schema);for(let r of t.views)r.schema&&n.add(r.schema);if(e?.deparseSchema)for(let r of e.deparseSchema.values())r?.schema&&n.add(r.schema);for(let r of e?.internalSchemas??[])n.add(r);return n}function Kh(t){let e=new Set(t.exposedSchemas??["public"]),n=()=>[...e].sort().join(", ");if(t.explicitProfileSchema!==void 0&&!e.has(t.explicitProfileSchema))return R(406,"PGRST106",`Invalid schema: ${t.explicitProfileSchema}`,null,`Only the following schemas are exposed: ${n()}`);let r=t.isRpc?-1:t.relation.indexOf(t.separator);if(r>0){let s=t.relation.slice(0,r);if(t.knownSchemas.has(s)&&!e.has(s)){let i=t.relation.slice(r+t.separator.length);return R(404,"PGRST205",`Could not find the table '${s}.${i}' in the schema cache`,null,null)}}return null}var WT={swagger:"2.0",info:{description:"",title:"standard public schema",version:"14.1"},basePath:"/",schemes:["https"],consumes:["application/json","application/vnd.pgrst.object+json;nulls=stripped","application/vnd.pgrst.object+json","text/csv"],produces:["application/json","application/vnd.pgrst.object+json;nulls=stripped","application/vnd.pgrst.object+json","text/csv"]},Jh=t=>{let e=async(n,r)=>{let{app:s}=n.var,i=s.connection;if(!s.config.api?.enabled)return n.notFound();let{relation:o,isRpc:a}=r;if(a&&!i.supportsRpc)return R(404,"PGRST202",`Could not find the function public.${o} in the schema cache`,null,null);if(a){let h=n.req.method.toUpperCase();if(!["GET","POST","HEAD","OPTIONS"].includes(h))return R(405,"PGRST101",`Cannot use the ${h} method on RPC`,null,null)}let l=await i.introspect({useCache:true});if(!a&&i.config.introspection?.exclude_tables?.some(h=>wo(o,h,"sql")))return n.notFound();if(!(yr in n.req.raw)){let h=i.config.translation,y=Hh(h?.schemas?.approach),S=[];s.config.auth?.enabled&&S.push("auth"),s.config.storage?.enabled&&S.push("storage");let _=n.req.method.toUpperCase(),w=n.req.header("Content-Profile"),x=n.req.header("Accept-Profile"),E=_==="OPTIONS"?w??x:["POST","PUT","PATCH","DELETE"].includes(_)?w:x,T=Kh({relation:o,explicitProfileSchema:E,exposedSchemas:s.config.api?.schemas,knownSchemas:Wh(l,{deparseSchema:h?.deparse?.schema,internalSchemas:S}),separator:y,isRpc:a});if(T)return T}if(!(yr in n.req.raw)&&n.req.method!=="OPTIONS"){let h=await Wm(n.req.header("Authorization"),{jwtSecret:s.config.auth?.jwt_secret,anonymousEnabled:s.config.api?.anonymous_enabled!==false});if(h.kind==="error")return h.response;h.payload&&(n.set("userId",h.payload.sub),n.set("sessionId",h.payload.session_id),n.set("jwt",h.payload));}if(a&&n.req.method==="OPTIONS"){let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??l.default_schema??"public",y=nc(l.functions,{schema:h,fnName:o,method:"OPTIONS",providedNames:[]});if(y)return R(404,"PGRST202",y.message,y.details,y.hint);let S=Qt(l.functions??[],{schema:h,fnName:o,providedNames:[]}),_=S.length>0&&S.every(w=>w.volatility!=="v");return n.header("Allow",_?"OPTIONS,GET,HEAD,POST":"OPTIONS,POST"),n.body(null,200)}if(!a&&n.req.method==="OPTIONS"){let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??"public",y=w=>{let x=w||"public";return i.dialect==="sqlite"?x===h||x==="public"||x==="":x===h},S=l.views.find(w=>w.name===o&&y(w.schema)),_=!S&&l.tables.find(w=>w.name===o&&w.type!=="view"&&y(w.schema));if(_||S){let w=new Set(["OPTIONS","GET","HEAD"]);if(_)w.add("POST").add("PUT").add("PATCH").add("DELETE");else {let E=false,T=false,O=false,P=(M,G)=>`${M||"public"}\0${G}`,D=new Set,k=S.schema||"public",C=await i.viewOptionsMetadata(o,k).catch(()=>null);if(C){E=C.canInsert,T=C.canUpdate,O=C.canDelete;for(let M of C.baseTables)D.add(P(M.schema,M.name));}else {let M=l.triggers.filter(ge=>ge.table===o&&y(ge.schema)),G=ge=>M.some(Xe=>new RegExp(`instead\\s+of\\s+${ge}`,"i").test(Xe.sql));E=G("insert"),T=G("update"),O=G("delete");let Se=S?.sql??"";for(let ge of l.tables){if(ge.type==="view")continue;let Xe=ge.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");new RegExp(`\\b${Xe}\\b`,"i").test(Se)&&D.add(P(ge.schema,ge.name));}}let q=new Set(l.columns.filter(M=>M.table===o&&y(M.schema)).map(M=>M.name)),J=l.tables.some(M=>{if(M.type==="view"||!D.has(P(M.schema,M.name)))return false;let G=l.columns.filter(Se=>Se.table===M.name&&(Se.schema||"public")===(M.schema||"public")&&Se.is_primary_key);return G.length>0&&G.every(Se=>q.has(Se.name))});E&&w.add("POST"),T&&w.add("PATCH"),O&&w.add("DELETE"),E&&T&&J&&w.add("PUT");}let x=["OPTIONS","GET","HEAD","POST","PUT","PATCH","DELETE"].filter(E=>w.has(E));return n.header("Allow",x.join(",")),n.body(null,200)}}let{dialect:u}=i,f=i.config.translation?.deparse?.schema,p=Ym(f,l,u),d=n.var.jwt,g={auth:{uid:n.var.userId??null,role:d?.role||"anon",jwt:d??null}},m;try{let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??"public",y=new Set(l.columns.filter(k=>{if(k.table!==o)return !1;let C=k.schema||"public";return u==="sqlite"?C===h||C==="public"||C==="":C===h}).map(k=>k.name));m=await Yi(n.req.raw,{basePath:"/rest/v1",parentColumns:y,resolveFilters:(k,C,q)=>as(k,C,q,y)}),m=await i.onPostgrestAST(m,g);let S=m.function,_=!1;if(a&&S){let k={schema:m.schema??l.default_schema??"public",fnName:S,method:n.req.method.toUpperCase(),providedNames:Tn(m),paramsType:m.paramsType,inputType:m.inputType,rawKind:Jd(n.req.header("Content-Type"))},C=nc(l.functions,k);if(C)return R(404,"PGRST202",C.message,C.details,C.hint);let q=Kd(l.functions,k);if(q)return R(300,"PGRST203",q.message,q.details,q.hint);if(k.method==="OPTIONS"){let J=_o(l.functions,{schema:k.schema,fnName:k.fnName,providedNames:k.providedNames,paramsType:k.paramsType}),M=J&&J.volatility!=="v"?"OPTIONS,GET,HEAD,POST":"OPTIONS,POST";return new Response(null,{status:200,headers:{Allow:M,"Access-Control-Allow-Origin":"*"}})}_=Ko(l.functions,{schema:k.schema,fnName:k.fnName,providedNames:k.providedNames,paramsType:k.paramsType,argCount:Array.isArray(m.args)?m.args.length:void 0,method:k.method,inputType:k.inputType},n.req.header("Accept"))!==null;}t?.debug&&console.log(ru.default.dim("[POSTGREST:AST]"),m);let w=Th({ast:m,dialect:u,introspection:l,apiConfig:s.config.api,acceptHeader:n.req.header("Accept")??"application/json",allowRawMedia:_,preferHeader:n.req.header("Prefer"),httpMethod:n.req.method.toUpperCase(),rangeHeader:n.req.header("Range")});if(w instanceof Response)return w;m=w.ast;let{meta:x,mutationPlan:E,isMutation:T,stripNullsResponse:O,csvResponse:P,planEnabled:D}=w;return await i.withContext(g,async k=>{let C=n.req.header("Accept")??"application/json";if(D&&rh(C)){let Ft=ne(m,u,{db:k,introspection:l,schema:f}).compile();return t?.debug&&console.info(ru.default.dim(`[POSTGREST:PLAN] ${Ft.sql}
86
- - ${JSON.stringify([...Ft.parameters])}`)),uh(C,Ft)}let q=T?await Eh(k,m,u,l,E):void 0,J=Ks(x,E.appliedResolution),M={ast:m,meta:x,db:k,dialect:u,introspection:l,deparseSchema:f,connection:i,responseSchemaMap:p,mutationPlan:E,mutationCreated:q,prefApplied:J,isMutation:T,stripNullsResponse:O,csvResponse:P,acceptHeader:C,requestUrl:n.req.url,debug:t?.debug},G=await Uh(M);if(G)return G;let Se=await Ih(M);if(Se)return Se;let ge=await Dh(M);if(ge)return ge;let Xe=await jh(M);if(Xe)return Xe;let Bn=await Fh(M);if(Bn)return Bn;let xi=await qh(M);return a&&u==="postgres"?await kh(k,xi):xi},{forceRollback:t?.forceRollback===!0,rpc:a&&u==="postgres"?{method:n.req.method.toUpperCase(),path:`/rpc/${o}`,readOnly:["GET","HEAD"].includes(n.req.method.toUpperCase()),requestHeaders:Object.fromEntries(n.req.raw.headers)}:void 0})}catch(h){return Ah(h,{connection:i,introspection:l,vars:g,ast:m})}};return new _e().all("/rpc/:function",n=>e(n,{relation:n.req.param("function"),isRpc:true})).all("/:relation",n=>e(n,{relation:n.req.param("relation"),isRpc:false})).use(async(n,r)=>{if(n.req.method==="GET"&&n.req.path.endsWith("/")){let{app:s}=n.var,i=n.req.header("Accept-Profile")??n.req.header("Content-Profile")??null;if(i){let o=new Set(s.config.api?.schemas??["public"]);if(o.size>0&&!o.has(i)){let a=[...o].sort().join(", ");return R(406,"PGRST106",`Invalid schema: ${i}`,null,`Only the following schemas are exposed: ${a}`)}}return n.json(WT)}await r();}).all("*",n=>R(404,"PGRST125","Invalid path specified in request URL",null,null))};var K=class extends Error{constructor(n,r,s,i,o){super(s);this.status=n;this.code=r;this.details=i;this.headers=o;this.name="AuthError";}toJSON(){return {code:this.status,error_code:this.code,msg:this.message,...this.details}}},pt=()=>new K(400,"invalid_credentials","Invalid login credentials"),zh=()=>new K(400,"email_not_confirmed","Email not confirmed"),Vh=(t,e=[],n=["length"])=>{let r=[];return n.includes("length")&&r.push(`Password should be at least ${t} characters.`),n.includes("characters")&&r.push(`Password should contain at least one character of each: ${e.join(", ")}.`),new K(422,"weak_password",r.join(" "),{weak_password:{reasons:n}})},Gh=(t="Access token is required")=>new K(401,"no_authorization",t),br=()=>new K(401,"no_authorization","This endpoint requires a valid Bearer token"),Js=t=>new K(403,"bad_jwt",t),su=()=>Js("invalid JWT: unable to parse or verify signature, token is malformed: token contains an invalid number of segments"),iu=t=>Js(`invalid JWT: unable to parse or verify signature, token is malformed: could not JSON decode header: ${t}`),Qh=()=>Js("invalid JWT: unable to parse or verify signature, token signature is invalid: signature is invalid"),Xh=()=>Js("invalid JWT: unable to parse or verify signature, token has invalid claims: token is expired"),ou=()=>Js("invalid claim: missing sub claim"),au=()=>new K(400,"bad_jwt","invalid claim: sub claim must be a UUID");var Yh=()=>new K(403,"user_not_found","User from sub claim in JWT does not exist"),Zh=()=>new K(403,"session_not_found","Session from session_id claim in JWT does not exist"),eg=()=>new K(422,"user_already_exists","User already registered"),tg=()=>new K(422,"email_exists","A user with this email address has already been registered"),lu=()=>new K(422,"signup_disabled","Signups not allowed for this instance"),ng=()=>new K(400,"email_provider_disabled","Email signups are disabled"),rg=()=>new K(422,"otp_disabled","Signups not allowed for otp"),sg=()=>new K(422,"same_password","New password should be different from the old password."),Pn=()=>new K(403,"otp_expired","Email link is invalid or has expired"),le=(t,e=422)=>new K(e,"validation_failed",t);var zs=t=>new K(400,"bad_json",t),cu=()=>new K(400,"validation_failed","Refresh token is not valid"),wr=()=>new K(400,"refresh_token_not_found","Invalid Refresh Token: Refresh Token Not Found"),zo=(t,e)=>new K(400,"refresh_token_already_used","Invalid Refresh Token: Already Used",void 0,{...t?{"Sb-Auth-Session-Id":t}:{},...e?{"Sb-Auth-User-Id":e}:{}}),ig=()=>new K(401,"session_not_found","Invalid Refresh Token: Already Used"),uu=(t,e,n)=>new K(400,"session_expired",t==="inactivity"?"Invalid Refresh Token: Session Expired (Inactivity)":"Invalid Refresh Token: Session Expired",void 0,{...e?{"Sb-Auth-Session-Id":e}:{},...n?{"Sb-Auth-User-Id":n}:{}}),og=()=>new K(422,"anonymous_provider_disabled","Anonymous sign-ins are disabled"),ag=()=>new K(400,"invalid_credentials","unsupported_grant_type"),Vo=()=>new K(429,"over_email_send_rate_limit","For security purposes, you can only request this after 59 seconds.");async function pu(t,e,n){let r=new TextEncoder().encode(e),s=Math.floor(Date.now()/1e3);return new An({...t,iat:s}).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt(s).setExpirationTime(s+n).sign(r)}async function lg(t,e){let n=t.split(".");if(n.length!==3||n.some(i=>i===""))throw su();let r=KT(n[0]);if(r)throw r;let s=new TextEncoder().encode(e);try{let{payload:i}=await vn(t,s,{algorithms:["HS256"]});return i}catch(i){throw i instanceof At.JWTExpired?Xh():i instanceof At.JWSSignatureVerificationFailed?Qh():i instanceof At.JWSInvalid||i instanceof At.JWTInvalid?su():i}}function KT(t){let e=JT(t);if(!e)return iu("unexpected end of JSON input");let n=zT(e);try{return JSON.parse(new TextDecoder("utf-8").decode(e)),null}catch{return iu(du(n))}}function JT(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=atob(e),r=new Uint8Array(n.length);for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);return r}catch{return null}}function zT(t){let e="";for(let n of t)e+=String.fromCharCode(n);return e}var VT={n:"null",t:"true",f:"false"};function du(t){let e=0;for(;e<t.length;){let i=t.charCodeAt(e);if(i===32||i===9||i===10||i===13)e++;else break}let n=t.slice(e);if(!n)return "unexpected end of JSON input";let r=n[0],s=VT[r];if(s){for(let i=1;i<s.length;i++){if(i>=n.length)return "unexpected end of JSON input";if(n[i]!==s[i])return `invalid character ${fu(n[i])} in literal ${s} (expecting '${s[i]}')`}return `invalid character ${fu(n[s.length]??" ")} after top-level value`}return r==="{"||r==="["||r==='"'||r==="-"||r>="0"&&r<="9"?"":`invalid character ${fu(r)} looking for beginning of value`}function fu(t){let e=t.codePointAt(0)??0;return e>=32&&e<127?`'${t}'`:`'\\u${e.toString(16).padStart(4,"0")}'`}var GT=10,QT=4,XT=4,YT=31;function ZT(t=process.env){let e=t.LITE_AUTH_BCRYPT_COST;if(e!==void 0&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return Math.min(YT,Math.max(XT,Math.trunc(n)))}return t.RUN_SPEC==="1"?QT:GT}async function Vs(t){return cg.hash(t,ZT())}async function mu(t,e){return cg.compare(t,e)}function ug(t,e=6,n=[]){let r=[];return t.length<e&&r.push("length"),n.length>0&&n.some(s=>!eR(t,s))&&r.push("characters"),r}function eR(t,e){for(let n of t)if(e.includes(n))return true;return false}function $t(t=6){let e=crypto.getRandomValues(new Uint8Array(t)),n="";for(let r=0;r<t;r++)n+=(e[r]%10).toString();return n}function hu(){let t=crypto.getRandomValues(new Uint8Array(32));return pg(t)}async function dt(t,e){let n=new TextEncoder().encode(t.toLowerCase()+e),r=await crypto.subtle.digest("SHA-256",n);return pg(new Uint8Array(r))}function pg(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function gu(){return v7()}function ze(){return v7()}function Go(t){if(!t.jwt_secret)throw new Error('[auth] is enabled but `auth.jwt_secret` is empty. Add `jwt_secret = "<secret>"` under [auth] in your config.toml.')}function tR(t){return t==="localhost"||t==="127.0.0.1"||t==="::1"}function nR(t){let e="^";for(let n=0;n<t.length;n++){let r=t[n];if(r==="\\"){let s=t[++n];s!==void 0?e+=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):e+="\\\\";}else if(r==="*")t[n+1]==="*"?(e+=".*",n++):e+="[^./]*";else if(r==="?")e+="[^./]";else if(r==="["){let s=t.indexOf("]",n+1);if(s===-1)e+="\\[";else {let i=t.slice(n+1,s);i.startsWith("!")&&(i=`^${i.slice(1)}`),e+=`[${i}]`,n=s;}}else e+=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");}return new RegExp(`${e}$`)}function rR(t,e,n){let r;try{r=new URL(t);}catch{return false}try{let i=new URL(e);if(i.protocol===r.protocol&&i.hostname===r.hostname&&(i.port===r.port||tR(r.hostname)))return !0}catch{}let s=t.split("#")[0];for(let i of n)if(nR(i).test(s))return true;return false}var Gs=class t{constructor(e,n,r){this.repo=e;this.config=n;this.mailer=r;Go(n),this.jwtExpiry=n.jwt_expiry??3600,this.minPasswordLength=n.minimum_password_length??6,this.passwordRequiredCharacters=n.password_required_characters??iR(n.password_requirements),this.sessionTimeboxSeconds=dg(n.sessions?.timebox),this.sessionInactivitySeconds=dg(n.sessions?.inactivity_timeout);}jwtExpiry;minPasswordLength;passwordRequiredCharacters;sessionTimeboxSeconds;sessionInactivitySeconds;get otpLength(){return this.config.email?.otp_length??6}get otpExpirySeconds(){return this.config.email?.otp_expiry??3600}resolveEmailRedirect(e){let n=this.config.site_url??"http://localhost:3000";return e&&rR(e,n,this.config.additional_redirect_urls??[])?e:n}async signUp(e,n,r){if(this.config.enable_signup===false)throw lu();if(!e)throw og();if(this.config.email?.enable_signup===false)throw ng();if(n==null||n===void 0||n==="")throw le("Signup requires a valid password",400);if(!Sr(e))throw le("Unable to validate email address: invalid format",400);if(n.length>72)throw le("Password cannot be longer than 72 characters",400);this.assertPasswordStrong(n);let i=!(this.config.email?.enable_confirmations??this.config.enable_confirmations??false);e=e.toLowerCase();let o=await this.repo.findUserByEmail(e);if(o)throw i?(await this.createAuditLog(o.id,e,"user_repeated_signup","user"),eg()):Vo();let a=ze(),l=await Vs(n),c=new Date().toISOString(),u=null,f=null,p=null;i||(u=$t(this.otpLength),f=await dt(e,u),p=c);let d={...r??{},email:e,email_verified:i,phone_verified:false,sub:a},g={...r??{},email:e,email_verified:false,phone_verified:false,sub:a},m=await this.repo.createUser({id:a,email:e,encrypted_password:l,confirmed_at:i?c:null,raw_user_meta_data:d,raw_app_meta_data:{provider:"email",providers:["email"]},confirmation_token:f,confirmation_sent_at:p});await this.repo.createIdentity({id:ze(),provider:"email",provider_id:a,user_id:a,identity_data:g}),!i&&u&&f&&await this.mailer.sendConfirmation(e,f,u,{userId:a,redirectTo:this.config.site_url});let h=await this.repo.findIdentitiesByUserId(a),y=this.repo.parseUserJson(m),S=this.mapUserToResponse(y,h,"signup");if(i){let _=await this.createSessionForUser(y,h);return await this.createAuditLog(a,e,"user_signedup","team"),{user:S,session:_}}return await this.createAuditLog(a,e,"user_confirmation_requested","user"),{user:S}}async signInWithPassword(e,n){if(!e)throw le("missing email or phone",400);if(!n)throw pt();let r=await this.repo.findUserByEmail(e.toLowerCase());if(!r||!r.encrypted_password)throw pt();let s=this.repo.parseUserJson(r);if(!s.confirmed_at)throw zh();if(!await mu(n,s.encrypted_password))throw pt();let o=await this.repo.findIdentitiesByUserId(r.id);return this.createSessionForUser(s,o,"user")}async refreshSession(e){if(!e)throw cu();let n=await this.repo.findRefreshToken(e);if(!n)throw oR(e)?wr():cu();if(mg(n))return this.refreshWithRevokedToken(n);let r=await this.repo.findUserById(n.user_id);if(!r)throw wr();let s=null;if(n.session_id){if(s=await this.repo.findSessionById(n.session_id),!s)throw wr();this.assertSessionRefreshable(s);}let i=yu(s?.updated_at,s?.refreshed_at,r.updated_at);await this.repo.revokeRefreshToken(n.id);let o=gu(),a=n.session_id??ze();return n.session_id?await this.repo.updateSessionRefreshedAt(n.session_id,i):await this.repo.createSession({id:a,user_id:r.id}),await this.repo.createRefreshToken({token:o,user_id:r.id,session_id:a,parent:n.token}),await this.createAuditLog(r.id,r.email??"","token_refreshed","token",false),await this.createAuditLog(r.id,r.email??"","token_revoked","token",false),this.createRefreshResponse(r,a,o,i)}async refreshWithRevokedToken(e){if(this.config.sessions?.single_per_user)throw ig();if(!e.session_id)throw zo(e.session_id,e.user_id);let n=await this.repo.findRefreshTokensBySession(e.session_id),r=aR(n,e.token),s=r.filter(c=>!mg(c));if((this.config.enable_refresh_token_rotation??false)&&r.length>1)throw await this.repo.revokeRefreshTokensByIds(s.map(c=>c.id)),zo(e.session_id,e.user_id);let i=s.at(-1);if(!i)throw zo(e.session_id,e.user_id);let o=await this.repo.findUserById(e.user_id);if(!o)throw wr();let a=await this.repo.findSessionById(e.session_id);if(!a)throw wr();this.assertSessionRefreshable(a);let l=yu(a.updated_at,a.refreshed_at,o.updated_at);return await this.repo.updateSessionRefreshedAt(e.session_id,l),await this.createAuditLog(o.id,o.email??"","token_refreshed","token",false),this.createRefreshResponse(o,e.session_id,i.token,l)}async createRefreshResponse(e,n,r,s){let i=await this.repo.updateUser(e.id,{last_sign_in_at:s}),o=this.repo.parseUserJson(i??e),a=await this.repo.findIdentitiesByUserId(e.id),l=await pu({sub:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??void 0,session_id:n},this.config.jwt_secret,this.jwtExpiry),c=Math.floor(Date.now()/1e3);return hg({access_token:l,refresh_token:r,token_type:"bearer",expires_in:this.jwtExpiry,expires_at:c+this.jwtExpiry,user:this.mapUserToResponse(o,a,"user")},n,e.id)}assertSessionRefreshable(e){let n=Date.now();if(this.sessionTimeboxSeconds!==void 0&&n-Date.parse(e.created_at)>this.sessionTimeboxSeconds*1e3)throw uu(void 0,e.id,e.user_id);let r=e.refreshed_at??e.created_at;if(this.sessionInactivitySeconds!==void 0&&n-Date.parse(r)>this.sessionInactivitySeconds*1e3)throw uu("inactivity",e.id,e.user_id)}async getUser(e){let n=await this.repo.findUserById(e);if(!n)throw pt();let r=this.repo.parseUserJson(n),s=await this.repo.findIdentitiesByUserId(e);return this.mapUserToResponse(r,s,"user")}async updateUser(e,n){let r=await this.repo.findUserById(e);if(!r)throw pt();let s=this.repo.parseUserJson(r),i={},o=false,a=false,l=n.data!==void 0||n.password!==void 0||n.email!==void 0;if(n.data!==void 0){let f=typeof s.raw_user_meta_data=="object"?s.raw_user_meta_data:{};i.raw_user_meta_data=sR(f,n.data??{}),o=true;}if(n.password!==void 0){if(this.assertPasswordStrong(n.password),s.encrypted_password&&await mu(n.password,s.encrypted_password))throw sg();i.encrypted_password=await Vs(n.password),i.recovery_token=null,i.recovery_sent_at=null,o=true,a=true;}if(n.email!==void 0)if(n.email==="")o=true;else {let f=n.email.toLowerCase();if(!Sr(f))throw le("Unable to validate email address: invalid format",400);if(o=true,f!==s.email?.toLowerCase()){let p=await this.repo.findUserByEmail(f);if(p&&p.id!==e)throw tg();let d=new Date().toISOString(),g=s.email??"",m=$t(this.otpLength),h=await dt(g,m),y=$t(this.otpLength),S=await dt(f,y),_=this.config.email?.double_confirm_changes??true;i.email_change=f,i.email_change_token_current=_?h:null,i.email_change_token_new=S,i.email_change_sent_at=d,_?await this.mailer.sendEmailChange(g,h,m,{userId:e,tokenNew:y,tokenHashNew:S,redirectTo:this.config.site_url,currentEmail:g,newEmail:f}):await this.mailer.sendEmailChange(f,S,y,{userId:e,redirectTo:this.config.site_url,currentEmail:g,newEmail:f});}}l||(o=true);let c=s;if(Object.keys(i).length>0){let f=await this.repo.updateUser(e,i);if(!f)throw pt();c=this.repo.parseUserJson(f);}a&&await this.createAuditLog(e,s.email??"","user_updated_password","user",false),o&&await this.createAuditLog(e,s.email??"","user_modified","user",false);let u=await this.repo.findIdentitiesByUserId(e);return this.mapUserToResponse(c,u,"user")}async signOut(e,n,r){let s=n??"local";if(!["global","local","others"].includes(s))throw le(`Unsupported logout scope "${s}"`,400);let i=await this.repo.findUserById(r);if(!i)throw pt();let o=this.repo.parseUserJson(i);s==="global"?(await this.repo.deleteRefreshTokensForUser(r),await this.repo.deleteUserSessions(r)):s==="others"&&e?(await this.repo.deleteRefreshTokensForUser(r,e),await this.repo.deleteUserSessions(r,e)):e&&(await this.repo.deleteRefreshTokensForSession(e),await this.repo.deleteSession(e)),await this.createAuditLog(r,o.email??"","logout","account",false);}async signInWithOtp(e,n){if(!e)throw le("One of email or phone must be set",400);if(e=e.toLowerCase(),!Sr(e))throw le("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(e),s=!r;if(!r&&n?.shouldCreateUser!==false){let l=ze(),c=await Vs(hu()),u=new Date().toISOString();r=await this.repo.createUser({id:l,email:e,encrypted_password:c,confirmed_at:u,raw_app_meta_data:{provider:"email",providers:["email"]},raw_user_meta_data:{email:e,email_verified:true,phone_verified:false,sub:l}}),await this.repo.createIdentity({id:ze(),provider:"email",provider_id:l,user_id:l,identity_data:{email:e,email_verified:false,phone_verified:false,sub:l}});}if(!r)throw rg();let i=$t(this.otpLength),o=await dt(e,i),a=new Date().toISOString();if(await this.repo.updateUser(r.id,{recovery_token:o,recovery_sent_at:a}),await this.createAuditLog(r.id,e,"user_recovery_requested","user",false),await this.mailer.sendMagicLink(e,o,i,{userId:r.id,redirectTo:this.config.site_url}),s){let l=await this.repo.findUserById(r.id);if(!l)throw pt();let c=this.repo.parseUserJson(l),u=await this.repo.findIdentitiesByUserId(r.id);await this.createSessionForUser(c,u),await this.createAuditLog(r.id,e,"user_signedup","team");}}async requestMagicLink(e,n){if(!e)throw le("Password recovery requires an email",422);if(e=e.toLowerCase(),!Sr(e))throw le("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(e),s=!r;if(!r){if(this.config.enable_signup===false)throw lu();let l=ze(),c=await Vs(hu()),u=new Date().toISOString();r=await this.repo.createUser({id:l,email:e,encrypted_password:c,confirmed_at:u,raw_app_meta_data:{provider:"email",providers:["email"]},raw_user_meta_data:{email:e,email_verified:true,phone_verified:false,sub:l}}),await this.repo.createIdentity({id:ze(),provider:l,provider_id:l,user_id:l,identity_data:{email:e,email_verified:false,phone_verified:false,sub:l}});}let i=$t(this.otpLength),o=await dt(e,i),a=new Date().toISOString();if(await this.repo.updateUser(r.id,{recovery_token:o,recovery_sent_at:a}),await this.createAuditLog(r.id,e,"user_recovery_requested","user",false),await this.mailer.sendMagicLink(e,o,i,{userId:r.id,redirectTo:this.config.site_url}),s){let l=await this.repo.findUserById(r.id);if(!l)throw pt();let c=this.repo.parseUserJson(l),u=await this.repo.findIdentitiesByUserId(r.id);await this.createSessionForUser(c,u),await this.createAuditLog(r.id,e,"user_signedup","team");}}async verifyOtp(e){let n=null,r=null;if(e.token_hash){let c=await this.findUserByTokenAndType(e.token_hash,e.type);n=c?.user??null,r=c?.tokenColumn??null;}else if(e.email&&e.token){let c=await dt(e.email.toLowerCase(),e.token),u=await this.findUserByTokenAndType(c,e.type);if(n=u?.user??null,r=u?.tokenColumn??null,!n)throw Pn()}else throw Pn();if(!n||!r)throw Pn();if(this.isTokenExpired(n,r))throw Pn();if(e.type==="email_change"){let u=this.config.email?.double_confirm_changes??true?"email_change_token_current":"email_change_token_new";if(r!==u)throw Pn()}let s=this.repo.parseUserJson(n),i=new Date().toISOString(),o={};if(s.confirmed_at||(o.confirmed_at=i),e.type==="email_change"&&s.email_change){o.email=s.email_change,o.email_change=null,o.email_change_token_current=null,o.email_change_token_new=null;let c=await this.repo.findIdentitiesByUserId(n.id);for(let u of c){let f=typeof u.identity_data=="string"?JSON.parse(u.identity_data):{...u.identity_data??{}};await this.repo.updateIdentity(u.id,{identity_data:{...f,email:s.email_change,email_verified:true}});}await this.createAuditLog(n.id,s.email??"","user_modified","user",false);}else if(e.type==="signup"){let c=typeof s.raw_user_meta_data=="object"?s.raw_user_meta_data:{};o.raw_user_meta_data={...c,email_verified:true};let u=await this.repo.findIdentitiesByUserId(n.id);for(let f of u){let p=typeof f.identity_data=="string"?JSON.parse(f.identity_data):{...f.identity_data??{}};await this.repo.updateIdentity(f.id,{identity_data:{...p,email_verified:true}});}r&&(o[r]=null);}else r&&(o[r]=null);o.last_sign_in_at=i,await this.repo.updateUser(n.id,o);let a=await this.repo.findUserById(n.id);if(!a)throw Pn();let l=await this.repo.findIdentitiesByUserId(n.id);return e.type==="signup"&&await this.createAuditLog(n.id,a.email??"","user_signedup","team"),this.createSessionForUser(this.repo.parseUserJson(a),l,"verify",{createLoginAudit:["magiclink","recovery"].includes(e.type),includeLoginProviderTrait:!["magiclink","recovery"].includes(e.type),authenticationMethod:["email_change","magiclink","recovery","signup"].includes(e.type)?"otp":"password"})}async recover(e){if(!e)throw le("Password recovery requires an email",400);if(e=e.toLowerCase(),!Sr(e))throw le("Unable to validate email address: invalid format",400);let n=await this.repo.findUserByEmail(e);if(!n)return;let r=$t(this.otpLength),s=await dt(e,r),i=new Date().toISOString();await this.repo.updateUser(n.id,{recovery_token:s,recovery_sent_at:i}),await this.createAuditLog(n.id,e,"user_recovery_requested","user",false),await this.mailer.sendRecovery(e,s,r,{userId:n.id,redirectTo:this.config.site_url});}async resend(e,n){if(!["signup","email_change","sms","phone_change"].includes(e))throw le("Missing one of these types: signup, email_change, sms, phone_change",400);if((e==="signup"||e==="email_change")&&!n)throw le("Type provided requires an email address",400);if(!n)return;if(n=n.toLowerCase(),!Sr(n))throw le("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(n);if(!r)return;let s=$t(this.otpLength),i=new Date().toISOString();if(e==="signup"){if(r.confirmed_at||!r.confirmation_sent_at)return;throw Vo()}else if(e==="email_change"){if(!r.email_change)return;if(r.email_change_sent_at)throw Vo();let o=await dt(r.email_change,s);await this.repo.updateUser(r.id,{email_change_token_new:o,email_change_sent_at:i}),await this.mailer.sendEmailChange(r.email_change,o,s,{userId:r.id,redirectTo:this.config.site_url,currentEmail:r.email??void 0,newEmail:r.email_change});}}async reauthenticate(e){let n=await this.repo.findUserById(e);if(!n)throw Gh();let r=$t(this.otpLength),s=await dt(n.email,r),i=new Date().toISOString();await this.repo.updateUser(n.id,{reauthentication_token:s,reauthentication_sent_at:i}),await this.mailer.sendReauthentication(n.email,r,{userId:n.id,tokenHash:s,redirectTo:this.config.site_url}),await this.createAuditLog(n.id,n.email??"","user_reauthenticate_requested","",false);}async createSessionForUser(e,n,r="session",s={}){let i=yu(e.last_sign_in_at,e.updated_at),o=await this.repo.updateUser(e.id,{last_sign_in_at:i}),a=o?this.repo.parseUserJson(o):e;this.config.sessions?.single_per_user&&await this.repo.revokeUserRefreshTokens(e.id);let l=ze();await this.repo.createSession({id:l,user_id:e.id});let c=gu();await this.repo.createRefreshToken({token:c,user_id:e.id,session_id:l}),(s.createLoginAudit??true)&&await this.createAuditLog(e.id,e.email??"","login","account",s.includeLoginProviderTrait??true);let u=await pu({sub:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??void 0,session_id:l},this.config.jwt_secret,this.jwtExpiry),f=Math.floor(Date.now()/1e3);return hg({access_token:u,refresh_token:c,token_type:"bearer",expires_in:this.jwtExpiry,expires_at:f+this.jwtExpiry,user:this.mapUserToResponse(a,n,r)},l,e.id)}assertPasswordStrong(e){let n=ug(e,this.minPasswordLength,this.passwordRequiredCharacters);if(n.length>0)throw Vh(this.minPasswordLength,this.passwordRequiredCharacters,n)}mapUserToResponse(e,n,r){let s=typeof e.raw_app_meta_data=="string"?JSON.parse(e.raw_app_meta_data):e.raw_app_meta_data??{},i=typeof e.raw_user_meta_data=="string"?JSON.parse(e.raw_user_meta_data):e.raw_user_meta_data??{},o={id:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??"",phone:e.phone??"",app_metadata:s,user_metadata:i,identities:n.map(a=>this.mapIdentityToResponse(a,r,e)),created_at:e.created_at,updated_at:e.updated_at,is_anonymous:false};return e.confirmed_at&&(o.email_confirmed_at=e.confirmed_at,(r==="user"||r==="verify")&&(o.confirmed_at=e.confirmed_at)),e.last_sign_in_at&&(o.last_sign_in_at=e.last_sign_in_at),e.confirmation_sent_at&&(o.confirmation_sent_at=e.confirmation_sent_at),e.email_change&&(o.new_email=e.email_change),e.email_change_sent_at&&(o.email_change_sent_at=e.email_change_sent_at),r==="verify"&&e.recovery_sent_at&&(o.recovery_sent_at=e.recovery_sent_at),o}mapIdentityToResponse(e,n,r){let s=typeof e.identity_data=="string"?JSON.parse(e.identity_data):e.identity_data??{},i=n==="session"&&r.confirmed_at?{...s,email_verified:true}:s,o=e.email??(typeof i.email=="string"?i.email:r.email??void 0);return {identity_id:e.id,id:e.provider_id,user_id:e.user_id,identity_data:i,provider:"email",last_sign_in_at:e.last_sign_in_at??e.created_at,created_at:e.created_at,updated_at:e.updated_at,...o?{email:o}:{}}}async findUserByTokenAndType(e,n){if(n==="email_change"){let r=await this.repo.findUserByToken("email_change_token_current",e);if(r)return {user:r,tokenColumn:"email_change_token_current"};let s=await this.repo.findUserByToken("email_change_token_new",e);return s?{user:s,tokenColumn:"email_change_token_new"}:null}for(let r of this.getTokenColumnsForType(n)){let s=await this.repo.findUserByToken(r,e);if(s)return {user:s,tokenColumn:r}}return null}static SENT_AT_COLUMN={confirmation_token:"confirmation_sent_at",recovery_token:"recovery_sent_at",email_change_token_current:"email_change_sent_at",email_change_token_new:"email_change_sent_at",reauthentication_token:"reauthentication_sent_at"};isTokenExpired(e,n){let r=t.SENT_AT_COLUMN[n];if(!r)return false;let s=e[r];if(!s)return false;let i=new Date(s).getTime();return Number.isNaN(i)?false:Date.now()-i>this.otpExpirySeconds*1e3}getTokenColumnsForType(e){switch(e){case "signup":return ["confirmation_token"];case "magiclink":return ["recovery_token","confirmation_token"];case "recovery":return ["recovery_token"];case "email_change":return ["email_change_token_new","email_change_token_current"];case "reauthentication":return ["reauthentication_token"];default:return []}}async createAuditLog(e,n,r,s,i=true){let o={action:r,actor_id:e,actor_username:n,actor_via_sso:false,log_type:s};i&&(o.traits={provider:"email"}),await this.repo.createAuditLogEntry({id:ze(),payload:o});}};function sR(t,e){let n={...t};for(let[r,s]of Object.entries(e))s===null?delete n[r]:n[r]=s;return n}function iR(t){switch(t){case "letters_digits":return ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789"];case "lower_upper_letters_digits":return ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789"];case "lower_upper_letters_digits_symbols":return ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789","!@#$%^&*"];default:return []}}function dg(t){if(!t)return;let e=t.match(/^(\d+)(ms|s|m|h)?$/);if(!e)return;let n=Number(e[1]);switch(e[2]??"s"){case "ms":return n/1e3;case "m":return n*60;case "h":return n*3600;default:return n}}function Sr(t){return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}function oR(t){return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}function mg(t){return t.revoked===true||t.revoked===1}function aR(t,e){let n=[],r=[e];for(;r.length>0;){let s=r.shift();for(let i of t)i.parent!==s||n.some(o=>o.id===i.id)||(n.push(i),r.push(i.token));}return n}function yu(...t){let e=Math.max(0,...t.map(r=>r?Date.parse(r):0)),n=Date.now();return new Date(Math.max(n,e+1)).toISOString()}function hg(t,e,n){return Object.defineProperties(t,{session_id:{value:e,enumerable:false},user_id:{value:n,enumerable:false}}),t}function bu(t){if(t==null)return {};if(typeof t=="string")try{return JSON.parse(t)}catch{return {}}return t}function Nn(t){return typeof t=="string"?t:JSON.stringify(t??{})}var Qs=class{constructor(e,n){this.db=e;this.dialect=n;this.schema="auth";}schema;bool(e){return this.dialect==="sqlite"?e?1:0:e}table(e){return this.db.withSchema(this.schema).selectFrom(e)}insertInto(e){return this.db.withSchema(this.schema).insertInto(e)}update(e){return this.db.withSchema(this.schema).updateTable(e)}deleteFrom(e){return this.db.withSchema(this.schema).deleteFrom(e)}async findUserByEmail(e){return await this.table("users").selectAll().where("email","=",e.toLowerCase()).executeTakeFirst()??null}async findUserById(e){return await this.table("users").selectAll().where("id","=",e).executeTakeFirst()??null}async findUserByToken(e,n){return await this.table("users").selectAll().where(e,"=",n).executeTakeFirst()??null}async createUser(e){let n=new Date().toISOString(),r={id:e.id,aud:e.aud??"authenticated",role:e.role??"authenticated",email:e.email.toLowerCase(),encrypted_password:e.encrypted_password??null,phone:e.phone??null,email_confirmed_at:e.email_confirmed_at??e.confirmed_at??null,confirmation_token:e.confirmation_token??null,confirmation_sent_at:e.confirmation_sent_at??null,recovery_token:e.recovery_token??null,recovery_sent_at:e.recovery_sent_at??null,email_change:e.email_change??null,email_change_token_new:e.email_change_token_new??null,email_change_token_current:e.email_change_token_current??null,email_change_sent_at:e.email_change_sent_at??null,email_change_confirm_status:e.email_change_confirm_status??0,reauthentication_token:e.reauthentication_token??null,reauthentication_sent_at:e.reauthentication_sent_at??null,raw_app_meta_data:Nn(e.raw_app_meta_data??{provider:"email",providers:["email"]}),raw_user_meta_data:Nn(e.raw_user_meta_data??{}),is_sso_user:this.bool(e.is_sso_user??false),is_anonymous:this.bool(e.is_anonymous??false),last_sign_in_at:e.last_sign_in_at??null,created_at:n,updated_at:n};return await this.insertInto("users").values(r).execute(),await this.findUserById(e.id)}async updateUser(e,n){let r={...n,updated_at:new Date().toISOString()};return r.confirmed_at!=null&&r.email_confirmed_at==null&&(r.email_confirmed_at=r.confirmed_at),delete r.confirmed_at,r.raw_app_meta_data!=null&&(r.raw_app_meta_data=Nn(r.raw_app_meta_data)),r.raw_user_meta_data!=null&&(r.raw_user_meta_data=Nn(r.raw_user_meta_data)),r.is_sso_user!=null&&(r.is_sso_user=this.bool(!!r.is_sso_user)),r.is_anonymous!=null&&(r.is_anonymous=this.bool(!!r.is_anonymous)),await this.update("users").set(r).where("id","=",e).execute(),this.findUserById(e)}async createSession(e){let n=new Date().toISOString(),r={id:e.id,user_id:e.user_id,aal:e.aal??"aal1",not_after:null,refreshed_at:null,user_agent:null,ip:null,tag:null,refresh_token_hmac_key:null,refresh_token_counter:null,scopes:null,factor_id:null,created_at:n,updated_at:n};return await this.insertInto("sessions").values(r).execute(),r}async findSessionById(e){return await this.table("sessions").selectAll().where("id","=",e).executeTakeFirst()??null}async updateSessionRefreshedAt(e,n){return await this.update("sessions").set({refreshed_at:n,updated_at:n}).where("id","=",e).execute(),this.findSessionById(e)}async deleteSession(e){await this.deleteFrom("sessions").where("id","=",e).execute();}async deleteUserSessions(e,n){let r=this.deleteFrom("sessions").where("user_id","=",e);n&&(r=r.where("id","!=",n)),await r.execute();}async deleteRefreshTokensForSession(e){await this.deleteFrom("refresh_tokens").where("session_id","=",e).execute();}async deleteRefreshTokensForUser(e,n){let r=this.deleteFrom("refresh_tokens").where("user_id","=",e);n&&(r=r.where("session_id","!=",n)),await r.execute();}async createRefreshToken(e){let n=new Date().toISOString(),r={id:ze(),token:e.token,user_id:e.user_id,session_id:e.session_id,revoked:this.bool(false),parent:e.parent??null,created_at:n,updated_at:n};return await this.insertInto("refresh_tokens").values(r).execute(),r}async findRefreshToken(e){return await this.table("refresh_tokens").selectAll().where("token","=",e).executeTakeFirst()??null}async findRefreshTokensBySession(e){return await this.table("refresh_tokens").selectAll().where("session_id","=",e).execute()}async revokeRefreshToken(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("id","=",e).execute();}async revokeSessionRefreshTokens(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("session_id","=",e).execute();}async revokeRefreshTokensByIds(e){e.length!==0&&await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("id","in",e).execute();}async revokeUserRefreshTokens(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("user_id","=",e).execute();}async createIdentity(e){let n=new Date().toISOString(),r={id:e.id,provider:e.provider,provider_id:e.provider_id,user_id:e.user_id,identity_data:Nn(e.identity_data),last_sign_in_at:e.last_sign_in_at??n,created_at:n,updated_at:n};return await this.insertInto("identities").values(r).execute(),{...r,identity_data:e.identity_data}}async findIdentitiesByUserId(e){return (await this.table("identities").selectAll().where("user_id","=",e).execute()).map(r=>({...r,identity_data:bu(r.identity_data)}))}async updateIdentity(e,n){let r={...n,updated_at:new Date().toISOString()};r.identity_data!=null&&(r.identity_data=Nn(r.identity_data)),delete r.email,await this.update("identities").set(r).where("id","=",e).execute();}async createAuditLogEntry(e){let n={id:e.id,payload:Nn(e.payload??{}),ip_address:e.ip_address??"",created_at:new Date().toISOString()};await this.insertInto("audit_log_entries").values(n).execute();}parseUserJson(e){return {...e,raw_app_meta_data:bu(e.raw_app_meta_data),raw_user_meta_data:bu(e.raw_user_meta_data),confirmed_at:e.confirmed_at??e.email_confirmed_at??null}}};var _r=class{maxSizeBytes;now;entries=new Map;sizeBytes=0;constructor(e={}){this.maxSizeBytes=e.maxSizeBytes??1024*1024,this.now=e.now??Date.now;}async get(e){let n=this.entries.get(e);if(n){if(this.isExpired(n)){this.deleteEntry(e,n);return}return this.entries.delete(e),this.entries.set(e,n),n.value}}async set(e,n,r){let s=this.entries.get(e);s&&this.deleteEntry(e,s);let i={value:n,size:gg(e)+gg(n),expiresAt:r?.ttl&&r.ttl>0?this.now()+r.ttl*1e3:void 0};this.entries.set(e,i),this.sizeBytes+=i.size,this.evictToSize();}async delete(e){let n=this.entries.get(e);n&&this.deleteEntry(e,n);}isExpired(e){return typeof e.expiresAt=="number"&&e.expiresAt<=this.now()}evictToSize(){for(;this.sizeBytes>this.maxSizeBytes;){let e=this.entries.keys().next().value;if(typeof e!="string")break;let n=this.entries.get(e);if(!n)break;this.deleteEntry(e,n);}}deleteEntry(e,n){this.entries.delete(e),this.sizeBytes-=n.size;}};function gg(t){return new TextEncoder().encode(t).byteLength}var Qo=class{constructor(e){this.options=e;}async get(e){return await this.options.namespace.get(e)??void 0}async set(e,n,r){await this.options.namespace.put(e,n,{...r?.ttl&&r.ttl>0?{expirationTtl:r.ttl}:{}});}async delete(e){await this.options.namespace.delete(e);}};var Xo=class{constructor(e){this.options=e;}async get(e){return await this.options.client.get(e)??void 0}async set(e,n,r){if(r?.ttl&&r.ttl>0){await this.options.client.set(e,n,"EX",r.ttl);return}await this.options.client.set(e,n);}async delete(e){if(this.options.client.del){await this.options.client.del(e);return}if(this.options.client.delete){await this.options.client.delete(e);return}throw new Error("RedisCacheDriver client must provide del() or delete()")}};var Yo=class{constructor(e){this.options=e;this.endpoint=e.endpoint??"https://api.resend.com/emails",this.fetchFn=e.fetch??fetch;}endpoint;fetchFn;async send(e){let n=await this.fetchFn(this.endpoint,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.options.apiKey}`},body:JSON.stringify({from:this.options.from,to:e.to,subject:e.subject,...e.text?{text:e.text}:{},...e.html?{html:e.html}:{}})});if(!n.ok)throw new Error(`Resend email failed (${n.status}): ${await n.text()}`)}};var ea=class{constructor(e){this.options=e;this.endpoint=`https://email.${e.region}.amazonaws.com/v2/email/outbound-emails`,this.client=e.client;}endpoint;client;async send(e){let n=await this.getClient(),r={FromEmailAddress:this.options.from,Destination:{ToAddresses:[e.to]},Content:{Simple:{Subject:{Data:e.subject,Charset:"UTF-8"},Body:{...e.text?{Text:{Data:e.text,Charset:"UTF-8"}}:{},...e.html?{Html:{Data:e.html,Charset:"UTF-8"}}:{}}}}},s=await n.fetch(this.endpoint,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw new Error(`AWS SES email failed (${s.status}): ${await s.text()}`)}async getClient(){if(this.client)return this.client;let{AwsClient:e}=await Promise.resolve().then(()=>(_g(),Sg));return this.client=new e({accessKeyId:this.options.accessKeyId,secretAccessKey:this.options.secretAccessKey,service:"ses",region:this.options.region}),this.client}};var ta=class{constructor(e){this.options=e;this.sendmailPath=e.sendmailPath??"/usr/sbin/sendmail";}sendmailPath;async send(e){let{spawn:n}=await import('node:child_process').catch(()=>{throw new Error("SendmailEmailDriver requires a Node-compatible runtime")}),r=Eu(this.options.from,e);await new Promise((s,i)=>{let o=n(this.sendmailPath,["-t","-i"],{stdio:["pipe","ignore","pipe"]}),a=[];o.on("error",l=>{i(new Error(`SendmailEmailDriver failed to start ${this.sendmailPath}: ${l.message}`));}),o.stderr?.on("data",l=>a.push(Buffer.from(l))),o.on("close",l=>{if(l===0){s();return}i(new Error(`SendmailEmailDriver exited with code ${l}: ${Buffer.concat(a).toString("utf8")}`));}),o.stdin.end(r);});}};function Eu(t,e){let n=e.html?"text/html; charset=UTF-8":"text/plain; charset=UTF-8";return [`From: ${t}`,`To: ${e.to}`,`Subject: ${e.subject}`,"MIME-Version: 1.0",`Content-Type: ${n}`,"",e.html??e.text??""].join(`
87
- `)}var Ys=class{messages=new Map;maxKeepCount;order=[];constructor(e={}){this.maxKeepCount=e.maxKeepCount??100;}async send(e){if(this.maxKeepCount<=0)return;let n=e.to.toLowerCase(),r={...e,sentAt:new Date().toISOString()},s=this.messages.get(n)??[];s.push(r),this.messages.set(n,s),this.order.push({key:n,message:r}),this.trim();}clear(){this.messages.clear(),this.order.length=0;}trim(){for(;this.order.length>this.maxKeepCount;){let e=this.order.shift();if(!e)return;let n=this.messages.get(e.key);if(!n)continue;let r=n.indexOf(e.message);r>=0&&n.splice(r,1),n.length===0&&this.messages.delete(e.key);}}},Er=class extends Ys{silent;logger;constructor(e={}){super({maxKeepCount:0}),this.silent=e.silent??false,this.logger=e.logger??console;}async send(e){await super.send(e),this.silent||this.logger.info(["[@supabase/lite] Email driver noop send",`To: ${e.to}`,`Subject: ${e.subject}`,e.text?`Text: ${e.text}`:void 0,e.html?`HTML: ${e.html}`:void 0].filter(Boolean).join(`
88
- `));}};var Zs=class{silent;logger;constructor(e={}){this.silent=e.silent??false,this.logger=e.logger??console;}async send(e){this.silent||this.logger.info(["[@supabase/lite] SMS driver noop send",`To: ${e.to}`,`Body: ${e.body}`].join(`
89
- `));}};function Eg(t={}){return {email:t.email??new Er,sms:t.sms??new Zs,cache:t.cache??new _r}}var fR="/auth/v1/verify";function xg(t,e,n,r){let s=new URL(fR,pR(t));return s.searchParams.set("token",e),s.searchParams.set("type",n),s.searchParams.set("redirect_to",r),s.toString()}function pR(t){return t.endsWith("/")?t:`${t}/`}function ra(t,e){return t.replace(/\{\{\s*\.(\w+)\s*\}\}/g,(n,r)=>r in e?e[r]??"":n)}var Tg={invite:"You have been invited",confirmation:"Confirm Your Signup",recovery:"Reset Your Password",magic_link:"Your Magic Link",email_change:"Confirm Email Change",reauthentication:"Confirm Reauthentication"},na="-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'";function xr(t,e){return `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
84
+ `.execute(t)).rows[0],r=n?.status??null,s=n?.headers??null,i;if(r&&r.length>0){let f=Number(r);if(!Number.isInteger(f)||f<200||f>599)return T(500,"PGRST112",qE,null,null);i=f;}let o;if(s&&s.length>0){let f;try{f=JSON.parse(s);}catch{return T(500,"PGRST111",Kn,null,null)}if(!Array.isArray(f))return T(500,"PGRST111",Kn,null,null);let u=[];for(let d of f){if(!d||typeof d!="object"||Array.isArray(d))return T(500,"PGRST111",Kn,null,null);let p=Object.keys(d);if(p.length!==1)return T(500,"PGRST111",Kn,null,null);let g=d[p[0]];if(typeof g!="string")return T(500,"PGRST111",Kn,null,null);u.push([p[0],g]);}o=u;}if(i===void 0&&!o)return e;let a=i??e.status,l=new Headers(e.headers);if(o)try{for(let[f,u]of o)l.set(f,u);}catch{return T(500,"PGRST111",Kn,null,null)}let c;return HE.has(a)?(c=null,l.delete("Content-Length"),l.delete("Content-Type")):c=e.body?await e.arrayBuffer():null,new Response(c,{status:a,statusText:e.statusText,headers:l})}var HE=new Set([101,204,205,304]);var WE=/^[\w.+*-]+\/[\w.+*-]+$/,KE=new Set(["text/plain","text/xml","text/csv","application/json","application/geo+json","application/openapi+json"]);function JE(t){return t.replace(/^"([\s\S]*)"$/,"$1")}function GE(t){let e=t.match(/^(?:"(?:[^"]|"")*"|[^."]+)\.([\s\S]+)$/);return e?e[1]:t}function zE(t){if(t.return_typtype!=="d"||t.return_is_setof)return null;let e=JE(GE(t.return_type));return WE.test(e)?e:null}function hm(t){if(!t)return [];let e=[];for(let n of t.split(",")){let r=n.split(";"),s=r[0].trim().toLowerCase();if(!s)continue;let i=1;for(let o of r.slice(1)){let a=o.trim().match(/^q=(.+)$/i);if(a){let l=Number.parseFloat(a[1]);Number.isFinite(l)&&(i=l);}}e.push({media:s,q:i});}return e}function gm(t){return KE.has(t)?`${t}; charset=utf-8`:t}function VE(t,e){let n=e.indexOf("/"),r=n>0?e.slice(0,n):e,s=-1,i=0;for(let o of t){let a=o.media===e?2:o.media===`${r}/*`?1:o.media==="*/*"?0:-1;a<0||(a>s?(s=a,i=o.q):a===s&&(i=Math.max(i,o.q)));}return s<0?0:i}function QE(t,e){let n=zE(t);if(!n)return null;if(n==="*/*"){let r=hm(e);return r.some(s=>s.media==="*/*"&&s.q<=0)?null:!e||r.some(s=>s.q>0)?{mediaType:"application/octet-stream",isBinary:true}:null}return VE(hm(e),n)>0?{mediaType:n,isBinary:(t.return_base_type??"").toLowerCase()==="bytea"}:null}function so(t,e,n){let r=Wi(t,e);return r?QE(r,n):null}function ym(t,e){if(t instanceof Uint8Array){let s=new Uint8Array(t.byteLength);return s.set(t),s}if(e&&typeof t=="string"&&t.startsWith("\\x")){let s=t.slice(2),i=new Uint8Array(Math.floor(s.length/2));for(let o=0;o<i.length;o++)i[o]=parseInt(s.substr(o*2,2),16);return i}let n=new TextEncoder().encode(t==null?"":String(t)),r=new Uint8Array(n.byteLength);return r.set(n),r}var bm=ia(El());function Te(t,e,n){if(!n)return;let{sql:r,parameters:s}=e.compile();console.info(bm.default.dim(`[POSTGREST:SQL:${t}] ${r}
85
+ - ${JSON.stringify([...s])}`));}async function wm(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,mutationPlan:a,mutationCreated:l}=t;if(!t.isMutation||n?.return!=="minimal")return null;let c={...e,select:void 0},f=te(c,s,{db:r,introspection:i,schema:o});Te("",f,t.debug);let u=await f.execute(),d=Array.isArray(u)&&u.length>0&&u[0]&&typeof u[0]=="object"&&("numUpdatedRows"in u[0]||"numInsertedOrUpdatedRows"in u[0]||"numDeletedRows"in u[0])?u[0]:void 0,p=d===void 0?void 0:Number(d.numUpdatedRows??d.numInsertedOrUpdatedRows??d.numDeletedRows??0),g=et(e,"no-return",a.appliedResolution,l),m={"Content-Range":Ht(e,n,p)};return t.prefApplied&&(m["Preference-Applied"]=t.prefApplied),new Response(null,{status:g,headers:m})}async function Sm(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,mutationPlan:a,mutationCreated:l,prefApplied:c}=t;if(!t.isMutation||n?.return!=="headers-only")return null;let u=i.primary_keys.find(w=>w.table===e.from)?.columns??[],d={...e,select:u.length>0?u:void 0},p=te(d,s,{db:r,introspection:i,schema:o});Te("",p,t.debug);let g=await p.execute(),m=Array.isArray(g)?g.length:0,h=et(e,"no-return",a.appliedResolution,l),y={"Content-Range":Ht(e,n,m)};if(c&&(y["Preference-Applied"]=c),u.length>0&&Array.isArray(g)&&g.length>0){let w=g[0],S=u.map(b=>`${b}=eq.${w[b]}`).join("&");y.Location=`/${e.from}?${S}`;}return new Response(null,{status:h,headers:y})}function Jn({rows:t,ast:e,connection:n,responseSchemaMap:r,mutationNullify:s}){let i=t.map(o=>n.deserializeRow(o));return i=Up(i,e,r,Fp(n,e)),i=Wp(i,e.select,n.dialect),s?.meta?.return==="representation"&&(e.type==="insert"||e.type==="upsert"||e.type==="update")&&(i=sm(i,s.meta?.columns,s.mutationPlan.bodyKeySets)),i}function io(t){let{rows:e,stripNullsResponse:n,csvResponse:r,contentRange:s,status:i=200,preferenceApplied:o,location:a,contentType:l="array"}=t,c=n?dn(e):e,f=r?ro(Array.isArray(c)?c:[c]):Et(c),u=new TextEncoder().encode(f),d={"Content-Type":r?"text/csv; charset=utf-8":n?l==="object"?"application/vnd.pgrst.object+json;nulls=stripped; charset=utf-8":"application/vnd.pgrst.array+json;nulls=stripped; charset=utf-8":l==="object"?"application/vnd.pgrst.object+json; charset=utf-8":"application/json; charset=utf-8","Content-Range":s,"Content-Length":String(u.byteLength)};return o&&(d["Preference-Applied"]=o),a&&(d.Location=a),new Response(u,{status:i,headers:d})}async function _m(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l}=t;if(!(t.isMutation&&(e.type==="update"||e.type==="delete")&&(e.limit!==void 0||e.offset!==void 0)))return null;let f={...e,select:void 0},u=te(f,s,{db:r,introspection:i,schema:o});if(Te("LTD",u,t.debug),await u.execute(),n?.return==="representation"){let S={...e,type:"query",values:void 0,limit:void 0,offset:void 0},b=te(S,s,{db:r,introspection:i,schema:o});Te("LTD-SEL",b,t.debug);let _=await b.execute(),E=Array.isArray(_)?_:[],x=Jn({rows:E,ast:e,connection:a,responseSchemaMap:l}),O=x.length,v=[];n.return==="representation"&&v.push("return=representation"),n.count&&v.push(`count=${n.count}`),n.tx&&v.push(`tx=${n.tx}`);let P=e.type==="delete"?"*/*":O>0?lt(0,O,void 0):"*/*";return io({rows:x,stripNullsResponse:t.stripNullsResponse,csvResponse:t.csvResponse,contentRange:P,preferenceApplied:v.length>0?v.join(", "):void 0})}let d={...e,type:"query",select:[{__count:{aggregate:"count"}}],values:void 0,order:void 0,limit:void 0,offset:void 0},g=await te(d,s,{db:r,introspection:i,schema:o}).execute(),m=Number((Array.isArray(g)?g[0]:g)?.__count??0),y={"Content-Range":m>0?lt(0,m,void 0):"*/*"},w=[];return n?.count&&w.push(`count=${n.count}`),n?.tx&&w.push(`tx=${n.tx}`),w.length>0&&(y["Preference-Applied"]=w.join(", ")),new Response(null,{status:204,headers:y})}function XE(t){return "select"in t||"spread"in t||"join"in t}function Em(t){if(!t)return false;for(let e of t)if(typeof e!="string")for(let[n,r]of Object.entries(e)){if(XE(r))return true;let s=r;if(s.path||s.cast||s.preCast||s.aggregate||(s.column??n)!==n)return true}return false}async function xm(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l,mutationPlan:c,mutationCreated:f}=t;if(!(t.isMutation&&n?.return==="representation"&&Em(e.select)))return null;let p=i.primary_keys.find(_=>_.table===e.from)?.columns??[],g=[];if(e.type==="delete"){let _={...e,type:"query",values:void 0},E=te(_,s,{db:r,introspection:i,schema:o});Te("EMB-PRE",E,t.debug),g=await E.execute();let x={...e,select:void 0},O=te(x,s,{db:r,introspection:i,schema:o});Te("EMB-DEL",O,t.debug),await O.execute();}else {if(p.length===0)return T(500,"PGRSTXXX","Cannot return embedded data on a table without a primary key",null,null);let _={...e,select:p},E=te(_,s,{db:r,introspection:i,schema:o});Te("EMB-MUT",E,t.debug);let x=await E.execute(),O=Array.isArray(x)?x:[];if(O.length>0){let v;if(p.length===1){let U=p[0];v={[U]:{$in:O.map(J=>J[U])}};}else v={$or:O.map(U=>{let J={};for(let F of p)J[F]={$eq:U[F]};return J})};let P=e.where?{$and:[e.where,v]}:v,C={...e,type:"query",values:void 0,where:P},R=te(C,s,{db:r,introspection:i,schema:o});Te("EMB-SEL",R,t.debug),g=await R.execute();}}let m=Jn({rows:g,ast:e,connection:a,responseSchemaMap:l,mutationNullify:{meta:n,mutationPlan:c}});e.order&&e.order.length>0&&(m=no(m,e.order));let h=et(e,"representation",c.appliedResolution,f),y=m.length,w=["return=representation"];n?.count&&w.push(`count=${n.count}`),n?.tx&&w.push(`tx=${n.tx}`);let S=e.type==="delete"||e.type==="insert"||e.type==="upsert"?"*/*":y>0?lt(0,y,void 0):"*/*",b;if((e.type==="insert"||e.type==="upsert")&&p.length>0&&m.length>0){let _=m[0],E=p.map(x=>`${x}=eq.${_[x]}`).join("&");b=`/${e.from}?${E}`;}return io({rows:m,stripNullsResponse:t.stripNullsResponse,csvResponse:t.csvResponse,contentRange:S,status:h,preferenceApplied:w.join(", "),location:b})}function YE(t){return t?.handling!=="strict"||typeof t.maxAffected!="number"||!Number.isFinite(t.maxAffected)?null:t.maxAffected}function Tm(t){return T(400,"PGRST124","Query result exceeds max-affected preference constraint",`The query affects ${t} rows`,null)}function ZE(t){return t.type!=="insert"&&t.type!=="upsert"&&t.type!=="put"?null:Array.isArray(t.values)?t.values.length:t.values&&typeof t.values=="object"?1:0}async function Rm(t){if(!t.isMutation)return null;let e=YE(t.meta);if(e===null)return null;let n=ZE(t.ast);if(n!==null)return n>e?Tm(n):null;if(t.ast.type!=="update"&&t.ast.type!=="delete")return null;let r={...t.ast,type:"query",select:[{__count:{aggregate:"count"}}],values:void 0,order:void 0,limit:void 0,offset:void 0},s=te(r,t.dialect,{db:t.db,introspection:t.introspection,schema:t.deparseSchema});Te("MAX-AFFECTED",s,t.debug);let i=await s.execute(),o=Number((Array.isArray(i)?i[0]:i)?.__count??0);return t.ast.offset!==void 0&&(o=Math.max(o-t.ast.offset,0)),t.ast.limit!==void 0&&(o=Math.min(o,t.ast.limit)),o>e?Tm(o):null}function pn(t){return t||"public"}function ex(t,e,n){let r=pn(e);return n.views.some(s=>s.name===t&&pn(s.schema)===r)}function tx(t){let e=t.match(/\bINSERT\s+INTO\s+(?:(?:"([^"]+)"|'([^']+)')|(\w+))(?:\.(?:(?:"([^"]+)"|'([^']+)')|(\w+)))?/i);if(e)return e[6]??e[3]}function nx(t,e,n){let r=pn(e);for(let s of n.triggers){if(s.table!==t||pn(s.schema)!==r||!/\bINSTEAD\s+OF\b/i.test(s.sql))continue;let i=tx(s.sql);if(i)return i}}async function Cm(t,e,n,r,s,i){if(r!=="sqlite"&&r!=="postgres"||!e.from||t.length===0||!ex(e.from,e.schema,n))return t;let o=e.select;if(!o?.length)return t;let a=pn(e.schema),l=n.primary_keys.find(h=>h.table===e.from&&pn(h.schema)===a)?.columns??[];if(l.length===0){let h=nx(e.from,e.schema,n);h&&(l=n.primary_keys.find(y=>y.table===h&&pn(y.schema)===a)?.columns??[]);}if(l.length===0&&t[0]&&"id"in t[0]&&(l=["id"]),l.length!==1)return t;let c=l[0],f=t.map(h=>h[c]).filter(h=>h!=null);if(f.length===0)return t;let u={type:"query",from:e.from,schema:e.schema,select:o,where:{[c]:{$in:f}}},p=await te(u,r,{db:s,introspection:n,schema:i}).execute(),g=h=>String(h[c]),m=new Map(p.map(h=>[g(h),h]));return t.map(h=>m.get(g(h))??h)}async function km(t){let{ast:e,meta:n,db:r,dialect:s,introspection:i,deparseSchema:o,connection:a,responseSchemaMap:l,mutationPlan:c,mutationCreated:f,prefApplied:u,isMutation:d,stripNullsResponse:p,csvResponse:g,requestUrl:m,acceptHeader:h}=t,y=te(e,s,{db:r,introspection:i,schema:o});Te("",y,t.debug);let w=await y.execute(),S,b=false,_=0;if(d&&Array.isArray(w)&&w.length>0&&w[0]&&typeof w[0]=="object"&&("numUpdatedRows"in w[0]||"numInsertedOrUpdatedRows"in w[0]||"numDeletedRows"in w[0])){b=true;let G=w[0];_=Number(G.numUpdatedRows??G.numInsertedOrUpdatedRows??G.numDeletedRows??0),S=[];}else S=w;d&&Array.isArray(S)&&S.length>0&&(S=await Cm(S,e,i,s,r,o));let E=false,x,O=false,v=false,P=false,C=null;if(e.type==="rpc"&&Array.isArray(S)){let G={schema:e.schema??i.default_schema??"public",fnName:e.function??"",providedNames:un(e),paramsType:e.paramsType,argCount:Array.isArray(e.args)?e.args.length:void 0,method:e.httpMethod,inputType:e.inputType};C=so(i.functions,G,h);let pe=Ki(i.functions,G);if(pe){let Me=e.function??"",ht=S;E=!pe.returns_object&&ht.length>0&&ht.every(Qs=>{let hr=Object.keys(Qs);return hr.length===1&&hr[0]===Me}),E&&(x=Me,S=ht.map(Qs=>Qs[Me])),O=!pe.return_is_setof,P=pe.volatility!=="v",v=pe.returns_void;}}if(v){let G={"Content-Range":"0-0/*"};return u&&(G["Preference-Applied"]=u),new Response(null,{status:204,headers:G})}if(C&&Array.isArray(S)&&S.length===1){let G=S[0];if(!E&&G&&typeof G=="object"&&!Array.isArray(G)&&!(G instanceof Uint8Array)){let ht=Object.keys(G);ht.length===1&&(G=G[ht[0]]);}let pe=ym(G,C.isBinary),Me={"Content-Type":gm(C.mediaType),"Content-Range":"0-0/*","Content-Length":String(pe.byteLength)};return u&&(Me["Preference-Applied"]=u),n?.head?new Response(null,{status:200,headers:Me}):new Response(pe,{status:200,headers:Me})}let R=Array.isArray(S);R&&!E&&(S=Jn({rows:S,ast:e,connection:a,responseSchemaMap:l,mutationNullify:{meta:n,mutationPlan:c}})),d&&R&&e.order&&e.order.length>0&&(S=no(S,e.order));let U=R?S:[],J=U.length,F=e.offset??0;if(d&&b){if(n?.cardinality==="one"){if(_===0)return T(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null);if(_>1)return T(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${_} rows`,null)}let G=et(e,"no-return",c.appliedResolution,f),pe={"Content-Type":"application/json; charset=utf-8","Content-Range":Ht(e,n,_)};return u&&(pe["Preference-Applied"]=u),new Response(null,{status:G,headers:pe})}let V;if(ec(n)&&(d?V=J:e.type==="rpc"?F===0&&J<(e.limit??Number.POSITIVE_INFINITY)?V=J:P&&(V=await Zl(r,e,s,i)):V=await Zl(r,e,s,i)),n?.cardinality==="one"||O){if(J===0)return T(406,"PGRST116","Cannot coerce the result to a single JSON object","The result contains 0 rows",null);if(J>1)return T(406,"PGRST116","Cannot coerce the result to a single JSON object",`The result contains ${J} rows`,null);let G=200;d&&(G=et(e,"representation",c.appliedResolution,f));let pe=p?dn(U[0]):U[0],Me=Et(pe),ht=new TextEncoder().encode(Me),hr=n?.cardinality==="one"?"application/vnd.pgrst.object+json":"application/json",ra={"Content-Type":p?`${hr};nulls=stripped; charset=utf-8`:`${hr}; charset=utf-8`,"Content-Range":Yp(e,d,F,V),"Content-Length":String(ht.byteLength)};return u&&(ra["Preference-Applied"]=u),n?.head?new Response(null,{status:G,headers:ra}):new Response(ht,{status:G,headers:ra})}if(V!==void 0&&F>0&&J===0&&F>=V){let G=JSON.stringify({code:"PGRST103",details:`An offset of ${F} was requested, but there are only ${V} rows.`,hint:null,message:"Requested range not satisfiable"}),pe=new TextEncoder().encode(G),Me={"Content-Type":"application/json; charset=utf-8","Content-Range":`*/${V}`,"Content-Length":String(pe.byteLength)};return u&&(Me["Preference-Applied"]=u),new Response(pe,{status:416,headers:Me})}let be;d&&(e.type==="insert"||e.type==="upsert"||e.type==="delete")?be=V!==void 0?`*/${V}`:"*/*":d&&n?.return!=="representation"?be=V!==void 0?`*/${V}`:"*/*":J>0?be=lt(F,J,V):be=V!==void 0?`*/${V}`:"*/*";let he=200;d?he=et(e,"representation",c.appliedResolution,f):V!==void 0&&(F+J<V||F>0)&&(he=206);let Ve=p?dn(S):S,Tn=Array.isArray(Ve)?Ve:[Ve];if(g&&E&&x!==void 0){let G=x;Tn=Tn.map(pe=>({[G]:pe}));}let Vs=g?ro(Tn):Et(Ve),na=new TextEncoder().encode(Vs),Ot={"Content-Type":g?"text/csv; charset=utf-8":p?"application/vnd.pgrst.array+json;nulls=stripped; charset=utf-8":"application/json; charset=utf-8","Content-Range":be,"Content-Length":String(na.byteLength)};if(!d&&e.from&&m){let G=Qp(`/${e.from}`,new URL(m).search);G&&(Ot["Content-Location"]=G);}return u&&(Ot["Preference-Applied"]=u),n?.head?new Response(null,{status:he,headers:Ot}):new Response(na,{status:he,headers:Ot})}function vm(t){return t==="snake_case"?"__":"."}function Am(t,e){let n=new Set;for(let r of t.tables)r.schema&&n.add(r.schema);for(let r of t.views)r.schema&&n.add(r.schema);if(e?.deparseSchema)for(let r of e.deparseSchema.values())r?.schema&&n.add(r.schema);for(let r of e?.internalSchemas??[])n.add(r);return n}function Om(t){let e=new Set(t.exposedSchemas??["public"]),n=()=>[...e].sort().join(", ");if(t.explicitProfileSchema!==void 0&&!e.has(t.explicitProfileSchema))return T(406,"PGRST106",`Invalid schema: ${t.explicitProfileSchema}`,null,`Only the following schemas are exposed: ${n()}`);let r=t.isRpc?-1:t.relation.indexOf(t.separator);if(r>0){let s=t.relation.slice(0,r);if(t.knownSchemas.has(s)&&!e.has(s)){let i=t.relation.slice(r+t.separator.length);return T(404,"PGRST205",`Could not find the table '${s}.${i}' in the schema cache`,null,null)}}return null}var rx={swagger:"2.0",info:{description:"",title:"standard public schema",version:"14.1"},basePath:"/",schemes:["https"],consumes:["application/json","application/vnd.pgrst.object+json;nulls=stripped","application/vnd.pgrst.object+json","text/csv"],produces:["application/json","application/vnd.pgrst.object+json;nulls=stripped","application/vnd.pgrst.object+json","text/csv"]},Pm=t=>{let e=async(n,r)=>{let{app:s}=n.var,i=s.connection;if(!s.config.api?.enabled)return n.notFound();let{relation:o,isRpc:a}=r;if(a&&!i.supportsRpc)return T(404,"PGRST202",`Could not find the function public.${o} in the schema cache`,null,null);if(a){let h=n.req.method.toUpperCase();if(!["GET","POST","HEAD","OPTIONS"].includes(h))return T(405,"PGRST101",`Cannot use the ${h} method on RPC`,null,null)}let l=await i.introspect({useCache:true});if(!a&&i.config.introspection?.exclude_tables?.some(h=>Hi(o,h,"sql")))return n.notFound();if(!(kn in n.req.raw)){let h=i.config.translation,y=vm(h?.schemas?.approach),w=[];s.config.auth?.enabled&&w.push("auth"),s.config.storage?.enabled&&w.push("storage");let S=n.req.method.toUpperCase(),b=n.req.header("Content-Profile"),_=n.req.header("Accept-Profile"),E=S==="OPTIONS"?b??_:["POST","PUT","PATCH","DELETE"].includes(S)?b:_,x=Om({relation:o,explicitProfileSchema:E,exposedSchemas:s.config.api?.schemas,knownSchemas:Am(l,{deparseSchema:h?.deparse?.schema,internalSchemas:w}),separator:y,isRpc:a});if(x)return x}if(!(kn in n.req.raw)&&n.req.method!=="OPTIONS"){let h=n.var.ignoreAuthorization?void 0:n.req.header("Authorization");if(h||!n.var.apiKeyType){let y=await Op(h,{jwtSecret:s.config.auth?.jwt_secret,anonymousEnabled:s.config.api?.anonymous_enabled!==false});if(y.kind==="error")return y.response;y.payload&&(n.set("userId",y.payload.sub),n.set("sessionId",y.payload.session_id),n.set("jwt",y.payload));}}if(a&&n.req.method==="OPTIONS"){let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??l.default_schema??"public",y=hl(l.functions,{schema:h,fnName:o,method:"OPTIONS",providedNames:[]});if(y)return T(404,"PGRST202",y.message,y.details,y.hint);let w=Bt(l.functions??[],{schema:h,fnName:o,providedNames:[]}),S=w.length>0&&w.every(b=>b.volatility!=="v");return n.header("Allow",S?"OPTIONS,GET,HEAD,POST":"OPTIONS,POST"),n.body(null,200)}if(!a&&n.req.method==="OPTIONS"){let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??"public",y=b=>{let _=b||"public";return i.dialect==="sqlite"?_===h||_==="public"||_==="":_===h},w=l.views.find(b=>b.name===o&&y(b.schema)),S=!w&&l.tables.find(b=>b.name===o&&b.type!=="view"&&y(b.schema));if(S||w){let b=new Set(["OPTIONS","GET","HEAD"]);if(S)b.add("POST").add("PUT").add("PATCH").add("DELETE");else {let E=false,x=false,O=false,v=(F,V)=>`${F||"public"}\0${V}`,P=new Set,C=w.schema||"public",R=await i.viewOptionsMetadata(o,C).catch(()=>null);if(R){E=R.canInsert,x=R.canUpdate,O=R.canDelete;for(let F of R.baseTables)P.add(v(F.schema,F.name));}else {let F=l.triggers.filter(he=>he.table===o&&y(he.schema)),V=he=>F.some(Ve=>new RegExp(`instead\\s+of\\s+${he}`,"i").test(Ve.sql));E=V("insert"),x=V("update"),O=V("delete");let be=w?.sql??"";for(let he of l.tables){if(he.type==="view")continue;let Ve=he.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");new RegExp(`\\b${Ve}\\b`,"i").test(be)&&P.add(v(he.schema,he.name));}}let U=new Set(l.columns.filter(F=>F.table===o&&y(F.schema)).map(F=>F.name)),J=l.tables.some(F=>{if(F.type==="view"||!P.has(v(F.schema,F.name)))return false;let V=l.columns.filter(be=>be.table===F.name&&(be.schema||"public")===(F.schema||"public")&&be.is_primary_key);return V.length>0&&V.every(be=>U.has(be.name))});E&&b.add("POST"),x&&b.add("PATCH"),O&&b.add("DELETE"),E&&x&&J&&b.add("PUT");}let _=["OPTIONS","GET","HEAD","POST","PUT","PATCH","DELETE"].filter(E=>b.has(E));return n.header("Allow",_.join(",")),n.body(null,200)}}let{dialect:f}=i,u=i.config.translation?.deparse?.schema,d=Lp(u,l,f),p=n.var.jwt,g={auth:{uid:n.var.userId??null,role:p?.role||"anon",jwt:p??null}},m;try{let h=n.req.header("Content-Profile")??n.req.header("Accept-Profile")??"public",y=new Set(l.columns.filter(C=>{if(C.table!==o)return !1;let R=C.schema||"public";return f==="sqlite"?R===h||R==="public"||R==="":R===h}).map(C=>C.name));m=await xi(n.req.raw,{basePath:"/rest/v1",parentColumns:y,resolveFilters:(C,R,U)=>$r(C,R,U,y)}),m=await i.onPostgrestAST(m,g);let w=m.function,S=!1;if(a&&w){let C={schema:m.schema??l.default_schema??"public",fnName:w,method:n.req.method.toUpperCase(),providedNames:un(m),paramsType:m.paramsType,inputType:m.inputType,rawKind:Xd(n.req.header("Content-Type"))},R=hl(l.functions,C);if(R)return T(404,"PGRST202",R.message,R.details,R.hint);let U=Qd(l.functions,C);if(U)return T(300,"PGRST203",U.message,U.details,U.hint);if(C.method==="OPTIONS"){let J=Ki(l.functions,{schema:C.schema,fnName:C.fnName,providedNames:C.providedNames,paramsType:C.paramsType}),F=J&&J.volatility!=="v"?"OPTIONS,GET,HEAD,POST":"OPTIONS,POST";return new Response(null,{status:200,headers:{Allow:F,"Access-Control-Allow-Origin":"*"}})}S=so(l.functions,{schema:C.schema,fnName:C.fnName,providedNames:C.providedNames,paramsType:C.paramsType,argCount:Array.isArray(m.args)?m.args.length:void 0,method:C.method,inputType:C.inputType},n.req.header("Accept"))!==null;}t?.debug&&console.log(nc.default.dim("[POSTGREST:AST]"),m);let b=cm({ast:m,dialect:f,introspection:l,apiConfig:s.config.api,acceptHeader:n.req.header("Accept")??"application/json",allowRawMedia:S,preferHeader:n.req.header("Prefer"),httpMethod:n.req.method.toUpperCase(),rangeHeader:n.req.header("Range")});if(b instanceof Response)return b;m=b.ast;let{meta:_,mutationPlan:E,isMutation:x,stripNullsResponse:O,csvResponse:v,planEnabled:P}=b;return await i.withContext(g,async C=>{let R=n.req.header("Accept")??"application/json";if(P&&qp(R)){let Ot=te(m,f,{db:C,introspection:l,schema:u}).compile();return t?.debug&&console.info(nc.default.dim(`[POSTGREST:PLAN] ${Ot.sql}
86
+ - ${JSON.stringify([...Ot.parameters])}`)),Vp(R,Ot)}let U=x?await am(C,m,f,l,E):void 0,J=ds(_,E.appliedResolution),F={ast:m,meta:_,db:C,dialect:f,introspection:l,deparseSchema:u,connection:i,responseSchemaMap:d,mutationPlan:E,mutationCreated:U,prefApplied:J,isMutation:x,stripNullsResponse:O,csvResponse:v,acceptHeader:R,requestUrl:n.req.url,debug:t?.debug},V=await Rm(F);if(V)return V;let be=await wm(F);if(be)return be;let he=await Sm(F);if(he)return he;let Ve=await _m(F);if(Ve)return Ve;let Tn=await xm(F);if(Tn)return Tn;let Vs=await km(F);return a&&f==="postgres"?await mm(C,Vs):Vs},{forceRollback:t?.forceRollback===!0,rpc:a&&f==="postgres"?{method:n.req.method.toUpperCase(),path:`/rpc/${o}`,readOnly:["GET","HEAD"].includes(n.req.method.toUpperCase()),requestHeaders:Object.fromEntries(n.req.raw.headers)}:void 0})}catch(h){return pm(h,{connection:i,introspection:l,vars:g,ast:m})}};return new _e().all("/rpc/:function",n=>e(n,{relation:n.req.param("function"),isRpc:true})).all("/:relation",n=>e(n,{relation:n.req.param("relation"),isRpc:false})).use(async(n,r)=>{if(n.req.method==="GET"&&n.req.path.endsWith("/")){if(n.var.apiKeyType==="publishable")return n.json({message:"You cannot consume this service"},403);let{app:s}=n.var,i=n.req.header("Accept-Profile")??n.req.header("Content-Profile")??null;if(i){let o=new Set(s.config.api?.schemas??["public"]);if(o.size>0&&!o.has(i)){let a=[...o].sort().join(", ");return T(406,"PGRST106",`Invalid schema: ${i}`,null,`Only the following schemas are exposed: ${a}`)}}return n.json(rx)}await r();}).all("*",n=>T(404,"PGRST125","Invalid path specified in request URL",null,null))};var $=class extends Error{constructor(n,r,s,i,o){super(s);this.status=n;this.code=r;this.details=i;this.headers=o;this.name="AuthError";}withInternalError(n){return this.cause=n,this}toJSON(){return {code:this.status,error_code:this.code,msg:this.message,...this.details}}},ct=()=>new $(400,"invalid_credentials","Invalid login credentials"),$m=()=>new $(400,"email_not_confirmed","Email not confirmed"),Im=(t,e=[],n=["length"])=>{let r=[];return n.includes("length")&&r.push(`Password should be at least ${t} characters.`),n.includes("characters")&&r.push(`Password should contain at least one character of each: ${e.join(", ")}.`),new $(422,"weak_password",r.join(" "),{weak_password:{reasons:n}})},Nm=(t="Access token is required")=>new $(401,"no_authorization",t),mn=()=>new $(401,"no_authorization","This endpoint requires a valid Bearer token"),ps=t=>new $(403,"bad_jwt",t),rc=()=>ps("invalid JWT: unable to parse or verify signature, token is malformed: token contains an invalid number of segments"),sc=t=>ps(`invalid JWT: unable to parse or verify signature, token is malformed: could not JSON decode header: ${t}`),Dm=()=>ps("invalid JWT: unable to parse or verify signature, token signature is invalid: signature is invalid"),jm=()=>ps("invalid JWT: unable to parse or verify signature, token has invalid claims: token is expired"),ic=()=>ps("invalid claim: missing sub claim"),oc=()=>new $(400,"bad_jwt","invalid claim: sub claim must be a UUID");var Lm=()=>new $(403,"user_not_found","User from sub claim in JWT does not exist"),Fm=()=>new $(403,"session_not_found","Session from session_id claim in JWT does not exist"),Um=()=>new $(422,"user_already_exists","User already registered"),Mm=()=>new $(422,"email_exists","A user with this email address has already been registered"),oo=()=>new $(422,"signup_disabled","Signups not allowed for this instance"),Bm=()=>new $(400,"email_provider_disabled","Email signups are disabled"),qm=()=>new $(422,"otp_disabled","Signups not allowed for otp"),Hm=()=>new $(422,"same_password","New password should be different from the old password."),hn=()=>new $(403,"otp_expired","Email link is invalid or has expired"),H=(t,e=422)=>new $(e,"validation_failed",t);var ms=t=>new $(400,"bad_json",t),ac=()=>new $(400,"validation_failed","Refresh token is not valid"),Gn=()=>new $(400,"refresh_token_not_found","Invalid Refresh Token: Refresh Token Not Found"),ao=(t,e)=>new $(400,"refresh_token_already_used","Invalid Refresh Token: Already Used",void 0,{...t?{"Sb-Auth-Session-Id":t}:{},...e?{"Sb-Auth-User-Id":e}:{}}),Wm=()=>new $(401,"session_not_found","Invalid Refresh Token: Already Used"),lc=(t,e,n)=>new $(400,"session_expired",t==="inactivity"?"Invalid Refresh Token: Session Expired (Inactivity)":"Invalid Refresh Token: Session Expired",void 0,{...e?{"Sb-Auth-Session-Id":e}:{},...n?{"Sb-Auth-User-Id":n}:{}}),Km=()=>new $(422,"anonymous_provider_disabled","Anonymous sign-ins are disabled"),Jm=()=>new $(400,"invalid_credentials","unsupported_grant_type"),lo=()=>new $(429,"over_email_send_rate_limit","For security purposes, you can only request this after 59 seconds."),co=t=>new $(400,"bad_oauth_state",t),cc=t=>new $(400,"bad_oauth_callback",t);var uo=(t="invalid flow state, no valid flow state found")=>new $(404,"flow_state_not_found",t),Gm=()=>new $(422,"flow_state_expired","invalid flow state, flow state has expired"),fo=()=>new $(400,"flow_state_already_used","State has already been used"),zm=t=>new $(400,"bad_code_verifier",t),Vm=t=>new $(422,"provider_email_needs_verification",t),Qm=()=>new $(403,"user_banned","User is banned"),Xm=()=>new $(404,"user_not_found","User identified by token not found"),Ym=()=>new $(404,"invite_not_found","Invite not found"),hs=t=>new $(500,"unexpected_failure",t),Zm=t=>hs(`Unable to exchange external code: ${t.slice(0,4)}`),eh=()=>hs("Error getting user profile from external provider");async function fc(t,e,n){let r=new TextEncoder().encode(e),s=Math.floor(Date.now()/1e3);return new SignJWT({...t,iat:s}).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt(s).setExpirationTime(s+n).sign(r)}async function th(t,e){let n=t.split(".");if(n.length!==3||n.some(i=>i===""))throw rc();let r=ox(n[0]);if(r)throw r;let s=new TextEncoder().encode(e);try{let{payload:i}=await jwtVerify(t,s,{algorithms:["HS256"]});return i}catch(i){throw i instanceof errors.JWTExpired?jm():i instanceof errors.JWSSignatureVerificationFailed?Dm():i instanceof errors.JWSInvalid||i instanceof errors.JWTInvalid?rc():i}}function ox(t){let e=ax(t);if(!e)return sc("unexpected end of JSON input");let n=lx(e);try{return JSON.parse(new TextDecoder("utf-8").decode(e)),null}catch{return sc(dc(n))}}function ax(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=atob(e),r=new Uint8Array(n.length);for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);return r}catch{return null}}function lx(t){let e="";for(let n of t)e+=String.fromCharCode(n);return e}var cx={n:"null",t:"true",f:"false"};function dc(t){let e=0;for(;e<t.length;){let i=t.charCodeAt(e);if(i===32||i===9||i===10||i===13)e++;else break}let n=t.slice(e);if(!n)return "unexpected end of JSON input";let r=n[0],s=cx[r];if(s){for(let i=1;i<s.length;i++){if(i>=n.length)return "unexpected end of JSON input";if(n[i]!==s[i])return `invalid character ${uc(n[i])} in literal ${s} (expecting '${s[i]}')`}return `invalid character ${uc(n[s.length]??" ")} after top-level value`}return r==="{"||r==="["||r==='"'||r==="-"||r>="0"&&r<="9"?"":`invalid character ${uc(r)} looking for beginning of value`}function uc(t){let e=t.codePointAt(0)??0;return e>=32&&e<127?`'${t}'`:`'\\u${e.toString(16).padStart(4,"0")}'`}var ux=10,fx=4,dx=4,px=31;function mx(t=process.env){let e=t.LITE_AUTH_BCRYPT_COST;if(e!==void 0&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return Math.min(px,Math.max(dx,Math.trunc(n)))}return t.RUN_SPEC==="1"?fx:ux}async function gs(t){return nh.hash(t,mx())}async function pc(t,e){return nh.compare(t,e)}function rh(t,e=6,n=[]){let r=[];return t.length<e&&r.push("length"),n.length>0&&n.some(s=>!hx(t,s))&&r.push("characters"),r}function hx(t,e){for(let n of t)if(e.includes(n))return true;return false}function ut(t=6){let e=crypto.getRandomValues(new Uint8Array(t)),n="";for(let r=0;r<t;r++)n+=(e[r]%10).toString();return n}function mc(){let t=crypto.getRandomValues(new Uint8Array(32));return ih(t)}async function tt(t,e){let n=new TextEncoder().encode(t.toLowerCase()+e),r=await crypto.subtle.digest("SHA-256",n);return ih(new Uint8Array(r))}function ih(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function hc(){return v7()}function ce(){return v7()}var gx=["iss","sub","aud","iat","exp","name","family_name","given_name","middle_name","nickname","preferred_username","profile","picture","website","gender","birthdate","zoneinfo","locale","updated_at","email","phone","custom_claims","full_name","avatar_url","slug","provider_id","user_name"];function yx(t){return !!(t==null||t===""||typeof t=="number"&&t===0||Array.isArray(t)&&t.length===0||typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0)}function oh(t){let e={};for(let n of gx){let r=t[n];yx(r)||(e[n]=r);}return e.email_verified=t.email_verified??false,e.phone_verified=t.phone_verified??false,e}var ah=43,lh=128,bx="PKCE flow requires code_challenge_method and code_challenge",wx=/^[a-zA-Z._~0-9-]+$/;function Sx(t){let e=t.length;if(e<ah||e>lh)throw H(`code challenge has to be between ${ah} and ${lh} characters`,400);if(!wx.test(t))throw H("code challenge can only contain alphanumeric characters, hyphens, periods, underscores and tildes",400);return true}function gc(t){return t.toLowerCase()}var _x=new Set(["s256","plain"]);function ch(t,e){if(e===""!=(t===""))throw H(bx,400);if(e!==""&&(Sx(e),!_x.has(gc(t))))throw H("Invalid code_challenge_method",400)}function Ex(t){let e="";for(let n of t)e+=String.fromCharCode(n);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}async function xx(t){let e=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",e);return Ex(new Uint8Array(n))}async function uh(t,e,n){return e.toLowerCase()==="s256"?await xx(n)===t:n===t}var Tx="github.com",fh="api.github.com",Rx=["user:email"];function Cx(t){let e=t?t.split(","):[];return [...Rx,...e].join(" ")}function yc(t,e){let n=JSON.parse(e);if(typeof n.error=="string"&&n.error!=="")throw new Error(`${t}: token endpoint returned error ${n.error}`,{cause:e});if(!n.access_token)throw new Error(`${t}: server response missing access_token`,{cause:e});return n}function dh(t,e){return t?t.endsWith("/")?t.slice(0,-1):t:`https://${e}`}function kx(t){let e=dh(t,Tx),n=dh(t,fh);return n.endsWith(fh)||(n+="/api/v3"),{authHost:e,apiHost:n}}function ph(t){let{authHost:e,apiHost:n}=kx(t);return {id:"github",authorizeUrl({clientId:r,redirectUri:s,scopes:i,state:o,extraParams:a}){let l=new URLSearchParams({client_id:r,redirect_uri:s,scope:Cx(i),state:o,...a});return `${e}/login/oauth/authorize?${l.toString()}`},async exchangeCode(r,{clientId:s,secret:i,redirectUri:o,fetch:a=globalThis.fetch}){let l=new URLSearchParams({client_id:s,client_secret:i,code:r,redirect_uri:o}),c=await a(`${e}/login/oauth/access_token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:l.toString(),signal:AbortSignal.timeout(1e4)}),f=await c.text();if(c.status<200||c.status>=300)throw new Error(`github: token endpoint returned ${c.status}`,{cause:f});return yc("github",f)},async getUserData(r,{fetch:s=globalThis.fetch}){let i={Authorization:`Bearer ${r.access_token}`},o=()=>({headers:i,signal:AbortSignal.timeout(1e4)}),a=await s(`${n}/user`,o()),l=await a.text();if(a.status<200||a.status>=300)throw new Error(`github: /user returned ${a.status}`,{cause:l});let c=JSON.parse(l),f=await s(`${n}/user/emails`,o()),u=await f.text();if(f.status<200||f.status>=300)throw new Error(`github: /user/emails returned ${f.status}`,{cause:u});let d=JSON.parse(u);if(!Array.isArray(d))throw new Error("github: /user/emails did not return a JSON array");let p=String(c.id);return {claims:{iss:n,sub:p,name:c.name||void 0,preferred_username:c.login,avatar_url:c.avatar_url||void 0,full_name:c.name||void 0,provider_id:p,user_name:c.login,email_verified:false,phone_verified:false},emails:d.filter(g=>g.email).map(g=>({email:g.email,verified:g.verified,primary:g.primary}))}}}}var bc="https://accounts.google.com",Px="accounts.google.com",$x="https://accounts.google.com/o/oauth2/v2/auth",Ix="https://oauth2.googleapis.com/token",Nx="https://www.googleapis.com/oauth2/v3/certs",Dx="https://www.googleapis.com/userinfo/v2/me",jx=["email","profile"],Sc=1e4,mh=new Map;function hh(t,e){return createRemoteJWKSet(new URL(t),{[customFetch]:e,timeoutDuration:Sc})}function Lx(t,e){if(e!==globalThis.fetch)return hh(t,e);let n=mh.get(t);return n||(n=hh(t,e),mh.set(t,n)),n}async function Fx(t,e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(t)),r=new Uint8Array(n).slice(0,n.byteLength/2),s="";for(let o of r)s+=String.fromCharCode(o);return btoa(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")===e}function Ux(t){let e=t?t.split(","):[];return [...jx,...e].join(" ")}function wc(t){return !!(t.verified_email||t.email_verified)}function gh(t={}){let e=t.issuer??bc,n=e===bc?[bc,Px]:e,r=t.userInfoEndpoint??Dx,s=t.getKey,i=t.clientIds??[];return {id:"google",authorizeUrl({clientId:o,redirectUri:a,scopes:l,state:c,extraParams:f}){let u=new URLSearchParams({client_id:o,redirect_uri:a,response_type:"code",scope:Ux(l),state:c,...f});return `${$x}?${u.toString()}`},async exchangeCode(o,{clientId:a,secret:l,redirectUri:c,fetch:f=globalThis.fetch}){let u=new URLSearchParams({client_id:a,client_secret:l,code:o,redirect_uri:c,grant_type:"authorization_code"}),d=await f(Ix,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:u.toString(),signal:AbortSignal.timeout(Sc)}),p=await d.text();if(d.status<200||d.status>=300)throw new Error(`google: token endpoint returned ${d.status}`,{cause:p});return yc("google",p)},async getUserData(o,{fetch:a=globalThis.fetch,clientId:l}){if(o.id_token){let d=s??Lx(Nx,a),p=i[0]??l??void 0,{payload:g}=await jwtVerify(o.id_token,d,{issuer:n,...p?{audience:p}:{}}),m=g;if(m.at_hash){if(!o.access_token)throw new Error("oidc: id_token had at_hash but no access_token was returned");if(!await Fx(o.access_token,m.at_hash))throw new Error("oidc: access token hash does not match value in ID token")}let h=m.email||"",y=wc(m),w={};return m.hd&&(w.hd=m.hd),{emails:h?[{email:h,verified:y,primary:true}]:[],claims:{iss:m.iss,sub:m.sub,name:m.name,picture:m.picture,avatar_url:m.picture,full_name:m.name,provider_id:m.sub,custom_claims:Object.keys(w).length?w:void 0,email_verified:false,phone_verified:false}}}let c=await a(r,{headers:{Authorization:`Bearer ${o.access_token}`},signal:AbortSignal.timeout(Sc)}),f=await c.text();if(c.status<200||c.status>=300)throw new Error(`google: userinfo returned ${c.status}`,{cause:f});let u=JSON.parse(f);return {emails:u.email?[{email:u.email,verified:wc(u),primary:true}]:[],claims:{iss:r,sub:u.id,name:u.name,picture:u.picture,email:u.email,email_verified:wc(u),avatar_url:u.picture,full_name:u.name,provider_id:u.id,phone_verified:false}}}}}function yh(t){return (t??"").split(",").map(e=>e.trim()).filter(e=>e!=="")}var bh={github:t=>ph(t.url),google:t=>gh({clientIds:yh(t.client_id)})},wh=new Set(Object.keys(bh)),_c=["apple","azure","bitbucket","discord","facebook","github","gitlab","google","kakao","keycloak","linkedin","notion","twitch","twitter","slack","spotify","workos","zoom"],Ec=["snapchat","figma","fly","linkedin_oidc","slack_oidc"],Mx=new Set([..._c,...Ec]);function xc(t,e,n){let r=(t??"").toLowerCase();if(!Mx.has(r))throw H(`Unsupported provider: Provider ${r} could not be found`,400);let s=e?.[r];if(!s?.enabled)throw H("Unsupported provider: provider is not enabled",400);let i=yh(s.client_id);if(i.length===0)throw H("Unsupported provider: missing OAuth client ID",400);if(!s.secret)throw H("Unsupported provider: missing OAuth secret",400);let o=bh[r];if(!o)throw H(`Unsupported provider: provider ${r} is not yet implemented`,400);let a=o(s);return {name:r,provider:a,config:s,clientId:i[0],clientIds:i,secret:s.secret,redirectUri:s.redirect_uri||n.defaultRedirectUri,skipNonceCheck:s.skip_nonce_check??false,emailOptional:s.email_optional??false}}var Sh=3e5,Bx=1440*60*1e3;function mo(t){if(!t.jwt_secret)throw new Error('[auth] is enabled but `auth.jwt_secret` is empty. Add `jwt_secret = "<secret>"` under [auth] in your config.toml.')}function qx(t){return t==="localhost"||t==="127.0.0.1"||t==="::1"}function Hx(t){let e="^";for(let n=0;n<t.length;n++){let r=t[n];if(r==="\\"){let s=t[++n];s!==void 0?e+=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):e+="\\\\";}else if(r==="*")t[n+1]==="*"?(e+=".*",n++):e+="[^./]*";else if(r==="?")e+="[^./]";else if(r==="["){let s=t.indexOf("]",n+1);if(s===-1)e+="\\[";else {let i=t.slice(n+1,s);i.startsWith("!")&&(i=`^${i.slice(1)}`),e+=`[${i}]`,n=s;}}else e+=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");}return new RegExp(`${e}$`)}function _h(t,e){let n=t.indexOf("//");if(n===-1)return e;let r=t.slice(n+2),s=r.search(/[/?#]/);s!==-1&&(r=r.slice(0,s));let i=r.lastIndexOf("@");if(i!==-1&&(r=r.slice(i+1)),r.startsWith("[")){let a=r.indexOf("]");return a===-1?r.slice(1):r.slice(1,a)}let o=r.lastIndexOf(":");return o===-1?r:r.slice(0,o)}function Wx(t){let e=t,n=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(e);if(n){let r=n.slice(1).map(Number);return r.some(s=>s>255)?{isIp:false,isLoopback:false}:{isIp:true,isLoopback:r[0]===127}}return e.includes(":")?{isIp:true,isLoopback:e.toLowerCase()==="::1"}:{isIp:false,isLoopback:false}}var Kx=/^[0-9]+$/,Jx=/^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?$/;function Tc(t,e,n){if(t==="")return false;let r;try{r=new URL(t);}catch{return false}let s=r.protocol.replace(/:$/,"").toLowerCase(),i=s==="http"||s==="https",o=_h(t,r.hostname);try{let c=new URL(e);if(c.protocol===r.protocol&&_h(e,c.hostname)===o&&(c.port===r.port||qx(o)))return !0}catch{}let a=Wx(o);if(Kx.test(o))return false;if(a.isIp)return a.isLoopback;if(i&&!Jx.test(o))return false;let l=t.split("#")[0];for(let c of n)if(Hx(c).test(l))return true;return false}var ys=class t{constructor(e,n,r){this.repo=e;this.config=n;this.mailer=r;mo(n),this.jwtExpiry=n.jwt_expiry??3600,this.minPasswordLength=n.minimum_password_length??6,this.passwordRequiredCharacters=n.password_required_characters??zx(n.password_requirements),this.sessionTimeboxSeconds=Th(n.sessions?.timebox),this.sessionInactivitySeconds=Th(n.sessions?.inactivity_timeout);}jwtExpiry;minPasswordLength;passwordRequiredCharacters;sessionTimeboxSeconds;sessionInactivitySeconds;get otpLength(){return this.config.email?.otp_length??6}get otpExpirySeconds(){return this.config.email?.otp_expiry??3600}resolveEmailRedirect(e){let n=this.config.site_url??"http://localhost:3000";return e&&Tc(e,n,this.config.additional_redirect_urls??[])?e:n}async signUp(e,n,r){if(this.config.enable_signup===false)throw oo();if(!e)throw Km();if(this.config.email?.enable_signup===false)throw Bm();if(n==null||n===void 0||n==="")throw H("Signup requires a valid password",400);if(!zn(e))throw H("Unable to validate email address: invalid format",400);if(n.length>72)throw H("Password cannot be longer than 72 characters",400);this.assertPasswordStrong(n);let i=!(this.config.email?.enable_confirmations??this.config.enable_confirmations??false);e=e.toLowerCase();let o=await this.repo.findUserByEmail(e);if(o)throw i?(await this.createAuditLog(o.id,e,"user_repeated_signup","user"),Um()):lo();let a=ce(),l=await gs(n),c=new Date().toISOString(),f=null,u=null,d=null;i||(f=ut(this.otpLength),u=await tt(e,f),d=c);let p={...r??{},email:e,email_verified:i,phone_verified:false,sub:a},g={...r??{},email:e,email_verified:false,phone_verified:false,sub:a},m=await this.repo.createUser({id:a,email:e,encrypted_password:l,confirmed_at:i?c:null,raw_user_meta_data:p,raw_app_meta_data:{provider:"email",providers:["email"]},confirmation_token:u,confirmation_sent_at:d});await this.repo.createIdentity({id:ce(),provider:"email",provider_id:a,user_id:a,identity_data:g}),!i&&f&&u&&await this.mailer.sendConfirmation(e,u,f,{userId:a,redirectTo:this.config.site_url});let h=await this.repo.findIdentitiesByUserId(a),y=this.repo.parseUserJson(m),w=this.mapUserToResponse(y,h,"signup");if(i){let S=await this.createSessionForUser(y,h);return await this.createAuditLog(a,e,"user_signedup","team"),{user:w,session:S}}return await this.createAuditLog(a,e,"user_confirmation_requested","user"),{user:w}}async signInWithPassword(e,n){if(!e)throw H("missing email or phone",400);if(!n)throw ct();let r=await this.repo.findUserByEmail(e.toLowerCase());if(!r||!r.encrypted_password)throw ct();let s=this.repo.parseUserJson(r);if(!s.confirmed_at)throw $m();if(!await pc(n,s.encrypted_password))throw ct();let o=await this.repo.findIdentitiesByUserId(r.id);return this.createSessionForUser(s,o,"user")}async refreshSession(e){if(!e)throw ac();let n=await this.repo.findRefreshToken(e);if(!n)throw Rh(e)?Gn():ac();if(Ch(n))return this.refreshWithRevokedToken(n);let r=await this.repo.findUserById(n.user_id);if(!r)throw Gn();let s=null;if(n.session_id){if(s=await this.repo.findSessionById(n.session_id),!s)throw Gn();this.assertSessionRefreshable(s);}let i=Rc(s?.updated_at,s?.refreshed_at,r.updated_at,r.last_sign_in_at);await this.repo.revokeRefreshToken(n.id);let o=hc(),a=n.session_id??ce();return n.session_id?await this.repo.updateSessionRefreshedAt(n.session_id,i):await this.repo.createSession({id:a,user_id:r.id}),await this.repo.createRefreshToken({token:o,user_id:r.id,session_id:a,parent:n.token}),await this.createAuditLog(r.id,r.email??"","token_refreshed","token",false),await this.createAuditLog(r.id,r.email??"","token_revoked","token",false),this.createRefreshResponse(r,a,o,i)}async refreshWithRevokedToken(e){if(this.config.sessions?.single_per_user)throw Wm();if(!e.session_id)throw ao(e.session_id,e.user_id);let n=await this.repo.findRefreshTokensBySession(e.session_id),r=Vx(n,e.token),s=r.filter(c=>!Ch(c));if((this.config.enable_refresh_token_rotation??false)&&r.length>1)throw await this.repo.revokeRefreshTokensByIds(s.map(c=>c.id)),ao(e.session_id,e.user_id);let i=s.at(-1);if(!i)throw ao(e.session_id,e.user_id);let o=await this.repo.findUserById(e.user_id);if(!o)throw Gn();let a=await this.repo.findSessionById(e.session_id);if(!a)throw Gn();this.assertSessionRefreshable(a);let l=Rc(a.updated_at,a.refreshed_at,o.updated_at,o.last_sign_in_at);return await this.repo.updateSessionRefreshedAt(e.session_id,l),await this.createAuditLog(o.id,o.email??"","token_refreshed","token",false),this.createRefreshResponse(o,e.session_id,i.token,l)}async createRefreshResponse(e,n,r,s){let i=await this.repo.updateUser(e.id,{last_sign_in_at:s}),o=this.repo.parseUserJson(i??e),a=await this.repo.findIdentitiesByUserId(e.id),l=await fc({sub:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??void 0,session_id:n},this.config.jwt_secret,this.jwtExpiry),c=Math.floor(Date.now()/1e3);return kh({access_token:l,refresh_token:r,token_type:"bearer",expires_in:this.jwtExpiry,expires_at:c+this.jwtExpiry,user:this.mapUserToResponse(o,a,"user")},n,e.id)}assertSessionRefreshable(e){let n=Date.now();if(this.sessionTimeboxSeconds!==void 0&&n-Date.parse(e.created_at)>this.sessionTimeboxSeconds*1e3)throw lc(void 0,e.id,e.user_id);let r=e.refreshed_at??e.created_at;if(this.sessionInactivitySeconds!==void 0&&n-Date.parse(r)>this.sessionInactivitySeconds*1e3)throw lc("inactivity",e.id,e.user_id)}async getUser(e){let n=await this.repo.findUserById(e);if(!n)throw ct();let r=this.repo.parseUserJson(n),s=await this.repo.findIdentitiesByUserId(e);return this.mapUserToResponse(r,s,"user")}async updateUser(e,n){let r=await this.repo.findUserById(e);if(!r)throw ct();let s=this.repo.parseUserJson(r),i={},o=false,a=false,l=n.data!==void 0||n.password!==void 0||n.email!==void 0;if(n.data!==void 0){let u=typeof s.raw_user_meta_data=="object"?s.raw_user_meta_data:{};i.raw_user_meta_data=xh(u,n.data??{}),o=true;}if(n.password!==void 0){if(this.assertPasswordStrong(n.password),s.encrypted_password&&await pc(n.password,s.encrypted_password))throw Hm();i.encrypted_password=await gs(n.password),i.recovery_token=null,i.recovery_sent_at=null,o=true,a=true;}if(n.email!==void 0)if(n.email==="")o=true;else {let u=n.email.toLowerCase();if(!zn(u))throw H("Unable to validate email address: invalid format",400);if(o=true,u!==s.email?.toLowerCase()){let d=await this.repo.findUserByEmail(u);if(d&&d.id!==e)throw Mm();let p=new Date().toISOString(),g=s.email??"",m=ut(this.otpLength),h=await tt(u,m),y=(this.config.email?.double_confirm_changes??true)&&g!=="",w=ut(this.otpLength),S=y?await tt(g,w):null;i.email_change=u,i.email_change_token_current=S,i.email_change_token_new=h,i.email_change_sent_at=p,y&&S?await this.mailer.sendEmailChange(g,S,w,{userId:e,tokenNew:m,tokenHashNew:h,redirectTo:this.config.site_url,currentEmail:g,newEmail:u}):await this.mailer.sendEmailChange(u,h,m,{userId:e,redirectTo:this.config.site_url,currentEmail:g,newEmail:u});}}l||(o=true);let c=s;if(Object.keys(i).length>0){let u=await this.repo.updateUser(e,i);if(!u)throw ct();c=this.repo.parseUserJson(u);}a&&await this.createAuditLog(e,s.email??"","user_updated_password","user",false),o&&await this.createAuditLog(e,s.email??"","user_modified","user",false);let f=await this.repo.findIdentitiesByUserId(e);return this.mapUserToResponse(c,f,"user")}async signOut(e,n,r){let s=n??"local";if(!["global","local","others"].includes(s))throw H(`Unsupported logout scope "${s}"`,400);let i=await this.repo.findUserById(r);if(!i)throw ct();let o=this.repo.parseUserJson(i);s==="global"?(await this.repo.deleteRefreshTokensForUser(r),await this.repo.deleteUserSessions(r)):s==="others"&&e?(await this.repo.deleteRefreshTokensForUser(r,e),await this.repo.deleteUserSessions(r,e)):e&&(await this.repo.deleteRefreshTokensForSession(e),await this.repo.deleteSession(e)),await this.createAuditLog(r,o.email??"","logout","account",false);}async signInWithOtp(e,n){if(!e)throw H("One of email or phone must be set",400);if(e=e.toLowerCase(),!zn(e))throw H("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(e),s=!r;if(!r&&n?.shouldCreateUser!==false){let l=ce(),c=await gs(mc()),f=new Date().toISOString();r=await this.repo.createUser({id:l,email:e,encrypted_password:c,confirmed_at:f,raw_app_meta_data:{provider:"email",providers:["email"]},raw_user_meta_data:{email:e,email_verified:true,phone_verified:false,sub:l}}),await this.repo.createIdentity({id:ce(),provider:"email",provider_id:l,user_id:l,identity_data:{email:e,email_verified:false,phone_verified:false,sub:l}});}if(!r)throw qm();let i=ut(this.otpLength),o=await tt(e,i),a=new Date().toISOString();if(await this.repo.updateUser(r.id,{recovery_token:o,recovery_sent_at:a}),await this.createAuditLog(r.id,e,"user_recovery_requested","user",false),await this.mailer.sendMagicLink(e,o,i,{userId:r.id,redirectTo:this.config.site_url}),s){let l=await this.repo.findUserById(r.id);if(!l)throw ct();let c=this.repo.parseUserJson(l),f=await this.repo.findIdentitiesByUserId(r.id);await this.createSessionForUser(c,f),await this.createAuditLog(r.id,e,"user_signedup","team");}}async requestMagicLink(e,n){if(!e)throw H("Password recovery requires an email",422);if(e=e.toLowerCase(),!zn(e))throw H("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(e),s=!r;if(!r){if(this.config.enable_signup===false)throw oo();let l=ce(),c=await gs(mc()),f=new Date().toISOString();r=await this.repo.createUser({id:l,email:e,encrypted_password:c,confirmed_at:f,raw_app_meta_data:{provider:"email",providers:["email"]},raw_user_meta_data:{email:e,email_verified:true,phone_verified:false,sub:l}}),await this.repo.createIdentity({id:ce(),provider:l,provider_id:l,user_id:l,identity_data:{email:e,email_verified:false,phone_verified:false,sub:l}});}let i=ut(this.otpLength),o=await tt(e,i),a=new Date().toISOString();if(await this.repo.updateUser(r.id,{recovery_token:o,recovery_sent_at:a}),await this.createAuditLog(r.id,e,"user_recovery_requested","user",false),await this.mailer.sendMagicLink(e,o,i,{userId:r.id,redirectTo:this.config.site_url}),s){let l=await this.repo.findUserById(r.id);if(!l)throw ct();let c=this.repo.parseUserJson(l),f=await this.repo.findIdentitiesByUserId(r.id);await this.createSessionForUser(c,f),await this.createAuditLog(r.id,e,"user_signedup","team");}}async verifyOtp(e){let n;if(e.token_hash)n=e.token_hash;else if(e.email&&e.token)n=await tt(e.email.toLowerCase(),e.token);else throw hn();return await this.repo.transaction(async r=>{let s=this.repo;this.repo=r;try{let i=await this.findUserByTokenAndType(n,e.type),o=i?.user??null,a=i?.tokenColumn??null;if(!o||!a)throw hn();if(this.isTokenExpired(o,a))throw hn();if(e.type==="email_change"){let c=(this.config.email?.double_confirm_changes??!0)&&!!o.email?"email_change_token_current":"email_change_token_new";if(a!==c)throw hn()}if(!await this.repo.claimUserToken(o.id,a,n))throw hn();return await this.completeVerifyOtp(o,a,e.type)}finally{this.repo=s;}})}async completeVerifyOtp(e,n,r){let s=this.repo.parseUserJson(e),i=new Date().toISOString(),o={};if(s.confirmed_at||(o.confirmed_at=i),r==="email_change"&&s.email_change){o.email=s.email_change,o.email_change=null,o.email_change_token_current=null,o.email_change_token_new=null;let f=(await this.repo.findIdentitiesByUserId(e.id)).find(u=>u.provider==="email");if(f){let u=typeof f.identity_data=="string"?JSON.parse(f.identity_data):{...f.identity_data??{}};await this.repo.updateIdentity(f.id,{identity_data:{...u,email:s.email_change,email_verified:true}});}else await this.repo.createIdentity({id:ce(),provider:"email",provider_id:e.id,user_id:e.id,identity_data:{sub:e.id,email:s.email_change,email_verified:true,phone_verified:false}});o.raw_app_meta_data=await this.buildAppMetaDataProviders(e.id,s.raw_app_meta_data),await this.createAuditLog(e.id,s.email??"","user_modified","user",false);}else if(r==="signup"){let c=typeof s.raw_user_meta_data=="object"?s.raw_user_meta_data:{};o.raw_user_meta_data={...c,email_verified:true};let f=await this.repo.findIdentitiesByUserId(e.id);for(let u of f){let d=typeof u.identity_data=="string"?JSON.parse(u.identity_data):{...u.identity_data??{}};await this.repo.updateIdentity(u.id,{identity_data:{...d,email_verified:true}});}n&&(o[n]=null);}else n&&(o[n]=null);o.last_sign_in_at=i,await this.repo.updateUser(e.id,o);let a=await this.repo.findUserById(e.id);if(!a)throw hn();let l=await this.repo.findIdentitiesByUserId(e.id);return r==="signup"&&await this.createAuditLog(e.id,a.email??"","user_signedup","team"),this.createSessionForUser(this.repo.parseUserJson(a),l,"verify",{createLoginAudit:["magiclink","recovery"].includes(r),includeLoginProviderTrait:!["magiclink","recovery"].includes(r),authenticationMethod:["email_change","magiclink","recovery","signup"].includes(r)?"otp":"password"})}async recover(e){if(!e)throw H("Password recovery requires an email",400);if(e=e.toLowerCase(),!zn(e))throw H("Unable to validate email address: invalid format",400);let n=await this.repo.findUserByEmail(e);if(!n)return;let r=ut(this.otpLength),s=await tt(e,r),i=new Date().toISOString();await this.repo.updateUser(n.id,{recovery_token:s,recovery_sent_at:i}),await this.createAuditLog(n.id,e,"user_recovery_requested","user",false),await this.mailer.sendRecovery(e,s,r,{userId:n.id,redirectTo:this.config.site_url});}async resend(e,n){if(!["signup","email_change","sms","phone_change"].includes(e))throw H("Missing one of these types: signup, email_change, sms, phone_change",400);if((e==="signup"||e==="email_change")&&!n)throw H("Type provided requires an email address",400);if(!n)return;if(n=n.toLowerCase(),!zn(n))throw H("Unable to validate email address: invalid format",400);let r=await this.repo.findUserByEmail(n);if(!r)return;let s=ut(this.otpLength),i=new Date().toISOString();if(e==="signup"){if(r.confirmed_at||!r.confirmation_sent_at)return;throw lo()}else if(e==="email_change"){if(!r.email_change)return;if(r.email_change_sent_at)throw lo();let o=await tt(r.email_change,s);await this.repo.updateUser(r.id,{email_change_token_new:o,email_change_sent_at:i}),await this.mailer.sendEmailChange(r.email_change,o,s,{userId:r.id,redirectTo:this.config.site_url,currentEmail:r.email??void 0,newEmail:r.email_change});}}async reauthenticate(e){let n=await this.repo.findUserById(e);if(!n)throw Nm();if(!n.email)throw H("Reauthentication requires the user to have an email or a phone number",400);let r=ut(this.otpLength),s=await tt(n.email,r),i=new Date().toISOString();await this.repo.updateUser(n.id,{reauthentication_token:s,reauthentication_sent_at:i}),await this.mailer.sendReauthentication(n.email,r,{userId:n.id,tokenHash:s,redirectTo:this.config.site_url}),await this.createAuditLog(n.id,n.email??"","user_reauthenticate_requested","",false);}async createSessionForUser(e,n,r="session",s={}){let i=Rc(e.last_sign_in_at,e.updated_at),o=await this.repo.updateUser(e.id,{last_sign_in_at:i}),a=o?this.repo.parseUserJson(o):e;this.config.sessions?.single_per_user&&await this.repo.revokeUserRefreshTokens(e.id);let l=ce();await this.repo.createSession({id:l,user_id:e.id});let c=hc();await this.repo.createRefreshToken({token:c,user_id:e.id,session_id:l}),(s.createLoginAudit??true)&&await this.createAuditLog(e.id,e.email??"","login","account",s.includeLoginProviderTrait??true,s.provider??"email",s.providerTraitKey??"provider");let f=await fc({sub:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??void 0,session_id:l},this.config.jwt_secret,this.jwtExpiry),u=Math.floor(Date.now()/1e3);return kh({access_token:f,refresh_token:c,token_type:"bearer",expires_in:this.jwtExpiry,expires_at:u+this.jwtExpiry,user:this.mapUserToResponse(a,n,r)},l,e.id)}assertPasswordStrong(e){let n=rh(e,this.minPasswordLength,this.passwordRequiredCharacters);if(n.length>0)throw Im(this.minPasswordLength,this.passwordRequiredCharacters,n)}mapUserToResponse(e,n,r){let s=typeof e.raw_app_meta_data=="string"?JSON.parse(e.raw_app_meta_data):e.raw_app_meta_data??{},i=typeof e.raw_user_meta_data=="string"?JSON.parse(e.raw_user_meta_data):e.raw_user_meta_data??{},o={id:e.id,aud:e.aud||"authenticated",role:e.role||"authenticated",email:e.email??"",phone:e.phone??"",app_metadata:s,user_metadata:i,identities:n.map(a=>this.mapIdentityToResponse(a,r,e)),created_at:e.created_at,updated_at:e.updated_at,is_anonymous:false};return e.confirmed_at&&(o.email_confirmed_at=e.confirmed_at,(r==="user"||r==="verify")&&(o.confirmed_at=e.confirmed_at)),e.last_sign_in_at&&(o.last_sign_in_at=e.last_sign_in_at),e.confirmation_sent_at&&(o.confirmation_sent_at=e.confirmation_sent_at),e.email_change&&(o.new_email=e.email_change),e.email_change_sent_at&&(o.email_change_sent_at=e.email_change_sent_at),r==="verify"&&e.recovery_sent_at&&(o.recovery_sent_at=e.recovery_sent_at),o}mapIdentityToResponse(e,n,r){let s=typeof e.identity_data=="string"?JSON.parse(e.identity_data):e.identity_data??{},i=n==="session"&&r.confirmed_at?{...s,email_verified:true}:s,o=e.email??(typeof i.email=="string"?i.email:r.email??void 0);return {identity_id:e.id,id:e.provider_id,user_id:e.user_id,identity_data:i,provider:e.provider,last_sign_in_at:e.last_sign_in_at??e.created_at,created_at:e.created_at,updated_at:e.updated_at,...o?{email:o}:{}}}async findUserByTokenAndType(e,n){if(n==="email_change"){let r=await this.repo.findUserByToken("email_change_token_current",e);if(r)return {user:r,tokenColumn:"email_change_token_current"};let s=await this.repo.findUserByToken("email_change_token_new",e);return s?{user:s,tokenColumn:"email_change_token_new"}:null}for(let r of this.getTokenColumnsForType(n)){let s=await this.repo.findUserByToken(r,e);if(s)return {user:s,tokenColumn:r}}return null}static SENT_AT_COLUMN={confirmation_token:"confirmation_sent_at",recovery_token:"recovery_sent_at",email_change_token_current:"email_change_sent_at",email_change_token_new:"email_change_sent_at",reauthentication_token:"reauthentication_sent_at"};isTokenExpired(e,n){let r=t.SENT_AT_COLUMN[n];if(!r)return false;let s=e[r];if(!s)return false;let i=new Date(s).getTime();return Number.isNaN(i)?false:Date.now()-i>this.otpExpirySeconds*1e3}getTokenColumnsForType(e){switch(e){case "signup":return ["confirmation_token"];case "magiclink":return ["recovery_token","confirmation_token"];case "recovery":return ["recovery_token"];case "email_change":return ["email_change_token_new","email_change_token_current"];case "reauthentication":return ["reauthentication_token"];default:return []}}async createAuditLog(e,n,r,s,i=true,o="email",a="provider"){let l={action:r,actor_id:e,actor_username:n,actor_via_sso:false,log_type:s};i&&(l.traits={[a]:o}),await this.repo.createAuditLogEntry({id:ce(),payload:l});}async createAuditLogWithTraits(e,n,r,s,i){await this.repo.createAuditLogEntry({id:ce(),payload:{action:r,actor_id:e,actor_username:n,actor_via_sso:false,log_type:s,traits:i}});}async getExternalProviderRedirectUrl(e,n){let r=e.provider??"",s=xc(r,this.config.external,{defaultRedirectUri:n.defaultRedirectUri}),i=e.invite_token??"";if(i!==""&&!await this.repo.findUserByToken("confirmation_token",i))throw Xm();let o=e.code_challenge??"",a=e.code_challenge_method??"";ch(a,o);let l=this.resolveOAuthReferrer(e.redirect_to,n.refererHeader),c={};for(let[d,p]of Object.entries(e))p!==void 0&&(["provider","scopes","code_challenge","code_challenge_method"].includes(d)||(c[d]=p));let f=ce(),u=o!==""?ce():null;return await this.repo.deleteFlowStatesCreatedBefore(new Date(Date.now()-Bx).toISOString()),await this.repo.createFlowState({id:f,auth_code:u,authentication_method:"oauth",code_challenge:o!==""?o:null,code_challenge_method:o!==""?gc(a):null,provider_type:s.name,invite_token:i!==""?i:null,referrer:l,email_optional:s.emailOptional}),s.provider.authorizeUrl({clientId:s.clientId,redirectUri:s.redirectUri,scopes:e.scopes,state:f,extraParams:c})}async loadOAuthFlowState(e){if(!e)throw cc("OAuth state parameter missing");if(!Rh(e))throw co("OAuth state parameter is invalid");let n=await this.repo.findFlowStateById(e);if(!n)throw co("OAuth state not found or expired");if(Date.now()-Date.parse(n.created_at)>Sh)throw co("OAuth state has expired");if(n.code_challenge!==null&&n.user_id!==null)throw fo();return n}resolveOAuthRedirectTarget(e){return e.referrer||this.config.site_url||"http://localhost:3000"}async handleExternalProviderCallback(e,n,r){let s=this.resolveOAuthRedirectTarget(e),i=e.provider_type,o=n.code;if(!o)throw cc("OAuth callback with missing authorization code missing");let a=xc(i,this.config.external,{defaultRedirectUri:r.defaultRedirectUri}),l;try{l=await a.provider.exchangeCode(o,{clientId:a.clientId,secret:a.secret,redirectUri:a.redirectUri});}catch(h){throw Zm(o).withInternalError(h)}let c;try{c=await a.provider.getUserData(l,{clientId:a.clientId});}catch(h){throw eh().withInternalError(h)}if(c.emails.length===0&&!e.email_optional)throw hs("Error getting user email from external provider");let f,u=false;for(let h of c.emails)if(f=h.email,u=h.verified,h.primary)break;let d={...c.claims,email:f,email_verified:u},p=oh(d),g=d.sub??"",m=await this.repo.transaction(async h=>{let y=this.repo;this.repo=h;try{let w=e.invite_token??"";if(w!==""){let v=await this.processInvite(w,i,c.emails,p,g);return await this.issueOAuthCallbackResult(v,e,l,s)}let S=await this.determineAccountLinking(c.emails,i,g),b,_,E=!1;if(S.decision==="AccountExists")b=S.user,_=S.identity.id,await this.repo.updateIdentity(_,{identity_data:p,last_sign_in_at:new Date().toISOString()}),await this.updateUserMetaDataAndProviders(b.id,p);else if(S.decision==="LinkAccount"){b=S.user;let v=await this.repo.createIdentity({id:ce(),provider:i,provider_id:g,user_id:b.id,identity_data:p});_=v.id,await this.updateUserMetaDataAndProviders(b.id,p),await this.createAuditLogWithTraits(b.id,b.email??"","identity_linked","user",{identity_id:v.id,provider:i,provider_id:g});}else if(S.decision==="CreateAccount"){if(this.config.enable_signup===!1)throw oo();E=!0;let v=ce();b=await this.repo.createUser({id:v,email:S.candidateEmail.email||null,raw_app_meta_data:{provider:i,providers:[i]},raw_user_meta_data:p}),_=(await this.repo.createIdentity({id:ce(),provider:i,provider_id:g,user_id:v,identity_data:p})).id;}else throw hs("Multiple accounts with the same email address in the same linking domain detected: default");let x=this.repo.parseUserJson(await this.repo.findUserById(b.id));if(Gx(x))throw Qm();if(!(e.email_optional&&S.candidateEmail.email==="")&&!x.confirmed_at){await this.removeUnconfirmedIdentities(x.id,_,p);let v=!(this.config.email?.enable_confirmations??this.config.enable_confirmations??!1);if(S.candidateEmail.verified||v)await this.createAuditLog(x.id,S.candidateEmail.email,"user_signedup","team",!0,i),await this.repo.updateUser(x.id,{confirmed_at:new Date().toISOString(),raw_user_meta_data:{...p,email_verified:!0}});else {let P=!1;if(S.candidateEmail.email){let C=ut(this.otpLength),R=await tt(S.candidateEmail.email,C),U=new Date().toISOString();await this.repo.updateUser(x.id,{confirmation_token:R,confirmation_sent_at:U}),await this.mailer.sendConfirmation(S.candidateEmail.email,R,C,{userId:x.id,redirectTo:this.config.site_url}),P=!0;}return {commitError:Vm(P?`Unverified email with ${i}. A confirmation email has been sent to your ${i} email`:`Unverified email with ${i}. Verify the email with ${i} in order to sign in`)}}}else await this.createAuditLog(x.id,x.email??"","login","account",!0,i);return await this.issueOAuthCallbackResult(x,e,l,s)}finally{this.repo=y;}});if(m.commitError)throw m.commitError;return m}async issueOAuthCallbackResult(e,n,r,s){if(n.code_challenge!=null&&n.auth_code!=null){if(!await this.repo.claimFlowStateForPkce(n.id,{user_id:e.id,provider_access_token:r.access_token??"",provider_refresh_token:r.refresh_token??"",auth_code_issued_at:new Date().toISOString()}))throw fo();let m=new URL(s);return m.searchParams.set("code",n.auth_code),{commitError:void 0,type:"pkce",redirectUrl:m.toString()}}let o=this.repo.parseUserJson(await this.repo.findUserById(e.id)),a=await this.repo.findIdentitiesByUserId(e.id),l=await this.createSessionForUser(o,a,"session",{createLoginAudit:false});if(!await this.repo.deleteFlowState(n.id))throw fo();let f={access_token:l.access_token,expires_at:String(l.expires_at),expires_in:String(l.expires_in),provider_token:r.access_token??""};r.refresh_token&&(f.provider_refresh_token=r.refresh_token),f.refresh_token=l.refresh_token,f.sb="",f.token_type=l.token_type;let d=Object.keys(f).sort().map(g=>`${encodeURIComponent(g)}=${encodeURIComponent(f[g])}`).join("&"),p=new URL(s);return p.hash=d,{commitError:void 0,type:"implicit",redirectUrl:p.toString()}}async processInvite(e,n,r,s,i){let o=await this.repo.findUserByToken("confirmation_token",e);if(!o)throw Ym();let a=this.repo.parseUserJson(o),l=(a.email??"").toLowerCase();if(!r.some(u=>u.email.toLowerCase()===l))throw H("Invited email does not match emails from external provider",400);let f=await this.repo.createIdentity({id:ce(),provider:n,provider_id:i,user_id:a.id,identity_data:s});return await this.updateUserMetaDataAndProviders(a.id,s),await this.createAuditLog(a.id,a.email??"","invite_accepted","account",true,n),await this.removeUnconfirmedIdentities(a.id,f.id,s),await this.repo.updateUser(a.id,{confirmation_token:null,confirmed_at:new Date().toISOString(),raw_user_meta_data:{...s,email_verified:true}}),this.repo.parseUserJson(await this.repo.findUserById(a.id))}async exchangePkceCode(e,n){if(!e||!n)throw H("invalid request: both auth code and code verifier should be non-empty",400);let r=await this.repo.findFlowStateByAuthCode(e);if(!r||!r.user_id)throw uo();if(Date.now()-Date.parse(r.created_at)>Sh)throw Gm();if(!await uh(r.code_challenge??"",r.code_challenge_method??"",n))throw zm("code challenge does not match previously saved code verifier");return {...await this.repo.transaction(async o=>{let a=this.repo;this.repo=o;try{if(!await this.repo.deleteFlowState(r.id))throw uo();let c=await this.repo.findUserById(r.user_id);if(!c)throw uo();let f=this.repo.parseUserJson(c),u=await this.repo.findIdentitiesByUserId(c.id);return await this.createSessionForUser(f,u,"session",{includeLoginProviderTrait:!0,provider:r.provider_type,providerTraitKey:"provider_type"})}finally{this.repo=a;}}),...r.provider_access_token?{provider_token:r.provider_access_token}:{},...r.provider_refresh_token?{provider_refresh_token:r.provider_refresh_token}:{}}}resolveOAuthReferrer(e,n){let r=this.config.site_url??"http://localhost:3000",s=this.config.additional_redirect_urls??[];return e&&Tc(e,r,s)?e:n&&Tc(n,r,s)?n:r}async updateUserMetaDataAndProviders(e,n){let r=await this.repo.findUserById(e);if(!r)return;let s=this.repo.parseUserJson(r),i=typeof s.raw_user_meta_data=="object"?s.raw_user_meta_data:{},o=xh(i,n),a=await this.buildAppMetaDataProviders(e,s.raw_app_meta_data);await this.repo.updateUser(e,{raw_user_meta_data:o,raw_app_meta_data:a});}async buildAppMetaDataProviders(e,n){let r=typeof n=="object"&&n?{...n}:{},i=[...await this.repo.findIdentitiesByUserId(e)].sort((a,l)=>Date.parse(a.created_at)-Date.parse(l.created_at)),o=[];for(let a of i)o.includes(a.provider)||o.push(a.provider);return r.providers=o,o.length>0&&(r.provider=o[0]),r}async removeUnconfirmedIdentities(e,n,r){await this.repo.deleteIdentitiesExcept(e,n);let s=await this.repo.findUserById(e),i=await this.buildAppMetaDataProviders(e,s?this.repo.parseUserJson(s).raw_app_meta_data:{});await this.repo.updateUser(e,{raw_user_meta_data:r,raw_app_meta_data:i,encrypted_password:null});}async determineAccountLinking(e,n,r){let s=e.find(p=>p.primary),i=s?{email:s.email.toLowerCase(),verified:s.verified}:{email:"",verified:false},o=r?await this.repo.findIdentityByProviderAndId(n,r):null;if(o){let p=await this.repo.findUserById(o.user_id);if(!p)throw new Error("Database error finding user for existing identity");return i={email:(p.email??"").toLowerCase(),verified:i.verified},{decision:"AccountExists",user:p,identity:o,candidateEmail:i}}let a=!(this.config.email?.enable_confirmations??this.config.enable_confirmations??false),l=Array.from(new Set(e.filter(p=>p.verified||a).map(p=>p.email.toLowerCase())));if(l.length===0)return i.email&&await this.repo.findUserByEmail(i.email)&&(i={...i,email:""}),{decision:"CreateAccount",candidateEmail:i};let c=await this.repo.findIdentitiesByEmails(l),f=Array.from(new Set(c.map(p=>p.user_id))),d=(await Promise.all(f.map(p=>this.repo.findUserById(p)))).filter(p=>p!==null).filter(p=>!Eh(p));if(d.length===0){let p=await Promise.all(l.map(m=>this.repo.findUserByEmail(m))),g=new Map;for(let m of p)m&&!Eh(m)&&g.set(m.id,m);d=Array.from(g.values());}return d.length===0?{decision:"CreateAccount",candidateEmail:i}:d.length>1?{decision:"MultipleAccounts"}:{decision:"LinkAccount",user:d[0],candidateEmail:i}}};function Eh(t){return t.is_sso_user===true||t.is_sso_user===1}function Gx(t){return t.banned_until?Date.parse(t.banned_until)>Date.now():false}function xh(t,e){let n={...t};for(let[r,s]of Object.entries(e))s===null?delete n[r]:n[r]=s;return n}function zx(t){switch(t){case "letters_digits":return ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789"];case "lower_upper_letters_digits":return ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789"];case "lower_upper_letters_digits_symbols":return ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789","!@#$%^&*"];default:return []}}function Th(t){if(!t)return;let e=t.match(/^(\d+)(ms|s|m|h)?$/);if(!e)return;let n=Number(e[1]);switch(e[2]??"s"){case "ms":return n/1e3;case "m":return n*60;case "h":return n*3600;default:return n}}function zn(t){return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}function Rh(t){return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}function Ch(t){return t.revoked===true||t.revoked===1}function Vx(t,e){let n=[],r=[e];for(;r.length>0;){let s=r.shift();for(let i of t)i.parent!==s||n.some(o=>o.id===i.id)||(n.push(i),r.push(i.token));}return n}function Rc(...t){let e=Math.max(0,...t.map(r=>r?Date.parse(r):0)),n=Date.now();return new Date(Math.max(n,e+1)).toISOString()}function kh(t,e,n){return Object.defineProperties(t,{session_id:{value:e,enumerable:false},user_id:{value:n,enumerable:false}}),t}var Qx=100;function bs(t){if(t==null)return {};if(typeof t=="string")try{return JSON.parse(t)}catch{return {}}return t}function gn(t){return typeof t=="string"?t:JSON.stringify(t??{})}var ws=class t{constructor(e,n,r=s=>e.transaction().execute(s)){this.db=e;this.dialect=n;this.runInTransaction=r;this.schema="auth";}schema;bool(e){return this.dialect==="sqlite"?e?1:0:e}async transaction(e){return this.runInTransaction(n=>e(new t(n,this.dialect,this.runInTransaction)))}table(e){return this.db.withSchema(this.schema).selectFrom(e)}insertInto(e){return this.db.withSchema(this.schema).insertInto(e)}update(e){return this.db.withSchema(this.schema).updateTable(e)}deleteFrom(e){return this.db.withSchema(this.schema).deleteFrom(e)}async findUserByEmail(e){return await this.table("users").selectAll().where("email","=",e.toLowerCase()).executeTakeFirst()??null}async findUserById(e){return await this.table("users").selectAll().where("id","=",e).executeTakeFirst()??null}async findUserByToken(e,n){return await this.table("users").selectAll().where(e,"=",n).executeTakeFirst()??null}async claimUserToken(e,n,r){let s=await this.update("users").set({[n]:null}).where("id","=",e).where(n,"=",r).executeTakeFirst();return Number(s.numUpdatedRows??0)>0}async createUser(e){let n=new Date().toISOString(),r={id:e.id,aud:e.aud??"authenticated",role:e.role??"authenticated",email:e.email?e.email.toLowerCase():null,encrypted_password:e.encrypted_password??null,phone:e.phone??null,email_confirmed_at:e.email_confirmed_at??e.confirmed_at??null,confirmation_token:e.confirmation_token??null,confirmation_sent_at:e.confirmation_sent_at??null,recovery_token:e.recovery_token??null,recovery_sent_at:e.recovery_sent_at??null,email_change:e.email_change??null,email_change_token_new:e.email_change_token_new??null,email_change_token_current:e.email_change_token_current??null,email_change_sent_at:e.email_change_sent_at??null,email_change_confirm_status:e.email_change_confirm_status??0,reauthentication_token:e.reauthentication_token??null,reauthentication_sent_at:e.reauthentication_sent_at??null,raw_app_meta_data:gn(e.raw_app_meta_data??{provider:"email",providers:["email"]}),raw_user_meta_data:gn(e.raw_user_meta_data??{}),is_sso_user:this.bool(e.is_sso_user??false),is_anonymous:this.bool(e.is_anonymous??false),last_sign_in_at:e.last_sign_in_at??null,created_at:n,updated_at:n};return await this.insertInto("users").values(r).execute(),await this.findUserById(e.id)}async updateUser(e,n){let r={...n,updated_at:new Date().toISOString()};return r.confirmed_at!=null&&r.email_confirmed_at==null&&(r.email_confirmed_at=r.confirmed_at),delete r.confirmed_at,r.raw_app_meta_data!=null&&(r.raw_app_meta_data=gn(r.raw_app_meta_data)),r.raw_user_meta_data!=null&&(r.raw_user_meta_data=gn(r.raw_user_meta_data)),r.is_sso_user!=null&&(r.is_sso_user=this.bool(!!r.is_sso_user)),r.is_anonymous!=null&&(r.is_anonymous=this.bool(!!r.is_anonymous)),await this.update("users").set(r).where("id","=",e).execute(),this.findUserById(e)}async createSession(e){let n=new Date().toISOString(),r={id:e.id,user_id:e.user_id,aal:e.aal??"aal1",not_after:null,refreshed_at:null,user_agent:null,ip:null,tag:null,refresh_token_hmac_key:null,refresh_token_counter:null,scopes:null,factor_id:null,created_at:n,updated_at:n};return await this.insertInto("sessions").values(r).execute(),r}async findSessionById(e){return await this.table("sessions").selectAll().where("id","=",e).executeTakeFirst()??null}async updateSessionRefreshedAt(e,n){return await this.update("sessions").set({refreshed_at:n,updated_at:n}).where("id","=",e).execute(),this.findSessionById(e)}async deleteSession(e){await this.deleteFrom("sessions").where("id","=",e).execute();}async deleteUserSessions(e,n){let r=this.deleteFrom("sessions").where("user_id","=",e);n&&(r=r.where("id","!=",n)),await r.execute();}async deleteRefreshTokensForSession(e){await this.deleteFrom("refresh_tokens").where("session_id","=",e).execute();}async deleteRefreshTokensForUser(e,n){let r=this.deleteFrom("refresh_tokens").where("user_id","=",e);n&&(r=r.where("session_id","!=",n)),await r.execute();}async createRefreshToken(e){let n=new Date().toISOString(),r={id:ce(),token:e.token,user_id:e.user_id,session_id:e.session_id,revoked:this.bool(false),parent:e.parent??null,created_at:n,updated_at:n};return await this.insertInto("refresh_tokens").values(r).execute(),r}async findRefreshToken(e){return await this.table("refresh_tokens").selectAll().where("token","=",e).executeTakeFirst()??null}async findRefreshTokensBySession(e){return await this.table("refresh_tokens").selectAll().where("session_id","=",e).execute()}async revokeRefreshToken(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("id","=",e).execute();}async revokeSessionRefreshTokens(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("session_id","=",e).execute();}async revokeRefreshTokensByIds(e){e.length!==0&&await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("id","in",e).execute();}async revokeUserRefreshTokens(e){await this.update("refresh_tokens").set({revoked:this.bool(true),updated_at:new Date().toISOString()}).where("user_id","=",e).execute();}async createIdentity(e){let n=new Date().toISOString(),r={id:e.id,provider:e.provider,provider_id:e.provider_id,user_id:e.user_id,identity_data:gn(e.identity_data),last_sign_in_at:e.last_sign_in_at??n,created_at:n,updated_at:n};return await this.insertInto("identities").values(r).execute(),{...r,identity_data:e.identity_data}}async findIdentitiesByUserId(e){return (await this.table("identities").selectAll().where("user_id","=",e).execute()).map(r=>({...r,identity_data:bs(r.identity_data)}))}async updateIdentity(e,n){let r={...n,updated_at:new Date().toISOString()};r.identity_data!=null&&(r.identity_data=gn(r.identity_data)),delete r.email,await this.update("identities").set(r).where("id","=",e).execute();}async deleteIdentitiesExcept(e,n){await this.deleteFrom("identities").where("user_id","=",e).where("id","!=",n).execute();}async findIdentityByProviderAndId(e,n){let r=await this.table("identities").selectAll().where("provider","=",e).where("provider_id","=",n).executeTakeFirst();if(!r)return null;let s=r;return {...s,identity_data:bs(s.identity_data)}}async findIdentitiesByEmails(e){return e.length===0?[]:(await this.table("identities").selectAll().where("email","in",e.map(r=>r.toLowerCase())).execute()).map(r=>({...r,identity_data:bs(r.identity_data)}))}async createFlowState(e){let n=new Date().toISOString(),r={id:e.id,user_id:e.user_id??null,auth_code:e.auth_code??null,authentication_method:e.authentication_method,code_challenge_method:e.code_challenge_method??null,code_challenge:e.code_challenge??null,provider_type:e.provider_type,provider_access_token:"",provider_refresh_token:"",auth_code_issued_at:null,invite_token:e.invite_token??null,referrer:e.referrer??null,oauth_client_state_id:e.oauth_client_state_id??null,linking_target_id:e.linking_target_id??null,email_optional:this.bool(e.email_optional??false),created_at:n,updated_at:n};return await this.insertInto("flow_state").values(r).execute(),r}async findFlowStateById(e){return await this.table("flow_state").selectAll().where("id","=",e).executeTakeFirst()??null}async findFlowStateByAuthCode(e){return await this.table("flow_state").selectAll().where("auth_code","=",e).executeTakeFirst()??null}async updateFlowState(e,n){let r={...n,updated_at:new Date().toISOString()};r.email_optional!=null&&(r.email_optional=this.bool(!!r.email_optional)),await this.update("flow_state").set(r).where("id","=",e).execute();}async claimFlowStateForPkce(e,n){let r=await this.update("flow_state").set({...n,updated_at:new Date().toISOString()}).where("id","=",e).where("user_id","is",null).executeTakeFirst();return Number(r.numUpdatedRows??0)>0}async deleteFlowStatesCreatedBefore(e){let n=await this.deleteFrom("flow_state").where("id","in",this.db.selectFrom("flow_state").select("id").where("created_at","<",e).limit(Qx)).executeTakeFirst();return Number(n.numDeletedRows??0)}async deleteFlowState(e){let n=await this.deleteFrom("flow_state").where("id","=",e).executeTakeFirst();return Number(n.numDeletedRows??0)>0}async createAuditLogEntry(e){let n={id:e.id,payload:gn(e.payload??{}),ip_address:e.ip_address??"",created_at:new Date().toISOString()};await this.insertInto("audit_log_entries").values(n).execute();}parseUserJson(e){return {...e,raw_app_meta_data:bs(e.raw_app_meta_data),raw_user_meta_data:bs(e.raw_user_meta_data),confirmed_at:e.confirmed_at??e.email_confirmed_at??null}}};var Vn=class{maxSizeBytes;now;entries=new Map;sizeBytes=0;constructor(e={}){this.maxSizeBytes=e.maxSizeBytes??1024*1024,this.now=e.now??Date.now;}async get(e){let n=this.entries.get(e);if(n){if(this.isExpired(n)){this.deleteEntry(e,n);return}return this.entries.delete(e),this.entries.set(e,n),n.value}}async set(e,n,r){let s=this.entries.get(e);s&&this.deleteEntry(e,s);let i={value:n,size:vh(e)+vh(n),expiresAt:r?.ttl&&r.ttl>0?this.now()+r.ttl*1e3:void 0};this.entries.set(e,i),this.sizeBytes+=i.size,this.evictToSize();}async delete(e){let n=this.entries.get(e);n&&this.deleteEntry(e,n);}isExpired(e){return typeof e.expiresAt=="number"&&e.expiresAt<=this.now()}evictToSize(){for(;this.sizeBytes>this.maxSizeBytes;){let e=this.entries.keys().next().value;if(typeof e!="string")break;let n=this.entries.get(e);if(!n)break;this.deleteEntry(e,n);}}deleteEntry(e,n){this.entries.delete(e),this.sizeBytes-=n.size;}};function vh(t){return new TextEncoder().encode(t).byteLength}var ho=class{constructor(e){this.options=e;}async get(e){return await this.options.namespace.get(e)??void 0}async set(e,n,r){await this.options.namespace.put(e,n,{...r?.ttl&&r.ttl>0?{expirationTtl:r.ttl}:{}});}async delete(e){await this.options.namespace.delete(e);}};var go=class{constructor(e){this.options=e;}async get(e){return await this.options.client.get(e)??void 0}async set(e,n,r){if(r?.ttl&&r.ttl>0){await this.options.client.set(e,n,"EX",r.ttl);return}await this.options.client.set(e,n);}async delete(e){if(this.options.client.del){await this.options.client.del(e);return}if(this.options.client.delete){await this.options.client.delete(e);return}throw new Error("RedisCacheDriver client must provide del() or delete()")}};var yo=class{constructor(e){this.options=e;this.endpoint=e.endpoint??"https://api.resend.com/emails",this.fetchFn=e.fetch??fetch;}endpoint;fetchFn;async send(e){let n=await this.fetchFn(this.endpoint,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${this.options.apiKey}`},body:JSON.stringify({from:this.options.from,to:e.to,subject:e.subject,...e.text?{text:e.text}:{},...e.html?{html:e.html}:{}})});if(!n.ok)throw new Error(`Resend email failed (${n.status}): ${await n.text()}`)}};var wo=class{constructor(e){this.options=e;this.endpoint=`https://email.${e.region}.amazonaws.com/v2/email/outbound-emails`,this.client=e.client;}endpoint;client;async send(e){let n=await this.getClient(),r={FromEmailAddress:this.options.from,Destination:{ToAddresses:[e.to]},Content:{Simple:{Subject:{Data:e.subject,Charset:"UTF-8"},Body:{...e.text?{Text:{Data:e.text,Charset:"UTF-8"}}:{},...e.html?{Html:{Data:e.html,Charset:"UTF-8"}}:{}}}}},s=await n.fetch(this.endpoint,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw new Error(`AWS SES email failed (${s.status}): ${await s.text()}`)}async getClient(){if(this.client)return this.client;let{AwsClient:e}=await Promise.resolve().then(()=>(Ih(),$h));return this.client=new e({accessKeyId:this.options.accessKeyId,secretAccessKey:this.options.secretAccessKey,service:"ses",region:this.options.region}),this.client}};var So=class{constructor(e){this.options=e;this.sendmailPath=e.sendmailPath??"/usr/sbin/sendmail";}sendmailPath;async send(e){let{spawn:n}=await import('node:child_process').catch(()=>{throw new Error("SendmailEmailDriver requires a Node-compatible runtime")}),r=Ac(this.options.from,e);await new Promise((s,i)=>{let o=n(this.sendmailPath,["-t","-i"],{stdio:["pipe","ignore","pipe"]}),a=[];o.on("error",l=>{i(new Error(`SendmailEmailDriver failed to start ${this.sendmailPath}: ${l.message}`));}),o.stderr?.on("data",l=>a.push(Buffer.from(l))),o.on("close",l=>{if(l===0){s();return}i(new Error(`SendmailEmailDriver exited with code ${l}: ${Buffer.concat(a).toString("utf8")}`));}),o.stdin.end(r);});}};function Ac(t,e){let n=e.html?"text/html; charset=UTF-8":"text/plain; charset=UTF-8";return [`From: ${t}`,`To: ${e.to}`,`Subject: ${e.subject}`,"MIME-Version: 1.0",`Content-Type: ${n}`,"",e.html??e.text??""].join(`
87
+ `)}var _s=class{messages=new Map;maxKeepCount;order=[];constructor(e={}){this.maxKeepCount=e.maxKeepCount??100;}async send(e){if(this.maxKeepCount<=0)return;let n=e.to.toLowerCase(),r={...e,sentAt:new Date().toISOString()},s=this.messages.get(n)??[];s.push(r),this.messages.set(n,s),this.order.push({key:n,message:r}),this.trim();}clear(){this.messages.clear(),this.order.length=0;}trim(){for(;this.order.length>this.maxKeepCount;){let e=this.order.shift();if(!e)return;let n=this.messages.get(e.key);if(!n)continue;let r=n.indexOf(e.message);r>=0&&n.splice(r,1),n.length===0&&this.messages.delete(e.key);}}},Qn=class extends _s{silent;logger;constructor(e={}){super({maxKeepCount:0}),this.silent=e.silent??false,this.logger=e.logger??console;}async send(e){if(await super.send(e),!this.silent){let n=e.text?e.text:"(html-only email, body omitted)";this.logger.info(["[@supabase/lite] email captured (not delivered)",`To: ${e.to}`,`Subject: ${e.subject}`,"",n].join(`
88
+ `));}}};var Es=class{silent;logger;constructor(e={}){this.silent=e.silent??false,this.logger=e.logger??console;}async send(e){this.silent||this.logger.info(["[@supabase/lite] SMS driver noop send",`To: ${e.to}`,`Body: ${e.body}`].join(`
89
+ `));}};function Nh(t={}){return {email:t.email??new Qn,sms:t.sms??new Es,cache:t.cache??new Vn}}var eT="/auth/v1/verify";function Dh(t,e,n,r){let s=new URL(eT,tT(t));return s.searchParams.set("token",e),s.searchParams.set("type",n),s.searchParams.set("redirect_to",r),s.toString()}function tT(t){return t.endsWith("/")?t:`${t}/`}function Eo(t,e){return t.replace(/\{\{\s*\.(\w+)\s*\}\}/g,(n,r)=>r in e?e[r]??"":n)}var jh={invite:"You have been invited",confirmation:"Confirm Your Signup",recovery:"Reset Your Password",magic_link:"Your Magic Link",email_change:"Confirm Email Change",reauthentication:"Confirm Reauthentication"},_o="-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'";function Xn(t,e){return `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
90
90
  <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
91
91
  <head>
92
92
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -105,16 +105,16 @@ ${s}`)}return t}ie();var Uf=[{name:"Self-hosted Logflare Configuration",link:"ht
105
105
  :root { color-scheme: light dark; supported-color-schemes: light dark }
106
106
  </style>
107
107
  </head>
108
- <body style="height:100%;margin:0;-webkit-text-size-adjust:none;font-family:${na};background-color:#FFFFFF;color:#687076;width:100% !important;">
108
+ <body style="height:100%;margin:0;-webkit-text-size-adjust:none;font-family:${_o};background-color:#FFFFFF;color:#687076;width:100% !important;">
109
109
  <table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;margin:0;padding:0;background-color:#FFFFFF;">
110
110
  <tr>
111
- <td align="center" style="font-family:${na};font-size:16px;padding:0;">
111
+ <td align="center" style="font-family:${_o};font-size:16px;padding:0;">
112
112
  <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;margin:0;padding:0;">
113
113
  <tr>
114
- <td class="email-body" width="570" cellpadding="0" cellspacing="0" style="font-family:${na};font-size:16px;padding:0;width:100%;margin:0;">
114
+ <td class="email-body" width="570" cellpadding="0" cellspacing="0" style="font-family:${_o};font-size:16px;padding:0;width:100%;margin:0;">
115
115
  <table class="email-body_inner" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation" style="width:570px;margin:0 auto;padding:0;background-color:#FFFFFF;">
116
116
  <tr>
117
- <td class="content-cell" style="font-family:${na};font-size:16px;padding:15px;">
117
+ <td class="content-cell" style="font-family:${_o};font-size:16px;padding:15px;">
118
118
  <h1 style="margin:0;color:#1C1C1C;font-size:22px;font-weight:600;">${t}</h1>
119
119
  ${e}
120
120
  <p style="margin:1.5em 0 0;font-size:13px;line-height:1.625;color:#A8AAAF;text-align:left;">Powered by Supabase Lite</p>
@@ -128,25 +128,25 @@ ${s}`)}return t}ie();var Uf=[{name:"Self-hosted Logflare Configuration",link:"ht
128
128
  </tr>
129
129
  </table>
130
130
  </body>
131
- </html>`}function Tr(t){return `<p style="margin:0.4em 0 1.1875em;font-size:16px;line-height:1.625;color:#687076;">${t}</p>`}function ei(t,e){return `<div style="margin-top:30px;margin-bottom:30px;">
131
+ </html>`}function Yn(t){return `<p style="margin:0.4em 0 1.1875em;font-size:16px;line-height:1.625;color:#687076;">${t}</p>`}function xs(t,e){return `<div style="margin-top:30px;margin-bottom:30px;">
132
132
  <a href="${t}" style="color:#FFFFFF;background-color:#2B825B;border:1px solid #2B825B;padding:8px 12px;display:inline-block;font-size:14px;text-decoration:none;border-radius:4px;-webkit-text-size-adjust:none;box-sizing:border-box;box-shadow:0 0 rgba(0,0,0,0.1),0 1px 1px rgba(0,0,0,0.22),0 0 1px #DFE3E6,0 2px 5px rgba(64,68,82,0.08);">${e}</a>
133
- </div>`}function ti(){return `<p style="margin:0.4em 0 0.5em;font-size:16px;line-height:1.625;color:#687076;">Or enter this code:</p>
133
+ </div>`}function Ts(){return `<p style="margin:0.4em 0 0.5em;font-size:16px;line-height:1.625;color:#687076;">Or enter this code:</p>
134
134
  <div class="code-box" style="background-color:#f4f4f4;border:1px solid #eee;border-radius:5px;padding:24px 10px;text-align:center;">
135
135
  <span style="font-size:28px;font-weight:700;letter-spacing:6px;color:#1C1C1C;">{{ .Token }}</span>
136
- </div>`}var dR={signup:xr("Confirm your signup",`${Tr("Follow this link to confirm your account:")}
137
- ${ei("{{ .ConfirmationURL }}","Confirm your email")}
138
- ${ti()}`),recovery:xr("Reset your password",`${Tr("Follow this link to reset the password for your account:")}
139
- ${ei("{{ .ConfirmationURL }}","Reset password")}
140
- ${ti()}`),magiclink:xr("Your magic link",`${Tr("Follow this link to sign in:")}
141
- ${ei("{{ .ConfirmationURL }}","Sign in")}
142
- ${ti()}`),email_change:xr("Confirm your new email",`${Tr("Follow this link to confirm the update of your email from {{ .Email }} to {{ .NewEmail }}:")}
143
- ${ei("{{ .ConfirmationURL }}","Change email")}
144
- ${ti()}`),invite:xr("You have been invited",`${Tr("You have been invited to create a user. Follow this link to accept the invite:")}
145
- ${ei("{{ .ConfirmationURL }}","Accept the invite")}
146
- ${ti()}`),reauthentication:xr("Confirm reauthentication",`${Tr("Enter this code to continue:")}
136
+ </div>`}var nT={signup:Xn("Confirm your signup",`${Yn("Follow this link to confirm your account:")}
137
+ ${xs("{{ .ConfirmationURL }}","Confirm your email")}
138
+ ${Ts()}`),recovery:Xn("Reset your password",`${Yn("Follow this link to reset the password for your account:")}
139
+ ${xs("{{ .ConfirmationURL }}","Reset password")}
140
+ ${Ts()}`),magiclink:Xn("Your magic link",`${Yn("Follow this link to sign in:")}
141
+ ${xs("{{ .ConfirmationURL }}","Sign in")}
142
+ ${Ts()}`),email_change:Xn("Confirm your new email",`${Yn("Follow this link to confirm the update of your email from {{ .Email }} to {{ .NewEmail }}:")}
143
+ ${xs("{{ .ConfirmationURL }}","Change email")}
144
+ ${Ts()}`),invite:Xn("You have been invited",`${Yn("You have been invited to create a user. Follow this link to accept the invite:")}
145
+ ${xs("{{ .ConfirmationURL }}","Accept the invite")}
146
+ ${Ts()}`),reauthentication:Xn("Confirm reauthentication",`${Yn("Enter this code to continue:")}
147
147
  <div class="code-box" style="background-color:#f4f4f4;border:1px solid #eee;border-radius:5px;padding:24px 10px;text-align:center;">
148
148
  <span style="font-size:28px;font-weight:700;letter-spacing:6px;color:#1C1C1C;">{{ .Token }}</span>
149
- </div>`)},mR={signup:`Confirm your signup with this code: {{ .Token }}
149
+ </div>`)},rT={signup:`Confirm your signup with this code: {{ .Token }}
150
150
 
151
151
  Or follow this link: {{ .ConfirmationURL }}`,recovery:`Reset your password with this code: {{ .Token }}
152
152
 
@@ -154,7 +154,8 @@ Or follow this link: {{ .ConfirmationURL }}`,magiclink:`Your login code is: {{ .
154
154
 
155
155
  Or follow this link: {{ .ConfirmationURL }}`,email_change:`Confirm your email change with this code: {{ .Token }}
156
156
 
157
- Or follow this link: {{ .ConfirmationURL }}`,invite:"You have been invited. Accept with this link: {{ .ConfirmationURL }}",reauthentication:"Enter this code to continue: {{ .Token }}"};function xu(t){return dR[t]}function Rg(t){return mR[t]}var hR={signup:"confirmation",recovery:"recovery",magiclink:"magic_link",email_change:"email_change",invite:"invite"},ni=class{constructor(e,n={}){this.driver=e;this.config=n;}async sendConfirmation(e,n,r,s){await this.send(await this.render("signup",e,n,r,s));}async sendRecovery(e,n,r,s){await this.send(await this.render("recovery",e,n,r,s));}async sendMagicLink(e,n,r,s){await this.send(await this.render("magiclink",e,n,r,s));}async sendEmailChange(e,n,r,s){await this.send(await this.render("email_change",e,n,r,s));}async sendReauthentication(e,n,r){await this.send(await this.render("reauthentication",e,r?.tokenHash??"",n,r));}async render(e,n,r,s,i){let o=this.config.site_url??"http://localhost:3000",a=i?.redirectTo??o,l={ConfirmationURL:e==="reauthentication"?"":xg(o,r,e,a),Token:s,TokenHash:r,SiteURL:o,Email:i?.currentEmail??n,NewEmail:i?.newEmail??n,RedirectTo:a,Data:i?.data??""},c=hR[e],u=c?this.config.email?.template?.[c]:void 0,f=u?.subject??Tg[c??"reauthentication"]??"Notification",p=u?.content_path?await gR(u.content_path)??xu(e):xu(e);return {to:n,subject:ra(f,l),body:{text:ra(Rg(e),l),html:ra(p,l)},otp:s,tokenHash:r,meta:{...i,emailActionType:i?.emailActionType??e}}}async send(e){await this.driver.send({to:e.to,subject:e.subject,text:e.body.text,html:e.body.html});}};async function gR(t){try{let{readFile:e}=await import('node:fs/promises');return await e(t,"utf8")}catch(e){return console.warn(`[auth] failed to load email template "${t}":`,e),null}}function Cg(){return {version:yR(),name:"GoTrue",description:"GoTrue is a user registration and authentication API"}}function vg(t){return {external:{anonymous_users:t.enable_anonymous_sign_ins??false,apple:false,azure:false,bitbucket:false,discord:false,facebook:false,snapchat:false,figma:false,fly:false,github:false,gitlab:false,google:false,keycloak:false,kakao:false,linkedin:false,linkedin_oidc:false,notion:false,spotify:false,slack:false,slack_oidc:false,workos:false,twitch:false,twitter:false,email:t.email?.enable_signup??true,phone:false,zoom:false},disable_signup:!(t.enable_signup??true),mailer_autoconfirm:!(t.email?.enable_confirmations??false),phone_autoconfirm:false,sms_provider:"",saml_enabled:false}}function Ag(){return {keys:[]}}function kg(){return {issuer:"",jwks_uri:"/.well-known/jwks.json"}}function yR(){return [Tu(JSON.stringify({alg:"HS256",typ:"JWT"})),Tu(JSON.stringify({name:"GoTrue",implementation:"@supabase/lite"})),Tu("metadata")].join(".")}function Tu(t){if(typeof Buffer<"u")return Buffer.from(t,"utf-8").toString("base64url");let e=new TextEncoder().encode(t),n="";for(let r of e)n+=String.fromCharCode(r);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}var Ru=t=>t;var bR="00000000-0000-0000-0000-000000000000",wR=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Cu=({onError:t}={})=>Ru(async(e,n)=>{if(!e.var.userId||!e.var.sessionId){let r=await Og(e);if(r&&t)return t(r,e)}await n();}),ri=()=>Ru(async(t,e)=>{if(!t.var.userId){let n=await Og(t);if(n)return $g(t,n);if(!t.var.userId)return $g(t,br())}await e();});async function Og(t){let e=t.req.header("Authorization");if(!e)return br();if(!e.startsWith("Bearer "))return br();let n=e.slice(7);if(!n||/^\s/.test(n))return br();let r=t.get("app").config.auth?.jwt_secret;if(!r)return null;let s;try{s=await lg(n,r);}catch(c){return c instanceof K?c:br()}let i=SR(s);if(i)return i;let o=s.sub;if(s.role!=="service_role"&&!await t.var.authService.repo.findUserById(o))return Yh();let l=s.session_id;if(l){if(!await t.var.authService.repo.findSessionById(l))return Zh();t.set("sessionId",l);}return t.set("userId",o),t.set("jwt",s),null}function SR(t){let e=t.sub,n=t.role;return e==null||e===""?ou():typeof e!="string"?au():wR.test(e)?e===bR&&n==="service_role"?ou():null:au()}function $g(t,e){return t.header("X-Sb-Error-Code",e.code),t.json(e.toJSON(),e.status)}var vu=new _e().onError((t,e)=>{if(t instanceof K){e.header("X-Sb-Error-Code",t.code);for(let[n,r]of Object.entries(t.headers??{}))e.header(n,r);return e.json(t.toJSON(),t.status)}return console.error("Auth error:",t),e.json({error:"server_error",error_description:"Internal server error"},500)}).options("*",t=>{let e=t.req.header("Access-Control-Request-Method");return e&&t.header("Access-Control-Allow-Methods",e),t.header("Access-Control-Allow-Credentials","true"),t.header("Access-Control-Allow-Origin","*"),t.body(null,204)}).post("/signup",async t=>{let e=await Ot(t,{requireBody:true}),{authService:n}=t.var,r=await n.signUp(e.email,e.password,e.data);return r.session?(sa(t,r.session),t.json(r.session,200)):t.json(r.user,200)}).all("/signup",In("POST")).post("/token",async t=>{let e=t.req.query("grant_type"),n=await Ot(t,{requireBody:true}),{authService:r}=t.var;if(e==="password"){let s=await r.signInWithPassword(n.email,n.password);return sa(t,s),t.json({...s,weak_password:null},200)}if(e==="refresh_token"){let s=await r.refreshSession(n.refresh_token);return sa(t,s),t.json(s,200)}throw ag()}).all("/token",In("POST")).post("/otp",async t=>{let e=await Ot(t),{authService:n}=t.var;return await n.signInWithOtp(e.email,{shouldCreateUser:e.create_user??e.options?.shouldCreateUser}),t.json({},200)}).post("/magiclink",async t=>{let e=await Ot(t),{authService:n}=t.var;return await n.requestMagicLink(e.email,e.gotrue_meta_security),t.json({},200)}).all("/magiclink",In("POST")).post("/verify",async t=>{let e=await Ot(t),{authService:n}=t.var;ER(e);let r=await n.verifyOtp({email:e.email,token:e.token,token_hash:e.token_hash,type:e.type});return sa(t,r),t.json(r,200)}).get("/verify",async t=>{let e=t.req.query("type"),n=t.req.query("token"),{authService:r}=t.var;if(!e)throw le("Verify requires a verification type",400);if(!Pg.has(e))throw le("Invalid email verification type",400);if(!n)throw le("Verify requires a token or a token hash",400);let s=r.resolveEmailRedirect(t.req.query("redirect_to"));try{let i=await r.verifyOtp({token_hash:n,type:e}),o=new URLSearchParams({access_token:i.access_token,refresh_token:i.refresh_token,expires_in:String(i.expires_in),expires_at:String(i.expires_at),token_type:i.token_type,type:e});return t.redirect(`${s}#${o.toString()}`,303)}catch(i){let o=i instanceof K?i.code:"server_error",a=i instanceof K?i.message:"Verification failed",l=new URLSearchParams({error:"access_denied",error_code:o,error_description:a});return t.redirect(`${s}#${l.toString()}`,303)}}).post("/recover",async t=>{let e=await Ot(t),{authService:n}=t.var;return await n.recover(e.email),t.json({},200)}).post("/resend",async t=>{let e=await Ot(t),{authService:n}=t.var;return await n.resend(e.type,e.email),t.json({},200)}).get("/health",t=>t.json(Cg(),200)).all("/health",In("GET")).get("/settings",t=>t.json(vg(t.var.app.config.auth??{}),200)).all("/settings",In("GET")).get("/.well-known/jwks.json",t=>(t.header("Cache-Control","public, max-age=600"),t.json(Ag(),200))).get("/.well-known/openid-configuration",t=>(t.header("Cache-Control","public, max-age=600"),t.json(kg(),200))).all("/nonexistent",_R).use(ri()).post("/logout",async t=>{let e=await Ot(t),{authService:n}=t.var;return await n.signOut(t.get("sessionId"),t.req.query("scope")??e.scope,t.get("userId")),t.body(null,204)}).get("/user",async t=>{let{authService:e}=t.var,n=await e.getUser(t.get("userId"));return t.json(n,200)}).put("/user",async t=>{let e=await Ot(t),{authService:n}=t.var,r=await n.updateUser(t.get("userId"),{data:e.data,password:e.password,email:e.email});return t.json(r,200)}).all("/user",In("GET, PUT")).get("/reauthenticate",async t=>{let{authService:e}=t.var;return await e.reauthenticate(t.get("userId")),t.json({},200)}).all("/reauthenticate",In("GET"));function In(t){return e=>(e.header("Allow",t),e.body(null,405))}function _R(t){return t.header("Content-Type","text/plain; charset=utf-8"),t.header("X-Content-Type-Options","nosniff"),t.body("404 page not found",404)}var Pg=new Set(["signup","magiclink","recovery","email_change","reauthentication"]);function ER(t){let e=typeof t.type=="string"?t.type:"";if(!e)throw le("Verify requires a verification type",400);if(!Pg.has(e))throw le("Invalid email verification type",400);let n=typeof t.token_hash=="string"?t.token_hash:"",r=typeof t.token=="string"?t.token:"",s=typeof t.email=="string"?t.email:"";if(e==="signup"&&!n&&!(s&&r))throw le("Verify requires either a token or a token hash",400)}async function Ot(t,e={}){if(!t.req.raw.body){if(e.requireBody)throw zs("Could not parse request body as JSON: unexpected end of JSON input");return {}}let n=await t.req.text();if(n===""){if(e.requireBody)throw zs("Could not parse request body as JSON: unexpected end of JSON input");return {}}try{return JSON.parse(n)}catch{if(t.req.header("Content-Type")?.toLowerCase().split(";")[0]?.trim()==="application/x-www-form-urlencoded")throw zs("Could not parse request body as JSON: unexpected end of JSON input");let s=du(n)||"invalid character ' ' looking for beginning of value";throw zs(`Could not parse request body as JSON: ${s}`)}}function sa(t,e){e.session_id&&t.header("Sb-Auth-Session-Id",e.session_id),e.user_id&&t.header("Sb-Auth-User-Id",e.user_id),e.refresh_token&&t.header("Sb-Auth-Refresh-Token-Prefix",String(e.refresh_token).slice(0,8));}function Ng(t){let e=t.connection.dialect,n=new Qs(t.connection.kysely,e),r=t.config.auth;return new Gs(n,r,t._mailer??new ni(t.drivers.email,{site_url:r.site_url,email:r.email}))}function Ig(t){if(t==null)return {};if(typeof t=="string")try{return JSON.parse(t)}catch{return {}}return t}function Dg(t){if(t==null)return [];if(Array.isArray(t))return t;if(typeof t=="string")try{return JSON.parse(t)}catch{return []}return []}function rn(t){return typeof t=="string"?t:JSON.stringify(t??{})}var si=class{constructor(e,n){this.db=e;this.dialect=n;this.schema="storage";}schema;table(e){return this.db.withSchema(this.schema).selectFrom(e)}insertInto(e){return this.db.withSchema(this.schema).insertInto(e)}update(e){return this.db.withSchema(this.schema).updateTable(e)}deleteFrom(e){return this.db.withSchema(this.schema).deleteFrom(e)}async createBucket(e){let n=new Date().toISOString(),r={id:e.id,name:e.name,owner:e.owner??null,owner_id:e.owner_id??null,public:e.public??false,file_size_limit:e.file_size_limit??null,allowed_mime_types:this.dialect==="postgres"?e.allowed_mime_types??null:rn(e.allowed_mime_types??[]),created_at:n,updated_at:n};return await this.insertInto("buckets").values(r).execute(),await this.findBucketById(e.id)}async findBucketById(e){let n=await this.table("buckets").selectAll().where("id","=",e).executeTakeFirst();return n?this.parseBucketRow(n):null}async findBucketByName(e){let n=await this.table("buckets").selectAll().where("name","=",e).executeTakeFirst();return n?this.parseBucketRow(n):null}async listBuckets(){return (await this.table("buckets").selectAll().execute()).map(n=>this.parseBucketRow(n))}async updateBucket(e,n){let r={updated_at:new Date().toISOString()};return n.public!==void 0&&(r.public=n.public),n.file_size_limit!==void 0&&(r.file_size_limit=n.file_size_limit),n.allowed_mime_types!==void 0&&(r.allowed_mime_types=this.dialect==="postgres"?n.allowed_mime_types??null:rn(n.allowed_mime_types)),await this.update("buckets").set(r).where("id","=",e).execute(),this.findBucketById(e)}async deleteBucket(e){await this.deleteFrom("buckets").where("id","=",e).execute();}async isBucketEmpty(e){let n=await this.table("objects").select(this.db.fn.count("id").as("count")).where("bucket_id","=",e).executeTakeFirst();return Number(n?.count??0)===0}async createObject(e){let n=new Date().toISOString(),r={id:e.id,bucket_id:e.bucket_id,name:e.name,owner:e.owner??null,owner_id:e.owner_id??null,metadata:rn(e.metadata??{}),user_metadata:rn(e.user_metadata??{}),version:e.version??null,created_at:n,updated_at:n,last_accessed_at:n};return this.dialect!=="postgres"&&(r.path_tokens=rn(e.name.split("/"))),await this.insertInto("objects").values(r).execute(),await this.findObjectById(e.id)}async findObjectById(e){let n=await this.table("objects").selectAll().where("id","=",e).executeTakeFirst();return n?this.parseObjectRow(n):null}async findObjectByPath(e,n){let r=await this.table("objects").selectAll().where("bucket_id","=",e).where("name","=",n).executeTakeFirst();return r?this.parseObjectRow(r):null}async listObjects(e,n,r){let s=this.table("objects").selectAll().where("bucket_id","=",e);return n&&(s=s.where("name","like",`${n}%`)),r?.search&&(s=s.where("name","like",`%${r.search}%`)),r?.sortBy?s=s.orderBy(r.sortBy.column,r.sortBy.order):s=s.orderBy("name","asc"),r?.limit&&(s=s.limit(r.limit)),r?.offset&&(s=s.offset(r.offset)),(await s.execute()).map(o=>this.parseObjectRow(o))}async updateObject(e,n){let r={updated_at:new Date().toISOString()};return n.name!==void 0&&(r.name=n.name,this.dialect!=="postgres"&&(r.path_tokens=rn(n.name.split("/")))),n.metadata!==void 0&&(r.metadata=rn(n.metadata)),n.user_metadata!==void 0&&(r.user_metadata=rn(n.user_metadata)),n.version!==void 0&&(r.version=n.version),n.owner!==void 0&&(r.owner=n.owner),n.owner_id!==void 0&&(r.owner_id=n.owner_id),await this.update("objects").set(r).where("id","=",e).execute(),this.findObjectById(e)}async deleteObject(e){await this.deleteFrom("objects").where("id","=",e).execute();}async deleteObjectsByBucket(e){let r=(await this.table("objects").select("name").where("bucket_id","=",e).execute()).map(s=>s.name);return r.length>0&&await this.deleteFrom("objects").where("bucket_id","=",e).execute(),r}async objectExists(e,n){return !!await this.table("objects").select("id").where("bucket_id","=",e).where("name","=",n).executeTakeFirst()}async touchObject(e){await this.update("objects").set({last_accessed_at:new Date().toISOString()}).where("id","=",e).execute();}parseBucketRow(e){return {...e,owner:e.owner??"",owner_id:e.owner_id??"",public:!!e.public,allowed_mime_types:e.allowed_mime_types==null?null:Dg(e.allowed_mime_types)}}parseObjectRow(e){return {...e,metadata:Ig(e.metadata),user_metadata:Ig(e.user_metadata),path_tokens:Dg(e.path_tokens)}}};var Y=class t extends Error{constructor(n,r,s){super(s);this.status=n;this.code=r;}name="StorageError";static bucketNotFound(n){return new t(404,"Bucket not found",`Bucket not found: ${n}`)}static bucketAlreadyExists(n){return new t(409,"Duplicate","The resource already exists")}static bucketNotEmpty(n){return new t(409,"ResourceNotEmpty","The bucket you tried to delete is not empty")}static objectNotFound(n){return new t(404,"Object not found",`Object not found: ${n}`)}static invalidMimeType(n,r){return new t(415,"invalid_mime_type",`mime type ${n} is not supported. Supported: ${r.join(", ")}`)}static fileTooLarge(n){return new t(413,"Payload too large",`The object exceeded the maximum allowed size of ${n} bytes`)}static invalidKey(n){return new t(400,"Invalid key",`Invalid object key: ${n}`)}static storageNotConfigured(){return new t(500,"Storage not configured","Storage is enabled but no storage adapter has been set. Set app._storageAdapter before making storage requests.")}toJSON(){return {statusCode:String(this.status),error:this.code,message:this.message}}};var ii=class{constructor(e,n,r,s={},i){this.repo=e;this.adapter=n;this.config=r;this.options=s;this.transformationAdapter=i;}initialized=false;async init(){if(!this.initialized&&(this.initialized=true,this.options.autoCreateBuckets!==false&&this.config.buckets))for(let[e,n]of Object.entries(this.config.buckets))await this.repo.findBucketById(e)||await this.repo.createBucket({id:e,name:e,public:n.public??false,file_size_limit:n.file_size_limit?TR(n.file_size_limit):null,allowed_mime_types:n.allowed_mime_types});}async createBucket(e){if(await this.repo.findBucketById(e.id))throw Y.bucketAlreadyExists(e.id);return this.repo.createBucket(e)}async getBucket(e){let n=await this.repo.findBucketById(e);if(!n)throw Y.bucketNotFound(e);return n}async listBuckets(){return this.repo.listBuckets()}async updateBucket(e,n){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);return await this.repo.updateBucket(e,n)}async deleteBucket(e){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);if(!await this.repo.isBucketEmpty(e))throw Y.bucketNotEmpty(e);await this.repo.deleteBucket(e);}async emptyBucket(e){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);let r=await this.repo.deleteObjectsByBucket(e);r.length>0&&await this.adapter.deleteObjects(e,r);}async upload(e,n,r,s){Au(n);let i=await this.repo.findBucketById(e);if(!i)throw Y.bucketNotFound(e);let o=s?.contentType??"application/octet-stream",a=s?.cacheControl??"no-cache";if(i.allowed_mime_types&&i.allowed_mime_types.length>0&&!i.allowed_mime_types.includes(o))throw Y.invalidMimeType(o,i.allowed_mime_types);let l=i.file_size_limit??this.config.fileSizeLimit??null;if(l&&s?.contentLength&&s.contentLength>l)throw Y.fileTooLarge(l);let c=await this.repo.findObjectByPath(e,n);if(c&&!s?.upsert)throw Y.bucketAlreadyExists(n);return await this.adapter.uploadObject(e,n,void 0,r,o,a),c&&s?.upsert?await this.repo.updateObject(c.id,{metadata:s?.metadata??c.metadata,version:crypto.randomUUID()}):this.repo.createObject({id:crypto.randomUUID(),bucket_id:e,name:n,owner:s?.owner??null,owner_id:s?.owner??null,metadata:s?.metadata??{},version:crypto.randomUUID()})}async download(e,n,r){let s=await this.repo.findObjectByPath(e,n);if(!s)throw Y.objectNotFound(n);if(await this.repo.touchObject(s.id),r?.transform&&this.transformationAdapter&&!this.transformationAdapter.requiresBuffer&&this.transformationAdapter.transformFromUrl){let o=await this.adapter.privateAssetUrl(e,n,s.version??void 0),a=await this.transformationAdapter.transformFromUrl(o,r.transform);return {body:a.body,metadata:{cacheControl:"public, max-age=3600",contentLength:a.contentLength??0,size:a.contentLength??0,mimetype:a.contentType,eTag:""}}}let i=await this.adapter.getObject(e,n,s.version??void 0);if(!i.body)throw Y.objectNotFound(n);if(r?.transform&&this.transformationAdapter?.requiresBuffer){let o=await xR(i.body),a=await this.transformationAdapter.transform(o,r.transform);return {body:a.body,metadata:{...i.metadata,mimetype:a.contentType,size:a.contentLength??0,contentLength:a.contentLength??0}}}return {body:i.body,metadata:i.metadata}}async update(e,n,r,s){return this.upload(e,n,r,{...s,upsert:s?.upsert??true})}async remove(e,n){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);let s=[];for(let i of n){let o=await this.repo.findObjectByPath(e,i);o&&(await this.adapter.deleteObject(e,i,o.version??void 0),await this.repo.deleteObject(o.id),s.push(o));}return s}async list(e,n,r){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);return this.repo.listObjects(e,n,r)}async move(e,n,r){Au(r);let s=await this.repo.findObjectByPath(e,n);if(!s)throw Y.objectNotFound(n);await this.adapter.copyObject(e,n,s.version??void 0,r,void 0),await this.adapter.deleteObject(e,n,s.version??void 0),await this.repo.updateObject(s.id,{name:r,version:crypto.randomUUID()});}async copy(e,n,r){Au(r);let s=await this.repo.findObjectByPath(e,n);if(!s)throw Y.objectNotFound(n);return await this.adapter.copyObject(e,n,s.version??void 0,r,void 0),await this.repo.createObject({id:crypto.randomUUID(),bucket_id:e,name:r,owner:s.owner,owner_id:s.owner_id,metadata:s.metadata,version:crypto.randomUUID()}),{key:r}}async info(e,n){let r=await this.repo.findObjectByPath(e,n);if(!r)throw Y.objectNotFound(n);let s=await this.adapter.headObject(e,n,r.version??void 0);return {...r,httpMetadata:s}}async exists(e,n){return this.repo.objectExists(e,n)}async createSignedUrl(e,n,r){if(!await this.repo.findObjectByPath(e,n))throw Y.objectNotFound(n);let i=await this.signStorageToken({sub:n,bucket:e,intent:"download"},r);return {signedUrl:`/storage/v1/object/sign/${e}/${n}?token=${i}`}}async createSignedUrls(e,n,r){let s=[];for(let i of n)try{let{signedUrl:o}=await this.createSignedUrl(e,i,r);s.push({path:i,signedUrl:o,error:null});}catch(o){s.push({path:i,signedUrl:"",error:o.message});}return s}async createSignedUploadUrl(e,n){if(!await this.repo.findBucketById(e))throw Y.bucketNotFound(e);let s=await this.signStorageToken({sub:n,bucket:e,intent:"upload"},7200);return {signedUrl:`/storage/v1/object/upload/sign/${e}/${n}?token=${s}`,token:s,path:n}}async verifySignedUrl(e){let n=new TextEncoder().encode(this.config.jwtSecret),{payload:r}=await vn(e,n,{algorithms:["HS256"]});return {bucket:r.bucket,path:r.sub,intent:r.intent}}async signStorageToken(e,n){let r=new TextEncoder().encode(this.config.jwtSecret),s=Math.floor(Date.now()/1e3);return new An({...e,iat:s}).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt(s).setExpirationTime(s+n).sign(r)}};async function xR(t){if(t instanceof Uint8Array||Buffer.isBuffer(t))return t;if(t instanceof Blob)return new Uint8Array(await t.arrayBuffer());let e=[],n=t.getReader();for(;;){let{done:r,value:s}=await n.read();if(r)break;e.push(s);}return Buffer.concat(e)}function Au(t){if(!t||t.includes("..")||t.startsWith("/"))throw Y.invalidKey(t)}function TR(t){let e=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|KiB|MB|MiB|GB|GiB)$/i);if(!e)return 0;let n=Number.parseFloat(e[1]),r=e[2].toUpperCase();return Math.floor(n*({B:1,KB:1e3,KIB:1024,MB:1e6,MIB:1048576,GB:1e9,GIB:1073741824}[r]??1))}var RR=/^[\w!#$%&'*.^`|~+-]+$/,CR=/^[ !#-:<-[\]-~]*$/,ku=(t,e)=>{let n=t.trim().split(";"),r={};for(let s of n){s=s.trim();let i=s.indexOf("=");if(i===-1)continue;let o=s.substring(0,i).trim();if(!RR.test(o))continue;let a=s.substring(i+1).trim();if(a.startsWith('"')&&a.endsWith('"')&&(a=a.slice(1,-1)),CR.test(a)&&(r[o]=a.indexOf("%")!==-1?Kn(a,Gr):a,e));}return r};var jg=(t,e,n)=>{let r=t.req.raw.headers.get("Cookie");return r?ku(r):{}};var Lg=(t,e)=>new Response(t,{headers:{"Content-Type":e}}).formData();var vR=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,AR=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,kR=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,$u=(t,e)=>async(n,r)=>{let s={},i=n.req.header("Content-Type");switch(t){case "json":if(!i||!vR.test(i))break;try{s=await n.req.json();}catch{let a="Malformed JSON in request body";throw new Bi(400,{message:a})}break;case "form":{if(!i||!(AR.test(i)||kR.test(i)))break;let a;if(n.req.bodyCache.formData)a=await n.req.bodyCache.formData;else try{let c=await n.req.arrayBuffer();a=await Lg(c,i),n.req.bodyCache.formData=a;}catch(c){let u="Malformed FormData request.";throw u+=c instanceof Error?` ${c.message}`:` ${String(c)}`,new Bi(400,{message:u})}let l={};a.forEach((c,u)=>{u.endsWith("[]")?(l[u]??=[]).push(c):Array.isArray(l[u])?l[u].push(c):u in l?l[u]=[l[u],c]:l[u]=c;}),s=l;break}case "query":s=Object.fromEntries(Object.entries(n.req.queries()).map(([a,l])=>l.length===1?[a,l[0]]:[a,l]));break;case "param":s=n.req.param();break;case "header":s=n.req.header();break;case "cookie":s=jg(n);break}let o=await e(s,n);return o instanceof Response?o:(n.req.addValidatedData(t,o),await r())};var $R=Symbol.for("jsonv"),OR=(t,e)=>Object.assign(t,{[$R]:e}),Pt=(t,e,n,r)=>{let s=$u(t,async(i,o)=>{let a=e.coerce(i,{dropUnknown:n?.dropUnknown}),l=e.validate(a);if(!l.valid)return o.json({...l,schema:e},400);return a});return OR(s,{type:"parameters",skip:n?.skipOpenAPI,value:{target:t,schema:e}})};ie();var PR=b.object({id:b.string(),name:b.string(),public:b.boolean({default:false}).optional(),file_size_limit:b.number().optional(),allowed_mime_types:b.array(b.string()).optional()}),NR=b.object({public:b.boolean().optional(),file_size_limit:b.number().optional(),allowed_mime_types:b.array(b.string()).optional()}),IR=b.object({prefix:b.string().optional(),limit:b.number().optional(),offset:b.number().optional(),sortBy:b.object({column:b.string(),order:b.string()}).optional(),search:b.string().optional()}),Fg=b.object({bucketId:b.string(),sourceKey:b.string(),destinationKey:b.string()}),DR=b.object({expiresIn:b.number()}),jR=b.object({expiresIn:b.number(),paths:b.array(b.string())}),LR=b.object({prefixes:b.array(b.string())}),FR=new _e().get("/object/public/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/public/${e}/`),{storageService:r}=t.var;if(!(await r.getBucket(e)).public)return t.json({error:"Bucket is not public"},400);let i=Ou(t.req.query()),o=await r.download(e,n,{transform:i??void 0});return new Response(o.body,{headers:Pu(o.metadata)})}).get("/object/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/sign/${e}/`),r=t.req.query("token"),{storageService:s}=t.var;if(!r)return t.json({error:"Missing token"},400);let i=await s.verifySignedUrl(r);if(i.bucket!==e||i.path!==n)return t.json({error:"Invalid token"},403);let o=Ou(t.req.query()),a=await s.download(e,n,{transform:o??void 0});return new Response(a.body,{headers:Pu(a.metadata)})}).put("/object/upload/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/upload/sign/${e}/`),r=t.req.query("token"),{storageService:s}=t.var;if(!r)return t.json({error:"Missing token"},400);let i=await s.verifySignedUrl(r);if(i.bucket!==e||i.path!==n||i.intent!=="upload")return t.json({error:"Invalid token"},403);let o=t.req.header("content-type")??"application/octet-stream",a=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0,l=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),c=await s.upload(e,n,l,{contentType:o,contentLength:a,upsert:true});return t.json({Key:c.name},200)}),MR=new _e().use(ri()).post("/bucket",Pt("json",PR),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var,r=await n.createBucket({id:e.id,name:e.name??e.id,public:e.public,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types});return t.json({name:r.name},200)}).get("/bucket",async t=>{let{storageService:e}=t.var,n=await e.listBuckets();return t.json(n,200)}).get("/bucket/:id",async t=>{let{storageService:e}=t.var,n=await e.getBucket(t.req.param("id"));return t.json(n,200)}).put("/bucket/:id",Pt("json",NR),async t=>{let{storageService:e}=t.var;return await e.updateBucket(t.req.param("id"),t.req.valid("json")),t.json({message:"Successfully updated"},200)}).delete("/bucket/:id",async t=>{let{storageService:e}=t.var;return await e.deleteBucket(t.req.param("id")),t.json({message:"Successfully deleted"},200)}).post("/bucket/:id/empty",async t=>{let{storageService:e}=t.var;return await e.emptyBucket(t.req.param("id")),t.json({message:"Empty bucket has been queued. Completion may take up to an hour."},200)}).post("/object/list/:bucketId",Pt("json",IR),async t=>{let e=t.req.param("bucketId"),n=t.req.valid("json"),{storageService:r}=t.var,s=await r.list(e,n.prefix,{limit:n.limit,offset:n.offset,sortBy:n.sortBy,search:n.search});return t.json(s,200)}).post("/object/move",Pt("json",Fg),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var;return await n.move(e.bucketId,e.sourceKey,e.destinationKey),t.json({message:"Successfully moved"},200)}).post("/object/copy",Pt("json",Fg),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var,r=await n.copy(e.bucketId,e.sourceKey,e.destinationKey);return t.json({key:r.key},200)}).get("/object/info/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/info/${e}/`),{storageService:r}=t.var,s=await r.info(e,n);return t.json(s,200)}).post("/object/sign/:bucketId/*",Pt("json",DR),async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/sign/${e}/`),{expiresIn:r}=t.req.valid("json"),{storageService:s}=t.var,i=await s.createSignedUrl(e,n,r);return t.json(i,200)}).post("/object/sign/:bucketId",Pt("json",jR),async t=>{let e=t.req.param("bucketId"),{expiresIn:n,paths:r}=t.req.valid("json"),{storageService:s}=t.var,i=await s.createSignedUrls(e,r,n);return t.json(i,200)}).post("/object/upload/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/upload/sign/${e}/`),{storageService:r}=t.var,s=await r.createSignedUploadUrl(e,n);return t.json(s,200)}).delete("/object/:bucketId",Pt("json",LR),async t=>{let e=t.req.param("bucketId"),{prefixes:n}=t.req.valid("json"),{storageService:r}=t.var,s=await r.remove(e,n);return t.json(s,200)}).post("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=t.req.header("content-type")??"application/octet-stream",i=t.req.header("cache-control")??"no-cache",o=t.req.header("x-upsert")==="true",a,l,c;if(s.startsWith("multipart/form-data")){let p=(await t.req.formData()).get("file");if(!p)throw new Y(400,"InvalidRequest","Missing file in multipart upload");let d=new Uint8Array(await p.arrayBuffer());a=d,l=p.type||"application/octet-stream",c=d.length;}else a=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),l=s,c=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0;let u=await r.upload(e,n,a,{contentType:l,cacheControl:i,contentLength:c,upsert:o,owner:t.get("userId")??null});return t.json({Key:`${e}/${u.name}`,Id:u.id},200)}).put("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=t.req.header("content-type")??"application/octet-stream",i=t.req.header("cache-control")??"no-cache",o=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0,a=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),l=await r.update(e,n,a,{contentType:s,cacheControl:i,contentLength:o,owner:t.get("userId")??null});return t.json({Key:`${e}/${l.name}`,Id:l.id},200)}).get("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=Ou(t.req.query()),i=await r.download(e,n,{transform:s??void 0});return new Response(i.body,{headers:Pu(i.metadata)})}).on("HEAD","/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=mt(t.req.path,`/object/${e}/`),{storageService:r}=t.var;return await r.exists(e,n)?t.body(null,200):t.body(null,404)}),Nu=new _e().onError((t,e)=>t instanceof Y?e.json(t.toJSON(),400):(console.error("Storage error:",t),e.json({error:"server_error",message:"Internal server error"},500))).route("/",FR).route("/",MR);function mt(t,e){let n=t.replace(/^\/storage\/v1/,""),r=n.indexOf(e);return r===-1?n.split("/").slice(3).join("/"):n.slice(r+e.length)}function Ou(t){let{width:e,height:n,resize:r,format:s,quality:i}=t;return !e&&!n&&!r&&!s&&!i?null:{width:e?Number.parseInt(e,10):void 0,height:n?Number.parseInt(n,10):void 0,resize:r,format:s,quality:i?Number.parseInt(i,10):void 0}}function Pu(t){let e={"Content-Type":t.mimetype,"Cache-Control":t.cacheControl,ETag:t.eTag};return t.contentLength&&(e["Content-Length"]=String(t.contentLength)),t.lastModified&&(e["Last-Modified"]=t.lastModified.toUTCString()),t.contentRange&&(e["Content-Range"]=t.contentRange),e}sr();var Iu=`-- supabase/storage core schema (Postgres)
157
+ Or follow this link: {{ .ConfirmationURL }}`,invite:"You have been invited. Accept with this link: {{ .ConfirmationURL }}",reauthentication:"Enter this code to continue: {{ .Token }}"};function Oc(t){return nT[t]}function Lh(t){return rT[t]}var sT={signup:"confirmation",recovery:"recovery",magiclink:"magic_link",email_change:"email_change",invite:"invite"},Rs=class{constructor(e,n={}){this.driver=e;this.config=n;}async sendConfirmation(e,n,r,s){await this.send(await this.render("signup",e,n,r,s));}async sendRecovery(e,n,r,s){await this.send(await this.render("recovery",e,n,r,s));}async sendMagicLink(e,n,r,s){await this.send(await this.render("magiclink",e,n,r,s));}async sendEmailChange(e,n,r,s){await this.send(await this.render("email_change",e,n,r,s));}async sendReauthentication(e,n,r){await this.send(await this.render("reauthentication",e,r?.tokenHash??"",n,r));}async render(e,n,r,s,i){let o=this.config.site_url??"http://localhost:3000",a=i?.redirectTo??o,l={ConfirmationURL:e==="reauthentication"?"":Dh(o,r,e,a),Token:s,TokenHash:r,SiteURL:o,Email:i?.currentEmail??n,NewEmail:i?.newEmail??n,RedirectTo:a,Data:i?.data??""},c=sT[e],f=c?this.config.email?.template?.[c]:void 0,u=f?.subject??jh[c??"reauthentication"]??"Notification",d=f?.content_path?await iT(f.content_path)??Oc(e):Oc(e);return {to:n,subject:Eo(u,l),body:{text:Eo(Lh(e),l),html:Eo(d,l)},otp:s,tokenHash:r,meta:{...i,emailActionType:i?.emailActionType??e}}}async send(e){await this.driver.send({to:e.to,subject:e.subject,text:e.body.text,html:e.body.html});}};async function iT(t){try{let{readFile:e}=await import('node:fs/promises');return await e(t,"utf8")}catch(e){return console.warn(`[auth] failed to load email template "${t}":`,e),null}}function Fh(){return {version:oT(),name:"GoTrue",description:"GoTrue is a user registration and authentication API"}}function Uh(t){let e={};for(let n of _c)e[n]=(t.external?.[n]?.enabled??false)&&wh.has(n);for(let n of Ec)e[n]=false;return {external:{anonymous_users:t.enable_anonymous_sign_ins??false,...e,email:t.email?.enable_signup??true,phone:false},disable_signup:!(t.enable_signup??true),mailer_autoconfirm:!(t.email?.enable_confirmations??false),phone_autoconfirm:false,sms_provider:"",saml_enabled:false}}function Mh(){return {keys:[]}}function Bh(){return {issuer:"",jwks_uri:"/.well-known/jwks.json"}}function oT(){return [Pc(JSON.stringify({alg:"HS256",typ:"JWT"})),Pc(JSON.stringify({name:"GoTrue",implementation:"@supabase/lite"})),Pc("metadata")].join(".")}function Pc(t){if(typeof Buffer<"u")return Buffer.from(t,"utf-8").toString("base64url");let e=new TextEncoder().encode(t),n="";for(let r of e)n+=String.fromCharCode(r);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}var Cs=t=>t;var aT="00000000-0000-0000-0000-000000000000",lT=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,$c=({onError:t}={})=>Cs(async(e,n)=>{if(!e.var.userId||!e.var.sessionId){let r=await Hh(e);if(r&&t)return t(r,e)}await n();}),ks=(t={})=>Cs(async(e,n)=>{if(t.acceptSecretApiKey&&e.var.apiKeyType==="secret"&&e.var.ignoreAuthorization)return n();if(!e.var.userId){let r=await Hh(e);if(r)return qh(e,r);if(!e.var.userId)return qh(e,mn())}await n();});async function Hh(t){if(t.var.ignoreAuthorization)return mn();let e=t.req.header("Authorization");if(!e)return mn();if(!e.startsWith("Bearer "))return mn();let n=e.slice(7);if(!n||/^\s/.test(n))return mn();let r=t.get("app").config.auth?.jwt_secret;if(!r)return null;let s;try{s=await th(n,r);}catch(c){return c instanceof $?c:mn()}let i=cT(s);if(i)return i;let o=s.sub;if(s.role!=="service_role"&&!await t.var.authService.repo.findUserById(o))return Lm();let l=s.session_id;if(l){if(!await t.var.authService.repo.findSessionById(l))return Fm();t.set("sessionId",l);}return t.set("userId",o),t.set("jwt",s),null}function cT(t){let e=t.sub,n=t.role;return e==null||e===""?ic():typeof e!="string"?oc():lT.test(e)?e===aT&&n==="service_role"?ic():null:oc()}function qh(t,e){return t.header("X-Sb-Error-Code",e.code),t.json(e.toJSON(),e.status)}var Nc=new _e().onError((t,e)=>{if(t instanceof $){e.header("X-Sb-Error-Code",t.code);for(let[n,r]of Object.entries(t.headers??{}))e.header(n,r);return e.json(t.toJSON(),t.status)}return console.error("Auth error:",t),e.json({error:"server_error",error_description:"Internal server error"},500)}).options("*",t=>{let e=t.req.header("Access-Control-Request-Method");return e&&t.header("Access-Control-Allow-Methods",e),t.header("Access-Control-Allow-Credentials","true"),t.header("Access-Control-Allow-Origin","*"),t.body(null,204)}).post("/signup",async t=>{let e=await xt(t,{requireBody:true}),{authService:n}=t.var,r=await n.signUp(e.email,e.password,e.data);return r.session?(vs(t,r.session),t.json(r.session,200)):t.json(r.user,200)}).all("/signup",yn("POST")).post("/token",async t=>{let e=t.req.query("grant_type"),n=await xt(t,{requireBody:true}),{authService:r}=t.var;if(e==="password"){let s=await r.signInWithPassword(n.email,n.password);return vs(t,s),t.json({...s,weak_password:null},200)}if(e==="refresh_token"){let s=await r.refreshSession(n.refresh_token);return vs(t,s),t.json(s,200)}if(e==="pkce"){let s=await r.exchangePkceCode(n.auth_code,n.code_verifier);return vs(t,s),t.json(s,200)}throw Jm()}).all("/token",yn("POST")).post("/otp",async t=>{let e=await xt(t),{authService:n}=t.var;return await n.signInWithOtp(e.email,{shouldCreateUser:e.create_user??e.options?.shouldCreateUser}),t.json({},200)}).post("/magiclink",async t=>{let e=await xt(t),{authService:n}=t.var;return await n.requestMagicLink(e.email,e.gotrue_meta_security),t.json({},200)}).all("/magiclink",yn("POST")).post("/verify",async t=>{let e=await xt(t),{authService:n}=t.var;mT(e);let r=await n.verifyOtp({email:e.email,token:e.token,token_hash:e.token_hash,type:e.type});return vs(t,r),t.json(r,200)}).get("/verify",async t=>{let e=t.req.query("type"),n=t.req.query("token"),{authService:r}=t.var;if(!e)throw H("Verify requires a verification type",400);if(!Vh.has(e))throw H("Invalid email verification type",400);if(!n)throw H("Verify requires a token or a token hash",400);let s=r.resolveEmailRedirect(t.req.query("redirect_to"));try{let i=await r.verifyOtp({token_hash:n,type:e}),o=new URLSearchParams({access_token:i.access_token,refresh_token:i.refresh_token,expires_in:String(i.expires_in),expires_at:String(i.expires_at),token_type:i.token_type,type:e});return t.redirect(`${s}#${o.toString()}`,303)}catch(i){let o=i instanceof $?i.code:"server_error",a=i instanceof $?i.message:"Verification failed",l=new URLSearchParams({error:"access_denied",error_code:o,error_description:a});return t.redirect(`${s}#${l.toString()}`,303)}}).post("/recover",async t=>{let e=await xt(t),{authService:n}=t.var;return await n.recover(e.email),t.json({},200)}).post("/resend",async t=>{let e=await xt(t),{authService:n}=t.var;return await n.resend(e.type,e.email),t.json({},200)}).get("/health",t=>t.json(Fh(),200)).all("/health",yn("GET")).get("/settings",t=>t.json(Uh(t.var.app.config.auth??{}),200)).all("/settings",yn("GET")).get("/.well-known/jwks.json",t=>(t.header("Cache-Control","public, max-age=600"),t.json(Mh(),200))).get("/.well-known/openid-configuration",t=>(t.header("Cache-Control","public, max-age=600"),t.json(Bh(),200))).get("/authorize",async t=>{let{authService:e}=t.var,n=Object.fromEntries(new URL(t.req.url).searchParams),r=await e.getExternalProviderRedirectUrl(n,{refererHeader:t.req.header("Referer"),defaultRedirectUri:Gh(t.req.url,t.var.app.config.api?.external_url)});return t.header("Content-Type","text/html; charset=utf-8"),t.header("Location",r),t.body(zh(r,"Found"),302)}).get("/callback",Jh).post("/callback",Jh).all("/nonexistent",uT).use(ks()).post("/logout",async t=>{let e=await xt(t),{authService:n}=t.var;return await n.signOut(t.get("sessionId"),t.req.query("scope")??e.scope,t.get("userId")),t.body(null,204)}).get("/user",async t=>{let{authService:e}=t.var,n=await e.getUser(t.get("userId"));return t.json(n,200)}).put("/user",async t=>{let e=await xt(t),{authService:n}=t.var,r=await n.updateUser(t.get("userId"),{data:e.data,password:e.password,email:e.email});return t.json(r,200)}).all("/user",yn("GET, PUT")).get("/reauthenticate",async t=>{let{authService:e}=t.var;return await e.reauthenticate(t.get("userId")),t.json({},200)}).all("/reauthenticate",yn("GET"));function yn(t){return e=>(e.header("Allow",t),e.body(null,405))}function uT(t){return t.header("Content-Type","text/plain; charset=utf-8"),t.header("X-Content-Type-Options","nosniff"),t.body("404 page not found",404)}function Gh(t,e){return `${(e||new URL(t).origin).replace(/\/+$/,"")}/auth/v1/callback`}function zh(t,e){return `<a href="${fT(t)}">${e}</a>.
158
+ `}function fT(t){return t.replace(/&/g,"&amp;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&#34;")}var dT={400:"invalid_request",401:"unauthorized_client",403:"access_denied",500:"server_error",503:"temporarily_unavailable"},pT=new Set(["signup_disabled","user_banned","provider_email_needs_verification"]);function Wh(t){return t instanceof $?{error:pT.has(t.code)?"access_denied":dT[t.status]??"server_error",description:t.message,code:t.code}:{error:"server_error",description:"Unexpected failure, please check server logs for more information"}}function Kh(t,e){let n=new URL(t);n.searchParams.set("error",e.error),n.searchParams.set("error_description",e.description),e.code&&n.searchParams.set("error_code",e.code);let r=new URLSearchParams;return r.set("error",e.error),r.set("error_description",e.description),e.code&&r.set("error_code",e.code),r.set("sb",""),n.hash=r.toString(),n.toString()}function Ic(t,e,n){return t.header("Location",e),n?(t.header("Content-Type","text/html; charset=utf-8"),t.body(zh(e,"Found"),302)):t.body(null,302)}async function Jh(t){let{authService:e}=t.var,n=t.req.method==="GET",r;if(n)r=Object.fromEntries(new URL(t.req.url).searchParams);else {let o=t.req.header("Content-Type")?.toLowerCase().split(";")[0]?.trim();if(o==="application/x-www-form-urlencoded"||o==="multipart/form-data"){let a=await t.req.parseBody();r=Object.fromEntries(Object.entries(a).map(([l,c])=>[l,typeof c=="string"?c:void 0]));}else r={};}let s;try{s=await e.loadOAuthFlowState(r.state);}catch(o){let a=t.var.app.config.auth?.site_url??"http://localhost:3000",l=new URL(a),c=Wh(o);l.searchParams.set("error",c.error),l.searchParams.set("error_description",c.description),c.code&&l.searchParams.set("error_code",c.code),t.header("Location",l.toString()),t.header("Content-Type","text/plain; charset=utf-8");let f=o instanceof $?JSON.stringify(o.toJSON()):JSON.stringify(c);return t.body(f,303)}let i=e.resolveOAuthRedirectTarget(s);if(r.error){let o=Kh(i,{error:r.error,description:r.error_description??""});return Ic(t,o,n)}try{let o=Gh(t.req.url,t.var.app.config.api?.external_url),a=await e.handleExternalProviderCallback(s,r,{defaultRedirectUri:o});return Ic(t,a.redirectUrl,n)}catch(o){(!(o instanceof $)||o.status>=500)&&console.error("Auth error:",o);let a=Wh(o),l=Kh(i,a);return Ic(t,l,n)}}var Vh=new Set(["signup","magiclink","recovery","email_change","reauthentication"]);function mT(t){let e=typeof t.type=="string"?t.type:"";if(!e)throw H("Verify requires a verification type",400);if(!Vh.has(e))throw H("Invalid email verification type",400);let n=typeof t.token_hash=="string"?t.token_hash:"",r=typeof t.token=="string"?t.token:"",s=typeof t.email=="string"?t.email:"";if(e==="signup"&&!n&&!(s&&r))throw H("Verify requires either a token or a token hash",400)}async function xt(t,e={}){if(!t.req.raw.body){if(e.requireBody)throw ms("Could not parse request body as JSON: unexpected end of JSON input");return {}}let n=await t.req.text();if(n===""){if(e.requireBody)throw ms("Could not parse request body as JSON: unexpected end of JSON input");return {}}try{return JSON.parse(n)}catch{if(t.req.header("Content-Type")?.toLowerCase().split(";")[0]?.trim()==="application/x-www-form-urlencoded")throw ms("Could not parse request body as JSON: unexpected end of JSON input");let s=dc(n)||"invalid character ' ' looking for beginning of value";throw ms(`Could not parse request body as JSON: ${s}`)}}function vs(t,e){e.session_id&&t.header("Sb-Auth-Session-Id",e.session_id),e.user_id&&t.header("Sb-Auth-User-Id",e.user_id),e.refresh_token&&t.header("Sb-Auth-Refresh-Token-Prefix",String(e.refresh_token).slice(0,8));}function Qh(t){let e=t.connection.dialect,n=new ws(t.connection.kysely,e,s=>t.connection.runInTransaction(s)),r=t.config.auth;return new ys(n,r,t._mailer??new Rs(t.drivers.email,{site_url:r.site_url,email:r.email}))}function Xh(t){if(t==null)return {};if(typeof t=="string")try{return JSON.parse(t)}catch{return {}}return t}function Yh(t){if(t==null)return [];if(Array.isArray(t))return t;if(typeof t=="string")try{return JSON.parse(t)}catch{return []}return []}function Wt(t){return typeof t=="string"?t:JSON.stringify(t??{})}var As=class{constructor(e,n){this.db=e;this.dialect=n;this.schema="storage";}schema;table(e){return this.db.withSchema(this.schema).selectFrom(e)}insertInto(e){return this.db.withSchema(this.schema).insertInto(e)}update(e){return this.db.withSchema(this.schema).updateTable(e)}deleteFrom(e){return this.db.withSchema(this.schema).deleteFrom(e)}async createBucket(e){let n=new Date().toISOString(),r={id:e.id,name:e.name,owner:e.owner??null,owner_id:e.owner_id??null,public:e.public??false,file_size_limit:e.file_size_limit??null,allowed_mime_types:this.dialect==="postgres"?e.allowed_mime_types??null:Wt(e.allowed_mime_types??[]),created_at:n,updated_at:n};return await this.insertInto("buckets").values(r).execute(),await this.findBucketById(e.id)}async findBucketById(e){let n=await this.table("buckets").selectAll().where("id","=",e).executeTakeFirst();return n?this.parseBucketRow(n):null}async findBucketByName(e){let n=await this.table("buckets").selectAll().where("name","=",e).executeTakeFirst();return n?this.parseBucketRow(n):null}async listBuckets(){return (await this.table("buckets").selectAll().execute()).map(n=>this.parseBucketRow(n))}async updateBucket(e,n){let r={updated_at:new Date().toISOString()};return n.public!==void 0&&(r.public=n.public),n.file_size_limit!==void 0&&(r.file_size_limit=n.file_size_limit),n.allowed_mime_types!==void 0&&(r.allowed_mime_types=this.dialect==="postgres"?n.allowed_mime_types??null:Wt(n.allowed_mime_types)),await this.update("buckets").set(r).where("id","=",e).execute(),this.findBucketById(e)}async deleteBucket(e){await this.deleteFrom("buckets").where("id","=",e).execute();}async isBucketEmpty(e){let n=await this.table("objects").select(this.db.fn.count("id").as("count")).where("bucket_id","=",e).executeTakeFirst();return Number(n?.count??0)===0}async createObject(e){let n=new Date().toISOString(),r={id:e.id,bucket_id:e.bucket_id,name:e.name,owner:e.owner??null,owner_id:e.owner_id??null,metadata:Wt(e.metadata??{}),user_metadata:Wt(e.user_metadata??{}),version:e.version??null,created_at:n,updated_at:n,last_accessed_at:n};return this.dialect!=="postgres"&&(r.path_tokens=Wt(e.name.split("/"))),await this.insertInto("objects").values(r).execute(),await this.findObjectById(e.id)}async findObjectById(e){let n=await this.table("objects").selectAll().where("id","=",e).executeTakeFirst();return n?this.parseObjectRow(n):null}async findObjectByPath(e,n){let r=await this.table("objects").selectAll().where("bucket_id","=",e).where("name","=",n).executeTakeFirst();return r?this.parseObjectRow(r):null}async listObjects(e,n,r){let s=this.table("objects").selectAll().where("bucket_id","=",e);return n&&(s=s.where("name","like",`${n}%`)),r?.search&&(s=s.where("name","like",`%${r.search}%`)),r?.sortBy?s=s.orderBy(r.sortBy.column,r.sortBy.order):s=s.orderBy("name","asc"),r?.limit&&(s=s.limit(r.limit)),r?.offset&&(s=s.offset(r.offset)),(await s.execute()).map(o=>this.parseObjectRow(o))}async updateObject(e,n){let r={updated_at:new Date().toISOString()};return n.name!==void 0&&(r.name=n.name,this.dialect!=="postgres"&&(r.path_tokens=Wt(n.name.split("/")))),n.metadata!==void 0&&(r.metadata=Wt(n.metadata)),n.user_metadata!==void 0&&(r.user_metadata=Wt(n.user_metadata)),n.version!==void 0&&(r.version=n.version),n.owner!==void 0&&(r.owner=n.owner),n.owner_id!==void 0&&(r.owner_id=n.owner_id),await this.update("objects").set(r).where("id","=",e).execute(),this.findObjectById(e)}async deleteObject(e){await this.deleteFrom("objects").where("id","=",e).execute();}async deleteObjectsByBucket(e){let r=(await this.table("objects").select("name").where("bucket_id","=",e).execute()).map(s=>s.name);return r.length>0&&await this.deleteFrom("objects").where("bucket_id","=",e).execute(),r}async objectExists(e,n){return !!await this.table("objects").select("id").where("bucket_id","=",e).where("name","=",n).executeTakeFirst()}async touchObject(e){await this.update("objects").set({last_accessed_at:new Date().toISOString()}).where("id","=",e).execute();}parseBucketRow(e){return {...e,owner:e.owner??"",owner_id:e.owner_id??"",public:!!e.public,allowed_mime_types:e.allowed_mime_types==null?null:Yh(e.allowed_mime_types)}}parseObjectRow(e){return {...e,metadata:Xh(e.metadata),user_metadata:Xh(e.user_metadata),path_tokens:Yh(e.path_tokens)}}};var Z=class t extends Error{constructor(n,r,s){super(s);this.status=n;this.code=r;}name="StorageError";static bucketNotFound(n){return new t(404,"Bucket not found",`Bucket not found: ${n}`)}static bucketAlreadyExists(n){return new t(409,"Duplicate","The resource already exists")}static bucketNotEmpty(n){return new t(409,"ResourceNotEmpty","The bucket you tried to delete is not empty")}static objectNotFound(n){return new t(404,"Object not found",`Object not found: ${n}`)}static invalidMimeType(n,r){return new t(415,"invalid_mime_type",`mime type ${n} is not supported. Supported: ${r.join(", ")}`)}static fileTooLarge(n){return new t(413,"Payload too large",`The object exceeded the maximum allowed size of ${n} bytes`)}static invalidKey(n){return new t(400,"Invalid key",`Invalid object key: ${n}`)}static storageNotConfigured(){return new t(500,"Storage not configured","Storage is enabled but no storage adapter has been set. Set app._storageAdapter before making storage requests.")}toJSON(){return {statusCode:String(this.status),error:this.code,message:this.message}}};var Os=class{constructor(e,n,r,s={},i){this.repo=e;this.adapter=n;this.config=r;this.options=s;this.transformationAdapter=i;}initialized=false;async init(){if(!this.initialized&&(this.initialized=true,this.options.autoCreateBuckets!==false&&this.config.buckets))for(let[e,n]of Object.entries(this.config.buckets))await this.repo.findBucketById(e)||await this.repo.createBucket({id:e,name:e,public:n.public??false,file_size_limit:n.file_size_limit?bT(n.file_size_limit):null,allowed_mime_types:n.allowed_mime_types});}async createBucket(e){if(await this.repo.findBucketById(e.id))throw Z.bucketAlreadyExists(e.id);return this.repo.createBucket(e)}async getBucket(e){let n=await this.repo.findBucketById(e);if(!n)throw Z.bucketNotFound(e);return n}async listBuckets(){return this.repo.listBuckets()}async updateBucket(e,n){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);return await this.repo.updateBucket(e,n)}async deleteBucket(e){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);if(!await this.repo.isBucketEmpty(e))throw Z.bucketNotEmpty(e);await this.repo.deleteBucket(e);}async emptyBucket(e){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);let r=await this.repo.deleteObjectsByBucket(e);r.length>0&&await this.adapter.deleteObjects(e,r);}async upload(e,n,r,s){Dc(n);let i=await this.repo.findBucketById(e);if(!i)throw Z.bucketNotFound(e);let o=s?.contentType??"application/octet-stream",a=s?.cacheControl??"no-cache";if(i.allowed_mime_types&&i.allowed_mime_types.length>0&&!i.allowed_mime_types.includes(o))throw Z.invalidMimeType(o,i.allowed_mime_types);let l=i.file_size_limit??this.config.fileSizeLimit??null;if(l&&s?.contentLength&&s.contentLength>l)throw Z.fileTooLarge(l);let c=await this.repo.findObjectByPath(e,n);if(c&&!s?.upsert)throw Z.bucketAlreadyExists(n);return await this.adapter.uploadObject(e,n,void 0,r,o,a),c&&s?.upsert?await this.repo.updateObject(c.id,{metadata:s?.metadata??c.metadata,version:crypto.randomUUID()}):this.repo.createObject({id:crypto.randomUUID(),bucket_id:e,name:n,owner:s?.owner??null,owner_id:s?.owner??null,metadata:s?.metadata??{},version:crypto.randomUUID()})}async download(e,n,r){let s=await this.repo.findObjectByPath(e,n);if(!s)throw Z.objectNotFound(n);if(await this.repo.touchObject(s.id),r?.transform&&this.transformationAdapter&&!this.transformationAdapter.requiresBuffer&&this.transformationAdapter.transformFromUrl){let o=await this.adapter.privateAssetUrl(e,n,s.version??void 0),a=await this.transformationAdapter.transformFromUrl(o,r.transform);return {body:a.body,metadata:{cacheControl:"public, max-age=3600",contentLength:a.contentLength??0,size:a.contentLength??0,mimetype:a.contentType,eTag:""}}}let i=await this.adapter.getObject(e,n,s.version??void 0);if(!i.body)throw Z.objectNotFound(n);if(r?.transform&&this.transformationAdapter?.requiresBuffer){let o=await yT(i.body),a=await this.transformationAdapter.transform(o,r.transform);return {body:a.body,metadata:{...i.metadata,mimetype:a.contentType,size:a.contentLength??0,contentLength:a.contentLength??0}}}return {body:i.body,metadata:i.metadata}}async update(e,n,r,s){return this.upload(e,n,r,{...s,upsert:s?.upsert??true})}async remove(e,n){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);let s=[];for(let i of n){let o=await this.repo.findObjectByPath(e,i);o&&(await this.adapter.deleteObject(e,i,o.version??void 0),await this.repo.deleteObject(o.id),s.push(o));}return s}async list(e,n,r){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);return this.repo.listObjects(e,n,r)}async move(e,n,r){Dc(r);let s=await this.repo.findObjectByPath(e,n);if(!s)throw Z.objectNotFound(n);await this.adapter.copyObject(e,n,s.version??void 0,r,void 0),await this.adapter.deleteObject(e,n,s.version??void 0),await this.repo.updateObject(s.id,{name:r,version:crypto.randomUUID()});}async copy(e,n,r){Dc(r);let s=await this.repo.findObjectByPath(e,n);if(!s)throw Z.objectNotFound(n);return await this.adapter.copyObject(e,n,s.version??void 0,r,void 0),await this.repo.createObject({id:crypto.randomUUID(),bucket_id:e,name:r,owner:s.owner,owner_id:s.owner_id,metadata:s.metadata,version:crypto.randomUUID()}),{key:r}}async info(e,n){let r=await this.repo.findObjectByPath(e,n);if(!r)throw Z.objectNotFound(n);let s=await this.adapter.headObject(e,n,r.version??void 0);return {...r,httpMetadata:s}}async exists(e,n){return this.repo.objectExists(e,n)}async createSignedUrl(e,n,r){if(!await this.repo.findObjectByPath(e,n))throw Z.objectNotFound(n);let i=await this.signStorageToken({sub:n,bucket:e,intent:"download"},r);return {signedUrl:`/storage/v1/object/sign/${e}/${n}?token=${i}`}}async createSignedUrls(e,n,r){let s=[];for(let i of n)try{let{signedUrl:o}=await this.createSignedUrl(e,i,r);s.push({path:i,signedUrl:o,error:null});}catch(o){s.push({path:i,signedUrl:"",error:o.message});}return s}async createSignedUploadUrl(e,n){if(!await this.repo.findBucketById(e))throw Z.bucketNotFound(e);let s=await this.signStorageToken({sub:n,bucket:e,intent:"upload"},7200);return {signedUrl:`/storage/v1/object/upload/sign/${e}/${n}?token=${s}`,token:s,path:n}}async verifySignedUrl(e){let n=new TextEncoder().encode(this.config.jwtSecret),{payload:r}=await jwtVerify(e,n,{algorithms:["HS256"]});return {bucket:r.bucket,path:r.sub,intent:r.intent}}async signStorageToken(e,n){let r=new TextEncoder().encode(this.config.jwtSecret),s=Math.floor(Date.now()/1e3);return new SignJWT({...e,iat:s}).setProtectedHeader({alg:"HS256",typ:"JWT"}).setIssuedAt(s).setExpirationTime(s+n).sign(r)}};async function yT(t){if(t instanceof Uint8Array||Buffer.isBuffer(t))return t;if(t instanceof Blob)return new Uint8Array(await t.arrayBuffer());let e=[],n=t.getReader();for(;;){let{done:r,value:s}=await n.read();if(r)break;e.push(s);}return Buffer.concat(e)}function Dc(t){if(!t||t.includes("..")||t.startsWith("/"))throw Z.invalidKey(t)}function bT(t){let e=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|KiB|MB|MiB|GB|GiB)$/i);if(!e)return 0;let n=Number.parseFloat(e[1]),r=e[2].toUpperCase();return Math.floor(n*({B:1,KB:1e3,KIB:1024,MB:1e6,MIB:1048576,GB:1e9,GIB:1073741824}[r]??1))}var wT=s.object({id:s.string(),name:s.string(),public:s.boolean({default:false}).optional(),file_size_limit:s.number().optional(),allowed_mime_types:s.array(s.string()).optional()}),ST=s.object({public:s.boolean().optional(),file_size_limit:s.number().optional(),allowed_mime_types:s.array(s.string()).optional()}),_T=s.object({prefix:s.string().optional(),limit:s.number().optional(),offset:s.number().optional(),sortBy:s.object({column:s.string(),order:s.string()}).optional(),search:s.string().optional()}),Zh=s.object({bucketId:s.string(),sourceKey:s.string(),destinationKey:s.string()}),ET=s.object({expiresIn:s.number()}),xT=s.object({expiresIn:s.number(),paths:s.array(s.string())}),TT=s.object({prefixes:s.array(s.string())}),RT=new _e().get("/object/public/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/public/${e}/`),{storageService:r}=t.var;if(!(await r.getBucket(e)).public)return t.json({error:"Bucket is not public"},400);let i=jc(t.req.query()),o=await r.download(e,n,{transform:i??void 0});return new Response(o.body,{headers:Lc(o.metadata)})}).get("/object/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/sign/${e}/`),r=t.req.query("token"),{storageService:s}=t.var;if(!r)return t.json({error:"Missing token"},400);let i=await s.verifySignedUrl(r);if(i.bucket!==e||i.path!==n)return t.json({error:"Invalid token"},403);let o=jc(t.req.query()),a=await s.download(e,n,{transform:o??void 0});return new Response(a.body,{headers:Lc(a.metadata)})}).put("/object/upload/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/upload/sign/${e}/`),r=t.req.query("token"),{storageService:s}=t.var;if(!r)return t.json({error:"Missing token"},400);let i=await s.verifySignedUrl(r);if(i.bucket!==e||i.path!==n||i.intent!=="upload")return t.json({error:"Invalid token"},403);let o=t.req.header("content-type")??"application/octet-stream",a=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0,l=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),c=await s.upload(e,n,l,{contentType:o,contentLength:a,upsert:true});return t.json({Key:c.name},200)}),CT=new _e().use(ks({acceptSecretApiKey:true})).post("/bucket",validator("json",wT),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var,r=await n.createBucket({id:e.id,name:e.name??e.id,public:e.public,file_size_limit:e.file_size_limit,allowed_mime_types:e.allowed_mime_types});return t.json({name:r.name},200)}).get("/bucket",async t=>{let{storageService:e}=t.var,n=await e.listBuckets();return t.json(n,200)}).get("/bucket/:id",async t=>{let{storageService:e}=t.var,n=await e.getBucket(t.req.param("id"));return t.json(n,200)}).put("/bucket/:id",validator("json",ST),async t=>{let{storageService:e}=t.var;return await e.updateBucket(t.req.param("id"),t.req.valid("json")),t.json({message:"Successfully updated"},200)}).delete("/bucket/:id",async t=>{let{storageService:e}=t.var;return await e.deleteBucket(t.req.param("id")),t.json({message:"Successfully deleted"},200)}).post("/bucket/:id/empty",async t=>{let{storageService:e}=t.var;return await e.emptyBucket(t.req.param("id")),t.json({message:"Empty bucket has been queued. Completion may take up to an hour."},200)}).post("/object/list/:bucketId",validator("json",_T),async t=>{let e=t.req.param("bucketId"),n=t.req.valid("json"),{storageService:r}=t.var,s=await r.list(e,n.prefix,{limit:n.limit,offset:n.offset,sortBy:n.sortBy,search:n.search});return t.json(s,200)}).post("/object/move",validator("json",Zh),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var;return await n.move(e.bucketId,e.sourceKey,e.destinationKey),t.json({message:"Successfully moved"},200)}).post("/object/copy",validator("json",Zh),async t=>{let e=t.req.valid("json"),{storageService:n}=t.var,r=await n.copy(e.bucketId,e.sourceKey,e.destinationKey);return t.json({key:r.key},200)}).get("/object/info/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/info/${e}/`),{storageService:r}=t.var,s=await r.info(e,n);return t.json(s,200)}).post("/object/sign/:bucketId/*",validator("json",ET),async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/sign/${e}/`),{expiresIn:r}=t.req.valid("json"),{storageService:s}=t.var,i=await s.createSignedUrl(e,n,r);return t.json(i,200)}).post("/object/sign/:bucketId",validator("json",xT),async t=>{let e=t.req.param("bucketId"),{expiresIn:n,paths:r}=t.req.valid("json"),{storageService:s}=t.var,i=await s.createSignedUrls(e,r,n);return t.json(i,200)}).post("/object/upload/sign/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/upload/sign/${e}/`),{storageService:r}=t.var,s=await r.createSignedUploadUrl(e,n);return t.json(s,200)}).delete("/object/:bucketId",validator("json",TT),async t=>{let e=t.req.param("bucketId"),{prefixes:n}=t.req.valid("json"),{storageService:r}=t.var,s=await r.remove(e,n);return t.json(s,200)}).post("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=t.req.header("content-type")??"application/octet-stream",i=t.req.header("cache-control")??"no-cache",o=t.req.header("x-upsert")==="true",a,l,c;if(s.startsWith("multipart/form-data")){let d=(await t.req.formData()).get("file");if(!d)throw new Z(400,"InvalidRequest","Missing file in multipart upload");let p=new Uint8Array(await d.arrayBuffer());a=p,l=d.type||"application/octet-stream",c=p.length;}else a=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),l=s,c=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0;let f=await r.upload(e,n,a,{contentType:l,cacheControl:i,contentLength:c,upsert:o,owner:t.get("userId")??null});return t.json({Key:`${e}/${f.name}`,Id:f.id},200)}).put("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=t.req.header("content-type")??"application/octet-stream",i=t.req.header("cache-control")??"no-cache",o=t.req.header("content-length")?Number.parseInt(t.req.header("content-length"),10):void 0,a=t.req.raw.body??new Uint8Array(await t.req.arrayBuffer()),l=await r.update(e,n,a,{contentType:s,cacheControl:i,contentLength:o,owner:t.get("userId")??null});return t.json({Key:`${e}/${l.name}`,Id:l.id},200)}).get("/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/${e}/`),{storageService:r}=t.var,s=jc(t.req.query()),i=await r.download(e,n,{transform:s??void 0});return new Response(i.body,{headers:Lc(i.metadata)})}).on("HEAD","/object/:bucketId/*",async t=>{let e=t.req.param("bucketId"),n=ft(t.req.path,`/object/${e}/`),{storageService:r}=t.var;return await r.exists(e,n)?t.body(null,200):t.body(null,404)}),Fc=new _e().onError((t,e)=>t instanceof Z?e.json(t.toJSON(),400):(console.error("Storage error:",t),e.json({error:"server_error",message:"Internal server error"},500))).route("/",RT).route("/",CT);function ft(t,e){let n=t.replace(/^\/storage\/v1/,""),r=n.indexOf(e);return r===-1?n.split("/").slice(3).join("/"):n.slice(r+e.length)}function jc(t){let{width:e,height:n,resize:r,format:s,quality:i}=t;return !e&&!n&&!r&&!s&&!i?null:{width:e?Number.parseInt(e,10):void 0,height:n?Number.parseInt(n,10):void 0,resize:r,format:s,quality:i?Number.parseInt(i,10):void 0}}function Lc(t){let e={"Content-Type":t.mimetype,"Cache-Control":t.cacheControl,ETag:t.eTag};return t.contentLength&&(e["Content-Length"]=String(t.contentLength)),t.lastModified&&(e["Last-Modified"]=t.lastModified.toUTCString()),t.contentRange&&(e["Content-Range"]=t.contentRange),e}Un();var Uc=`-- supabase/storage core schema (Postgres)
158
159
  -- Source: supabase/storage migrations (consolidated)
159
160
 
160
161
  CREATE SCHEMA IF NOT EXISTS storage;
@@ -189,11 +190,11 @@ CREATE TABLE IF NOT EXISTS storage.objects (
189
190
  );
190
191
 
191
192
  CREATE INDEX IF NOT EXISTS storage_objects_name_pattern_search ON storage.objects (name text_pattern_ops);
192
- `;function ia(t=true){return t?Ts(Iu):Iu}var oa=class{driver=null;requiresBuffer=false;async transform(e,n){return {body:e,contentType:"application/octet-stream",contentLength:e.byteLength}}};function Mg(t){if(!t._storageAdapter)throw Y.storageNotConfigured();let e=t.connection.dialect,n=new si(t.connection.kysely,e),r=t.config.auth?.jwt_secret??"",s=t._transformationAdapter??new oa;return new ii(n,t._storageAdapter,{jwtSecret:r,fileSizeLimit:t.config.storage?.file_size_limit?BR(t.config.storage.file_size_limit):void 0,buckets:t.config.storage?.buckets},{autoCreateBuckets:true},s)}function BR(t){let e=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|KiB|MB|MiB|GB|GiB)$/i);if(!e)return 0;let n=Number.parseFloat(e[1]),r=e[2].toUpperCase();return Math.floor(n*({B:1,KB:1e3,KIB:1024,MB:1e6,MIB:1048576,GB:1e9,GIB:1073741824}[r]??1))}var Ve=Symbol("RENDERER"),sn=Symbol("ERROR_HANDLER"),ee=Symbol("STASH"),aa=Symbol("INTERNAL"),Du=Symbol("MEMO"),Rr=Symbol("PERMALINK");var ju=t=>(t[aa]=true,t);var Lu=t=>({value:e,children:n})=>{if(!n)return;let r={children:[{tag:ju(()=>{t.push(e);}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:ju(()=>{t.pop();}),props:{}});let s={tag:"",props:r,type:""};return s[sn]=i=>{throw t.pop(),i},s},la=t=>{let e=[t],n=Lu(e);return n.values=e,n.Provider=n,Nt.push(n),n};var Nt=[],oi=t=>{let e=[t],n=(r=>{e.push(r.value);let s;try{s=r.children?(Array.isArray(r.children)?new Fu("",{},r.children):r.children).toString():"";}catch(i){throw e.pop(),i}return s instanceof Promise?s.finally(()=>e.pop()).then(i=>X(i,i.callbacks)):(e.pop(),X(s))});return n.values=e,n.Provider=n,n[Ve]=Lu(e),Nt.push(n),n},Re=t=>t.values.at(-1);var Cr={title:[],script:["src"],style:["data-href"],link:["href"],meta:["name","httpEquiv","charset","itemProp"]},ai={},vr="data-precedence";var ui={};qr(ui,{button:()=>GR,form:()=>zR,input:()=>VR,link:()=>KR,meta:()=>JR,script:()=>HR,style:()=>WR,title:()=>qR});var Dn=t=>Array.isArray(t)?t:[t];var Ug=new WeakMap,Bg=(t,e,n,r)=>({buffer:s,context:i})=>{if(!s)return;let o=Ug.get(i)||{};Ug.set(i,o);let a=o[t]||=[],l=false,c=Cr[t];if(c.length>0){e:for(let[,u]of a)for(let f of c)if((u?.[f]??null)===n?.[f]){l=true;break e}}if(l?s[0]=s[0].replaceAll(e,""):c.length>0?a.push([e,n,r]):a.unshift([e,n,r]),s[0].indexOf("</head>")!==-1){let u;if(r===void 0)u=a.map(([f])=>f);else {let f=[];u=a.map(([p,,d])=>{let g=f.indexOf(d);return g===-1&&(f.push(d),g=f.length-1),[p,g]}).sort((p,d)=>p[1]-d[1]).map(([p])=>p);}u.forEach(f=>{s[0]=s[0].replaceAll(f,"");}),s[0]=s[0].replace(/(?=<\/head>)/,u.join(""));}},li=(t,e,n)=>X(new qe(t,n,Dn(e??[])).toString()),ci=(t,e,n,r)=>{if("itemProp"in n)return li(t,e,n);let{precedence:s,blocking:i,...o}=n;s=r?s??"":void 0,r&&(o[vr]=s);let a=new qe(t,o,Dn(e||[])).toString();return a instanceof Promise?a.then(l=>X(a,[...l.callbacks||[],Bg(t,l,o,s)])):X(a,[Bg(t,a,o,s)])},qR=({children:t,...e})=>{let n=ca();if(n){let r=Re(n);if(r==="svg"||r==="head")return new qe("title",e,Dn(t??[]))}return ci("title",t,e,false)},HR=({children:t,...e})=>{let n=ca();return ["src","async"].some(r=>!e[r])||n&&Re(n)==="head"?li("script",t,e):ci("script",t,e,false)},WR=({children:t,...e})=>["href","precedence"].every(n=>n in e)?(e["data-href"]=e.href,delete e.href,ci("style",t,e,true)):li("style",t,e),KR=({children:t,...e})=>["onLoad","onError"].some(n=>n in e)||e.rel==="stylesheet"&&(!("precedence"in e)||"disabled"in e)?li("link",t,e):ci("link",t,e,"precedence"in e),JR=({children:t,...e})=>{let n=ca();return n&&Re(n)==="head"?li("meta",t,e):ci("meta",t,e,false)},qg=(t,{children:e,...n})=>new qe(t,n,Dn(e??[])),zR=t=>(typeof t.action=="function"&&(t.action=Rr in t.action?t.action[Rr]:void 0),qg("form",t)),Hg=(t,e)=>(typeof e.formAction=="function"&&(e.formAction=Rr in e.formAction?e.formAction[Rr]:void 0),qg(t,e)),VR=t=>Hg("input",t),GR=t=>Hg("button",t);var QR=new Map([["className","class"],["htmlFor","for"],["crossOrigin","crossorigin"],["httpEquiv","http-equiv"],["itemProp","itemprop"],["fetchPriority","fetchpriority"],["noModule","nomodule"],["formAction","formaction"]]),Ar=t=>QR.get(t)||t,fi=(t,e)=>{for(let[n,r]of Object.entries(t)){let s=n[0]==="-"||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`);e(s,r==null?null:typeof r=="number"?s.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`:r);}};var pi=void 0,ca=()=>pi,XR=t=>/[A-Z]/.test(t)&&t.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?t.replace(/([A-Z])/g,"-$1").toLowerCase():t,YR=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],ZR=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],Uu=(t,e)=>{for(let n=0,r=t.length;n<r;n++){let s=t[n];if(typeof s=="string")Et(s,e);else {if(typeof s=="boolean"||s===null||s===void 0)continue;s instanceof qe?s.toStringToBuffer(e):typeof s=="number"||s.isEscaped?e[0]+=s:s instanceof Promise?e.unshift("",s):Uu(s,e);}}},qe=class{tag;props;key;children;isEscaped=true;localContexts;constructor(t,e,n){this.tag=t,this.props=e,this.children=n;}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let t=[""];this.localContexts?.forEach(([e,n])=>{e.values.push(n);});try{this.toStringToBuffer(t);}finally{this.localContexts?.forEach(([e])=>{e.values.pop();});}return t.length===1?"callbacks"in t?ol(X(t[0],t.callbacks)).toString():t[0]:Ki(t,t.callbacks)}toStringToBuffer(t){let e=this.tag,n=this.props,{children:r}=this;t[0]+=`<${e}`;let s=pi&&Re(pi)==="svg"?i=>XR(Ar(i)):i=>Ar(i);for(let[i,o]of Object.entries(n))if(i=s(i),i!=="children"){if(i==="style"&&typeof o=="object"){let a="";fi(o,(l,c)=>{c!=null&&(a+=`${a?";":""}${l}:${c}`);}),t[0]+=' style="',Et(a,t),t[0]+='"';}else if(typeof o=="string")t[0]+=` ${i}="`,Et(o,t),t[0]+='"';else if(o!=null)if(typeof o=="number"||o.isEscaped)t[0]+=` ${i}="${o}"`;else if(typeof o=="boolean"&&ZR.includes(i))o&&(t[0]+=` ${i}=""`);else if(i==="dangerouslySetInnerHTML"){if(r.length>0)throw new Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[X(o.__html)];}else if(o instanceof Promise)t[0]+=` ${i}="`,t.unshift('"',o);else if(typeof o=="function"){if(!i.startsWith("on")&&i!=="ref")throw new Error(`Invalid prop '${i}' of type 'function' supplied to '${e}'.`)}else t[0]+=` ${i}="`,Et(o.toString(),t),t[0]+='"';}if(YR.includes(e)&&r.length===0){t[0]+="/>";return}t[0]+=">",Uu(r,t),t[0]+=`</${e}>`;}},Mu=class extends qe{toStringToBuffer(t){let{children:e}=this,n={...this.props};e.length&&(n.children=e.length===1?e[0]:e);let r=this.tag.call(null,n);if(!(typeof r=="boolean"||r==null))if(r instanceof Promise)if(Nt.length===0)t.unshift("",r);else {let s=Nt.map(i=>[i,i.values.at(-1)]);t.unshift("",r.then(i=>(i instanceof qe&&(i.localContexts=s),i)));}else r instanceof qe?r.toStringToBuffer(t):typeof r=="number"||r.isEscaped?(t[0]+=r,r.callbacks&&(t.callbacks||=[],t.callbacks.push(...r.callbacks))):Et(r,t);}},Fu=class extends qe{toStringToBuffer(t){Uu(this.children,t);}},Wg=false,di=(t,e,n)=>{if(!Wg){for(let r in ai)ui[r][Ve]=ai[r];Wg=true;}return typeof t=="function"?new Mu(t,e,n):ui[t]?new Mu(ui[t],e,n):t==="svg"||t==="head"?(pi||=oi(""),new qe(t,e,[new Mu(pi,{value:t},n)])):new qe(t,e,n)};var ht=({children:t})=>new Fu("",{children:t},Array.isArray(t)?t:t?[t]:[]);var da={};qr(da,{button:()=>yy,clearCache:()=>fC,composeRef:()=>pa,form:()=>my,input:()=>gy,link:()=>fy,meta:()=>py,script:()=>cy,style:()=>uy,title:()=>ly});var hi="_hp",eC={Change:"Input",DoubleClick:"DblClick"},tC={svg:"2000/svg",math:"1998/Math/MathML"},gt=[],Hu=new WeakMap,kr=void 0,Xg=()=>kr,It=t=>"t"in t,qu={onClick:["click",false]},Kg=t=>{if(!t.startsWith("on"))return;if(qu[t])return qu[t];let e=t.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(e){let[,n,r]=e;return qu[t]=[(eC[n]||n).toLowerCase(),!!r]}},Jg=(t,e)=>kr&&t instanceof SVGElement&&/[A-Z]/.test(e)&&(e in t.style||e.match(/^(?:o|pai|str|u|ve)/))?e.replace(/([A-Z])/g,"-$1").toLowerCase():e,nC=(t,e,n)=>{e||={};for(let r in e){let s=e[r];if(r!=="children"&&(!n||n[r]!==s)){r=Ar(r);let i=Kg(r);if(i){if(n?.[r]!==s&&(n&&t.removeEventListener(i[0],n[r],i[1]),s!=null)){if(typeof s!="function")throw new Error(`Event handler for "${r}" is not a function`);t.addEventListener(i[0],s,i[1]);}}else if(r==="dangerouslySetInnerHTML"&&s)t.innerHTML=s.__html;else if(r==="ref"){let o;typeof s=="function"?o=s(t)||(()=>s(null)):s&&"current"in s&&(s.current=t,o=()=>s.current=null),Hu.set(t,o);}else if(r==="style"){let o=t.style;typeof s=="string"?o.cssText=s:(o.cssText="",s!=null&&fi(s,o.setProperty.bind(o)));}else {if(r==="value"){let a=t.nodeName;if(a==="INPUT"||a==="TEXTAREA"||a==="SELECT"){if(t.value=s==null||s===false?null:s,a==="TEXTAREA"){t.textContent=s;continue}else if(a==="SELECT"){t.selectedIndex===-1&&(t.selectedIndex=0);continue}}}else (r==="checked"&&t.nodeName==="INPUT"||r==="selected"&&t.nodeName==="OPTION")&&(t[r]=s);let o=Jg(t,r);s==null||s===false?t.removeAttribute(o):s===true?t.setAttribute(o,""):typeof s=="string"||typeof s=="number"?t.setAttribute(o,s):t.setAttribute(o,s.toString());}}}if(n)for(let r in n){let s=n[r];if(r!=="children"&&!(r in e)){r=Ar(r);let i=Kg(r);i?t.removeEventListener(i[0],s,i[1]):r==="ref"?Hu.get(t)?.():t.removeAttribute(Jg(t,r));}}},rC=(t,e)=>{e[ee][0]=0,gt.push([t,e]);let n=e.tag[Ve]||e.tag,r=n.defaultProps?{...n.defaultProps,...e.props}:e.props;try{return [n.call(null,r)]}finally{gt.pop();}},Yg=(t,e,n,r,s)=>{t.vR?.length&&(r.push(...t.vR),delete t.vR),typeof t.tag=="function"&&t[ee][1][Ku]?.forEach(i=>s.push(i)),t.vC.forEach(i=>{if(It(i))n.push(i);else if(typeof i.tag=="function"||i.tag===""){i.c=e;let o=n.length;if(Yg(i,e,n,r,s),i.s){for(let a=o;a<n.length;a++)n[a].s=true;i.s=false;}}else n.push(i),i.vR?.length&&(r.push(...i.vR),delete i.vR);});},sC=t=>{for(;t&&(t.tag===hi||!t.e);)t=t.tag===hi||!t.vC?.[0]?t.nN:t.vC[0];return t?.e},Zg=t=>{It(t)||(t[ee]?.[1][Ku]?.forEach(e=>e[2]?.()),Hu.get(t.e)?.(),t.p===2&&t.vC?.forEach(e=>e.p=2),t.vC?.forEach(Zg)),t.p||(t.e?.remove(),delete t.e),typeof t.tag=="function"&&(mi.delete(t),ua.delete(t),delete t[ee][3],t.a=true);},ey=(t,e,n)=>{t.c=e,ty(t,e,n);},zg=(t,e)=>{if(e){for(let n=0,r=t.length;n<r;n++)if(t[n]===e)return n}},Vg=Symbol(),ty=(t,e,n)=>{let r=[],s=[],i=[];Yg(t,e,r,s,i),s.forEach(Zg);let o=n?void 0:e.childNodes,a,l=null;if(n)a=-1;else if(!o.length)a=0;else {let c=zg(o,sC(t.nN));c!==void 0?(l=o[c],a=c):a=zg(o,r.find(u=>u.tag!==hi&&u.e)?.e)??-1,a===-1&&(n=true);}for(let c=0,u=r.length;c<u;c++,a++){let f=r[c],p;if(f.s&&f.e)p=f.e,f.s=false;else {let d=n||!f.e;It(f)?(f.e&&f.d&&(f.e.textContent=f.t),f.d=false,p=f.e||=document.createTextNode(f.t)):(p=f.e||=f.n?document.createElementNS(f.n,f.tag):document.createElement(f.tag),nC(p,f.props,f.pP),ty(f,p,d));}f.tag===hi?a--:n?p.parentNode||e.appendChild(p):o[a]!==p&&o[a-1]!==p&&(o[a+1]===p?e.appendChild(o[a]):e.insertBefore(p,l||o[a]||null));}if(t.pP&&(t.pP=void 0),i.length){let c=[],u=[];i.forEach(([,f,,p,d])=>{f&&c.push(f),p&&u.push(p),d?.();}),c.forEach(f=>f()),u.length&&requestAnimationFrame(()=>{u.forEach(f=>f());});}},iC=(t,e)=>!!(t&&t.length===e.length&&t.every((n,r)=>n[1]===e[r][1])),ua=new WeakMap,Wu=(t,e,n)=>{let r=!n&&e.pC;n&&(e.pC||=e.vC);let s;try{n||=typeof e.tag=="function"?rC(t,e):Dn(e.props.children),n[0]?.tag===""&&n[0][sn]&&(s=n[0][sn],t[5].push([t,s,e]));let i=r?[...e.pC]:e.vC?[...e.vC]:void 0,o=[],a;for(let l=0;l<n.length;l++){if(Array.isArray(n[l])){n.splice(l,1,...n[l].flat(1/0)),l--;continue}let c=oC(n[l]);if(c){typeof c.tag=="function"&&!c.tag[aa]&&(Nt.length>0&&(c[ee][2]=Nt.map(f=>[f,f.values.at(-1)])),t[5]?.length&&(c[ee][3]=t[5].at(-1)));let u;if(i&&i.length){let f=i.findIndex(It(c)?p=>It(p):c.key!==void 0?p=>p.key===c.key&&p.tag===c.tag:p=>p.tag===c.tag);f!==-1&&(u=i[f],i.splice(f,1));}if(u)if(It(c))u.t!==c.t&&(u.t=c.t,u.d=!0),c=u;else {let f=u.pP=u.props;if(u.props=c.props,u.f||=c.f||e.f,typeof c.tag=="function"){let p=u[ee][2];u[ee][2]=c[ee][2]||[],u[ee][3]=c[ee][3],!u.f&&((u.o||u)===c.o||u.tag[Du]?.(f,u.props))&&iC(p,u[ee][2])&&(u.s=!0);}c=u;}else if(!It(c)&&kr){let f=Re(kr);f&&(c.n=f);}if(!It(c)&&!c.s&&(Wu(t,c),delete c.f),o.push(c),a&&!a.s&&!c.s)for(let f=a;f&&!It(f);f=f.vC?.at(-1))f.nN=c;a=c;}}e.vR=r?[...e.vC,...i||[]]:i||[],e.vC=o,r&&delete e.pC;}catch(i){if(e.f=true,i===Vg){if(s)return;throw i}let[o,a,l]=e[ee]?.[3]||[];if(a){let c=()=>gi([0,false,t[2]],l),u=ua.get(l)||[];u.push(c),ua.set(l,u);let f=a(i,()=>{let p=ua.get(l);if(p){let d=p.indexOf(c);if(d!==-1)return p.splice(d,1),c()}});if(f){if(t[0]===1)t[1]=true;else if(Wu(t,l,[f]),(a.length===1||t!==o)&&l.c){ey(l,l.c,false);return}throw Vg}}throw i}finally{s&&t[5].pop();}},oC=t=>{if(!(t==null||typeof t=="boolean")){if(typeof t=="string"||typeof t=="number")return {t:t.toString(),d:true};if("vR"in t&&(t={tag:t.tag,props:t.props,key:t.key,f:t.f,type:t.tag,ref:t.props.ref,o:t.o||t}),typeof t.tag=="function")t[ee]=[0,[]];else {let e=tC[t.tag];e&&(kr||=la(""),t.props.children=[{tag:kr,props:{value:t.n=`http://www.w3.org/${e}`,children:t.props.children}}]);}return t}};var Gg=(t,e)=>{e[ee][2]?.forEach(([n,r])=>{n.values.push(r);});try{Wu(t,e,void 0);}catch{return}if(e.a){delete e.a;return}e[ee][2]?.forEach(([n])=>{n.values.pop();}),(t[0]!==1||!t[1])&&ey(e,e.c,false);},mi=new WeakMap,Qg=[],gi=async(t,e)=>{t[5]||=[];let n=mi.get(e);n&&n[0](void 0);let r,s=new Promise(i=>r=i);if(mi.set(e,[r,()=>{t[2]?t[2](t,e,i=>{Gg(i,e);}).then(()=>r(e)):(Gg(t,e),r(e));}]),Qg.length)Qg.at(-1).add(e);else {await Promise.resolve();let i=mi.get(e);i&&(mi.delete(e),i[1]());}return s};var ny=(t,e,n)=>({tag:hi,props:{children:t},key:n,e,p:1});var aC=0,Ku=1,lC=2,cC=3;var Ju=new WeakMap,sy=(t,e)=>!t||!e||t.length!==e.length||e.some((n,r)=>n!==t[r]);var uC=void 0;var ry=[];var fa=t=>{let e=()=>typeof t=="function"?t():t,n=gt.at(-1);if(!n)return [e(),()=>{}];let[,r]=n,s=r[ee][1][aC]||=[],i=r[ee][0]++;return s[i]||=[e(),o=>{let a=uC,l=s[i];if(typeof o=="function"&&(o=o(l[0])),!Object.is(o,l[0]))if(l[0]=o,ry.length){let[c,u]=ry.at(-1);Promise.all([c===3?r:gi([c,false,a],r),u]).then(([f])=>{if(!f||!(c===2||c===3))return;let p=f.vC;requestAnimationFrame(()=>{setTimeout(()=>{p===f.vC&&gi([c===3?1:0,false,a],f);});});});}else gi([0,false,a],r);}]};var $r=(t,e)=>{let n=gt.at(-1);if(!n)return t;let[,r]=n,s=r[ee][1][lC]||=[],i=r[ee][0]++,o=s[i];return sy(o?.[1],e)?s[i]=[t,e]:t=s[i][0],t};var zu=t=>{let e=Ju.get(t);if(e){if(e.length===2)throw e[1];return e[0]}throw t.then(n=>Ju.set(t,[n]),n=>Ju.set(t,[void 0,n])),t},Vu=(t,e)=>{let n=gt.at(-1);if(!n)return t();let[,r]=n,s=r[ee][1][cC]||=[],i=r[ee][0]++,o=s[i];return sy(o?.[1],e)&&(s[i]=[t(),e]),s[i][0]};var oy=la({pending:false,data:null,method:null,action:null}),iy=new Set,ay=t=>{iy.add(t),t.finally(()=>iy.delete(t));};var fC=()=>{Gu=Object.create(null),Qu=Object.create(null);},pa=(t,e)=>Vu(()=>n=>{let r;t&&(typeof t=="function"?r=t(n)||(()=>{t(null);}):t&&"current"in t&&(t.current=n,r=()=>{t.current=null;}));let s=e(n);return ()=>{s?.(),r?.();}},[t]),Gu=Object.create(null),Qu=Object.create(null),yi=(t,e,n,r,s)=>{if(e?.itemProp)return {tag:t,props:e,type:t,ref:e.ref};let i=document.head,{onLoad:o,onError:a,precedence:l,blocking:c,...u}=e,f=null,p=false,d=Cr[t],g;if(d.length>0){let S=i.querySelectorAll(t);e:for(let _ of S)for(let w of Cr[t])if(_.getAttribute(w)===e[w]){f=_;break e}if(!f){let _=d.reduce((w,x)=>e[x]===void 0?w:`${w}-${x}-${e[x]}`,t);p=!Qu[_],f=Qu[_]||=(()=>{let w=document.createElement(t);for(let x of d)e[x]!==void 0&&w.setAttribute(x,e[x]),e.rel&&w.setAttribute("rel",e.rel);return w})();}}else g=i.querySelectorAll(t);l=r?l??"":void 0,r&&(u[vr]=l);let m=$r(S=>{if(d.length>0){let _=false;for(let w of i.querySelectorAll(t)){if(_&&w.getAttribute(vr)!==l){i.insertBefore(S,w);return}w.getAttribute(vr)===l&&(_=true);}i.appendChild(S);}else if(g){let _=false;for(let w of g)if(w===S){_=true;break}_||i.insertBefore(S,i.contains(g[0])?g[0]:i.querySelector(t)),g=void 0;}},[l]),h=pa(e.ref,S=>{let _=d[0];if(n===2&&(S.innerHTML=""),(p||g)&&m(S),!a&&!o)return;let w=Gu[S.getAttribute(_)]||=new Promise((x,E)=>{S.addEventListener("load",x),S.addEventListener("error",E);});o&&(w=w.then(o)),a&&(w=w.catch(a)),w.catch(()=>{});});if(s&&c==="render"){let S=Cr[t][0];if(e[S]){let _=e[S],w=Gu[_]||=new Promise((x,E)=>{m(f),f.addEventListener("load",x),f.addEventListener("error",E);});zu(w);}}let y={tag:t,type:t,props:{...u,ref:h},ref:h};return y.p=n,f&&(y.e=f),ny(y,i)},ly=t=>{let e=Xg();return (e&&Re(e))?.endsWith("svg")?{tag:"title",props:t,type:"title",ref:t.ref}:yi("title",t,void 0,false,false)},cy=t=>!t||["src","async"].some(e=>!t[e])?{tag:"script",props:t,type:"script",ref:t.ref}:yi("script",t,1,false,true),uy=t=>!t||!["href","precedence"].every(e=>e in t)?{tag:"style",props:t,type:"style",ref:t.ref}:(t["data-href"]=t.href,delete t.href,yi("style",t,2,true,true)),fy=t=>!t||["onLoad","onError"].some(e=>e in t)||t.rel==="stylesheet"&&(!("precedence"in t)||"disabled"in t)?{tag:"link",props:t,type:"link",ref:t.ref}:yi("link",t,1,"precedence"in t,true),py=t=>yi("meta",t,void 0,false,false),dy=Symbol(),my=t=>{let{action:e,...n}=t;typeof e!="function"&&(n.action=e);let[r,s]=fa([null,false]),i=$r(async c=>{let u=c.isTrusted?e:c.detail[dy];if(typeof u!="function")return;c.preventDefault();let f=new FormData(c.target);s([f,true]);let p=u(f);p instanceof Promise&&(ay(p),await p),s([null,true]);},[]),o=pa(t.ref,c=>(c.addEventListener("submit",i),()=>{c.removeEventListener("submit",i);})),[a,l]=r;return r[1]=false,{tag:oy,props:{value:{pending:a!==null,data:a,method:a?"post":null,action:a?e:null},children:{tag:"form",props:{...n,ref:o},type:"form",ref:o}},f:l}},hy=(t,{formAction:e,...n})=>{if(typeof e=="function"){let r=$r(s=>{s.preventDefault(),s.currentTarget.form.dispatchEvent(new CustomEvent("submit",{detail:{[dy]:e}}));},[]);n.ref=pa(n.ref,s=>(s.addEventListener("click",r),()=>{s.removeEventListener("click",r);}));}return {tag:t,props:n,type:t,ref:n.ref}},gy=t=>hy("input",t),yy=t=>hy("button",t);Object.assign(ai,{title:ly,script:cy,style:uy,link:fy,meta:py,form:my,input:gy,button:yy});oi(null);new TextEncoder;var jn=":-hono-global",hC=new RegExp(`^${jn}{(.*)}$`),ga="hono-css",Dt=Symbol(),be=Symbol(),je=Symbol(),yt=Symbol(),ya=Symbol(),Ey=Symbol();var xy=t=>{let e=0,n=11;for(;e<t.length;)n=101*n+t.charCodeAt(e++)>>>0;return "css-"+n},gC=['"(?:(?:\\\\[\\s\\S]|[^"\\\\])*)"',"'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'"].join("|"),yC=new RegExp(["("+gC+")","(?:"+["^\\s+","\\/\\*.*?\\*\\/\\s*","\\/\\/.*\\n\\s*","\\s+$"].join("|")+")","\\s*;\\s*(}|$)\\s*","\\s*([{};:,])\\s*","(\\s)\\s+"].join("|"),"g"),bC=t=>t.replace(yC,(e,n,r,s,i)=>n||r||s||i||""),Ty=(t,e)=>{let n=[],r=[],s=t[0].match(/^\s*\/\*(.*?)\*\//)?.[1]||"",i="";for(let o=0,a=t.length;o<a;o++){i+=t[o];let l=e[o];if(!(typeof l=="boolean"||l===null||l===void 0)){Array.isArray(l)||(l=[l]);for(let c=0,u=l.length;c<u;c++){let f=l[c];if(!(typeof f=="boolean"||f===null||f===void 0))if(typeof f=="string")/([\\"'\/])/.test(f)?i+=f.replace(/([\\"']|(?<=<)\/)/g,"\\$1"):i+=f;else if(typeof f=="number")i+=f;else if(f[Ey])i+=f[Ey];else if(f[be].startsWith("@keyframes "))n.push(f),i+=` ${f[be].substring(11)} `;else {if(t[o+1]?.match(/^\s*{/))n.push(f),f=`.${f[be]}`;else {n.push(...f[yt]),r.push(...f[ya]),f=f[je];let p=f.length;if(p>0){let d=f[p-1];d!==";"&&d!=="}"&&(f+=";");}}i+=`${f||""}`;}}}}return [s,bC(i),n,r]},Or=(t,e)=>{let[n,r,s,i]=Ty(t,e),o=hC.exec(r);o&&(r=o[1]);let a=(o?jn:"")+xy(n+r),l=(o?s.map(c=>c[be]):[a,...i]).join(" ");return {[Dt]:a,[be]:l,[je]:r,[yt]:s,[ya]:i}},ba=t=>{for(let e=0,n=t.length;e<n;e++){let r=t[e];typeof r=="string"&&(t[e]={[Dt]:"",[be]:"",[je]:"",[yt]:[],[ya]:[r]});}return t},wa=(t,...e)=>{let[n,r]=Ty(t,e);return {[Dt]:"",[be]:`@keyframes ${xy(n+r)}`,[je]:r,[yt]:[],[ya]:[]}},wC=0,Sa=((t,e)=>{t||(t=[`/* h-v-t ${wC++} */`]);let n=Array.isArray(t)?Or(t,e):t,r=n[be],s=Or(["view-transition-name:",""],[r]);return n[be]=jn+n[be],n[je]=n[je].replace(/(?<=::view-transition(?:[a-z-]*)\()(?=\))/g,r),s[be]=s[Dt]=r,s[yt]=[...n[yt],n],s});var _C=t=>{let e=[],n=0,r=0;for(let s=0,i=t.length;s<i;s++){let o=t[s];if(o==="'"||o==='"'){let a=o;for(s++;s<i;s++){if(t[s]==="\\"){s++;continue}if(t[s]===a)break}continue}if(o==="{"){r++;continue}if(o==="}"){r--,r===0&&(e.push(t.slice(n,s+1)),n=s+1);continue}}return e},Zu=({id:t})=>{let e,n=()=>(e||(e=document.querySelector(`style#${t}`)?.sheet,e&&(e.addedStyles=new Set)),e?[e,e.addedStyles]:[]),r=(o,a)=>{let[l,c]=n();if(!l||!c){Promise.resolve().then(()=>{if(!n()[0])throw new Error("style sheet not found");r(o,a);});return}c.has(o)||(c.add(o),(o.startsWith(jn)?_C(a):[`${o[0]==="@"?"":"."}${o}{${a}}`]).forEach(u=>{l.insertRule(u,l.cssRules.length);}));};return [{toString(){let o=this[Dt];return r(o,this[je]),this[yt].forEach(({[be]:a,[je]:l})=>{r(a,l);}),this[be]}},({children:o,nonce:a})=>({tag:"style",props:{id:t,nonce:a,children:o&&(Array.isArray(o)?o:[o]).map(l=>l[je])}})]};var xC=({id:t})=>{let[e,n]=Zu({id:t}),r=new WeakMap,s=new WeakMap,i=new RegExp(`(<style id="${t}"(?: nonce="[^"]*")?>.*?)(</style>)`),o=p=>{let d=({buffer:y,context:S})=>{let[_,w]=r.get(S),x=Object.keys(_);if(!x.length)return;let E="";if(x.forEach(P=>{w[P]=true,E+=P.startsWith(jn)?_[P]:`${P[0]==="@"?"":"."}${P}{${_[P]}}`;}),r.set(S,[{},w]),y&&i.test(y[0])){y[0]=y[0].replace(i,(P,D,k)=>`${D}${E}${k}`);return}let T=s.get(S),O=`<script${T?` nonce="${T}"`:""}>document.querySelector('#${t}').textContent+=${JSON.stringify(E)}</script>`;if(y){y[0]=`${O}${y[0]}`;return}return Promise.resolve(O)},g=({context:y})=>{r.has(y)||r.set(y,[{},{}]);let[S,_]=r.get(y),w=true;if(_[p[Dt]]||(w=false,S[p[Dt]]=p[je]),p[yt].forEach(({[be]:x,[je]:E})=>{_[x]||(w=false,S[x]=E);}),!w)return Promise.resolve(X("",[d]))},m=new String(p[be]);Object.assign(m,p),m.isEscaped=true,m.callbacks=[g];let h=Promise.resolve(m);return Object.assign(h,p),h.toString=e.toString,h},a=(p,...d)=>o(Or(p,d)),l=(...p)=>(p=ba(p),a(Array(p.length).fill(""),...p)),c=wa,u=((p,...d)=>o(Sa(p,d))),f=({children:p,nonce:d}={})=>X(`<style id="${t}"${d?` nonce="${d}"`:""}>${p?p[je]:""}</style>`,[({context:g})=>{s.set(g,d);}]);return f[Ve]=n,{css:a,cx:l,keyframes:c,viewTransition:u,Style:f}},wi=xC({id:ga}),Ry=wi.Style;function we(t,e,n){let r;if(!e||!("children"in e))r=di(t,e,[]);else {let s=e.children;r=Array.isArray(s)?di(t,e,s):di(t,e,[s]);}return r.key=n,r}var ef=new _e().get("/*",async t=>{let e={js:"main.js",css:["styles.css"]},n="/static/",r=await Promise.resolve().then(()=>Ua(Cy())).then(s=>s.default);try{let s=Object.values(r).find(i=>i.isEntry);if(!s)throw new Error("No entry found in manifest");e.js=s?.file,e.css=s?.css??[];}catch(s){console.warn("Couldn't find assets in manifest",s);}return t.html(we(ht,{children:we("html",{lang:"en","data-theme":"dark",style:"color-scheme: dark",class:"dark",children:[we("head",{children:[we("meta",{charset:"UTF-8"}),we("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1"}),we("link",{rel:"icon",href:n+"favicon.ico",type:"image/x-icon"}),we("title",{children:"Supalite"}),we(ht,{children:[we("script",{type:"module",src:n+e?.js}),e?.css.map((s,i)=>we("link",{rel:"stylesheet",href:n+s},i))]}),we(Ry,{})]}),we("body",{children:we("div",{id:"root"})})]})}))});async function RC(t){return ef.fetch(t)}var CC={storage:"EXPERIMENTAL_STORAGE",cloud:"EXPERIMENTAL_CLOUD"},vy=["storage","cloud"],nf=Object.fromEntries(vy.map(t=>[t,vC(t)]));function vC(t){let e=typeof process<"u"&&process.env||void 0;return e?e.NODE_ENV==="test"?true:e[CC[t]]==="1":false}function Pr(t){return nf[t]}function AC(t,e){nf[t]=e;}function Ay(){return vy.filter(t=>nf[t])}function kC(){let t=Ay();if(t.length===0)return null;let e=t.includes("storage")?" Cloud sync (lite cloud deploy) is disabled.":"";return `EXPERIMENTAL FEATURES ENABLED: ${t.join(", ")} - not supported, do not use in production.${e}`}var tf=false;function ky(t=e=>console.warn(e)){if(tf)return;if(typeof process<"u"&&process.env?.NODE_ENV==="test"){tf=true;return}let e=kC();e&&t(e),tf=true;}function $y(t,e={}){let n=e.middlewares??[async(l,c)=>{await c();}],r=["GET","POST","PATCH","PUT","DELETE","OPTIONS","HEAD"],s=["authorization","apikey","content-type","cache-control","prefer","x-client-info","x-upsert","x-region","x-metadata","accept-profile","content-profile","range","range-unit","accept","x-supabase-api-version"],i=["Content-Range","Content-Location","Preference-Applied"],o=vp({origin:"*",allowMethods:r,allowHeaders:s,exposeHeaders:i,maxAge:86400}),a=async(l,c)=>{await c();let u=l.res.headers;u.has("Access-Control-Allow-Origin")||u.set("Access-Control-Allow-Origin","*"),u.set("Access-Control-Expose-Headers",i.join(", ")),l.req.method==="OPTIONS"&&(u.set("Access-Control-Allow-Methods",r.join(", ")),u.set("Access-Control-Allow-Headers",l.req.header("Access-Control-Request-Headers")??s.join(", ")),u.set("Access-Control-Max-Age","86400"));};return new _e().use("/storage/v1/*",o).use("/rest/v1/*",a).use(async(l,c)=>{l.set("app",t),t.config.auth?.enabled&&l.set("authService",Ng(t)),t.config.storage?.enabled&&t._storageAdapter&&Pr("storage")&&l.set("storageService",Mg(t)),await c();}).use(...n).use(Cu()).route("/auth/v1",vu).route("/rest/v1",Jh({forceRollback:e.forceRollback})).use("/storage/v1/*",async(l,c)=>{if(!Pr("storage"))return l.notFound();await c();}).route("/storage/v1",Nu).route("/_system",Ap).use(async(l,c)=>{if(!e.disableStudio&&t.config.studio?.enabled)return ef.fetch(l.req.raw);if(!e.disableFallback)return l.notFound();await c();})}ie();var $C=t=>{let e=t.toJSON();return Mt(e)},rf=class extends Error{constructor(n,r,s=[]){super(`Invalid schema given for ${JSON.stringify(r,null,2)}
193
+ `;function xo(t=true){return t?Vr(Uc):Uc}var To=class{driver=null;requiresBuffer=false;async transform(e,n){return {body:e,contentType:"application/octet-stream",contentLength:e.byteLength}}};function eg(t){if(!t._storageAdapter)throw Z.storageNotConfigured();let e=t.connection.dialect,n=new As(t.connection.kysely,e),r=t.config.auth?.jwt_secret??"",s=t._transformationAdapter??new To;return new Os(n,t._storageAdapter,{jwtSecret:r,fileSizeLimit:t.config.storage?.file_size_limit?vT(t.config.storage.file_size_limit):void 0,buckets:t.config.storage?.buckets},{autoCreateBuckets:true},s)}function vT(t){let e=t.match(/^(\d+(?:\.\d+)?)\s*(B|KB|KiB|MB|MiB|GB|GiB)$/i);if(!e)return 0;let n=Number.parseFloat(e[1]),r=e[2].toUpperCase();return Math.floor(n*({B:1,KB:1e3,KIB:1024,MB:1e6,MIB:1048576,GB:1e9,GIB:1073741824}[r]??1))}var Ke=Symbol("RENDERER"),Jt=Symbol("ERROR_HANDLER"),ee=Symbol("STASH"),Ro=Symbol("INTERNAL"),Mc=Symbol("MEMO"),Zn=Symbol("PERMALINK");var Bc=t=>(t[Ro]=true,t);var qc=t=>({value:e,children:n})=>{if(!n)return;let r={children:[{tag:Bc(()=>{t.push(e);}),props:{}}]};Array.isArray(n)?r.children.push(...n.flat()):r.children.push(n),r.children.push({tag:Bc(()=>{t.pop();}),props:{}});let s={tag:"",props:r,type:""};return s[Jt]=i=>{throw t.pop(),i},s},Co=t=>{let e=[t],n=qc(e);return n.values=e,n.Provider=n,Tt.push(n),n};var Tt=[],Ps=t=>{let e=[t],n=(r=>{e.push(r.value);let s;try{s=r.children?(Array.isArray(r.children)?new Hc("",{},r.children):r.children).toString():"";}catch(i){throw e.pop(),i}return s instanceof Promise?s.finally(()=>e.pop()).then(i=>Y(i,i.callbacks)):(e.pop(),Y(s))});return n.values=e,n.Provider=n,n[Ke]=qc(e),Tt.push(n),n},Re=t=>t.values.at(-1);var er={title:[],script:["src"],style:["data-href"],link:["href"],meta:["name","httpEquiv","charset","itemProp"]},$s={},tr="data-precedence";var Ds={};Xs(Ds,{button:()=>jT,form:()=>NT,input:()=>DT,link:()=>$T,meta:()=>IT,script:()=>OT,style:()=>PT,title:()=>AT});var bn=t=>Array.isArray(t)?t:[t];var tg=new WeakMap,ng=(t,e,n,r)=>({buffer:s,context:i})=>{if(!s)return;let o=tg.get(i)||{};tg.set(i,o);let a=o[t]||=[],l=false,c=er[t];if(c.length>0){e:for(let[,f]of a)for(let u of c)if((f?.[u]??null)===n?.[u]){l=true;break e}}if(l?s[0]=s[0].replaceAll(e,""):c.length>0?a.push([e,n,r]):a.unshift([e,n,r]),s[0].indexOf("</head>")!==-1){let f;if(r===void 0)f=a.map(([u])=>u);else {let u=[];f=a.map(([d,,p])=>{let g=u.indexOf(p);return g===-1&&(u.push(p),g=u.length-1),[d,g]}).sort((d,p)=>d[1]-p[1]).map(([d])=>d);}f.forEach(u=>{s[0]=s[0].replaceAll(u,"");}),s[0]=s[0].replace(/(?=<\/head>)/,f.join(""));}},Is=(t,e,n)=>Y(new Ue(t,n,bn(e??[])).toString()),Ns=(t,e,n,r)=>{if("itemProp"in n)return Is(t,e,n);let{precedence:s,blocking:i,...o}=n;s=r?s??"":void 0,r&&(o[tr]=s);let a=new Ue(t,o,bn(e||[])).toString();return a instanceof Promise?a.then(l=>Y(a,[...l.callbacks||[],ng(t,l,o,s)])):Y(a,[ng(t,a,o,s)])},AT=({children:t,...e})=>{let n=ko();if(n){let r=Re(n);if(r==="svg"||r==="head")return new Ue("title",e,bn(t??[]))}return Ns("title",t,e,false)},OT=({children:t,...e})=>{let n=ko();return ["src","async"].some(r=>!e[r])||n&&Re(n)==="head"?Is("script",t,e):Ns("script",t,e,false)},PT=({children:t,...e})=>["href","precedence"].every(n=>n in e)?(e["data-href"]=e.href,delete e.href,Ns("style",t,e,true)):Is("style",t,e),$T=({children:t,...e})=>["onLoad","onError"].some(n=>n in e)||e.rel==="stylesheet"&&(!("precedence"in e)||"disabled"in e)?Is("link",t,e):Ns("link",t,e,"precedence"in e),IT=({children:t,...e})=>{let n=ko();return n&&Re(n)==="head"?Is("meta",t,e):Ns("meta",t,e,false)},rg=(t,{children:e,...n})=>new Ue(t,n,bn(e??[])),NT=t=>(typeof t.action=="function"&&(t.action=Zn in t.action?t.action[Zn]:void 0),rg("form",t)),sg=(t,e)=>(typeof e.formAction=="function"&&(e.formAction=Zn in e.formAction?e.formAction[Zn]:void 0),rg(t,e)),DT=t=>sg("input",t),jT=t=>sg("button",t);var LT=new Map([["className","class"],["htmlFor","for"],["crossOrigin","crossorigin"],["httpEquiv","http-equiv"],["itemProp","itemprop"],["fetchPriority","fetchpriority"],["noModule","nomodule"],["formAction","formaction"]]),nr=t=>LT.get(t)||t,js=(t,e)=>{for(let[n,r]of Object.entries(t)){let s=n[0]==="-"||!/[A-Z]/.test(n)?n:n.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`);e(s,r==null?null:typeof r=="number"?s.match(/^(?:a|border-im|column(?:-c|s)|flex(?:$|-[^b])|grid-(?:ar|[^a])|font-w|li|or|sca|st|ta|wido|z)|ty$/)?`${r}`:`${r}px`:r);}};var Ls=void 0,ko=()=>Ls,FT=t=>/[A-Z]/.test(t)&&t.match(/^(?:al|basel|clip(?:Path|Rule)$|co|do|fill|fl|fo|gl|let|lig|i|marker[EMS]|o|pai|pointe|sh|st[or]|text[^L]|tr|u|ve|w)/)?t.replace(/([A-Z])/g,"-$1").toLowerCase():t,UT=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],MT=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","inert","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],Kc=(t,e)=>{for(let n=0,r=t.length;n<r;n++){let s=t[n];if(typeof s=="string")bt(s,e);else {if(typeof s=="boolean"||s===null||s===void 0)continue;s instanceof Ue?s.toStringToBuffer(e):typeof s=="number"||s.isEscaped?e[0]+=s:s instanceof Promise?e.unshift("",s):Kc(s,e);}}},Ue=class{tag;props;key;children;isEscaped=true;localContexts;constructor(t,e,n){this.tag=t,this.props=e,this.children=n;}get type(){return this.tag}get ref(){return this.props.ref||null}toString(){let t=[""];this.localContexts?.forEach(([e,n])=>{e.values.push(n);});try{this.toStringToBuffer(t);}finally{this.localContexts?.forEach(([e])=>{e.values.pop();});}return t.length===1?"callbacks"in t?ba(Y(t[0],t.callbacks)).toString():t[0]:gi(t,t.callbacks)}toStringToBuffer(t){let e=this.tag,n=this.props,{children:r}=this;t[0]+=`<${e}`;let s=Ls&&Re(Ls)==="svg"?i=>FT(nr(i)):i=>nr(i);for(let[i,o]of Object.entries(n))if(i=s(i),i!=="children"){if(i==="style"&&typeof o=="object"){let a="";js(o,(l,c)=>{c!=null&&(a+=`${a?";":""}${l}:${c}`);}),t[0]+=' style="',bt(a,t),t[0]+='"';}else if(typeof o=="string")t[0]+=` ${i}="`,bt(o,t),t[0]+='"';else if(o!=null)if(typeof o=="number"||o.isEscaped)t[0]+=` ${i}="${o}"`;else if(typeof o=="boolean"&&MT.includes(i))o&&(t[0]+=` ${i}=""`);else if(i==="dangerouslySetInnerHTML"){if(r.length>0)throw new Error("Can only set one of `children` or `props.dangerouslySetInnerHTML`.");r=[Y(o.__html)];}else if(o instanceof Promise)t[0]+=` ${i}="`,t.unshift('"',o);else if(typeof o=="function"){if(!i.startsWith("on")&&i!=="ref")throw new Error(`Invalid prop '${i}' of type 'function' supplied to '${e}'.`)}else t[0]+=` ${i}="`,bt(o.toString(),t),t[0]+='"';}if(UT.includes(e)&&r.length===0){t[0]+="/>";return}t[0]+=">",Kc(r,t),t[0]+=`</${e}>`;}},Wc=class extends Ue{toStringToBuffer(t){let{children:e}=this,n={...this.props};e.length&&(n.children=e.length===1?e[0]:e);let r=this.tag.call(null,n);if(!(typeof r=="boolean"||r==null))if(r instanceof Promise)if(Tt.length===0)t.unshift("",r);else {let s=Tt.map(i=>[i,i.values.at(-1)]);t.unshift("",r.then(i=>(i instanceof Ue&&(i.localContexts=s),i)));}else r instanceof Ue?r.toStringToBuffer(t):typeof r=="number"||r.isEscaped?(t[0]+=r,r.callbacks&&(t.callbacks||=[],t.callbacks.push(...r.callbacks))):bt(r,t);}},Hc=class extends Ue{toStringToBuffer(t){Kc(this.children,t);}},ig=false,Fs=(t,e,n)=>{if(!ig){for(let r in $s)Ds[r][Ke]=$s[r];ig=true;}return typeof t=="function"?new Wc(t,e,n):Ds[t]?new Wc(Ds[t],e,n):t==="svg"||t==="head"?(Ls||=Ps(""),new Ue(t,e,[new Wc(Ls,{value:t},n)])):new Ue(t,e,n)};var dt=({children:t})=>new Hc("",{children:t},Array.isArray(t)?t:t?[t]:[]);var Po={};Xs(Po,{button:()=>$g,clearCache:()=>YT,composeRef:()=>Oo,form:()=>Ag,input:()=>Pg,link:()=>Cg,meta:()=>kg,script:()=>Tg,style:()=>Rg,title:()=>xg});var Ms="_hp",BT={Change:"Input",DoubleClick:"DblClick"},qT={svg:"2000/svg",math:"1998/Math/MathML"},pt=[],zc=new WeakMap,rr=void 0,dg=()=>rr,Rt=t=>"t"in t,Gc={onClick:["click",false]},og=t=>{if(!t.startsWith("on"))return;if(Gc[t])return Gc[t];let e=t.match(/^on([A-Z][a-zA-Z]+?(?:PointerCapture)?)(Capture)?$/);if(e){let[,n,r]=e;return Gc[t]=[(BT[n]||n).toLowerCase(),!!r]}},ag=(t,e)=>rr&&t instanceof SVGElement&&/[A-Z]/.test(e)&&(e in t.style||e.match(/^(?:o|pai|str|u|ve)/))?e.replace(/([A-Z])/g,"-$1").toLowerCase():e,HT=(t,e,n)=>{e||={};for(let r in e){let s=e[r];if(r!=="children"&&(!n||n[r]!==s)){r=nr(r);let i=og(r);if(i){if(n?.[r]!==s&&(n&&t.removeEventListener(i[0],n[r],i[1]),s!=null)){if(typeof s!="function")throw new Error(`Event handler for "${r}" is not a function`);t.addEventListener(i[0],s,i[1]);}}else if(r==="dangerouslySetInnerHTML"&&s)t.innerHTML=s.__html;else if(r==="ref"){let o;typeof s=="function"?o=s(t)||(()=>s(null)):s&&"current"in s&&(s.current=t,o=()=>s.current=null),zc.set(t,o);}else if(r==="style"){let o=t.style;typeof s=="string"?o.cssText=s:(o.cssText="",s!=null&&js(s,o.setProperty.bind(o)));}else {if(r==="value"){let a=t.nodeName;if(a==="INPUT"||a==="TEXTAREA"||a==="SELECT"){if(t.value=s==null||s===false?null:s,a==="TEXTAREA"){t.textContent=s;continue}else if(a==="SELECT"){t.selectedIndex===-1&&(t.selectedIndex=0);continue}}}else (r==="checked"&&t.nodeName==="INPUT"||r==="selected"&&t.nodeName==="OPTION")&&(t[r]=s);let o=ag(t,r);s==null||s===false?t.removeAttribute(o):s===true?t.setAttribute(o,""):typeof s=="string"||typeof s=="number"?t.setAttribute(o,s):t.setAttribute(o,s.toString());}}}if(n)for(let r in n){let s=n[r];if(r!=="children"&&!(r in e)){r=nr(r);let i=og(r);i?t.removeEventListener(i[0],s,i[1]):r==="ref"?zc.get(t)?.():t.removeAttribute(ag(t,r));}}},WT=(t,e)=>{e[ee][0]=0,pt.push([t,e]);let n=e.tag[Ke]||e.tag,r=n.defaultProps?{...n.defaultProps,...e.props}:e.props;try{return [n.call(null,r)]}finally{pt.pop();}},pg=(t,e,n,r,s)=>{t.vR?.length&&(r.push(...t.vR),delete t.vR),typeof t.tag=="function"&&t[ee][1][Qc]?.forEach(i=>s.push(i)),t.vC.forEach(i=>{if(Rt(i))n.push(i);else if(typeof i.tag=="function"||i.tag===""){i.c=e;let o=n.length;if(pg(i,e,n,r,s),i.s){for(let a=o;a<n.length;a++)n[a].s=true;i.s=false;}}else n.push(i),i.vR?.length&&(r.push(...i.vR),delete i.vR);});},KT=t=>{for(;t&&(t.tag===Ms||!t.e);)t=t.tag===Ms||!t.vC?.[0]?t.nN:t.vC[0];return t?.e},mg=t=>{Rt(t)||(t[ee]?.[1][Qc]?.forEach(e=>e[2]?.()),zc.get(t.e)?.(),t.p===2&&t.vC?.forEach(e=>e.p=2),t.vC?.forEach(mg)),t.p||(t.e?.remove(),delete t.e),typeof t.tag=="function"&&(Us.delete(t),vo.delete(t),delete t[ee][3],t.a=true);},hg=(t,e,n)=>{t.c=e,gg(t,e,n);},lg=(t,e)=>{if(e){for(let n=0,r=t.length;n<r;n++)if(t[n]===e)return n}},cg=Symbol(),gg=(t,e,n)=>{let r=[],s=[],i=[];pg(t,e,r,s,i),s.forEach(mg);let o=n?void 0:e.childNodes,a,l=null;if(n)a=-1;else if(!o.length)a=0;else {let c=lg(o,KT(t.nN));c!==void 0?(l=o[c],a=c):a=lg(o,r.find(f=>f.tag!==Ms&&f.e)?.e)??-1,a===-1&&(n=true);}for(let c=0,f=r.length;c<f;c++,a++){let u=r[c],d;if(u.s&&u.e)d=u.e,u.s=false;else {let p=n||!u.e;Rt(u)?(u.e&&u.d&&(u.e.textContent=u.t),u.d=false,d=u.e||=document.createTextNode(u.t)):(d=u.e||=u.n?document.createElementNS(u.n,u.tag):document.createElement(u.tag),HT(d,u.props,u.pP),gg(u,d,p));}u.tag===Ms?a--:n?d.parentNode||e.appendChild(d):o[a]!==d&&o[a-1]!==d&&(o[a+1]===d?e.appendChild(o[a]):e.insertBefore(d,l||o[a]||null));}if(t.pP&&(t.pP=void 0),i.length){let c=[],f=[];i.forEach(([,u,,d,p])=>{u&&c.push(u),d&&f.push(d),p?.();}),c.forEach(u=>u()),f.length&&requestAnimationFrame(()=>{f.forEach(u=>u());});}},JT=(t,e)=>!!(t&&t.length===e.length&&t.every((n,r)=>n[1]===e[r][1])),vo=new WeakMap,Vc=(t,e,n)=>{let r=!n&&e.pC;n&&(e.pC||=e.vC);let s;try{n||=typeof e.tag=="function"?WT(t,e):bn(e.props.children),n[0]?.tag===""&&n[0][Jt]&&(s=n[0][Jt],t[5].push([t,s,e]));let i=r?[...e.pC]:e.vC?[...e.vC]:void 0,o=[],a;for(let l=0;l<n.length;l++){if(Array.isArray(n[l])){n.splice(l,1,...n[l].flat(1/0)),l--;continue}let c=GT(n[l]);if(c){typeof c.tag=="function"&&!c.tag[Ro]&&(Tt.length>0&&(c[ee][2]=Tt.map(u=>[u,u.values.at(-1)])),t[5]?.length&&(c[ee][3]=t[5].at(-1)));let f;if(i&&i.length){let u=i.findIndex(Rt(c)?d=>Rt(d):c.key!==void 0?d=>d.key===c.key&&d.tag===c.tag:d=>d.tag===c.tag);u!==-1&&(f=i[u],i.splice(u,1));}if(f)if(Rt(c))f.t!==c.t&&(f.t=c.t,f.d=!0),c=f;else {let u=f.pP=f.props;if(f.props=c.props,f.f||=c.f||e.f,typeof c.tag=="function"){let d=f[ee][2];f[ee][2]=c[ee][2]||[],f[ee][3]=c[ee][3],!f.f&&((f.o||f)===c.o||f.tag[Mc]?.(u,f.props))&&JT(d,f[ee][2])&&(f.s=!0);}c=f;}else if(!Rt(c)&&rr){let u=Re(rr);u&&(c.n=u);}if(!Rt(c)&&!c.s&&(Vc(t,c),delete c.f),o.push(c),a&&!a.s&&!c.s)for(let u=a;u&&!Rt(u);u=u.vC?.at(-1))u.nN=c;a=c;}}e.vR=r?[...e.vC,...i||[]]:i||[],e.vC=o,r&&delete e.pC;}catch(i){if(e.f=true,i===cg){if(s)return;throw i}let[o,a,l]=e[ee]?.[3]||[];if(a){let c=()=>Bs([0,false,t[2]],l),f=vo.get(l)||[];f.push(c),vo.set(l,f);let u=a(i,()=>{let d=vo.get(l);if(d){let p=d.indexOf(c);if(p!==-1)return d.splice(p,1),c()}});if(u){if(t[0]===1)t[1]=true;else if(Vc(t,l,[u]),(a.length===1||t!==o)&&l.c){hg(l,l.c,false);return}throw cg}}throw i}finally{s&&t[5].pop();}},GT=t=>{if(!(t==null||typeof t=="boolean")){if(typeof t=="string"||typeof t=="number")return {t:t.toString(),d:true};if("vR"in t&&(t={tag:t.tag,props:t.props,key:t.key,f:t.f,type:t.tag,ref:t.props.ref,o:t.o||t}),typeof t.tag=="function")t[ee]=[0,[]];else {let e=qT[t.tag];e&&(rr||=Co(""),t.props.children=[{tag:rr,props:{value:t.n=`http://www.w3.org/${e}`,children:t.props.children}}]);}return t}};var ug=(t,e)=>{e[ee][2]?.forEach(([n,r])=>{n.values.push(r);});try{Vc(t,e,void 0);}catch{return}if(e.a){delete e.a;return}e[ee][2]?.forEach(([n])=>{n.values.pop();}),(t[0]!==1||!t[1])&&hg(e,e.c,false);},Us=new WeakMap,fg=[],Bs=async(t,e)=>{t[5]||=[];let n=Us.get(e);n&&n[0](void 0);let r,s=new Promise(i=>r=i);if(Us.set(e,[r,()=>{t[2]?t[2](t,e,i=>{ug(i,e);}).then(()=>r(e)):(ug(t,e),r(e));}]),fg.length)fg.at(-1).add(e);else {await Promise.resolve();let i=Us.get(e);i&&(Us.delete(e),i[1]());}return s};var yg=(t,e,n)=>({tag:Ms,props:{children:t},key:n,e,p:1});var zT=0,Qc=1,VT=2,QT=3;var Xc=new WeakMap,wg=(t,e)=>!t||!e||t.length!==e.length||e.some((n,r)=>n!==t[r]);var XT=void 0;var bg=[];var Ao=t=>{let e=()=>typeof t=="function"?t():t,n=pt.at(-1);if(!n)return [e(),()=>{}];let[,r]=n,s=r[ee][1][zT]||=[],i=r[ee][0]++;return s[i]||=[e(),o=>{let a=XT,l=s[i];if(typeof o=="function"&&(o=o(l[0])),!Object.is(o,l[0]))if(l[0]=o,bg.length){let[c,f]=bg.at(-1);Promise.all([c===3?r:Bs([c,false,a],r),f]).then(([u])=>{if(!u||!(c===2||c===3))return;let d=u.vC;requestAnimationFrame(()=>{setTimeout(()=>{d===u.vC&&Bs([c===3?1:0,false,a],u);});});});}else Bs([0,false,a],r);}]};var sr=(t,e)=>{let n=pt.at(-1);if(!n)return t;let[,r]=n,s=r[ee][1][VT]||=[],i=r[ee][0]++,o=s[i];return wg(o?.[1],e)?s[i]=[t,e]:t=s[i][0],t};var Yc=t=>{let e=Xc.get(t);if(e){if(e.length===2)throw e[1];return e[0]}throw t.then(n=>Xc.set(t,[n]),n=>Xc.set(t,[void 0,n])),t},Zc=(t,e)=>{let n=pt.at(-1);if(!n)return t();let[,r]=n,s=r[ee][1][QT]||=[],i=r[ee][0]++,o=s[i];return wg(o?.[1],e)&&(s[i]=[t(),e]),s[i][0]};var _g=Co({pending:false,data:null,method:null,action:null}),Sg=new Set,Eg=t=>{Sg.add(t),t.finally(()=>Sg.delete(t));};var YT=()=>{eu=Object.create(null),tu=Object.create(null);},Oo=(t,e)=>Zc(()=>n=>{let r;t&&(typeof t=="function"?r=t(n)||(()=>{t(null);}):t&&"current"in t&&(t.current=n,r=()=>{t.current=null;}));let s=e(n);return ()=>{s?.(),r?.();}},[t]),eu=Object.create(null),tu=Object.create(null),qs=(t,e,n,r,s)=>{if(e?.itemProp)return {tag:t,props:e,type:t,ref:e.ref};let i=document.head,{onLoad:o,onError:a,precedence:l,blocking:c,...f}=e,u=null,d=false,p=er[t],g;if(p.length>0){let w=i.querySelectorAll(t);e:for(let S of w)for(let b of er[t])if(S.getAttribute(b)===e[b]){u=S;break e}if(!u){let S=p.reduce((b,_)=>e[_]===void 0?b:`${b}-${_}-${e[_]}`,t);d=!tu[S],u=tu[S]||=(()=>{let b=document.createElement(t);for(let _ of p)e[_]!==void 0&&b.setAttribute(_,e[_]),e.rel&&b.setAttribute("rel",e.rel);return b})();}}else g=i.querySelectorAll(t);l=r?l??"":void 0,r&&(f[tr]=l);let m=sr(w=>{if(p.length>0){let S=false;for(let b of i.querySelectorAll(t)){if(S&&b.getAttribute(tr)!==l){i.insertBefore(w,b);return}b.getAttribute(tr)===l&&(S=true);}i.appendChild(w);}else if(g){let S=false;for(let b of g)if(b===w){S=true;break}S||i.insertBefore(w,i.contains(g[0])?g[0]:i.querySelector(t)),g=void 0;}},[l]),h=Oo(e.ref,w=>{let S=p[0];if(n===2&&(w.innerHTML=""),(d||g)&&m(w),!a&&!o)return;let b=eu[w.getAttribute(S)]||=new Promise((_,E)=>{w.addEventListener("load",_),w.addEventListener("error",E);});o&&(b=b.then(o)),a&&(b=b.catch(a)),b.catch(()=>{});});if(s&&c==="render"){let w=er[t][0];if(e[w]){let S=e[w],b=eu[S]||=new Promise((_,E)=>{m(u),u.addEventListener("load",_),u.addEventListener("error",E);});Yc(b);}}let y={tag:t,type:t,props:{...f,ref:h},ref:h};return y.p=n,u&&(y.e=u),yg(y,i)},xg=t=>{let e=dg();return (e&&Re(e))?.endsWith("svg")?{tag:"title",props:t,type:"title",ref:t.ref}:qs("title",t,void 0,false,false)},Tg=t=>!t||["src","async"].some(e=>!t[e])?{tag:"script",props:t,type:"script",ref:t.ref}:qs("script",t,1,false,true),Rg=t=>!t||!["href","precedence"].every(e=>e in t)?{tag:"style",props:t,type:"style",ref:t.ref}:(t["data-href"]=t.href,delete t.href,qs("style",t,2,true,true)),Cg=t=>!t||["onLoad","onError"].some(e=>e in t)||t.rel==="stylesheet"&&(!("precedence"in t)||"disabled"in t)?{tag:"link",props:t,type:"link",ref:t.ref}:qs("link",t,1,"precedence"in t,true),kg=t=>qs("meta",t,void 0,false,false),vg=Symbol(),Ag=t=>{let{action:e,...n}=t;typeof e!="function"&&(n.action=e);let[r,s]=Ao([null,false]),i=sr(async c=>{let f=c.isTrusted?e:c.detail[vg];if(typeof f!="function")return;c.preventDefault();let u=new FormData(c.target);s([u,true]);let d=f(u);d instanceof Promise&&(Eg(d),await d),s([null,true]);},[]),o=Oo(t.ref,c=>(c.addEventListener("submit",i),()=>{c.removeEventListener("submit",i);})),[a,l]=r;return r[1]=false,{tag:_g,props:{value:{pending:a!==null,data:a,method:a?"post":null,action:a?e:null},children:{tag:"form",props:{...n,ref:o},type:"form",ref:o}},f:l}},Og=(t,{formAction:e,...n})=>{if(typeof e=="function"){let r=sr(s=>{s.preventDefault(),s.currentTarget.form.dispatchEvent(new CustomEvent("submit",{detail:{[vg]:e}}));},[]);n.ref=Oo(n.ref,s=>(s.addEventListener("click",r),()=>{s.removeEventListener("click",r);}));}return {tag:t,props:n,type:t,ref:n.ref}},Pg=t=>Og("input",t),$g=t=>Og("button",t);Object.assign($s,{title:xg,script:Tg,style:Rg,link:Cg,meta:kg,form:Ag,input:Pg,button:$g});Ps(null);new TextEncoder;var wn=":-hono-global",nR=new RegExp(`^${wn}{(.*)}$`),No="hono-css",Ct=Symbol(),ge=Symbol(),De=Symbol(),mt=Symbol(),Do=Symbol(),Lg=Symbol();var Fg=t=>{let e=0,n=11;for(;e<t.length;)n=101*n+t.charCodeAt(e++)>>>0;return "css-"+n},rR=['"(?:(?:\\\\[\\s\\S]|[^"\\\\])*)"',"'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'"].join("|"),sR=new RegExp(["("+rR+")","(?:"+["^\\s+","\\/\\*.*?\\*\\/\\s*","\\/\\/.*\\n\\s*","\\s+$"].join("|")+")","\\s*;\\s*(}|$)\\s*","\\s*([{};:,])\\s*","(\\s)\\s+"].join("|"),"g"),iR=t=>t.replace(sR,(e,n,r,s,i)=>n||r||s||i||""),Ug=(t,e)=>{let n=[],r=[],s=t[0].match(/^\s*\/\*(.*?)\*\//)?.[1]||"",i="";for(let o=0,a=t.length;o<a;o++){i+=t[o];let l=e[o];if(!(typeof l=="boolean"||l===null||l===void 0)){Array.isArray(l)||(l=[l]);for(let c=0,f=l.length;c<f;c++){let u=l[c];if(!(typeof u=="boolean"||u===null||u===void 0))if(typeof u=="string")/([\\"'\/])/.test(u)?i+=u.replace(/([\\"']|(?<=<)\/)/g,"\\$1"):i+=u;else if(typeof u=="number")i+=u;else if(u[Lg])i+=u[Lg];else if(u[ge].startsWith("@keyframes "))n.push(u),i+=` ${u[ge].substring(11)} `;else {if(t[o+1]?.match(/^\s*{/))n.push(u),u=`.${u[ge]}`;else {n.push(...u[mt]),r.push(...u[Do]),u=u[De];let d=u.length;if(d>0){let p=u[d-1];p!==";"&&p!=="}"&&(u+=";");}}i+=`${u||""}`;}}}}return [s,iR(i),n,r]},ir=(t,e)=>{let[n,r,s,i]=Ug(t,e),o=nR.exec(r);o&&(r=o[1]);let a=(o?wn:"")+Fg(n+r),l=(o?s.map(c=>c[ge]):[a,...i]).join(" ");return {[Ct]:a,[ge]:l,[De]:r,[mt]:s,[Do]:i}},jo=t=>{for(let e=0,n=t.length;e<n;e++){let r=t[e];typeof r=="string"&&(t[e]={[Ct]:"",[ge]:"",[De]:"",[mt]:[],[Do]:[r]});}return t},Lo=(t,...e)=>{let[n,r]=Ug(t,e);return {[Ct]:"",[ge]:`@keyframes ${Fg(n+r)}`,[De]:r,[mt]:[],[Do]:[]}},oR=0,Fo=((t,e)=>{t||(t=[`/* h-v-t ${oR++} */`]);let n=Array.isArray(t)?ir(t,e):t,r=n[ge],s=ir(["view-transition-name:",""],[r]);return n[ge]=wn+n[ge],n[De]=n[De].replace(/(?<=::view-transition(?:[a-z-]*)\()(?=\))/g,r),s[ge]=s[Ct]=r,s[mt]=[...n[mt],n],s});var lR=t=>{let e=[],n=0,r=0;for(let s=0,i=t.length;s<i;s++){let o=t[s];if(o==="'"||o==='"'){let a=o;for(s++;s<i;s++){if(t[s]==="\\"){s++;continue}if(t[s]===a)break}continue}if(o==="{"){r++;continue}if(o==="}"){r--,r===0&&(e.push(t.slice(n,s+1)),n=s+1);continue}}return e},su=({id:t})=>{let e,n=()=>(e||(e=document.querySelector(`style#${t}`)?.sheet,e&&(e.addedStyles=new Set)),e?[e,e.addedStyles]:[]),r=(o,a)=>{let[l,c]=n();if(!l||!c){Promise.resolve().then(()=>{if(!n()[0])throw new Error("style sheet not found");r(o,a);});return}c.has(o)||(c.add(o),(o.startsWith(wn)?lR(a):[`${o[0]==="@"?"":"."}${o}{${a}}`]).forEach(f=>{l.insertRule(f,l.cssRules.length);}));};return [{toString(){let o=this[Ct];return r(o,this[De]),this[mt].forEach(({[ge]:a,[De]:l})=>{r(a,l);}),this[ge]}},({children:o,nonce:a})=>({tag:"style",props:{id:t,nonce:a,children:o&&(Array.isArray(o)?o:[o]).map(l=>l[De])}})]};var uR=({id:t})=>{let[e,n]=su({id:t}),r=new WeakMap,s=new WeakMap,i=new RegExp(`(<style id="${t}"(?: nonce="[^"]*")?>.*?)(</style>)`),o=d=>{let p=({buffer:y,context:w})=>{let[S,b]=r.get(w),_=Object.keys(S);if(!_.length)return;let E="";if(_.forEach(v=>{b[v]=true,E+=v.startsWith(wn)?S[v]:`${v[0]==="@"?"":"."}${v}{${S[v]}}`;}),r.set(w,[{},b]),y&&i.test(y[0])){y[0]=y[0].replace(i,(v,P,C)=>`${P}${E}${C}`);return}let x=s.get(w),O=`<script${x?` nonce="${x}"`:""}>document.querySelector('#${t}').textContent+=${JSON.stringify(E)}</script>`;if(y){y[0]=`${O}${y[0]}`;return}return Promise.resolve(O)},g=({context:y})=>{r.has(y)||r.set(y,[{},{}]);let[w,S]=r.get(y),b=true;if(S[d[Ct]]||(b=false,w[d[Ct]]=d[De]),d[mt].forEach(({[ge]:_,[De]:E})=>{S[_]||(b=false,w[_]=E);}),!b)return Promise.resolve(Y("",[p]))},m=new String(d[ge]);Object.assign(m,d),m.isEscaped=true,m.callbacks=[g];let h=Promise.resolve(m);return Object.assign(h,d),h.toString=e.toString,h},a=(d,...p)=>o(ir(d,p)),l=(...d)=>(d=jo(d),a(Array(d.length).fill(""),...d)),c=Lo,f=((d,...p)=>o(Fo(d,p))),u=({children:d,nonce:p}={})=>Y(`<style id="${t}"${p?` nonce="${p}"`:""}>${d?d[De]:""}</style>`,[({context:g})=>{s.set(g,p);}]);return u[Ke]=n,{css:a,cx:l,keyframes:c,viewTransition:f,Style:u}},Ws=uR({id:No}),Mg=Ws.Style;function ye(t,e,n){let r;if(!e||!("children"in e))r=Fs(t,e,[]);else {let s=e.children;r=Array.isArray(s)?Fs(t,e,s):Fs(t,e,[s]);}return r.key=n,r}var iu=new _e().get("/*",async t=>{let e={js:"main.js",css:["styles.css"]},n="/static/",r=await Promise.resolve().then(()=>ia(Bg())).then(s=>s.default);try{let s=Object.values(r).find(i=>i.isEntry);if(!s)throw new Error("No entry found in manifest");e.js=s?.file,e.css=s?.css??[];}catch(s){console.warn("Couldn't find assets in manifest",s);}return t.html(ye(dt,{children:ye("html",{lang:"en","data-theme":"dark",style:"color-scheme: dark",class:"dark",children:[ye("head",{children:[ye("meta",{charset:"UTF-8"}),ye("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1"}),ye("link",{rel:"icon",href:n+"favicon.ico",type:"image/x-icon"}),ye("title",{children:"Supalite"}),ye(dt,{children:[ye("script",{type:"module",src:n+e?.js}),e?.css.map((s,i)=>ye("link",{rel:"stylesheet",href:n+s},i))]}),ye(Mg,{})]}),ye("body",{children:ye("div",{id:"root"})})]})}))});async function dR(t){return iu.fetch(t)}var pR={storage:"EXPERIMENTAL_STORAGE",cloud:"EXPERIMENTAL_CLOUD"},qg=["storage","cloud"],au=Object.fromEntries(qg.map(t=>[t,mR(t)]));function mR(t){let e=typeof process<"u"&&process.env||void 0;return e?e.NODE_ENV==="test"?true:e[pR[t]]==="1":false}function or(t){return au[t]}function hR(t,e){au[t]=e;}function Hg(){return qg.filter(t=>au[t])}function gR(){let t=Hg();if(t.length===0)return null;let e=t.includes("storage")?" Cloud sync (lite cloud deploy) is disabled.":"";return `EXPERIMENTAL FEATURES ENABLED: ${t.join(", ")} - not supported, do not use in production.${e}`}var ou=false;function Wg(t=e=>console.warn(e)){if(ou)return;if(typeof process<"u"&&process.env?.NODE_ENV==="test"){ou=true;return}let e=gR();e&&t(e),ou=true;}var yR=["/rest/v1","/auth/v1","/storage/v1"],bR=[/^\/auth\/v1\/(callback|authorize|verify)$/,/^\/auth\/v1\/oauth\//,/^\/auth\/v1\/sso\/saml\//,/^\/auth\/v1\/\.well-known\//,/^\/auth\/v1\/scim\/v2/],wR=/^\s*Mozilla\s*\/\s*5\s*\.\s*0/i;function SR(t){return yR.some(e=>t.startsWith(e))?!bR.some(e=>e.test(t)):false}function lu(){return {"Access-Control-Allow-Origin":"*"}}function _R(t){return t.startsWith("/storage/v1")}function Kg(t){return Cs(async(e,n)=>{if(e.req.method==="OPTIONS"||!SR(e.req.path))return n();let r=_R(e.req.path),s=e.req.header("Authorization")?.match(/^Bearer\s+(.+)$/)?.[1],i=e.req.header("apikey")??e.req.query("apikey");if(!i)return r?(s?.startsWith("sb_")&&e.set("ignoreAuthorization",true),n()):e.json({message:"No API key found in request",hint:"No `apikey` request header or url param was found."},401,{"sb-error-code":"UNAUTHORIZED_MISSING_API_KEY",...lu()});let o=await t(i,e);if(!o)return r?(s?.startsWith("sb_")&&e.set("ignoreAuthorization",true),n()):e.json({message:"Invalid API key",hint:"Double check your Supabase `apikey`"},401,{"sb-error-code":"UNAUTHORIZED_INVALID_API_KEY",...lu()});if(o.type==="secret"){let a=e.req.header("User-Agent");if(a&&wR.test(a))return e.json({message:"Forbidden use of secret API key in browser"},401,{"sb-error-code":"UNAUTHORIZED_INVALID_API_KEY_TYPE",...lu()})}return e.set("apiKeyType",o.type),s&&s!==i&&!s.startsWith("sb_")||(e.set("ignoreAuthorization",true),e.set("jwt",o.claims),typeof o.claims.sub=="string"&&e.set("userId",o.claims.sub)),n()})}function Jg(t){let e=t.config.auth?.publishable_key,n=t.config.auth?.secret_key,r=typeof e=="string"&&e.length>0,s=typeof n=="string"&&n.length>0;return !r&&!s?null:async i=>r&&i===e?{type:"publishable",claims:{role:"anon"}}:s&&i===n?{type:"secret",claims:{role:"service_role"}}:null}function Gg(t,e={}){let n=e.middlewares??[async(u,d)=>{await d();}],r=["GET","POST","PATCH","PUT","DELETE","OPTIONS","HEAD"],s=["authorization","apikey","content-type","cache-control","prefer","x-client-info","x-upsert","x-region","x-metadata","accept-profile","content-profile","range","range-unit","accept","x-supabase-api-version"],i=["Content-Range","Content-Location","Preference-Applied"],o=e.apiKeys===false?null:e.apiKeys?.resolver??Jg(t),a=o?Kg(o):async(u,d)=>{await d();},l=e.admin?Af(a):a,c=kf({origin:"*",allowMethods:r,allowHeaders:s,exposeHeaders:i,maxAge:86400}),f=async(u,d)=>{await d();let p=u.res.headers;p.has("Access-Control-Allow-Origin")||p.set("Access-Control-Allow-Origin","*"),p.set("Access-Control-Expose-Headers",i.join(", ")),u.req.method==="OPTIONS"&&(p.set("Access-Control-Allow-Methods",r.join(", ")),p.set("Access-Control-Allow-Headers",u.req.header("Access-Control-Request-Headers")??s.join(", ")),p.set("Access-Control-Max-Age","86400"));};return new _e().use("/storage/v1/*",c).use("/rest/v1/*",f).use(async(u,d)=>{u.set("app",t),t.config.auth?.enabled&&u.set("authService",Qh(t)),t.config.storage?.enabled&&t._storageAdapter&&or("storage")&&u.set("storageService",eg(t)),await d();}).use(...n).use(l).use($c()).route("/auth/v1",Nc).route("/rest/v1",Pm({forceRollback:e.forceRollback})).use("/storage/v1/*",async(u,d)=>{if(!or("storage"))return u.notFound();await d();}).route("/storage/v1",Fc).route("/_system",If).use(async(u,d)=>{if(!e.disableStudio&&t.config.studio?.enabled)return iu.fetch(u.req.raw);if(!e.disableFallback)return u.notFound();await d();})}var ER=t=>{let e=t.toJSON();return yt.fromSchema(e)},cu=class extends Error{constructor(n,r,s=[]){super(`Invalid schema given for ${JSON.stringify(r,null,2)}
193
194
 
194
195
  Error: ${JSON.stringify(s[0],null,2)}
195
196
 
196
- Schema: ${JSON.stringify(n.toJSON(),null,2)}`);this.schema=n;this.value=r;this.errors=s;}name="InvalidSchemaError";first(){return this.errors[0]}firstToString(){let n=this.first();return `${n.error} at ${n.instanceLocation}`}};function Oy(t,e,n){let r=n?.clone?$C(t):t,s=n?.coerce!==false?r.coerce(e,{dropUnknown:n?.coerceDropUnknown??false}):e;n?.withDefaults!==false&&(s=r.template(s,{withOptional:true,withExtendedOptional:n?.withExtendedDefaults??false}));let i=t.validate(s,{shortCircuit:true,ignoreUnsupported:true});if(!i.valid)if(n?.onError)n.onError(i.errors);else throw new rf(r,e,i.errors);return s}sr();var sf=`-- supabase/auth core schema (Postgres)
197
+ Schema: ${JSON.stringify(n.toJSON(),null,2)}`);this.schema=n;this.value=r;this.errors=s;}name="InvalidSchemaError";first(){return this.errors[0]}firstToString(){let n=this.first();return `${n.error} at ${n.instanceLocation}`}};function Vg(t,e,n){let r=n?.clone?ER(t):t,s=n?.coerce!==false?r.coerce(e,{dropUnknown:n?.coerceDropUnknown??false}):e;n?.withDefaults!==false&&(s=r.template(s,{withOptional:true,withExtendedOptional:n?.withExtendedDefaults??false}));let i=t.validate(s,{shortCircuit:true,ignoreUnsupported:true});if(!i.valid)if(n?.onError)n.onError(i.errors);else throw new cu(r,e,i.errors);return s}Un();var uu=`-- supabase/auth core schema (Postgres)
197
198
  -- Scope: Core Authentication + User Management
198
199
  -- Source: GoTrue migrations + runtime analysis
199
200
 
@@ -361,6 +362,36 @@ CREATE TABLE IF NOT EXISTS auth.identities (
361
362
  CREATE INDEX IF NOT EXISTS identities_user_id_idx ON auth.identities (user_id);
362
363
  CREATE INDEX IF NOT EXISTS identities_email_idx ON auth.identities (email);
363
364
 
365
+ -- ============================================================
366
+ -- FLOW STATE (OAuth / PKCE)
367
+ -- ============================================================
368
+
369
+ CREATE TABLE IF NOT EXISTS auth.flow_state (
370
+ id uuid PRIMARY KEY, -- app-generated UUID
371
+ user_id uuid,
372
+ auth_code text,
373
+ authentication_method text NOT NULL,
374
+ code_challenge_method text CHECK (code_challenge_method IN ('s256', 'plain')),
375
+ code_challenge text,
376
+ provider_type text NOT NULL,
377
+ provider_access_token text,
378
+ provider_refresh_token text,
379
+ auth_code_issued_at timestamptz,
380
+ invite_token text,
381
+ referrer text,
382
+ oauth_client_state_id uuid,
383
+ linking_target_id uuid,
384
+ email_optional boolean NOT NULL DEFAULT false,
385
+ created_at timestamptz DEFAULT now(),
386
+ updated_at timestamptz DEFAULT now()
387
+ );
388
+
389
+ CREATE INDEX IF NOT EXISTS idx_auth_code ON auth.flow_state (auth_code);
390
+ CREATE INDEX IF NOT EXISTS idx_user_id_auth_method ON auth.flow_state (user_id, authentication_method);
391
+ -- Supports the opportunistic cleanup of abandoned flows on /authorize
392
+ -- (GoTrue prunes flow_state by created_at in internal/models/cleanup.go).
393
+ CREATE INDEX IF NOT EXISTS flow_state_created_at_idx ON auth.flow_state (created_at);
394
+
364
395
  -- ============================================================
365
396
  -- AUDIT LOG
366
397
  -- ============================================================
@@ -371,7 +402,7 @@ CREATE TABLE IF NOT EXISTS auth.audit_log_entries (
371
402
  created_at timestamptz DEFAULT now(),
372
403
  ip_address varchar(64) DEFAULT ''
373
404
  );
374
- `;function of(t=true){return t?Ts(sf):sf}function Ge(t){return t.dialect==="postgres"?"pg":t.config?.ddlDialect==="sqlite"?"sqlite":"pg-flat"}function jt(t){return t==="sqlite"?{schema_migrations:"migrations",seed_files:"seed_files"}:t==="pg-flat"?{schema_migrations:'"supabase_migrations.schema_migrations"',seed_files:'"supabase_migrations.seed_files"'}:{schema_migrations:"supabase_migrations.schema_migrations",seed_files:"supabase_migrations.seed_files"}}function Nr(t){return `'${t.replace(/'/g,"''")}'`}function PC(t){return `'${`{${t.map(r=>`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`).join(",")}}`.replace(/'/g,"''")}'`}function Py(t,e){return e==null?"NULL":t==="pg"?PC(e):Nr(JSON.stringify(e))}function af(t){return t==null?"NULL":Nr(t)}function Ny(t){if(t==null)return [];if(Array.isArray(t))return t;if(typeof t=="string"){let e=t.trim();if(e==="")return [];try{let n=JSON.parse(e);return Array.isArray(n)?n:[]}catch{return []}}return []}function Iy(t){return {version:String(t.version),name:t.name??null,statements:Ny(t.statements),rollback:Ny(t.rollback),created_by:t.created_by??null,idempotency_key:t.idempotency_key??null}}var NC=[{name:"created_by",pgType:"text",sqliteType:"TEXT"},{name:"idempotency_key",pgType:"text",sqliteType:"TEXT"},{name:"rollback",pgType:"text[]",sqliteType:"TEXT"}];function Dy(t){let{schema_migrations:e,seed_files:n}=jt(t);return t==="pg"?["CREATE SCHEMA IF NOT EXISTS supabase_migrations",`CREATE TABLE IF NOT EXISTS ${e} (
405
+ `;function fu(t=true){return t?Vr(uu):uu}function Je(t){return t.dialect==="postgres"?"pg":t.config?.ddlDialect==="sqlite"?"sqlite":"pg-flat"}function kt(t){return t==="sqlite"?{schema_migrations:"migrations",seed_files:"seed_files"}:t==="pg-flat"?{schema_migrations:'"supabase_migrations.schema_migrations"',seed_files:'"supabase_migrations.seed_files"'}:{schema_migrations:"supabase_migrations.schema_migrations",seed_files:"supabase_migrations.seed_files"}}function ar(t){return `'${t.replace(/'/g,"''")}'`}function TR(t){return `'${`{${t.map(r=>`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`).join(",")}}`.replace(/'/g,"''")}'`}function Qg(t,e){return e==null?"NULL":t==="pg"?TR(e):ar(JSON.stringify(e))}function du(t){return t==null?"NULL":ar(t)}function Xg(t){if(t==null)return [];if(Array.isArray(t))return t;if(typeof t=="string"){let e=t.trim();if(e==="")return [];try{let n=JSON.parse(e);return Array.isArray(n)?n:[]}catch{return []}}return []}function Yg(t){return {version:String(t.version),name:t.name??null,statements:Xg(t.statements),rollback:Xg(t.rollback),created_by:t.created_by??null,idempotency_key:t.idempotency_key??null}}var RR=[{name:"created_by",pgType:"text",sqliteType:"TEXT"},{name:"idempotency_key",pgType:"text",sqliteType:"TEXT"},{name:"rollback",pgType:"text[]",sqliteType:"TEXT"}];function Zg(t){let{schema_migrations:e,seed_files:n}=kt(t);return t==="pg"?["CREATE SCHEMA IF NOT EXISTS supabase_migrations",`CREATE TABLE IF NOT EXISTS ${e} (
375
406
  version text NOT NULL PRIMARY KEY,
376
407
  statements text[],
377
408
  name text,
@@ -391,12 +422,12 @@ CREATE TABLE IF NOT EXISTS auth.audit_log_entries (
391
422
  )`,`CREATE TABLE IF NOT EXISTS ${n} (
392
423
  path TEXT NOT NULL PRIMARY KEY,
393
424
  hash TEXT NOT NULL
394
- )`]}function jy(t){let{schema_migrations:e}=jt(t);return [`CREATE UNIQUE INDEX IF NOT EXISTS ${t==="sqlite"?"migrations_idempotency_key_idx":"schema_migrations_idempotency_key_idx"} ON ${e} (idempotency_key)`]}function IC(t){let e=Dy(t),n=jy(t);return [...e.slice(0,1),...n,...e.slice(1)]}function lf(t){return IC(t).map(e=>e.trim()).join(`;
395
- `)+";"}function DC(t,e){let{schema_migrations:n}=jt(t);return `INSERT INTO ${n} (version, name, statements, rollback, created_by, idempotency_key) VALUES (${Nr(e.version)}, ${af(e.name)}, ${Py(t,e.statements)}, ${Py(t,e.rollback??null)}, ${af(e.created_by??null)}, ${af(e.idempotency_key??null)}) ON CONFLICT (idempotency_key) DO UPDATE SET version = EXCLUDED.version, name = EXCLUDED.name, statements = EXCLUDED.statements, rollback = EXCLUDED.rollback, created_by = EXCLUDED.created_by`}function jC(t,e){let{schema_migrations:n}=jt(t);return `DELETE FROM ${n} WHERE version = ${Nr(e)}`}function LC(t){let{schema_migrations:e}=jt(t);return `SELECT version FROM ${e} ORDER BY version ASC`}var Ly="version, name, statements, rollback, created_by, idempotency_key";function FC(t){let{schema_migrations:e}=jt(t);return `SELECT ${Ly} FROM ${e} ORDER BY version ASC`}function MC(t,e){let{schema_migrations:n}=jt(t);return `SELECT ${Ly} FROM ${n} WHERE version = ${Nr(e)}`}function UC(t,e){let{schema_migrations:n}=jt(t);return `DELETE FROM ${n} WHERE version >= ${Nr(e)}`}async function BC(t,e){let{schema_migrations:n}=jt(e);for(let r of NC){let s=e==="pg"?r.pgType:r.sqliteType;if(e==="pg")await t.exec(`ALTER TABLE ${n} ADD COLUMN IF NOT EXISTS ${r.name} ${s}`);else try{await t.exec(`ALTER TABLE ${n} ADD COLUMN ${r.name} ${s}`);}catch{}}}async function cf(t){let e=Ge(t);for(let n of Dy(e))await t.exec(n);await BC(t,e);for(let n of jy(e))await t.exec(n);}async function qC(t){let e=Ge(t);return ((await t.exec(LC(e)))?.rows??[]).map(r=>r.version)}async function HC(t,e){let n=Ge(t);await t.exec(DC(n,e));}async function WC(t,e){let n=Ge(t);await t.exec(jC(n,e));}async function KC(t){let e=Ge(t);return ((await t.exec(FC(e)))?.rows??[]).map(Iy)}async function JC(t,e){let n=Ge(t),s=(await t.exec(MC(n,e)))?.rows?.[0];return s?Iy(s):null}async function zC(t,e){let n=Ge(t);await t.exec(UC(n,e));}sr();var uf=[{schema:"auth",enabled:t=>!!t.config.auth?.enabled,getSchemaSql:()=>of(),provision:"baseSchema"},{schema:"storage",enabled:t=>!!(t.config.storage?.enabled&&t.storageAdapter&&Pr("storage")),getSchemaSql:()=>ia(),provision:"baseSchema"},{schema:"supabase_migrations",enabled:t=>(t.config.db?.migrations?.enabled??true)!==false,getSchemaSql:t=>lf(Ge(t.connection)),provision:"direct"}],Fy=uf.filter(t=>t.provision==="baseSchema").map(t=>t.schema);function My(t){return uf.filter(e=>e.provision==="baseSchema"&&e.enabled(t)).map(e=>e.getSchemaSql(t)).filter(Boolean).join(`
425
+ )`]}function ey(t){let{schema_migrations:e}=kt(t);return [`CREATE UNIQUE INDEX IF NOT EXISTS ${t==="sqlite"?"migrations_idempotency_key_idx":"schema_migrations_idempotency_key_idx"} ON ${e} (idempotency_key)`]}function CR(t){let e=Zg(t),n=ey(t);return [...e.slice(0,1),...n,...e.slice(1)]}function pu(t){return CR(t).map(e=>e.trim()).join(`;
426
+ `)+";"}function kR(t,e){let{schema_migrations:n}=kt(t);return `INSERT INTO ${n} (version, name, statements, rollback, created_by, idempotency_key) VALUES (${ar(e.version)}, ${du(e.name)}, ${Qg(t,e.statements)}, ${Qg(t,e.rollback??null)}, ${du(e.created_by??null)}, ${du(e.idempotency_key??null)}) ON CONFLICT (idempotency_key) DO UPDATE SET version = EXCLUDED.version, name = EXCLUDED.name, statements = EXCLUDED.statements, rollback = EXCLUDED.rollback, created_by = EXCLUDED.created_by`}function vR(t,e){let{schema_migrations:n}=kt(t);return `DELETE FROM ${n} WHERE version = ${ar(e)}`}function AR(t){let{schema_migrations:e}=kt(t);return `SELECT version FROM ${e} ORDER BY version ASC`}var ty="version, name, statements, rollback, created_by, idempotency_key";function OR(t){let{schema_migrations:e}=kt(t);return `SELECT ${ty} FROM ${e} ORDER BY version ASC`}function PR(t,e){let{schema_migrations:n}=kt(t);return `SELECT ${ty} FROM ${n} WHERE version = ${ar(e)}`}function $R(t,e){let{schema_migrations:n}=kt(t);return `DELETE FROM ${n} WHERE version >= ${ar(e)}`}async function IR(t,e){let{schema_migrations:n}=kt(e);for(let r of RR){let s=e==="pg"?r.pgType:r.sqliteType;if(e==="pg")await t.exec(`ALTER TABLE ${n} ADD COLUMN IF NOT EXISTS ${r.name} ${s}`);else try{await t.exec(`ALTER TABLE ${n} ADD COLUMN ${r.name} ${s}`);}catch{}}}async function mu(t){let e=Je(t);for(let n of Zg(e))await t.exec(n);await IR(t,e);for(let n of ey(e))await t.exec(n);}async function NR(t){let e=Je(t);return ((await t.exec(AR(e)))?.rows??[]).map(r=>r.version)}async function DR(t,e){let n=Je(t);await t.exec(kR(n,e));}async function jR(t,e){let n=Je(t);await t.exec(vR(n,e));}async function hu(t){let e=Je(t);return ((await t.exec(OR(e)))?.rows??[]).map(Yg)}async function LR(t,e){let n=Je(t),s=(await t.exec(PR(n,e)))?.rows?.[0];return s?Yg(s):null}async function FR(t,e){let n=Je(t);await t.exec($R(n,e));}Un();var gu=[{schema:"auth",enabled:t=>!!t.config.auth?.enabled,getSchemaSql:()=>fu(),provision:"baseSchema"},{schema:"storage",enabled:t=>!!(t.config.storage?.enabled&&t.storageAdapter&&or("storage")),getSchemaSql:()=>xo(),provision:"baseSchema"},{schema:"supabase_migrations",enabled:t=>(t.config.db?.migrations?.enabled??true)!==false,getSchemaSql:t=>pu(Je(t.connection)),provision:"direct"}],ny=gu.filter(t=>t.provision==="baseSchema").map(t=>t.schema);function ry(t){return gu.filter(e=>e.provision==="baseSchema"&&e.enabled(t)).map(e=>e.getSchemaSql(t)).filter(Boolean).join(`
396
427
 
397
- `)}function Uy(t){return !!uf.find(n=>n.schema==="supabase_migrations")?.enabled(t)}async function By(t){let e=t.config?.baseSchema;if(!e||!e.trim())return;let n=t,r=e;if(n.dialect==="sqlite"&&n.config.ddlDialect!=="sqlite"&&n.translateDdl){let s=await n.translateDdl(e);r=typeof s=="string"?s:s.ddl??e;}for(let s of Em(r))try{await n.exec(s);}catch{}}var ff=class{_connection;_rls;config;server;drivers;#e;#t=false;_mailer;_storageAdapter;_transformationAdapter;constructor({connection:e,options:n={},rls:r,...s}){this._connection=e,this._rls=r,this.#e=n.system??{},this.drivers=Eg(n.drivers),this.config=Oy(Ui,s,{withDefaults:n.defaults??true}),this.server=$y(this,n.server);}get connection(){if(this._connection instanceof Promise)throw new Error("Connection is not available yet");return this._connection}async init(){if(this.#t)return this;ky(),this.config.auth?.enabled&&Go(this.config.auth),await this._connection;let e=this.connection;if(e.config.schemaCache??=this.drivers.cache,e.config.baseSchema=[e.config.baseSchema??"",My(this.#n())].filter(Boolean).join(`
428
+ `)}function sy(t){return !!gu.find(n=>n.schema==="supabase_migrations")?.enabled(t)}async function iy(t){let e=t.config?.baseSchema;if(!e||!e.trim())return;let n=t,r=e;if(n.dialect==="sqlite"&&n.config.ddlDialect!=="sqlite"&&n.translateDdl){let s=await n.translateDdl(e);r=typeof s=="string"?s:s.ddl??e;}for(let s of kp(r))try{await n.exec(s);}catch{}}var yu=class{_connection;_rls;config;server;adminMode;drivers;#t;#e=false;_mailer;_storageAdapter;_transformationAdapter;constructor({connection:e,options:n={},rls:r,...s}){this._connection=e,this._rls=r,this.#t=n.system??{},this.drivers=Nh(n.drivers),this.config=Vg(fi,s,{withDefaults:n.defaults??true}),this.adminMode=n.server?.admin===true,this.server=Gg(this,n.server);}get connection(){if(this._connection instanceof Promise)throw new Error("Connection is not available yet");return this._connection}async init(){if(this.#e)return this;Wg(),this.config.auth?.enabled&&mo(this.config.auth),await this._connection;let e=this.connection;if(e.config.schemaCache??=this.drivers.cache,e.config.baseSchema=[e.config.baseSchema??"",ry(this.#n())].filter(Boolean).join(`
398
429
 
399
- `),this._rls){let n=e;if(typeof n.updateDeparseInfo=="function"){let r=n.config.translation?.deparse;n.updateDeparseInfo({enums:r?.enums??new Map,schema:r?.schema??new Map,vars:r?.vars??new Map,...r,rls:{tables:new Set(this._rls.tables),policies:this._rls.policies}});}}return this.#t=true,this}#n(){return {config:this.config,connection:this.connection,storageAdapter:this._storageAdapter}}async ensureSystemSchema(e){await this.init();let n=this.connection,r=this.#n();if(Uy(r)&&await cf(n),(this.#e.schemaReconciliation??"additive")==="full"&&Ge(n)!=="sqlite"){let i=n.createMigrator(""),{plan:o}=await i.diff({schemas:Fy});await i.migratePlan(o,{force:e?.force});}else await By(n);}isValidConfig(e){if(typeof e=="object"&&e!==null&&("connection"in e||"options"in e)){let{connection:n,options:r,...s}=e;return Ui.validate(s).valid}return Ui.validate(e).valid}getClient(e){return createClient("http://localhost","<nokey>",{...e,global:{...e?.global,fetch:async(n,r)=>{let s=new Request(n,r);return Object.assign(s,{[yr]:true}),await this.fetch(s)}}})}isLocalRequest(e){return yr in e}fetch=async e=>(await this.init(),this.server.fetch(e));getInfoJson(){return JSON.parse(jsonStringify({connection:this.connection?.config??{},config:this.config}))}};var qy=class extends Error{name="UnableToCreateRuntimeConnection";constructor(e){super(`Unable to create runtime connection: ${e}`);}},Hy=class extends Error{constructor(n,r,s){super(`Failed to translate Postgres to SQLite DDL: ${String(s)}`);this.pgSql=n;this.sqliteDdl=r;this.cause=s;}name="InvalidPostgresToSQLiteTranslation"};_a();Rs();var QC=(t={})=>{let e=(n="m")=>[...t.exclude_tables??[],"sqlite_%"].map(r=>r.includes("%")?`${n}.name NOT LIKE '${r}'`:`${n}.name != '${r}'`).join(" AND ");return `WITH table_info AS (SELECT
430
+ `),this._rls){let n=e;if(typeof n.updateDeparseInfo=="function"){let r=n.config.translation?.deparse;n.updateDeparseInfo({enums:r?.enums??new Map,schema:r?.schema??new Map,vars:r?.vars??new Map,...r,rls:{tables:new Set(this._rls.tables),policies:this._rls.policies}});}}return this.#e=true,this}#n(){return {config:this.config,connection:this.connection,storageAdapter:this._storageAdapter}}async ensureSystemSchema(e){await this.init();let n=this.connection,r=this.#n();if(sy(r)&&await mu(n),(this.#t.schemaReconciliation??"additive")==="full"&&Je(n)!=="sqlite"){let i=n.createMigrator(""),{plan:o}=await i.diff({schemas:ny});await i.migratePlan(o,{force:e?.force});}else await iy(n);}isValidConfig(e){if(typeof e=="object"&&e!==null&&("connection"in e||"options"in e)){let{connection:n,options:r,...s}=e;return fi.validate(s).valid}return fi.validate(e).valid}getClient(e){let n=s=>{let i=s?.trim();return i&&i.length>0?i:void 0},r=n(e?.apikey)??n(this.config.auth?.publishable_key)??"<nokey>";return createClient("http://localhost",r,{...e,global:{...e?.global,fetch:async(s,i)=>{let o=new Request(s,i);return Object.assign(o,{[kn]:true}),await this.fetch(o)}}})}isLocalRequest(e){return kn in e}fetch=async e=>(await this.init(),this.server.fetch(e));getInfoJson(){return JSON.parse(jsonStringify({connection:this.connection?.config??{},config:this.config}))}};var oy=class extends Error{name="UnableToCreateRuntimeConnection";constructor(e){super(`Unable to create runtime connection: ${e}`);}},ay=class extends Error{constructor(n,r,s){super(`Failed to translate Postgres to SQLite DDL: ${String(s)}`);this.pgSql=n;this.sqliteDdl=r;this.cause=s;}name="InvalidPostgresToSQLiteTranslation"};Uo();Qr();var BR=(t={})=>{let e=(n="m")=>[...t.exclude_tables??[],"sqlite_%"].map(r=>r.includes("%")?`${n}.name NOT LIKE '${r}'`:`${n}.name != '${r}'`).join(" AND ");return `WITH table_info AS (SELECT
400
431
  json_group_array(
401
432
  json_object(
402
433
  'name', m.name,
@@ -597,14 +628,15 @@ CREATE TABLE IF NOT EXISTS auth.audit_log_entries (
597
628
  (SELECT data FROM trigger_info) AS triggers,
598
629
  (SELECT data FROM unique_info) AS unique_constraints,
599
630
  ${t.name?`'${t.name}'`:"'sqlite'"} AS database_name,
600
- ${t.version?`'${t.version}'`:"sqlite_version()"} AS version;`};function on(t){if(!t)return [];try{return Array.isArray(t)?t:JSON.parse(t)}catch{return []}}async function Jy(t,e={}){let r=(await t.exec(QC(e)))?.rows?.[0]||{};return {tables:on(r.tables),columns:on(r.columns),indexes:on(r.indexes),foreign_keys:on(r.foreign_keys),primary_keys:on(r.primary_keys),views:on(r.views),triggers:on(r.triggers),check_constraints:[],unique_constraints:on(r.unique_constraints),comments:[],custom_types:[],database_name:r.database_name??"sqlite",version:r.version??""}}function XC(t,e){if(!t||!e.ref_column)return;let n=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`CONSTRAINT\\s+("?)(\\w+)\\1\\s+FOREIGN\\s+KEY\\s*\\(\\s*"?${n(e.column)}"?\\s*\\)\\s+REFERENCES\\s+"?${n(e.ref_table)}"?\\s*\\(\\s*"?${n(e.ref_column)}"?\\s*\\)`,"i");return t.match(r)?.[2]}function zy(t){return t.startsWith("fk_")&&!t.endsWith("_fkey")}function df(t){return `${t.schema}.${t.table}.${t.foreign_key_name}.${t.ref_schema??""}.${t.ref_table}`}function YC(t){let e=new Map;for(let r of t){if(!zy(r.foreign_key_name))continue;let s=e.get(df(r));s?s.push(r):e.set(df(r),[r]);}let n=new Map;for(let[r,s]of e)s.length<2||n.set(r,`${s[0].table}_${s.map(i=>i.column).join("_")}_fkey`);return n.size===0?t:t.map(r=>{let s=n.get(df(r));return s?{...r,foreign_key_name:s}:r})}function Vy(t){if(!t.tables?.length||!t.foreign_keys?.length)return t;let e=new Map(t.tables.map(r=>[r.name,r.sql])),n=t.foreign_keys.map(r=>{if(r.foreign_key_name?.endsWith("_fkey")||r.foreign_key_name&&!zy(r.foreign_key_name))return r;let s=e.get(r.table),i=XC(s,r);return i?{...r,foreign_key_name:i}:r});return {...t,foreign_keys:YC(n)}}function mf(t){let e=t.trim();return e.startsWith('"')&&e.endsWith('"')||e.startsWith("`")&&e.endsWith("`")||e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):e}function ZC(t){let e=[],n="",r=0,s=null;for(let i=0;i<t.length;i++){let o=t[i];if(s){n+=o,o===s&&(s=null);continue}if(o==='"'||o==="`"||o==="'"){s=o,n+=o;continue}if(o==="("?r++:o===")"&&r>0&&r--,o===","&&r===0){e.push(n.trim()),n="";continue}n+=o;}return n.trim()&&e.push(n.trim()),e}function ev(t){let e=t.match(/^(.*?)\s+as\s+(.+)$/i),n=e?e[1].trim():t.trim(),r=e?e[2].trim():void 0;if(!r){let o=t.match(/^(.+?)\s+((?:"[^"]+"|`[^`]+`|\[[^\]]+\]|\w+))$/);o&&!/[()]/.test(o[1])&&(n=o[1].trim(),r=o[2].trim());}let s=n.split(".").map(mf);if(s.length>2)return null;let i=s.at(-1);return !i||!/^[A-Za-z_][\w$]*$/.test(i)?null:{baseColumn:i,viewColumn:r?mf(r):i}}function Gy(t){return !!(t&&/[A-Za-z0-9_$]/.test(t))}function tv(t){let e=/\bselect\b/i.exec(t);if(!e)return null;let n=0,r=null;for(let s=e.index+e[0].length;s<t.length;s++){let i=t[s];if(r){i===r&&(r=null);continue}if(i==='"'||i==="`"||i==="'"){r=i;continue}if(i==="("){n++;continue}if(i===")"&&n>0){n--;continue}if(n===0&&t.slice(s,s+4).toLowerCase()==="from"&&!Gy(t[s-1])&&!Gy(t[s+4]))return {selectList:t.slice(e.index+e[0].length,s).trim(),fromRest:t.slice(s+4).trim()}}return null}function nv(t){let e=0,n=[];for(;e<t.length;){for(;/\s/.test(t[e]??"");)e++;let r=t[e],s="";if(r==='"'||r==="`"){let a=t.indexOf(r,e+1);if(a===-1)return null;s=t.slice(e,a+1),e=a+1;}else if(r==="["){let a=t.indexOf("]",e+1);if(a===-1)return null;s=t.slice(e,a+1),e=a+1;}else {let a=/^[A-Za-z_][\w$]*/.exec(t.slice(e));if(!a)return null;s=a[0],e+=s.length;}n.push(s);let i=t.slice(e),o=/^\s*\./.exec(i);if(!o)break;e+=o[0].length;}return n.length===0?null:{raw:n.join("."),rest:t.slice(e).trim()}}function Qy(t,e,n){let r=t.get(e)??[];r.includes(n)||r.push(n),t.set(e,r);}function rv(t,e){if(!t)return null;let n=tv(t);if(!n)return null;let r=nv(n.fromRest);if(!r)return null;let{raw:s,rest:i}=r;if(/\b(join|union|intersect|except)\b/i.test(i))return null;let o=s.split(".").map(mf).at(-1);if(!o)return null;let a=new Map,l=e.get(o)??new Set;for(let c of ZC(n.selectList)){let u=c.trim();if(u==="*"||u.endsWith(".*")){for(let p of l)Qy(a,p,p);continue}let f=ev(c);f&&Qy(a,f.baseColumn,f.viewColumn);}return a.size===0?null:{baseTable:o,columns:a}}function sv(t,e){let n=new Map;for(let[r,s]of e){let i=[];for(let o of s){let a=t.get(o);if(a)for(let l of a)i.includes(l)||i.push(l);}i.length>0&&n.set(r,i);}return n}function iv(t){let e=new Map,n=new Map;for(let a of t.columns??[]){let l=n.get(a.table)??new Set;l.add(a.name),n.set(a.table,l);}let r=(a,l)=>{let c=e.get(a)??[];c.some(u=>u.name===l.name&&u.schema===l.schema)||c.push(l),e.set(a,c);};for(let a of t.tables??[]){if(a.type!=="table")continue;let l=n.get(a.name);l&&r(a.name,{name:a.name,schema:a.schema,columnByBaseColumn:new Map([...l].map(c=>[c,[c]]))});}let s=new Map;for(let a of t.views??[]){let l=rv(a.sql,n);if(!l)continue;let c=n.get(a.name);if(!c)continue;let u=new Map;for(let[p,d]of l.columns){let g=d.filter(m=>c.has(m));g.length>0&&u.set(p,g);}if(u.size===0)continue;let f={name:a.name,schema:a.schema,columnByBaseColumn:u,fromRelation:l.baseTable};s.set(a.name,f);}let i=16;function o(a,l,c){if(l>i)return null;let u=a.fromRelation;if(e.has(u))return {physicalBase:u,columnByBaseColumn:a.columnByBaseColumn};let f=s.get(u);if(!f||c.has(u))return null;c.add(u);let p=o(f,l+1,c);if(c.delete(u),!p)return null;let d=sv(a.columnByBaseColumn,p.columnByBaseColumn);return d.size===0?null:{physicalBase:p.physicalBase,columnByBaseColumn:d}}for(let a of s.values()){let l=o(a,0,new Set([a.name]));l&&r(l.physicalBase,{name:a.name,schema:a.schema,columnByBaseColumn:l.columnByBaseColumn});}return e}function Xy(t){return `${t.foreign_key_group??""}:${t.table}.${t.column}->${t.ref_table}.${t.ref_column}`}function ov(t){let e=new Map;for(let n of t){let r=`${n.schema}.${n.table}.${n.foreign_key_name}.${n.ref_schema??""}.${n.ref_table}`,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function av(t){let e=[[]];for(let n of t){let r=[];for(let s of e)for(let i of n)r.push([...s,i]);e=r;}return e}function lv(t,e,n,r){let s=r.map(o=>o.childColumn).join(","),i=r.map(o=>o.parentColumn).join(",");return `${n}:${t.name}(${s})->${e.name}(${i})`}function Yy(t){if(!t.foreign_keys?.length||!t.views?.length)return t;let e=iv(t),n=new Set(t.foreign_keys.map(Xy)),r=[];for(let s of ov(t.foreign_keys)){let i=s[0],o=e.get(i.table)??[],a=e.get(i.ref_table)??[];for(let l of o)for(let c of a){if(l.schema!==c.schema)continue;let u=[];for(let f of s){let p=l.columnByBaseColumn.get(f.column)??[],d=c.columnByBaseColumn.get(f.ref_column)??[],g=p.flatMap(m=>d.map(h=>({fk:f,childColumn:m,parentColumn:h})));if(g.length===0){u.length=0;break}u.push(g);}for(let f of av(u)){let d=l.name===i.table&&c.name===i.ref_table&&f.every(g=>g.childColumn===g.fk.column&&g.parentColumn===g.fk.ref_column)?void 0:lv(l,c,i.foreign_key_name,f);for(let g of f){let m={...g.fk,table:l.name,column:g.childColumn,schema:l.schema,ref_table:c.name,ref_column:g.parentColumn,ref_schema:c.schema,foreign_key_group:d},h=Xy(m);n.has(h)||(n.add(h),r.push(m));}}}}return r.length?{...t,foreign_keys:[...t.foreign_keys,...r]}:t}var hv=new Set(["AlterTableNode","CreateIndexNode","CreateSchemaNode","CreateTableNode","CreateTypeNode","CreateViewNode","RefreshMaterializedViewNode","DeleteQueryNode","DropIndexNode","DropSchemaNode","DropTableNode","DropTypeNode","DropViewNode","InsertQueryNode","RawNode","SelectQueryNode","UpdateQueryNode","MergeQueryNode"]),hf=class extends OperationNodeTransformer{constructor(n){super();this.config=n;}#e=new Set;#t=new Set;transformNodeImpl(n,r){if(!hv.has(n.kind))return super.transformNodeImpl(n,r);let s=this.#s(n);for(let o of s)this.#t.add(o);let i=this.#n(n);for(let o of i)this.#e.add(o);try{return super.transformNodeImpl(n,r)}finally{for(let o of i)this.#e.delete(o);for(let o of s)this.#t.delete(o);}}transformSchemableIdentifier(n,r){let s=n.identifier.name,i=n.schema?.name,o=!i&&this.config.appendDefaultSchema&&this.config.defaultSchema&&!this.#t.has(s)&&this.#e.has(s),a=i??(o?this.config.defaultSchema:void 0);if(!a)return {kind:"SchemableIdentifierNode",schema:void 0,identifier:{kind:"IdentifierNode",name:s}};let l=this.config.approach==="snake_case"?"__":".";return {kind:"SchemableIdentifierNode",schema:void 0,identifier:{kind:"IdentifierNode",name:`${a}${l}${s}`}}}#n(n){let r=new Set;if(n?.name&&SchemableIdentifierNode.is(n.name)&&this.#r(n.name,r),n?.from?.froms)for(let s of n.from.froms)this.#i(s,r);if(n?.into&&this.#i(n.into,r),n?.table&&this.#i(n.table,r),n?.joins)for(let s of n.joins)this.#i(s.table,r);return n?.using&&(JoinNode.is(n.using)?this.#i(n.using.table,r):this.#i(n.using,r)),r}#i(n,r){if(TableNode.is(n)){this.#r(n.table,r);return}if(AliasNode.is(n)&&TableNode.is(n.node)){this.#r(n.node.table,r);return}if(ListNode.is(n)){for(let s of n.items)this.#i(s,r);return}if(UsingNode.is(n))for(let s of n.tables)this.#i(s,r);}#r(n,r){let s=n.identifier.name;this.#t.has(s)||r.add(s);}#s(n){let r=new Set;if(n?.with?.expressions)for(let s of n.with.expressions){let i=s?.name?.table?.table?.identifier?.name;i&&r.add(i);}return r}},Ea=class{#e;constructor(e){this.#e=new hf(e);}transformQuery(e){return this.#e.transformNode(e.node)}async transformResult(e){return e.result}};Si();gf();yf();function wv(t,e){return t==="migrations"||t==="supabase_migrations.schema_migrations"||t==="supabase_migrations.seed_files"||e==="sqlite"&&t==="seed_files"}function eb(t,e){let n=r=>wv(r,e);return {...t,tables:t.tables.filter(r=>!n(r.name)),columns:t.columns.filter(r=>!n(r.table)),indexes:t.indexes.filter(r=>!n(r.table)),foreign_keys:t.foreign_keys.filter(r=>!n(r.table)),primary_keys:t.primary_keys.filter(r=>!n(r.table))}}function jr(t,e,n){return n.includes(t)?true:n.some(r=>e.startsWith(`${r}.`)||e.startsWith(`${r}__`))}function tb(t,e){let n=t.tables.filter(i=>jr(i.schema,i.name,e)),r=new Set(n.map(i=>i.name)),s=i=>i.filter(o=>r.has(o.table)||jr(o.schema,o.table,e));return {...t,tables:n,columns:s(t.columns),indexes:s(t.indexes),foreign_keys:s(t.foreign_keys),primary_keys:s(t.primary_keys),views:t.views.filter(i=>jr(i.schema,i.name,e)),check_constraints:s(t.check_constraints),unique_constraints:s(t.unique_constraints),comments:s(t.comments),custom_types:t.custom_types.filter(i=>jr(i.schema,i.type,e)),triggers:t.triggers.filter(i=>jr(i.schema,i.table,e)),functions:t.functions?.filter(i=>e.includes(i.schema)),partitions:t.partitions?.filter(i=>jr(i.schema,i.name,e))}}var Ta=class{constructor(e,n,r={}){this.conn=e;this.desiredSchema=n;this.options=r;this.differ=new Ir,this.planner=new Dr;}differ;planner;translationResult;async getDesiredSchema(){let e=await this.conn.translateDdl(this.desiredSchema);return this.translationResult=e,await this.options.onTranslation?.(e),e.ddl}async diff(e){let n=await this.conn.introspect({postprocess:false}),r=await this.getDesiredSchema();if(!r||r.trim().length===0)return {current:n,desired:n,diff:{tables:[],columns:[],indexes:[],foreign_keys:[],has_changes:false},plan:{steps:[],warnings:[],unsafe:false}};let{createConnection:s}=await import('@supabase/lite/sqlite'),i=await s({url:":memory:"});try{await i.exec(r);let o=await i.introspect({postprocess:!1}),a=this.conn.config.ddlDialect,[l,c]=e?.schemas?[tb(n,e.schemas),tb(o,e.schemas)]:[eb(n,a),eb(o,a)],u=this.differ.diff(l,c),f=this.planner.plan(u,l,c);return {current:n,desired:o,diff:u,plan:f}}finally{await i.close();}}safeSortPlanSteps(e){return invariant(Array.isArray(e),"steps must be an array"),e}async migratePlan(e,n){if(e.steps.length===0)return;if(e.unsafe&&!n?.force)throw new DataLossError(e.warnings??[]);let r=this.safeSortPlanSteps(e.steps).filter(s=>![PlanStepType.DISABLE_FOREIGN_KEYS,PlanStepType.BEGIN_TRANSACTION,PlanStepType.COMMIT_TRANSACTION,PlanStepType.ENABLE_FOREIGN_KEYS].includes(s.type));await this.conn.transaction(r.map(s=>s.sql),{intent:"migration"});}async migrate(e){let n=await this.diff({schemas:e?.schemas});return await this.migratePlan(n.plan,e),n}};xs();var rb=/^\{\{(.+)\}\}$/;function sb(t){return typeof t=="string"&&rb.test(t)}function Sv(t){return rb.exec(t)[1]}var nb=Symbol("unresolved");function ib(t,e){let n=Sv(t),r=Xt(e,n,nb);if(r===nb)throw new Error(`Unresolved variable: {{${n}}}`);return r}function Lt(t,e){let n={};for(let[r,s]of Object.entries(t)){if(r==="$or"||r==="$and"){n[r]=s.map(i=>Lt(i,e));continue}if(r==="$not"){n[r]=Lt(s,e);continue}if(r==="$always"){n[r]=s;continue}if(r==="$exists"){let i=s;n[r]={...i,where:i?.where?Lt(i.where,e):i?.where};continue}if(sb(r)){let i=ib(r,e),a=Ev(i,s);n.$always=a;continue}if(s!=null&&typeof s=="object"&&!Array.isArray(s)){n[r]=ob(s,e);continue}n[r]=s;}return n}function ob(t,e){let n={};for(let[r,s]of Object.entries(t))r==="$not"&&s!=null&&typeof s=="object"?n[r]=ob(s,e):_v(s)?n[r]={...s,where:s?.where?Lt(s?.where,e):void 0}:sb(s)?n[r]=ib(s,e):n[r]=s;return n}function _v(t){return t!=null&&typeof t=="object"&&t.type==="query"}function Ev(t,e){for(let[n,r]of Object.entries(e))switch(n){case "$eq":if(t!==r)return false;break;case "$neq":if(t===r)return false;break;case "$in":if(!Array.isArray(r)||!r.includes(t))return false;break;case "$notIn":if(Array.isArray(r)&&r.includes(t))return false;break;default:throw new Error(`Cannot statically evaluate operator ${n} on placeholder key`)}return true}xs();var Ca=class{constructor(e,n,r){this.tables=e;this.policies=n;this.defaultSchema=r;}enforce(e,n){let r=e.from;if(!r||!this.isRlsEnabled(r,e.schema))return e;let s=xv(e.type);if(!s)return e;let i=Xt(n,"auth.role")??"anon",{permissive:o,restrictive:a}=this.resolvePolicies(r,e.schema,s,i);switch(s){case "SELECT":case "DELETE":{let l=this.combineUsing(o,a,n);return {...e,where:ab(e.where,l)}}case "UPDATE":{let l=this.combineUsing(o,a,n),c={...e,where:ab(e.where,l)};if(l.$always===false)return c;let u=this.combineWithCheck(o,a,n,s);if(e.values&&Object.keys(u).length>0){let f=new Set(Object.keys(e.values));this.validateWithCheck(u,e.values,o,a,f);}return c}case "INSERT":{let l=this.combineWithCheck(o,a,n,s);if(e.values){let c=Array.isArray(e.values)?e.values:[e.values];for(let u of c)this.validateWithCheck(l,u,o,a);}return e}default:return e}}isRlsEnabled(e,n){return this.tables.has(e)}resolvePolicies(e,n,r,s){let i=this.policies.filter(o=>o.data.table===e&&this.schemasMatch(o.data.schema,n)&&o.appliesTo(r)&&o.appliesToRole(s));return {permissive:i.filter(o=>o.data.permissive),restrictive:i.filter(o=>!o.data.permissive)}}schemasMatch(e,n){let r=e||this.defaultSchema,s=n||this.defaultSchema;return r===s}combineUsing(e,n,r){if(e.length===0)return {$always:false};let s=e.map(o=>o.data.using).filter(o=>o!=null&&Object.keys(o).length>0).map(o=>Lt(o,r)),i;s.length===0?i={}:s.length===1?i=s[0]:i={$or:s};for(let o of n)if(o.data.using&&Object.keys(o.data.using).length>0){let a=Lt(o.data.using,r);i=Object.keys(i).length===0?a:{$and:[i,a]};}return i}combineWithCheck(e,n,r,s){if(e.length===0)return {$always:false};let i=e.map(a=>a.data.withCheck??(s==="UPDATE"?a.data.using:void 0)).filter(a=>a!=null&&Object.keys(a).length>0).map(a=>Lt(a,r)),o;i.length===0?o={}:i.length===1?o=i[0]:o={$or:i};for(let a of n){let l=a.data.withCheck??(s==="UPDATE"?a.data.using:void 0);if(l&&Object.keys(l).length>0){let c=Lt(l,r);o=Object.keys(o).length===0?c:{$and:[o,c]};}}return o}validateWithCheck(e,n,r,s,i){if(Object.keys(e).length===0)return;if(!Ra(e,n,i)){let a=r[0]??s[0];throw a?new mr(a):new Error("RLS policy violation")}}};function xv(t){switch(t){case "query":return "SELECT";case "insert":case "upsert":case "put":return "INSERT";case "update":return "UPDATE";case "delete":return "DELETE";default:return}}function ab(t,e){return !t||Object.keys(t).length===0?e:Object.keys(e).length===0?t:{$and:[t,e]}}function Ra(t,e,n){for(let[r,s]of Object.entries(t)){if(r==="$always"){if(s===false)return false;continue}if(r==="$and"){if(!s.every(l=>Ra(l,e,n)))return false;continue}if(r==="$or"){if(!s.some(l=>Ra(l,e,n)))return false;continue}if(r==="$not"){if(Ra(s,e,n))return false;continue}if(n&&!n.has(r))continue;let i=s,o=e[r];for(let[a,l]of Object.entries(i))if(!Tv(o,a,l))return false}return true}function Tv(t,e,n){switch(e){case "$eq":return t===n;case "$neq":return t!==n;case "$gt":return t>n;case "$gte":return t>=n;case "$lt":return t<n;case "$lte":return t<=n;case "$in":return Array.isArray(n)&&n.includes(t);case "$notIn":return !Array.isArray(n)||!n.includes(t);case "$is":return t===n;case "$isNot":return t!==n;default:throw new Error(`Cannot evaluate operator "${e}" client-side for WITH CHECK`)}}var va=class{transformQuery(e){return e.node}transformResult(e){return e.result.rows?Promise.resolve({...e.result,rows:e.result.rows.map(n=>{let r={};for(let s in n){let i=n[s];if(typeof i=="string"&&(i[0]==="{"||i[0]==="["))try{r[s]=JSON.parse(i);}catch{r[s]=i;}else r[s]=i;}return r})}):Promise.resolve(e.result)}};function lb(t){let e={};for(let n in t){let r=t[n];if(typeof r=="string"&&(r[0]==="["||r[0]==="{"))try{e[n]=JSON.parse(r);}catch{e[n]=r;}else e[n]=r;}return e}var Ei=class t extends Connection{dialect="sqlite";deserializeRow(e){return this.config.ddlDialect==="postgres"?lb(e):e}constructor(e={}){super({...e,translation:{...e.translation,schemas:{appendDefaultSchema:false,approach:"quote",defaultSchema:"public",...e.translation?.schemas},deparse:t.parseDeparseInfo(e.translation?.deparse)},introspection:{name:"sqlite",...e.introspection,exclude_tables:Array.from(new Set([...e.introspection?.exclude_tables??[],"sqlite_%","supabase_migrations.%","migrations",...e.ddlDialect==="sqlite"?["seed_files"]:[]]))}});}static parseDeparseInfo(e){try{if(typeof e!="object"||e===null)return {};let n=e?.rls?.tables instanceof Set?e.rls.tables:new Set(e.rls?.tables??[]),r=e?.rls?.policies.map(i=>new nt(JSON.parse(JSON.stringify(i)))),s=e?.vars instanceof Map?e.vars:new Map(Object.entries(e.vars??{}));return {rls:{tables:n,policies:r},vars:s}}catch(n){return console.log("error parsing deparse info",n),{}}}static serializeDeparseInfo(e){let n=e?.rls??{tables:new Set,policies:[]},r=e?.vars??{};return JSON.parse(ym({rls:{tables:n.tables,policies:n.policies},vars:r}))}updateDeparseInfo(e){this.config.translation={...this.config.translation,deparse:e};}withSqlitePlugins(e=[]){let n=[];return this.config.ddlDialect==="sqlite"&&n.push(new va),n.push(new Ea(fc({appendDefaultSchema:false,approach:"quote",defaultSchema:"public"},{...this.config.translation?.schemas}))),[...n,...e]}async translateDdl(e){if(e.trim().length===0)return {ddl:e};if(this.config.ddlDialect==="sqlite")return {ddl:e};let n=this.config.translation?.schemas?.defaultSchema&&this.config.translation?.schemas?.appendDefaultSchema?this.config.translation?.schemas?.defaultSchema:false,r=await this.introspect({postprocess:false}).catch(()=>{}),{deparsePostgresDdl:s}=await Promise.resolve().then(()=>(Ef(),Pb));return await s(e,{forceDefaultSchema:n,introspection:r,defaultSchema:this.config.translation?.schemas?.defaultSchema||void 0,schemaHandling:this.config.translation?.schemas?.approach==="snake_case"?"prefix":"default"})}async introspect(e){wm(typeof e=="object"||e===void 0,"options must be an object");let n=e?.useCache??false;if(e?.postprocess!==false){let i=await this.readCachedIntrospection({useCache:n});if(i)return i}let r=await Jy(this,this.config.introspection),s=this.config.translation?.schemas?.approach==="snake_case"?"__":".";if(this.config.ddlDialect==="postgres"&&e?.postprocess!==false){let i=this.config.translation?.schemas?.defaultSchema??this.config.translation?.schemas?.appendDefaultSchema?"public":void 0,o=(l="table")=>c=>{let u=c[l],f=c.schema??i;return !f&&i&&u.includes(s)&&([f,u]=u.split(s)),{...c,[l]:u,schema:f??i}},a=l=>{let c=o()(l),u=c.ref_table,f=c.ref_schema??i;return u?.includes(s)&&([f,u]=u.split(s)),{...c,ref_table:u,ref_schema:f??i}};r={...r,tables:r.tables.map(o("name")),columns:r.columns.map(o()),indexes:r.indexes.map(o()),primary_keys:r.primary_keys.map(o()),foreign_keys:r.foreign_keys.map(a),views:r.views.map(o("name")),check_constraints:r.check_constraints.map(o("table"))};}return r=Vy(r),r=Yy(r),this.config.ddlDialect==="postgres"&&e?.postprocess!==false&&(r=this.mergeDeparseMetadata(r)),r={...r,columns:r.columns.map(i=>!i.pg_type&&Me(i.type)?{...i,pg_type:i.type.toLowerCase().trim()}:i),ddl_dialect:this.config.ddlDialect??"postgres",schema_separator:s},e?.postprocess!==false&&await this.writeCachedIntrospection(r,{useDriver:n}),r}async transaction(e,n){n?.intent==="migration"&&await this.exec("PRAGMA foreign_keys=OFF;"),await this.exec("BEGIN");try{for(let r of e)try{await this.exec(r);}catch(s){throw console.error(`Failed to execute statement: ${r}`),s}await this.exec("COMMIT");}catch(r){throw await this.exec("ROLLBACK"),r}finally{n?.intent==="migration"&&(await this.exec("PRAGMA foreign_keys=ON;"),await this.clearSchemaCache());}}async close(){}mergeDeparseMetadata(e){let n=this.config.translation?.deparse;if(!n?.schema)return e;let r=e.columns.map(l=>({...l})),s=e.foreign_keys.map(l=>({...l})),i=[...e.unique_constraints??[]],o=[...e.check_constraints??[]];for(let[,l]of n.schema)for(let c of l.all()){let u=c.context,f=r.find(p=>p.table===u.table&&p.name===u.column);if(f&&(f.pg_type=u.pgTypeName,u.isGenerated!==void 0&&(f.is_generated=u.isGenerated)),u.fkRef?.constraintName){let p=s.find(d=>d.table===u.table&&d.column===u.column&&d.ref_table===u.fkRef.refTable&&d.ref_column===u.fkRef.refColumn);p&&(p.foreign_key_name=u.fkRef.constraintName);}u.uniqueConstraintName&&i.push({schema:u.schema,table:u.table,name:u.uniqueConstraintName,columns:[u.column]}),u.hasCheck&&o.push({schema:u.schema,table:u.table,expression:"",name:u.checkConstraintName,column:u.column});}for(let l of n.tableConstraints??[])if(l.kind==="unique")i.push({schema:l.schema,table:l.table,name:l.name??"",columns:l.columns});else if(l.kind==="check")o.push({schema:l.schema,table:l.table,expression:"",name:l.name});else if(l.kind==="foreign_key"&&l.name){let c=l.refTable;for(let u=0;u<l.columns.length;u++){let f=s.find(p=>p.table===l.table&&p.column===l.columns[u]&&p.ref_table===c&&p.ref_column===(l.refColumns?.[u]??""));f&&(f.foreign_key_name=l.name);}}let a=[...e.comments??[],...n.comments??[]];return {...e,columns:r,foreign_keys:s,unique_constraints:i,check_constraints:o,comments:a}}createMigrator(e){let n=[this.config.baseSchema,e].filter(Boolean).join(`
631
+ ${t.version?`'${t.version}'`:"sqlite_version()"} AS version;`};function Gt(t){if(!t)return [];try{return Array.isArray(t)?t:JSON.parse(t)}catch{return []}}async function uy(t,e={}){let r=(await t.exec(BR(e)))?.rows?.[0]||{};return {tables:Gt(r.tables),columns:Gt(r.columns),indexes:Gt(r.indexes),foreign_keys:Gt(r.foreign_keys),primary_keys:Gt(r.primary_keys),views:Gt(r.views),triggers:Gt(r.triggers),check_constraints:[],unique_constraints:Gt(r.unique_constraints),comments:[],custom_types:[],database_name:r.database_name??"sqlite",version:r.version??""}}function qR(t,e){if(!t||!e.ref_column)return;let n=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`CONSTRAINT\\s+("?)(\\w+)\\1\\s+FOREIGN\\s+KEY\\s*\\(\\s*"?${n(e.column)}"?\\s*\\)\\s+REFERENCES\\s+"?${n(e.ref_table)}"?\\s*\\(\\s*"?${n(e.ref_column)}"?\\s*\\)`,"i");return t.match(r)?.[2]}function fy(t){return t.startsWith("fk_")&&!t.endsWith("_fkey")}function wu(t){return `${t.schema}.${t.table}.${t.foreign_key_name}.${t.ref_schema??""}.${t.ref_table}`}function HR(t){let e=new Map;for(let r of t){if(!fy(r.foreign_key_name))continue;let s=e.get(wu(r));s?s.push(r):e.set(wu(r),[r]);}let n=new Map;for(let[r,s]of e)s.length<2||n.set(r,`${s[0].table}_${s.map(i=>i.column).join("_")}_fkey`);return n.size===0?t:t.map(r=>{let s=n.get(wu(r));return s?{...r,foreign_key_name:s}:r})}function dy(t){if(!t.tables?.length||!t.foreign_keys?.length)return t;let e=new Map(t.tables.map(r=>[r.name,r.sql])),n=t.foreign_keys.map(r=>{if(r.foreign_key_name?.endsWith("_fkey")||r.foreign_key_name&&!fy(r.foreign_key_name))return r;let s=e.get(r.table),i=qR(s,r);return i?{...r,foreign_key_name:i}:r});return {...t,foreign_keys:HR(n)}}function Su(t){let e=t.trim();return e.startsWith('"')&&e.endsWith('"')||e.startsWith("`")&&e.endsWith("`")||e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):e}function WR(t){let e=[],n="",r=0,s=null;for(let i=0;i<t.length;i++){let o=t[i];if(s){n+=o,o===s&&(s=null);continue}if(o==='"'||o==="`"||o==="'"){s=o,n+=o;continue}if(o==="("?r++:o===")"&&r>0&&r--,o===","&&r===0){e.push(n.trim()),n="";continue}n+=o;}return n.trim()&&e.push(n.trim()),e}function KR(t){let e=t.match(/^(.*?)\s+as\s+(.+)$/i),n=e?e[1].trim():t.trim(),r=e?e[2].trim():void 0;if(!r){let o=t.match(/^(.+?)\s+((?:"[^"]+"|`[^`]+`|\[[^\]]+\]|\w+))$/);o&&!/[()]/.test(o[1])&&(n=o[1].trim(),r=o[2].trim());}let s=n.split(".").map(Su);if(s.length>2)return null;let i=s.at(-1);return !i||!/^[A-Za-z_][\w$]*$/.test(i)?null:{baseColumn:i,viewColumn:r?Su(r):i}}function py(t){return !!(t&&/[A-Za-z0-9_$]/.test(t))}function JR(t){let e=/\bselect\b/i.exec(t);if(!e)return null;let n=0,r=null;for(let s=e.index+e[0].length;s<t.length;s++){let i=t[s];if(r){i===r&&(r=null);continue}if(i==='"'||i==="`"||i==="'"){r=i;continue}if(i==="("){n++;continue}if(i===")"&&n>0){n--;continue}if(n===0&&t.slice(s,s+4).toLowerCase()==="from"&&!py(t[s-1])&&!py(t[s+4]))return {selectList:t.slice(e.index+e[0].length,s).trim(),fromRest:t.slice(s+4).trim()}}return null}function GR(t){let e=0,n=[];for(;e<t.length;){for(;/\s/.test(t[e]??"");)e++;let r=t[e],s="";if(r==='"'||r==="`"){let a=t.indexOf(r,e+1);if(a===-1)return null;s=t.slice(e,a+1),e=a+1;}else if(r==="["){let a=t.indexOf("]",e+1);if(a===-1)return null;s=t.slice(e,a+1),e=a+1;}else {let a=/^[A-Za-z_][\w$]*/.exec(t.slice(e));if(!a)return null;s=a[0],e+=s.length;}n.push(s);let i=t.slice(e),o=/^\s*\./.exec(i);if(!o)break;e+=o[0].length;}return n.length===0?null:{raw:n.join("."),rest:t.slice(e).trim()}}function my(t,e,n){let r=t.get(e)??[];r.includes(n)||r.push(n),t.set(e,r);}function zR(t,e){if(!t)return null;let n=JR(t);if(!n)return null;let r=GR(n.fromRest);if(!r)return null;let{raw:s,rest:i}=r;if(/\b(join|union|intersect|except)\b/i.test(i))return null;let o=s.split(".").map(Su).at(-1);if(!o)return null;let a=new Map,l=e.get(o)??new Set;for(let c of WR(n.selectList)){let f=c.trim();if(f==="*"||f.endsWith(".*")){for(let d of l)my(a,d,d);continue}let u=KR(c);u&&my(a,u.baseColumn,u.viewColumn);}return a.size===0?null:{baseTable:o,columns:a}}function VR(t,e){let n=new Map;for(let[r,s]of e){let i=[];for(let o of s){let a=t.get(o);if(a)for(let l of a)i.includes(l)||i.push(l);}i.length>0&&n.set(r,i);}return n}function QR(t){let e=new Map,n=new Map;for(let a of t.columns??[]){let l=n.get(a.table)??new Set;l.add(a.name),n.set(a.table,l);}let r=(a,l)=>{let c=e.get(a)??[];c.some(f=>f.name===l.name&&f.schema===l.schema)||c.push(l),e.set(a,c);};for(let a of t.tables??[]){if(a.type!=="table")continue;let l=n.get(a.name);l&&r(a.name,{name:a.name,schema:a.schema,columnByBaseColumn:new Map([...l].map(c=>[c,[c]]))});}let s=new Map;for(let a of t.views??[]){let l=zR(a.sql,n);if(!l)continue;let c=n.get(a.name);if(!c)continue;let f=new Map;for(let[d,p]of l.columns){let g=p.filter(m=>c.has(m));g.length>0&&f.set(d,g);}if(f.size===0)continue;let u={name:a.name,schema:a.schema,columnByBaseColumn:f,fromRelation:l.baseTable};s.set(a.name,u);}let i=16;function o(a,l,c){if(l>i)return null;let f=a.fromRelation;if(e.has(f))return {physicalBase:f,columnByBaseColumn:a.columnByBaseColumn};let u=s.get(f);if(!u||c.has(f))return null;c.add(f);let d=o(u,l+1,c);if(c.delete(f),!d)return null;let p=VR(a.columnByBaseColumn,d.columnByBaseColumn);return p.size===0?null:{physicalBase:d.physicalBase,columnByBaseColumn:p}}for(let a of s.values()){let l=o(a,0,new Set([a.name]));l&&r(l.physicalBase,{name:a.name,schema:a.schema,columnByBaseColumn:l.columnByBaseColumn});}return e}function hy(t){return `${t.foreign_key_group??""}:${t.table}.${t.column}->${t.ref_table}.${t.ref_column}`}function XR(t){let e=new Map;for(let n of t){let r=`${n.schema}.${n.table}.${n.foreign_key_name}.${n.ref_schema??""}.${n.ref_table}`,s=e.get(r);s?s.push(n):e.set(r,[n]);}return [...e.values()]}function YR(t){let e=[[]];for(let n of t){let r=[];for(let s of e)for(let i of n)r.push([...s,i]);e=r;}return e}function ZR(t,e,n,r){let s=r.map(o=>o.childColumn).join(","),i=r.map(o=>o.parentColumn).join(",");return `${n}:${t.name}(${s})->${e.name}(${i})`}function gy(t){if(!t.foreign_keys?.length||!t.views?.length)return t;let e=QR(t),n=new Set(t.foreign_keys.map(hy)),r=[];for(let s of XR(t.foreign_keys)){let i=s[0],o=e.get(i.table)??[],a=e.get(i.ref_table)??[];for(let l of o)for(let c of a){if(l.schema!==c.schema)continue;let f=[];for(let u of s){let d=l.columnByBaseColumn.get(u.column)??[],p=c.columnByBaseColumn.get(u.ref_column)??[],g=d.flatMap(m=>p.map(h=>({fk:u,childColumn:m,parentColumn:h})));if(g.length===0){f.length=0;break}f.push(g);}for(let u of YR(f)){let p=l.name===i.table&&c.name===i.ref_table&&u.every(g=>g.childColumn===g.fk.column&&g.parentColumn===g.fk.ref_column)?void 0:ZR(l,c,i.foreign_key_name,u);for(let g of u){let m={...g.fk,table:l.name,column:g.childColumn,schema:l.schema,ref_table:c.name,ref_column:g.parentColumn,ref_schema:c.schema,foreign_key_group:p},h=hy(m);n.has(h)||(n.add(h),r.push(m));}}}}return r.length?{...t,foreign_keys:[...t.foreign_keys,...r]}:t}var oC=new Set(["AlterTableNode","CreateIndexNode","CreateSchemaNode","CreateTableNode","CreateTypeNode","CreateViewNode","RefreshMaterializedViewNode","DeleteQueryNode","DropIndexNode","DropSchemaNode","DropTableNode","DropTypeNode","DropViewNode","InsertQueryNode","RawNode","SelectQueryNode","UpdateQueryNode","MergeQueryNode"]),_u=class extends OperationNodeTransformer{constructor(n){super();this.config=n;}#t=new Set;#e=new Set;transformNodeImpl(n,r){if(!oC.has(n.kind))return super.transformNodeImpl(n,r);let s=this.#s(n);for(let o of s)this.#e.add(o);let i=this.#n(n);for(let o of i)this.#t.add(o);try{return super.transformNodeImpl(n,r)}finally{for(let o of i)this.#t.delete(o);for(let o of s)this.#e.delete(o);}}transformSchemableIdentifier(n,r){let s=n.identifier.name,i=n.schema?.name,o=!i&&this.config.appendDefaultSchema&&this.config.defaultSchema&&!this.#e.has(s)&&this.#t.has(s),a=i??(o?this.config.defaultSchema:void 0);if(!a)return {kind:"SchemableIdentifierNode",schema:void 0,identifier:{kind:"IdentifierNode",name:s}};let l=this.config.approach==="snake_case"?"__":".";return {kind:"SchemableIdentifierNode",schema:void 0,identifier:{kind:"IdentifierNode",name:`${a}${l}${s}`}}}#n(n){let r=new Set;if(n?.name&&SchemableIdentifierNode.is(n.name)&&this.#r(n.name,r),n?.from?.froms)for(let s of n.from.froms)this.#i(s,r);if(n?.into&&this.#i(n.into,r),n?.table&&this.#i(n.table,r),n?.joins)for(let s of n.joins)this.#i(s.table,r);return n?.using&&(JoinNode.is(n.using)?this.#i(n.using.table,r):this.#i(n.using,r)),r}#i(n,r){if(TableNode.is(n)){this.#r(n.table,r);return}if(AliasNode.is(n)&&TableNode.is(n.node)){this.#r(n.node.table,r);return}if(ListNode.is(n)){for(let s of n.items)this.#i(s,r);return}if(UsingNode.is(n))for(let s of n.tables)this.#i(s,r);}#r(n,r){let s=n.identifier.name;this.#e.has(s)||r.add(s);}#s(n){let r=new Set;if(n?.with?.expressions)for(let s of n.with.expressions){let i=s?.name?.table?.table?.identifier?.name;i&&r.add(i);}return r}},Mo=class{#t;constructor(e){this.#t=new _u(e);}transformQuery(e){return this.#t.transformNode(e.node)}async transformResult(e){return e.result}};Ks();Eu();xu();function uC(t,e){return t==="migrations"||t==="supabase_migrations.schema_migrations"||t==="supabase_migrations.seed_files"||e==="sqlite"&&t==="seed_files"}function by(t,e){let n=r=>uC(r,e);return {...t,tables:t.tables.filter(r=>!n(r.name)),columns:t.columns.filter(r=>!n(r.table)),indexes:t.indexes.filter(r=>!n(r.table)),foreign_keys:t.foreign_keys.filter(r=>!n(r.table)),primary_keys:t.primary_keys.filter(r=>!n(r.table))}}function ur(t,e,n){return n.includes(t)?true:n.some(r=>e.startsWith(`${r}.`)||e.startsWith(`${r}__`))}function wy(t,e){let n=t.tables.filter(i=>ur(i.schema,i.name,e)),r=new Set(n.map(i=>i.name)),s=i=>i.filter(o=>r.has(o.table)||ur(o.schema,o.table,e));return {...t,tables:n,columns:s(t.columns),indexes:s(t.indexes),foreign_keys:s(t.foreign_keys),primary_keys:s(t.primary_keys),views:t.views.filter(i=>ur(i.schema,i.name,e)),check_constraints:s(t.check_constraints),unique_constraints:s(t.unique_constraints),comments:s(t.comments),custom_types:t.custom_types.filter(i=>ur(i.schema,i.type,e)),triggers:t.triggers.filter(i=>ur(i.schema,i.table,e)),functions:t.functions?.filter(i=>e.includes(i.schema)),partitions:t.partitions?.filter(i=>ur(i.schema,i.name,e))}}var qo=class{constructor(e,n,r={}){this.conn=e;this.desiredSchema=n;this.options=r;this.differ=new lr,this.planner=new cr;}differ;planner;translationResult;async getDesiredSchema(){let e=await this.conn.translateDdl(this.desiredSchema);return this.translationResult=e,await this.options.onTranslation?.(e),e.ddl}async diff(e){let n=await this.conn.introspect({postprocess:false}),r=await this.getDesiredSchema();if(!r||r.trim().length===0)return {current:n,desired:n,diff:{tables:[],columns:[],indexes:[],foreign_keys:[],has_changes:false},plan:{steps:[],warnings:[],unsafe:false}};let{createConnection:s}=await import('@supabase/lite/sqlite'),i=await s({url:":memory:"});try{await i.exec(r);let o=await i.introspect({postprocess:!1}),a=this.conn.config.ddlDialect,[l,c]=e?.schemas?[wy(n,e.schemas),wy(o,e.schemas)]:[by(n,a),by(o,a)],f=this.differ.diff(l,c),u=this.planner.plan(f,l,c);return {current:n,desired:o,diff:f,plan:u}}finally{await i.close();}}safeSortPlanSteps(e){return invariant(Array.isArray(e),"steps must be an array"),e}async migratePlan(e,n){if(e.steps.length===0)return;if(e.unsafe&&!n?.force)throw new DataLossError(e.warnings??[]);let r=this.safeSortPlanSteps(e.steps).filter(s=>![PlanStepType.DISABLE_FOREIGN_KEYS,PlanStepType.BEGIN_TRANSACTION,PlanStepType.COMMIT_TRANSACTION,PlanStepType.ENABLE_FOREIGN_KEYS].includes(s.type));await this.conn.transaction(r.map(s=>s.sql),{intent:"migration"});}async migrate(e){let n=await this.diff({schemas:e?.schemas});return await this.migratePlan(n.plan,e),n}};zr();var _y=/^\{\{(.+)\}\}$/;function Ey(t){return typeof t=="string"&&_y.test(t)}function fC(t){return _y.exec(t)[1]}var Sy=Symbol("unresolved");function xy(t,e){let n=fC(t),r=qt(e,n,Sy);if(r===Sy)throw new Error(`Unresolved variable: {{${n}}}`);return r}function vt(t,e){let n={};for(let[r,s]of Object.entries(t)){if(r==="$or"||r==="$and"){n[r]=s.map(i=>vt(i,e));continue}if(r==="$not"){n[r]=vt(s,e);continue}if(r==="$always"){n[r]=s;continue}if(r==="$exists"){let i=s;n[r]={...i,where:i?.where?vt(i.where,e):i?.where};continue}if(Ey(r)){let i=xy(r,e),a=pC(i,s);n.$always=a;continue}if(s!=null&&typeof s=="object"&&!Array.isArray(s)){n[r]=Ty(s,e);continue}n[r]=s;}return n}function Ty(t,e){let n={};for(let[r,s]of Object.entries(t))r==="$not"&&s!=null&&typeof s=="object"?n[r]=Ty(s,e):dC(s)?n[r]={...s,where:s?.where?vt(s?.where,e):void 0}:Ey(s)?n[r]=xy(s,e):n[r]=s;return n}function dC(t){return t!=null&&typeof t=="object"&&t.type==="query"}function pC(t,e){for(let[n,r]of Object.entries(e))switch(n){case "$eq":if(t!==r)return false;break;case "$neq":if(t===r)return false;break;case "$in":if(!Array.isArray(r)||!r.includes(t))return false;break;case "$notIn":if(Array.isArray(r)&&r.includes(t))return false;break;default:throw new Error(`Cannot statically evaluate operator ${n} on placeholder key`)}return true}zr();var Js=class{constructor(e,n,r){this.tables=e;this.policies=n;this.defaultSchema=r;}enforce(e,n){let r=e.from;if(!r||!this.isRlsEnabled(r,e.schema))return e;let s=mC(e.type);if(!s)return e;let i=qt(n,"auth.role")??"anon";if(i==="service_role")return e;let{permissive:o,restrictive:a}=this.resolvePolicies(r,e.schema,s,i);switch(s){case "SELECT":case "DELETE":{let l=this.combineUsing(o,a,n);return {...e,where:Ry(e.where,l)}}case "UPDATE":{let l=this.combineUsing(o,a,n),c={...e,where:Ry(e.where,l)};if(l.$always===false)return c;let f=this.combineWithCheck(o,a,n,s);if(e.values&&Object.keys(f).length>0){let u=new Set(Object.keys(e.values));this.validateWithCheck(f,e.values,o,a,u);}return c}case "INSERT":{let l=this.combineWithCheck(o,a,n,s);if(e.values){let c=Array.isArray(e.values)?e.values:[e.values];for(let f of c)this.validateWithCheck(l,f,o,a);}return e}default:return e}}isRlsEnabled(e,n){return this.tables.has(e)}resolvePolicies(e,n,r,s){let i=this.policies.filter(o=>o.data.table===e&&this.schemasMatch(o.data.schema,n)&&o.appliesTo(r)&&o.appliesToRole(s));return {permissive:i.filter(o=>o.data.permissive),restrictive:i.filter(o=>!o.data.permissive)}}schemasMatch(e,n){let r=e||this.defaultSchema,s=n||this.defaultSchema;return r===s}combineUsing(e,n,r){if(e.length===0)return {$always:false};let s=e.map(o=>o.data.using).filter(o=>o!=null&&Object.keys(o).length>0).map(o=>vt(o,r)),i;s.length===0?i={}:s.length===1?i=s[0]:i={$or:s};for(let o of n)if(o.data.using&&Object.keys(o.data.using).length>0){let a=vt(o.data.using,r);i=Object.keys(i).length===0?a:{$and:[i,a]};}return i}combineWithCheck(e,n,r,s){if(e.length===0)return {$always:false};let i=e.map(a=>a.data.withCheck??(s==="UPDATE"?a.data.using:void 0)).filter(a=>a!=null&&Object.keys(a).length>0).map(a=>vt(a,r)),o;i.length===0?o={}:i.length===1?o=i[0]:o={$or:i};for(let a of n){let l=a.data.withCheck??(s==="UPDATE"?a.data.using:void 0);if(l&&Object.keys(l).length>0){let c=vt(l,r);o=Object.keys(o).length===0?c:{$and:[o,c]};}}return o}validateWithCheck(e,n,r,s,i){if(Object.keys(e).length===0)return;if(!Ho(e,n,i)){let a=r[0]??s[0];throw a?new Wn(a):new Error("RLS policy violation")}}};function mC(t){switch(t){case "query":return "SELECT";case "insert":case "upsert":case "put":return "INSERT";case "update":return "UPDATE";case "delete":return "DELETE";default:return}}function Ry(t,e){return !t||Object.keys(t).length===0?e:Object.keys(e).length===0?t:{$and:[t,e]}}function Ho(t,e,n){for(let[r,s]of Object.entries(t)){if(r==="$always"){if(s===false)return false;continue}if(r==="$and"){if(!s.every(l=>Ho(l,e,n)))return false;continue}if(r==="$or"){if(!s.some(l=>Ho(l,e,n)))return false;continue}if(r==="$not"){if(Ho(s,e,n))return false;continue}if(n&&!n.has(r))continue;let i=s,o=e[r];for(let[a,l]of Object.entries(i))if(!hC(o,a,l))return false}return true}function hC(t,e,n){switch(e){case "$eq":return t===n;case "$neq":return t!==n;case "$gt":return t>n;case "$gte":return t>=n;case "$lt":return t<n;case "$lte":return t<=n;case "$in":return Array.isArray(n)&&n.includes(t);case "$notIn":return !Array.isArray(n)||!n.includes(t);case "$is":return t===n;case "$isNot":return t!==n;default:throw new Error(`Cannot evaluate operator "${e}" client-side for WITH CHECK`)}}var Wo=class{transformQuery(e){return e.node}transformResult(e){return e.result.rows?Promise.resolve({...e.result,rows:e.result.rows.map(n=>{let r={};for(let s in n){let i=n[s];if(typeof i=="string"&&(i[0]==="{"||i[0]==="["))try{r[s]=JSON.parse(i);}catch{r[s]=i;}else r[s]=i;}return r})}):Promise.resolve(e.result)}};function Cy(t){let e={};for(let n in t){let r=t[n];if(typeof r=="string"&&(r[0]==="["||r[0]==="{"))try{e[n]=JSON.parse(r);}catch{e[n]=r;}else e[n]=r;}return e}Wl();eo();function gC(t){return t.replace(/\/\*[\s\S]*?\*\//g,"").replace(/--.*$/gm,"")}function yC(t){let e=t.trim();return e.startsWith('"')?e.replace(/^"(.*)"$/,"$1"):e.toLowerCase()}function Ko(t){let e=t.split(".");return yC(e[e.length-1]??t)}var Cu='(?:"[^"]+"|[A-Za-z_][\\w$]*)',Tu=`${Cu}(?:\\s*\\.\\s*${Cu})?`,Ru=new RegExp([`\\bALTER\\s+TABLE\\s+(?:IF\\s+EXISTS\\s+)?(?:ONLY\\s+)?(${Tu})\\s+(?:(ENABLE|DISABLE)\\s+ROW\\s+LEVEL\\s+SECURITY\\b|RENAME\\s+TO\\s+(${Cu}))`,`\\bDROP\\s+TABLE\\s+(?:IF\\s+EXISTS\\s+)?(${Tu}(?:\\s*,\\s*${Tu})*)`].join("|"),"gi");function ky(t){let e=[...t].sort((i,o)=>i.version.localeCompare(o.version)),n=gC(e.flatMap(i=>i.statements??[]).join(`
632
+ `)),r=new Set;Ru.lastIndex=0;let s=Ru.exec(n);for(;s!==null;){let[,i,o,a,l]=s;if(i&&o){let c=Ko(i);o.toUpperCase()==="ENABLE"?r.add(c):r.delete(c);}else if(i&&a)r.delete(Ko(i))&&r.add(Ko(a));else if(l)for(let c of l.split(","))r.delete(Ko(c));s=Ru.exec(n);}return r}var zs=class t extends Connection{dialect="sqlite";#t=false;#e;deserializeRow(e){return this.config.ddlDialect==="postgres"?Cy(e):e}constructor(e={}){let n=e.translation?.deparse!=null;super({...e,translation:{...e.translation,schemas:{appendDefaultSchema:false,approach:"quote",defaultSchema:"public",...e.translation?.schemas},deparse:t.parseDeparseInfo(e.translation?.deparse)},introspection:{name:"sqlite",...e.introspection,exclude_tables:Array.from(new Set([...e.introspection?.exclude_tables??[],"sqlite_%","supabase_migrations.%","migrations",...e.ddlDialect==="sqlite"?["seed_files"]:[]]))}}),this.#t=n;}static parseDeparseInfo(e,n){try{if(typeof e!="object"||e===null)return {};let r=e?.rls?.tables instanceof Set?e.rls.tables:new Set(e.rls?.tables??[]),s=(e?.rls?.policies??[]).map(f=>new Ge(JSON.parse(JSON.stringify(f)))),i=e?.vars instanceof Map?e.vars:new Map(Object.entries(e.vars??{})),o=e?.enums instanceof Map?e.enums:new Map(Object.entries(e.enums??{})),a;if(e?.schema instanceof Map)a=e.schema;else if(e?.schema&&typeof e.schema=="object"){a=new Map;for(let[f,u]of Object.entries(e.schema)){let d;for(let{context:p,extra:g}of u??[]){d??=new at(p.table,p.schema);let m=o.get(p.pgTypeName.toLowerCase());d.set(p.column,We({...p,defaultFn:null},{...g,...m?{enumValues:m}:{}}));}d&&a.set(f,d);}}let l=e?.tableConstraints??void 0,c=e?.comments??void 0;return {rls:{tables:r,policies:s},vars:i,enums:o,...a?{schema:a}:{},...l?{tableConstraints:l}:{},...c?{comments:c}:{}}}catch(r){if(n?.strict)throw r;return console.log("error parsing deparse info",r),{}}}static serializeDeparseInfo(e){let n=e?.rls??{tables:new Set,policies:[]},r=e?.vars??new Map,s=e?.enums??new Map,i={};for(let[l,c]of e?.schema??new Map)i[l]=c.all().map(f=>{let{defaultFn:u,...d}=f.context;return {context:d,extra:f.factoryExtra}});let o=e?.tableConstraints??[],a=e?.comments??[];return JSON.parse(Ep({rls:{tables:n.tables,policies:n.policies},vars:r,enums:s,schema:i,tableConstraints:o,comments:a}))}updateDeparseInfo(e){this.config.translation={...this.config.translation,deparse:e},this.#t=true;}withSqlitePlugins(e=[]){let n=[];return this.config.ddlDialect==="sqlite"&&n.push(new Wo),n.push(new Mo(Tl({appendDefaultSchema:false,approach:"quote",defaultSchema:"public"},{...this.config.translation?.schemas}))),[...n,...e]}async translateDdl(e){if(e.trim().length===0)return {ddl:e};if(this.config.ddlDialect==="sqlite")return {ddl:e};let n=this.config.translation?.schemas?.defaultSchema&&this.config.translation?.schemas?.appendDefaultSchema?this.config.translation?.schemas?.defaultSchema:false,r=await this.introspect({postprocess:false}).catch(()=>{}),{deparsePostgresDdl:s}=await Promise.resolve().then(()=>(Pu(),Yy));return await s(e,{forceDefaultSchema:n,introspection:r,defaultSchema:this.config.translation?.schemas?.defaultSchema||void 0,schemaHandling:this.config.translation?.schemas?.approach==="snake_case"?"prefix":"default"})}async introspect(e){Tp(typeof e=="object"||e===void 0,"options must be an object");let n=e?.useCache??false;if(e?.postprocess!==false){let i=await this.readCachedIntrospection({useCache:n});if(i)return i}let r=await uy(this,this.config.introspection),s=this.config.translation?.schemas?.approach==="snake_case"?"__":".";if(this.config.ddlDialect==="postgres"&&e?.postprocess!==false){let i=this.config.translation?.schemas?.defaultSchema??this.config.translation?.schemas?.appendDefaultSchema?"public":void 0,o=(l="table")=>c=>{let f=c[l],u=c.schema??i;return !u&&i&&f.includes(s)&&([u,f]=f.split(s)),{...c,[l]:f,schema:u??i}},a=l=>{let c=o()(l),f=c.ref_table,u=c.ref_schema??i;return f?.includes(s)&&([u,f]=f.split(s)),{...c,ref_table:f,ref_schema:u??i}};r={...r,tables:r.tables.map(o("name")),columns:r.columns.map(o()),indexes:r.indexes.map(o()),primary_keys:r.primary_keys.map(o()),foreign_keys:r.foreign_keys.map(a),views:r.views.map(o("name")),check_constraints:r.check_constraints.map(o("table"))};}return r=dy(r),r=gy(r),this.config.ddlDialect==="postgres"&&e?.postprocess!==false&&(r=this.mergeDeparseMetadata(r)),r={...r,columns:r.columns.map(i=>!i.pg_type&&Le(i.type)?{...i,pg_type:i.type.toLowerCase().trim()}:i),ddl_dialect:this.config.ddlDialect??"postgres",schema_separator:s},e?.postprocess!==false&&await this.writeCachedIntrospection(r,{useDriver:n}),r}async transaction(e,n){n?.intent==="migration"&&await this.exec("PRAGMA foreign_keys=OFF;"),await this.exec("BEGIN");try{for(let r of e)try{await this.exec(r);}catch(s){throw console.error(`Failed to execute statement: ${r}`),s}await this.exec("COMMIT");}catch(r){throw await this.exec("ROLLBACK"),r}finally{n?.intent==="migration"&&(await this.exec("PRAGMA foreign_keys=ON;"),await this.clearSchemaCache());}}async close(){}mergeDeparseMetadata(e){let n=this.config.translation?.deparse;if(!n?.schema)return e;let r=e.columns.map(l=>({...l})),s=e.foreign_keys.map(l=>({...l})),i=[...e.unique_constraints??[]],o=[...e.check_constraints??[]];for(let[,l]of n.schema)for(let c of l.all()){let f=c.context,u=r.find(d=>d.table===f.table&&d.name===f.column);if(u&&(u.pg_type=f.pgTypeName,f.isGenerated!==void 0&&(u.is_generated=f.isGenerated)),f.fkRef?.constraintName){let d=s.find(p=>p.table===f.table&&p.column===f.column&&p.ref_table===f.fkRef.refTable&&p.ref_column===f.fkRef.refColumn);d&&(d.foreign_key_name=f.fkRef.constraintName);}f.uniqueConstraintName&&i.push({schema:f.schema,table:f.table,name:f.uniqueConstraintName,columns:[f.column]}),f.hasCheck&&o.push({schema:f.schema,table:f.table,expression:"",name:f.checkConstraintName,column:f.column});}for(let l of n.tableConstraints??[])if(l.kind==="unique")i.push({schema:l.schema,table:l.table,name:l.name??"",columns:l.columns});else if(l.kind==="check")o.push({schema:l.schema,table:l.table,expression:"",name:l.name});else if(l.kind==="foreign_key"&&l.name){let c=l.refTable;for(let f=0;f<l.columns.length;f++){let u=s.find(d=>d.table===l.table&&d.column===l.columns[f]&&d.ref_table===c&&d.ref_column===(l.refColumns?.[f]??""));u&&(u.foreign_key_name=l.name);}}let a=[...e.comments??[],...n.comments??[]];return {...e,columns:r,foreign_keys:s,unique_constraints:i,check_constraints:o,comments:a}}createMigrator(e){let n=[this.config.baseSchema,e].filter(Boolean).join(`
601
633
 
602
- `);return new Ta(this,n,{onTranslation:async r=>{if(this.config.translation){let s={enums:r.enums,rls:r.rls,schema:r.schema,vars:r.vars,tableConstraints:r.tableConstraints??[],comments:r.comments??[]};this.config.translation.deparse=s;}}})}get maxBoundParameters(){return this.config.maxBoundParameters??100}assertParamLimit(e){let n=e?.length??0,r=this.maxBoundParameters;if(!(n<=r))throw Object.assign(new Error(`Query exceeds max bound parameters (${n} > ${r}). SQLite drivers vary in how many parameters they accept per statement; @supabase/lite enforces a conservative limit of ${r} for portability. Split the query (e.g. chunk large .in() filters or batch INSERTs) on the caller.`),{code:"54000"})}prepareBindParams(e){return this.assertParamLimit(e),this.normalizeBindParams(e)}normalizeBindParams(e){if(!e||e.length===0)return [];let n=[];for(let r=0;r<e.length;r++){let s=e[r];if(s===void 0)continue;if(s===null){n.push(s);continue}let i=typeof s;if(i==="boolean"){n.push(s?1:0);continue}if(i==="number"||i==="bigint"||i==="string"){n.push(s);continue}if(s instanceof Uint8Array||s instanceof ArrayBuffer||s instanceof Date){n.push(s);continue}throw new Error(`Cannot bind value at parameter ${r+1}: unsupported type ${Array.isArray(s)?"array":i}`)}return n}normalizeDbError(e){let n=e,r=n?.cause?.code??n?.code,s=n?.cause?.message??n?.message??String(e);if(r==="SQLITE_CONSTRAINT_NOTNULL")return Object.assign(new Error(s),{code:"23502",detail:s});if(r==="SQLITE_CONSTRAINT_UNIQUE"||r==="SQLITE_CONSTRAINT_PRIMARYKEY")return Object.assign(new Error(s),{code:"23505",detail:s});if(r==="SQLITE_CONSTRAINT_FOREIGNKEY")return Object.assign(new Error(s),{code:"23503",detail:s});if(typeof s=="string"){if(/too many SQL variables/i.test(s)){let a=this.maxBoundParameters;return Object.assign(new Error(`Query exceeds SQLite bound-parameter limit. @supabase/lite enforces a conservative limit of ${a} for portability across drivers. Split the query (e.g. chunk large .in() filters or batch INSERTs) on the caller.`),{code:"54000",detail:s})}let i=s.match(/no such table:\s*([A-Za-z0-9_.]+)/i);if(i){let a=i[1],l=a.lastIndexOf("."),c=l>=0?a.slice(0,l):void 0,u=l>=0?a.slice(l+1):a;return new RelationNotFoundError(c,u)}let o=s.match(/no such column:\s*([A-Za-z0-9_.]+)/i);if(o)return Object.assign(new Error(`column ${o[1]} does not exist`),{code:"42703",detail:s})}return e}async onPostgrestAST(e,n){if(this.config.ddlDialect==="sqlite")return e.schema=void 0,this.applyRls(e,n);let r=this.config.translation?.schemas?.appendDefaultSchema,s=this.config.translation?.schemas?.defaultSchema;if(e.schema&&e.schema===s&&!r?e.schema=void 0:!e.schema&&s&&r&&(e.schema=s),!e.from)return e;let i=await this.introspect({useCache:true}),o=e.schema??(r&&s?s:""),a=e.from;if(!(i.tables.some(c=>c.name===a&&(c.schema??"")===o)||i.views.some(c=>c.name===a&&(c.schema??"")===o))){if(!(i.tables.some(u=>u.name===a&&["","public",s].includes(u.schema??""))||i.views.some(u=>u.name===a&&["","public",s].includes(u.schema??""))))throw new RelationNotFoundError(o,a);e.schema=void 0;}return this.applyRls(e,n)}applyRls(e,n){let s=this.config.translation?.deparse?.rls;if(!s||!n)return e;let i=this.config.translation?.schemas?.defaultSchema||void 0;return new Ca(s.tables,s.policies,i).enforce(e,n)}};var ja=class extends Ei{constructor(n){super({...n,introspection:{...n.introspection,version:"3.47.0"}});this.config=n;}dialect="sqlite";driver=null;kysely=null;fetch(n,r){let s=n instanceof URL?new URL(n.toString(),this.config.host):new URL(n,this.config.host);return fetch(s,{...r,headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${this.config.token}`,...r?.headers}})}async introspect(n){let r=new URLSearchParams({useCache:n?.useCache?"1":"0",postprocess:n?.postprocess?"1":"0"}),s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/introspect?${r}`),i=await s.text();if(!s.ok)throw console.error(i),new Error(`Failed to get project introspect: ${s.status} ${s.statusText}`);try{let o=JSON.parse(i);if(!o)throw new Error("Failed to get project introspect");return o}catch(o){throw console.error(o),console.log(i),new Error(`Failed to parse introspect response: "${i}"`)}}async transaction(n,r){let s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/transaction?intent=${r?.intent??"migration"}`,{method:"POST",body:JSON.stringify({statements:n})});if(!s.ok)throw new Error(`Failed to execute transaction: ${s.status} ${s.statusText}`)}async exec(n,...r){let s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/exec`,{method:"POST",body:JSON.stringify({statement:n,parameters:r})}),i=await s.text();if(!s.ok)throw console.error(i),new Error(`Failed to execute statement: ${s.status} ${s.statusText}`);if(i.trim())try{return JSON.parse(i)}catch(o){throw console.error(o),new Error(`Failed to parse exec response: "${i}"`)}}async close(){}};function Jv(t){return new ja(t)}Ef();Si();Rs();var zv=["anon","authenticated","service_role"];function Vv(t){return t==="service_role"?"NOLOGIN BYPASSRLS":"NOLOGIN"}function Gv(t){return t.size===0?"":`DO $$ BEGIN${[...t].map(n=>`
634
+ `);return new qo(this,n,{onTranslation:async r=>{if(this.config.translation){let s={enums:r.enums,rls:r.rls,schema:r.schema,vars:r.vars,tableConstraints:r.tableConstraints??[],comments:r.comments??[]};this.updateDeparseInfo(s);}}})}get maxBoundParameters(){return this.config.maxBoundParameters??100}assertParamLimit(e){let n=e?.length??0,r=this.maxBoundParameters;if(!(n<=r))throw Object.assign(new Error(`Query exceeds max bound parameters (${n} > ${r}). SQLite drivers vary in how many parameters they accept per statement; @supabase/lite enforces a conservative limit of ${r} for portability. Split the query (e.g. chunk large .in() filters or batch INSERTs) on the caller.`),{code:"54000"})}prepareBindParams(e){return this.assertParamLimit(e),this.normalizeBindParams(e)}normalizeBindParams(e){if(!e||e.length===0)return [];let n=[];for(let r=0;r<e.length;r++){let s=e[r];if(s===void 0)continue;if(s===null){n.push(s);continue}let i=typeof s;if(i==="boolean"){n.push(s?1:0);continue}if(i==="number"||i==="bigint"||i==="string"){n.push(s);continue}if(s instanceof Uint8Array||s instanceof ArrayBuffer||s instanceof Date){n.push(s);continue}throw new Error(`Cannot bind value at parameter ${r+1}: unsupported type ${Array.isArray(s)?"array":i}`)}return n}normalizeDbError(e){let n=e,r=n?.cause?.code??n?.code,s=n?.cause?.message??n?.message??String(e);if(r==="SQLITE_CONSTRAINT_NOTNULL")return Object.assign(new Error(s),{code:"23502",detail:s});if(r==="SQLITE_CONSTRAINT_UNIQUE"||r==="SQLITE_CONSTRAINT_PRIMARYKEY")return Object.assign(new Error(s),{code:"23505",detail:s});if(r==="SQLITE_CONSTRAINT_FOREIGNKEY")return Object.assign(new Error(s),{code:"23503",detail:s});if(typeof s=="string"){if(/too many SQL variables/i.test(s)){let a=this.maxBoundParameters;return Object.assign(new Error(`Query exceeds SQLite bound-parameter limit. @supabase/lite enforces a conservative limit of ${a} for portability across drivers. Split the query (e.g. chunk large .in() filters or batch INSERTs) on the caller.`),{code:"54000",detail:s})}let i=s.match(/no such table:\s*([A-Za-z0-9_.]+)/i);if(i){let a=i[1],l=a.lastIndexOf("."),c=l>=0?a.slice(0,l):void 0,f=l>=0?a.slice(l+1):a;return new RelationNotFoundError(c,f)}let o=s.match(/no such column:\s*([A-Za-z0-9_.]+)/i);if(o)return Object.assign(new Error(`column ${o[1]} does not exist`),{code:"42703",detail:s})}return e}async onPostgrestAST(e,n){if(this.config.ddlDialect==="sqlite")return e.schema=void 0,await this.applyRls(e,n);let r=this.config.translation?.schemas?.appendDefaultSchema,s=this.config.translation?.schemas?.defaultSchema;if(e.schema&&e.schema===s&&!r?e.schema=void 0:!e.schema&&s&&r&&(e.schema=s),!e.from)return e;let i=await this.introspect({useCache:true}),o=e.schema??(r&&s?s:""),a=e.from;if(!(i.tables.some(c=>c.name===a&&(c.schema??"")===o)||i.views.some(c=>c.name===a&&(c.schema??"")===o))){if(!(i.tables.some(f=>f.name===a&&["","public",s].includes(f.schema??""))||i.views.some(f=>f.name===a&&["","public",s].includes(f.schema??""))))throw new RelationNotFoundError(o,a);e.schema=void 0;}return await this.applyRls(e,n)}rlsEnabledFromHistory(){return this.config.ddlDialect!=="postgres"?Promise.resolve(new Set):(this.#e||(this.#e=hu(this).then(e=>ky(e)).catch(()=>new Set)),this.#e)}async applyRls(e,n){let r=this.config.translation?.deparse,s=this.config.translation?.schemas?.defaultSchema||void 0,i=n??{auth:{uid:null,role:"anon",jwt:null}};if(this.config.ddlDialect==="postgres"&&!this.#t){let l=await this.rlsEnabledFromHistory();if(l.size>0)return eb||(eb=true,console.error("[ RLS ] RLS metadata is missing for this database \u2014 denying requests to protected tables (fail closed). Run `lite migration up` or `lite db reset` to regenerate RLS metadata.")),e.from?new Js(l,[],s).enforce(e,i):e}let o=r?.rls;return o?new Js(o.tables,o.policies,s).enforce(e,i):e}},eb=false;var ta=class extends zs{constructor(n){super({...n,introspection:{...n.introspection,version:"3.47.0"}});this.config=n;}dialect="sqlite";driver=null;kysely=null;fetch(n,r){let s=n instanceof URL?new URL(n.toString(),this.config.host):new URL(n,this.config.host);return fetch(s,{...r,headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${this.config.token}`,...r?.headers}})}async introspect(n){let r=new URLSearchParams({useCache:n?.useCache?"1":"0",postprocess:n?.postprocess?"1":"0"}),s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/introspect?${r}`),i=await s.text();if(!s.ok)throw console.error(i),new Error(`Failed to get project introspect: ${s.status} ${s.statusText}`);try{let o=JSON.parse(i);if(!o)throw new Error("Failed to get project introspect");return o}catch(o){throw console.error(o),console.log(i),new Error(`Failed to parse introspect response: "${i}"`)}}async transaction(n,r){let s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/transaction?intent=${r?.intent??"migration"}`,{method:"POST",body:JSON.stringify({statements:n})});if(!s.ok)throw new Error(`Failed to execute transaction: ${s.status} ${s.statusText}`)}async exec(n,...r){let s=await this.fetch(`/v1/projects/${this.config.projectRef}/db/exec`,{method:"POST",body:JSON.stringify({statement:n,parameters:r})}),i=await s.text();if(!s.ok)throw console.error(i),new Error(`Failed to execute statement: ${s.status} ${s.statusText}`);if(i.trim())try{return JSON.parse(i)}catch(o){throw console.error(o),new Error(`Failed to parse exec response: "${i}"`)}}async close(){}};function MC(t){return new ta(t)}Pu();Ks();Qr();var BC=["anon","authenticated","service_role"];function qC(t){return t==="service_role"?"NOLOGIN BYPASSRLS":"NOLOGIN"}function HC(t){return t.size===0?"":`DO $$ BEGIN${[...t].map(n=>`
603
635
  IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${n}') THEN
604
- CREATE ROLE ${n} ${Vv(n)};
636
+ CREATE ROLE ${n} ${qC(n)};
605
637
  END IF;`).join("")}
606
638
  END $$;
607
- `}Gv(new Set(zv));var Qv=`
639
+ `}HC(new Set(BC));var WC=`
608
640
  CREATE SCHEMA IF NOT EXISTS auth;
609
641
 
610
642
  CREATE OR REPLACE FUNCTION auth.uid() RETURNS UUID AS $$
@@ -625,11 +657,11 @@ CREATE OR REPLACE FUNCTION auth.jwt() RETURNS JSONB AS $$
625
657
  '{}'
626
658
  )::jsonb;
627
659
  $$ LANGUAGE SQL STABLE;
628
- `;try{let{emitWarning:t}=process;process.emitWarning=(e,...n)=>{if(!e.includes("SQLite is an experimental feature"))return t(e,...n)};}catch{}/*! Bundled license information:
660
+ `;var tb="supabase-self-hosted";function $u(t){let e="";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function nb(t){let e=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",e);return new Uint8Array(n)}async function KC(t,e=tb,n){let r=n??crypto.getRandomValues(new Uint8Array(17)),s=`sb_${t}_`,i=s+$u(r).slice(0,22),o=$u(await nb(`${e}|${i}`)).slice(0,8),a=`${i}_${o}`,l=await rb(a),c=a.slice(0,s.length+5);return {key:a,hash:l,prefix:c,type:t}}async function rb(t){return $u(await nb(t))}function JC(t){return t.startsWith("sb_publishable_")?"publishable":t.startsWith("sb_secret_")?"secret":null}try{let{emitWarning:t}=process;process.emitWarning=(e,...n)=>{if(!e.includes("SQLite is an experimental feature"))return t(e,...n)};}catch{}/*! Bundled license information:
629
661
 
630
662
  aws4fetch/dist/aws4fetch.esm.mjs:
631
663
  (**
632
664
  * @license MIT <https://opensource.org/licenses/MIT>
633
665
  * @copyright Michael Hart 2024
634
666
  *)
635
- */export{ff as App,ea as AwsSesEmailDriver,ja as CloudConnection,Qo as CloudflareKvCacheDriver,Vc as Connection,Wy as DataLossError,Ys as InMemoryEmailDriver,_r as InMemoryLruCacheDriver,Hy as InvalidPostgresToSQLiteTranslation,Ky as MigrationError,Er as NoopEmailDriver,Zs as NoopSmsDriver,pf as PlanStepType,nt as Policy,Xo as RedisCacheDriver,fr as RelationNotFoundError,Yo as ResendEmailDriver,Qv as SUPABASE_AUTH_HELPERS_SQL,ta as SendmailEmailDriver,Ei as SqliteConnection,qy as UnableToCreateRuntimeConnection,qC as appliedVersions,AO as checkPasswordStrength,Ts as cleanSql,Jv as cloud,Eg as createAppDrivers,cf as ensureHistoryTable,QP as ensureVar,HP as filterSearchParams,Eu as formatSendmailMessage,Ss as fuzzyMatch,of as getAuthSchemaSql,lf as getMigrationHistorySchemaSql,Xt as getPath,YP as getStatementsArray,ia as getStorageSchemaSql,JC as getVersion,Ge as historyVariant,wm as invariant,PP as isBooleanLike,px as isBun,vO as isEmail,uc as isEqual,Pr as isExperimentalEnabled,KP as isNode,gm as isObject,hm as isPlainObject,OP as isPrimitive,NP as isString,ym as jsonStringify,Ay as listEnabledExperimentals,KC as listHistory,GP as measureTime,fc as mergeObject,fx as mergeObjectWith,mc as normalizeDefault,dc as normalizeSql,lE as normalizeString,pc as normalizeType,FP as objectDiff,UP as omit,qP as params,eN as parseBigInt,wo as patternMatch,MP as pick,DP as pipe,jP as pipeEach,I as quote,CO as randomString,HC as recordVersion,WC as removeVersion,zC as removeVersionsGte,IO as replacePlaceholders,ri as requireAuth,Cu as resolveAuth,AC as setExperimental,ux as setPath,PO as slugify,OO as snakeToPascalWithSpaces,Em as splitSqlStatements,RC as studioRouteHandler,JP as threw,zP as threwAsync,$b as translatePostgresDdl,NO as truncate,VP as trySync,kO as ucFirst,$O as ucFirstAll,nN as uuid};
667
+ */export{yu as App,wo as AwsSesEmailDriver,ta as CloudConnection,ho as CloudflareKvCacheDriver,Gl as Connection,Qn as ConsoleEmailDriver,ly as DataLossError,_s as InMemoryEmailDriver,Vn as InMemoryLruCacheDriver,ay as InvalidPostgresToSQLiteTranslation,cy as MigrationError,Es as NoopSmsDriver,bu as PlanStepType,Ge as Policy,go as RedisCacheDriver,Bn as RelationNotFoundError,yo as ResendEmailDriver,tb as SELF_HOSTED_PROJECT_REF,WC as SUPABASE_AUTH_HELPERS_SQL,So as SendmailEmailDriver,zs as SqliteConnection,oy as UnableToCreateRuntimeConnection,JC as apiKeyType,NR as appliedVersions,mO as checkPasswordStrength,Vr as cleanSql,MC as cloud,Nh as createAppDrivers,mu as ensureHistoryTable,jP as ensureVar,AP as filterSearchParams,Ac as formatSendmailMessage,Kr as fuzzyMatch,KC as generateApiKey,fu as getAuthSchemaSql,pu as getMigrationHistorySchemaSql,qt as getPath,FP as getStatementsArray,xo as getStorageSchemaSql,LR as getVersion,rb as hashApiKey,Je as historyVariant,Tp as invariant,bP as isBooleanLike,N_ as isBun,pO as isEmail,xl as isEqual,or as isExperimentalEnabled,PP as isNode,_p as isObject,Sp as isPlainObject,yP as isPrimitive,wP as isString,Ep as jsonStringify,Hg as listEnabledExperimentals,hu as listHistory,DP as measureTime,Tl as mergeObject,I_ as mergeObjectWith,kl as normalizeDefault,Cl as normalizeSql,OS as normalizeString,Rl as normalizeType,TP as objectDiff,CP as omit,vP as params,MP as parseBigInt,Hi as patternMatch,RP as pick,_P as pipe,EP as pipeEach,N as quote,dO as randomString,DR as recordVersion,jR as removeVersion,FR as removeVersionsGte,SO as replacePlaceholders,ks as requireAuth,$c as resolveAuth,hR as setExperimental,$_ as setPath,bO as slugify,yO as snakeToPascalWithSpaces,kp as splitSqlStatements,dR as studioRouteHandler,$P as threw,IP as threwAsync,Qy as translatePostgresDdl,wO as truncate,NP as trySync,hO as ucFirst,gO as ucFirstAll,qP as uuid};