alchemy 0.73.0 → 0.74.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.
- package/bin/alchemy.js +3326 -4424
- package/bin/alchemy.ts +2 -0
- package/bin/commands/configure.ts +4 -1
- package/bin/commands/util.ts +510 -0
- package/bin/services/execute-alchemy.ts +2 -1
- package/bin/trpc.ts +22 -16
- package/lib/cloudflare/bound.d.ts +1 -1
- package/lib/cloudflare/bound.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +6 -14
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +12 -4
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/tanstack-start/tanstack-start.d.ts.map +1 -1
- package/lib/cloudflare/tanstack-start/tanstack-start.js +8 -1
- package/lib/cloudflare/tanstack-start/tanstack-start.js.map +1 -1
- package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
- package/lib/cloudflare/vite/plugin.js +23 -9
- package/lib/cloudflare/vite/plugin.js.map +1 -1
- package/lib/planetscale/branch.d.ts +6 -0
- package/lib/planetscale/branch.d.ts.map +1 -1
- package/lib/planetscale/branch.js +2 -1
- package/lib/planetscale/branch.js.map +1 -1
- package/lib/planetscale/database.d.ts +6 -0
- package/lib/planetscale/database.d.ts.map +1 -1
- package/lib/planetscale/database.js +2 -1
- package/lib/planetscale/database.js.map +1 -1
- package/lib/planetscale/password.d.ts +6 -0
- package/lib/planetscale/password.d.ts.map +1 -1
- package/lib/planetscale/password.js +2 -1
- package/lib/planetscale/password.js.map +1 -1
- package/lib/planetscale/role.d.ts +6 -0
- package/lib/planetscale/role.d.ts.map +1 -1
- package/lib/planetscale/role.js +2 -1
- package/lib/planetscale/role.js.map +1 -1
- package/lib/prisma-postgres/api/client.gen.d.ts +13 -0
- package/lib/prisma-postgres/api/client.gen.d.ts.map +1 -0
- package/lib/prisma-postgres/api/client.gen.js +6 -0
- package/lib/prisma-postgres/api/client.gen.js.map +1 -0
- package/lib/prisma-postgres/api/sdk.gen.d.ts +120 -0
- package/lib/prisma-postgres/api/sdk.gen.d.ts.map +1 -0
- package/lib/prisma-postgres/api/sdk.gen.js +219 -0
- package/lib/prisma-postgres/api/sdk.gen.js.map +1 -0
- package/lib/prisma-postgres/api/types.gen.d.ts +957 -0
- package/lib/prisma-postgres/api/types.gen.d.ts.map +1 -0
- package/lib/prisma-postgres/api/types.gen.js +2 -0
- package/lib/prisma-postgres/api/types.gen.js.map +1 -0
- package/lib/prisma-postgres/api.d.ts +29 -0
- package/lib/prisma-postgres/api.d.ts.map +1 -0
- package/lib/prisma-postgres/api.js +49 -0
- package/lib/prisma-postgres/api.js.map +1 -0
- package/lib/prisma-postgres/connection.d.ts +87 -0
- package/lib/prisma-postgres/connection.d.ts.map +1 -0
- package/lib/prisma-postgres/connection.js +73 -0
- package/lib/prisma-postgres/connection.js.map +1 -0
- package/lib/prisma-postgres/database.d.ts +104 -0
- package/lib/prisma-postgres/database.d.ts.map +1 -0
- package/lib/prisma-postgres/database.js +88 -0
- package/lib/prisma-postgres/database.js.map +1 -0
- package/lib/prisma-postgres/index.d.ts +5 -0
- package/lib/prisma-postgres/index.d.ts.map +1 -0
- package/lib/prisma-postgres/index.js +5 -0
- package/lib/prisma-postgres/index.js.map +1 -0
- package/lib/prisma-postgres/project.d.ts +69 -0
- package/lib/prisma-postgres/project.d.ts.map +1 -0
- package/lib/prisma-postgres/project.js +62 -0
- package/lib/prisma-postgres/project.js.map +1 -0
- package/lib/prisma-postgres/workspace.d.ts +18 -0
- package/lib/prisma-postgres/workspace.d.ts.map +1 -0
- package/lib/prisma-postgres/workspace.js +21 -0
- package/lib/prisma-postgres/workspace.js.map +1 -0
- package/lib/util/http.d.ts +5 -2
- package/lib/util/http.d.ts.map +1 -1
- package/lib/util/http.js +71 -26
- package/lib/util/http.js.map +1 -1
- package/package.json +9 -1
- package/src/cloudflare/bound.ts +3 -1
- package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +10 -13
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +12 -4
- package/src/cloudflare/tanstack-start/tanstack-start.ts +9 -1
- package/src/cloudflare/vite/plugin.ts +24 -10
- package/src/planetscale/branch.ts +9 -1
- package/src/planetscale/database.ts +9 -1
- package/src/planetscale/password.ts +9 -1
- package/src/planetscale/role.ts +9 -1
- package/src/prisma-postgres/api/client.gen.ts +27 -0
- package/src/prisma-postgres/api/sdk.gen.ts +437 -0
- package/src/prisma-postgres/api/types.gen.ts +1096 -0
- package/src/prisma-postgres/api.ts +79 -0
- package/src/prisma-postgres/connection.ts +154 -0
- package/src/prisma-postgres/database.ts +178 -0
- package/src/prisma-postgres/index.ts +4 -0
- package/src/prisma-postgres/project.ts +131 -0
- package/src/prisma-postgres/workspace.ts +27 -0
- package/src/util/http.ts +79 -33
- package/workers/cloudflare-state-store.js +1 -1
- package/workers/tunnel-proxy.js +1 -1
package/src/util/http.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { once } from "node:events";
|
|
1
2
|
import http from "node:http";
|
|
2
3
|
import type { AddressInfo } from "node:net";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { type Duplex, Readable } from "node:stream";
|
|
5
|
+
import { WebSocket, WebSocketServer } from "ws";
|
|
5
6
|
|
|
6
7
|
export class HTTPServer {
|
|
7
8
|
httpServer = http.createServer();
|
|
@@ -11,19 +12,22 @@ export class HTTPServer {
|
|
|
11
12
|
websocket?: (request: Request) => Promise<WebSocket>;
|
|
12
13
|
fetch: (request: Request) => Promise<Response>;
|
|
13
14
|
}) {
|
|
15
|
+
const websocket = options.websocket;
|
|
16
|
+
if (websocket) {
|
|
17
|
+
const wss = new WebSocketServer({ noServer: true });
|
|
18
|
+
this.webSocketServer = wss;
|
|
19
|
+
this.httpServer.on(
|
|
20
|
+
"upgrade",
|
|
21
|
+
createUpgradeHandler({
|
|
22
|
+
wss,
|
|
23
|
+
createServerWebSocket: (req) => websocket(toWebRequest(req)),
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
14
27
|
this.httpServer.on("request", async (req, res) => {
|
|
15
28
|
const response = await options.fetch(toWebRequest(req));
|
|
16
29
|
await writeNodeResponse(res, response);
|
|
17
30
|
});
|
|
18
|
-
const websocket = options.websocket;
|
|
19
|
-
if (websocket) {
|
|
20
|
-
const webSocketServer = new WebSocketServer({ noServer: true });
|
|
21
|
-
this.webSocketServer = webSocketServer;
|
|
22
|
-
this.httpServer.on("upgrade", async (req, socket, head) => {
|
|
23
|
-
const ws = await websocket(toWebRequest(req));
|
|
24
|
-
coupleWebSocket(webSocketServer, req, socket, head, ws);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
listen(port?: number) {
|
|
@@ -48,32 +52,74 @@ export class HTTPServer {
|
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
async close() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
this.webSocketServer?.close();
|
|
56
|
+
this.httpServer.close();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function createUpgradeHandler(props: {
|
|
61
|
+
wss: WebSocketServer;
|
|
62
|
+
createServerWebSocket: (req: http.IncomingMessage) => Promise<WebSocket>;
|
|
63
|
+
}) {
|
|
64
|
+
async function waitForWebSocketOpen(server: WebSocket) {
|
|
65
|
+
if (server.readyState === WebSocket.CONNECTING) {
|
|
66
|
+
// Wait for client to be open before accepting worker pair (which would
|
|
67
|
+
// release buffered messages). Note this will throw if an "error" event is
|
|
68
|
+
// dispatched (https://github.com/cloudflare/miniflare/issues/229).
|
|
69
|
+
await once(server, "open");
|
|
70
|
+
} else if (server.readyState >= WebSocket.CLOSING) {
|
|
71
|
+
throw new TypeError("Incoming WebSocket connection already closed.");
|
|
56
72
|
}
|
|
57
|
-
|
|
58
|
-
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function forwardWebSocketEvents(from: WebSocket, to: WebSocket) {
|
|
76
|
+
const ready = waitForWebSocketOpen(to);
|
|
77
|
+
const ifOpen = (fn: () => void) => {
|
|
78
|
+
// Wait for target to be open before sending message
|
|
79
|
+
void ready.then(() => {
|
|
80
|
+
// Silently discard messages received after close:
|
|
81
|
+
// https://www.rfc-editor.org/rfc/rfc6455#section-1.4
|
|
82
|
+
if (to.readyState !== WebSocket.OPEN) return;
|
|
83
|
+
|
|
84
|
+
fn();
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
from.on("message", (event, binary) => {
|
|
88
|
+
ifOpen(() => {
|
|
89
|
+
to.send(event, { binary });
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
from.on("close", (code, reason) => {
|
|
93
|
+
// Handle close events similar to Miniflare:
|
|
94
|
+
// https://github.com/cloudflare/workers-sdk/blob/88f081f4e2bd299e715d18bcfe181971f534ff76/packages/miniflare/src/http/websocket.ts#L276-L282
|
|
95
|
+
|
|
96
|
+
ifOpen(() => {
|
|
97
|
+
if (code === 1005 /* No Status Received */) {
|
|
98
|
+
to.close();
|
|
99
|
+
} else if (code === 1006 /* Abnormal Closure */) {
|
|
100
|
+
to.terminate();
|
|
101
|
+
} else {
|
|
102
|
+
to.close(code, reason);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
from.on("error", (error) => {
|
|
107
|
+
console.error("Websocket error:", error);
|
|
108
|
+
|
|
109
|
+
ifOpen(() => {
|
|
110
|
+
to.terminate();
|
|
111
|
+
});
|
|
59
112
|
});
|
|
60
113
|
}
|
|
61
|
-
}
|
|
62
114
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
client.on("message", (event, binary) => server.send(event, { binary }));
|
|
72
|
-
client.on("close", (code, reason) => server.close(code, reason));
|
|
73
|
-
server.on("message", (event, binary) => client.send(event, { binary }));
|
|
74
|
-
server.on("close", (code, reason) => client.close(code, reason));
|
|
75
|
-
wss.emit("connection", client, req);
|
|
76
|
-
});
|
|
115
|
+
return async (req: http.IncomingMessage, socket: Duplex, head: Buffer) => {
|
|
116
|
+
const server = await props.createServerWebSocket(req);
|
|
117
|
+
props.wss.handleUpgrade(req, socket, head, async (client) => {
|
|
118
|
+
forwardWebSocketEvents(server, client);
|
|
119
|
+
forwardWebSocketEvents(client, server);
|
|
120
|
+
props.wss.emit("connection", client, req);
|
|
121
|
+
});
|
|
122
|
+
};
|
|
77
123
|
}
|
|
78
124
|
|
|
79
125
|
export function toWebRequest(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Es=Object.defineProperty;var js=(r,e)=>{for(var t in e)Es(r,t,{get:e[t],enumerable:!0})};import{DurableObject as Xs}from"cloudflare:workers";var l=Symbol.for("drizzle:entityKind"),ri=Symbol.for("drizzle:hasOwnEntityKind");function m(r,e){if(!r||typeof r!="object")return!1;if(r instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,l))throw new Error(`Class "${e.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=Object.getPrototypeOf(r).constructor;if(t)for(;t;){if(l in t&&t[l]===e[l])return!0;t=Object.getPrototypeOf(t)}return!1}var pt=class{static[l]="ConsoleLogWriter";write(e){console.log(e)}},_e=class{static[l]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new pt}logQuery(e,t){let s=t.map(n=>{try{return JSON.stringify(n)}catch{return String(n)}}),i=s.length?` -- params: [${s.join(", ")}]`:"";this.writer.write(`Query: ${e}${i}`)}},De=class{static[l]="NoopLogger";logQuery(){}};var j=Symbol.for("drizzle:Name");var Re=Symbol.for("drizzle:Schema"),Ke=Symbol.for("drizzle:Columns"),Nr=Symbol.for("drizzle:ExtraConfigColumns"),yt=Symbol.for("drizzle:OriginalName"),gt=Symbol.for("drizzle:BaseName"),we=Symbol.for("drizzle:IsAlias"),Tr=Symbol.for("drizzle:ExtraConfigBuilder"),_s=Symbol.for("drizzle:IsDrizzleTable"),h=class{static[l]="Table";static Symbol={Name:j,Schema:Re,OriginalName:yt,Columns:Ke,ExtraConfigColumns:Nr,BaseName:gt,IsAlias:we,ExtraConfigBuilder:Tr};[j];[yt];[Re];[Ke];[Nr];[gt];[we]=!1;[_s]=!0;[Tr]=void 0;constructor(e,t,s){this[j]=this[yt]=e,this[Re]=t,this[gt]=s}};function se(r){return r[j]}function oe(r){return`${r[Re]??"public"}.${r[j]}`}var w=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}};var he=class{static[l]="ColumnBuilder";config;constructor(e,t,s){this.config={name:e,keyAsName:e==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:s,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===""&&(this.config.name=e)}};var Fe=class{static[l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:s,columns:i,foreignColumns:n}=e();return{name:s,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new bt(e,this)}},bt=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),i=t.map(u=>u.name),n=s.map(u=>u.name),a=[this.table[j],...i,s[0].table[j],...n];return e??`${a.join("_")}_fk`}};function Ie(r,...e){return r(...e)}function xt(r,e){return`${r[j]}_${e.join("_")}_unique`}var St=class{constructor(e,t){this.name=t,this.columns=e}static[l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new wt(e,this.columns,this.nullsNotDistinctConfig,this.name)}},$r=class{static[l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new St(e,this.name)}},wt=class{constructor(e,t,s,i){this.table=e,this.columns=t,this.name=i??xt(this.table,this.columns.map(n=>n.name)),this.nullsNotDistinct=s}static[l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}};function qr(r,e,t){for(let s=e;s<r.length;s++){let i=r[s];if(i==="\\"){s++;continue}if(i==='"')return[r.slice(e,s).replace(/\\/g,""),s+1];if(!t&&(i===","||i==="}"))return[r.slice(e,s).replace(/\\/g,""),s]}return[r.slice(e).replace(/\\/g,""),r.length]}function vr(r,e=0){let t=[],s=e,i=!1;for(;s<r.length;){let n=r[s];if(n===","){(i||s===e)&&t.push(""),i=!0,s++;continue}if(i=!1,n==="\\"){s+=2;continue}if(n==='"'){let[f,d]=qr(r,s+1,!0);t.push(f),s=d;continue}if(n==="}")return[t,s+1];if(n==="{"){let[f,d]=vr(r,s+1);t.push(f),s=d;continue}let[a,u]=qr(r,s,!1);t.push(a),s=u}return[t,s]}function Qr(r){let[e]=vr(r,1);return e}function Ct(r){return`{${r.map(e=>Array.isArray(e)?Ct(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}var de=class extends he{foreignKeyConfigs=[];static[l]="PgColumnBuilder";array(e){return new Tt(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:i})=>Ie((n,a)=>{let u=new Fe(()=>{let f=n();return{columns:[e],foreignColumns:[f]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)},s,i))}buildExtraConfigColumn(e){return new Nt(e,this.config)}},ae=class extends w{constructor(e,t){t.uniqueName||(t.uniqueName=xt(e,[t.name])),super(e,t),this.table=e}static[l]="PgColumn"},Nt=class extends ae{static[l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},Lr=class{static[l]="IndexedColumn";constructor(e,t,s,i){this.name=e,this.keyAsName=t,this.type=s,this.indexConfig=i}name;keyAsName;type;indexConfig},Tt=class extends de{static[l]="PgArrayBuilder";constructor(e,t,s){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=s}build(e){let t=this.config.baseBuilder.build(e);return new $t(e,this.config,t)}},$t=class r extends ae{constructor(e,t,s,i){super(e,t),this.baseColumn=s,this.range=i,this.size=t.size}size;static[l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size=="number"?this.size:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=Qr(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapToDriverValue(e,t=!1){let s=e.map(i=>i===null?null:m(this.baseColumn,r)?this.baseColumn.mapToDriverValue(i,!0):this.baseColumn.mapToDriverValue(i));return t?s:Ct(s)}};var Or=class extends de{static[l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new qt(e,this.config)}},qt=class extends ae{static[l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},Br=Symbol.for("drizzle:isPgEnum");function Pr(r){return!!r&&typeof r=="function"&&Br in r&&r[Br]===!0}var Ar=class extends de{static[l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new vt(e,this.config)}},vt=class extends ae{static[l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};var O=class{static[l]="Subquery";constructor(e,t,s,i=!1,n=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:s,isWith:i,usedTables:n}}},pe=class extends O{static[l]="WithSubquery"};var Er="0.44.5";var Qt,Lt,jr={startActiveSpan(r,e){return Qt?(Lt||(Lt=Qt.trace.getTracer("drizzle-orm",Er)),Ie((t,s)=>s.startActiveSpan(r,i=>{try{return e(i)}catch(n){throw i.setStatus({code:t.SpanStatusCode.ERROR,message:n instanceof Error?n.message:"Unknown error"}),n}finally{i.end()}}),Qt,Lt)):e()}};var T=Symbol.for("drizzle:ViewBaseConfig");var _r=class{static[l]="FakePrimitiveParam"};function Ot(r){return r!=null&&typeof r.getSQL=="function"}function Ds(r){let e={sql:"",params:[]};for(let t of r)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}var A=class{static[l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new p([this])}},p=class r{constructor(e){this.queryChunks=e;for(let t of e)if(m(t,h)){let s=t[h.Symbol.Schema];this.usedTables.push(s===void 0?t[h.Symbol.Name]:s+"."+t[h.Symbol.Name])}}static[l]="SQL";decoder=Rr;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return jr.startActiveSpan("drizzle.buildSQL",t=>{let s=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":s.sql,"drizzle.query.params":JSON.stringify(s.params)}),s})}buildQueryFromSourceParams(e,t){let s=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:i,escapeName:n,escapeParam:a,prepareTyping:u,inlineParams:f,paramStartIndex:d}=s;return Ds(e.map(c=>{if(m(c,A))return{sql:c.value.join(""),params:[]};if(m(c,xe))return{sql:n(c.value),params:[]};if(c===void 0)return{sql:"",params:[]};if(Array.isArray(c)){let y=[new A("(")];for(let[b,N]of c.entries())y.push(N),b<c.length-1&&y.push(new A(", "));return y.push(new A(")")),this.buildQueryFromSourceParams(y,s)}if(m(c,r))return this.buildQueryFromSourceParams(c.queryChunks,{...s,inlineParams:f||c.shouldInlineParams});if(m(c,h)){let y=c[h.Symbol.Schema],b=c[h.Symbol.Name];return{sql:y===void 0||c[we]?n(b):n(y)+"."+n(b),params:[]}}if(m(c,w)){let y=i.getColumnCasing(c);if(t.invokeSource==="indexes")return{sql:n(y),params:[]};let b=c.table[h.Symbol.Schema];return{sql:c.table[we]||b===void 0?n(c.table[h.Symbol.Name])+"."+n(y):n(b)+"."+n(c.table[h.Symbol.Name])+"."+n(y),params:[]}}if(m(c,I)){let y=c[T].schema,b=c[T].name;return{sql:y===void 0||c[T].isAlias?n(b):n(y)+"."+n(b),params:[]}}if(m(c,R)){if(m(c.value,ee))return{sql:a(d.value++,c),params:[c],typings:["none"]};let y=c.value===null?null:c.encoder.mapToDriverValue(c.value);if(m(y,r))return this.buildQueryFromSourceParams([y],s);if(f)return{sql:this.mapInlineParam(y,s),params:[]};let b=["none"];return u&&(b=[u(c.encoder)]),{sql:a(d.value++,y),params:[y],typings:b}}return m(c,ee)?{sql:a(d.value++,c),params:[c],typings:["none"]}:m(c,r.Aliased)&&c.fieldAlias!==void 0?{sql:n(c.fieldAlias),params:[]}:m(c,O)?c._.isWith?{sql:n(c._.alias),params:[]}:this.buildQueryFromSourceParams([new A("("),c._.sql,new A(") "),new xe(c._.alias)],s):Pr(c)?c.schema?{sql:n(c.schema)+"."+n(c.enumName),params:[]}:{sql:n(c.enumName),params:[]}:Ot(c)?c.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([c.getSQL()],s):this.buildQueryFromSourceParams([new A("("),c.getSQL(),new A(")")],s):f?{sql:this.mapInlineParam(c,s),params:[]}:{sql:a(d.value++,c),params:[c],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return"null";if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="string")return t(e);if(typeof e=="object"){let s=e.toString();return t(s==="[object Object]"?JSON.stringify(e):s)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return e===void 0?this:new r.Aliased(this,e)}mapWith(e){return this.decoder=typeof e=="function"?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},xe=class{constructor(e){this.value=e}static[l]="Name";brand;getSQL(){return new p([this])}};function Dr(r){return typeof r=="object"&&r!==null&&"mapToDriverValue"in r&&typeof r.mapToDriverValue=="function"}var Rr={mapFromDriverValue:r=>r},Kr={mapToDriverValue:r=>r},ki={...Rr,...Kr},R=class{constructor(e,t=Kr){this.value=e,this.encoder=t}static[l]="Param";brand;getSQL(){return new p([this])}};function o(r,...e){let t=[];(e.length>0||r.length>0&&r[0]!=="")&&t.push(new A(r[0]));for(let[s,i]of e.entries())t.push(i,new A(r[s+1]));return new p(t)}(r=>{function e(){return new p([])}r.empty=e;function t(f){return new p(f)}r.fromList=t;function s(f){return new p([new A(f)])}r.raw=s;function i(f,d){let c=[];for(let[y,b]of f.entries())y>0&&d!==void 0&&c.push(d),c.push(b);return new p(c)}r.join=i;function n(f){return new xe(f)}r.identifier=n;function a(f){return new ee(f)}r.placeholder=a;function u(f,d){return new R(f,d)}r.param=u})(o||(o={}));(r=>{class e{constructor(s,i){this.sql=s,this.fieldAlias=i}static[l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new e(this.sql,this.fieldAlias)}}r.Aliased=e})(p||(p={}));var ee=class{constructor(e){this.name=e}static[l]="Placeholder";getSQL(){return new p([this])}};function Ce(r,e){return r.map(t=>{if(m(t,ee)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}if(m(t,R)&&m(t.value,ee)){if(!(t.value.name in e))throw new Error(`No value for placeholder "${t.value.name}" was provided`);return t.encoder.mapToDriverValue(e[t.value.name])}return t})}var Rs=Symbol.for("drizzle:IsDrizzleView"),I=class{static[l]="View";[T];[Rs]=!0;constructor({name:e,schema:t,selectedFields:s,query:i}){this[T]={name:e,originalName:e,schema:t,selectedFields:s,query:i,isExisting:!i,isAlias:!1}}getSQL(){return new p([this])}};w.prototype.getSQL=function(){return new p([this])};h.prototype.getSQL=function(){return new p([this])};O.prototype.getSQL=function(){return new p([this])};function Bt(r,e,t){let s={},i=r.reduce((n,{path:a,field:u},f)=>{let d;m(u,w)?d=u:m(u,p)?d=u.decoder:d=u.sql.decoder;let c=n;for(let[y,b]of a.entries())if(y<a.length-1)b in c||(c[b]={}),c=c[b];else{let N=e[f],v=c[b]=N===null?null:d.mapFromDriverValue(N);if(t&&m(u,w)&&a.length===2){let S=a[0];S in s?typeof s[S]=="string"&&s[S]!==se(u.table)&&(s[S]=!1):s[S]=v===null?se(u.table):!1}}return n},{});if(t&&Object.keys(s).length>0)for(let[n,a]of Object.entries(s))typeof a=="string"&&!t[a]&&(i[n]=null);return i}function V(r,e){return Object.entries(r).reduce((t,[s,i])=>{if(typeof s!="string")return t;let n=e?[...e,s]:[s];return m(i,w)||m(i,p)||m(i,p.Aliased)?t.push({path:n,field:i}):m(i,h)?t.push(...V(i[h.Symbol.Columns],n)):t.push(...V(i,n)),t},[])}function Ne(r,e){let t=Object.keys(r),s=Object.keys(e);if(t.length!==s.length)return!1;for(let[i,n]of t.entries())if(n!==s[i])return!1;return!0}function Me(r,e){let t=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,i])=>m(i,p)||m(i,w)?[s,i]:[s,new R(i,r[h.Symbol.Columns][s])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}function Fr(r,e){for(let t of e)for(let s of Object.getOwnPropertyNames(t.prototype))s!=="constructor"&&Object.defineProperty(r.prototype,s,Object.getOwnPropertyDescriptor(t.prototype,s)||Object.create(null))}function ze(r){return r[h.Symbol.Columns]}function Te(r){return m(r,O)?r._.alias:m(r,I)?r[T].name:m(r,p)?void 0:r[h.Symbol.IsAlias]?r[h.Symbol.Name]:r[h.Symbol.BaseName]}function Y(r,e){return{name:typeof r=="string"&&r.length>0?r:"",config:typeof r=="object"?r:e}}var At=typeof TextDecoder>"u"?null:new TextDecoder;var Ir=Symbol.for("drizzle:PgInlineForeignKeys"),Mr=Symbol.for("drizzle:EnableRLS"),Ve=class extends h{static[l]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:Ir,EnableRLS:Mr});[Ir]=[];[Mr]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}};var Ue=class{static[l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Pt(e,this.columns,this.name)}},Pt=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}static[l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Ve.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};function K(r,e){return Dr(e)&&!Ot(r)&&!m(r,R)&&!m(r,ee)&&!m(r,w)&&!m(r,h)&&!m(r,I)?new R(r,e):r}var M=(r,e)=>o`${r} = ${K(e,r)}`,zr=(r,e)=>o`${r} <> ${K(e,r)}`;function te(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new p(e):new p([new A("("),o.join(e,new A(" and ")),new A(")")])}function Vr(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new p(e):new p([new A("("),o.join(e,new A(" or ")),new A(")")])}function Ur(r){return o`not ${r}`}var Jr=(r,e)=>o`${r} > ${K(e,r)}`,kr=(r,e)=>o`${r} >= ${K(e,r)}`,Wr=(r,e)=>o`${r} < ${K(e,r)}`,Hr=(r,e)=>o`${r} <= ${K(e,r)}`;function Je(r,e){return Array.isArray(e)?e.length===0?o`false`:o`${r} in ${e.map(t=>K(t,r))}`:o`${r} in ${K(e,r)}`}function Yr(r,e){return Array.isArray(e)?e.length===0?o`true`:o`${r} not in ${e.map(t=>K(t,r))}`:o`${r} not in ${K(e,r)}`}function Gr(r){return o`${r} is null`}function Zr(r){return o`${r} is not null`}function Xr(r){return o`exists ${r}`}function es(r){return o`not exists ${r}`}function ts(r,e,t){return o`${r} between ${K(e,r)} and ${K(t,r)}`}function rs(r,e,t){return o`${r} not between ${K(e,r)} and ${K(t,r)}`}function ss(r,e){return o`${r} like ${e}`}function is(r,e){return o`${r} not like ${e}`}function ns(r,e){return o`${r} ilike ${e}`}function os(r,e){return o`${r} not ilike ${e}`}function as(r){return o`${r} asc`}function ls(r){return o`${r} desc`}var ke=class{constructor(e,t,s){this.sourceTable=e,this.referencedTable=t,this.relationName=s,this.referencedTableName=t[h.Symbol.Name]}static[l]="Relation";referencedTableName;fieldName},Et=class{constructor(e,t){this.table=e,this.config=t}static[l]="Relations"},ie=class r extends ke{constructor(e,t,s,i){super(e,t,s?.relationName),this.config=s,this.isNullable=i}static[l]="One";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},$e=class r extends ke{constructor(e,t,s){super(e,t,s?.relationName),this.config=s}static[l]="Many";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}};function us(){return{and:te,between:ts,eq:M,exists:Xr,gt:Jr,gte:kr,ilike:ns,inArray:Je,isNull:Gr,isNotNull:Zr,like:ss,lt:Wr,lte:Hr,ne:zr,not:Ur,notBetween:rs,notExists:es,notLike:is,notIlike:os,notInArray:Yr,or:Vr,sql:o}}function cs(){return{sql:o,asc:as,desc:ls}}function ms(r,e){Object.keys(r).length===1&&"default"in r&&!m(r.default,h)&&(r=r.default);let t={},s={},i={};for(let[n,a]of Object.entries(r))if(m(a,h)){let u=oe(a),f=s[u];t[u]=n,i[n]={tsName:n,dbName:a[h.Symbol.Name],schema:a[h.Symbol.Schema],columns:a[h.Symbol.Columns],relations:f?.relations??{},primaryKey:f?.primaryKey??[]};for(let c of Object.values(a[h.Symbol.Columns]))c.primary&&i[n].primaryKey.push(c);let d=a[h.Symbol.ExtraConfigBuilder]?.(a[h.Symbol.ExtraConfigColumns]);if(d)for(let c of Object.values(d))m(c,Ue)&&i[n].primaryKey.push(...c.columns)}else if(m(a,Et)){let u=oe(a.table),f=t[u],d=a.config(e(a.table)),c;for(let[y,b]of Object.entries(d))if(f){let N=i[f];N.relations[y]=b,c&&N.primaryKey.push(...c)}else u in s||(s[u]={relations:{},primaryKey:c}),s[u].relations[y]=b}return{tables:i,tableNamesMap:t}}function Ks(r){return function(t,s){return new ie(r,t,s,s?.fields.reduce((i,n)=>i&&n.notNull,!0)??!1)}}function Fs(r){return function(t,s){return new $e(r,t,s)}}function fs(r,e,t){if(m(t,ie)&&t.config)return{fields:t.config.fields,references:t.config.references};let s=e[oe(t.referencedTable)];if(!s)throw new Error(`Table "${t.referencedTable[h.Symbol.Name]}" not found in schema`);let i=r[s];if(!i)throw new Error(`Table "${s}" not found in schema`);let n=t.sourceTable,a=e[oe(n)];if(!a)throw new Error(`Table "${n[h.Symbol.Name]}" not found in schema`);let u=[];for(let f of Object.values(i.relations))(t.relationName&&t!==f&&f.relationName===t.relationName||!t.relationName&&f.referencedTable===t.sourceTable)&&u.push(f);if(u.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${s}"`):new Error(`There are multiple relations between "${s}" and "${t.sourceTable[h.Symbol.Name]}". Please specify relation name`);if(u[0]&&m(u[0],ie)&&u[0].config)return{fields:u[0].config.references,references:u[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${t.fieldName}"`)}function hs(r){return{one:Ks(r),many:Fs(r)}}function We(r,e,t,s,i=n=>n){let n={};for(let[a,u]of s.entries())if(u.isJson){let f=e.relations[u.tsKey],d=t[a],c=typeof d=="string"?JSON.parse(d):d;n[u.tsKey]=m(f,ie)?c&&We(r,r[u.relationTableTsKey],c,u.selection,i):c.map(y=>We(r,r[u.relationTableTsKey],y,u.selection,i))}else{let f=i(t[a]),d=u.field,c;m(d,w)?c=d:m(d,p)?c=d.decoder:c=d.sql.decoder,n[u.tsKey]=f===null?null:c.mapFromDriverValue(f)}return n}var le=class{constructor(e){this.table=e}static[l]="ColumnAliasProxyHandler";get(e,t){return t==="table"?this.table:e[t]}},ye=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[l]="TableAliasProxyHandler";get(e,t){if(t===h.Symbol.IsAlias)return!0;if(t===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===h.Symbol.OriginalName)return this.alias;if(t===T)return{...e[T],name:this.alias,isAlias:!0};if(t===h.Symbol.Columns){let i=e[h.Symbol.Columns];if(!i)return i;let n={};return Object.keys(i).map(a=>{n[a]=new Proxy(i[a],new le(new Proxy(e,this)))}),n}let s=e[t];return m(s,w)?new Proxy(s,new le(new Proxy(e,this))):s}},ds=class{constructor(e){this.alias=e}static[l]="RelationTableAliasProxyHandler";get(e,t){return t==="sourceTable"?qe(e.sourceTable,this.alias):e[t]}};function qe(r,e){return new Proxy(r,new ye(e,!1))}function G(r,e){return new Proxy(r,new le(new Proxy(r.table,new ye(e,!1))))}function jt(r,e){return new p.Aliased(ve(r.sql,e),r.fieldAlias)}function ve(r,e){return o.join(r.queryChunks.map(t=>m(t,w)?G(t,e):m(t,p)?ve(t,e):m(t,p.Aliased)?jt(t,e):t))}var P=class r{static[l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if(t==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===T)return{...e[T],selectedFields:new Proxy(e[T].selectedFields,this)};if(typeof t=="symbol")return e[t];let i=(m(e,O)?e._.selectedFields:m(e,I)?e[T].selectedFields:e)[t];if(m(i,p.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!i.isSelectionField)return i.sql;let n=i.clone();return n.isSelectionField=!0,n}if(m(i,p)){if(this.config.sqlBehavior==="sql")return i;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return m(i,w)?this.config.alias?new Proxy(i,new le(new Proxy(i.table,new ye(this.config.alias,this.config.replaceOriginalName??!1)))):i:typeof i!="object"||i===null?i:new Proxy(i,new r(this.config))}};var _=class{static[l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};var He=class{static[l]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:i,foreignColumns:n}=e();return{name:s,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new _t(e,this)}},_t=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),i=t.map(u=>u.name),n=s.map(u=>u.name),a=[this.table[j],...i,s[0].table[j],...n];return e??`${a.join("_")}_fk`}};function Kt(r,e){return`${r[j]}_${e.join("_")}_unique`}var Dt=class{constructor(e,t){this.name=t,this.columns=e}static[l]="SQLiteUniqueConstraintBuilder";columns;build(e){return new Rt(e,this.columns,this.name)}},ps=class{static[l]="SQLiteUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new Dt(e,this.name)}},Rt=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??Kt(this.table,this.columns.map(i=>i.name))}static[l]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}};var E=class extends he{static[l]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:i})=>((n,a)=>{let u=new He(()=>{let f=n();return{columns:[e],foreignColumns:[f]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,i))}},$=class extends w{constructor(e,t){t.uniqueName||(t.uniqueName=Kt(e,[t.name])),super(e,t),this.table=e}static[l]="SQLiteColumn"};var Ft=class extends E{static[l]="SQLiteBigIntBuilder";constructor(e){super(e,"bigint","SQLiteBigInt")}build(e){return new It(e,this.config)}},It=class extends ${static[l]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(e){if(typeof Buffer<"u"&&Buffer.from){let t=Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);return BigInt(t.toString("utf8"))}return BigInt(At.decode(e))}mapToDriverValue(e){return Buffer.from(e.toString())}},Mt=class extends E{static[l]="SQLiteBlobJsonBuilder";constructor(e){super(e,"json","SQLiteBlobJson")}build(e){return new zt(e,this.config)}},zt=class extends ${static[l]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(e){if(typeof Buffer<"u"&&Buffer.from){let t=Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);return JSON.parse(t.toString("utf8"))}return JSON.parse(At.decode(e))}mapToDriverValue(e){return Buffer.from(JSON.stringify(e))}},Vt=class extends E{static[l]="SQLiteBlobBufferBuilder";constructor(e){super(e,"buffer","SQLiteBlobBuffer")}build(e){return new Ut(e,this.config)}},Ut=class extends ${static[l]="SQLiteBlobBuffer";mapFromDriverValue(e){return Buffer.isBuffer(e)?e:Buffer.from(e)}getSQLType(){return"blob"}};function ys(r,e){let{name:t,config:s}=Y(r,e);return s?.mode==="json"?new Mt(t):s?.mode==="bigint"?new Ft(t):new Vt(t)}var Jt=class extends E{static[l]="SQLiteCustomColumnBuilder";constructor(e,t,s){super(e,"custom","SQLiteCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=s}build(e){return new kt(e,this.config)}},kt=class extends ${static[l]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom=="function"?this.mapFrom(e):e}mapToDriverValue(e){return typeof this.mapTo=="function"?this.mapTo(e):e}};function gs(r){return(e,t)=>{let{name:s,config:i}=Y(e,t);return new Jt(s,i,r)}}var Qe=class extends E{static[l]="SQLiteBaseIntegerBuilder";constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}},Le=class extends ${static[l]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}},Wt=class extends Qe{static[l]="SQLiteIntegerBuilder";constructor(e){super(e,"number","SQLiteInteger")}build(e){return new Ht(e,this.config)}},Ht=class extends Le{static[l]="SQLiteInteger"},Yt=class extends Qe{static[l]="SQLiteTimestampBuilder";constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(o`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new Gt(e,this.config)}},Gt=class extends Le{static[l]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(e){return this.config.mode==="timestamp"?new Date(e*1e3):new Date(e)}mapToDriverValue(e){let t=e.getTime();return this.config.mode==="timestamp"?Math.floor(t/1e3):t}},Zt=class extends Qe{static[l]="SQLiteBooleanBuilder";constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new Xt(e,this.config)}},Xt=class extends Le{static[l]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(e){return Number(e)===1}mapToDriverValue(e){return e?1:0}};function Ye(r,e){let{name:t,config:s}=Y(r,e);return s?.mode==="timestamp"||s?.mode==="timestamp_ms"?new Yt(t,s.mode):s?.mode==="boolean"?new Zt(t,s.mode):new Wt(t)}var er=class extends E{static[l]="SQLiteNumericBuilder";constructor(e){super(e,"string","SQLiteNumeric")}build(e){return new tr(e,this.config)}},tr=class extends ${static[l]="SQLiteNumeric";mapFromDriverValue(e){return typeof e=="string"?e:String(e)}getSQLType(){return"numeric"}},rr=class extends E{static[l]="SQLiteNumericNumberBuilder";constructor(e){super(e,"number","SQLiteNumericNumber")}build(e){return new sr(e,this.config)}},sr=class extends ${static[l]="SQLiteNumericNumber";mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}mapToDriverValue=String;getSQLType(){return"numeric"}},ir=class extends E{static[l]="SQLiteNumericBigIntBuilder";constructor(e){super(e,"bigint","SQLiteNumericBigInt")}build(e){return new nr(e,this.config)}},nr=class extends ${static[l]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}};function bs(r,e){let{name:t,config:s}=Y(r,e),i=s?.mode;return i==="number"?new rr(t):i==="bigint"?new ir(t):new er(t)}var or=class extends E{static[l]="SQLiteRealBuilder";constructor(e){super(e,"number","SQLiteReal")}build(e){return new ar(e,this.config)}},ar=class extends ${static[l]="SQLiteReal";getSQLType(){return"real"}};function Ss(r){return new or(r??"")}var lr=class extends E{static[l]="SQLiteTextBuilder";constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new ur(e,this.config)}},ur=class extends ${static[l]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}},cr=class extends E{static[l]="SQLiteTextJsonBuilder";constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new mr(e,this.config)}},mr=class extends ${static[l]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}};function U(r,e={}){let{name:t,config:s}=Y(r,e);return s.mode==="json"?new cr(t):new lr(t,s)}function ws(){return{blob:ys,customType:gs,integer:Ye,numeric:bs,real:Ss,text:U}}var fr=Symbol.for("drizzle:SQLiteInlineForeignKeys"),B=class extends h{static[l]="SQLiteTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:fr});[h.Symbol.Columns];[fr]=[];[h.Symbol.ExtraConfigBuilder]=void 0};function Is(r,e,t,s,i=r){let n=new B(r,s,i),a=typeof e=="function"?e(ws()):e,u=Object.fromEntries(Object.entries(a).map(([d,c])=>{let y=c;y.setName(d);let b=y.build(n);return n[fr].push(...y.buildForeignKeys(b,n)),[d,b]})),f=Object.assign(n,u);return f[h.Symbol.Columns]=u,f[h.Symbol.ExtraConfigColumns]=u,t&&(f[B.Symbol.ExtraConfigBuilder]=t),f}var xs=(r,e,t)=>Is(r,e,t);function Cs(...r){return r[0].columns?new Ge(r[0].columns,r[0].name):new Ge(r)}var Ge=class{static[l]="SQLitePrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new hr(e,this.columns,this.name)}},hr=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}static[l]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[B.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};function W(r){return m(r,B)?[`${r[h.Symbol.BaseName]}`]:m(r,O)?r._.usedTables??[]:m(r,p)?r.usedTables??[]:[]}var Oe=class extends _{constructor(e,t,s,i){super(),this.table=e,this.session=t,this.dialect=s,this.config={table:e,withList:i}}static[l]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.table[h.Symbol.Columns],new P({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),s=Array.isArray(t)?t:[t];this.config.orderBy=s}else{let t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.table[B.Symbol.Columns]){return this.config.returning=V(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:W(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}};function Ms(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(t=>t.toLowerCase()).join("_")}function zs(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((t,s,i)=>{let n=i===0?s.toLowerCase():`${s[0].toUpperCase()}${s.slice(1)}`;return t+n},"")}function Vs(r){return r}var Ze=class{static[l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Ms:e==="camelCase"?zs:Vs}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[h.Symbol.Schema]??"public",s=e.table[h.Symbol.OriginalName],i=`${t}.${s}.${e.name}`;return this.cache[i]||this.cacheTable(e.table),this.cache[i]}cacheTable(e){let t=e[h.Symbol.Schema]??"public",s=e[h.Symbol.OriginalName],i=`${t}.${s}`;if(!this.cachedTables[i]){for(let n of Object.values(e[h.Symbol.Columns])){let a=`${i}.${n.name}`;this.cache[a]=this.convert(n.name)}this.cachedTables[i]=!0}}clearCache(){this.cache={},this.cachedTables={}}};var ue=class extends Error{static[l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},re=class r extends Error{constructor(e,t,s){super(`Failed query: ${e}
|
|
1
|
+
var Es=Object.defineProperty;var js=(r,e)=>{for(var t in e)Es(r,t,{get:e[t],enumerable:!0})};import{DurableObject as Xs}from"cloudflare:workers";var l=Symbol.for("drizzle:entityKind"),ri=Symbol.for("drizzle:hasOwnEntityKind");function m(r,e){if(!r||typeof r!="object")return!1;if(r instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,l))throw new Error(`Class "${e.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=Object.getPrototypeOf(r).constructor;if(t)for(;t;){if(l in t&&t[l]===e[l])return!0;t=Object.getPrototypeOf(t)}return!1}var pt=class{static[l]="ConsoleLogWriter";write(e){console.log(e)}},_e=class{static[l]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new pt}logQuery(e,t){let s=t.map(n=>{try{return JSON.stringify(n)}catch{return String(n)}}),i=s.length?` -- params: [${s.join(", ")}]`:"";this.writer.write(`Query: ${e}${i}`)}},De=class{static[l]="NoopLogger";logQuery(){}};var j=Symbol.for("drizzle:Name");var Re=Symbol.for("drizzle:Schema"),Ke=Symbol.for("drizzle:Columns"),Nr=Symbol.for("drizzle:ExtraConfigColumns"),yt=Symbol.for("drizzle:OriginalName"),gt=Symbol.for("drizzle:BaseName"),we=Symbol.for("drizzle:IsAlias"),Tr=Symbol.for("drizzle:ExtraConfigBuilder"),_s=Symbol.for("drizzle:IsDrizzleTable"),h=class{static[l]="Table";static Symbol={Name:j,Schema:Re,OriginalName:yt,Columns:Ke,ExtraConfigColumns:Nr,BaseName:gt,IsAlias:we,ExtraConfigBuilder:Tr};[j];[yt];[Re];[Ke];[Nr];[gt];[we]=!1;[_s]=!0;[Tr]=void 0;constructor(e,t,s){this[j]=this[yt]=e,this[Re]=t,this[gt]=s}};function se(r){return r[j]}function oe(r){return`${r[Re]??"public"}.${r[j]}`}var w=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}};var he=class{static[l]="ColumnBuilder";config;constructor(e,t,s){this.config={name:e,keyAsName:e==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:s,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===""&&(this.config.name=e)}};var Fe=class{static[l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:s,columns:i,foreignColumns:n}=e();return{name:s,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new bt(e,this)}},bt=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),i=t.map(u=>u.name),n=s.map(u=>u.name),a=[this.table[j],...i,s[0].table[j],...n];return e??`${a.join("_")}_fk`}};function Ie(r,...e){return r(...e)}function xt(r,e){return`${r[j]}_${e.join("_")}_unique`}var St=class{constructor(e,t){this.name=t,this.columns=e}static[l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new wt(e,this.columns,this.nullsNotDistinctConfig,this.name)}},$r=class{static[l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new St(e,this.name)}},wt=class{constructor(e,t,s,i){this.table=e,this.columns=t,this.name=i??xt(this.table,this.columns.map(n=>n.name)),this.nullsNotDistinct=s}static[l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}};function qr(r,e,t){for(let s=e;s<r.length;s++){let i=r[s];if(i==="\\"){s++;continue}if(i==='"')return[r.slice(e,s).replace(/\\/g,""),s+1];if(!t&&(i===","||i==="}"))return[r.slice(e,s).replace(/\\/g,""),s]}return[r.slice(e).replace(/\\/g,""),r.length]}function vr(r,e=0){let t=[],s=e,i=!1;for(;s<r.length;){let n=r[s];if(n===","){(i||s===e)&&t.push(""),i=!0,s++;continue}if(i=!1,n==="\\"){s+=2;continue}if(n==='"'){let[f,d]=qr(r,s+1,!0);t.push(f),s=d;continue}if(n==="}")return[t,s+1];if(n==="{"){let[f,d]=vr(r,s+1);t.push(f),s=d;continue}let[a,u]=qr(r,s,!1);t.push(a),s=u}return[t,s]}function Qr(r){let[e]=vr(r,1);return e}function Ct(r){return`{${r.map(e=>Array.isArray(e)?Ct(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}var de=class extends he{foreignKeyConfigs=[];static[l]="PgColumnBuilder";array(e){return new Tt(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:i})=>Ie((n,a)=>{let u=new Fe(()=>{let f=n();return{columns:[e],foreignColumns:[f]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)},s,i))}buildExtraConfigColumn(e){return new Nt(e,this.config)}},ae=class extends w{constructor(e,t){t.uniqueName||(t.uniqueName=xt(e,[t.name])),super(e,t),this.table=e}static[l]="PgColumn"},Nt=class extends ae{static[l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},Lr=class{static[l]="IndexedColumn";constructor(e,t,s,i){this.name=e,this.keyAsName=t,this.type=s,this.indexConfig=i}name;keyAsName;type;indexConfig},Tt=class extends de{static[l]="PgArrayBuilder";constructor(e,t,s){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=s}build(e){let t=this.config.baseBuilder.build(e);return new $t(e,this.config,t)}},$t=class r extends ae{constructor(e,t,s,i){super(e,t),this.baseColumn=s,this.range=i,this.size=t.size}size;static[l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size=="number"?this.size:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=Qr(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapToDriverValue(e,t=!1){let s=e.map(i=>i===null?null:m(this.baseColumn,r)?this.baseColumn.mapToDriverValue(i,!0):this.baseColumn.mapToDriverValue(i));return t?s:Ct(s)}};var Or=class extends de{static[l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new qt(e,this.config)}},qt=class extends ae{static[l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},Br=Symbol.for("drizzle:isPgEnum");function Pr(r){return!!r&&typeof r=="function"&&Br in r&&r[Br]===!0}var Ar=class extends de{static[l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new vt(e,this.config)}},vt=class extends ae{static[l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};var O=class{static[l]="Subquery";constructor(e,t,s,i=!1,n=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:s,isWith:i,usedTables:n}}},pe=class extends O{static[l]="WithSubquery"};var Er="0.44.6";var Qt,Lt,jr={startActiveSpan(r,e){return Qt?(Lt||(Lt=Qt.trace.getTracer("drizzle-orm",Er)),Ie((t,s)=>s.startActiveSpan(r,i=>{try{return e(i)}catch(n){throw i.setStatus({code:t.SpanStatusCode.ERROR,message:n instanceof Error?n.message:"Unknown error"}),n}finally{i.end()}}),Qt,Lt)):e()}};var T=Symbol.for("drizzle:ViewBaseConfig");var _r=class{static[l]="FakePrimitiveParam"};function Ot(r){return r!=null&&typeof r.getSQL=="function"}function Ds(r){let e={sql:"",params:[]};for(let t of r)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}var A=class{static[l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new p([this])}},p=class r{constructor(e){this.queryChunks=e;for(let t of e)if(m(t,h)){let s=t[h.Symbol.Schema];this.usedTables.push(s===void 0?t[h.Symbol.Name]:s+"."+t[h.Symbol.Name])}}static[l]="SQL";decoder=Rr;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return jr.startActiveSpan("drizzle.buildSQL",t=>{let s=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":s.sql,"drizzle.query.params":JSON.stringify(s.params)}),s})}buildQueryFromSourceParams(e,t){let s=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:i,escapeName:n,escapeParam:a,prepareTyping:u,inlineParams:f,paramStartIndex:d}=s;return Ds(e.map(c=>{if(m(c,A))return{sql:c.value.join(""),params:[]};if(m(c,xe))return{sql:n(c.value),params:[]};if(c===void 0)return{sql:"",params:[]};if(Array.isArray(c)){let y=[new A("(")];for(let[b,N]of c.entries())y.push(N),b<c.length-1&&y.push(new A(", "));return y.push(new A(")")),this.buildQueryFromSourceParams(y,s)}if(m(c,r))return this.buildQueryFromSourceParams(c.queryChunks,{...s,inlineParams:f||c.shouldInlineParams});if(m(c,h)){let y=c[h.Symbol.Schema],b=c[h.Symbol.Name];return{sql:y===void 0||c[we]?n(b):n(y)+"."+n(b),params:[]}}if(m(c,w)){let y=i.getColumnCasing(c);if(t.invokeSource==="indexes")return{sql:n(y),params:[]};let b=c.table[h.Symbol.Schema];return{sql:c.table[we]||b===void 0?n(c.table[h.Symbol.Name])+"."+n(y):n(b)+"."+n(c.table[h.Symbol.Name])+"."+n(y),params:[]}}if(m(c,I)){let y=c[T].schema,b=c[T].name;return{sql:y===void 0||c[T].isAlias?n(b):n(y)+"."+n(b),params:[]}}if(m(c,R)){if(m(c.value,ee))return{sql:a(d.value++,c),params:[c],typings:["none"]};let y=c.value===null?null:c.encoder.mapToDriverValue(c.value);if(m(y,r))return this.buildQueryFromSourceParams([y],s);if(f)return{sql:this.mapInlineParam(y,s),params:[]};let b=["none"];return u&&(b=[u(c.encoder)]),{sql:a(d.value++,y),params:[y],typings:b}}return m(c,ee)?{sql:a(d.value++,c),params:[c],typings:["none"]}:m(c,r.Aliased)&&c.fieldAlias!==void 0?{sql:n(c.fieldAlias),params:[]}:m(c,O)?c._.isWith?{sql:n(c._.alias),params:[]}:this.buildQueryFromSourceParams([new A("("),c._.sql,new A(") "),new xe(c._.alias)],s):Pr(c)?c.schema?{sql:n(c.schema)+"."+n(c.enumName),params:[]}:{sql:n(c.enumName),params:[]}:Ot(c)?c.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([c.getSQL()],s):this.buildQueryFromSourceParams([new A("("),c.getSQL(),new A(")")],s):f?{sql:this.mapInlineParam(c,s),params:[]}:{sql:a(d.value++,c),params:[c],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return"null";if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="string")return t(e);if(typeof e=="object"){let s=e.toString();return t(s==="[object Object]"?JSON.stringify(e):s)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return e===void 0?this:new r.Aliased(this,e)}mapWith(e){return this.decoder=typeof e=="function"?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},xe=class{constructor(e){this.value=e}static[l]="Name";brand;getSQL(){return new p([this])}};function Dr(r){return typeof r=="object"&&r!==null&&"mapToDriverValue"in r&&typeof r.mapToDriverValue=="function"}var Rr={mapFromDriverValue:r=>r},Kr={mapToDriverValue:r=>r},ki={...Rr,...Kr},R=class{constructor(e,t=Kr){this.value=e,this.encoder=t}static[l]="Param";brand;getSQL(){return new p([this])}};function o(r,...e){let t=[];(e.length>0||r.length>0&&r[0]!=="")&&t.push(new A(r[0]));for(let[s,i]of e.entries())t.push(i,new A(r[s+1]));return new p(t)}(r=>{function e(){return new p([])}r.empty=e;function t(f){return new p(f)}r.fromList=t;function s(f){return new p([new A(f)])}r.raw=s;function i(f,d){let c=[];for(let[y,b]of f.entries())y>0&&d!==void 0&&c.push(d),c.push(b);return new p(c)}r.join=i;function n(f){return new xe(f)}r.identifier=n;function a(f){return new ee(f)}r.placeholder=a;function u(f,d){return new R(f,d)}r.param=u})(o||(o={}));(r=>{class e{constructor(s,i){this.sql=s,this.fieldAlias=i}static[l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new e(this.sql,this.fieldAlias)}}r.Aliased=e})(p||(p={}));var ee=class{constructor(e){this.name=e}static[l]="Placeholder";getSQL(){return new p([this])}};function Ce(r,e){return r.map(t=>{if(m(t,ee)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}if(m(t,R)&&m(t.value,ee)){if(!(t.value.name in e))throw new Error(`No value for placeholder "${t.value.name}" was provided`);return t.encoder.mapToDriverValue(e[t.value.name])}return t})}var Rs=Symbol.for("drizzle:IsDrizzleView"),I=class{static[l]="View";[T];[Rs]=!0;constructor({name:e,schema:t,selectedFields:s,query:i}){this[T]={name:e,originalName:e,schema:t,selectedFields:s,query:i,isExisting:!i,isAlias:!1}}getSQL(){return new p([this])}};w.prototype.getSQL=function(){return new p([this])};h.prototype.getSQL=function(){return new p([this])};O.prototype.getSQL=function(){return new p([this])};function Bt(r,e,t){let s={},i=r.reduce((n,{path:a,field:u},f)=>{let d;m(u,w)?d=u:m(u,p)?d=u.decoder:d=u.sql.decoder;let c=n;for(let[y,b]of a.entries())if(y<a.length-1)b in c||(c[b]={}),c=c[b];else{let N=e[f],v=c[b]=N===null?null:d.mapFromDriverValue(N);if(t&&m(u,w)&&a.length===2){let S=a[0];S in s?typeof s[S]=="string"&&s[S]!==se(u.table)&&(s[S]=!1):s[S]=v===null?se(u.table):!1}}return n},{});if(t&&Object.keys(s).length>0)for(let[n,a]of Object.entries(s))typeof a=="string"&&!t[a]&&(i[n]=null);return i}function V(r,e){return Object.entries(r).reduce((t,[s,i])=>{if(typeof s!="string")return t;let n=e?[...e,s]:[s];return m(i,w)||m(i,p)||m(i,p.Aliased)?t.push({path:n,field:i}):m(i,h)?t.push(...V(i[h.Symbol.Columns],n)):t.push(...V(i,n)),t},[])}function Ne(r,e){let t=Object.keys(r),s=Object.keys(e);if(t.length!==s.length)return!1;for(let[i,n]of t.entries())if(n!==s[i])return!1;return!0}function Me(r,e){let t=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,i])=>m(i,p)||m(i,w)?[s,i]:[s,new R(i,r[h.Symbol.Columns][s])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}function Fr(r,e){for(let t of e)for(let s of Object.getOwnPropertyNames(t.prototype))s!=="constructor"&&Object.defineProperty(r.prototype,s,Object.getOwnPropertyDescriptor(t.prototype,s)||Object.create(null))}function ze(r){return r[h.Symbol.Columns]}function Te(r){return m(r,O)?r._.alias:m(r,I)?r[T].name:m(r,p)?void 0:r[h.Symbol.IsAlias]?r[h.Symbol.Name]:r[h.Symbol.BaseName]}function Y(r,e){return{name:typeof r=="string"&&r.length>0?r:"",config:typeof r=="object"?r:e}}var At=typeof TextDecoder>"u"?null:new TextDecoder;var Ir=Symbol.for("drizzle:PgInlineForeignKeys"),Mr=Symbol.for("drizzle:EnableRLS"),Ve=class extends h{static[l]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:Ir,EnableRLS:Mr});[Ir]=[];[Mr]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}};var Ue=class{static[l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Pt(e,this.columns,this.name)}},Pt=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}static[l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Ve.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};function K(r,e){return Dr(e)&&!Ot(r)&&!m(r,R)&&!m(r,ee)&&!m(r,w)&&!m(r,h)&&!m(r,I)?new R(r,e):r}var M=(r,e)=>o`${r} = ${K(e,r)}`,zr=(r,e)=>o`${r} <> ${K(e,r)}`;function te(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new p(e):new p([new A("("),o.join(e,new A(" and ")),new A(")")])}function Vr(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new p(e):new p([new A("("),o.join(e,new A(" or ")),new A(")")])}function Ur(r){return o`not ${r}`}var Jr=(r,e)=>o`${r} > ${K(e,r)}`,kr=(r,e)=>o`${r} >= ${K(e,r)}`,Wr=(r,e)=>o`${r} < ${K(e,r)}`,Hr=(r,e)=>o`${r} <= ${K(e,r)}`;function Je(r,e){return Array.isArray(e)?e.length===0?o`false`:o`${r} in ${e.map(t=>K(t,r))}`:o`${r} in ${K(e,r)}`}function Yr(r,e){return Array.isArray(e)?e.length===0?o`true`:o`${r} not in ${e.map(t=>K(t,r))}`:o`${r} not in ${K(e,r)}`}function Gr(r){return o`${r} is null`}function Zr(r){return o`${r} is not null`}function Xr(r){return o`exists ${r}`}function es(r){return o`not exists ${r}`}function ts(r,e,t){return o`${r} between ${K(e,r)} and ${K(t,r)}`}function rs(r,e,t){return o`${r} not between ${K(e,r)} and ${K(t,r)}`}function ss(r,e){return o`${r} like ${e}`}function is(r,e){return o`${r} not like ${e}`}function ns(r,e){return o`${r} ilike ${e}`}function os(r,e){return o`${r} not ilike ${e}`}function as(r){return o`${r} asc`}function ls(r){return o`${r} desc`}var ke=class{constructor(e,t,s){this.sourceTable=e,this.referencedTable=t,this.relationName=s,this.referencedTableName=t[h.Symbol.Name]}static[l]="Relation";referencedTableName;fieldName},Et=class{constructor(e,t){this.table=e,this.config=t}static[l]="Relations"},ie=class r extends ke{constructor(e,t,s,i){super(e,t,s?.relationName),this.config=s,this.isNullable=i}static[l]="One";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},$e=class r extends ke{constructor(e,t,s){super(e,t,s?.relationName),this.config=s}static[l]="Many";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}};function us(){return{and:te,between:ts,eq:M,exists:Xr,gt:Jr,gte:kr,ilike:ns,inArray:Je,isNull:Gr,isNotNull:Zr,like:ss,lt:Wr,lte:Hr,ne:zr,not:Ur,notBetween:rs,notExists:es,notLike:is,notIlike:os,notInArray:Yr,or:Vr,sql:o}}function cs(){return{sql:o,asc:as,desc:ls}}function ms(r,e){Object.keys(r).length===1&&"default"in r&&!m(r.default,h)&&(r=r.default);let t={},s={},i={};for(let[n,a]of Object.entries(r))if(m(a,h)){let u=oe(a),f=s[u];t[u]=n,i[n]={tsName:n,dbName:a[h.Symbol.Name],schema:a[h.Symbol.Schema],columns:a[h.Symbol.Columns],relations:f?.relations??{},primaryKey:f?.primaryKey??[]};for(let c of Object.values(a[h.Symbol.Columns]))c.primary&&i[n].primaryKey.push(c);let d=a[h.Symbol.ExtraConfigBuilder]?.(a[h.Symbol.ExtraConfigColumns]);if(d)for(let c of Object.values(d))m(c,Ue)&&i[n].primaryKey.push(...c.columns)}else if(m(a,Et)){let u=oe(a.table),f=t[u],d=a.config(e(a.table)),c;for(let[y,b]of Object.entries(d))if(f){let N=i[f];N.relations[y]=b,c&&N.primaryKey.push(...c)}else u in s||(s[u]={relations:{},primaryKey:c}),s[u].relations[y]=b}return{tables:i,tableNamesMap:t}}function Ks(r){return function(t,s){return new ie(r,t,s,s?.fields.reduce((i,n)=>i&&n.notNull,!0)??!1)}}function Fs(r){return function(t,s){return new $e(r,t,s)}}function fs(r,e,t){if(m(t,ie)&&t.config)return{fields:t.config.fields,references:t.config.references};let s=e[oe(t.referencedTable)];if(!s)throw new Error(`Table "${t.referencedTable[h.Symbol.Name]}" not found in schema`);let i=r[s];if(!i)throw new Error(`Table "${s}" not found in schema`);let n=t.sourceTable,a=e[oe(n)];if(!a)throw new Error(`Table "${n[h.Symbol.Name]}" not found in schema`);let u=[];for(let f of Object.values(i.relations))(t.relationName&&t!==f&&f.relationName===t.relationName||!t.relationName&&f.referencedTable===t.sourceTable)&&u.push(f);if(u.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${s}"`):new Error(`There are multiple relations between "${s}" and "${t.sourceTable[h.Symbol.Name]}". Please specify relation name`);if(u[0]&&m(u[0],ie)&&u[0].config)return{fields:u[0].config.references,references:u[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${t.fieldName}"`)}function hs(r){return{one:Ks(r),many:Fs(r)}}function We(r,e,t,s,i=n=>n){let n={};for(let[a,u]of s.entries())if(u.isJson){let f=e.relations[u.tsKey],d=t[a],c=typeof d=="string"?JSON.parse(d):d;n[u.tsKey]=m(f,ie)?c&&We(r,r[u.relationTableTsKey],c,u.selection,i):c.map(y=>We(r,r[u.relationTableTsKey],y,u.selection,i))}else{let f=i(t[a]),d=u.field,c;m(d,w)?c=d:m(d,p)?c=d.decoder:c=d.sql.decoder,n[u.tsKey]=f===null?null:c.mapFromDriverValue(f)}return n}var le=class{constructor(e){this.table=e}static[l]="ColumnAliasProxyHandler";get(e,t){return t==="table"?this.table:e[t]}},ye=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[l]="TableAliasProxyHandler";get(e,t){if(t===h.Symbol.IsAlias)return!0;if(t===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===h.Symbol.OriginalName)return this.alias;if(t===T)return{...e[T],name:this.alias,isAlias:!0};if(t===h.Symbol.Columns){let i=e[h.Symbol.Columns];if(!i)return i;let n={};return Object.keys(i).map(a=>{n[a]=new Proxy(i[a],new le(new Proxy(e,this)))}),n}let s=e[t];return m(s,w)?new Proxy(s,new le(new Proxy(e,this))):s}},ds=class{constructor(e){this.alias=e}static[l]="RelationTableAliasProxyHandler";get(e,t){return t==="sourceTable"?qe(e.sourceTable,this.alias):e[t]}};function qe(r,e){return new Proxy(r,new ye(e,!1))}function G(r,e){return new Proxy(r,new le(new Proxy(r.table,new ye(e,!1))))}function jt(r,e){return new p.Aliased(ve(r.sql,e),r.fieldAlias)}function ve(r,e){return o.join(r.queryChunks.map(t=>m(t,w)?G(t,e):m(t,p)?ve(t,e):m(t,p.Aliased)?jt(t,e):t))}var P=class r{static[l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if(t==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===T)return{...e[T],selectedFields:new Proxy(e[T].selectedFields,this)};if(typeof t=="symbol")return e[t];let i=(m(e,O)?e._.selectedFields:m(e,I)?e[T].selectedFields:e)[t];if(m(i,p.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!i.isSelectionField)return i.sql;let n=i.clone();return n.isSelectionField=!0,n}if(m(i,p)){if(this.config.sqlBehavior==="sql")return i;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return m(i,w)?this.config.alias?new Proxy(i,new le(new Proxy(i.table,new ye(this.config.alias,this.config.replaceOriginalName??!1)))):i:typeof i!="object"||i===null?i:new Proxy(i,new r(this.config))}};var _=class{static[l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};var He=class{static[l]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:i,foreignColumns:n}=e();return{name:s,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new _t(e,this)}},_t=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),i=t.map(u=>u.name),n=s.map(u=>u.name),a=[this.table[j],...i,s[0].table[j],...n];return e??`${a.join("_")}_fk`}};function Kt(r,e){return`${r[j]}_${e.join("_")}_unique`}var Dt=class{constructor(e,t){this.name=t,this.columns=e}static[l]="SQLiteUniqueConstraintBuilder";columns;build(e){return new Rt(e,this.columns,this.name)}},ps=class{static[l]="SQLiteUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new Dt(e,this.name)}},Rt=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??Kt(this.table,this.columns.map(i=>i.name))}static[l]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}};var E=class extends he{static[l]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:i})=>((n,a)=>{let u=new He(()=>{let f=n();return{columns:[e],foreignColumns:[f]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,i))}},$=class extends w{constructor(e,t){t.uniqueName||(t.uniqueName=Kt(e,[t.name])),super(e,t),this.table=e}static[l]="SQLiteColumn"};var Ft=class extends E{static[l]="SQLiteBigIntBuilder";constructor(e){super(e,"bigint","SQLiteBigInt")}build(e){return new It(e,this.config)}},It=class extends ${static[l]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(e){if(typeof Buffer<"u"&&Buffer.from){let t=Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);return BigInt(t.toString("utf8"))}return BigInt(At.decode(e))}mapToDriverValue(e){return Buffer.from(e.toString())}},Mt=class extends E{static[l]="SQLiteBlobJsonBuilder";constructor(e){super(e,"json","SQLiteBlobJson")}build(e){return new zt(e,this.config)}},zt=class extends ${static[l]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(e){if(typeof Buffer<"u"&&Buffer.from){let t=Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):e.buffer?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);return JSON.parse(t.toString("utf8"))}return JSON.parse(At.decode(e))}mapToDriverValue(e){return Buffer.from(JSON.stringify(e))}},Vt=class extends E{static[l]="SQLiteBlobBufferBuilder";constructor(e){super(e,"buffer","SQLiteBlobBuffer")}build(e){return new Ut(e,this.config)}},Ut=class extends ${static[l]="SQLiteBlobBuffer";mapFromDriverValue(e){return Buffer.isBuffer(e)?e:Buffer.from(e)}getSQLType(){return"blob"}};function ys(r,e){let{name:t,config:s}=Y(r,e);return s?.mode==="json"?new Mt(t):s?.mode==="bigint"?new Ft(t):new Vt(t)}var Jt=class extends E{static[l]="SQLiteCustomColumnBuilder";constructor(e,t,s){super(e,"custom","SQLiteCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=s}build(e){return new kt(e,this.config)}},kt=class extends ${static[l]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom=="function"?this.mapFrom(e):e}mapToDriverValue(e){return typeof this.mapTo=="function"?this.mapTo(e):e}};function gs(r){return(e,t)=>{let{name:s,config:i}=Y(e,t);return new Jt(s,i,r)}}var Qe=class extends E{static[l]="SQLiteBaseIntegerBuilder";constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}},Le=class extends ${static[l]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}},Wt=class extends Qe{static[l]="SQLiteIntegerBuilder";constructor(e){super(e,"number","SQLiteInteger")}build(e){return new Ht(e,this.config)}},Ht=class extends Le{static[l]="SQLiteInteger"},Yt=class extends Qe{static[l]="SQLiteTimestampBuilder";constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(o`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new Gt(e,this.config)}},Gt=class extends Le{static[l]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(e){return this.config.mode==="timestamp"?new Date(e*1e3):new Date(e)}mapToDriverValue(e){let t=e.getTime();return this.config.mode==="timestamp"?Math.floor(t/1e3):t}},Zt=class extends Qe{static[l]="SQLiteBooleanBuilder";constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new Xt(e,this.config)}},Xt=class extends Le{static[l]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(e){return Number(e)===1}mapToDriverValue(e){return e?1:0}};function Ye(r,e){let{name:t,config:s}=Y(r,e);return s?.mode==="timestamp"||s?.mode==="timestamp_ms"?new Yt(t,s.mode):s?.mode==="boolean"?new Zt(t,s.mode):new Wt(t)}var er=class extends E{static[l]="SQLiteNumericBuilder";constructor(e){super(e,"string","SQLiteNumeric")}build(e){return new tr(e,this.config)}},tr=class extends ${static[l]="SQLiteNumeric";mapFromDriverValue(e){return typeof e=="string"?e:String(e)}getSQLType(){return"numeric"}},rr=class extends E{static[l]="SQLiteNumericNumberBuilder";constructor(e){super(e,"number","SQLiteNumericNumber")}build(e){return new sr(e,this.config)}},sr=class extends ${static[l]="SQLiteNumericNumber";mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}mapToDriverValue=String;getSQLType(){return"numeric"}},ir=class extends E{static[l]="SQLiteNumericBigIntBuilder";constructor(e){super(e,"bigint","SQLiteNumericBigInt")}build(e){return new nr(e,this.config)}},nr=class extends ${static[l]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}};function bs(r,e){let{name:t,config:s}=Y(r,e),i=s?.mode;return i==="number"?new rr(t):i==="bigint"?new ir(t):new er(t)}var or=class extends E{static[l]="SQLiteRealBuilder";constructor(e){super(e,"number","SQLiteReal")}build(e){return new ar(e,this.config)}},ar=class extends ${static[l]="SQLiteReal";getSQLType(){return"real"}};function Ss(r){return new or(r??"")}var lr=class extends E{static[l]="SQLiteTextBuilder";constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new ur(e,this.config)}},ur=class extends ${static[l]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}},cr=class extends E{static[l]="SQLiteTextJsonBuilder";constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new mr(e,this.config)}},mr=class extends ${static[l]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}};function U(r,e={}){let{name:t,config:s}=Y(r,e);return s.mode==="json"?new cr(t):new lr(t,s)}function ws(){return{blob:ys,customType:gs,integer:Ye,numeric:bs,real:Ss,text:U}}var fr=Symbol.for("drizzle:SQLiteInlineForeignKeys"),B=class extends h{static[l]="SQLiteTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:fr});[h.Symbol.Columns];[fr]=[];[h.Symbol.ExtraConfigBuilder]=void 0};function Is(r,e,t,s,i=r){let n=new B(r,s,i),a=typeof e=="function"?e(ws()):e,u=Object.fromEntries(Object.entries(a).map(([d,c])=>{let y=c;y.setName(d);let b=y.build(n);return n[fr].push(...y.buildForeignKeys(b,n)),[d,b]})),f=Object.assign(n,u);return f[h.Symbol.Columns]=u,f[h.Symbol.ExtraConfigColumns]=u,t&&(f[B.Symbol.ExtraConfigBuilder]=t),f}var xs=(r,e,t)=>Is(r,e,t);function Cs(...r){return r[0].columns?new Ge(r[0].columns,r[0].name):new Ge(r)}var Ge=class{static[l]="SQLitePrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new hr(e,this.columns,this.name)}},hr=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}static[l]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[B.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};function W(r){return m(r,B)?[`${r[h.Symbol.BaseName]}`]:m(r,O)?r._.usedTables??[]:m(r,p)?r.usedTables??[]:[]}var Oe=class extends _{constructor(e,t,s,i){super(),this.table=e,this.session=t,this.dialect=s,this.config={table:e,withList:i}}static[l]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.table[h.Symbol.Columns],new P({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),s=Array.isArray(t)?t:[t];this.config.orderBy=s}else{let t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.table[B.Symbol.Columns]){return this.config.returning=V(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:W(this.config.table)})}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}};function Ms(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(t=>t.toLowerCase()).join("_")}function zs(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((t,s,i)=>{let n=i===0?s.toLowerCase():`${s[0].toUpperCase()}${s.slice(1)}`;return t+n},"")}function Vs(r){return r}var Ze=class{static[l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Ms:e==="camelCase"?zs:Vs}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[h.Symbol.Schema]??"public",s=e.table[h.Symbol.OriginalName],i=`${t}.${s}.${e.name}`;return this.cache[i]||this.cacheTable(e.table),this.cache[i]}cacheTable(e){let t=e[h.Symbol.Schema]??"public",s=e[h.Symbol.OriginalName],i=`${t}.${s}`;if(!this.cachedTables[i]){for(let n of Object.values(e[h.Symbol.Columns])){let a=`${i}.${n.name}`;this.cache[a]=this.convert(n.name)}this.cachedTables[i]=!0}}clearCache(){this.cache={},this.cachedTables={}}};var ue=class extends Error{static[l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},re=class r extends Error{constructor(e,t,s){super(`Failed query: ${e}
|
|
2
2
|
params: ${t}`),this.query=e,this.params=t,this.cause=s,Error.captureStackTrace(this,r),s&&(this.cause=s)}},Xe=class extends ue{static[l]="TransactionRollbackError";constructor(){super({message:"Rollback"})}};var ne=class extends I{static[l]="SQLiteViewBase"};var ce=class{static[l]="SQLiteDialect";casing;constructor(e){this.casing=new Ze(e?.casing)}escapeName(e){return`"${e}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[o`with `];for(let[s,i]of e.entries())t.push(o`${o.identifier(i._.alias)} as (${i._.sql})`),s<e.length-1&&t.push(o`, `);return t.push(o` `),o.join(t)}buildDeleteQuery({table:e,where:t,returning:s,withList:i,limit:n,orderBy:a}){let u=this.buildWithCTE(i),f=s?o` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,d=t?o` where ${t}`:void 0,c=this.buildOrderBy(a),y=this.buildLimit(n);return o`${u}delete from ${e}${d}${f}${c}${y}`}buildUpdateSet(e,t){let s=e[h.Symbol.Columns],i=Object.keys(s).filter(a=>t[a]!==void 0||s[a]?.onUpdateFn!==void 0),n=i.length;return o.join(i.flatMap((a,u)=>{let f=s[a],d=t[a]??o.param(f.onUpdateFn(),f),c=o`${o.identifier(this.casing.getColumnCasing(f))} = ${d}`;return u<n-1?[c,o.raw(", ")]:[c]}))}buildUpdateQuery({table:e,set:t,where:s,returning:i,withList:n,joins:a,from:u,limit:f,orderBy:d}){let c=this.buildWithCTE(n),y=this.buildUpdateSet(e,t),b=u&&o.join([o.raw(" from "),this.buildFromTable(u)]),N=this.buildJoins(a),v=i?o` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,S=s?o` where ${s}`:void 0,Q=this.buildOrderBy(d),L=this.buildLimit(f);return o`${c}update ${e} set ${y}${b}${N}${S}${v}${Q}${L}`}buildSelection(e,{isSingleTable:t=!1}={}){let s=e.length,i=e.flatMap(({field:n},a)=>{let u=[];if(m(n,p.Aliased)&&n.isSelectionField)u.push(o.identifier(n.fieldAlias));else if(m(n,p.Aliased)||m(n,p)){let f=m(n,p.Aliased)?n.sql:n;t?u.push(new p(f.queryChunks.map(d=>m(d,w)?o.identifier(this.casing.getColumnCasing(d)):d))):u.push(f),m(n,p.Aliased)&&u.push(o` as ${o.identifier(n.fieldAlias)}`)}else if(m(n,w)){let f=n.table[h.Symbol.Name];n.columnType==="SQLiteNumericBigInt"?t?u.push(o`cast(${o.identifier(this.casing.getColumnCasing(n))} as text)`):u.push(o`cast(${o.identifier(f)}.${o.identifier(this.casing.getColumnCasing(n))} as text)`):t?u.push(o.identifier(this.casing.getColumnCasing(n))):u.push(o`${o.identifier(f)}.${o.identifier(this.casing.getColumnCasing(n))}`)}return a<s-1&&u.push(o`, `),u});return o.join(i)}buildJoins(e){if(!e||e.length===0)return;let t=[];if(e)for(let[s,i]of e.entries()){s===0&&t.push(o` `);let n=i.table,a=i.on?o` on ${i.on}`:void 0;if(m(n,B)){let u=n[B.Symbol.Name],f=n[B.Symbol.Schema],d=n[B.Symbol.OriginalName],c=u===d?void 0:i.alias;t.push(o`${o.raw(i.joinType)} join ${f?o`${o.identifier(f)}.`:void 0}${o.identifier(d)}${c&&o` ${o.identifier(c)}`}${a}`)}else t.push(o`${o.raw(i.joinType)} join ${n}${a}`);s<e.length-1&&t.push(o` `)}return o.join(t)}buildLimit(e){return typeof e=="object"||typeof e=="number"&&e>=0?o` limit ${e}`:void 0}buildOrderBy(e){let t=[];if(e)for(let[s,i]of e.entries())t.push(i),s<e.length-1&&t.push(o`, `);return t.length>0?o` order by ${o.join(t)}`:void 0}buildFromTable(e){return m(e,h)&&e[h.Symbol.IsAlias]?o`${o`${o.identifier(e[h.Symbol.Schema]??"")}.`.if(e[h.Symbol.Schema])}${o.identifier(e[h.Symbol.OriginalName])} ${o.identifier(e[h.Symbol.Name])}`:e}buildSelectQuery({withList:e,fields:t,fieldsFlat:s,where:i,having:n,table:a,joins:u,orderBy:f,groupBy:d,limit:c,offset:y,distinct:b,setOperators:N}){let v=s??V(t);for(let k of v)if(m(k.field,w)&&se(k.field.table)!==(m(a,O)?a._.alias:m(a,ne)?a[T].name:m(a,p)?void 0:se(a))&&!(H=>u?.some(({alias:je})=>je===(H[h.Symbol.IsAlias]?se(H):H[h.Symbol.BaseName])))(k.field.table)){let H=se(k.field.table);throw new Error(`Your "${k.path.join("->")}" field references a column "${H}"."${k.field.name}", but the table "${H}" is not part of the query! Did you forget to join it?`)}let S=!u||u.length===0,Q=this.buildWithCTE(e),L=b?o` distinct`:void 0,F=this.buildSelection(v,{isSingleTable:S}),D=this.buildFromTable(a),x=this.buildJoins(u),Z=i?o` where ${i}`:void 0,z=n?o` having ${n}`:void 0,g=[];if(d)for(let[k,H]of d.entries())g.push(H),k<d.length-1&&g.push(o`, `);let C=g.length>0?o` group by ${o.join(g)}`:void 0,X=this.buildOrderBy(f),Ee=this.buildLimit(c),dt=y?o` offset ${y}`:void 0,fe=o`${Q}select${L} ${F} from ${D}${x}${Z}${C}${z}${X}${Ee}${dt}`;return N.length>0?this.buildSetOperations(fe,N):fe}buildSetOperations(e,t){let[s,...i]=t;if(!s)throw new Error("Cannot pass undefined values to any set operator");return i.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:s}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:s}),i)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:s,rightSelect:i,limit:n,orderBy:a,offset:u}}){let f=o`${e.getSQL()} `,d=o`${i.getSQL()}`,c;if(a&&a.length>0){let v=[];for(let S of a)if(m(S,$))v.push(o.identifier(S.name));else if(m(S,p)){for(let Q=0;Q<S.queryChunks.length;Q++){let L=S.queryChunks[Q];m(L,$)&&(S.queryChunks[Q]=o.identifier(this.casing.getColumnCasing(L)))}v.push(o`${S}`)}else v.push(o`${S}`);c=o` order by ${o.join(v,o`, `)}`}let y=typeof n=="object"||typeof n=="number"&&n>=0?o` limit ${n}`:void 0,b=o.raw(`${t} ${s?"all ":""}`),N=u?o` offset ${u}`:void 0;return o`${f}${b}${d}${c}${y}${N}`}buildInsertQuery({table:e,values:t,onConflict:s,returning:i,withList:n,select:a}){let u=[],f=e[h.Symbol.Columns],d=Object.entries(f).filter(([S,Q])=>!Q.shouldDisableInsert()),c=d.map(([,S])=>o.identifier(this.casing.getColumnCasing(S)));if(a){let S=t;m(S,p)?u.push(S):u.push(S.getSQL())}else{let S=t;u.push(o.raw("values "));for(let[Q,L]of S.entries()){let F=[];for(let[D,x]of d){let Z=L[D];if(Z===void 0||m(Z,R)&&Z.value===void 0){let z;if(x.default!==null&&x.default!==void 0)z=m(x.default,p)?x.default:o.param(x.default,x);else if(x.defaultFn!==void 0){let g=x.defaultFn();z=m(g,p)?g:o.param(g,x)}else if(!x.default&&x.onUpdateFn!==void 0){let g=x.onUpdateFn();z=m(g,p)?g:o.param(g,x)}else z=o`null`;F.push(z)}else F.push(Z)}u.push(F),Q<S.length-1&&u.push(o`, `)}}let y=this.buildWithCTE(n),b=o.join(u),N=i?o` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,v=s?.length?o.join(s):void 0;return o`${y}insert into ${e} ${c} ${b}${v}${N}`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:s,table:i,tableConfig:n,queryConfig:a,tableAlias:u,nestedQueryRelation:f,joinOn:d}){let c=[],y,b,N=[],v,S=[];if(a===!0)c=Object.entries(n.columns).map(([F,D])=>({dbKey:D.name,tsKey:F,field:G(D,u),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let L=Object.fromEntries(Object.entries(n.columns).map(([g,C])=>[g,G(C,u)]));if(a.where){let g=typeof a.where=="function"?a.where(L,us()):a.where;v=g&&ve(g,u)}let F=[],D=[];if(a.columns){let g=!1;for(let[C,X]of Object.entries(a.columns))X!==void 0&&C in n.columns&&(!g&&X===!0&&(g=!0),D.push(C));D.length>0&&(D=g?D.filter(C=>a.columns?.[C]===!0):Object.keys(n.columns).filter(C=>!D.includes(C)))}else D=Object.keys(n.columns);for(let g of D){let C=n.columns[g];F.push({tsKey:g,value:C})}let x=[];a.with&&(x=Object.entries(a.with).filter(g=>!!g[1]).map(([g,C])=>({tsKey:g,queryConfig:C,relation:n.relations[g]})));let Z;if(a.extras){Z=typeof a.extras=="function"?a.extras(L,{sql:o}):a.extras;for(let[g,C]of Object.entries(Z))F.push({tsKey:g,value:jt(C,u)})}for(let{tsKey:g,value:C}of F)c.push({dbKey:m(C,p.Aliased)?C.fieldAlias:n.columns[g].name,tsKey:g,field:m(C,w)?G(C,u):C,relationTableTsKey:void 0,isJson:!1,selection:[]});let z=typeof a.orderBy=="function"?a.orderBy(L,cs()):a.orderBy??[];Array.isArray(z)||(z=[z]),N=z.map(g=>m(g,w)?G(g,u):ve(g,u)),y=a.limit,b=a.offset;for(let{tsKey:g,queryConfig:C,relation:X}of x){let Ee=fs(t,s,X),dt=oe(X.referencedTable),fe=s[dt],k=`${u}_${g}`,H=te(...Ee.fields.map((As,Ps)=>M(G(Ee.references[Ps],k),G(As,u)))),je=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:s,table:e[fe],tableConfig:t[fe],queryConfig:m(X,ie)?C===!0?{limit:1}:{...C,limit:1}:C,tableAlias:k,joinOn:H,nestedQueryRelation:X}),Bs=o`(${je.sql})`.as(g);c.push({dbKey:g,tsKey:g,field:Bs,relationTableTsKey:fe,isJson:!0,selection:je.selection})}}if(c.length===0)throw new ue({message:`No fields selected for table "${n.tsName}" ("${u}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let Q;if(v=te(d,v),f){let L=o`json_array(${o.join(c.map(({field:x})=>m(x,$)?o.identifier(this.casing.getColumnCasing(x)):m(x,p.Aliased)?x.sql:x),o`, `)})`;m(f,$e)&&(L=o`coalesce(json_group_array(${L}), json_array())`);let F=[{dbKey:"data",tsKey:"data",field:L.as("data"),isJson:!0,relationTableTsKey:n.tsName,selection:c}];y!==void 0||b!==void 0||N.length>0?(Q=this.buildSelectQuery({table:qe(i,u),fields:{},fieldsFlat:[{path:[],field:o.raw("*")}],where:v,limit:y,offset:b,orderBy:N,setOperators:[]}),v=void 0,y=void 0,b=void 0,N=void 0):Q=qe(i,u),Q=this.buildSelectQuery({table:m(Q,B)?Q:new O(Q,{},u),fields:{},fieldsFlat:F.map(({field:x})=>({path:[],field:m(x,w)?G(x,u):x})),joins:S,where:v,limit:y,offset:b,orderBy:N,setOperators:[]})}else Q=this.buildSelectQuery({table:qe(i,u),fields:{},fieldsFlat:c.map(({field:L})=>({path:[],field:m(L,w)?G(L,u):L})),joins:S,where:v,limit:y,offset:b,orderBy:N,setOperators:[]});return{tableTsKey:n.tsName,sql:Q,selection:c}}},ge=class extends ce{static[l]="SQLiteSyncDialect";migrate(e,t,s){let i=s===void 0||typeof s=="string"?"__drizzle_migrations":s.migrationsTable??"__drizzle_migrations",n=o`
|
|
3
3
|
CREATE TABLE IF NOT EXISTS ${o.identifier(i)} (
|
|
4
4
|
id SERIAL PRIMARY KEY,
|
package/workers/tunnel-proxy.js
CHANGED
|
@@ -34,7 +34,7 @@ var h={async fetch(e,r){let n=new URL(e.url);n.host=r.TUNNEL_HOST;let l=new Head
|
|
|
34
34
|
Alchemy</a>.</p>
|
|
35
35
|
</div>
|
|
36
36
|
<div class="bg-slate-200 px-5 py-3 flex flex-col w-full max-w-lg">
|
|
37
|
-
<p class="text-sm text-slate-500">Alchemy 0.
|
|
37
|
+
<p class="text-sm text-slate-500">Alchemy 0.74.0</p>
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|
|
40
40
|
</body>
|