@gjermundgaraba/clankerauth-dev 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- @better-auth/api-key@1.7.7
1
+ @better-auth/api-key@1.7.10
2
2
  LICENSE.md
3
3
  The MIT License (MIT)
4
4
  Copyright (c) 2024 - present, Bereket Engida
@@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE.
24
24
 
25
25
  ---
26
26
 
27
- @better-auth/cimd@1.7.7
27
+ @better-auth/cimd@1.7.10
28
28
  LICENSE.md
29
29
  The MIT License (MIT)
30
30
  Copyright (c) 2024 - present, Bereket Engida
@@ -50,7 +50,7 @@ DEALINGS IN THE SOFTWARE.
50
50
 
51
51
  ---
52
52
 
53
- @better-auth/core@1.7.7
53
+ @better-auth/core@1.7.10
54
54
  LICENSE.md
55
55
  The MIT License (MIT)
56
56
  Copyright (c) 2024 - present, Bereket Engida
@@ -76,7 +76,7 @@ DEALINGS IN THE SOFTWARE.
76
76
 
77
77
  ---
78
78
 
79
- @better-auth/kysely-adapter@1.7.7
79
+ @better-auth/kysely-adapter@1.7.10
80
80
  LICENSE.md
81
81
  The MIT License (MIT)
82
82
  Copyright (c) 2024 - present, Bereket Engida
@@ -102,7 +102,7 @@ DEALINGS IN THE SOFTWARE.
102
102
 
103
103
  ---
104
104
 
105
- @better-auth/memory-adapter@1.7.7
105
+ @better-auth/memory-adapter@1.7.10
106
106
  LICENSE.md
107
107
  The MIT License (MIT)
108
108
  Copyright (c) 2024 - present, Bereket Engida
@@ -128,7 +128,7 @@ DEALINGS IN THE SOFTWARE.
128
128
 
129
129
  ---
130
130
 
131
- @better-auth/oauth-provider@1.7.7
131
+ @better-auth/oauth-provider@1.7.10
132
132
  LICENSE.md
133
133
  The MIT License (MIT)
134
134
  Copyright (c) 2024 - present, Bereket Engida
@@ -154,7 +154,7 @@ DEALINGS IN THE SOFTWARE.
154
154
 
155
155
  ---
156
156
 
157
- @better-auth/telemetry@1.7.7
157
+ @better-auth/telemetry@1.7.10
158
158
  LICENSE.md
159
159
  The MIT License (MIT)
160
160
  Copyright (c) 2024 - present, Bereket Engida
@@ -178,111 +178,6 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
178
178
  DEALINGS IN THE SOFTWARE.
179
179
 
180
180
 
181
- ---
182
-
183
- @better-auth/utils@0.4.2
184
- No separate license file is shipped by this package. Published metadata:
185
- {
186
- "name": "@better-auth/utils",
187
- "version": "0.4.2",
188
- "license": "MIT",
189
- "description": "A collection of utilities for better-auth",
190
- "main": "./dist/index.cjs",
191
- "module": "./dist/index.mjs",
192
- "keywords": [
193
- "auth",
194
- "utils",
195
- "typescript",
196
- "better-auth",
197
- "better-auth-utils"
198
- ],
199
- "author": "Bereket Engida",
200
- "repository": {
201
- "type": "git",
202
- "url": "git+https://github.com/better-auth/utils.git"
203
- },
204
- "devDependencies": {
205
- "@biomejs/biome": "^1.9.4",
206
- "@types/node": "^22.10.1",
207
- "bumpp": "^9.9.0",
208
- "happy-dom": "^15.11.7",
209
- "typescript": "^5.8.2",
210
- "unbuild": "^2.0.0",
211
- "vitest": "^2.1.8"
212
- },
213
- "exports": {
214
- ".": {
215
- "import": "./dist/index.mjs",
216
- "require": "./dist/index.cjs"
217
- },
218
- "./base32": {
219
- "import": "./dist/base32.mjs",
220
- "require": "./dist/base32.cjs"
221
- },
222
- "./base64": {
223
- "import": "./dist/base64.mjs",
224
- "require": "./dist/base64.cjs"
225
- },
226
- "./binary": {
227
- "import": "./dist/binary.mjs",
228
- "require": "./dist/binary.cjs"
229
- },
230
- "./hash": {
231
- "import": "./dist/hash.mjs",
232
- "require": "./dist/hash.cjs"
233
- },
234
- "./ecdsa": {
235
- "import": "./dist/ecdsa.mjs",
236
- "require": "./dist/ecdsa.cjs"
237
- },
238
- "./hex": {
239
- "import": "./dist/hex.mjs",
240
- "require": "./dist/hex.cjs"
241
- },
242
- "./hmac": {
243
- "import": "./dist/hmac.mjs",
244
- "require": "./dist/hmac.cjs"
245
- },
246
- "./otp": {
247
- "import": "./dist/otp.mjs",
248
- "require": "./dist/otp.cjs"
249
- },
250
- "./random": {
251
- "import": "./dist/random.mjs",
252
- "require": "./dist/random.cjs"
253
- },
254
- "./rsa": {
255
- "import": "./dist/rsa.mjs",
256
- "require": "./dist/rsa.cjs"
257
- },
258
- "./password": {
259
- "workerd": {
260
- "import": "./dist/password.node.mjs",
261
- "require": "./dist/password.node.cjs"
262
- },
263
- "node": {
264
- "import": "./dist/password.node.mjs",
265
- "require": "./dist/password.node.cjs"
266
- },
267
- "import": "./dist/password.mjs",
268
- "require": "./dist/password.cjs"
269
- }
270
- },
271
- "files": [
272
- "dist"
273
- ],
274
- "dependencies": {
275
- "@noble/hashes": "^2.0.1"
276
- },
277
- "scripts": {
278
- "test": "vitest",
279
- "typecheck": "tsc --noEmit",
280
- "build": "unbuild",
281
- "bump": "bumpp",
282
- "lint:fix": "biome check . --write"
283
- }
284
- }
285
-
286
181
  ---
287
182
 
288
183
  @better-auth/utils@0.5.0
@@ -418,7 +313,7 @@ SOFTWARE.
418
313
 
419
314
  ---
420
315
 
421
- @effect/platform-node-shared@4.0.4
316
+ @effect/platform-node-shared@4.0.5
422
317
  LICENSE
423
318
  MIT License
424
319
 
@@ -445,7 +340,7 @@ SOFTWARE.
445
340
 
446
341
  ---
447
342
 
448
- @effect/platform-node@4.0.4
343
+ @effect/platform-node@4.0.5
449
344
  LICENSE
450
345
  MIT License
451
346
 
@@ -472,7 +367,7 @@ SOFTWARE.
472
367
 
473
368
  ---
474
369
 
475
- @gjermundgaraba/effect-actions@0.18.0
370
+ @gjermundgaraba/effect-actions@0.18.2
476
371
  LICENSE
477
372
  MIT License
478
373
 
@@ -1195,7 +1090,7 @@ No separate license file is shipped by this package. Published metadata:
1195
1090
 
1196
1091
  ---
1197
1092
 
1198
- better-auth@1.7.7
1093
+ better-auth@1.7.10
1199
1094
  LICENSE.md
1200
1095
  The MIT License (MIT)
1201
1096
  Copyright (c) 2024 - present, Bereket Engida
@@ -1221,7 +1116,7 @@ DEALINGS IN THE SOFTWARE.
1221
1116
 
1222
1117
  ---
1223
1118
 
1224
- better-call@1.4.0
1119
+ better-call@1.4.2
1225
1120
  LICENSE
1226
1121
  MIT License
1227
1122
 
@@ -1294,7 +1189,7 @@ SOFTWARE.
1294
1189
 
1295
1190
  ---
1296
1191
 
1297
- effect@4.0.4
1192
+ effect@4.0.5
1298
1193
  LICENSE
1299
1194
  MIT License
1300
1195
 
@@ -1 +1 @@
1
- import{N as e}from"./schemas-BE0MEk26.mjs";function t(e){return{success:!1,error:`You are not allowed to access resource: ${e}`}}function n(e){return{success:!1,error:`unauthorized to access resource "${e}"`}}function r(e){return e===`OR`?`OR`:`AND`}function i(e){return Array.isArray(e)}function a(t){if(i(t))return{actions:t,connector:`AND`};if(!t||typeof t!=`object`)throw new e(`Invalid access control request`);let{actions:n,connector:a}=t;return i(n)?{actions:n,connector:r(a)}:{actions:[],connector:r(a)}}function o(e,t){return typeof t==`string`&&e.includes(t)}function s(e,{actions:t,connector:n}){return t.length===0?!1:n===`OR`?t.some(t=>o(e,t)):t.every(t=>o(e,t))}function c(e){return{authorize(r,i=`AND`){let o=!1;for(let[c,l]of Object.entries(r)){let r=e[c];if(!r){if(i===`AND`)return t(c);continue}let u=s(r,a(l));if(u&&(o=!0),u&&i===`OR`)return{success:!0};if(!u&&i===`AND`)return n(c)}return o?{success:!0}:{success:!1,error:`Not authorized`}},statements:e}}function l(e){return{newRole(e){return c(e)},statements:e}}export{c as n,l as t};
1
+ import{N as e}from"./schemas-CYWNDEcx.mjs";function t(e){return{success:!1,error:`You are not allowed to access resource: ${e}`}}function n(e){return{success:!1,error:`unauthorized to access resource "${e}"`}}function r(e){return e===`OR`?`OR`:`AND`}function i(e){return Array.isArray(e)}function a(t){if(i(t))return{actions:t,connector:`AND`};if(!t||typeof t!=`object`)throw new e(`Invalid access control request`);let{actions:n,connector:a}=t;return i(n)?{actions:n,connector:r(a)}:{actions:[],connector:r(a)}}function o(e,t){return typeof t==`string`&&e.includes(t)}function s(e,{actions:t,connector:n}){return t.length===0?!1:n===`OR`?t.some(t=>o(e,t)):t.every(t=>o(e,t))}function c(e){return{authorize(r,i=`AND`){let o=!1;for(let[c,l]of Object.entries(r)){let r=e[c];if(!r){if(i===`AND`)return t(c);continue}let u=s(r,a(l));if(u&&(o=!0),u&&i===`OR`)return{success:!0};if(!u&&i===`AND`)return n(c)}return o?{success:!0}:{success:!1,error:`Not authorized`}},statements:e}}function l(e){return{newRole(e){return c(e)},statements:e}}export{c as n,l as t};
@@ -0,0 +1 @@
1
+ import{a as e,n as t,o as n,t as r}from"./sqlite-introspector-DSCAP82F-CISODKY3.mjs";import{n as i,t as a}from"./sqlite-adapter-CS5jtB3L.mjs";function o(e){return`'${e.replaceAll(`'`,`''`)}'`}function s(e){return async t=>{if(t.length===0)return[];let n=(await e.batch(t.map(t=>e.prepare(`PRAGMA index_list(${o(t)})`)))).flatMap((e,n)=>{let r=t[n];return r?e.results.map(e=>({...e,tableName:r})):[]});if(n.length===0)return[];let r=await e.batch(n.map(t=>e.prepare(`PRAGMA index_info(${o(t.name)})`)));return n.map((e,t)=>({columns:(r[t]?.results??[]).map(e=>({fullLength:e.name!==null,name:e.name,position:e.seqno})),name:e.name,partial:e.partial!==0,table:e.tableName,unique:e.unique!==0,valid:!0}))}}var c=class extends a{get supportsMultipleConnections(){return!0}},l=class{#e;#t;constructor(e){this.#e={...e}}async init(){this.#t=new u(this.#e.database),this.#e.onCreateConnection&&await this.#e.onCreateConnection(this.#t)}async acquireConnection(){return this.#t}async beginTransaction(){throw Error(`D1 does not support interactive transactions. Use the D1 batch() API instead.`)}async commitTransaction(){throw Error(`D1 does not support interactive transactions. Use the D1 batch() API instead.`)}async rollbackTransaction(){throw Error(`D1 does not support interactive transactions. Use the D1 batch() API instead.`)}async releaseConnection(){}async destroy(){}},u=class{#e;constructor(e){this.#e=e}async executeQuery(e){let t=await this.#e.prepare(e.sql).bind(...e.parameters).all(),n=t.meta.changes==null?void 0:BigInt(t.meta.changes);return{insertId:t.meta.last_row_id===void 0||t.meta.last_row_id===null?void 0:BigInt(t.meta.last_row_id),rows:t?.results||[],numAffectedRows:n}}async*streamQuery(){throw Error(`D1 does not support streaming queries.`)}},d=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async getSchemas(){return[]}async getTables(i={withInternalKyselyTables:!1}){let a=this.#e.selectFrom(`sqlite_master`).where(`type`,`in`,[`table`,`view`]).where(`name`,`not like`,`sqlite_%`).where(`name`,`not like`,`_cf_%`).select([`name`,`type`]).$castTo();i.withInternalKyselyTables||(a=a.where(`name`,`!=`,t).where(`name`,`!=`,r));let s=await a.execute();if(s.length===0)return[];let c=s.map(e=>this.#t.prepare(`SELECT * FROM pragma_table_info(?)`).bind(e.name)),l=await this.#t.batch(c),u=s.flatMap((t,n)=>{let r=e(l[n]?.results??[]);return r?[{index:n,tableName:t.name,column:r}]:[]}),d=u.length?await this.#t.batch(u.map(({tableName:e})=>this.#t.prepare(`PRAGMA index_list(${o(e)})`))):[],f=new Map(u.filter((e,t)=>!d[t]?.results?.some(e=>e.origin===`pk`)).map(({index:e,column:t})=>[e,t]));return s.map((e,t)=>n(e,l[t]?.results??[],f.get(t)))}async getMetadata(e){return{tables:await this.getTables(e)}}},f=class extends i{},p=class{#e;constructor(e){this.#e={...e}}createDriver(){return new l(this.#e)}createQueryCompiler(){return new f}createAdapter(){return new c}createIntrospector(e){return new d(e,this.#e.database)}};export{p as D1SqliteDialect,s as createD1IndexIntrospector};
@@ -0,0 +1 @@
1
+ import{A as e}from"./get-id-field-CHlYHt3y.mjs";import{t}from"./factory-tEOeUNZI.mjs";function n(e,t){return typeof e==`string`&&typeof t==`string`?e.toLowerCase()===t.toLowerCase():e===t}function r(e,t){return typeof e==`string`?t.some(t=>typeof t==`string`&&e.toLowerCase()===t.toLowerCase()):t.includes(e)}function i(e,t){return!r(e,t)}function a(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().includes(t.toLowerCase())}function o(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().startsWith(t.toLowerCase())}function s(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().endsWith(t.toLowerCase())}function c(e){let t=/* @__PURE__ */ new Map;for(let n of e)t.set(n.id,n);return t}function l(e,t,n){let r=/* @__PURE__ */ new Set([...Object.keys(t),...Object.keys(n)]);for(let i of r){if(!(i in n)){delete e[i];continue}let r=c(t[i]??[]),a=n[i]??[],o=c(a),s=e[i]??[],l=[],d=/* @__PURE__ */ new Set;for(let e of s){let t=e.id,n=r.get(t),i=o.get(t);(n===void 0||i!==void 0)&&(i!==void 0&&u(n,i)?l.push(i):l.push(e),d.add(t))}for(let e of a)!r.has(e.id)&&!d.has(e.id)&&l.push(e);e[i]=l}}function u(e,t){return e===void 0||JSON.stringify(e)!==JSON.stringify(t)}const d=(c,u)=>{let d=null,f=c=>t({config:{adapterId:`memory`,adapterName:`Memory Adapter`,usePlural:!1,debugLogs:u?.debugLogs||!1,supportsArrays:!0,customTransformInput(e){return e.options.advanced?.database?.generateId===`serial`&&e.field===`id`&&e.action===`create`?c[e.model].length+1:e.data},transaction:async e=>{let t=structuredClone(c),n=structuredClone(c),r=await e(f(n)(d));return l(c,t,n),r}},adapter:({getFieldName:t,getDefaultFieldName:l,options:u})=>{let d=(e,n,r)=>n?e.sort((e,i)=>{let a=t({model:r,field:n.field}),o=e[a],s=i[a],c=0;return c=o==null&&s==null?0:o==null?-1:s==null?1:typeof o==`string`&&typeof s==`string`?o.localeCompare(s):o instanceof Date&&s instanceof Date?o.getTime()-s.getTime():typeof o==`number`&&typeof s==`number`?o-s:typeof o==`boolean`&&typeof s==`boolean`?o===s?0:o?1:-1:String(o).localeCompare(String(s)),n.direction===`asc`?c:-c}):e;function f(t,u,d,f,p){let m=(()=>{let f=c[u];if(!f)throw e.error(`[MemoryAdapter] Model ${u} not found in the DB`,Object.keys(c)),Error(`Model ${u} not found`);let m=(e,t)=>{let{field:c,value:l,operator:u,mode:d=`sensitive`}=t,f=d===`insensitive`&&(typeof l==`string`||Array.isArray(l)&&l.every(e=>typeof e==`string`));switch(u){case`in`:if(!Array.isArray(l))throw Error(`Value must be an array`);return f?r(e[c],l):l.includes(e[c]);case`not_in`:if(!Array.isArray(l))throw Error(`Value must be an array`);return f?i(e[c],l):!l.includes(e[c]);case`contains`:return f?a(e[c],l):e[c]?.includes(l);case`starts_with`:return f?o(e[c],l):e[c].startsWith(l);case`ends_with`:return f?s(e[c],l):e[c].endsWith(l);case`ne`:return f?!n(e[c],l):e[c]!==l;case`gt`:return l!=null&&e[c]>l;case`gte`:return l!=null&&e[c]>=l;case`lt`:return l!=null&&e[c]<l;case`lte`:return l!=null&&e[c]<=l;default:return f?n(e[c],l):l===null?e[c]==null:e[c]===l}},h=f.filter(e=>{if(!t.length||t.length===0)return!0;let n=m(e,t[0]);for(let r of t){let t=m(e,r);r.connector===`OR`?n||=t:n&&=t}return n});return p?.length&&p.length>0&&(h=h.map(e=>Object.fromEntries(Object.entries(e).filter(([e])=>p.includes(l({model:d,field:e})))))),h})();if(!f)return m;let h=/* @__PURE__ */ new Map,g=/* @__PURE__ */ new Map;for(let t of m){let n=String(t.id);if(!h.has(n)){let e={...t};for(let[t,r]of Object.entries(f)){let i=t;r.relation===`one-to-one`?e[i]=null:(e[i]=[],g.set(`${n}-${t}`,/* @__PURE__ */ new Set))}h.set(n,e)}let r=h.get(n);for(let[i,a]of Object.entries(f)){let o=i,s=c[o];if(!s)throw e.error(`[MemoryAdapter] JoinOption model ${o} not found in the DB`,Object.keys(c)),Error(`JoinOption model ${o} not found`);let l=s.filter(e=>e[a.on.to]===t[a.on.from]);if(a.relation===`one-to-one`)r[o]=l[0]||null;else{let e=g.get(`${n}-${i}`),t=a.limit??100,s=0;for(let n of l){if(s>=t)break;e.has(n.id)||(r[o].push(n),e.add(n.id),s++)}}}}return Array.from(h.values())}return{create:async({model:e,data:t})=>(u.advanced?.database?.generateId===`serial`&&(t.id=c[e].length+1),c[e]||(c[e]=[]),c[e].push(t),t),findOne:async({model:e,modelKey:t=e,where:n,select:r,join:i})=>{let a=f(n,e,t,i,r);if(i){let e=a;return e.length?e[0]:null}return a[0]||null},findMany:async({model:e,modelKey:t=e,where:n,sortBy:r,limit:i,select:a,offset:o,join:s})=>{let c=f(n||[],e,t,s,a);if(s){let e=c;if(!e.length)return[];d(e,r,t);let n=e;return o!==void 0&&(n=n.slice(o)),i!==void 0&&(n=n.slice(0,i)),n}let l=d(c,r,t);return o!==void 0&&(l=l.slice(o)),i!==void 0&&(l=l.slice(0,i)),l||[]},count:async({model:e,modelKey:t=e,where:n})=>n?f(n,e,t).length:c[e].length,update:async({model:e,modelKey:t=e,where:n,update:r})=>{if(n.length===0)return null;let i=f(n,e,t);return i.forEach(e=>{Object.assign(e,r)}),i[0]||null},delete:async({model:e,modelKey:t=e,where:n})=>{if(n.length===0)return;let r=c[e],i=f(n,e,t);c[e]=r.filter(e=>!i.includes(e))},deleteMany:async({model:e,modelKey:t=e,where:n})=>{let r=c[e],i=f(n,e,t),a=0;return c[e]=r.filter(e=>i.includes(e)?(a++,!1):!i.includes(e)),a},consumeOne:async({model:e,modelKey:t=e,where:n})=>{let r=c[e],i=f(n,e,t)[0];return i?(c[e]=r.filter(e=>e!==i),i):null},incrementOne:async({model:e,modelKey:t=e,where:n,increment:r,set:i})=>{let a=f(n,e,t)[0];if(!a)return null;for(let[e,t]of Object.entries(r))a[e]=(typeof a[e]==`number`?a[e]:0)+t;return i&&Object.assign(a,i),a},updateMany:async({model:e,modelKey:t=e,where:n,update:r})=>{let i=f(n,e,t);return i.forEach(e=>{Object.assign(e,r)}),i.length}}}}),p=f(c);return e=>(d=e,p(e))};export{d as memoryAdapter};
@@ -0,0 +1,17 @@
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,Q as _,R as ee,S as v,T as y,U as b,V as te,W as x,X as ne,Y as re,Z as ie,_ as ae,b as S,c as C,d as oe,et as se,f as w,g as ce,h as le,i as ue,it as T,j as de,k as fe,l as E,m as pe,nt as D,p as O,q as k,rt as me,s as he,tt as A,u as j,v as ge,w as _e,x as ve,y as ye,z as be}from"./sqlite-introspector-DSCAP82F-CISODKY3.mjs";import{t as M}from"./compiled-query-C8AL3JwF.mjs";import{n as xe,r as Se,t as Ce}from"./sqlite-adapter-CS5jtB3L.mjs";import{A as we}from"./get-id-field-CHlYHt3y.mjs";import{N as Te}from"./schemas-CYWNDEcx.mjs";import{c as Ee,i as De,n as Oe,t as ke,u as Ae}from"./schema-check-6AE7KkNs.mjs";import{t as je}from"./factory-tEOeUNZI.mjs";const N=k({is(e){return e.kind===`AlterTableNode`},create(e){return k({kind:`AlterTableNode`,table:e})},cloneWithTableProps(e,t){return k({...e,...t})},cloneWithColumnAlteration(e,t){return k({...e,columnAlterations:e.columnAlterations?[...e.columnAlterations,t]:[t]})}}),P=k({is(e){return e.kind===`CreateIndexNode`},create(e){return k({kind:`CreateIndexNode`,name:d.create(e)})},cloneWith(e,t){return k({...e,...t})},cloneWithColumns(e,t){return k({...e,columns:[...e.columns||[],...t]})}}),Me=k({is(e){return e.kind===`CreateSchemaNode`},create(e,t){return k({kind:`CreateSchemaNode`,schema:d.create(e),...t})},cloneWith(e,t){return k({...e,...t})}}),F=k({is(e){return e.kind===`DropIndexNode`},create(e,t){return k({kind:`DropIndexNode`,name:b.create(e),...t})},cloneWith(e,t){return k({...e,...t})}}),Ne=k({is(e){return e.kind===`DropSchemaNode`},create(e,t){return k({kind:`DropSchemaNode`,schema:d.create(e),...t})},cloneWith(e,t){return k({...e,...t})}}),Pe=k({is(e){return e.kind===`DropTableNode`},create(e,t){return k({kind:`DropTableNode`,table:e,...t})},cloneWith(e,t){return k({...e,...t})}}),Fe=k({is(e){return e.kind===`AddColumnNode`},create(e){return k({kind:`AddColumnNode`,column:e})}}),I=k({is(e){return e.kind===`ColumnDefinitionNode`},create(e,t){return k({kind:`ColumnDefinitionNode`,column:n.create(e),dataType:t})},cloneWithFrontModifier(e,t){return k({...e,frontModifiers:e.frontModifiers?k([...e.frontModifiers,t]):[t]})},cloneWithEndModifier(e,t){return k({...e,endModifiers:e.endModifiers?k([...e.endModifiers,t]):[t]})},cloneWith(e,t){return k({...e,...t})}}),Ie=k({is(e){return e.kind===`DropColumnNode`},create(e){return k({kind:`DropColumnNode`,column:n.create(e)})},cloneWith(e,t){return k({...e,...t})}}),Le=k({is(e){return e.kind===`RenameColumnNode`},create(e,t){return k({kind:`RenameColumnNode`,column:n.create(e),renameTo:n.create(t)})}}),Re=k({is(e){return e.kind===`CheckConstraintNode`},create(e,t){return k({kind:`CheckConstraintNode`,expression:e,name:t?d.create(t):void 0})}}),ze=k({cascade:!0,"no action":!0,restrict:!0,"set default":!0,"set null":!0});Object.keys(ze);const Be=k({is(e){return e.kind===`ReferencesNode`},create(e,t){return k({kind:`ReferencesNode`,table:e,columns:k([...t])})},cloneWithOnDelete(e,t){return k({...e,onDelete:t})},cloneWithOnUpdate(e,t){return k({...e,onUpdate:t})}});function Ve(e){return D(e)&&ze[e]}function He(e){return te(e)?e.toOperationNode():t.createImmediate(e)}const Ue=k({is(e){return e.kind===`GeneratedNode`},create(e){return k({kind:`GeneratedNode`,...e})},createWithExpression(e){return k({kind:`GeneratedNode`,always:!0,expression:e})},cloneWith(e,t){return k({...e,...t})}}),We=k({is(e){return e.kind===`DefaultValueNode`},create(e){return k({kind:`DefaultValueNode`,defaultValue:e})}});function L(e){if(Ve(e))return e;throw Error(`invalid OnModifyForeignAction ${e}`)}var R=class e{#e;constructor(e){this.#e=e}autoIncrement(){return new e(I.cloneWith(this.#e,{autoIncrement:!0}))}identity(){return new e(I.cloneWith(this.#e,{identity:!0}))}primaryKey(){return new e(I.cloneWith(this.#e,{primaryKey:!0}))}references(t){let n=g(t);if(!n.table||be.is(n.column))throw Error(`invalid call references('${t}'). The reference must have format table.column or schema.table.column`);return new e(I.cloneWith(this.#e,{references:Be.create(n.table,[n.column])}))}onDelete(t){if(!this.#e.references)throw Error(`on delete constraint can only be added for foreign keys`);return new e(I.cloneWith(this.#e,{references:Be.cloneWithOnDelete(this.#e.references,L(t))}))}onUpdate(t){if(!this.#e.references)throw Error(`on update constraint can only be added for foreign keys`);return new e(I.cloneWith(this.#e,{references:Be.cloneWithOnUpdate(this.#e.references,L(t))}))}unique(){return new e(I.cloneWith(this.#e,{unique:!0}))}notNull(){return new e(I.cloneWith(this.#e,{notNull:!0}))}unsigned(){return new e(I.cloneWith(this.#e,{unsigned:!0}))}defaultTo(t){return new e(I.cloneWith(this.#e,{defaultTo:We.create(He(t))}))}check(t){return new e(I.cloneWith(this.#e,{check:Re.create(t.toOperationNode())}))}generatedAlwaysAs(t){return new e(I.cloneWith(this.#e,{generated:Ue.createWithExpression(t.toOperationNode())}))}generatedAlwaysAsIdentity(){return new e(I.cloneWith(this.#e,{generated:Ue.create({identity:!0,always:!0})}))}generatedByDefaultAsIdentity(){return new e(I.cloneWith(this.#e,{generated:Ue.create({identity:!0,byDefault:!0})}))}stored(){if(!this.#e.generated)throw Error(`stored() can only be called after generatedAlwaysAs`);return new e(I.cloneWith(this.#e,{generated:Ue.cloneWith(this.#e.generated,{stored:!0})}))}modifyFront(t){return new e(I.cloneWithFrontModifier(this.#e,t.toOperationNode()))}nullsNotDistinct(){return new e(I.cloneWith(this.#e,{nullsNotDistinct:!0}))}ifNotExists(){return new e(I.cloneWith(this.#e,{ifNotExists:!0}))}modifyEnd(t){return new e(I.cloneWithEndModifier(this.#e,t.toOperationNode()))}$call(e){return e(this)}toOperationNode(){return this.#e}};const Ge=k({is(e){return e.kind===`ModifyColumnNode`},create(e){return k({kind:`ModifyColumnNode`,column:e})}}),z=k({is(e){return e.kind===`ForeignKeyConstraintNode`},create(e,t,n,r){return k({kind:`ForeignKeyConstraintNode`,columns:e,references:Be.create(t,n),name:r?d.create(r):void 0})},cloneWith(e,t){return k({...e,...t})}});var Ke=class e{#e;constructor(e){this.#e=e}onDelete(t){return new e(z.cloneWith(this.#e,{onDelete:L(t)}))}onUpdate(t){return new e(z.cloneWith(this.#e,{onUpdate:L(t)}))}deferrable(){return new e(z.cloneWith(this.#e,{deferrable:!0}))}notDeferrable(){return new e(z.cloneWith(this.#e,{deferrable:!1}))}initiallyDeferred(){return new e(z.cloneWith(this.#e,{initiallyDeferred:!0}))}initiallyImmediate(){return new e(z.cloneWith(this.#e,{initiallyDeferred:!1}))}$call(e){return e(this)}toOperationNode(){return this.#e}};const qe=k({is(e){return e.kind===`AddConstraintNode`},create(e){return k({kind:`AddConstraintNode`,constraint:e})}}),B=k({is(e){return e.kind===`UniqueConstraintNode`},create(e,t,r){return D(e.at(0))&&(o("`UniqueConstraintNode.create(columns: string[], ...)` is deprecated - pass `ColumnNode[]` instead."),e=e.map(n.create)),k({kind:`UniqueConstraintNode`,columns:k(e),name:t?d.create(t):void 0,nullsNotDistinct:r})},cloneWith(e,t){return k({...e,...t})}}),Je=k({is(e){return e.kind===`DropConstraintNode`},create(e){return k({kind:`DropConstraintNode`,constraintName:d.create(e)})},cloneWith(e,t){return k({...e,...t})}}),V=k({is(e){return e.kind===`AlterColumnNode`},create(e,t,r){return k({kind:`AlterColumnNode`,column:n.create(e),[t]:r})}});var Ye=class{#e;constructor(e){this.#e=e}setDataType(e){return new H(V.create(this.#e,`dataType`,O(e)))}setDefault(e){return new H(V.create(this.#e,`setDefault`,He(e)))}dropDefault(){return new H(V.create(this.#e,`dropDefault`,!0))}setNotNull(){return new H(V.create(this.#e,`setNotNull`,!0))}dropNotNull(){return new H(V.create(this.#e,`dropNotNull`,!0))}$call(e){return e(this)}},H=class{#e;constructor(e){this.#e=e}toOperationNode(){return this.#e}},U=class{#e;constructor(e){this.#e=k(e)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},Xe=class e{#e;constructor(e){this.#e=k(e)}onDelete(t){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.onDelete(t)})}onUpdate(t){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.onUpdate(t)})}deferrable(){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.deferrable()})}notDeferrable(){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.notDeferrable()})}initiallyDeferred(){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.initiallyDeferred()})}initiallyImmediate(){return new e({...this.#e,constraintBuilder:this.#e.constraintBuilder.initiallyImmediate()})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(N.cloneWithTableProps(this.#e.node,{addConstraint:qe.create(this.#e.constraintBuilder.toOperationNode())}),this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},Ze=class e{#e;constructor(e){this.#e=k(e)}ifExists(){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{dropConstraint:Je.cloneWith(this.#e.node.dropConstraint,{ifExists:!0})})})}cascade(){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{dropConstraint:Je.cloneWith(this.#e.node.dropConstraint,{modifier:`cascade`})})})}restrict(){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{dropConstraint:Je.cloneWith(this.#e.node.dropConstraint,{modifier:`restrict`})})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};const W=k({is(e){return e.kind===`PrimaryKeyConstraintNode`},create(e,t){return k({kind:`PrimaryKeyConstraintNode`,columns:k(e.map(n.create)),name:t?d.create(t):void 0})},cloneWith(e,t){return k({...e,...t})}}),G=k({is(e){return e.kind===`AddIndexNode`},create(e){return k({kind:`AddIndexNode`,name:d.create(e)})},cloneWith(e,t){return k({...e,...t})},cloneWithColumns(e,t){return k({...e,columns:[...e.columns||[],...t]})}});var Qe=class e{#e;constructor(e){this.#e=k(e)}unique(){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.cloneWith(this.#e.node.addIndex,{unique:!0})})})}column(t){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.cloneWithColumns(this.#e.node.addIndex,[D(t)?m(t):t.toOperationNode()])})})}columns(t){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.cloneWithColumns(this.#e.node.addIndex,t.map(e=>D(e)?m(e):e.toOperationNode()))})})}expression(t){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.cloneWithColumns(this.#e.node.addIndex,[t.toOperationNode()])})})}using(t){return new e({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.cloneWith(this.#e.node.addIndex,{using:l.createWithSql(t)})})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},$e=class e{#e;constructor(e){this.#e=e}nullsNotDistinct(){return new e(B.cloneWith(this.#e,{nullsNotDistinct:!0}))}deferrable(){return new e(B.cloneWith(this.#e,{deferrable:!0}))}notDeferrable(){return new e(B.cloneWith(this.#e,{deferrable:!1}))}initiallyDeferred(){return new e(B.cloneWith(this.#e,{initiallyDeferred:!0}))}initiallyImmediate(){return new e(B.cloneWith(this.#e,{initiallyDeferred:!1}))}$call(e){return e(this)}toOperationNode(){return this.#e}},et=class e{#e;constructor(e){this.#e=e}deferrable(){return new e(W.cloneWith(this.#e,{deferrable:!0}))}notDeferrable(){return new e(W.cloneWith(this.#e,{deferrable:!1}))}initiallyDeferred(){return new e(W.cloneWith(this.#e,{initiallyDeferred:!0}))}initiallyImmediate(){return new e(W.cloneWith(this.#e,{initiallyDeferred:!1}))}$call(e){return e(this)}toOperationNode(){return this.#e}},tt=class{#e;constructor(e){this.#e=e}$call(e){return e(this)}toOperationNode(){return this.#e}};const nt=k({is(e){return e.kind===`RenameConstraintNode`},create(e,t){return k({kind:`RenameConstraintNode`,oldName:d.create(e),newName:d.create(t)})}});var rt=class e{#e;constructor(e){this.#e=k({...e})}ifExists(){return new e({...this.#e,node:Ie.cloneWith(this.#e.node,{ifExists:!0})})}toOperationNode(){return this.#e.node}},it=class{#e;constructor(e){this.#e=k(e)}renameTo(e){return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{renameTo:j(e)})})}setSchema(e){return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{setSchema:d.create(e)})})}alterColumn(e,t){let n=t(new Ye(e));return new K({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,n.toOperationNode())})}dropColumn(e,t=T){let n=t(new rt({node:Ie.create(e)}));return new K({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,n.toOperationNode())})}renameColumn(e,t){return new K({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Le.create(e,t))})}addColumn(e,t,n=T){let r=n(new R(I.create(e,O(t))));return new K({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Fe.create(r.toOperationNode()))})}modifyColumn(e,t,n=T){let r=n(new R(I.create(e,O(t))));return new K({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Ge.create(r.toOperationNode()))})}addUniqueConstraint(e,t,r=T){let i=r(new $e(B.create(t.map(e=>D(e)?n.create(e):w(e)),e)));return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addConstraint:qe.create(i.toOperationNode())})})}addCheckConstraint(e,t,n=T){let r=n(new tt(Re.create(t.toOperationNode(),e)));return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addConstraint:qe.create(r.toOperationNode())})})}addForeignKeyConstraint(e,t,r,i,a=T){let o=a(new Ke(z.create(t.map(n.create),j(r),i.map(n.create),e)));return new Xe({...this.#e,constraintBuilder:o})}addPrimaryKeyConstraint(e,t,n=T){let r=n(new et(W.create(t,e)));return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addConstraint:qe.create(r.toOperationNode())})})}dropConstraint(e){return new Ze({...this.#e,node:N.cloneWithTableProps(this.#e.node,{dropConstraint:Je.create(e)})})}renameConstraint(e,t){return new Ze({...this.#e,node:N.cloneWithTableProps(this.#e.node,{renameConstraint:nt.create(e,t)})})}addIndex(e){return new Qe({...this.#e,node:N.cloneWithTableProps(this.#e.node,{addIndex:G.create(e)})})}dropIndex(e){return new U({...this.#e,node:N.cloneWithTableProps(this.#e.node,{dropIndex:F.create(e)})})}$call(e){return e(this)}},K=class e{#e;constructor(e){this.#e=k(e)}alterColumn(t,n){let r=n(new Ye(t));return new e({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,r.toOperationNode())})}dropColumn(t,n=T){let r=n(new rt({node:Ie.create(t)}));return new e({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,r.toOperationNode())})}renameColumn(t,n){return new e({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Le.create(t,n))})}addColumn(t,n,r=T){let i=r(new R(I.create(t,O(n))));return new e({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Fe.create(i.toOperationNode()))})}modifyColumn(t,n,r=T){let i=r(new R(I.create(t,O(n))));return new e({...this.#e,node:N.cloneWithColumnAlteration(this.#e.node,Ge.create(i.toOperationNode()))})}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},at=class extends _e{transformPrimitiveValueList(e){return de.create(e.values.map(t.createImmediate))}transformValue(e){return t.createImmediate(e.value)}},ot=class e{#e;constructor(e){this.#e=k(e)}ifNotExists(){return new e({...this.#e,node:P.cloneWith(this.#e.node,{ifNotExists:!0})})}unique(){return new e({...this.#e,node:P.cloneWith(this.#e.node,{unique:!0})})}nullsNotDistinct(){return new e({...this.#e,node:P.cloneWith(this.#e.node,{nullsNotDistinct:!0})})}on(t){return new e({...this.#e,node:P.cloneWith(this.#e.node,{table:j(t)})})}column(t){return new e({...this.#e,node:P.cloneWithColumns(this.#e.node,[D(t)?m(t):t.toOperationNode()])})}columns(t){return new e({...this.#e,node:P.cloneWithColumns(this.#e.node,t.map(e=>D(e)?m(e):e.toOperationNode()))})}expression(t){return new e({...this.#e,node:P.cloneWithColumns(this.#e.node,[t.toOperationNode()])})}using(t){return new e({...this.#e,node:P.cloneWith(this.#e.node,{using:l.createWithSql(t)})})}where(...t){let n=new at;return new e({...this.#e,node:h.cloneWithWhere(this.#e.node,n.transformNode(fe(t),this.#e.queryId))})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},st=class e{#e;constructor(e){this.#e=k(e)}ifNotExists(){return new e({...this.#e,node:Me.cloneWith(this.#e.node,{ifNotExists:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};function ct(e){if(s.includes(e))return e;throw Error(`invalid OnCommitAction ${e}`)}var lt=class e{#e;constructor(e){this.#e=e}using(t){return new e(G.cloneWith(this.#e,{using:l.createWithSql(t)}))}$call(e){return e(this)}toOperationNode(){return this.#e}},ut=class e{#e;constructor(e){this.#e=k(e)}temporary(){return new e({...this.#e,node:x.cloneWith(this.#e.node,{temporary:!0})})}onCommit(t){return new e({...this.#e,node:x.cloneWith(this.#e.node,{onCommit:ct(t)})})}ifNotExists(){return new e({...this.#e,node:x.cloneWith(this.#e.node,{ifNotExists:!0})})}addColumn(t,n,r=T){let i=r(new R(I.create(t,O(n))));return new e({...this.#e,node:x.cloneWithColumn(this.#e.node,i.toOperationNode())})}addPrimaryKeyConstraint(t,n,r=T){let i=r(new et(W.create(n,t)));return new e({...this.#e,node:x.cloneWithConstraint(this.#e.node,i.toOperationNode())})}addUniqueConstraint(t,r,i=T){let a=i(new $e(B.create(r.map(e=>D(e)?n.create(e):w(e)),t)));return new e({...this.#e,node:x.cloneWithConstraint(this.#e.node,a.toOperationNode())})}addIndex(t,r,i=T){let a=i(new lt(G.cloneWithColumns(G.create(t),r.map(e=>D(e)?n.create(e):w(e)))));return new e({...this.#e,node:x.cloneWithIndex(this.#e.node,a.toOperationNode())})}addCheckConstraint(t,n,r=T){let i=r(new tt(Re.create(n.toOperationNode(),t)));return new e({...this.#e,node:x.cloneWithConstraint(this.#e.node,i.toOperationNode())})}addForeignKeyConstraint(t,r,i,a,o=T){let s=o(new Ke(z.create(r.map(n.create),j(i),a.map(n.create),t)));return new e({...this.#e,node:x.cloneWithConstraint(this.#e.node,s.toOperationNode())})}modifyFront(t){return new e({...this.#e,node:x.cloneWithFrontModifier(this.#e.node,t.toOperationNode())})}modifyEnd(t){return new e({...this.#e,node:x.cloneWithEndModifier(this.#e.node,t.toOperationNode())})}as(t){return new e({...this.#e,node:x.cloneWith(this.#e.node,{selectQuery:w(t)})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},dt=class e{#e;constructor(e){this.#e=k(e)}on(t){return new e({...this.#e,node:F.cloneWith(this.#e.node,{table:j(t)})})}ifExists(){return new e({...this.#e,node:F.cloneWith(this.#e.node,{ifExists:!0})})}cascade(){return new e({...this.#e,node:F.cloneWith(this.#e.node,{cascade:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},ft=class e{#e;constructor(e){this.#e=k(e)}ifExists(){return new e({...this.#e,node:Ne.cloneWith(this.#e.node,{ifExists:!0})})}cascade(){return new e({...this.#e,node:Ne.cloneWith(this.#e.node,{cascade:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},pt=class e{#e;constructor(e){this.#e=k(e)}temporary(){return new e({...this.#e,node:Pe.cloneWith(this.#e.node,{temporary:!0})})}ifExists(){return new e({...this.#e,node:Pe.cloneWith(this.#e.node,{ifExists:!0})})}cascade(){return new e({...this.#e,node:Pe.cloneWith(this.#e.node,{cascade:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}},mt=class{#e=new at;transformQuery(e){return this.#e.transformNode(e.node,e.queryId)}transformResult(e){return Promise.resolve(e.result)}},ht=class e{#e;constructor(e){this.#e=k(e)}temporary(){return new e({...this.#e,node:E.cloneWith(this.#e.node,{temporary:!0})})}materialized(){return new e({...this.#e,node:E.cloneWith(this.#e.node,{materialized:!0})})}ifNotExists(){return new e({...this.#e,node:E.cloneWith(this.#e.node,{ifNotExists:!0})})}orReplace(){return new e({...this.#e,node:E.cloneWith(this.#e.node,{orReplace:!0})})}columns(t){return new e({...this.#e,node:E.cloneWith(this.#e.node,{columns:t.map(p)})})}as(t){let n=t.withPlugin(new mt).toOperationNode();return new e({...this.#e,node:E.cloneWith(this.#e.node,{as:n})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};const gt=k({is(e){return e.kind===`DropViewNode`},create(e){return k({kind:`DropViewNode`,name:b.create(e)})},cloneWith(e,t){return k({...e,...t})}});var _t=class e{#e;constructor(e){this.#e=k(e)}materialized(){return new e({...this.#e,node:gt.cloneWith(this.#e.node,{materialized:!0})})}ifExists(){return new e({...this.#e,node:gt.cloneWith(this.#e.node,{ifExists:!0})})}cascade(){return new e({...this.#e,node:gt.cloneWith(this.#e.node,{cascade:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};const vt=k({is(e){return e.kind===`CreateTypeNode`},create(e){return k({kind:`CreateTypeNode`,name:e})},cloneWithEnum(e,n){return k({...e,enum:de.create(n.map(t.createImmediate))})}});var yt=class e{#e;constructor(e){this.#e=k(e)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}asEnum(t){return new e({...this.#e,node:vt.cloneWithEnum(this.#e.node,t)})}$call(e){return e(this)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};const bt=k({is(e){return e.kind===`DropTypeNode`},create(e){return Array.isArray(e)||(e=[e]),k({kind:`DropTypeNode`,name:e[0],additionalNames:e.slice(1)})},cloneWith(e,t){return k({...e,...t})}});var xt=class e{#e;constructor(e){this.#e=k(e)}ifExists(){return new e({...this.#e,node:bt.cloneWith(this.#e.node,{ifExists:!0})})}cascade(){return new e({...this.#e,node:bt.cloneWith(this.#e.node,{cascade:!0})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};function St(e){if(e.includes(`.`)){let t=e.split(`.`).map(wt);if(t.length===2)return b.createWithSchema(t[0],t[1]);throw Error(`invalid schemable identifier ${e}`)}return b.create(e)}function Ct(e){return Array.isArray(e)||(e=[e]),e.map(St)}function wt(e){return e.trim()}const q=k({is(e){return e.kind===`RefreshMaterializedViewNode`},create(e){return k({kind:`RefreshMaterializedViewNode`,name:b.create(e)})},cloneWith(e,t){return k({...e,...t})}});var Tt=class e{#e;constructor(e){this.#e=k(e)}concurrently(){return new e({...this.#e,node:q.cloneWith(this.#e.node,{concurrently:!0,withNoData:!1})})}withData(){return new e({...this.#e,node:q.cloneWith(this.#e.node,{withNoData:!1})})}withNoData(){return new e({...this.#e,node:q.cloneWith(this.#e.node,{withNoData:!0,concurrently:!1})})}$call(e){return e(this)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){await this.#e.executor.executeQuery(this.compile(),e)}};const J=k({is(e){return e.kind===`AlterTypeNode`},create(e){return k({kind:`AlterTypeNode`,name:e})},cloneWith(e,t){return k({...e,...t})}}),Et=k({is(e){return e.kind===`AddValueNode`},create(e){return k({kind:`AddValueNode`,value:e})},cloneWith(e,t){return k({...e,...t})}});var Dt=class{#e;constructor(e){this.#e=k(e)}toOperationNode(){return this.#e.executor.transformQuery(this.#e.node,this.#e.queryId)}compile(){return this.#e.executor.compileQuery(this.toOperationNode(),this.#e.queryId)}async execute(e){return await this.#e.executor.executeQuery(this.compile(),e)}},Ot,kt=class extends Dt{#e;constructor(e){super(e),this.#e=e}ifNotExists(){return new Ot({...this.#e,node:J.cloneWith(this.#e.node,{addValue:Et.cloneWith(this.#e.node.addValue,{ifNotExists:!0})})})}before(e){return this.#t(e,!0)}after(e){return this.#t(e,!1)}#t(e,n){return new Ot({...this.#e,node:J.cloneWith(this.#e.node,{addValue:Et.cloneWith(this.#e.node.addValue,{isBefore:n,neighborValue:t.createImmediate(e)})})})}};Ot=kt;const At=k({is(e){return e.kind===`RenameValueNode`},create(e,t){return k({kind:`RenameValueNode`,oldValue:e,newValue:t})}});var jt=class{#e;constructor(e){this.#e=k(e)}addValue(e){return new kt({...this.#e,node:J.cloneWith(this.#e.node,{addValue:Et.create(t.createImmediate(e))})})}renameTo(e){return new Dt({...this.#e,node:J.cloneWith(this.#e.node,{renameTo:d.create(e)})})}renameValue(e,n){return new Dt({...this.#e,node:J.cloneWith(this.#e.node,{renameValue:At.create(t.createImmediate(e),t.createImmediate(n))})})}setSchema(e){return new Dt({...this.#e,node:J.cloneWith(this.#e.node,{setSchema:d.create(e)})})}},Mt=class e{#e;constructor(e){this.#e=e}createTable(e){return new ut({queryId:y(),executor:this.#e,node:x.create(j(e))})}dropTable(e){return new pt({queryId:y(),executor:this.#e,node:Pe.create(j(e))})}createIndex(e){return new ot({queryId:y(),executor:this.#e,node:P.create(e)})}dropIndex(e){return new dt({queryId:y(),executor:this.#e,node:F.create(e)})}createSchema(e){return new st({queryId:y(),executor:this.#e,node:Me.create(e)})}dropSchema(e){return new ft({queryId:y(),executor:this.#e,node:Ne.create(e)})}alterTable(e){return new it({queryId:y(),executor:this.#e,node:N.create(j(e))})}createView(e){return new ht({queryId:y(),executor:this.#e,node:E.create(e)})}refreshMaterializedView(e){return new Tt({queryId:y(),executor:this.#e,node:q.create(e)})}dropView(e){return new _t({queryId:y(),executor:this.#e,node:gt.create(e)})}createType(e){return new yt({queryId:y(),executor:this.#e,node:vt.create(St(e))})}alterType(e){return new jt({executor:this.#e,node:J.create(St(e)),queryId:y()})}dropType(e){return new xt({queryId:y(),executor:this.#e,node:bt.create(Ct(e))})}withPlugin(t){return new e(this.#e.withPlugin(t))}withoutPlugins(){return new e(this.#e.withoutPlugins())}withSchema(t){return new e(this.#e.withPluginAtFront(new r(t)))}},Nt=class{ref(e){return new f(e)}table(e){return new oe(e)}},Pt=class{#e;constructor(e){this.#e=e}async provideConnection(e,t){let n=await this.#e.acquireConnection(t);try{return await e(n)}finally{await this.#e.releaseConnection(n,t)}}},Ft=class e extends ge{#e;#t;#n;constructor(e,t,n,r=[]){super(r),this.#e=e,this.#t=t,this.#n=n}get adapter(){return this.#t}compileQuery(e,t){return this.#e.compileQuery(e,t)}provideConnection(e,t){return this.#n.provideConnection(e,t)}withPlugins(t){return new e(this.#e,this.#t,this.#n,[...this.plugins,...t])}withPlugin(t){return new e(this.#e,this.#t,this.#n,[...this.plugins,t])}withPluginAtFront(t){return new e(this.#e,this.#t,this.#n,[t,...this.plugins])}withConnectionProvider(t){return new e(this.#e,this.#t,t,[...this.plugins])}withoutPlugins(){return new e(this.#e,this.#t,this.#n,[])}};function It(){return typeof performance<`u`&&_(performance.now)?performance.now():Date.now()}var Lt=class{#e;#t;async obtainLock(){for(;this.#e;)await this.#e;this.#e=new Promise(e=>{this.#t=e})}releaseLock(){let e=this.#t;this.#e=void 0,this.#t=void 0,e?.()}},Rt=class{#e;#t;#n;#r;#i;#a=/* @__PURE__ */ new WeakSet;#o;constructor(e,t,n){this.#e=e,this.#r=!1,this.#t=n,t.supportsMultipleConnections===!1&&(this.#o=new Lt)}async init(e){if(this.#i)throw Error(`driver has already been destroyed`);this.#n??=this.#e.init(e).then(()=>{this.#r=!0}).catch(e=>{throw this.#n=void 0,e}),await S(this.#n,e?.signal,`init`)}async acquireConnection(e){if(this.#i)throw Error(`driver has already been destroyed`);if(this.#r||await this.init(e),this.#o){let t=this.#o.obtainLock();await S(t,e?.signal,`acquireConnection:mutex`,()=>t.then(()=>this.#o?.releaseLock()))}let t=this.#e.acquireConnection(e),n=await S(t,e?.signal,`acquireConnection:acquire`,()=>t?.then(e=>this.releaseConnection(e).catch(ye(`driver.releaseConnection`))).catch(ye(`driver.acquireConnection`)));return this.#a.has(n)||(this.#s()&&this.#c(n),this.#a.add(n)),n}async releaseConnection(e,t){await this.#e.releaseConnection(e,t),this.#o?.releaseLock()}async beginTransaction(e,t){return await this.#e.beginTransaction(e,t)}async commitTransaction(e){return await this.#e.commitTransaction(e)}async rollbackTransaction(e){return await this.#e.rollbackTransaction(e)}async savepoint(e,t,n){if(this.#e.savepoint)return await this.#e.savepoint(e,t,n);throw Error("The `savepoint` method is not supported by this driver")}async rollbackToSavepoint(e,t,n){if(this.#e.rollbackToSavepoint)return await this.#e.rollbackToSavepoint(e,t,n);throw Error("The `rollbackToSavepoint` method is not supported by this driver")}async releaseSavepoint(e,t,n){if(this.#e.releaseSavepoint)return await this.#e.releaseSavepoint(e,t,n);throw Error("The `releaseSavepoint` method is not supported by this driver")}async destroy(e){this.#n&&(await S(this.#n,e?.signal,`destroy:initPromise`),this.#i??=this.#e.destroy(e).catch(e=>{throw this.#i=void 0,e}),await S(this.#i,e?.signal,`destroy`))}#s(){return this.#t.isLevelEnabled(`query`)||this.#t.isLevelEnabled(`error`)}#c(e){let t=e.executeQuery,n=e.streamQuery,r=this;e.executeQuery=async(n,i)=>{let a,o=It();try{return await t.call(e,n,i)}catch(e){throw a=e,await r.#l(e,n,o),e}finally{a||await r.#u(n,o)}},e.streamQuery=async function*(t,i,a){let o,s=It();try{for await(let r of n.call(e,t,i,a))yield r}catch(e){throw o=e,await r.#l(e,t,s),e}finally{o||await r.#u(t,s,!0)}}}async#l(e,t,n){await this.#t.error(()=>({level:`error`,error:e,query:t,queryDurationMillis:this.#d(n)}))}async#u(e,t,n=!1){await this.#t.query(()=>({level:`query`,isStream:n,query:e,queryDurationMillis:this.#d(t)}))}#d(e){return It()-e}};const zt=()=>{};var Bt=class{#e;#t;constructor(e){this.#e=e}async provideConnection(e){for(;this.#t;)await this.#t.catch(zt);return this.#t=this.#n(e).finally(()=>{this.#t=void 0}),this.#t}async#n(e){return await e(this.#e)}};const Vt=[`read only`,`read write`],Ht=[`read uncommitted`,`read committed`,`repeatable read`,`serializable`,`snapshot`];function Ut(e){if(e.accessMode&&!Vt.includes(e.accessMode))throw Error(`invalid transaction access mode ${e.accessMode}`);if(e.isolationLevel&&!Ht.includes(e.isolationLevel))throw Error(`invalid transaction isolation level ${e.isolationLevel}`)}k([`query`,`error`]);var Wt=class{#e;#t;constructor(e){_(e)?(this.#t=e,this.#e=k({query:!0,error:!0})):(this.#t=Gt,this.#e=k({query:e.includes(`query`),error:e.includes(`error`)}))}isLevelEnabled(e){return this.#e[e]}async query(e){this.#e.query&&await this.#t(e())}async error(e){this.#e.error&&await this.#t(e())}};function Gt(e){if(e.level===`query`){let t=`kysely:query:${e.isStream?`stream:`:``}`;console.log(`${t} ${e.query.sql}`),console.log(`${t} duration: ${e.queryDurationMillis.toFixed(1)}ms`)}else e.level===`error`&&(e.error instanceof Error?console.error(`kysely:error: ${e.error.stack??e.error.message}`):console.error(`kysely:error: ${JSON.stringify({error:e.error,query:e.query.sql,queryDurationMillis:e.queryDurationMillis})}`))}function Kt(e){return A(e)&&_(e.compile)}Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);var Y=class e extends ae{#e;constructor(e){let t,n;if(Jt(e))t={executor:e.executor},n={...e};else{let r=e.dialect,i=r.createDriver(),a=r.createQueryCompiler(),o=r.createAdapter(),s=new Rt(i,o,new Wt(e.log??[])),c=new Ft(a,o,new Pt(s),e.plugins??[]);t={executor:c},n={config:e,executor:c,dialect:r,driver:s}}super(t),this.#e=k(n)}get schema(){return new Mt(this.#e.executor)}get dynamic(){return new Nt}get introspection(){return this.#e.dialect.createIntrospector(this.withoutPlugins())}case(e){return new pe({node:le.create(me(e)?void 0:w(e))})}get fn(){return ce()}transaction(){return new Xt({...this.#e})}startTransaction(){return new Zt({...this.#e})}connection(){return new Yt({...this.#e})}withPlugin(t){return new e({...this.#e,executor:this.#e.executor.withPlugin(t)})}withoutPlugins(){return new e({...this.#e,executor:this.#e.executor.withoutPlugins()})}withSchema(t){return new e({...this.#e,executor:this.#e.executor.withPluginAtFront(new r(t))})}$extendTables(){return new e({...this.#e})}$omitTables(){return new e({...this.#e})}$pickTables(){return new e({...this.#e})}withTables(){return this.$extendTables()}async destroy(){await this.#e.driver.destroy()}get isTransaction(){return!1}getExecutor(){return this.#e.executor}async executeQuery(e,t){let n=Kt(e)?e.compile():e;return await this.#e.executor.executeQuery(n,t)}async[Symbol.asyncDispose](){await this.destroy()}},qt=class e extends Y{#e;constructor(e){super(e),this.#e=e}get isTransaction(){return!0}transaction(){throw Error(`calling the transaction method for a Transaction is not supported`)}startTransaction(){throw Error(`calling the controlled transaction method for a Transaction is not supported`)}connection(){throw Error(`calling the connection method for a Transaction is not supported`)}destroy(){throw Error(`calling the destroy method for a Transaction is not supported`)}withPlugin(t){return new e({...this.#e,executor:this.#e.executor.withPlugin(t)})}withoutPlugins(){return new e({...this.#e,executor:this.#e.executor.withoutPlugins()})}withSchema(t){return new e({...this.#e,executor:this.#e.executor.withPluginAtFront(new r(t))})}withTables(){return new e({...this.#e})}$extendTables(){return new e({...this.#e})}$omitTables(){return new e({...this.#e})}$pickTables(){return new e({...this.#e})}};function Jt(e){return A(e)&&A(e.config)&&A(e.driver)&&A(e.executor)&&A(e.dialect)}var Yt=class{#e;constructor(e){this.#e=k(e)}async execute(e,t){return this.#e.executor.provideConnection(async t=>{let n=this.#e.executor.withConnectionProvider(new Bt(t));return await e(new Y({...this.#e,executor:n}))},k({signal:t?.signal}))}},Xt=class e{#e;constructor(e){this.#e=k(e)}setAccessMode(t){return new e({...this.#e,accessMode:t})}setIsolationLevel(t){return new e({...this.#e,isolationLevel:t})}async execute(e){let{isolationLevel:t,accessMode:n,...r}=this.#e,i={isolationLevel:t,accessMode:n};return Ut(i),this.#e.executor.provideConnection(async t=>{let n={isCommitted:!1,isRolledBack:!1},a=new $t(this.#e.executor.withConnectionProvider(new Bt(t)),n),o=new qt({...r,executor:a}),s=!1;try{await this.#e.driver.beginTransaction(t,i),s=!0;let r=await e(o);return await this.#e.driver.commitTransaction(t),n.isCommitted=!0,r}catch(e){throw s&&(await this.#e.driver.rollbackTransaction(t),n.isRolledBack=!0),e}})}},Zt=class e{#e;constructor(e){this.#e=k(e)}setAccessMode(t){return new e({...this.#e,accessMode:t})}setIsolationLevel(t){return new e({...this.#e,isolationLevel:t})}async execute(){let{isolationLevel:e,accessMode:t,...n}=this.#e,r={isolationLevel:e,accessMode:t};Ut(r);let i=await ve(this.#e.executor);return await this.#e.driver.beginTransaction(i.connection,r),new Qt({...n,connection:i,executor:this.#e.executor.withConnectionProvider(new Bt(i.connection))})}},Qt=class e extends qt{#e;#t;#n;constructor(e){let t={isCommitted:!1,isRolledBack:!1};e={...e,executor:new $t(e.executor,t)};let{connection:n,...r}=e;super(r),this.#e=k(e),this.#n=t;let i=y();this.#t=t=>e.executor.compileQuery(t,i)}get isCommitted(){return this.#n.isCommitted}get isRolledBack(){return this.#n.isRolledBack}commit(){return Z(this.#n),new X(async()=>{await this.#e.driver.commitTransaction(this.#e.connection.connection),this.#n.isCommitted=!0,this.#e.connection.release()})}rollback(){return Z(this.#n),new X(async()=>{await this.#e.driver.rollbackTransaction(this.#e.connection.connection),this.#n.isRolledBack=!0,this.#e.connection.release()})}savepoint(t){return Z(this.#n),new X(async()=>(await this.#e.driver.savepoint?.(this.#e.connection.connection,t,this.#t),new e({...this.#e})))}rollbackToSavepoint(t){return Z(this.#n),new X(async()=>(await this.#e.driver.rollbackToSavepoint?.(this.#e.connection.connection,t,this.#t),new e({...this.#e})))}releaseSavepoint(t){return Z(this.#n),new X(async()=>(await this.#e.driver.releaseSavepoint?.(this.#e.connection.connection,t,this.#t),new e({...this.#e})))}withPlugin(t){return new e({...this.#e,executor:this.#e.executor.withPlugin(t)})}withoutPlugins(){return new e({...this.#e,executor:this.#e.executor.withoutPlugins()})}withSchema(t){return new e({...this.#e,executor:this.#e.executor.withPluginAtFront(new r(t))})}withTables(){return new e({...this.#e})}$extendTables(){return new e({...this.#e})}$omitTables(){return new e({...this.#e})}$pickTables(){return new e({...this.#e})}},X=class{#e;constructor(e){this.#e=e}async execute(){return await this.#e()}};function Z(e){if(e.isCommitted)throw Error(`Transaction is already committed`);if(e.isRolledBack)throw Error(`Transaction is already rolled back`)}var $t=class e{#e;#t;constructor(t,n){this.#e=t instanceof e?t.#e:t,this.#t=n}get adapter(){return this.#e.adapter}get plugins(){return this.#e.plugins}transformQuery(e,t){return this.#e.transformQuery(e,t)}compileQuery(e,t){return this.#e.compileQuery(e,t)}provideConnection(e,t){return this.#e.provideConnection(e,t)}executeQuery(e,t){return Z(this.#t),this.#e.executeQuery(e,t)}stream(e,t,n){return Z(this.#t),this.#e.stream(e,t,n)}withConnectionProvider(t){return new e(this.#e.withConnectionProvider(t),this.#t)}withPlugin(t){return new e(this.#e.withPlugin(t),this.#t)}withPlugins(t){return new e(this.#e.withPlugins(t),this.#t)}withPluginAtFront(t){return new e(this.#e.withPluginAtFront(t),this.#t)}withoutPlugins(){return new e(this.#e.withoutPlugins(),this.#t)}};function Q(e,t){return l.createWithChildren([l.createWithSql(`${e} `),d.create(t)])}var en=class{#e;#t;#n;constructor(e){this.#e=k({...e})}async init(e){this.#t=_(this.#e.database)?await this.#e.database(e):this.#e.database,this.#n=new tn(this.#t),this.#e.onCreateConnection&&await this.#e.onCreateConnection(this.#n,e)}async acquireConnection(){return this.#n}async beginTransaction(e){await e.executeQuery(M.raw(`begin`))}async commitTransaction(e){await e.executeQuery(M.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(M.raw(`rollback`))}async savepoint(e,t,n){await e.executeQuery(n(Q(`savepoint`,t),y()))}async rollbackToSavepoint(e,t,n){await e.executeQuery(n(Q(`rollback to`,t),y()))}async releaseSavepoint(e,t,n){await e.executeQuery(n(Q(`release`,t),y()))}async releaseConnection(){}async destroy(){this.#t?.close()}},tn=class{#e;constructor(e){this.#e=e}async executeQuery(e){let{sql:t,parameters:n}=e,r=this.#e.prepare(t);if(r.reader)return{rows:r.all(n)};let{changes:i,lastInsertRowid:a}=r.run(n);return{insertId:a==null?void 0:BigInt(a),numAffectedRows:i==null?void 0:BigInt(i),rows:[]}}async*streamQuery(e,t){let{sql:n,parameters:r,query:a}=e,o=this.#e.prepare(n);if(!i.is(a))throw Error(`Sqlite driver only supports streaming of select queries`);let s=o.iterate(r);for(let e of s)yield{rows:[e]}}};const $=`kysely_migration`,nn=`kysely_migration_lock`;k({__noMigrations__:!0});var rn=class{#e;constructor(e){this.#e=e}async getSchemas(){return[]}async getTables(e={withInternalKyselyTables:!1}){return await this.#n(e)}#t(e,t){let n=e.selectFrom(`sqlite_master`).where(`type`,`in`,[`table`,`view`]).where(`name`,`not like`,`sqlite_%`).select([`name`,`sql`,`type`]).orderBy(`name`);return t.withInternalKyselyTables||(n=n.where(`name`,`!=`,$).where(`name`,`!=`,nn)),n}async#n(e){let t=await this.#t(this.#e,e).execute(),n=await this.#e.with(`table_list`,t=>this.#t(t,e)).selectFrom([`table_list as tl`,C`pragma_table_info(tl.name)`.as(`p`)]).select([`tl.name as table`,`p.cid`,`p.name`,`p.type`,`p.notnull`,`p.dflt_value`,`p.pk`]).orderBy(`tl.name`).orderBy(`p.cid`).execute(),r={};for(let e of n)r[e.table]??=[],r[e.table].push(e);return t.map(({name:e,sql:t,type:n})=>{let i=t?.split(/[\(\),]/)?.find(e=>e.toLowerCase().includes(`autoincrement`))?.trimStart()?.split(/\s+/)?.[0]?.replace(/["`]/g,``),a=r[e]??[];if(!i){let e=a.filter(e=>e.pk>0);e.length===1&&e[0].type.toLowerCase()===`integer`&&(i=e[0].name)}return{name:e,isView:n===`view`,isForeign:!1,columns:a.map(e=>({name:e.name,dataType:e.type,isNullable:!e.notnull,isAutoIncrementing:e.name===i,hasDefaultValue:e.dflt_value!=null,comment:void 0}))}})}},an=class{#e;constructor(e){this.#e=k({...e})}createDriver(){return new en(this.#e)}createQueryCompiler(){return new xe}createAdapter(){return new Ce}createIntrospector(e){return new rn(e)}};function on(e,t){if(sn(e)&&t.stack){let n=t.stack.split(`
2
+ `).slice(1).join(`
3
+ `);return e.stack+=`\n${n}`,e}return e}function sn(e){return A(e)&&D(e.stack)}const cn=Symbol();var ln=class{#e;#t=/* @__PURE__ */ new WeakMap;#n;constructor(e){this.#e=k({...e})}async init(e){this.#n=_(this.#e.pool)?await this.#e.pool(e):this.#e.pool}async acquireConnection(e){let t=await this.#r(),n=this.#t.get(t);return n||(n=new dn(t,this.#e.controlConnection),this.#t.set(t,n),this.#e?.onCreateConnection&&await this.#e.onCreateConnection(n,e)),this.#e?.onReserveConnection&&await this.#e.onReserveConnection(n,e),n}async beginTransaction(e,t){if(t.isolationLevel||t.accessMode){let n=[];t.isolationLevel&&n.push(`isolation level ${t.isolationLevel}`),t.accessMode&&n.push(t.accessMode);let r=`set transaction ${n.join(`, `)}`;await e.executeQuery(M.raw(r))}await e.executeQuery(M.raw(`begin`))}async commitTransaction(e){await e.executeQuery(M.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(M.raw(`rollback`))}async savepoint(e,t,n){await e.executeQuery(n(Q(`savepoint`,t),y()))}async rollbackToSavepoint(e,t,n){await e.executeQuery(n(Q(`rollback to`,t),y()))}async releaseSavepoint(e,t,n){await e.executeQuery(n(Q(`release savepoint`,t),y()))}async releaseConnection(e){e[cn]()}async destroy(){return new Promise((e,t)=>{this.#n.end(n=>{n?t(n):e()})})}async#r(){return new Promise((e,t)=>{this.#n.getConnection(async(n,r)=>{n?t(n):e(r)})})}};function un(e){return A(e)&&`insertId`in e&&`affectedRows`in e}var dn=class{#e;#t;#n;#r;constructor(e,t){this.#e=e,this.#t=t}async cancelQuery(e){await this.#a(`kill query ${this.#n}`,e)}async collectSessionInfo(){if(this.#n)return;let{threadId:e}=this.#e;if(e!=null)this.#n=e;else{let[{cid:e}]=await this.#i(M.raw(`select connection_id() as cid`));this.#n=Number(e)}}async executeQuery(e){try{this.#r=e.queryId;let t=await this.#i(e);if(!un(t))return{rows:Array.isArray(t)?t:[]};let{insertId:n,affectedRows:r,changedRows:i}=t;return{insertId:n!=null&&n.toString()!==`0`?BigInt(n):void 0,numAffectedRows:r==null?void 0:BigInt(r),numChangedRows:i==null?void 0:BigInt(i),rows:[]}}catch(e){throw on(e,/* @__PURE__ */ Error())}finally{this.#r=void 0}}async killSession(e){try{this.#e.destroy()}catch{}await this.#a(`kill connection ${this.#n}`,e)}async*streamQuery(e,t){this.#r=e.queryId;let n=this.#e.query(e.sql,e.parameters).stream({objectMode:!0});try{for await(let e of n)yield{rows:[e]}}catch(e){if(A(e)&&`code`in e&&e.code===`ERR_STREAM_PREMATURE_CLOSE`)return;throw e}finally{this.#r=void 0}}[cn](){this.#e.release()}#i(e){return new Promise((t,n)=>{this.#e.query(e.sql,e.parameters,(e,r)=>{e?n(e):t(r)})})}async#a(e,t){if(!this.#r)return;let{config:n}=this.#e,r=this.#r;if(!this.#t||!n)return await t(async t=>{r.queryId===this.#r?.queryId&&await t.executeQuery(M.raw(e,[]))});let{clientFlags:i,maxPacketSize:a,...o}=n,s=this.#t(o);try{await new Promise((t,n)=>{s.connect(i=>{if(i)return n(i);if(r.queryId!==this.#r?.queryId)return t();s.query(e,[],e=>{if(e)return n(e);t()})})})}finally{s.destroy()}}};const fn=/[\\']/g,pn=/`/g,mn=/[\\'"]/g;var hn=class extends he{getCurrentParameterPlaceholder(){return`?`}getLeftExplainOptionsWrapper(){return``}getExplainOptionAssignment(){return`=`}getExplainOptionsDelimiter(){return` `}getRightExplainOptionsWrapper(){return``}getLeftIdentifierWrapper(){return pn.source}getRightIdentifierWrapper(){return pn.source}sanitizeIdentifier(e){return e.replace(pn,"``")}sanitizeStringLiteral(e){return e.replace(fn,e=>e===`\\`?`\\\\`:`''`)}sanitizeJSONPathMemberValue(e){return e.replace(mn,e=>e===`\\`?`\\\\\\\\`:e===`'`?`''`:`\\\\"`)}visitCreateIndex(e){this.append(`create `),e.unique&&this.append(`unique `),this.append(`index `),e.ifNotExists&&this.append(`if not exists `),this.visitNode(e.name),e.using&&(this.append(` using `),this.visitNode(e.using)),e.table&&(this.append(` on `),this.visitNode(e.table)),e.columns&&(this.append(` (`),this.compileList(e.columns),this.append(`)`)),e.where&&(this.append(` `),this.visitNode(e.where))}},gn=class{#e;constructor(e){this.#e=e}async getSchemas(){return(await this.#e.selectFrom(`information_schema.schemata`).select(`schema_name`).$castTo().execute()).map(e=>({name:e.SCHEMA_NAME}))}async getTables(e={withInternalKyselyTables:!1}){let t=this.#e.selectFrom(`information_schema.columns as columns`).innerJoin(`information_schema.tables as tables`,e=>e.onRef(`columns.TABLE_CATALOG`,`=`,`tables.TABLE_CATALOG`).onRef(`columns.TABLE_SCHEMA`,`=`,`tables.TABLE_SCHEMA`).onRef(`columns.TABLE_NAME`,`=`,`tables.TABLE_NAME`)).select([`columns.COLUMN_NAME`,`columns.COLUMN_DEFAULT`,`columns.TABLE_NAME`,`columns.TABLE_SCHEMA`,`tables.TABLE_TYPE`,`tables.ENGINE`,`columns.IS_NULLABLE`,`columns.DATA_TYPE`,`columns.EXTRA`,`columns.COLUMN_COMMENT`]).where(`columns.TABLE_SCHEMA`,`=`,C`database()`).orderBy(`columns.TABLE_NAME`).orderBy(`columns.ORDINAL_POSITION`).$castTo();e.withInternalKyselyTables||(t=t.where(`columns.TABLE_NAME`,`!=`,$).where(`columns.TABLE_NAME`,`!=`,nn));let n=await t.execute();return this.#t(n)}#t(e){return e.reduce((e,t)=>{let n=e.find(e=>e.name===t.TABLE_NAME);return n||(n=k({name:t.TABLE_NAME,isView:t.TABLE_TYPE===`VIEW`,isForeign:t.ENGINE===`FEDERATED`,schema:t.TABLE_SCHEMA,columns:[]}),e.push(n)),n.columns.push(k({name:t.COLUMN_NAME,dataType:t.DATA_TYPE,isNullable:t.IS_NULLABLE===`YES`,isAutoIncrementing:t.EXTRA.toLowerCase().includes(`auto_increment`),hasDefaultValue:t.COLUMN_DEFAULT!==null,comment:t.COLUMN_COMMENT===``?void 0:t.COLUMN_COMMENT})),e},[])}};const _n=`ea586330-2c93-47c8-908d-981d9d270f9d`;var vn=class extends Se{get supportsTransactionalDdl(){return!1}get supportsReturning(){return!1}async acquireMigrationLock(e,t){await C`select get_lock(${C.lit(_n)}, ${C.lit(3600)})`.execute(e)}async releaseMigrationLock(e,t){await C`select release_lock(${C.lit(_n)})`.execute(e)}},yn=class{#e;constructor(e){this.#e=e}createDriver(){return new ln(this.#e)}createQueryCompiler(){return new hn}createAdapter(){return new vn}createIntrospector(e){return new gn(e)}};const bn=Symbol();var xn=class{#e;#t=/* @__PURE__ */ new WeakMap;#n;constructor(e){this.#e=k({...e})}async init(e){this.#n=_(this.#e.pool)?await this.#e.pool(e):this.#e.pool}async acquireConnection(e){let t=await this.#n.connect(),n=this.#t.get(t);return n||(n=new Sn(t,{controlClient:this.#e.controlClient||this.#n.Client,cursor:this.#e.cursor??null,poolOptions:this.#n.options}),this.#t.set(t,n),this.#e.onCreateConnection&&await this.#e.onCreateConnection(n,e)),this.#e.onReserveConnection&&await this.#e.onReserveConnection(n,e),n}async beginTransaction(e,t){let n=`begin`;(t.isolationLevel||t.accessMode)&&(n=`start transaction`,t.isolationLevel&&(n+=` isolation level ${t.isolationLevel}`),t.accessMode&&(n+=` ${t.accessMode}`)),await e.executeQuery(M.raw(n))}async commitTransaction(e){await e.executeQuery(M.raw(`commit`))}async rollbackTransaction(e){await e.executeQuery(M.raw(`rollback`))}async savepoint(e,t,n){await e.executeQuery(n(Q(`savepoint`,t),y()))}async rollbackToSavepoint(e,t,n){await e.executeQuery(n(Q(`rollback to`,t),y()))}async releaseSavepoint(e,t,n){await e.executeQuery(n(Q(`release`,t),y()))}async releaseConnection(e){e[bn]()}async destroy(){if(this.#n){let e=this.#n;this.#n=void 0,await e.end()}}},Sn=class{#e;#t;#n;#r;constructor(e,t){this.#e=e,this.#t=t}async cancelQuery(e){return await this.#i(`select pg_cancel_backend(${this.#r})`,e)}async collectSessionInfo(){if(this.#r)return;let{processID:e}=this.#e;if(e)this.#r=e;else{let{rows:[{pid:e}]}=await this.#e.query(`select pg_backend_pid() as pid`,[]);this.#r=Number(e)}}async executeQuery(e){try{this.#n=e.queryId;let{command:t,rowCount:n,rows:r}=await this.#e.query(e.sql,e.parameters);return{numAffectedRows:t===`INSERT`||t===`UPDATE`||t===`DELETE`||t===`MERGE`?BigInt(n):void 0,rows:r??[]}}catch(e){throw on(e,/* @__PURE__ */ Error())}finally{this.#n=void 0}}async killSession(e){return await this.#i(`select pg_terminate_backend(${this.#r})`,e)}async*streamQuery(e,t){if(!this.#t.cursor)throw Error("`cursor` is not present in your postgres dialect config. It's required to make streaming work in postgres.");this.#n=e.queryId;let n=this.#e.query(new this.#t.cursor(e.sql,e.parameters.slice()));try{for(;;){let e=await n.read(t);if(e.length===0)break;yield{rows:e}}}finally{await n.close(),this.#n=void 0}}[bn](){this.#e.release()}async#i(e,t){if(!this.#n)return;let{controlClient:n,poolOptions:r}=this.#t,i=this.#n;if(!n)return await t(async t=>{i.queryId===this.#n?.queryId&&await t.executeQuery(M.raw(e,[]))});let a=new n({...r,password:`password`in r?r.password:void 0});try{if(await a.connect(),i.queryId!==this.#n.queryId)return;await a.query(e,[])}finally{a.end()}}},Cn=class{#e;constructor(e){this.#e=e}async getSchemas(){return(await this.#e.selectFrom(`pg_catalog.pg_namespace`).select(`nspname`).$castTo().execute()).map(e=>({name:e.nspname}))}async getTables(e={withInternalKyselyTables:!1}){let t=this.#e.selectFrom(`pg_catalog.pg_attribute as a`).innerJoin(`pg_catalog.pg_class as c`,`a.attrelid`,`c.oid`).innerJoin(`pg_catalog.pg_namespace as ns`,`c.relnamespace`,`ns.oid`).innerJoin(`pg_catalog.pg_type as typ`,`a.atttypid`,`typ.oid`).innerJoin(`pg_catalog.pg_namespace as dtns`,`typ.typnamespace`,`dtns.oid`).select([`a.attname as column`,`a.attnotnull as not_null`,`a.atthasdef as has_default`,`c.relname as table`,`c.relkind as table_type`,`ns.nspname as schema`,`typ.typname as type`,`dtns.nspname as type_schema`,C`col_description(a.attrelid, a.attnum)`.as(`column_description`),C`pg_get_serial_sequence(quote_ident(ns.nspname) || '.' || quote_ident(c.relname), a.attname)`.as(`auto_incrementing`)]).where(`c.relkind`,`in`,[`r`,`v`,`p`,`f`]).where(`ns.nspname`,`!~`,`^pg_`).where(`ns.nspname`,`!=`,`information_schema`).where(`ns.nspname`,`!=`,`crdb_internal`).where(C`has_schema_privilege(ns.nspname, 'USAGE')`).where(`a.attnum`,`>=`,0).where(`a.attisdropped`,`!=`,!0).orderBy(`ns.nspname`).orderBy(`c.relname`).orderBy(`a.attnum`).$castTo();e.withInternalKyselyTables||(t=t.where(`c.relname`,`!=`,$).where(`c.relname`,`!=`,nn));let n=await t.execute();return this.#t(n)}#t(e){let t=[],n=/* @__PURE__ */ new Map;for(let r of e){let e=n.get(r.schema);e||(e=/* @__PURE__ */ new Map,n.set(r.schema,e));let i=e.get(r.table);i||(i=k({columns:[],isForeign:r.table_type===`f`,isView:r.table_type===`v`,name:r.table,schema:r.schema}),e.set(r.table,i),t.push(i)),i.columns.push(k({comment:r.column_description??void 0,dataType:r.type,dataTypeSchema:r.type_schema,hasDefaultValue:r.has_default,isAutoIncrementing:r.auto_incrementing!==null,isNullable:!r.not_null,name:r.column}))}return t}};const wn=/"/g;var Tn=class extends he{sanitizeIdentifier(e){return e.replace(wn,`""`)}};const En=BigInt(`3853314791062309107`);var Dn=class extends Se{get supportsTransactionalDdl(){return!0}get supportsReturning(){return!0}async acquireMigrationLock(e,t){await C`
4
+ with set_timeout as (
5
+ select set_config('lock_timeout', '${C.lit(36e5)}', true) as config_val
6
+ )
7
+ select pg_advisory_lock(${C.lit(En)})
8
+ from set_timeout`.execute(e)}async releaseMigrationLock(e,t){await C`select pg_advisory_unlock(${C.lit(En)})`.execute(e)}},On=class{#e;constructor(e){this.#e=e}createDriver(){return new xn(this.#e)}createQueryCompiler(){return new Tn}createAdapter(){return new Dn}createIntrospector(e){return new Cn(e)}},kn=class extends Se{get supportsCreateIfNotExists(){return!1}get supportsTransactionalDdl(){return!0}get supportsOutput(){return!0}async acquireMigrationLock(e,t){await C`exec sp_getapplock @DbPrincipal = ${C.lit(`dbo`)}, @Resource = ${C.lit($)}, @LockMode = ${C.lit(`Exclusive`)}, @LockOwner = ${C.lit(`Session`)}`.execute(e)}async releaseMigrationLock(e,t){await C`exec sp_releaseapplock @DbPrincipal = ${C.lit(`dbo`)}, @Resource = ${C.lit($)}, @LockOwner = ${C.lit(`Session`)}`.execute(e)}};const An=Symbol(),jn=Symbol(),Mn=Symbol();var Nn=class{#e;#t;constructor(e){this.#e=k({...e});let{tarn:t,tedious:n,validateConnections:r}=this.#e;this.#t=new t.Pool({...t.options,create:async()=>await new Pn(await n.connectionFactory(),n).connect(),destroy:async e=>{await e[jn]()},validate:r===!1?void 0:e=>e[Mn]()})}async init(){}async acquireConnection(){return await this.#t.acquire().promise}async beginTransaction(e,t){await e.beginTransaction(t)}async commitTransaction(e){await e.commitTransaction()}async rollbackTransaction(e){await e.rollbackTransaction()}async savepoint(e,t){await e.savepoint(t)}async rollbackToSavepoint(e,t){await e.rollbackTransaction(t)}async releaseConnection(e){this.#e.resetConnectionsOnRelease&&await e[An](),this.#t.release(e)}async destroy(){await this.#t.destroy()}},Pn=class{#e;#t;#n;#r;constructor(e,t){this.#e=e,this.#t=!1,this.#n=t}async beginTransaction(e){let{isolationLevel:t}=e;await new Promise((e,n)=>this.#e.beginTransaction(t=>{t?n(t):e(void 0)},t?a(8):void 0,t?this.#i(t):void 0))}async cancelQuery(){if(this.#r)return new Promise(e=>{this.#r?.request.once(`requestCompleted`,e),this.#e.cancel()||(this.#r?.request.off(`requestCompleted`,e),e())})}async commitTransaction(){await new Promise((e,t)=>this.#e.commitTransaction(n=>{n?t(n):e(void 0)}))}async connect(){let{promise:e,reject:t,resolve:n}=new v;this.#e.connect(e=>{if(e)return t(e);n()}),this.#e.on(`error`,e=>{e instanceof Error&&`code`in e&&e.code===`ESOCKET`&&(this.#t=!0),console.error(e),t(e)});function r(){t(/* @__PURE__ */ Error(`The connection ended without ever completing the connection`))}return this.#e.once(`end`,r),await e,this.#e.off(`end`,r),this}async executeQuery(e){try{let t=new v;this.#r=new Fn({compiledQuery:e,tedious:this.#n,onDone:t}),this.#e.execSql(this.#r.request);let{rowCount:n,rows:r}=await t.promise;return{numAffectedRows:n===void 0?void 0:BigInt(n),rows:r}}catch(e){throw on(e,/* @__PURE__ */ Error())}finally{this.#r=void 0}}async rollbackTransaction(e){await new Promise((t,n)=>this.#e.rollbackTransaction(e=>{e?n(e):t(void 0)},e))}async savepoint(e){await new Promise((t,n)=>this.#e.saveTransaction(e=>{e?n(e):t(void 0)},e))}async*streamQuery(e,t){this.#r=new Fn({compiledQuery:e,streamChunkSize:t,tedious:this.#n}),this.#e.execSql(this.#r.request);try{for(;;){let e=await this.#r.readChunk();if(e.length===0||(yield{rows:e},e.length<t))break}}finally{await this.cancelQuery(),this.#r=void 0}}#i(e){let{ISOLATION_LEVEL:t}=this.#n,n={"read committed":t.READ_COMMITTED,"read uncommitted":t.READ_UNCOMMITTED,"repeatable read":t.REPEATABLE_READ,serializable:t.SERIALIZABLE,snapshot:t.SNAPSHOT}[e];if(n===void 0)throw Error(`Unknown isolation level: ${e}`);return n}[jn](){return`closed`in this.#e&&this.#e.closed?Promise.resolve():new Promise(e=>{this.#e.once(`end`,e),this.#e.close()})}async[An](){await new Promise((e,t)=>{this.#e.reset(n=>{if(n)return t(n);e()})})}async[Mn](){if(this.#t||this.#a())return!1;try{let e=new v,t=new Fn({compiledQuery:M.raw(`select 1`),onDone:e,tedious:this.#n});return this.#e.execSql(t.request),await e.promise,!0}catch{return!1}}#a(){return`closed`in this.#e&&!!this.#e.closed}},Fn=class{#e;#t;#n;#r;#i;#a;constructor(e){let{compiledQuery:t,onDone:n,streamChunkSize:r,tedious:i}=e;if(this.#t=[],this.#n=r,this.#r={},this.#i=i,n){let e=`onDone`;this.#r[e]=(t,r)=>{if(t!==`chunkReady`){if(delete this.#r[e],t===`error`)return n.reject(r);n.resolve({rowCount:this.#a,rows:this.#t})}}}this.#e=new this.#i.Request(t.sql,(e,t)=>{if(e)return Object.values(this.#r).forEach(t=>t(`error`,e instanceof AggregateError?e.errors:e));this.#a=t}),this.#o(t.parameters),this.#s()}get request(){return this.#e}readChunk(){let e=this.readChunk.name;return new Promise((t,n)=>{this.#r[e]=(r,i)=>{if(delete this.#r[e],r===`error`)return n(i);t(this.#t.splice(0,this.#n))},this.#e.resume()})}#o(e){for(let t=0;t<e.length;t++){let n=e[t];this.#e.addParameter(String(t+1),this.#c(n),n)}}#s(){let e=this.#n?()=>{this.#n<=this.#t.length&&(this.#e.pause(),Object.values(this.#r).forEach(e=>e(`chunkReady`)))}:()=>{},t=t=>{let n={};for(let e of t)n[e.metadata.colName]=e.value;this.#t.push(n),e()};this.#e.on(`row`,t),this.#e.once(`requestCompleted`,()=>{Object.values(this.#r).forEach(e=>e(`completed`)),this.#e.off(`row`,t)})}#c(t){return e(t)||me(t)||D(t)?this.#i.TYPES.NVarChar:u(t)||se(t)&&t%1==0?t<-2147483648||t>2147483647?this.#i.TYPES.BigInt:this.#i.TYPES.Int:se(t)?this.#i.TYPES.Float:re(t)?this.#i.TYPES.Bit:ie(t)?this.#i.TYPES.DateTime:ne(t)?this.#i.TYPES.VarBinary:this.#i.TYPES.NVarChar}},In=class{#e;constructor(e){this.#e=e}async getSchemas(){return await this.#e.selectFrom(`sys.schemas`).select(`name`).execute()}async getTables(e={withInternalKyselyTables:!1}){let t=await this.#e.selectFrom(`sys.tables as tables`).leftJoin(`sys.schemas as table_schemas`,`table_schemas.schema_id`,`tables.schema_id`).innerJoin(`sys.columns as columns`,`columns.object_id`,`tables.object_id`).innerJoin(`sys.types as types`,`types.user_type_id`,`columns.user_type_id`).leftJoin(`sys.schemas as type_schemas`,`type_schemas.schema_id`,`types.schema_id`).leftJoin(`sys.extended_properties as comments`,e=>e.onRef(`comments.major_id`,`=`,`tables.object_id`).onRef(`comments.minor_id`,`=`,`columns.column_id`).on(`comments.name`,`=`,`MS_Description`)).$if(!e.withInternalKyselyTables,e=>e.where(`tables.name`,`!=`,$).where(`tables.name`,`!=`,nn)).select([`tables.name as table_name`,e=>e.ref(`tables.type`).$castTo().as(`table_type`),`table_schemas.name as table_schema_name`,`columns.default_object_id as column_default_object_id`,`columns.generated_always_type_desc as column_generated_always_type`,`columns.is_computed as column_is_computed`,`columns.is_identity as column_is_identity`,`columns.is_nullable as column_is_nullable`,`columns.is_rowguidcol as column_is_rowguidcol`,`columns.name as column_name`,`types.is_nullable as type_is_nullable`,`types.name as type_name`,`type_schemas.name as type_schema_name`,`comments.value as column_comment`]).unionAll(this.#e.selectFrom(`sys.views as views`).leftJoin(`sys.schemas as view_schemas`,`view_schemas.schema_id`,`views.schema_id`).innerJoin(`sys.columns as columns`,`columns.object_id`,`views.object_id`).innerJoin(`sys.types as types`,`types.user_type_id`,`columns.user_type_id`).leftJoin(`sys.schemas as type_schemas`,`type_schemas.schema_id`,`types.schema_id`).leftJoin(`sys.extended_properties as comments`,e=>e.onRef(`comments.major_id`,`=`,`views.object_id`).onRef(`comments.minor_id`,`=`,`columns.column_id`).on(`comments.name`,`=`,`MS_Description`)).select([`views.name as table_name`,`views.type as table_type`,`view_schemas.name as table_schema_name`,`columns.default_object_id as column_default_object_id`,`columns.generated_always_type_desc as column_generated_always_type`,`columns.is_computed as column_is_computed`,`columns.is_identity as column_is_identity`,`columns.is_nullable as column_is_nullable`,`columns.is_rowguidcol as column_is_rowguidcol`,`columns.name as column_name`,`types.is_nullable as type_is_nullable`,`types.name as type_name`,`type_schemas.name as type_schema_name`,`comments.value as column_comment`])).orderBy(`table_schema_name`).orderBy(`table_name`).orderBy(`column_name`).execute(),n={};for(let e of t){let t=`${e.table_schema_name}.${e.table_name}`;(n[t]=n[t]||k({columns:[],isForeign:!1,isView:e.table_type===`V `,name:e.table_name,schema:e.table_schema_name??void 0})).columns.push(k({dataType:e.type_name,dataTypeSchema:e.type_schema_name??void 0,hasDefaultValue:e.column_default_object_id>0||e.column_generated_always_type!==`NOT_APPLICABLE`||e.column_is_identity||e.column_is_computed||e.column_is_rowguidcol,isAutoIncrementing:e.column_is_identity,isNullable:e.column_is_nullable&&e.type_is_nullable,name:e.column_name,comment:e.column_comment??void 0}))}return Object.values(n)}};const Ln=/^[a-z0-9_]$/i;var Rn=class extends he{getCurrentParameterPlaceholder(){return`@${this.numParameters}`}visitOffset(e){super.visitOffset(e),this.append(` rows`)}compileColumnAlterations(e){let t={};for(let n of e)t[n.kind]||(t[n.kind]=[]),t[n.kind].push(n);let n=!0;t.AddColumnNode&&(this.append(`add `),this.compileList(t.AddColumnNode),n=!1),t.AlterColumnNode&&(n||this.append(`, `),this.compileList(t.AlterColumnNode)),t.DropColumnNode&&(n||this.append(`, `),this.append(`drop `),this.compileList(t.DropColumnNode),n=!1),t.ModifyColumnNode&&(n||this.append(`, `),this.compileList(t.ModifyColumnNode)),t.RenameColumnNode&&(n||this.append(`, `),this.compileList(t.RenameColumnNode))}visitAddColumn(e){this.visitNode(e.column)}visitDropColumn(e){this.append(`column `),e.ifExists&&this.append(`if exists `),this.visitNode(e.column)}visitMergeQuery(e){super.visitMergeQuery(e),this.append(`;`)}visitCollate(e){this.append(`collate `);let{name:t}=e.collation;for(let e of t)if(!Ln.test(e))throw Error(`Invalid collation: ${t}`);this.append(t)}announcesNewColumnDataType(){return!1}},zn=class{#e;constructor(e){this.#e=e}createDriver(){return new Nn(this.#e)}createQueryCompiler(){return new Rn}createAdapter(){return new kn}createIntrospector(e){return new In(e)}};function Bn(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Vn(e){if(!e)return null;if(`dialect`in e)return Vn(e.dialect);if(`createDriver`in e){if(e instanceof an)return`sqlite`;if(e instanceof yn)return`mysql`;if(e instanceof On)return`postgres`;if(e instanceof zn)return`mssql`}return`aggregate`in e?`sqlite`:`getConnection`in e?`mysql`:`connect`in e?`postgres`:`fileControl`in e||`open`in e&&`close`in e&&`prepare`in e||`batch`in e&&`exec`in e&&`prepare`in e?`sqlite`:null}function Hn(e,t){if(e!==void 0){if(typeof e!=`string`||e.length===0)throw new Te("`database.schemaName` must be a non-empty schema name.");if(t!==`postgres`)throw new Te(`\`database.schemaName\` is only supported on PostgreSQL, but the configured database type is "${t??`unknown`}".`)}}const Un=async e=>{let t=e.database;if(!t)return{kysely:null,databaseType:null,introspectIndexes:void 0,schemaName:void 0,transaction:void 0};if(`db`in t){let e=t.schemaName;return Hn(e,t.type),{kysely:e?t.db.withSchema(e):t.db,databaseType:t.type,introspectIndexes:void 0,schemaName:e,transaction:t.transaction}}if(`dialect`in t){let e=t.schemaName;Hn(e,t.type);let n=new Y({dialect:t.dialect});return{kysely:e?n.withSchema(e):n,databaseType:t.type,introspectIndexes:void 0,schemaName:e,transaction:t.transaction}}let n,r,i,a=Vn(t);if(`createDriver`in t&&(n=t),`aggregate`in t&&!(`createSession`in t)&&(n=new an({database:t}),i=!0),`getConnection`in t&&(n=new yn(t),i=!0),`connect`in t&&(n=new On({pool:t}),i=!0),`fileControl`in t){let{BunSqliteDialect:e}=await import(`./bun-sqlite-dialect-DoOVo4ja-DD-Erl56.mjs`);n=new e({database:t}),i=!0}if(`createSession`in t){let e;try{({DatabaseSync:e}=await import(
9
+ /* @vite-ignore */
10
+ /* webpackIgnore: true */
11
+ `node:sqlite`))}catch(e){if(typeof e==`object`&&e&&`code`in e&&e.code!==`ERR_UNKNOWN_BUILTIN_MODULE`)throw e}if(e&&t instanceof e){let{NodeSqliteDialect:e}=await import(`./src-B4z2ekdT.mjs`).then(e=>e.n);n=new e({database:t}),i=!0}}if(`batch`in t&&`exec`in t&&`prepare`in t){let{createD1IndexIntrospector:e,D1SqliteDialect:a}=await import(`./d1-sqlite-dialect-m0f01-4z-C492fKQn.mjs`);n=new a({database:t}),r=e(t),i=!1}return{kysely:n?new Y({dialect:n}):null,databaseType:a,introspectIndexes:r,schemaName:void 0,transaction:i}};function Wn(e,t,n){return n===`postgres`?C`${C.ref(e)} ILIKE ${t}`:C`LOWER(${C.ref(e)}) LIKE LOWER(${t})`}function Gn(e,t){return{lhs:C`LOWER(${C.ref(e)})`,values:t.map(e=>e.toLowerCase())}}function Kn(e,t){return{lhs:C`LOWER(${C.ref(e)})`,values:t.map(e=>e.toLowerCase())}}function qn(e,t){return{lhs:C`LOWER(${C.ref(e)})`,value:t.toLowerCase()}}function Jn(e,t){return{lhs:C`LOWER(${C.ref(e)})`,value:t.toLowerCase()}}function Yn(e){return e.map(e=>({name:e.name,schema:e.schema,columns:e.columns.map(e=>({name:e.name,nullable:e.isNullable,hasDefault:e.hasDefaultValue||e.isAutoIncrementing}))}))}function Xn(e,t){let n={};for(let[r,i]of Object.entries(t)){let t=Object.entries(i.fields),a=Zn(e,r,[i.idColumn??`id`,...t.map(([e])=>e)]),o={};t.forEach(([e,t],n)=>{o[a.columns[n+1]??e]=t}),n[a.table]={...i,fields:o,schema:a.schema??i.schema,...a.columns[0]!==`id`&&{idColumn:a.columns[0]}}}return n}function Zn(e,t,r){let{query:a}=e.selectFrom(t).select(r).compile();if(!i.is(a))return{table:t,columns:[]};let o=a.from?.froms[0],s=o&&c.is(o)?o.table:void 0;return{schema:s?.schema?.name,table:s?.identifier.name??t,columns:(a.selections??[]).map(({selection:e})=>ee.is(e)&&n.is(e.column)?e.column.column.name:void 0)}}async function Qn(e){return(await C`
12
+ SELECT pg_catalog.current_schema() AS schema
13
+ `.execute(e.withoutPlugins())).rows[0]?.schema??`public`}async function $n(e){return(await C`
14
+ SELECT SCHEMA_NAME() AS "schemaName"
15
+ `.execute(e.withoutPlugins())).rows[0]?.schemaName||`dbo`}async function er(e,t){if(t===`postgres`)return(await C`
16
+ SELECT pg_catalog.current_schemas(true)::text[] AS schemas
17
+ `.execute(e.withoutPlugins())).rows[0]?.schemas??[];if(t===`mssql`)return[await $n(e),`dbo`]}async function tr(e,t,n){let r=Xn(e,n);return t===`sqlite`?Ee(r,Yn(await ue(e,Object.entries(r).flatMap(([e,t])=>t.disableMigrations?[]:[e])))):e.connection().execute(async e=>{let n=await er(e,t),i=Yn(await e.introspection.getTables());for(let[e,t]of Object.entries(r))t.schema===void 0&&n&&(t.schema=n.find(t=>i.some(n=>n.name===e&&n.schema===t))??``);return Ee(r,i)})}const nr=(e,t)=>{let n=null,r=!1,i=(e,n=!1)=>({getFieldName:i,schema:a,getDefaultFieldName:o,getDefaultModelName:s,getFieldAttributes:c,getModelName:l,options:u})=>{t?.type===`mysql`&&u.advanced?.database?.generateId===!1&&!r&&(r=!0,we.warn(`[Kysely Adapter] MySQL does not support INSERT...RETURNING. With generateId set to false, the adapter uses best-effort fallback strategies (unique columns, full-field match) to retrieve inserted rows. For reliable behavior, use Better Auth's default ID generation, a custom generateId function, or generateId: "serial" for auto-increment.`));let d=e=>{let t=[],n=[];if(e)for(let[r,i]of Object.entries(e)){let e=a[i.modelKey??s(r)]?.fields,[o,c]=r.includes(`.`)?r.split(`.`):[void 0,r];if(e){e.id={type:`string`};for(let[i,a]of Object.entries(e))t.push(C`${C.ref(`join_${c}`)}.${C.ref(a.fieldName||i)} as ${C.ref(`_joined_${c}_${a.fieldName||i}`)}`),n.push({joinModel:r,joinModelRef:c,fieldName:a.fieldName||i})}}return{allSelectsStr:n,allSelects:t}},f=async(r,o,s,c,l)=>{if(t?.type===`mysql`){if(l.length>0){let t=await o.executeTakeFirst();if(!t||Number(t.numUpdatedRows??0)===0)return null;let n=l.find(e=>e.field===`id`&&(e.operator===void 0||e.operator===`eq`)&&e.connector!==`OR`&&e.value!==void 0&&e.value!==null),a,u;if(r.id!==void 0&&r.id!==null)a=`id`,u=r.id;else if(n)a=`id`,u=n.value;else if(l[0]?.field)a=l[0].field,u=r[a]===void 0?l[0].value:r[a];else return null;return await e.selectFrom(s).selectAll().where(i({model:c,field:a}),u===null?`is`:`=`,u).limit(1).executeTakeFirst()}await o.execute();let t=async e=>{if(r.id)return await e.selectFrom(s).selectAll().where(i({model:c,field:`id`}),`=`,r.id).limit(1).executeTakeFirst();if(u.advanced?.database?.generateId===`serial`){let t=(await C`SELECT LAST_INSERT_ID() as id`.execute(e)).rows[0]?.id;if(t)return await e.selectFrom(s).selectAll().where(i({model:c,field:`id`}),`=`,t).limit(1).executeTakeFirst()}let t=a[c]?.fields;if(t)for(let[n,a]of Object.entries(t)){if(!a.unique)continue;let t=i({model:c,field:n}),o=r[t];if(o==null)continue;let l=await e.selectFrom(s).selectAll().where(t,`=`,o).limit(1).executeTakeFirst();if(l)return l}let n=e.selectFrom(s).selectAll(),o=!1;for(let[e,t]of Object.entries(r))t!==void 0&&(n=n.where(e,t===null?`is`:`=`,t),o=!0);if(o){let e=await n.limit(2).execute();if(e.length===1)return e[0]}return we.warn(`[Kysely Adapter] Unable to safely identify the inserted "${s}" row on MySQL. Enable Better Auth ID generation or use generateId: "serial" for reliable behavior.`),null};return n?t(e):e.transaction().execute(t)}return t?.type===`mssql`?await o.outputAll(`inserted`).executeTakeFirst():await o.returningAll().executeTakeFirst()};function p(e,n,r){if(!r)return{and:null,or:null};let a={and:[],or:[]};return r.forEach(r=>{let{field:o,value:s,operator:c=`eq`,connector:l=`AND`,mode:u=`sensitive`}=r,d=s,f=i({model:n,field:o}),p=u===`insensitive`&&(typeof d==`string`||Array.isArray(d)&&d.every(e=>typeof e==`string`)),m=n=>{let r=`${e}.${f}`;if(c.toLowerCase()===`in`){if(p){let{lhs:e,values:t}=Gn(r,Array.isArray(d)?d:[d]);return n(e,`in`,t)}return n(r,`in`,Array.isArray(d)?d:[d])}if(c.toLowerCase()===`not_in`){if(p){let{lhs:e,values:t}=Kn(r,Array.isArray(d)?d:[d]);return n(e,`not in`,t)}return n(r,`not in`,Array.isArray(d)?d:[d])}if(c===`contains`)return p&&typeof d==`string`?Wn(r,`%${d}%`,t?.type):n(r,`like`,`%${d}%`);if(c===`starts_with`)return p&&typeof d==`string`?Wn(r,`${d}%`,t?.type):n(r,`like`,`${d}%`);if(c===`ends_with`)return p&&typeof d==`string`?Wn(r,`%${d}`,t?.type):n(r,`like`,`%${d}`);if(c===`eq`){if(d===null)return n(r,`is`,null);if(p&&typeof d==`string`){let{lhs:e,value:t}=qn(r,d);return n(e,`=`,t)}return n(r,`=`,d)}if(c===`ne`){if(d===null)return n(r,`is not`,null);if(p&&typeof d==`string`){let{lhs:e,value:t}=Jn(r,d);return n(e,`<>`,t)}return n(r,`<>`,d)}return c===`gt`?n(r,`>`,d):c===`gte`?n(r,`>=`,d):c===`lt`?n(r,`<`,d):c===`lte`?n(r,`<=`,d):n(r,c,d)};l===`OR`?a.or.push(m):a.and.push(m)}),{and:a.and.length?a.and:null,or:a.or.length?a.or:null}}function m(e,t,n){if(!t||!e.length)return e;let r=/* @__PURE__ */ new Map;for(let a of e){let e={},o={};for(let[e]of Object.entries(t))o[e]={};for(let[r,s]of Object.entries(a)){let a=String(r),c=!1;for(let{joinModel:e,fieldName:r,joinModelRef:l}of n)if(a===`_joined_${l}_${r}`||a===`_Joined${Bn(l)}${Bn(r)}`){o[e][i({model:t[e]?.modelKey??e,field:r})]=s,c=!0;break}c||(e[r]=s)}let s=e.id;if(!s)continue;if(!r.has(s)){let n={...e};for(let[e,r]of Object.entries(t))n[e]=r.relation===`one-to-one`?null:[];r.set(s,n)}let c=r.get(s);for(let[e,n]of Object.entries(t)){let t=n.relation===`one-to-one`,r=n.limit??100,a=o[e],s=a&&Object.keys(a).length>0&&Object.values(a).some(e=>e!=null);if(t)c[e]=s?a:null;else{let t=e;if(Array.isArray(c[t])&&s){if(c[t].length>=r)continue;let o=i({model:n.modelKey??e,field:`id`}),s=a[o];s?!c[t].some(e=>e[o]===s)&&c[t].length<r&&c[t].push(a):c[t].length<r&&c[t].push(a)}}}}let a=Array.from(r.values());for(let e of a)for(let[n,r]of Object.entries(t))if(r.relation!==`one-to-one`){let t=n;if(Array.isArray(e[t])){let n=r.limit??100;e[t].length>n&&(e[t]=e[t].slice(0,n))}}return a}return{async create({data:t,model:n,modelKey:r=n}){return await f(t,e.insertInto(n).values(t),n,r,[])},async findOne({model:t,modelKey:n=t,where:r,select:a,join:o}){let{and:s,or:c}=p(t,n,r),l=e.selectFrom(e=>{let r=e.selectFrom(t);return s&&(r=r.where(e=>e.and(s.map(t=>t(e))))),c&&(r=r.where(e=>e.or(c.map(t=>t(e))))),r=a?.length&&a.length>0?r.select(a.map(e=>i({model:n,field:e}))):r.selectAll(),r.as(`primary`)}).selectAll(`primary`);if(o)for(let[e,t]of Object.entries(o)){let[n,r]=e.includes(`.`)?e.split(`.`):[void 0,e];l=l.leftJoin(`${e} as join_${r}`,e=>e.onRef(`join_${r}.${t.on.to}`,`=`,`primary.${t.on.from}`))}let{allSelectsStr:u,allSelects:f}=d(o);l=l.select(f);let h=await l.execute();if(!h||!Array.isArray(h)||h.length===0)return null;let g=h[0];return o?m(h,o,u)[0]:g},async findMany({model:n,modelKey:r=n,where:a,limit:o,select:s,offset:c,sortBy:l,join:u}){let{and:f,or:h}=p(n,r,a),g=e.selectFrom(e=>{let a=e.selectFrom(n);return t?.type===`mssql`?c===void 0?o!==void 0&&(a=a.top(o)):(l||(a=a.orderBy(i({model:r,field:`id`}))),a=a.offset(c).fetch(o||100)):(o!==void 0&&(a=a.limit(o)),c!==void 0&&(a=a.offset(c))),l?.field&&(a=a.orderBy(`${i({model:r,field:l.field})}`,l.direction)),f&&(a=a.where(e=>e.and(f.map(t=>t(e))))),h&&(a=a.where(e=>e.or(h.map(t=>t(e))))),a=s?.length&&s.length>0?a.select(s.map(e=>i({model:r,field:e}))):a.selectAll(),a.as(`primary`)}).selectAll(`primary`);if(u)for(let[e,t]of Object.entries(u)){let[n,r]=e.includes(`.`)?e.split(`.`):[void 0,e];g=g.leftJoin(`${e} as join_${r}`,e=>e.onRef(`join_${r}.${t.on.to}`,`=`,`primary.${t.on.from}`))}let{allSelectsStr:_,allSelects:ee}=d(u);g=g.select(ee),l?.field&&(g=g.orderBy(`${i({model:r,field:l.field})}`,l.direction));let v=await g.execute();return v?u?m(v,u,_):v:[]},async update({model:t,modelKey:n=t,where:r,update:i}){if(r.length===0)return null;let{and:a,or:o}=p(t,n,r),s=e.updateTable(t).set(i);return a&&(s=s.where(e=>e.and(a.map(t=>t(e))))),o&&(s=s.where(e=>e.or(o.map(t=>t(e))))),await f(i,s,t,n,r)},async updateMany({model:t,modelKey:n=t,where:r,update:i}){let{and:a,or:o}=p(t,n,r),s=e.updateTable(t).set(i);a&&(s=s.where(e=>e.and(a.map(t=>t(e))))),o&&(s=s.where(e=>e.or(o.map(t=>t(e)))));let c=(await s.executeTakeFirst()).numUpdatedRows;return c>2**53-1?2**53-1:Number(c)},async count({model:t,modelKey:n=t,where:r}){let{and:i,or:a}=p(t,n,r),o=e.selectFrom(t).select(e.fn.count(`id`).as(`count`));i&&(o=o.where(e=>e.and(i.map(t=>t(e))))),a&&(o=o.where(e=>e.or(a.map(t=>t(e)))));let s=await o.execute();return typeof s[0].count==`number`?s[0].count:typeof s[0].count==`bigint`?Number(s[0].count):parseInt(s[0].count)},async delete({model:t,modelKey:n=t,where:r}){let{and:i,or:a}=p(t,n,r),o=e.deleteFrom(t);i&&(o=o.where(e=>e.and(i.map(t=>t(e))))),a&&(o=o.where(e=>e.or(a.map(t=>t(e))))),await o.execute()},async deleteMany({model:t,modelKey:n=t,where:r}){let{and:i,or:a}=p(t,n,r),o=e.deleteFrom(t);i&&(o=o.where(e=>e.and(i.map(t=>t(e))))),a&&(o=o.where(e=>e.or(a.map(t=>t(e)))));let s=(await o.executeTakeFirst()).numDeletedRows;return s>2**53-1?2**53-1:Number(s)},async consumeOne({model:r,modelKey:a=r,where:o}){let{and:s,or:c}=p(r,a,o),l=e=>(s&&(e=e.where(e=>e.and(s.map(t=>t(e))))),c&&(e=e.where(e=>e.or(c.map(t=>t(e))))),e),u=i({model:a,field:`id`}),d=async(e,n)=>{let i=n[u]??n.id;if(i==null)return null;let a=e.deleteFrom(r).where(`${r}.${u}`,`=`,i);if(t?.type===`mysql`){let e=await a.executeTakeFirst();return Number(e.numDeletedRows)>0?n:null}return t?.type===`mssql`?await a.outputAll(`deleted`).executeTakeFirst()??null:await a.returningAll().executeTakeFirst()??null},f=async e=>t?.type===`mssql`?await e.outputAll(`deleted`).executeTakeFirst()??null:await e.returningAll().executeTakeFirst()??null;if(t?.type===`mysql`){let t=async e=>{let t=await l(e.selectFrom(r).selectAll().forUpdate()).limit(1).executeTakeFirst();return t?d(e,t):null};return n?t(e):e.transaction().execute(t)}let m=l(e.selectFrom(r).select(`${r}.${u}`)),h=t?.type===`mssql`?m.top(1):m.limit(1);return f(l(e.deleteFrom(r).where(`${r}.${u}`,`in`,h)))},async incrementOne({model:r,modelKey:a=r,where:o,increment:s,set:c}){let{and:l,or:u}=p(r,a,o),d=e=>(l&&(e=e.where(e=>e.and(l.map(t=>t(e))))),u&&(e=e.where(e=>e.or(u.map(t=>t(e))))),e),f={...c??{}};for(let[e,t]of Object.entries(s))f[e]=C`${C.ref(e)} + ${t}`;let m=i({model:a,field:`id`});if(t?.type===`mysql`){let t=async e=>{let t=await d(e.selectFrom(r).select(`${r}.${m}`).forUpdate()).limit(1).executeTakeFirst();if(!t)return null;let n=t[m]??t.id;if(n==null)return null;let i=await d(e.updateTable(r).set(f)).where(`${r}.${m}`,`=`,n).executeTakeFirst();return Number(i.numUpdatedRows)===0?null:await e.selectFrom(r).selectAll().where(`${r}.${m}`,`=`,n).limit(1).executeTakeFirst()??null};return n?t(e):e.transaction().execute(t)}let h=d(e.selectFrom(r).select(`${r}.${m}`)),g=t?.type===`mssql`?h.top(1):h.limit(1),_=d(e.updateTable(r).set(f)).where(`${r}.${m}`,`in`,g);return t?.type===`mssql`?await _.outputAll(`inserted`).executeTakeFirst()??null:await _.returningAll().executeTakeFirst()??null},options:t}},a=null;a={config:{adapterId:`kysely`,adapterName:`Kysely Adapter`,usePlural:t?.usePlural,debugLogs:t?.debugLogs,supportsBooleans:!(t?.type===`sqlite`||t?.type===`mssql`||t?.type===`mysql`||!t?.type),supportsDates:!(t?.type===`sqlite`||t?.type===`mssql`||!t?.type),supportsJSON:t?.type===`postgres`,supportsArrays:!1,supportsUUIDs:t?.type===`postgres`,transaction:t?.transaction?t=>e.transaction().execute(e=>t(je({config:{...a.config,transaction:!1},adapter:i(e,!0)})(n))):!1},adapter:i(e)};let o=je(a);return r=>{n=r;let i=o(r);return De(i,Oe(()=>tr(e,t?.type,Ae(r,{usePlural:t?.usePlural})),`database`,r.database),{runtimeEnabled:ke(r)}),i}};export{nr as a,Y as c,Qn as i,Vn as n,Yn as o,$n as r,Xn as s,Un as t};
@@ -0,0 +1,4 @@
1
+ import{B as e,M as t,O as n,a as r,d as i,k as a,n as o,o as s,r as c,s as l}from"./get-id-field-CHlYHt3y.mjs";import{C as u,N as d,S as f,_ as p,b as m,l as h,u as g,v as _,w as v}from"./schemas-CYWNDEcx.mjs";const y=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t});return({field:t,model:r})=>{if(t===`id`||t===`_id`)return`id`;let i=n(r),a=e[i]?.fields[t];if(!a){let n=Object.entries(e[i].fields).find(([e,n])=>n.fieldName===t);n&&(a=n[1],t=n[0])}if(!a)throw new d(`Field ${t} not found in model ${i}`);return t}},b=({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i})=>{let a=c({usePlural:e,schema:t}),s=y({usePlural:e,schema:t}),l=o({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i});return({model:e,field:n})=>{let r=a(e),i=s({field:n,model:r}),o=t[r].fields;o.id=l({customModelName:r});let c=o[i];if(!c)throw new d(`Field ${n} not found in model ${e}`);return c}},x=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t}),r=y({schema:e,usePlural:t});function i({model:t,field:i}){let a=n(t),o=r({model:a,field:i});return e[a]?.fields[o]?.fieldName||o}return i},S=({usePlural:e,schema:t})=>{let n=c({schema:t,usePlural:e});return r=>{let i=n(r);return t&&t[i]&&t[i].modelName!==r?e?`${t[i].modelName}s`:t[i].modelName:e?`${r}s`:r}};function C(e,t,n){return n===`update`?e===void 0&&t.onUpdate!==void 0?typeof t.onUpdate==`function`?t.onUpdate():t.onUpdate:e:n===`create`&&(e===void 0||t.required===!0&&e===null)&&t.defaultValue!==void 0?typeof t.defaultValue==`function`?t.defaultValue():t.defaultValue:e}const w=u([f(),p(),h(),g()]).nullable(),T=m(f(),v()).nullish(),E=m(f(),v()).transform(e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}),D=_({increment:m(f(),p()),set:E.optional()}),O=p().nullish();function k(e){let{adapter:t,adapterId:n}=e,r=Object.entries(e.mapKeysTransformOutput??{}).find(([,e])=>e===`id`)?.[0]??`id`;async function i(t,n,i){let a=e.mapKeysTransformInput?.id||e.getFieldName({model:n,field:`id`});if(t[a]===void 0||t[a]===null)throw new d(`Adapter "${e.adapterId}" must return the row id for atomic fallbacks.`);let o=(await e.transformOutput(t,n,[r],void 0))?.id;if(typeof o!=`string`&&typeof o!=`number`)throw new d(`Adapter "${e.adapterId}" must expose a logical string or number id through its output transform.`);let[s]=e.transformWhereClause({model:n,where:[{field:`id`,value:o}],action:i});if(!s)throw new d(`The atomic fallback id condition was transformed away.`);return s}async function a({model:e,modelKey:r,where:i}){let a=T.safeParse(await t.findOne({model:e,modelKey:r,where:i}));if(!a.success)throw new d(`Adapter "${n}" must return a row snapshot or null.`);return a.data??null}async function o(e,t,r,a){let o=await i(e,r.modelKey,a),s=r.where.some(e=>e.connector===`OR`),c=s?[o]:[...r.where,o],l=new Set(t);for(let t of l){if(t===o.field)continue;let i=w.safeParse(e[t]??null);if(i.success)c.push({field:t,value:i.data,operator:`eq`,connector:`AND`,mode:`sensitive`});else if(s&&r.where.some(e=>e.field===t))throw new d(`Adapter "${n}" must implement native atomic methods for OR predicates on structured values.`)}return c}function s(e){if(e!==0&&e!==1)throw new d(`Adapter "${n}" must return an affected row count of 0 or 1 from an atomic fallback.`);return e===1}async function c(e){let{model:n,where:r}=e,i=await a(e);if(i===null)return null;let c=await o(i,[...Object.keys(i),...r.map(({field:e})=>e)],e,`consumeOne`);return s(await t.deleteMany({model:n,modelKey:e.modelKey,where:c}))?i:null}async function l(e){let{model:r,where:i}=e,c=D.safeParse(e);if(!c.success)throw new d(`incrementOne requires finite increments and a set object for the atomic fallback.`);let{increment:l,set:u}=c.data,f=Object.entries(l),p=[...i.map(({field:e})=>e),...Object.keys(l),...Object.keys(u??{})];for(let i=0;i<5;i++){let i=await a(e);if(i===null)return null;let c={...u};for(let[e,t]of f){let r=O.safeParse(i[e]);if(!r.success)throw new d(`Adapter "${n}" must return finite numeric counter values or null for atomic increments.`);let a=r.data??0,o=a+t;if(!Number.isFinite(o)||t!==0&&o===a)throw new d(`Adapter "${n}" cannot represent the requested counter increment safely.`);c[e]=o}let l=await o(i,p,e,`incrementOne`);if(Object.entries(c).every(([e,t])=>{let n=i[e];return n instanceof Date&&t instanceof Date?n.getTime()===t.getTime():Object.is(n,t)}))return i;if(s(await t.updateMany({model:r,modelKey:e.modelKey,where:l,update:c})))return{...i,...c}}throw new d(`Adapter "${n}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:c,incrementOne:l}}let A=[],j=-1;const M=e=>t=>t(e),N=({adapter:t,config:n})=>u=>{let f=r(u),p=Math.random().toString(36).substring(2,15),m={...n,supportsBooleans:n.supportsBooleans??!0,supportsDates:n.supportsDates??!0,supportsJSON:n.supportsJSON??!1,adapterName:n.adapterName??n.adapterId,supportsNumericIds:n.supportsNumericIds??!0,supportsUUIDs:n.supportsUUIDs??!1,supportsArrays:n.supportsArrays??!1,transaction:n.transaction??!1,disableTransformInput:n.disableTransformInput??!1,disableTransformOutput:n.disableTransformOutput??!1,disableTransformJoin:n.disableTransformJoin??!1};if(u.advanced?.database?.generateId===`serial`&&m.supportsNumericIds===!1)throw new d(`[${m.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let h=e(u),g=(...e)=>{if(m.debugLogs===!0||typeof m.debugLogs==`object`){let t=a({level:`info`});if(typeof m.debugLogs==`object`&&`isRunningAdapterTests`in m.debugLogs){m.debugLogs.isRunningAdapterTests&&(e.shift(),A.push({instance:p,args:e}));return}if(typeof m.debugLogs==`object`&&m.debugLogs.logCondition&&!m.debugLogs.logCondition?.())return;if(typeof e[0]==`object`&&`method`in e[0]){let n=e.shift().method;if(typeof m.debugLogs==`object`&&(n===`create`&&!m.debugLogs.create||n===`update`&&!m.debugLogs.update||n===`updateMany`&&!m.debugLogs.updateMany||n===`findOne`&&!m.debugLogs.findOne||n===`findMany`&&!m.debugLogs.findMany||n===`delete`&&!m.debugLogs.delete||n===`deleteMany`&&!m.debugLogs.deleteMany||n===`consumeOne`&&!m.debugLogs.consumeOne||n===`incrementOne`&&!m.debugLogs.incrementOne||n===`count`&&!m.debugLogs.count))return;t.info(`[${m.adapterName}]`,...e)}else t.info(`[${m.adapterName}]`,...e)}},_=a(u.logger),v=c({usePlural:m.usePlural,schema:h}),w=y({usePlural:m.usePlural,schema:h}),T=S({usePlural:m.usePlural,schema:h}),E=x({schema:h,usePlural:m.usePlural}),D=o({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator,supportsUUIDs:m.supportsUUIDs}),O=b({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator}),N=async(e,t,n,r)=>{let i={},a=h[t].fields,o=m.mapKeysTransformInput??{},s=u.advanced?.database?.generateId===`serial`;a.id=D({customModelName:t,forceAllowId:r&&`id`in e});for(let r in a){let c=e[r],l=a[r],d=o[r]||a[r].fieldName||r;if(c===void 0&&(l.defaultValue===void 0&&!l.transform?.input&&!(n===`update`&&l.onUpdate)||n===`update`&&!l.onUpdate))continue;if(l&&l.type===`date`&&!(c instanceof Date)&&typeof c==`string`)try{c=new Date(c)}catch{_.error(`[Adapter Factory] Failed to convert string to date`,{value:c,field:r})}let f=C(c,l,n);l.transform?.input&&(f=await l.transform.input(f)),l.references?.field===`id`&&s?f=Array.isArray(f)?f.map(e=>e===null?null:Number(e)):f===null?null:Number(f):m.supportsJSON===!1&&typeof f==`object`&&l.type===`json`||m.supportsArrays===!1&&Array.isArray(f)&&(l.type===`string[]`||l.type===`number[]`)?f=JSON.stringify(f):m.supportsDates===!1&&f instanceof Date&&l.type===`date`?f=f.toISOString():m.supportsBooleans===!1&&typeof f==`boolean`&&(f=+!!f),m.customTransformInput&&(f=m.customTransformInput({data:f,action:n,field:d,fieldAttributes:l,model:T(t),schema:h,options:u})),f!==void 0&&(i[d]=f)}return i},R=async(e,t,n=[],r)=>{let a=async(e,t,n=[])=>{if(!e)return null;let r=v(t),a=m.mapKeysTransformOutput??{},o={},s=h[r].fields,c=Object.entries(a).find(([e,t])=>t===`id`)?.[0];s[c??`id`]={type:u.advanced?.database?.generateId===`serial`?`number`:`string`};for(let t in s){if(n.length&&!n.includes(t))continue;let c=s[t];if(c){let s=c.fieldName||t,l=e[Object.entries(a).find(([e,t])=>t===s)?.[0]||s];c.transform?.output&&(l=await c.transform.output(l));let d=a[t]||t;s===`id`||c.references?.field===`id`?l!=null&&(l=String(l)):m.supportsJSON===!1&&typeof l==`string`&&c.type===`json`||m.supportsArrays===!1&&typeof l==`string`&&(c.type===`string[]`||c.type===`number[]`)?l=i(l):m.supportsDates===!1&&typeof l==`string`&&c.type===`date`?l=new Date(l):m.supportsBooleans===!1&&typeof l==`number`&&c.type===`boolean`&&(l=l===1),m.customTransformOutput&&(l=m.customTransformOutput({data:l,field:d,fieldAttributes:c,select:n,model:T(r),schema:h,options:u})),o[d]=l}}return o};if(!r||Object.keys(r).length===0)return await a(e,t,n);let o=v(t),s=await a(e,o,n),c=Object.entries(r).map(([e,t])=>({modelName:e,defaultModelName:t.modelKey??v(e),joinConfig:t}));if(!e)return null;for(let{modelName:t,defaultModelName:n,joinConfig:r}of c){let i=await(async()=>u.advanced?.database?.joins&&t in e?e[t]:await V({baseModel:o,baseData:s,joinModel:t,specificJoinConfig:r}))();i??=r.relation===`one-to-one`?null:[],r.relation===`one-to-many`&&!Array.isArray(i)&&(i=[i]);let c=[];if(Array.isArray(i))for(let e of i){let t=await a(e,n,[]);c.push(t)}else{let e=await a(i,n,[]);c.push(e)}s[n]=(r.relation===`one-to-one`?c[0]:c)??null}return s},z=({model:e,where:t,action:n})=>{if(!t)return;let r=m.mapKeysTransformInput??{};return t.map(t=>{let{field:i,value:a,operator:o=`eq`,connector:s=`AND`,mode:c=`sensitive`}=t;if(o===`in`&&!Array.isArray(a))throw new d(`Value must be an array`);let l=a,f=v(e),p=w({field:i,model:e}),g=r[p]||E({field:p,model:f}),_=O({field:p,model:f}),y=u.advanced?.database?.generateId===`serial`;if((p===`id`||_.references?.field===`id`)&&y&&(l=Array.isArray(a)?a.map(Number):Number(a)),_.type===`date`&&a instanceof Date&&!m.supportsDates&&(l=a.toISOString()),_.type===`boolean`&&typeof l==`string`&&(l=l===`true`),_.type===`number`){if(typeof l==`string`&&l.trim()!==``){let e=Number(l);Number.isNaN(e)||(l=e)}else if(Array.isArray(l)){let e=l.map(e=>typeof e==`string`&&e.trim()!==``?Number(e):NaN);e.every(e=>!Number.isNaN(e))&&(l=e)}}if(_.type===`boolean`&&typeof l==`boolean`&&!m.supportsBooleans&&(l=+!!l),_.type===`json`&&typeof a==`object`&&!m.supportsJSON)try{l=JSON.stringify(a)}catch(e){throw Error(`Failed to stringify JSON value for field ${g}`,{cause:e})}return m.customTransformInput&&(l=m.customTransformInput({data:l,fieldAttributes:_,field:g,model:T(e),schema:h,options:u,action:n})),{operator:o,connector:s,field:g,value:l,mode:c}})},B=(e,t,n)=>{if(!t||Object.keys(t).length===0)return;let r={};for(let[i,a]of Object.entries(t)){if(!a)continue;let t=v(i),o=v(e),s=Object.entries(h[t].fields).filter(([e,t])=>t.references&&v(t.references.model)===o),c=!0;if(s.length||(s=Object.entries(h[o].fields).filter(([e,n])=>n.references&&v(n.references.model)===t),c=!1),!s.length)throw new d(`No foreign key found for model ${i} and base model ${e} while performing join operation.`);if(s.length>1)throw new d(`Multiple foreign keys found for model ${i} and base model ${e} while performing join operation. Only one foreign key is supported.`);let[l,f]=s[0];if(!f.references)throw new d(`No references found for foreign key ${l} on model ${i} while performing join operation.`);let p,m,g;c?(g=f.references.field,p=E({model:e,field:g}),m=E({model:i,field:l})):(g=l,p=E({model:e,field:g}),m=E({model:i,field:f.references.field})),n&&!n.includes(g)&&n.push(g);let _=m===`id`?!0:f.unique??!1,y=u.advanced?.database?.defaultFindManyLimit??100;_?y=1:typeof a==`object`&&typeof a.limit==`number`&&(y=a.limit),r[T(i)]={modelKey:i,on:{from:p,to:m},limit:y,relation:_?`one-to-one`:`one-to-many`}}return{join:r,select:n}},V=async({baseModel:e,baseData:t,joinModel:n,specificJoinConfig:r})=>{if(!t)return t;let i=r.modelKey??v(n),a=T(i),o=r.on.to,c=t[w({field:r.on.from,model:e})];if(c==null)return r.relation===`one-to-one`?null:[];let d,p=z({model:i,where:[{field:o,value:c,operator:`eq`,connector:`AND`}],action:`findOne`});try{if(r.relation===`one-to-one`)d=await f(`db findOne ${a}`,{[l]:`findOne`,[s]:a},()=>H.findOne({model:a,modelKey:i,where:p}));else{let e=r.limit??u.advanced?.database?.defaultFindManyLimit??100;d=await f(`db findMany ${a}`,{[l]:`findMany`,[s]:a},()=>H.findMany({model:a,modelKey:i,where:p,limit:e}))}}catch(e){throw _.error(`Failed to query fallback join for model ${a}:`,{where:p,limit:r.limit}),console.error(e),e}return d},H=t({options:u,schema:h,debugLog:g,getFieldName:E,getModelName:T,getDefaultModelName:v,getDefaultFieldName:w,getFieldAttributes:O,transformInput:N,transformOutput:R,transformWhereClause:z}),U=null,W=k({adapter:H,adapterId:m.adapterId,mapKeysTransformInput:m.mapKeysTransformInput,mapKeysTransformOutput:m.mapKeysTransformOutput,getFieldName:E,transformOutput:R,transformWhereClause:z}),G={transaction:async e=>(U||(m.transaction?(_.debug(`[${m.adapterName}] - Using provided transaction implementation.`),U=m.transaction):U=M(G)),U(e)),create:async({data:e,model:t,select:n,forceAllowId:r=!1})=>{j++;let i=j,a=v(t),o=T(a);if(`id`in e&&e.id!==void 0&&!r){_.warn(`[${m.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \`forceAllowId\` parameter. The id will be ignored.`);let t=(/* @__PURE__ */ Error()).stack?.split(`
2
+ `).filter((e,t)=>t!==1).join(`
3
+ `).replace(`Error:`,"Create method with `id` being called at:");console.log(t),e.id=void 0}g({method:`create`},`${P(i)} ${F(1,4)}`,`${I(`create`)} ${L(`Unsafe Input`)}:`,{model:o,data:e});let c=e;m.disableTransformInput||(c=await N(e,a,`create`,r)),g({method:`create`},`${P(i)} ${F(2,4)}`,`${I(`create`)} ${L(`Parsed Input`)}:`,{model:o,data:c});let u=await f(`db create ${o}`,{[l]:`create`,[s]:o},()=>H.create({data:c,model:o,modelKey:a}));g({method:`create`},`${P(i)} ${F(3,4)}`,`${I(`create`)} ${L(`DB Result`)}:`,{model:o,res:u});let d=u;return m.disableTransformOutput||(d=await R(u,a,n,void 0)),g({method:`create`},`${P(i)} ${F(4,4)}`,`${I(`create`)} ${L(`Parsed Result`)}:`,{model:o,data:d}),d},update:async({model:e,where:t,update:n})=>{j++;let r=j,i=v(e),a=T(i),o=z({model:i,where:t,action:`update`});if(o.length===0)return null;g({method:`update`},`${P(r)} ${F(1,4)}`,`${I(`update`)} ${L(`Unsafe Input`)}:`,{model:a,data:n});let c=n;m.disableTransformInput||(c=await N(n,i,`update`)),g({method:`update`},`${P(r)} ${F(2,4)}`,`${I(`update`)} ${L(`Parsed Input`)}:`,{model:a,data:c});let u=await f(`db update ${a}`,{[l]:`update`,[s]:a},()=>H.update({model:a,modelKey:i,where:o,update:c}));g({method:`update`},`${P(r)} ${F(3,4)}`,`${I(`update`)} ${L(`DB Result`)}:`,{model:a,data:u});let d=u;return m.disableTransformOutput||(d=await R(u,i,void 0,void 0)),g({method:`update`},`${P(r)} ${F(4,4)}`,`${I(`update`)} ${L(`Parsed Result`)}:`,{model:a,data:d}),d},updateMany:async({model:e,where:t,update:n})=>{j++;let r=j,i=v(e),a=T(i),o=z({model:i,where:t,action:`updateMany`});g({method:`updateMany`},`${P(r)} ${F(1,4)}`,`${I(`updateMany`)} ${L(`Unsafe Input`)}:`,{model:a,data:n});let c=n;m.disableTransformInput||(c=await N(n,i,`update`)),g({method:`updateMany`},`${P(r)} ${F(2,4)}`,`${I(`updateMany`)} ${L(`Parsed Input`)}:`,{model:a,data:c});let u=await f(`db updateMany ${a}`,{[l]:`updateMany`,[s]:a},()=>H.updateMany({model:a,modelKey:i,where:o,update:c}));if(typeof u!=`number`||!Number.isFinite(u))throw new d(`Adapter "${m.adapterId}" updateMany must return a finite number affected row count.`);return g({method:`updateMany`},`${P(r)} ${F(3,4)}`,`${I(`updateMany`)} ${L(`DB Result`)}:`,{model:a,data:u}),g({method:`updateMany`},`${P(r)} ${F(4,4)}`,`${I(`updateMany`)} ${L(`Parsed Result`)}:`,{model:a,data:u}),u},findOne:async({model:e,where:t,select:n,join:r})=>{j++;let i=j,a=v(e),o=T(a),c=z({model:a,where:t,action:`findOne`}),d,p=!0;if(m.disableTransformJoin)d=r;else{let e=B(a,r,n);e&&(d=e.join,n=e.select),!u.advanced?.database?.joins&&d&&Object.keys(d).length>0&&(p=!1)}g({method:`findOne`},`${P(i)} ${F(1,3)}`,`${I(`findOne`)}:`,{model:o,where:c,select:n,join:d});let h=await f(`db findOne ${o}`,{[l]:`findOne`,[s]:o},()=>H.findOne({model:o,modelKey:a,where:c,select:n,join:p?d:void 0}));g({method:`findOne`},`${P(i)} ${F(2,3)}`,`${I(`findOne`)} ${L(`DB Result`)}:`,{model:o,data:h});let _=h;return m.disableTransformOutput||(_=await R(h,a,n,d)),g({method:`findOne`},`${P(i)} ${F(3,3)}`,`${I(`findOne`)} ${L(`Parsed Result`)}:`,{model:o,data:_}),_},findMany:async({model:e,where:t,limit:n,select:r,sortBy:i,offset:a,join:o})=>{j++;let c=j,d=n??u.advanced?.database?.defaultFindManyLimit??100,p=v(e),h=T(p),_=z({model:p,where:t,action:`findMany`}),y,b=!0;if(m.disableTransformJoin)y=o;else{let e=B(p,o,r);e&&(y=e.join,r=e.select),!u.advanced?.database?.joins&&y&&Object.keys(y).length>0&&(b=!1)}g({method:`findMany`},`${P(c)} ${F(1,3)}`,`${I(`findMany`)}:`,{model:h,where:_,limit:d,sortBy:i,offset:a,join:y});let x=await f(`db findMany ${h}`,{[l]:`findMany`,[s]:h},()=>H.findMany({model:h,modelKey:p,where:_,limit:d,select:r,sortBy:i,offset:a,join:b?y:void 0}));g({method:`findMany`},`${P(c)} ${F(2,3)}`,`${I(`findMany`)} ${L(`DB Result`)}:`,{model:h,data:x});let S=x;return m.disableTransformOutput||(S=await Promise.all(x.map(async e=>await R(e,p,void 0,y)))),g({method:`findMany`},`${P(c)} ${F(3,3)}`,`${I(`findMany`)} ${L(`Parsed Result`)}:`,{model:h,data:S}),S},delete:async({model:e,where:t})=>{j++;let n=j,r=v(e),i=T(r),a=z({model:r,where:t,action:`delete`});g({method:`delete`},`${P(n)} ${F(1,2)}`,`${I(`delete`)}:`,{model:i,where:a}),await f(`db delete ${i}`,{[l]:`delete`,[s]:i},()=>H.delete({model:i,modelKey:r,where:a})),g({method:`delete`},`${P(n)} ${F(2,2)}`,`${I(`delete`)} ${L(`DB Result`)}:`,{model:i})},deleteMany:async({model:e,where:t})=>{j++;let n=j,r=v(e),i=T(r),a=z({model:r,where:t,action:`deleteMany`});g({method:`deleteMany`},`${P(n)} ${F(1,2)}`,`${I(`deleteMany`)} ${L(`DeleteMany`)}:`,{model:i,where:a});let o=await f(`db deleteMany ${i}`,{[l]:`deleteMany`,[s]:i},()=>H.deleteMany({model:i,modelKey:r,where:a}));return g({method:`deleteMany`},`${P(n)} ${F(2,2)}`,`${I(`deleteMany`)} ${L(`DB Result`)}:`,{model:i,data:o}),o},consumeOne:async({model:e,where:t})=>{j++;let n=j,r=v(e),i=T(r),a=z({model:r,where:t,action:`consumeOne`});g({method:`consumeOne`},`${P(n)} ${F(1,3)}`,`${I(`consumeOne`)} ${L(`ConsumeOne`)}:`,{model:i,where:a});let o=await f(`db consumeOne ${i}`,{[l]:`consumeOne`,[s]:i},()=>H.consumeOne?H.consumeOne({model:i,modelKey:r,where:a}):W.consumeOne({model:i,modelKey:r,where:a}));g({method:`consumeOne`},`${P(n)} ${F(2,3)}`,`${I(`consumeOne`)} ${L(`DB Result`)}:`,{model:i,data:o});let c=o;return!m.disableTransformOutput&&o&&(c=await R(o,r,void 0,void 0)),g({method:`consumeOne`},`${P(n)} ${F(3,3)}`,`${I(`consumeOne`)} ${L(`Parsed Result`)}:`,{model:i,data:c}),c},incrementOne:async({model:e,where:t,increment:n,set:r})=>{let i=Object.keys(n).length>0,a=!!r&&Object.keys(r).length>0;if(!i&&!a)throw new d("incrementOne requires a non-empty `increment` or `set`; both were empty.");j++;let o=j,c=v(e),u=T(c),p=z({model:c,where:t,action:`incrementOne`});g({method:`incrementOne`},`${P(o)} ${F(1,3)}`,`${I(`incrementOne`)} ${L(`IncrementOne`)}:`,{model:u,where:p,increment:n,set:r});let h=m.mapKeysTransformInput??{},_={};for(let[e,t]of Object.entries(n))_[h[e]||E({model:c,field:e})]=t;let y;if(y=r&&!m.disableTransformInput?await N(r,c,`update`):r,Object.keys(_).length===0&&(!y||Object.keys(y).length===0))throw new d(`incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.`);let b=await f(`db incrementOne ${u}`,{[l]:`incrementOne`,[s]:u},()=>H.incrementOne?H.incrementOne({model:u,modelKey:c,where:p,increment:_,set:y}):W.incrementOne({model:u,modelKey:c,where:p,increment:_,set:y}));g({method:`incrementOne`},`${P(o)} ${F(2,3)}`,`${I(`incrementOne`)} ${L(`DB Result`)}:`,{model:u,data:b});let x=b;return!m.disableTransformOutput&&b&&(x=await R(b,c,void 0,void 0)),g({method:`incrementOne`},`${P(o)} ${F(3,3)}`,`${I(`incrementOne`)} ${L(`Parsed Result`)}:`,{model:u,data:x}),x},count:async({model:e,where:t})=>{j++;let n=j,r=v(e),i=T(r),a=z({model:r,where:t,action:`count`});g({method:`count`},`${P(n)} ${F(1,2)}`,`${I(`count`)}:`,{model:i,where:a});let o=await f(`db count ${i}`,{[l]:`count`,[s]:i},()=>H.count({model:i,modelKey:r,where:a}));return g({method:`count`},`${P(n)} ${F(2,2)}`,`${I(`count`)}:`,{model:i,data:o}),o},createSchema:H.createSchema?async(t,n)=>{let r=e(u);return u.secondaryStorage&&!u.session?.storeSessionInDatabase&&delete r.session,H.createSchema({file:n,tables:r})}:void 0,options:{adapterConfig:m,...H.options??{}},id:m.adapterId,...m.debugLogs?.isRunningAdapterTests?{adapterTestDebugLogs:{resetDebugLogs(){A=A.filter(e=>e.instance!==p)},printDebugLogs(){let e=`─`.repeat(80),t=A.filter(e=>e.instance===p);if(t.length===0)return;let n=t.reverse().map(e=>(e.args[0]=`\n${e.args[0]}`,[...e.args,`
4
+ `])).reduce((e,t)=>[...t,...e],[`\n${e}`]);console.log(...n)}}}:{}};return G};function P(e){return t()<8?`#${e}`:`${n.fg.magenta}#${e}${n.reset}`}function F(e,t){return`${n.bg.black}${n.fg.yellow}[${e}/${t}]${n.reset}`}function I(e){return`${n.bright}${e}${n.reset}`}function L(e){return`${n.dim}(${e})${n.reset}`}export{S as n,x as r,N as t};
@@ -0,0 +1,3 @@
1
+ import{N as e}from"./schemas-CYWNDEcx.mjs";const t=Symbol.for(`better-auth:global`);let n=null;const r={},i=`1.7.10`;function a(){return globalThis[t]||(globalThis[t]={version:i,epoch:1,context:r},n=globalThis[t]),n=globalThis[t],n.version!==i&&(n.version=i,n.epoch++),globalThis[t]}function o(){return a().context.endpointContextAsyncStorage?.getStore()}function s(){return a().version}function c(e){return e.toLowerCase()}function l(e){return new TextEncoder().encode(e).length}function u(e,t){let n=``,r=0;for(let i of e){let e=l(i);if(r+e>t)break;n+=i,r+=e}return n}function d(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function f(t,n){if(n.name!==void 0){if(n.name.trim().length===0)throw new e(`Database index names must contain at least one visible character.`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n.name))throw new e(`Database index names must start with a letter or underscore and contain only letters, numbers, and underscores.`);if(l(n.name)>63)throw new e(`Database index names must be at most 63 UTF-8 bytes.`);return n.name}let r=n.unique?`uidx`:`idx`,i=`${t}_${n.fields.join(`_`)}_${r}`;if(l(i)<=63)return i;let a=`_${d(i)}_${r}`;return`${u(i.slice(0,-r.length-1),63-l(a))}${a}`}function p(e,t,n){return f(e,{fields:[t],unique:n})}function ee({fields:t,indexes:n,tableName:r}){let i=(n??[]).map(n=>{if(n.fields.length===0)throw new e(`Index on table "${r}" must include at least one field.`);if(n.fields.length>16)throw new e(`Index on table "${r}" can include at most 16 fields so it works across supported databases.`);if(new Set(n.fields).size!==n.fields.length)throw new e(`Index on table "${r}" contains the same field more than once.`);if(n.unique&&n.fields.some(e=>t[e]?.required===!1))throw new e(`Unique index on table "${r}" can only include required fields so its behavior is consistent across databases.`);let i=n.fields.find(e=>{let n=t[e]?.type;return n===`json`||n===`string[]`||n===`number[]`});if(i)throw new e(`Index on table "${r}" references field "${i}", whose type is not portably indexable.`);let a=n=>{let i=t[n];if(!i)throw new e(`Index on table "${r}" references unknown field "${n}".`);return i.fieldName||n},[o,...s]=n.fields,l=[a(o),...s.map(a)];if(new Set(l.map(c)).size!==l.length)throw new e(`Index on table "${r}" resolves more than one field to the same database column.`);return{columns:l,name:f(r,{...n,fields:l}),unique:n.unique}}),a=/* @__PURE__ */ new Map,o=[];for(let t of i){let n=JSON.stringify([t.columns,t.unique??!1]),i=c(t.name),s=a.get(i);if(s&&s!==n)throw new e(`Database index name "${t.name}" identifies more than one index on table "${r}".`);s||(a.set(i,n),o.push(t))}return o}function te({columnName:e,dialect:t,fields:n,indexes:r}){let i=new Map(Object.entries(n).map(([e,t])=>[t.fieldName||e,t])),a=r.filter(t=>t.columns.includes(e));if(a.length===0)return;let o=t===`mysql`?3072:1700,s=t===`mysql`?4:1,c=t===`mysql`?191:255;return a.reduce((e,t)=>{let n=t.columns.filter(e=>{let t=i.get(e)?.type;return t===`string`||Array.isArray(t)}).length;if(n===0)return e;let r=(t.columns.length-n)*16,a=Math.floor(Math.max(1,o-r)/s/n);return Math.min(e,a)},c)}function ne(t){let n=/* @__PURE__ */ new Map;for(let r of t){let t=n.get(r.tableName);if(t){if(t.indexes.length>0||(r.indexes?.length??0)>0)throw new e(`Database schema resolves more than one indexed logical table to "${r.tableName}". Define table-level indexes through one logical schema key instead of aliasing multiple keys to the same database table.`);Object.assign(t.fields,r.fields);continue}let i={fields:{},indexes:[],tableName:r.tableName};Object.assign(i.fields,r.fields),i.indexes.push(...r.indexes??[]),n.set(r.tableName,i)}let r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,a=new Map([...n.keys()].map(e=>[c(e),e])),o=/* @__PURE__ */ new Map;for(let t of n.values())for(let[n,r]of Object.entries(t.fields)){if(!r.index&&!r.unique)continue;let i=p(t.tableName,r.fieldName||n,r.unique??!1),s=c(i);if(a.has(s))throw new e(`Database index name "${i}" conflicts with a table name. Index and table names must be unique across the schema.`);let l=o.get(s);if(l)throw new e(`Database field-level index name "${i}" is used by both table "${l}" and table "${t.tableName}".`);o.set(s,t.tableName)}for(let t of n.values()){let n=ee(t);r.set(t.tableName,[...n]);for(let r of n){let n=c(r.name);if(a.has(n))throw new e(`Database index name "${r.name}" conflicts with a table name. Index and table names must be unique across the schema.`);let s=o.get(n);if(s)throw new e(`Database index name "${r.name}" is already reserved by field-level index metadata on table "${s}". Remove the duplicate table-level index or give it a distinct name.`);let l=i.get(n);if(l&&l!==t.tableName)throw new e(`Database index name "${r.name}" is used by both table "${l}" and table "${t.tableName}". Index names must be unique across the schema.`);i.set(n,t.tableName)}}return r}function re(...e){let t=[],n=/* @__PURE__ */ new Set;for(let r of e.flatMap(e=>e??[])){let e=JSON.stringify([r.name??null,r.fields,r.unique??!1]);n.has(e)||(n.add(e),t.push(r))}return t}const ie=e=>{let t=(e.plugins??[]).reduce((e,t)=>{let n=t.schema;if(!n)return e;for(let[t,r]of Object.entries(n))e[t]={fields:{...e[t]?.fields,...r.fields},indexes:re(e[t]?.indexes,r.indexes),modelName:r.modelName||t,disableMigrations:r.disableMigration??e[t]?.disableMigrations};return e},{}),n=e.rateLimit?.storage===`database`,r={rateLimit:{modelName:e.rateLimit?.modelName||`rateLimit`,fields:{key:{type:`string`,unique:!0,required:!0,fieldName:e.rateLimit?.fields?.key||`key`},count:{type:`number`,required:!0,fieldName:e.rateLimit?.fields?.count||`count`},lastRequest:{type:`number`,bigint:!0,required:!0,fieldName:e.rateLimit?.fields?.lastRequest||`lastRequest`,defaultValue:()=>Date.now()}}}},{user:i,session:a,account:o,verification:s,...c}=t,l={verification:{modelName:e.verification?.modelName||`verification`,indexes:s?.indexes,fields:{identifier:{type:`string`,required:!0,fieldName:e.verification?.fields?.identifier||`identifier`,index:!0},value:{type:`string`,required:!0,fieldName:e.verification?.fields?.value||`value`},expiresAt:{type:`date`,required:!0,fieldName:e.verification?.fields?.expiresAt||`expiresAt`},createdAt:{type:`date`,required:!0,defaultValue:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,required:!0,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.updatedAt||`updatedAt`},...s?.fields,...e.verification?.additionalFields},order:4}},u={session:{modelName:e.session?.modelName||`session`,indexes:a?.indexes,fields:{expiresAt:{type:`date`,required:!0,fieldName:e.session?.fields?.expiresAt||`expiresAt`},token:{type:`string`,required:!0,fieldName:e.session?.fields?.token||`token`,unique:!0},createdAt:{type:`date`,required:!0,fieldName:e.session?.fields?.createdAt||`createdAt`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.session?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},ipAddress:{type:`string`,required:!1,fieldName:e.session?.fields?.ipAddress||`ipAddress`},userAgent:{type:`string`,required:!1,fieldName:e.session?.fields?.userAgent||`userAgent`},userId:{type:`string`,fieldName:e.session?.fields?.userId||`userId`,references:{model:`user`,field:`id`,onDelete:`cascade`},required:!0,index:!0},...a?.fields,...e.session?.additionalFields},order:2}};return{user:{modelName:e.user?.modelName||`user`,indexes:i?.indexes,fields:{name:{type:`string`,required:!0,fieldName:e.user?.fields?.name||`name`,sortable:!0},email:{type:`string`,unique:!0,required:!0,fieldName:e.user?.fields?.email||`email`,sortable:!0},emailVerified:{type:`boolean`,defaultValue:!1,required:!0,fieldName:e.user?.fields?.emailVerified||`emailVerified`,input:!1},image:{type:`string`,required:!1,fieldName:e.user?.fields?.image||`image`},createdAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.updatedAt||`updatedAt`},...i?.fields,...e.user?.additionalFields},order:1},...!e.secondaryStorage||e.session?.storeSessionInDatabase?u:{},account:{modelName:e.account?.modelName||`account`,indexes:o?.indexes,fields:{accountId:{type:`string`,required:!0,fieldName:e.account?.fields?.accountId||`accountId`},providerId:{type:`string`,required:!0,fieldName:e.account?.fields?.providerId||`providerId`},userId:{type:`string`,references:{model:`user`,field:`id`,onDelete:`cascade`},required:!0,fieldName:e.account?.fields?.userId||`userId`,index:!0},accessToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.accessToken||`accessToken`},refreshToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshToken||`refreshToken`},idToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.idToken||`idToken`},accessTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||`accessTokenExpiresAt`},refreshTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshTokenExpiresAt||`refreshTokenExpiresAt`},scope:{type:`string`,required:!1,fieldName:e.account?.fields?.scope||`scope`},password:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.password||`password`},createdAt:{type:`date`,required:!0,fieldName:e.account?.fields?.createdAt||`createdAt`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.account?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},...o?.fields,...e.account?.additionalFields},order:3},...!e.secondaryStorage||e.verification?.storeInDatabase?l:{},...c,...n?r:{}}};function m(e){let t=ie(e);return{indexesByTable:ne(Object.values(t).filter(e=>!(`disableMigrations`in e)||!e.disableMigrations).map(e=>({fields:e.fields,indexes:`indexes`in e?e.indexes:void 0,tableName:e.modelName}))),tables:t}}const ae=e=>m(e).tables,h=Object.create(null),g=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?h:globalThis),_=new Proxy(h,{get(e,t){return g()[t]??h[t]},has(e,t){return t in g()||t in h},set(e,t,n){let r=g(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=g(!0);return delete n[t],!0},ownKeys(){let e=g(!0);return Object.keys(e)}});function oe(e){return e?e!==`false`:!1}const v=_.NODE_ENV??``,se=v===`production`,ce=()=>v===`dev`||v===`development`,le=()=>v===`test`||oe(_.TEST);function y(e,t){return typeof process<`u`&&process.env?process.env[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}function ue(e,t=!0){let n=y(e);return n?n!==`0`&&n.toLowerCase()!==`false`&&n!==``:t}const de=Object.freeze({get BETTER_AUTH_SECRET(){return y(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return y(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return y(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return y(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return y(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return y(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return y(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}}),b={eterm:4,cons25:4,console:4,cygwin:4,dtterm:4,gnome:4,hurd:4,jfbterm:4,konsole:4,kterm:4,mlterm:4,mosh:24,putty:4,st:4,"rxvt-unicode-24bit":24,terminator:24,"xterm-kitty":24},fe=new Map(Object.entries({APPVEYOR:8,BUILDKITE:8,CIRCLECI:24,DRONE:8,GITEA_ACTIONS:24,GITHUB_ACTIONS:24,GITLAB_CI:8,TRAVIS:8})),pe=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];function x(){if(y(`FORCE_COLOR`)!==void 0)switch(y(`FORCE_COLOR`)){case``:case`1`:case`true`:return 4;case`2`:return 8;case`3`:return 24;default:return 1}if(y(`NODE_DISABLE_COLORS`)!==void 0&&y(`NODE_DISABLE_COLORS`)!==``||y(`NO_COLOR`)!==void 0&&y(`NO_COLOR`)!==``||y(`TERM`)===`dumb`)return 1;if(y(`TMUX`))return 24;if(`TF_BUILD`in _&&`AGENT_NAME`in _)return 4;if(`CI`in _){for(let{0:e,1:t}of fe)if(e in _)return t;return y(`CI_NAME`)===`codeship`?8:1}if(`TEAMCITY_VERSION`in _)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(y(`TEAMCITY_VERSION`))===null?1:4;switch(y(`TERM_PROGRAM`)){case`iTerm.app`:return!y(`TERM_PROGRAM_VERSION`)||/^[0-2]\./.exec(y(`TERM_PROGRAM_VERSION`))!==null?8:24;case`HyperTerm`:case`MacTerm`:return 24;case`Apple_Terminal`:return 8}if(y(`COLORTERM`)===`truecolor`||y(`COLORTERM`)===`24bit`)return 24;if(y(`TERM`)){if(/truecolor/.exec(y(`TERM`))!==null)return 24;if(/^xterm-256/.exec(y(`TERM`))!==null)return 8;let e=y(`TERM`).toLowerCase();if(b[e])return b[e];if(pe.some(t=>t.exec(e)!==null))return 4}return y(`COLORTERM`)?4:1}const S={reset:`\x1B[0m`,bright:`\x1B[1m`,dim:`\x1B[2m`,undim:`\x1B[22m`,underscore:`\x1B[4m`,blink:`\x1B[5m`,reverse:`\x1B[7m`,hidden:`\x1B[8m`,fg:{black:`\x1B[30m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,magenta:`\x1B[35m`,cyan:`\x1B[36m`,white:`\x1B[37m`},bg:{black:`\x1B[40m`,red:`\x1B[41m`,green:`\x1B[42m`,yellow:`\x1B[43m`,blue:`\x1B[44m`,magenta:`\x1B[45m`,cyan:`\x1B[46m`,white:`\x1B[47m`}},C=[`debug`,`info`,`success`,`warn`,`error`];function w(e,t){return C.indexOf(t)>=C.indexOf(e)}const me={info:S.fg.blue,success:S.fg.green,warn:S.fg.yellow,error:S.fg.red,debug:S.fg.magenta},he=(e,t,n)=>{let r=(/* @__PURE__ */ new Date()).toISOString();return n?`${S.dim}${r}${S.reset} ${me[e]}${e.toUpperCase()}${S.reset} ${S.bright}[Better Auth]:${S.reset} ${t}`:`${r} ${e.toUpperCase()} [Better Auth]: ${t}`},T=e=>{let t=e?.disabled!==!0,n=e?.level??`warn`,r=e?.disableColors===void 0?x()!==1:!e.disableColors,i=(i,a,o=[])=>{if(!t||!w(n,i))return;let s=he(i,a,r);!e||typeof e.log!=`function`?i===`error`?console.error(s,...o):i===`warn`?console.warn(s,...o):console.log(s,...o):e.log(i===`success`?`info`:i,a,...o)};return{...Object.fromEntries(C.map(e=>[e,(...[t,...n])=>i(e,t,n)])),get level(){return n}}},ge=T(),E=()=>{let e=o()?.context.logger;return e&&e!==D?e:ge},D={debug:(...e)=>E().debug(...e),info:(...e)=>E().info(...e),success:(...e)=>E().success(...e),warn:(...e)=>E().warn(...e),error:(...e)=>E().error(...e),get level(){return E().level}};function O(e){switch(e){case`a-z`:return`abcdefghijklmnopqrstuvwxyz`;case`A-Z`:return`ABCDEFGHIJKLMNOPQRSTUVWXYZ`;case`0-9`:return`0123456789`;case`-_`:return`-_`;default:throw Error(`Unsupported alphabet: ${e}`)}}function k(...e){let t=e.map(O).join(``);if(t.length===0)throw Error(`No valid characters provided for random string generation.`);let n=t.length;return(e,...r)=>{if(e<=0)throw Error(`Length must be a positive integer.`);let i=t,a=n;r.length>0&&(i=r.map(O).join(``),a=i.length);let o=Math.floor(256/a)*a,s=new Uint8Array(e*2),c=s.length,l=``,u=c,d;for(;l.length<e;)u>=c&&(crypto.getRandomValues(s),u=0),d=s[u++],d<o&&(l+=i[d%a]);return l}}function A(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const j=e=>e?`"${e}" `:``;function M(e,t=``){if(typeof e!=`number`)throw TypeError(j(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(j(t)+`expected integer >= 0, got `+e);return e}function N(e,t,n=``){if(A(e)&&(t===void 0||e.length===t))return e;t!==void 0&&M(t,`length`);let r=A(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=j(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function _e(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(M(e.outputLen),M(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}const ve=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},P=(e,t)=>{ve(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function ye(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function be(e,t){N(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function F(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function xe(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Se(e,t){return e<<32-t|e>>>t}const I=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Ce=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function we(e){if(N(e),I)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Ce[e[n]];return t}function L(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Te(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(I)try{return Uint8Array.fromHex(e)}catch(e){throw e instanceof SyntaxError?RangeError(e.message):e}let t=e.length,n=t/2;if(t%2)throw RangeError(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=L(e.charCodeAt(i)),a=L(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw RangeError(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Ee(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{F(t)}}function De(e,t,n=`opts`){return P(e,`defaults`),t!==void 0&&P(t,n),Object.assign(Object.create(null),e,t)}function Oe(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=De({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const ke=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Ae(e){return typeof e==`string`?new TextEncoder().encode(e):!ArrayBuffer.isView(e)||e.buffer instanceof ArrayBuffer?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function R(e){return typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}function z(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function B(e,t,n){let r=``,i=0,a=0;for(let n of e)for(i=i<<8|n,a+=8;a>=6;)a-=6,r+=t[i>>a&63];if(a>0&&(r+=t[i<<6-a&63]),n){let e=(4-r.length%4)%4;r+=`=`.repeat(e)}return r}function V(e,t){let n=/* @__PURE__ */ new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);let r=[],i=0,a=0;for(let t of e){if(t===`=`)break;let e=n.get(t);if(e===void 0)throw Error(`Invalid Base64 character: ${t}`);i=i<<6|e,a+=6,a>=8&&(a-=8,r.push(i>>a&255))}return Uint8Array.from(r)}const je={encode(e,t={}){let n=z(!1);return B(R(e),n,t.padding??!0)},decode(e){typeof e!=`string`&&(e=new TextDecoder().decode(e));let t=z(e.includes(`-`)||e.includes(`_`));return V(e,t)}},H={encode(e,t={}){let n=z(!0);return B(R(e),n,t.padding??!0)},decode(e){return V(e,z(e.includes(`-`)||e.includes(`_`)))}},Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;function U(e){if(typeof e==`string`&&Me.test(e)){let t=new Date(e);if(!isNaN(t.getTime()))return t}return e}function W(e){if(e==null)return e;if(typeof e==`string`)return U(e);if(e instanceof Date)return e;if(Array.isArray(e))return e.map(W);if(typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=W(e[n]);return t}return e}function Ne(e){try{return typeof e==`string`?JSON.parse(e,(e,t)=>U(t)):e==null?null:W(e)}catch(e){return D.error(`Error parsing JSON`,{error:e}),null}}const G=e=>Te(e),K={encode:e=>{let t=R(e);if(t.byteLength===0)return``;let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n},decode:e=>e?typeof e==`string`?new TextDecoder().decode(G(e)):new TextDecoder().decode(e):``,toBytes:G},Pe=`db.collection.name`,Fe=`db.operation.name`,q=`http.response.status_code`,Ie=`http.route`;function Le(){let e={end(){},setAttribute(e,t){},setStatus(e){},recordException(e){},updateName(t){return e}};return e}function Re(e){function t(t,...n){let r=n[n.length-1];return r(e)}return{startActiveSpan:t}}function ze(){let e=Re(Le());return{getTracer(t,n){return e},getActiveSpan(){}}}function Be(){return{SpanStatusCode:{UNSET:0,OK:1,ERROR:2},trace:ze()}}const Ve=Be();function He(e,t,n){return n()}let Ue,J;async function We(){try{J=await import(`./esm-CdWTLqG7.mjs`)}catch{}}function Y(){return Ue||=We(),J??Ve}function Ge(e){if(typeof e==`object`&&e&&`name`in e&&e.name===`APIError`&&`statusCode`in e){let t=e.statusCode;return t>=300&&t<400}return!1}function X(e,t){let{SpanStatusCode:n}=Y();Ge(t)?(e.setAttribute(q,t.statusCode),e.setStatus({code:n.OK})):(e.recordException(t),e.setStatus({code:n.ERROR,message:String(t?.message??t)})),e.end()}function Ke(e,t,n){let{trace:r}=Y();return r.getTracer(`better-auth`,`1.7.10`).startActiveSpan(e,{attributes:t},e=>{try{let t=n();return t instanceof Promise?t.then(t=>(e.end(),t)).catch(t=>{throw X(e,t),t}):(e.end(),t)}catch(t){throw X(e,t),t}})}function qe(e){return e.experimental?.instrumentation?.enabled===!1?He:Ke}const Z=e=>k(`a-z`,`A-Z`,`0-9`)(e||32),Q=({usePlural:t,schema:n})=>r=>{let i=e=>n[e]?e:Object.entries(n).find(([t,n])=>n.modelName===e)?.[0];if(t&&r.charAt(r.length-1)===`s`){let e=i(r.slice(0,-1));if(e)return e}let a=i(r);if(!a)throw new e(`Model "${r}" not found in schema`);return a};let $=!1;function Je(e,t){let n=t.advanced?.database?.generateId;if(n===`serial`&&!$&&($=!0,D.warn('Single-use checks (such as SAML assertion IDs, DPoP proofs, and private_key_jwt assertions) need string ids and are not enforced with `advanced.database.generateId: "serial"`.')),n!==`uuid`)return H.encode(e,{padding:!1});let r=e.slice(0,16);r[6]=r[6]&15|80,r[8]=r[8]&63|128;let i=K.encode(r);return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}const Ye=({usePlural:e,schema:t,disableIdGeneration:n,options:r,customIdGenerator:i,supportsUUIDs:a})=>{let o=Q({usePlural:e,schema:t});return({customModelName:e,forceAllowId:t})=>{let s=r.advanced?.database?.generateId===`serial`,c=r.advanced?.database?.generateId===`uuid`,l=n||s&&!t?!1:!c||!a,u=o(e??`id`);return{type:s?`number`:`string`,required:!!l,...l?{defaultValue(){if(n)return;let e=r.advanced?.database?.generateId;if(e!==!1&&e!==`serial`)return typeof e==`function`?e({model:u}):e===`uuid`?crypto.randomUUID():i?i({model:u}):Z()}}:{},transform:{input:e=>{if(e){if(s){let t=Number(e);return isNaN(t)?void 0:t}if(c){if(l&&!t)return e;if(n)return;if(t&&typeof e==`string`){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))return e;{let e=(/* @__PURE__ */ Error()).stack?.split(`
2
+ `).filter((e,t)=>t!==1).join(`
3
+ `).replace(`Error:`,``);D.warn("[Adapter Factory] - Invalid UUID value for field `id` provided when `forceAllowId` is true. Generating a new UUID.",e)}}return a?void 0:typeof e!=`string`&&!a?crypto.randomUUID():void 0}return e}},output:e=>{if(e)return String(e)}}}}};export{D as A,ae as B,xe as C,k as D,Ee as E,ue as F,a as G,p as H,y as I,o as K,ce as L,x as M,de as N,S as O,_ as P,se as R,Oe as S,Se as T,te as U,m as V,c as W,_e as _,qe as a,we as b,q as c,Ne as d,je as f,ye as g,N as h,Z as i,w as j,T as k,Ie as l,Ae as m,Ye as n,Pe as o,H as p,s as q,Q as r,Fe as s,Je as t,K as u,M as v,ke as w,F as x,be as y,le as z};