equipped 5.3.0-alpha.0 → 5.3.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/CHANGELOG.md +7 -0
- package/dist/cjs/server/adapters/express/index.cjs +266 -4
- package/dist/cjs/server/adapters/express/index.cjs.map +1 -1
- package/dist/cjs/server/adapters/express/index.min.cjs +7 -7
- package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -1
- package/dist/cjs/server/adapters/fastify/index.cjs +269 -4
- package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -1
- package/dist/cjs/server/adapters/fastify/index.min.cjs +7 -7
- package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -1
- package/dist/cjs/server/index.cjs +215 -4
- package/dist/cjs/server/index.cjs.map +1 -1
- package/dist/cjs/server/index.min.cjs +7 -7
- package/dist/cjs/server/index.min.cjs.map +1 -1
- package/dist/esm/cache/adapters/in-memory/index.min.mjs +1 -1
- package/dist/esm/cache/adapters/in-memory/index.mjs +2 -2
- package/dist/esm/cache/adapters/redis/index.min.mjs +1 -1
- package/dist/esm/cache/adapters/redis/index.mjs +3 -3
- package/dist/esm/cache/index.min.mjs +1 -1
- package/dist/esm/cache/index.mjs +2 -2
- package/dist/esm/{chunk-WHIWTP2Z.min.mjs → chunk-4JLDXF7T.min.mjs} +2 -2
- package/dist/esm/{chunk-I4BB436E.mjs → chunk-4MXYZS5R.mjs} +2 -2
- package/dist/esm/{chunk-YTM6ZURZ.min.mjs → chunk-5VW3JAFR.min.mjs} +2 -2
- package/dist/esm/{chunk-YTHRK2PO.mjs → chunk-AKQBDYUO.mjs} +3 -3
- package/dist/esm/{chunk-MYGAF2AC.min.mjs → chunk-B5QQ32YY.min.mjs} +2 -2
- package/dist/esm/chunk-FLAPYQUT.min.mjs +32 -0
- package/dist/esm/chunk-FLAPYQUT.min.mjs.map +1 -0
- package/dist/esm/{chunk-KW3PBDFD.mjs → chunk-JH6EBXY4.mjs} +2 -2
- package/dist/esm/{chunk-2TCFNKRZ.mjs → chunk-MDQKODYQ.mjs} +216 -5
- package/dist/esm/chunk-MDQKODYQ.mjs.map +1 -0
- package/dist/esm/{chunk-ECBJ3NT3.min.mjs → chunk-PCAUXBAG.min.mjs} +2 -2
- package/dist/esm/{chunk-RIRBNBTC.mjs → chunk-PNZNNUMN.mjs} +3 -3
- package/dist/esm/{chunk-TWKHVLLT.mjs → chunk-PQCBVQL6.mjs} +2 -2
- package/dist/esm/{chunk-AUKXL4EA.min.mjs → chunk-QHLKB47N.min.mjs} +2 -2
- package/dist/esm/{chunk-6DW4GW3R.min.mjs → chunk-SGZNOYC3.min.mjs} +2 -2
- package/dist/esm/{chunk-6SB5M4XH.mjs → chunk-TVTYDU2D.mjs} +3 -3
- package/dist/esm/{chunk-IEBC3OWN.mjs → chunk-Z2TZ3KR7.mjs} +2 -2
- package/dist/esm/{chunk-OXI6IKAM.min.mjs → chunk-ZGMFFK6Y.min.mjs} +2 -2
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs +1 -1
- package/dist/esm/dbs/adapters/mongodb/index.mjs +3 -3
- package/dist/esm/dbs/index.min.mjs +1 -1
- package/dist/esm/dbs/index.mjs +3 -3
- package/dist/esm/errors/index.min.mjs +1 -1
- package/dist/esm/errors/index.mjs +1 -1
- package/dist/esm/events/adapters/kafka/index.min.mjs +1 -1
- package/dist/esm/events/adapters/kafka/index.mjs +2 -2
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs +1 -1
- package/dist/esm/events/adapters/rabbitmq/index.mjs +1 -1
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/instance/index.min.mjs +1 -1
- package/dist/esm/instance/index.mjs +1 -1
- package/dist/esm/{introspection-Y7EXSYPD.mjs → introspection-32BRYKYY.mjs} +3 -3
- package/dist/esm/introspection-A72WMWE3.min.mjs +2 -0
- package/dist/esm/jobs/adapters/redis/index.min.mjs +1 -1
- package/dist/esm/jobs/adapters/redis/index.mjs +3 -3
- package/dist/esm/orm/adapters/in-memory/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/in-memory/index.mjs +3 -3
- package/dist/esm/orm/adapters/json/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/json/index.mjs +3 -3
- package/dist/esm/orm/adapters/mongodb/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/mongodb/index.mjs +2 -2
- package/dist/esm/orm/adapters/postgresql/index.min.mjs +2 -2
- package/dist/esm/orm/adapters/postgresql/index.mjs +3 -3
- package/dist/esm/orm/index.min.mjs +1 -1
- package/dist/esm/orm/index.mjs +3 -3
- package/dist/esm/server/adapters/express/index.min.mjs +1 -1
- package/dist/esm/server/adapters/express/index.min.mjs.map +1 -1
- package/dist/esm/server/adapters/express/index.mjs +52 -1
- package/dist/esm/server/adapters/express/index.mjs.map +1 -1
- package/dist/esm/server/adapters/fastify/index.min.mjs +1 -1
- package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -1
- package/dist/esm/server/adapters/fastify/index.mjs +55 -1
- package/dist/esm/server/adapters/fastify/index.mjs.map +1 -1
- package/dist/esm/server/index.min.mjs +1 -1
- package/dist/esm/server/index.mjs +1 -1
- package/dist/esm/utilities/index.min.mjs +1 -1
- package/dist/esm/utilities/index.mjs +1 -1
- package/dist/esm/validations/index.min.mjs +1 -1
- package/dist/esm/validations/index.mjs +1 -1
- package/dist/types/{base-3PpBAx1K.d.ts → base-DVr0fHil.d.ts} +20 -2
- package/dist/types/cache/adapters/in-memory/index.js +2 -2
- package/dist/types/cache/adapters/redis/index.js +3 -3
- package/dist/types/cache/index.js +2 -2
- package/dist/types/{chunk-JZ2JTENY.js → chunk-3M4PBZAQ.js} +2 -2
- package/dist/types/{chunk-LWUMIHL4.js → chunk-3TKJGSCZ.js} +1 -1
- package/dist/types/{chunk-4LRJJSGG.js → chunk-65EHKCDZ.js} +2 -2
- package/dist/types/{chunk-A2MRYMCA.js → chunk-JQ2FWX4W.js} +1 -1
- package/dist/types/{chunk-H6JBLKX5.js → chunk-NJ2FHI3U.js} +2 -2
- package/dist/types/{chunk-XOU2A2Y6.js → chunk-OHFTQGQG.js} +1 -1
- package/dist/types/{chunk-IAHTILKJ.js → chunk-XGGGAEET.js} +1 -1
- package/dist/types/{chunk-32DMHN3G.js → chunk-YTY3EFNB.js} +215 -4
- package/dist/types/dbs/adapters/mongodb/index.js +3 -3
- package/dist/types/dbs/index.js +3 -3
- package/dist/types/errors/index.js +1 -1
- package/dist/types/events/adapters/kafka/index.js +2 -2
- package/dist/types/events/adapters/rabbitmq/index.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/instance/index.js +1 -1
- package/dist/types/{introspection-ZQCAW254.js → introspection-VOIU3XE6.js} +2 -2
- package/dist/types/jobs/adapters/redis/index.js +3 -3
- package/dist/types/orm/adapters/in-memory/index.js +3 -3
- package/dist/types/orm/adapters/json/index.js +3 -3
- package/dist/types/orm/adapters/mongodb/index.js +2 -2
- package/dist/types/orm/adapters/postgresql/index.js +3 -3
- package/dist/types/orm/index.js +3 -3
- package/dist/types/server/adapters/express/index.d.ts +3 -1
- package/dist/types/server/adapters/express/index.js +52 -1
- package/dist/types/server/adapters/fastify/index.d.ts +3 -1
- package/dist/types/server/adapters/fastify/index.js +55 -1
- package/dist/types/server/index.d.ts +2 -2
- package/dist/types/server/index.js +1 -1
- package/dist/types/utilities/index.js +1 -1
- package/dist/types/validations/index.js +1 -1
- package/package.json +2 -4
- package/dist/esm/chunk-2TCFNKRZ.mjs.map +0 -1
- package/dist/esm/chunk-LTDVZJYJ.min.mjs +0 -32
- package/dist/esm/chunk-LTDVZJYJ.min.mjs.map +0 -1
- package/dist/esm/introspection-GP3G26B6.min.mjs +0 -2
- /package/dist/esm/{chunk-WHIWTP2Z.min.mjs.map → chunk-4JLDXF7T.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-I4BB436E.mjs.map → chunk-4MXYZS5R.mjs.map} +0 -0
- /package/dist/esm/{chunk-YTM6ZURZ.min.mjs.map → chunk-5VW3JAFR.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-YTHRK2PO.mjs.map → chunk-AKQBDYUO.mjs.map} +0 -0
- /package/dist/esm/{chunk-MYGAF2AC.min.mjs.map → chunk-B5QQ32YY.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-KW3PBDFD.mjs.map → chunk-JH6EBXY4.mjs.map} +0 -0
- /package/dist/esm/{chunk-ECBJ3NT3.min.mjs.map → chunk-PCAUXBAG.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-RIRBNBTC.mjs.map → chunk-PNZNNUMN.mjs.map} +0 -0
- /package/dist/esm/{chunk-TWKHVLLT.mjs.map → chunk-PQCBVQL6.mjs.map} +0 -0
- /package/dist/esm/{chunk-AUKXL4EA.min.mjs.map → chunk-QHLKB47N.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-6DW4GW3R.min.mjs.map → chunk-SGZNOYC3.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-6SB5M4XH.mjs.map → chunk-TVTYDU2D.mjs.map} +0 -0
- /package/dist/esm/{chunk-IEBC3OWN.mjs.map → chunk-Z2TZ3KR7.mjs.map} +0 -0
- /package/dist/esm/{chunk-OXI6IKAM.min.mjs.map → chunk-ZGMFFK6Y.min.mjs.map} +0 -0
- /package/dist/esm/{introspection-GP3G26B6.min.mjs.map → introspection-32BRYKYY.mjs.map} +0 -0
- /package/dist/esm/{introspection-Y7EXSYPD.mjs.map → introspection-A72WMWE3.min.mjs.map} +0 -0
package/dist/esm/index.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{K as o}from "./chunk-
|
|
1
|
+
import{K as o}from "./chunk-FLAPYQUT.min.mjs";import"./chunk-DSUJ5FUL.min.mjs";import"./chunk-AQY7QVYI.min.mjs";export{o as Instance};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{K as a}from "../chunk-
|
|
1
|
+
import{K as a}from "../chunk-FLAPYQUT.min.mjs";import"../chunk-DSUJ5FUL.min.mjs";import"../chunk-AQY7QVYI.min.mjs";export{a as Instance};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OrmIntrospectionError
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-JH6EBXY4.mjs";
|
|
4
|
+
import "./chunk-MDQKODYQ.mjs";
|
|
5
5
|
import "./chunk-VCCS7CAI.mjs";
|
|
6
6
|
import "./chunk-J5LGTIGS.mjs";
|
|
7
7
|
export {
|
|
8
8
|
OrmIntrospectionError
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=introspection-
|
|
10
|
+
//# sourceMappingURL=introspection-32BRYKYY.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d,b as l}from "../../../chunk-
|
|
1
|
+
import{a as d,b as l}from "../../../chunk-5VW3JAFR.min.mjs";import"../../../chunk-PCAUXBAG.min.mjs";import{b as c}from "../../../chunk-BJNIUCPT.min.mjs";import{K as s,m as n,r as p}from "../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import{Queue as y,Worker as f}from"bullmq";import{v as i}from"valleyed";var h=()=>i.meta(i.object({redisConfig:d(),queueName:i.string()}),{title:"Redis Jobs Config",$refId:"RedisJobsConfig"}),m=class b extends n(h,c){#e;constructor(e){super(e);let t=l.create(e.redisConfig,{maxRetriesPerRequest:null,enableReadyCheck:!1}),a=s.get().getScopedName(e.queueName);this.#e=new y(a,{connection:t.connectionOptions,skipVersionCheck:!0});let r=new f(a,async o=>{switch(o.name){case"DelayedJob":return this.callbacks.onDelayed?.(o.data);case"CronJob":return this.callbacks.onCron?.(o.data.type);case"RepeatableJob":return this.callbacks.onRepeatable?.(o.data)}},{connection:t.connectionOptions,autorun:!1,skipVersionCheck:!0});s.on("start",async()=>{await this.#o(),await Promise.all(this.crons.map(({cron:o,name:u})=>this.#a(u,o))),r.run()},{class:b})}#t(){return[Date.now(),p.string()].join("_")}async#a(e,t){return(await this.#e.add("CronJob",{type:e},{jobId:this.#t(),repeat:{pattern:t},removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async#o(){await this.retryAllFailedJobs();let e=await this.#e.getJobSchedulers();await Promise.all(e.map(t=>this.#e.removeJobScheduler(t.key)))}async addDelayed(e,t){return(await this.#e.add("DelayedJob",e,{jobId:this.#t(),delay:t,removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async addRepeatable(e,t,a){return(await this.#e.add("RepeatableJob",e,{jobId:this.#t(),repeat:{pattern:t,...a?{tz:a}:{}},removeOnComplete:!0,backoff:1e3,attempts:3})).opts?.repeat?.key??""}async removeDelayed(e){let t=await this.#e.getJob(e);t&&await t.remove()}async retryAllFailedJobs(){let e=await this.#e.getFailed();await Promise.all(e.map(t=>t.retry()))}};export{m as RedisJob,h as redisJobsConfigPipe};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RedisCache,
|
|
3
3
|
redisConfigPipe
|
|
4
|
-
} from "../../../chunk-
|
|
5
|
-
import "../../../chunk-
|
|
4
|
+
} from "../../../chunk-PNZNNUMN.mjs";
|
|
5
|
+
import "../../../chunk-Z2TZ3KR7.mjs";
|
|
6
6
|
import {
|
|
7
7
|
Job
|
|
8
8
|
} from "../../../chunk-DKPZJIIR.mjs";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Instance,
|
|
11
11
|
configurable,
|
|
12
12
|
random_exports
|
|
13
|
-
} from "../../../chunk-
|
|
13
|
+
} from "../../../chunk-MDQKODYQ.mjs";
|
|
14
14
|
import "../../../chunk-VCCS7CAI.mjs";
|
|
15
15
|
import "../../../chunk-J5LGTIGS.mjs";
|
|
16
16
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from "../../../chunk-
|
|
1
|
+
import{a}from "../../../chunk-B5QQ32YY.min.mjs";import"../../../chunk-4JLDXF7T.min.mjs";import"../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";export{a as InMemoryAdapter};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InMemoryAdapter
|
|
3
|
-
} from "../../../chunk-
|
|
4
|
-
import "../../../chunk-
|
|
5
|
-
import "../../../chunk-
|
|
3
|
+
} from "../../../chunk-TVTYDU2D.mjs";
|
|
4
|
+
import "../../../chunk-PQCBVQL6.mjs";
|
|
5
|
+
import "../../../chunk-MDQKODYQ.mjs";
|
|
6
6
|
import "../../../chunk-VCCS7CAI.mjs";
|
|
7
7
|
import "../../../chunk-J5LGTIGS.mjs";
|
|
8
8
|
export {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as l}from "../../../chunk-
|
|
1
|
+
import{a as l}from "../../../chunk-B5QQ32YY.min.mjs";import{j as p}from "../../../chunk-4JLDXF7T.min.mjs";import{m as d}from "../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import{open as w,readFile as h,rename as y,unlink as f,writeFile as b}from"fs/promises";import{v as o}from"valleyed";var k=()=>o.object({filePath:o.string()}),u=class extends d(k,p){schemaConfigPipe=o.object({table:o.string()});#e=l.create({});supportedFieldTypes=this.#e.supportedFieldTypes;queryableOps=this.#e.queryableOps;updateOps=this.#e.updateOps;aggregateOps=this.#e.aggregateOps;#t=Promise.resolve();constructor(e){super(e)}get stores(){return this.#e.stores}#n(){let e={},a=[...this.#e.migrations.values()];a.length>0&&(e.__migrations=a);let t={};for(let[i,s]of this.#e.tables.entries())t[i]={pk:s.pk,fields:Object.fromEntries(s.fields.entries())};Object.keys(t).length>0&&(e.__tables=t);let n={};for(let[i,s]of this.#e.indexes.entries())n[i]={table:s.table,on:[...s.on],unique:s.unique};Object.keys(n).length>0&&(e.__indexes=n);let r={};for(let[i,s]of this.#e.foreignKeys.entries())r[i]={table:s.table,on:s.on,references:s.references,...s.onDelete?{onDelete:s.onDelete}:{},...s.onUpdate?{onUpdate:s.onUpdate}:{}};Object.keys(r).length>0&&(e.__foreignKeys=r);for(let[i,s]of this.stores.entries()){let c={};for(let[m,g]of s.entries())c[m]=g;e[i]=c}return JSON.stringify(e)}async#s(){let e=this.#n(),a=this.config.filePath+".tmp."+process.pid+"."+Date.now();await b(a,e,"utf-8"),await y(a,this.config.filePath)}#a(){let e=this.#t.then(()=>this.#s());return this.#t=e.catch(()=>{}),e}async connect(){let e;try{e=await h(this.config.filePath,"utf-8")}catch{return}let a=JSON.parse(e);if(this.#e.migrations.clear(),Array.isArray(a.__migrations))for(let t of a.__migrations)this.#e.migrations.set(t.id,{id:t.id,appliedAt:t.appliedAt});if(this.#e.tables.clear(),a.__tables&&typeof a.__tables=="object")for(let[t,n]of Object.entries(a.__tables)){let r=new Map;if(n.fields)for(let[i,s]of Object.entries(n.fields))r.set(i,s);this.#e.tables.set(t,{pk:n.pk,fields:r})}if(this.#e.indexes.clear(),a.__indexes&&typeof a.__indexes=="object")for(let[t,n]of Object.entries(a.__indexes))this.#e.indexes.set(t,{table:n.table,on:n.on,unique:n.unique});if(this.#e.foreignKeys.clear(),a.__foreignKeys&&typeof a.__foreignKeys=="object")for(let[t,n]of Object.entries(a.__foreignKeys))this.#e.foreignKeys.set(t,n);this.stores.clear();for(let[t,n]of Object.entries(a)){if(t.startsWith("__"))continue;let r=new Map;for(let[i,s]of Object.entries(n))r.set(i,s);this.stores.set(t,r)}}async disconnect(){await this.#a()}async findByPk(e,a,t){return this.#e.findByPk(e,a,t)}async createMany(e,a,t){let n=await this.#e.createMany(e,a,t);return await this.#a(),n}async updateByPk(e,a,t,n){let r=await this.#e.updateByPk(e,a,t,n);return r&&await this.#a(),r}async deleteByPk(e,a,t){let n=await this.#e.deleteByPk(e,a,t);return n&&await this.#a(),n}async findMany(e,a,t,n){return this.#e.findMany(e,a,t,n)}async count(e,a,t){return this.#e.count(e,a,t)}iterateMany(e,a,t,n){return this.#e.iterateMany(e,a,t,n)}async updateMany(e,a,t,n){let r=await this.#e.updateMany(e,a,t,n);return r.length&&await this.#a(),r}async deleteMany(e,a,t){let n=await this.#e.deleteMany(e,a,t);return n.length&&await this.#a(),n}async upsertOne(e,a,t,n,r){let i=await this.#e.upsertOne(e,a,t,n,r);return await this.#a(),i}async aggregate(e,a,t){return this.#e.aggregate(e,a,t)}async session(e){return this.#e.session(async()=>{let a=await e();return await this.#a(),a})}async loadMigrations(){return await this.connect(),this.#e.loadMigrations()}async recordMigration(e,a){await this.#e.recordMigration(e,a),await this.#a()}async acquireMigrationLock(e){let a=this.config.filePath+".lock",t=Date.now()+3e4;for(;;)try{await(await w(a,"wx")).close();break}catch(n){if(n.code!=="EEXIST")throw n;if(Date.now()>t)throw new Error("Timed out waiting for migration lock");await new Promise(r=>setTimeout(r,50))}try{return await e()}finally{await f(a).catch(()=>{})}}async applyCreateTable(e){await this.#e.applyCreateTable(e),await this.#a()}async applyDropTable(e){await this.#e.applyDropTable(e),await this.#a()}async applyAddField(e){await this.#e.applyAddField(e),await this.#a()}async applyDropField(e){await this.#e.applyDropField(e),await this.#a()}async applyModifyField(e){await this.#e.applyModifyField(e),await this.#a()}async applyRenameTable(e){await this.#e.applyRenameTable(e),await this.#a()}async applyRenameField(e){await this.#e.applyRenameField(e),await this.#a()}async applyAddIndex(e){await this.#e.applyAddIndex(e),await this.#a()}async applyDropIndex(e){await this.#e.applyDropIndex(e),await this.#a()}async applyAddForeignKey(e){await this.#e.applyAddForeignKey(e),await this.#a()}async applyDropForeignKey(e){await this.#e.applyDropForeignKey(e),await this.#a()}async introspect(){return this.#e.introspect()}};export{u as JsonAdapter};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InMemoryAdapter
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-TVTYDU2D.mjs";
|
|
4
4
|
import {
|
|
5
5
|
OrmAdapter
|
|
6
|
-
} from "../../../chunk-
|
|
6
|
+
} from "../../../chunk-PQCBVQL6.mjs";
|
|
7
7
|
import {
|
|
8
8
|
configurable
|
|
9
|
-
} from "../../../chunk-
|
|
9
|
+
} from "../../../chunk-MDQKODYQ.mjs";
|
|
10
10
|
import "../../../chunk-VCCS7CAI.mjs";
|
|
11
11
|
import "../../../chunk-J5LGTIGS.mjs";
|
|
12
12
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{E as C,f as A,g as _,j as v,l as O,m as q,n as D,o as F,p as B,q as S,r as E,s as R}from "../../../chunk-
|
|
1
|
+
import{E as C,f as A,g as _,j as v,l as O,m as q,n as D,o as F,p as B,q as S,r as E,s as R}from "../../../chunk-4JLDXF7T.min.mjs";import{a as d,m as k}from "../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import{AsyncLocalStorage as U}from"async_hooks";import{MongoClient as L}from"mongodb";import{v as x}from"valleyed";function m(s,o){let e=[];for(let r of s.children){let a=T(r,o);a&&e.push(a)}return e.length===0?{}:e.length===1?e[0]:{$and:e}}function b(s,o,e){let r=m(s,e),a=o?.orderBy??[],n=a.length>0?Object.fromEntries(a.map(c=>[h(c.field,e),c.direction==="desc"?-1:1])):void 0,t=o?.select??[],i=t.length>0?Object.fromEntries(t.map(c=>[h(c,e),1])):void 0;return{filter:r,sort:n,limit:o?.limit,skip:o?.offset,projection:i}}function h(s,o){return s==="id"&&o==="_id"?"_id":s}function P(s,o){let e=h(s.field,o);switch(s.op){case"eq":return{[e]:{$eq:s.value}};case"ne":return{[e]:{$ne:s.value}};case"gt":return{[e]:{$gt:s.value}};case"gte":return{[e]:{$gte:s.value}};case"lt":return{[e]:{$lt:s.value}};case"lte":return{[e]:{$lte:s.value}};case"in":return{[e]:{$in:s.value}};case"notIn":return{[e]:{$nin:s.value}};case"like":return{[e]:{$regex:new RegExp(String(s.value),"i")}};case"exists":return{[e]:{$exists:!0,$ne:null}};case"notExists":return{[e]:{$eq:null}};case"contains":return{[e]:{$all:Array.isArray(s.value)?s.value:[s.value]}};case"notContains":return{[e]:{$not:{$all:Array.isArray(s.value)?s.value:[s.value]}}};default:return{[e]:{$eq:s.value}}}}function T(s,o){return s instanceof A?P(s,o):s instanceof _?G(s,o):null}function G(s,o){let e=s.children.map(r=>T(r,o)).filter(r=>r!==null);return e.length===0?null:e.length===1?e[0]:{[s.op==="or"?"$or":"$and"]:e}}function w(s){let o={},e={},r={},a={},n={},t={},i={},c={};for(let[u,p]of Object.entries(s))if(p instanceof O)e[u]=p.value;else if(p instanceof q)r[u]=p.value;else if(p instanceof D)a[u]=p.value;else if(p instanceof F)n[u]=p.value;else if(p instanceof B)t[u]="";else if(p instanceof S)i[u]=p.value;else if(p instanceof E)c[u]=p.value;else if(p instanceof R){let y=p.value;for(let[g,f]of Object.entries(y))o[`${u}.${g}`]=f}else o[u]=p;let l={};return Object.keys(o).length&&(l.$set=o),Object.keys(e).length&&(l.$inc=e),Object.keys(r).length&&(l.$mul=r),Object.keys(a).length&&(l.$min=a),Object.keys(n).length&&(l.$max=n),Object.keys(t).length&&(l.$unset=t),Object.keys(i).length&&(l.$push=i),Object.keys(c).length&&(l.$pull=c),l}function M(s){return w(C(s))}function I(s,o){let e=[];if(s.where){let t=m(s.where,o);Object.keys(t).length>0&&e.push({$match:t})}let r=s.groupBy.length>0?Object.fromEntries(s.groupBy.map(t=>[t,`$${h(t,o)}`])):null,a={};for(let t of s.aggregates){let i=t.field?`$${h(t.field,o)}`:void 0;switch(t.fn){case"count":a[t.alias]={$sum:1};break;case"countDistinct":a[t.alias]={$addToSet:i};break;case"sum":case"avg":case"min":case"max":a[t.alias]={[`$${t.fn}`]:i};break}}e.push({$group:{_id:r,...a}});let n={_id:0};for(let t of s.groupBy)n[t]=`$_id.${t}`;for(let t of s.aggregates)t.fn==="countDistinct"?n[t.alias]={$size:`$${t.alias}`}:n[t.alias]=1;if(e.push({$project:n}),s.having){let t=m(s.having,"");Object.keys(t).length>0&&e.push({$match:t})}return e}var N=()=>x.object({db:x.string(),col:x.string()}),z=()=>x.object({uri:x.string()}),$="equipped_migrations",j=class extends k(z,v){schemaConfigPipe=N();queryableOps=["eq","ne","gt","gte","lt","lte","in","notIn","like","exists","notExists","contains","notContains"];updateOps=["set","inc","mul","min","max","unset","push","pull","patch"];aggregateOps=["count","countDistinct","sum","avg","min","max"];supportedFieldTypes=["string","number","boolean","null","object","array","date"];client;#e=new U;constructor(o,e){super(o),this.client=new L(o.uri,{...e,ignoreUndefined:!0})}#t(o){return this.client.db(o.db).collection(o.col)}async connect(){try{await this.client.connect()}catch(o){throw new d("Failed to connect MongoDB client",{adapter:"mongodb"},o)}}async disconnect(){try{await this.client.close()}catch(o){throw new d("Failed to disconnect MongoDB client",{adapter:"mongodb"},o)}}async findByPk(o,e,r){let a=e;try{let n=o.pkField.name;return await this.#t(a).findOne({[n]:r},{session:this.#e.getStore()})}catch(n){throw new d("MongoDB findByPk failed",{adapter:"mongodb",operation:"findByPk",collection:a.col},n)}}async createMany(o,e,r){let a=e;try{let n=this.#t(a),t=r.map(i=>i);return await n.insertMany(t,{session:this.#e.getStore()}),r}catch(n){throw new d("MongoDB createMany failed",{adapter:"mongodb",operation:"createMany",collection:a.col},n)}}async updateByPk(o,e,r,a){let n=e;try{let t=o.pkField.name,i=this.#t(n),c=M(a);return Object.keys(c).length===0?await i.findOne({[t]:r},{session:this.#e.getStore()}):await i.findOneAndUpdate({[t]:r},c,{returnDocument:"after",session:this.#e.getStore()})}catch(t){throw new d("MongoDB updateByPk failed",{adapter:"mongodb",operation:"updateByPk",collection:n.col},t)}}async deleteByPk(o,e,r){let a=e;try{let n=o.pkField.name;return await this.#t(a).findOneAndDelete({[n]:r},{session:this.#e.getStore()})}catch(n){throw new d("MongoDB deleteByPk failed",{adapter:"mongodb",operation:"deleteByPk",collection:a.col},n)}}async raw(o,e,r){let a=e;try{return await this.#t(a).aggregate(r,{session:this.#e.getStore()}).toArray()}catch(n){throw n instanceof d?n:new d("MongoDB raw failed",{adapter:"mongodb",operation:"raw",collection:a.col},n)}}async aggregate(o,e,r){let a=e;try{let n=o.pkField.name,t=this.#t(a),i=I(r,n);return await t.aggregate(i,{session:this.#e.getStore()}).toArray()}catch(n){throw n instanceof d?n:new d("MongoDB aggregate failed",{adapter:"mongodb",operation:"aggregate",collection:a.col},n)}}async findMany(o,e,r,a){let n=e;try{let t=o.pkField.name,{filter:i,sort:c,limit:l,skip:u,projection:p}=b(r,a,t),g=this.#t(n).find(i,{session:this.#e.getStore(),projection:p});return c&&(g=g.sort(c)),l&&(g=g.limit(l)),u&&(g=g.skip(u)),await g.toArray()}catch(t){throw new d("MongoDB findMany failed",{adapter:"mongodb",operation:"findMany",collection:n.col},t)}}async count(o,e,r){let a=e;try{let n=o.pkField.name;return await this.#t(a).countDocuments(m(r,n),{session:this.#e.getStore()})}catch(n){throw new d("MongoDB count failed",{adapter:"mongodb",operation:"count",collection:a.col},n)}}async*iterateMany(o,e,r,a){let n=e,t;try{let i=o.pkField.name,{filter:c,sort:l,limit:u,skip:p,projection:y}=b(r,a,i);t=this.#t(n).find(c,{session:this.#e.getStore(),projection:y}),l&&(t=t.sort(l)),u&&(t=t.limit(u)),p&&(t=t.skip(p)),a?.batchSize!==void 0&&(t=t.batchSize(a.batchSize));for await(let f of t)yield f}catch(i){throw new d("MongoDB iterateMany failed",{adapter:"mongodb",operation:"iterateMany",collection:n.col},i)}finally{await t?.close()}}async updateMany(o,e,r,a){let n=e;try{let t=o.pkField.name,i=this.#t(n),c=this.#e.getStore(),l=m(r,t),p=(await i.find(l,{session:c,projection:{[t]:1}}).toArray()).map(f=>f[t]),y={[t]:{$in:p}},g=w(a);return Object.keys(g).length>0&&await i.updateMany(y,g,{session:c}),await i.find({[t]:{$in:p}},{session:c}).toArray()}catch(t){throw new d("MongoDB updateMany failed",{adapter:"mongodb",operation:"updateMany",collection:n.col},t)}}async deleteMany(o,e,r){let a=e;try{let n=o.pkField.name,t=this.#t(a),i=this.#e.getStore(),c=m(r,n),l=await t.find(c,{session:i}).toArray();return l.length>0&&await t.deleteMany(c,{session:i}),l}catch(n){throw new d("MongoDB deleteMany failed",{adapter:"mongodb",operation:"deleteMany",collection:a.col},n)}}async upsertOne(o,e,r,a,n){let t=e;try{let i=o.pkField.name,c=this.#t(t),l=m(r,i),u=M(n);return await c.findOneAndUpdate(l,{...u,$setOnInsert:a},{returnDocument:"after",session:this.#e.getStore(),upsert:!0})}catch(i){throw new d("MongoDB upsertOne failed",{adapter:"mongodb",operation:"upsertOne",collection:t.col},i)}}async session(o){if(this.#e.getStore())return o();try{let e=await this.client.startSession();try{return await e.withTransaction(async()=>this.#e.run(e,o))}finally{await e.endSession()}}catch(e){throw e instanceof d?e:new d("MongoDB session failed",{adapter:"mongodb",operation:"session"},e)}}async loadMigrations(){return(await this.client.db().collection($).find({}).toArray()).map(r=>({id:String(r._id),appliedAt:r.appliedAt}))}async recordMigration(o,e){await this.client.db().collection($).insertOne({_id:o,appliedAt:e})}async applyAddIndex(o){let e=this.client.db(),r={};for(let n of o.on)r[n]=1;let a=o.name??`${o.table}_${o.on.join("_")}_idx`;await e.collection(o.table).createIndex(r,{unique:o.unique??!1,name:a})}async applyDropIndex(o){let e=this.client.db(),r=await e.listCollections().toArray();for(let a of r)if((await e.collection(a.name).listIndexes().toArray()).some(t=>t.name===o.name)){await e.collection(a.name).dropIndex(o.name);return}}async introspect(){let o=this.client.db(),e=await o.listCollections().toArray(),r=[];for(let a of e){if(a.name===$)continue;let t=(await o.collection(a.name).listIndexes().toArray()).filter(i=>i.name!=="_id_").map(i=>({name:i.name,on:Object.keys(i.key),unique:!!i.unique}));r.push({name:a.name,pk:void 0,fields:[],indexes:t,foreignKeys:[]})}return r}};export{j as MongoDbAdapter};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
PushOp,
|
|
12
12
|
UnsetOp,
|
|
13
13
|
flattenOps
|
|
14
|
-
} from "../../../chunk-
|
|
14
|
+
} from "../../../chunk-PQCBVQL6.mjs";
|
|
15
15
|
import {
|
|
16
16
|
EquippedError,
|
|
17
17
|
configurable
|
|
18
|
-
} from "../../../chunk-
|
|
18
|
+
} from "../../../chunk-MDQKODYQ.mjs";
|
|
19
19
|
import "../../../chunk-VCCS7CAI.mjs";
|
|
20
20
|
import "../../../chunk-J5LGTIGS.mjs";
|
|
21
21
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{E as S,a as v,f as O,g as B,j as P,l as I,m as D,n as M,o as G,p as Q,q as j,r as H,s as Y}from "../../../chunk-WHIWTP2Z.min.mjs";import{a as f,m as U}from "../../../chunk-LTDVZJYJ.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import{AsyncLocalStorage as pe}from"async_hooks";import{Pool as ue}from"pg";import de from"pg-cursor";import{v as E}from"valleyed";function b(a,e){return a==="id"&&e!=="id"?e:a}function K(a,e,t){switch(a.op){case"eq":return a.value===null?`${e} IS NULL`:`${e} = ${t(a.value)}`;case"ne":return a.value===null?`${e} IS NOT NULL`:`${e} != ${t(a.value)}`;case"gt":return`${e} > ${t(a.value)}`;case"gte":return`${e} >= ${t(a.value)}`;case"lt":return`${e} < ${t(a.value)}`;case"lte":return`${e} <= ${t(a.value)}`;case"in":return`${e} = ANY(${t(a.value)})`;case"notIn":return`NOT (${e} = ANY(${t(a.value)}))`;case"like":return`${e} ILIKE ${t(`%${a.value}%`)}`;case"exists":return`${e} IS NOT NULL`;case"notExists":return`${e} IS NULL`;case"contains":return`${e} @> ${t(JSON.stringify(a.value))}::jsonb`;case"notContains":return`NOT (${e} @> ${t(JSON.stringify(a.value))}::jsonb)`;default:return`${e} = ${t(a.value)}`}}function W(a,e,t){return K(a,`"${b(a.field,e)}"`,t)}function A(a,e){return a.children.map(t=>ie(t,e)).filter(t=>t!==null)}function oe(a,e){let t=A(a,e);return t.length===0?null:t.length===1?t[0]:`(${t.join(a.op==="or"?" OR ":" AND ")})`}function ie(a,e){return a instanceof O?e(a):a instanceof B?oe(a,e):null}function N(a,e,t=1){let n=[],o=t;function s(c){return n.push(c),`$${o++}`}let i=A(a,c=>W(c,e,s));return{whereClause:i.length>0?`WHERE ${i.join(" AND ")}`:"",params:n,nextParamIndex:o}}function L(a,e){let t=[],n=e;return{setParts:Object.entries(a).map(([s,r])=>{let i=`"${s}"`;return r instanceof I?(t.push(r.value),`${i} = ${i} + $${n++}`):r instanceof D?(t.push(r.value),`${i} = ${i} * $${n++}`):r instanceof M?(t.push(r.value),`${i} = LEAST(${i}, $${n++})`):r instanceof G?(t.push(r.value),`${i} = GREATEST(${i}, $${n++})`):r instanceof Q?`${i} = NULL`:r instanceof j?(t.push(JSON.stringify(r.value)),`${i} = ${i} || jsonb_build_array($${n++}::jsonb)`):r instanceof H?(t.push(JSON.stringify(r.value)),`${i} = (SELECT COALESCE(jsonb_agg(e), '[]'::jsonb) FROM jsonb_array_elements(${i}) e WHERE e <> $${n++}::jsonb)`):r instanceof Y?(t.push(JSON.stringify(r.value)),`${i} = ${i} || $${n++}::jsonb`):(t.push(r),`${i} = $${n++}`)}),params:t,nextParamIndex:n}}function $(a,e,t,n){let{whereClause:o,params:s,nextParamIndex:r}=N(a,n),i=r,l=(e?.orderBy??[]).map(g=>`"${b(g.field,n)}" ${g.direction.toUpperCase()}`),c=l.length>0?`ORDER BY ${l.join(", ")}`:"",d="";e?.limit!=null&&(s.push(e.limit),d=`LIMIT $${i++}`);let p="";return e?.offset!=null&&(s.push(e.offset),p=`OFFSET $${i++}`),{sql:`SELECT ${e?.select?.length?e.select.map(g=>`"${b(g,n)}"`).join(", "):"*"} FROM "${t}" ${o} ${c} ${d} ${p}`.trim().replace(/\s+/g," "),params:s}}function V(a,e,t){let{whereClause:n,params:o}=N(a,t);return{sql:`SELECT COUNT(*) as count FROM "${e}" ${n}`.trim().replace(/\s+/g," "),params:o}}function X(a,e){let t=Object.keys(e),n=Object.values(e),o=t.map((i,l)=>`$${l+1}`),s=t.map(i=>`"${i}"`).join(", ");return{sql:`INSERT INTO "${a}" (${s}) VALUES (${o.join(", ")}) RETURNING *`,params:n}}function J(a,e,t,n){let{setParts:o,params:s,nextParamIndex:r}=L(n,1),{whereClause:i,params:l}=N(a,t,r),c=[...s,...l];return{sql:`UPDATE "${e}" SET ${o.join(", ")} ${i} RETURNING *`.trim().replace(/\s+/g," "),params:c}}function z(a,e,t,n){let{setParts:o,params:s,nextParamIndex:r}=L(n,1);return s.push(t),{sql:`UPDATE "${a}" SET ${o.join(", ")} WHERE "${e}" = $${r} RETURNING *`.replace(/\s+/g," "),params:s}}function Z(a,e,t){let{whereClause:n,params:o}=N(a,t);return{sql:`DELETE FROM "${e}" ${n} RETURNING *`.trim().replace(/\s+/g," "),params:o}}function ee(a,e,t,n,o){let s=Object.keys(n),r=Object.values(n),i=s.map((y,m)=>`$${m+1}`),l=b(e,t),c,d=[...r];if(Object.keys(o).length>0){let{setParts:y,params:m}=L(o,s.length+1);c=y.join(", "),d.push(...m)}else c=`"${l}" = EXCLUDED."${l}"`;return{sql:`INSERT INTO "${a}" (${s.map(y=>`"${y}"`).join(", ")}) VALUES (${i.join(", ")}) ON CONFLICT ("${l}") DO UPDATE SET ${c} RETURNING *`.replace(/\s+/g," "),params:d}}function te(a,e){if(a.children.length===1&&a.children[0]instanceof O&&a.children[0].op==="eq")return a.children[0].field;let t;if(a.children.length===0)t="empty filter";else if(a.children.length===1){let n=a.children[0];t=`single non-eq filter (op: ${n instanceof O?n.op:"group"})`}else t=`${a.children.length} filter clauses`;throw new v("upsert-filter-incompatible",e,"upsertOne",[{cause:`PostgreSQL upsert requires a single eq filter on a UNIQUE-indexed column; received ${t}`}])}function le(a,e,t){if(a==="count")return"COUNT(*)";let n=`"${b(e,t)}"`;switch(a){case"countDistinct":return`COUNT(DISTINCT ${n})`;case"sum":return`SUM(${n})`;case"avg":return`AVG(${n})`;case"min":return`MIN(${n})`;case"max":return`MAX(${n})`}}function ce(a,e,t,n){return t.has(a)?t.get(a):n.has(a)?`"${b(a,e)}"`:`"${a}"`}function ne(a,e,t){let n=[],o=1;function s(m){return n.push(m),`$${o++}`}let r=[],i=new Map;for(let m of a.aggregates){let g=le(m.fn,m.field,t);i.set(m.alias,g),r.push(`${g} AS "${m.alias}"`)}let l=[];for(let m of a.groupBy){let g=`"${b(m,t)}"`;l.push(g),r.push(`${g} AS "${m}"`)}let c="";if(a.where){let m=q=>W(q,t,s),g=A(a.where,m);g.length>0&&(c=`WHERE ${g.join(" AND ")}`)}let d=l.length>0?`GROUP BY ${l.join(", ")}`:"",p="";if(a.having){let m=new Set(a.groupBy),g=T=>K(T,ce(T.field,t,i,m),s),q=A(a.having,g);q.length>0&&(p=`HAVING ${q.join(" AND ")}`)}return{sql:`SELECT ${r.join(", ")} FROM "${e}" ${c} ${d} ${p}`.trim().replace(/\s+/g," "),params:n}}var me=()=>E.object({host:E.string(),port:E.number(),username:E.string(),password:E.string(),database:E.string(),ssl:E.defaults(E.boolean(),!1)}),R="equipped_migrations",ae=3735928559,ge=1e3,F={string:"text",number:"double precision",boolean:"boolean",date:"timestamptz",null:"text",object:"jsonb",array:"jsonb"},ye={text:"string","character varying":"string",varchar:"string",char:"string",character:"string","double precision":"number",real:"number",integer:"number",smallint:"number",numeric:"number",decimal:"number",boolean:"boolean","timestamp with time zone":"date","timestamp without time zone":"date",timestamptz:"date",timestamp:"date",date:"date",jsonb:"object",json:"object"},re=class extends U(me,P){schemaConfigPipe=E.object({schema:E.optional(E.string()),table:E.string()});supportedFieldTypes=["string","number","boolean","null","object","array","date"];queryableOps=["eq","ne","gt","gte","lt","lte","in","notIn","like","exists","notExists","contains","notContains"];updateOps=["set","inc","mul","min","max","unset","push","pull","patch"];aggregateOps=["count","countDistinct","sum","avg","min","max"];pool;#n=new pe;constructor(e){super(e),this.pool=new ue({host:e.host,port:e.port,user:e.username,password:e.password,database:e.database,ssl:e.ssl?{rejectUnauthorized:!1}:!1})}#e(){return this.#n.getStore()??this.pool}#t(e){return e.schema&&e.schema!=="public"?`${e.schema}.${e.table}`:e.table}async connect(){}async disconnect(){try{await this.pool.end()}catch(e){throw new f("Failed to disconnect PostgreSQL pool",{adapter:"postgresql"},e)}}async findByPk(e,t,n){let o=t;try{let s=this.#t(o),r=e.pkField.name;return(await this.#e().query(`SELECT * FROM "${s}" WHERE "${r}" = $1`,[n])).rows[0]??null}catch(s){throw new f("PostgreSQL findByPk failed",{adapter:"postgresql",operation:"findByPk",table:o.table},s)}}async createMany(e,t,n){let o=t;try{let s=this.#t(o),r=this.#e(),i=[];for(let l of n){let{sql:c,params:d}=X(s,l),p=await r.query(c,d);i.push(p.rows[0])}return i}catch(s){throw new f("PostgreSQL createMany failed",{adapter:"postgresql",operation:"createMany",table:o.table},s)}}async updateByPk(e,t,n,o){let s=t;try{let r=this.#t(s),i=e.pkField.name,l=S(o);if(Object.keys(l).length===0)return(await this.#e().query(`SELECT * FROM "${r}" WHERE "${i}" = $1`,[n])).rows[0]??null;let{sql:c,params:d}=z(r,i,n,l);return(await this.#e().query(c,d)).rows[0]??null}catch(r){throw new f("PostgreSQL updateByPk failed",{adapter:"postgresql",operation:"updateByPk",table:s.table},r)}}async deleteByPk(e,t,n){let o=t;try{let s=this.#t(o),r=e.pkField.name;return(await this.#e().query(`DELETE FROM "${s}" WHERE "${r}" = $1 RETURNING *`,[n])).rows[0]??null}catch(s){throw new f("PostgreSQL deleteByPk failed",{adapter:"postgresql",operation:"deleteByPk",table:o.table},s)}}async raw(e,t,n,o=[]){let s=t;try{return await this.#e().query(n,o)}catch(r){throw r instanceof f?r:new f("PostgreSQL raw failed",{adapter:"postgresql",operation:"raw",table:s.table},r)}}async findMany(e,t,n,o){let s=t;try{let r=this.#t(s),{sql:i,params:l}=$(n,o,r,e.pkField.name);return(await this.#e().query(i,l)).rows}catch(r){throw new f("PostgreSQL findMany failed",{adapter:"postgresql",operation:"findMany",table:s.table},r)}}async count(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=V(n,s,e.pkField.name),l=await this.#e().query(r,i);return Number(l.rows[0]?.count??0)}catch(s){throw new f("PostgreSQL count failed",{adapter:"postgresql",operation:"count",table:o.table},s)}}async*iterateMany(e,t,n,o){let s=t,r,i=!1,l;try{let c=this.#t(s),{sql:d,params:p}=$(n,o,c,e.pkField.name),y=this.#n.getStore();y?r=y:(r=await this.pool.connect(),i=!0),l=r.query(new de(d,p));let m=o?.batchSize??ge;for(;;){let g=await l.read(m);if(g.length===0)break;for(let q of g)yield q}}catch(c){throw new f("PostgreSQL iterateMany failed",{adapter:"postgresql",operation:"iterateMany",table:s.table},c)}finally{try{await l?.close()}finally{i&&r?.release()}}}async updateMany(e,t,n,o){let s=t;try{let r=this.#t(s),{sql:i,params:l}=J(n,r,e.pkField.name,o);return(await this.#e().query(i,l)).rows}catch(r){throw new f("PostgreSQL updateMany failed",{adapter:"postgresql",operation:"updateMany",table:s.table},r)}}async deleteMany(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=Z(n,s,e.pkField.name);return(await this.#e().query(r,i)).rows}catch(s){throw new f("PostgreSQL deleteMany failed",{adapter:"postgresql",operation:"deleteMany",table:o.table},s)}}async upsertOne(e,t,n,o,s){let r=t;try{let i=this.#t(r),l=te(n,e.name),c=s.length>0?S(s):{},{sql:d,params:p}=ee(i,l,e.pkField.name,o,c);return(await this.#e().query(d,p)).rows[0]}catch(i){throw i instanceof f?i:new f("PostgreSQL upsertOne failed",{adapter:"postgresql",operation:"upsertOne",table:r.table},i)}}async aggregate(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=ne(n,s,e.pkField.name);return(await this.#e().query(r,i)).rows.map(c=>{let d={};for(let p of n.aggregates){let y=c[p.alias];p.fn==="min"||p.fn==="max"?d[p.alias]=y:d[p.alias]=Number(typeof y=="string"?y:y??0)}for(let p of n.groupBy)d[p]=c[p];return d})}catch(s){throw s instanceof f?s:new f("PostgreSQL aggregate failed",{adapter:"postgresql",operation:"aggregate",table:o.table},s)}}async loadMigrations(){let e=this.#e();return await e.query(`
|
|
1
|
+
import{E as S,a as v,f as O,g as B,j as P,l as I,m as D,n as M,o as G,p as Q,q as j,r as H,s as Y}from "../../../chunk-4JLDXF7T.min.mjs";import{a as f,m as U}from "../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import{AsyncLocalStorage as pe}from"async_hooks";import{Pool as ue}from"pg";import de from"pg-cursor";import{v as E}from"valleyed";function b(a,e){return a==="id"&&e!=="id"?e:a}function K(a,e,t){switch(a.op){case"eq":return a.value===null?`${e} IS NULL`:`${e} = ${t(a.value)}`;case"ne":return a.value===null?`${e} IS NOT NULL`:`${e} != ${t(a.value)}`;case"gt":return`${e} > ${t(a.value)}`;case"gte":return`${e} >= ${t(a.value)}`;case"lt":return`${e} < ${t(a.value)}`;case"lte":return`${e} <= ${t(a.value)}`;case"in":return`${e} = ANY(${t(a.value)})`;case"notIn":return`NOT (${e} = ANY(${t(a.value)}))`;case"like":return`${e} ILIKE ${t(`%${a.value}%`)}`;case"exists":return`${e} IS NOT NULL`;case"notExists":return`${e} IS NULL`;case"contains":return`${e} @> ${t(JSON.stringify(a.value))}::jsonb`;case"notContains":return`NOT (${e} @> ${t(JSON.stringify(a.value))}::jsonb)`;default:return`${e} = ${t(a.value)}`}}function W(a,e,t){return K(a,`"${b(a.field,e)}"`,t)}function A(a,e){return a.children.map(t=>ie(t,e)).filter(t=>t!==null)}function oe(a,e){let t=A(a,e);return t.length===0?null:t.length===1?t[0]:`(${t.join(a.op==="or"?" OR ":" AND ")})`}function ie(a,e){return a instanceof O?e(a):a instanceof B?oe(a,e):null}function N(a,e,t=1){let n=[],o=t;function s(c){return n.push(c),`$${o++}`}let i=A(a,c=>W(c,e,s));return{whereClause:i.length>0?`WHERE ${i.join(" AND ")}`:"",params:n,nextParamIndex:o}}function L(a,e){let t=[],n=e;return{setParts:Object.entries(a).map(([s,r])=>{let i=`"${s}"`;return r instanceof I?(t.push(r.value),`${i} = ${i} + $${n++}`):r instanceof D?(t.push(r.value),`${i} = ${i} * $${n++}`):r instanceof M?(t.push(r.value),`${i} = LEAST(${i}, $${n++})`):r instanceof G?(t.push(r.value),`${i} = GREATEST(${i}, $${n++})`):r instanceof Q?`${i} = NULL`:r instanceof j?(t.push(JSON.stringify(r.value)),`${i} = ${i} || jsonb_build_array($${n++}::jsonb)`):r instanceof H?(t.push(JSON.stringify(r.value)),`${i} = (SELECT COALESCE(jsonb_agg(e), '[]'::jsonb) FROM jsonb_array_elements(${i}) e WHERE e <> $${n++}::jsonb)`):r instanceof Y?(t.push(JSON.stringify(r.value)),`${i} = ${i} || $${n++}::jsonb`):(t.push(r),`${i} = $${n++}`)}),params:t,nextParamIndex:n}}function $(a,e,t,n){let{whereClause:o,params:s,nextParamIndex:r}=N(a,n),i=r,l=(e?.orderBy??[]).map(g=>`"${b(g.field,n)}" ${g.direction.toUpperCase()}`),c=l.length>0?`ORDER BY ${l.join(", ")}`:"",d="";e?.limit!=null&&(s.push(e.limit),d=`LIMIT $${i++}`);let p="";return e?.offset!=null&&(s.push(e.offset),p=`OFFSET $${i++}`),{sql:`SELECT ${e?.select?.length?e.select.map(g=>`"${b(g,n)}"`).join(", "):"*"} FROM "${t}" ${o} ${c} ${d} ${p}`.trim().replace(/\s+/g," "),params:s}}function V(a,e,t){let{whereClause:n,params:o}=N(a,t);return{sql:`SELECT COUNT(*) as count FROM "${e}" ${n}`.trim().replace(/\s+/g," "),params:o}}function X(a,e){let t=Object.keys(e),n=Object.values(e),o=t.map((i,l)=>`$${l+1}`),s=t.map(i=>`"${i}"`).join(", ");return{sql:`INSERT INTO "${a}" (${s}) VALUES (${o.join(", ")}) RETURNING *`,params:n}}function J(a,e,t,n){let{setParts:o,params:s,nextParamIndex:r}=L(n,1),{whereClause:i,params:l}=N(a,t,r),c=[...s,...l];return{sql:`UPDATE "${e}" SET ${o.join(", ")} ${i} RETURNING *`.trim().replace(/\s+/g," "),params:c}}function z(a,e,t,n){let{setParts:o,params:s,nextParamIndex:r}=L(n,1);return s.push(t),{sql:`UPDATE "${a}" SET ${o.join(", ")} WHERE "${e}" = $${r} RETURNING *`.replace(/\s+/g," "),params:s}}function Z(a,e,t){let{whereClause:n,params:o}=N(a,t);return{sql:`DELETE FROM "${e}" ${n} RETURNING *`.trim().replace(/\s+/g," "),params:o}}function ee(a,e,t,n,o){let s=Object.keys(n),r=Object.values(n),i=s.map((y,m)=>`$${m+1}`),l=b(e,t),c,d=[...r];if(Object.keys(o).length>0){let{setParts:y,params:m}=L(o,s.length+1);c=y.join(", "),d.push(...m)}else c=`"${l}" = EXCLUDED."${l}"`;return{sql:`INSERT INTO "${a}" (${s.map(y=>`"${y}"`).join(", ")}) VALUES (${i.join(", ")}) ON CONFLICT ("${l}") DO UPDATE SET ${c} RETURNING *`.replace(/\s+/g," "),params:d}}function te(a,e){if(a.children.length===1&&a.children[0]instanceof O&&a.children[0].op==="eq")return a.children[0].field;let t;if(a.children.length===0)t="empty filter";else if(a.children.length===1){let n=a.children[0];t=`single non-eq filter (op: ${n instanceof O?n.op:"group"})`}else t=`${a.children.length} filter clauses`;throw new v("upsert-filter-incompatible",e,"upsertOne",[{cause:`PostgreSQL upsert requires a single eq filter on a UNIQUE-indexed column; received ${t}`}])}function le(a,e,t){if(a==="count")return"COUNT(*)";let n=`"${b(e,t)}"`;switch(a){case"countDistinct":return`COUNT(DISTINCT ${n})`;case"sum":return`SUM(${n})`;case"avg":return`AVG(${n})`;case"min":return`MIN(${n})`;case"max":return`MAX(${n})`}}function ce(a,e,t,n){return t.has(a)?t.get(a):n.has(a)?`"${b(a,e)}"`:`"${a}"`}function ne(a,e,t){let n=[],o=1;function s(m){return n.push(m),`$${o++}`}let r=[],i=new Map;for(let m of a.aggregates){let g=le(m.fn,m.field,t);i.set(m.alias,g),r.push(`${g} AS "${m.alias}"`)}let l=[];for(let m of a.groupBy){let g=`"${b(m,t)}"`;l.push(g),r.push(`${g} AS "${m}"`)}let c="";if(a.where){let m=q=>W(q,t,s),g=A(a.where,m);g.length>0&&(c=`WHERE ${g.join(" AND ")}`)}let d=l.length>0?`GROUP BY ${l.join(", ")}`:"",p="";if(a.having){let m=new Set(a.groupBy),g=T=>K(T,ce(T.field,t,i,m),s),q=A(a.having,g);q.length>0&&(p=`HAVING ${q.join(" AND ")}`)}return{sql:`SELECT ${r.join(", ")} FROM "${e}" ${c} ${d} ${p}`.trim().replace(/\s+/g," "),params:n}}var me=()=>E.object({host:E.string(),port:E.number(),username:E.string(),password:E.string(),database:E.string(),ssl:E.defaults(E.boolean(),!1)}),R="equipped_migrations",ae=3735928559,ge=1e3,F={string:"text",number:"double precision",boolean:"boolean",date:"timestamptz",null:"text",object:"jsonb",array:"jsonb"},ye={text:"string","character varying":"string",varchar:"string",char:"string",character:"string","double precision":"number",real:"number",integer:"number",smallint:"number",numeric:"number",decimal:"number",boolean:"boolean","timestamp with time zone":"date","timestamp without time zone":"date",timestamptz:"date",timestamp:"date",date:"date",jsonb:"object",json:"object"},re=class extends U(me,P){schemaConfigPipe=E.object({schema:E.optional(E.string()),table:E.string()});supportedFieldTypes=["string","number","boolean","null","object","array","date"];queryableOps=["eq","ne","gt","gte","lt","lte","in","notIn","like","exists","notExists","contains","notContains"];updateOps=["set","inc","mul","min","max","unset","push","pull","patch"];aggregateOps=["count","countDistinct","sum","avg","min","max"];pool;#n=new pe;constructor(e){super(e),this.pool=new ue({host:e.host,port:e.port,user:e.username,password:e.password,database:e.database,ssl:e.ssl?{rejectUnauthorized:!1}:!1})}#e(){return this.#n.getStore()??this.pool}#t(e){return e.schema&&e.schema!=="public"?`${e.schema}.${e.table}`:e.table}async connect(){}async disconnect(){try{await this.pool.end()}catch(e){throw new f("Failed to disconnect PostgreSQL pool",{adapter:"postgresql"},e)}}async findByPk(e,t,n){let o=t;try{let s=this.#t(o),r=e.pkField.name;return(await this.#e().query(`SELECT * FROM "${s}" WHERE "${r}" = $1`,[n])).rows[0]??null}catch(s){throw new f("PostgreSQL findByPk failed",{adapter:"postgresql",operation:"findByPk",table:o.table},s)}}async createMany(e,t,n){let o=t;try{let s=this.#t(o),r=this.#e(),i=[];for(let l of n){let{sql:c,params:d}=X(s,l),p=await r.query(c,d);i.push(p.rows[0])}return i}catch(s){throw new f("PostgreSQL createMany failed",{adapter:"postgresql",operation:"createMany",table:o.table},s)}}async updateByPk(e,t,n,o){let s=t;try{let r=this.#t(s),i=e.pkField.name,l=S(o);if(Object.keys(l).length===0)return(await this.#e().query(`SELECT * FROM "${r}" WHERE "${i}" = $1`,[n])).rows[0]??null;let{sql:c,params:d}=z(r,i,n,l);return(await this.#e().query(c,d)).rows[0]??null}catch(r){throw new f("PostgreSQL updateByPk failed",{adapter:"postgresql",operation:"updateByPk",table:s.table},r)}}async deleteByPk(e,t,n){let o=t;try{let s=this.#t(o),r=e.pkField.name;return(await this.#e().query(`DELETE FROM "${s}" WHERE "${r}" = $1 RETURNING *`,[n])).rows[0]??null}catch(s){throw new f("PostgreSQL deleteByPk failed",{adapter:"postgresql",operation:"deleteByPk",table:o.table},s)}}async raw(e,t,n,o=[]){let s=t;try{return await this.#e().query(n,o)}catch(r){throw r instanceof f?r:new f("PostgreSQL raw failed",{adapter:"postgresql",operation:"raw",table:s.table},r)}}async findMany(e,t,n,o){let s=t;try{let r=this.#t(s),{sql:i,params:l}=$(n,o,r,e.pkField.name);return(await this.#e().query(i,l)).rows}catch(r){throw new f("PostgreSQL findMany failed",{adapter:"postgresql",operation:"findMany",table:s.table},r)}}async count(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=V(n,s,e.pkField.name),l=await this.#e().query(r,i);return Number(l.rows[0]?.count??0)}catch(s){throw new f("PostgreSQL count failed",{adapter:"postgresql",operation:"count",table:o.table},s)}}async*iterateMany(e,t,n,o){let s=t,r,i=!1,l;try{let c=this.#t(s),{sql:d,params:p}=$(n,o,c,e.pkField.name),y=this.#n.getStore();y?r=y:(r=await this.pool.connect(),i=!0),l=r.query(new de(d,p));let m=o?.batchSize??ge;for(;;){let g=await l.read(m);if(g.length===0)break;for(let q of g)yield q}}catch(c){throw new f("PostgreSQL iterateMany failed",{adapter:"postgresql",operation:"iterateMany",table:s.table},c)}finally{try{await l?.close()}finally{i&&r?.release()}}}async updateMany(e,t,n,o){let s=t;try{let r=this.#t(s),{sql:i,params:l}=J(n,r,e.pkField.name,o);return(await this.#e().query(i,l)).rows}catch(r){throw new f("PostgreSQL updateMany failed",{adapter:"postgresql",operation:"updateMany",table:s.table},r)}}async deleteMany(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=Z(n,s,e.pkField.name);return(await this.#e().query(r,i)).rows}catch(s){throw new f("PostgreSQL deleteMany failed",{adapter:"postgresql",operation:"deleteMany",table:o.table},s)}}async upsertOne(e,t,n,o,s){let r=t;try{let i=this.#t(r),l=te(n,e.name),c=s.length>0?S(s):{},{sql:d,params:p}=ee(i,l,e.pkField.name,o,c);return(await this.#e().query(d,p)).rows[0]}catch(i){throw i instanceof f?i:new f("PostgreSQL upsertOne failed",{adapter:"postgresql",operation:"upsertOne",table:r.table},i)}}async aggregate(e,t,n){let o=t;try{let s=this.#t(o),{sql:r,params:i}=ne(n,s,e.pkField.name);return(await this.#e().query(r,i)).rows.map(c=>{let d={};for(let p of n.aggregates){let y=c[p.alias];p.fn==="min"||p.fn==="max"?d[p.alias]=y:d[p.alias]=Number(typeof y=="string"?y:y??0)}for(let p of n.groupBy)d[p]=c[p];return d})}catch(s){throw s instanceof f?s:new f("PostgreSQL aggregate failed",{adapter:"postgresql",operation:"aggregate",table:o.table},s)}}async loadMigrations(){let e=this.#e();return await e.query(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS "${R}" (
|
|
3
3
|
id text PRIMARY KEY,
|
|
4
4
|
applied_at bigint NOT NULL
|
|
5
5
|
)
|
|
6
|
-
`),(await e.query(`SELECT id, applied_at FROM "${R}"`)).rows.map(n=>({id:n.id,appliedAt:Number(n.applied_at)}))}async recordMigration(e,t){await this.#e().query(`INSERT INTO "${R}" (id, applied_at) VALUES ($1, $2)`,[e,t])}async acquireMigrationLock(e){let t=this.#e();await t.query("SELECT pg_advisory_lock($1)",[ae]);try{return await e()}finally{await t.query("SELECT pg_advisory_unlock($1)",[ae])}}async applyCreateTable(e){let t=F[e.pk.type]??"text",n=[`"${e.pk.name}" ${t} PRIMARY KEY`];for(let o of e.fields)n.push(this.#a(o));await this.#e().query(`CREATE TABLE "${e.name}" (${n.join(", ")})`)}async applyDropTable(e){await this.#e().query(`DROP TABLE "${e.name}"`)}async applyAddField(e){let t=this.#a(e.field);await this.#e().query(`ALTER TABLE "${e.table}" ADD COLUMN ${t}`)}async applyDropField(e){await this.#e().query(`ALTER TABLE "${e.table}" DROP COLUMN "${e.name}"`)}async applyModifyField(e){let t=this.#e(),n=`"${e.table}"`,o=`"${e.name}"`,s=F[e.to.type]??"text";await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} TYPE ${s} USING ${o}::${s}`),e.to.nullable?await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} DROP NOT NULL`):await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} SET NOT NULL`),e.to.default!==void 0?await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} SET DEFAULT ${this.#r(e.to.default)}`):await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} DROP DEFAULT`),e.to.name!==e.name&&await t.query(`ALTER TABLE ${n} RENAME COLUMN ${o} TO "${e.to.name}"`)}async applyRenameTable(e){await this.#e().query(`ALTER TABLE "${e.from}" RENAME TO "${e.to}"`)}async applyRenameField(e){await this.#e().query(`ALTER TABLE "${e.table}" RENAME COLUMN "${e.from}" TO "${e.to}"`)}async applyAddIndex(e){let t=e.name??this.#i(e.table,e.on,e.unique),n=e.unique?"UNIQUE ":"",o=e.on.map(s=>`"${s}"`).join(", ");await this.#e().query(`CREATE ${n}INDEX "${t}" ON "${e.table}" (${o})`)}async applyDropIndex(e){await this.#e().query(`DROP INDEX "${e.name}"`)}async applyAddForeignKey(e){let t=e.name??`fk_${e.table}_${e.on}`,n=`ALTER TABLE "${e.table}" ADD CONSTRAINT "${t}" FOREIGN KEY ("${e.on}") REFERENCES "${e.references.table}" ("${e.references.column}")`;e.onDelete&&(n+=` ON DELETE ${this.#s(e.onDelete)}`),e.onUpdate&&(n+=` ON UPDATE ${this.#s(e.onUpdate)}`),await this.#e().query(n)}async applyDropForeignKey(e){await this.#e().query(`ALTER TABLE "${e.table}" DROP CONSTRAINT "${e.name}"`)}async introspect(){let{OrmIntrospectionError:e}=await import("../../../introspection-
|
|
6
|
+
`),(await e.query(`SELECT id, applied_at FROM "${R}"`)).rows.map(n=>({id:n.id,appliedAt:Number(n.applied_at)}))}async recordMigration(e,t){await this.#e().query(`INSERT INTO "${R}" (id, applied_at) VALUES ($1, $2)`,[e,t])}async acquireMigrationLock(e){let t=this.#e();await t.query("SELECT pg_advisory_lock($1)",[ae]);try{return await e()}finally{await t.query("SELECT pg_advisory_unlock($1)",[ae])}}async applyCreateTable(e){let t=F[e.pk.type]??"text",n=[`"${e.pk.name}" ${t} PRIMARY KEY`];for(let o of e.fields)n.push(this.#a(o));await this.#e().query(`CREATE TABLE "${e.name}" (${n.join(", ")})`)}async applyDropTable(e){await this.#e().query(`DROP TABLE "${e.name}"`)}async applyAddField(e){let t=this.#a(e.field);await this.#e().query(`ALTER TABLE "${e.table}" ADD COLUMN ${t}`)}async applyDropField(e){await this.#e().query(`ALTER TABLE "${e.table}" DROP COLUMN "${e.name}"`)}async applyModifyField(e){let t=this.#e(),n=`"${e.table}"`,o=`"${e.name}"`,s=F[e.to.type]??"text";await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} TYPE ${s} USING ${o}::${s}`),e.to.nullable?await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} DROP NOT NULL`):await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} SET NOT NULL`),e.to.default!==void 0?await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} SET DEFAULT ${this.#r(e.to.default)}`):await t.query(`ALTER TABLE ${n} ALTER COLUMN ${o} DROP DEFAULT`),e.to.name!==e.name&&await t.query(`ALTER TABLE ${n} RENAME COLUMN ${o} TO "${e.to.name}"`)}async applyRenameTable(e){await this.#e().query(`ALTER TABLE "${e.from}" RENAME TO "${e.to}"`)}async applyRenameField(e){await this.#e().query(`ALTER TABLE "${e.table}" RENAME COLUMN "${e.from}" TO "${e.to}"`)}async applyAddIndex(e){let t=e.name??this.#i(e.table,e.on,e.unique),n=e.unique?"UNIQUE ":"",o=e.on.map(s=>`"${s}"`).join(", ");await this.#e().query(`CREATE ${n}INDEX "${t}" ON "${e.table}" (${o})`)}async applyDropIndex(e){await this.#e().query(`DROP INDEX "${e.name}"`)}async applyAddForeignKey(e){let t=e.name??`fk_${e.table}_${e.on}`,n=`ALTER TABLE "${e.table}" ADD CONSTRAINT "${t}" FOREIGN KEY ("${e.on}") REFERENCES "${e.references.table}" ("${e.references.column}")`;e.onDelete&&(n+=` ON DELETE ${this.#s(e.onDelete)}`),e.onUpdate&&(n+=` ON UPDATE ${this.#s(e.onUpdate)}`),await this.#e().query(n)}async applyDropForeignKey(e){await this.#e().query(`ALTER TABLE "${e.table}" DROP CONSTRAINT "${e.name}"`)}async introspect(){let{OrmIntrospectionError:e}=await import("../../../introspection-A72WMWE3.min.mjs"),t=this.#e(),n=await t.query(`
|
|
7
7
|
SELECT table_name FROM information_schema.tables
|
|
8
8
|
WHERE table_schema = 'public' AND table_type = 'BASE TABLE' AND table_name != $1
|
|
9
9
|
`,[R]),o=[];for(let s of n.rows){let r=s.table_name,i=await t.query(`
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
PushOp,
|
|
13
13
|
UnsetOp,
|
|
14
14
|
flattenOps
|
|
15
|
-
} from "../../../chunk-
|
|
15
|
+
} from "../../../chunk-PQCBVQL6.mjs";
|
|
16
16
|
import {
|
|
17
17
|
EquippedError,
|
|
18
18
|
configurable
|
|
19
|
-
} from "../../../chunk-
|
|
19
|
+
} from "../../../chunk-MDQKODYQ.mjs";
|
|
20
20
|
import "../../../chunk-VCCS7CAI.mjs";
|
|
21
21
|
import "../../../chunk-J5LGTIGS.mjs";
|
|
22
22
|
|
|
@@ -1109,7 +1109,7 @@ var PostgresAdapter = class extends configurable(postgresqlConnectionPipe, OrmAd
|
|
|
1109
1109
|
await this.#getClient().query(`ALTER TABLE "${change.table}" DROP CONSTRAINT "${change.name}"`);
|
|
1110
1110
|
}
|
|
1111
1111
|
async introspect() {
|
|
1112
|
-
const { OrmIntrospectionError } = await import("../../../introspection-
|
|
1112
|
+
const { OrmIntrospectionError } = await import("../../../introspection-32BRYKYY.mjs");
|
|
1113
1113
|
const client = this.#getClient();
|
|
1114
1114
|
const tablesResult = await client.query(`
|
|
1115
1115
|
SELECT table_name FROM information_schema.tables
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Ft}from "../chunk-OXI6IKAM.min.mjs";import{A as zt,B as Qt,C as Xt,D as te,E as Zt,a as h,b as It,c as v,d as J,e as xe,f as ee,g as k,h as Se,i as x,j as pt,k as B,l as Ct,m as Ut,n as Mt,o as Nt,p as Dt,q as _t,r as Kt,s as Ht,t as _,u as Lt,v as jt,w as Vt,x as Gt,y as Wt,z as $t}from "../chunk-WHIWTP2Z.min.mjs";import{K as we,a as f}from "../chunk-LTDVZJYJ.min.mjs";import"../chunk-DSUJ5FUL.min.mjs";import"../chunk-AQY7QVYI.min.mjs";var g=class extends f{id;phase;constructor(e){super(`Migration failed at phase '${e.phase}' for migration '${e.id}'`,{id:e.id,phase:e.phase},e.cause),this.id=e.id,this.phase=e.phase}};function lt(a){if(a.op==="and"&&a.children.length===1&&a.children[0]instanceof ee&&a.children[0].op==="eq"){let e=a.children[0];return`${e.field}=${e.value}`}return be(a)}function be(a){if(a instanceof ee)return`${a.field} ${a.op} ${JSON.stringify(a.value)}`;let e=a.children.map(t=>be(t));return e.length===1?e[0]:`(${e.join(` ${a.op} `)})`}var K=class extends f{schema;operation;where;constructor(e){let t=e.message??`${e.schema}.${e.operation}: no row matched ${lt(e.where)}`;super(t,{schema:e.schema,operation:e.operation,where:e.where}),this.schema=e.schema,this.operation=e.operation,this.where=e.where}};var F=class extends f{key;eventName;constructor(e){super(`EventLog replay failed on event ${e.name} (key=${e.key})`,{key:e.key,name:e.name},e.cause),this.key=e.key,this.eventName=e.name}};import{ulid as ut}from"ulid";import{v as ft}from"valleyed";import{ulid as mt}from"ulid";import{v as T}from"valleyed";import"valleyed";var ae=class a{#e;#t;#a;#r;constructor(e,t,r,n){this.#e=e,this.#t=t??null,this.#a=r??{},this.#r=n??{}}get name(){return this.#e}pk(e,t,r){return new a(this.#e,new J(e,t,{onCreate:r}),{...this.#a},void 0)}field(e,t,r){let n={...this.#a,[e]:new J(e,t,r)};return new a(this.#e,this.#t,n,{...this.#r})}computed(e,t,r,n){let o={...this.#r,[e]:new xe(e,r,t,n)};return new a(this.#e,this.#t,{...this.#a},o)}build(){let e=this;return new I(e.#e,e.#t,e.#a,e.#r)}},I=class{#e;#t;#a;#r;constructor(e,t,r,n){this.#e=e,this.#t=t,this.#a=r,this.#r=n,this.#t&&Object.defineProperty(this.#t,"__schema",{value:this,enumerable:!1,configurable:!0});for(let o of Object.values(this.#a))Object.defineProperty(o,"__schema",{value:this,enumerable:!1,configurable:!0})}get name(){return this.#e}get pkField(){if(!this.#t)throw new Error(`Schema "${this.#e}" does not have a primary key defined`);return this.#t}get fieldDefs(){return this.#a}get computedDefs(){return this.#r}get fields(){return{...this.#t?{[this.#t.name]:this.#t}:{},...this.#a}}static from(e){return new ae(e)}};var E=I.from("event_log").pk("key",T.string(),()=>mt()).field("name",T.string()).field("ts",T.number()).field("body",T.any()).field("by",T.nullable(T.string())).build();async function ve(a,e,t,r,n){let o=ft.validate(t.pipe,r);if(!o.valid)throw new h("validation","event_log","fire",[{cause:o.error}]);return a.session(async()=>{let s=n?.at??new Date,i=s.getTime(),d=ut(i),c=n?.by??null;await a.on(E).one().create({key:d,name:e,ts:i,body:o.value,by:c});let m={key:d,name:e,ts:i,body:o.value,by:c,at:s,firstRun:!0};return await t.handle(o.value,m)})}var H=class{#e=new Map;#t=[];register(e,t){if(this.#e.has(e))throw new f(`EventLog handler "${e}" is already registered`,{name:e});this.#e.set(e,t),this.#t.push(e)}get(e){let t=this.#e.get(e);if(!t)throw new f(`EventLog handler "${e}" is not registered`,{name:e});return t}list(){return[...this.#t]}};var Ae=async(a,e,t)=>{let r={key:t.key,name:t.name,ts:t.ts,body:t.body,by:t.by,at:new Date(t.ts),firstRun:!1};try{await a.session(async()=>{await e.handle(t.body,r)})}catch(n){throw new F({key:t.key,name:t.name,cause:n})}};async function ke(a,e,t){let r=a.on(E).all().orderBy("ts","asc");t?.from&&(r=r.where(o=>o.gte("ts",t.from.getTime())));let n=await r.find();for(let o of n)await Ae(a,e.get(o.name),o)}async function Oe(a,e,t){let r=await a.on(E).one().id(t).find();if(!r)throw new F({key:t,name:"unknown",cause:new Error(`Event with key "${t}" not found`)});await Ae(a,e.get(r.name),r)}var re=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t}handler(e,t){return this.#t.register(e,t),(r,n)=>ve(this.#e,e,t,r,n)}replay(e){return ke(this.#e,this.#t,e)}rerun(e){return Oe(this.#e,this.#t,e)}static from(e){return{build:()=>new a(e,new H)}}};var Re=["dropForeignKey","dropIndex","dropField","dropTable","renameTable","renameField","createTable","addField","modifyField","addIndex","addForeignKey"];function yt(a,e){if(e==="execute")return!0;let t=`apply${e[0].toUpperCase()}${e.slice(1)}`;return typeof a[t]=="function"}function ht(a,e){return!(a.type!==e.type||(a.nullable??!1)!==e.nullable||a.default!==e.default||(a.unique??!1)!==(e.unique??!1))}var ne=a=>({name:a.name,type:a.type,...a.nullable?{nullable:!0}:{}});function gt(a){let e=a.pkField,t=Be(e.pipe),r=[];for(let n of Object.values(a.fieldDefs)){let o=n;r.push({name:o.name,type:Be(o.pipe),nullable:xt(o.pipe)})}return{name:a.name,pk:{name:e.name,type:t},fields:r}}var wt=new Set(["string","number","boolean","array","object","date"]);function Be(a){if(!a)return"string";let e=typeof a.schema=="function"?a.schema():void 0;if(e?.type)return wt.has(e.type)?e.type:"string";let t=a["~standard"];if(t?.validate){if(!t.validate(0).issues)return"number";if(!t.validate("").issues)return"string";if(!t.validate(!0).issues)return"boolean";if(!t.validate([]).issues)return"array";if(!t.validate({}).issues)return"object"}return"string"}function xt(a){if(!a)return!1;if((typeof a.context=="function"?a.context():void 0)?.optional)return!0;let t=a["~standard"];return!!(t?.validate&&!t.validate(void 0).issues)}function Te(a,e,t){let r=[],n=new Map(t.map(s=>[s.name,s])),o=new Map(e.map(s=>[s.name,s]));for(let s of t)if(!o.has(s.name)){for(let i of s.foreignKeys)r.push({kind:"dropForeignKey",table:s.name,name:i.name});for(let i of s.indexes)r.push({kind:"dropIndex",name:i.name});r.push({kind:"dropTable",name:s.name})}for(let s of e){let i=gt(s),d=n.get(i.name);if(!d){r.push({kind:"createTable",name:i.name,pk:i.pk,fields:i.fields.map(ne)});continue}let c=new Map(d.fields.map(p=>[p.name,p])),m=new Map(i.fields.map(p=>[p.name,p]));for(let p of d.fields)m.has(p.name)||r.push({kind:"dropField",table:i.name,name:p.name});for(let p of i.fields){let y=c.get(p.name);y?ht(p,y)||r.push({kind:"modifyField",table:i.name,name:p.name,to:ne(p)}):r.push({kind:"addField",table:i.name,field:ne(p)})}}return r.filter(s=>yt(a,s.kind)).sort((s,i)=>Re.indexOf(s.kind)-Re.indexOf(i.kind))}var Ee=class a{#e;#t;constructor(e,t,r){this.#e=t,this.#t=r}async diff(){let e=await this.#e.introspect(),t=Te(this.#e,this.#t,e);return t.length===0?null:t}async discover(){return this.#e.introspect()}static from(e,t){return{target(r){return{build(){return new a(e,t,r)}}}}}};async function Pe(a,e,t){if(t.kind==="execute"){await t.up(e);return}let r=`apply${t.kind[0].toUpperCase()}${t.kind.slice(1)}`,n=a[r];if(typeof n!="function")throw new Error(`Adapter does not support change kind '${t.kind}'`);await n.call(a,t)}function oe(a,e,t){let r=new Set(e.map(c=>c.id)),n=new Set(a.map(c=>c.id)),o=e.filter(c=>!n.has(c.id)).map(c=>c.id);if(o.length>0)throw new g({id:o[0],phase:"load",cause:`orphan migrations: [${o.join(", ")}]`});let s=[...a].sort((c,m)=>c.id.localeCompare(m.id)),i=[],d=[];for(let c of s)r.has(c.id)?d.push(c.id):i.push(c);if(t?.to!==void 0){let c=i.findIndex(m=>m.id===t.to);if(c===-1){if(r.has(t.to))return{pending:[],skipped:d};throw new g({id:t.to,phase:"load",cause:`unknown migration id: ${t.to}`})}i.splice(c+1)}return t?.steps!==void 0&&i.splice(t.steps),{pending:i,skipped:d}}function u(a){return!a||a.trim()===""}function se(a,e,t){u(e.name)&&a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,field:t,cause:`${t} name must be non-empty`}),a.adapter.supportedFieldTypes.length>0&&!a.adapter.supportedFieldTypes.includes(e.type)&&a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,field:t,cause:`unsupported field type '${e.type}'`})}function l(a,e,t){a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,...e?{field:e}:{},cause:t})}function St(a,e,t,r,n){if(e.kind==="execute")return;let o={adapter:a,migrationId:t,changeIndex:r,failures:n},s=`apply${e.kind[0].toUpperCase()}${e.kind.slice(1)}`;switch(typeof a[s]!="function"&&l(o,void 0,`adapter does not support change kind '${e.kind}'`),e.kind){case"createTable":{u(e.name)&&l(o,"name","table name must be non-empty"),u(e.pk.name)&&l(o,"pk.name","pk name must be non-empty"),a.supportedFieldTypes.length>0&&!a.supportedFieldTypes.includes(e.pk.type)&&l(o,"pk.type",`unsupported field type '${e.pk.type}'`);let i=new Set;for(let d of e.fields)se(o,d,"field"),i.has(d.name)&&l(o,"fields",`duplicate field name '${d.name}' in createTable`),i.add(d.name);e.pk.name&&i.has(e.pk.name)&&l(o,"pk.name",`pk name '${e.pk.name}' collides with a field name`);break}case"dropTable":{u(e.name)&&l(o,"name","table name must be non-empty");break}case"addField":{u(e.table)&&l(o,"table","table name must be non-empty"),se(o,e.field,"field");break}case"dropField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","field name must be non-empty");break}case"modifyField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","field name must be non-empty"),se(o,e.to,"to");break}case"renameTable":{u(e.from)&&l(o,"from","table name must be non-empty"),u(e.to)&&l(o,"to","table name must be non-empty");break}case"renameField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.from)&&l(o,"from","field name must be non-empty"),u(e.to)&&l(o,"to","field name must be non-empty");break}case"addIndex":{u(e.table)&&l(o,"table","table name must be non-empty"),(!e.on||e.on.length===0)&&l(o,"on","addIndex.on must be non-empty");break}case"dropIndex":{u(e.name)&&l(o,"name","index name must be non-empty");break}case"addForeignKey":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.on)&&l(o,"on","addForeignKey.on must be non-empty"),u(e.references?.table)&&l(o,"references.table","references table must be non-empty"),u(e.references?.column)&&l(o,"references.column","references column must be non-empty");break}case"dropForeignKey":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","foreign key name must be non-empty");break}}}function ie(a,e){let t=[],r=new Set;for(let n of e){if(u(n.id)){t.push({cause:"migration id must be a non-empty string"});continue}r.has(n.id)&&t.push({migrationId:n.id,cause:`duplicate migration id '${n.id}'`}),r.add(n.id);for(let o=0;o<n.changes.length;o++)St(a,n.changes[o],n.id,o,t)}if(t.length>0)throw new h("changes","migrations","build",t)}var qe=class a{#e;#t;#a;#r;constructor(e,t,r,n=!1){this.#e=e,this.#t=t,this.#a=r,this.#r=n}#o(e){if(typeof this.#t[e]!="function"){let t=e==="loadMigrations"?"load":"record";throw new g({id:"",phase:t,cause:`adapter does not implement ${e}`})}}async up(e){if(this.#o("loadMigrations"),this.#o("recordMigration"),!this.#r&&typeof this.#t.acquireMigrationLock=="function")try{return await this.#t.acquireMigrationLock(()=>this.#n(e))}catch(r){throw r instanceof g?r:new g({id:"",phase:"lock",cause:r})}return this.#n(e)}async status(){this.#o("loadMigrations");let e=await this.#t.loadMigrations(),t=new Map(e.map(n=>[n.id,n.appliedAt]));return[...this.#a].sort((n,o)=>n.id.localeCompare(o.id)).map(n=>{let o=t.get(n.id);return o!==void 0?{id:n.id,applied:!0,appliedAt:o}:{id:n.id,applied:!1}})}async dry(e){this.#o("loadMigrations");let t=await this.#t.loadMigrations(),{pending:r}=oe(this.#a,t,e);return{would:r.map(n=>n.id)}}async#n(e){let t;try{t=await this.#t.loadMigrations()}catch(s){throw new g({id:"",phase:"load",cause:s})}let{pending:r,skipped:n}=oe(this.#a,t,e),o=[];for(let s of r){let i=async()=>{for(let c of s.changes)try{await Pe(this.#t,this.#e,c)}catch(m){throw new g({id:s.id,phase:"user",cause:m})}try{await this.#t.recordMigration(s.id,Date.now())}catch(c){throw new g({id:s.id,phase:"record",cause:c})}};if(s.tx!==!1&&typeof this.#t.session=="function")try{await this.#e.session(i)}catch(c){throw c instanceof g?c:new g({id:s.id,phase:"session",cause:c})}else await i();o.push(s.id)}return{ran:o,skipped:n}}static from(e,t){return{migrations(r){return{build(){return ie(t,r),new a(e,t,r)},withoutLock(){return{build(){return ie(t,r),new a(e,t,r,!0)}}}}}}}};var L=class{constructor(e,t){this.direction=t;this.field=v(e)}field};var A=class{constructor(e,t,r,n,o){this.name=e;this.source=t;this.target=r;this.foreignKey=n;this.references=o}},S=class{constructor(e,t,r,n,o,s){this.name=e;this.source=t;this.target=r;this.foreignKey=n;this.fkOwner=o;this.references=s}},de=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t??{}}hasMany(e,t){let r=t.__schema,n={...this.#t,[e]:new A(e,this.#e,r,t,this.#e.pkField)};return new a(this.#e,n)}hasOne(e,t){let r=t.__schema,n={...this.#t,[e]:new S(e,this.#e,r,t,"target",this.#e.pkField)};return new a(this.#e,n)}belongsTo(e,t,r,n){let o=n??r.pkField,s={...this.#t,[e]:new S(e,this.#e,r,t,"source",o)};return new a(this.#e,s)}build(){return this.#t}},Fe=class{static from(e){return new de(e)}};import{v as bt}from"valleyed";function P(a,e){let t=a.computedDefs,r=new Set(Object.keys(t)),n=new Set(Object.keys(a.fields));if(!e||e.length===0)return{requestedSelect:null,adapterSelect:void 0,computeNames:[...r]};let o=new Set(e),s=new Set,i=new Set;for(let d of e){if(n.has(d)){s.add(d);continue}if(r.has(d)){i.add(d);for(let c of t[d].deps)s.add(c);continue}throw new f("Unknown selected field",{schema:a.name,selectedField:d,availableFields:[...n,...r]})}return{requestedSelect:o,adapterSelect:[...s],computeNames:[...i]}}function Ie(a,e,t){let r=a.computedDefs;return e.map(n=>{let o={...n};for(let i of t.computeNames){let d=r[i],c={};for(let p of d.deps){if(!(p in n))throw new f("Computed field dependency missing from adapter result",{schema:a.name,computedField:i,dependency:p,dependencies:d.deps});c[p]=n[p]}let m=bt.validate(d.pipe,d.compute(c));if(!m.valid)throw new f("Computed field validation failed",{schema:a.name,computedField:i,cause:m.error});o[i]=m.value}if(!t.requestedSelect)return o;let s={};for(let i of t.requestedSelect)i in o&&(s[i]=o[i]);return s})}var vt=100,Ce=5;function Ue(a){return a instanceof A||a instanceof S}function Me(a){return typeof a=="object"&&a!=null&&"def"in a}function At(a){return`${a.source.name}.${a.name}->${a.target.name}`}function q(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>0}function j(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>=0}function ce(){return we.maybeGet()?.settings.utils.paginationDefaultLimit??vt}function V(a,e,t){if(!e||e.length===0)return;let r=new Set(Object.keys(a.fields)),n=new Set(Object.keys(a.computedDefs));for(let o of e)r.has(o)||n.has(o)||t.push({field:o,cause:`Unknown selected field "${o}" on schema "${a.name}"`})}function C(a,e,t,r=1,n=[]){if(e!=null){if(!Array.isArray(e)){t.push({cause:"Preloads must be an array"});return}if(e.length!==0){if(r>Ce){t.push({cause:`Preload depth exceeded max depth ${Ce}`});return}for(let o of e){let s=Ue(o)?o:Me(o)?o.def:void 0;if(!Ue(s)){t.push({cause:"Invalid preload definition: expected a relation definition or nested preload definition with `def`"});continue}s.source!==a&&t.push({field:s.name,cause:`Preload relation "${s.name}" belongs to source schema "${s.source.name}" but was used from schema "${a.name}"`});let i=At(s);if(n.includes(i)){t.push({field:s.name,cause:`Preload cycle detected: ${[...n,i].join(" -> ")}`});continue}if(Me(o)){let d=o.preloads??[];if(!Array.isArray(d)){t.push({field:s.name,cause:`Nested preloads for relation "${s.name}" must be an array`});continue}C(s.target,d,t,r+1,[...n,i])}}}}}function pe(a,e){if(q(a))return a;e.push({field:"limit",option:"limit",cause:"Limit must be a positive safe integer"})}function le(a,e){if(j(a))return a;e.push({field:"offset",option:"offset",cause:"Offset must be a non-negative safe integer"})}function me(a,e){if(q(a))return a;e.push({field:"page",option:"page",cause:"Page must be a positive safe integer"})}function kt(a,e){if(a!==void 0){if(q(a))return a;e.push({field:"batchSize",option:"batchSize",cause:"Batch size must be a positive safe integer"})}}function Ot(a,e){if(a!==void 0){if(a==null||typeof a!="object"||Array.isArray(a)){e.push({option:"batchSize",cause:"Iteration options must be an object"});return}return kt(a.batchSize,e)}}function G(a,e,t){if(t.length>0)throw new h("query-shape",a.name,e,t)}function Ne(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r),G(a,e,r)}function De(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r);let n=t.limitSource===void 0?void 0:pe(t.limitSource.value,r),o;if(t.offsetSource?.kind==="offset")o=le(t.offsetSource.value,r);else if(t.offsetSource?.kind==="page"){let s=me(t.offsetSource.value,r);if(n===void 0&&t.limitSource===void 0&&(n=ce(),q(n)||(r.push({field:"limit",cause:"Default page limit must be a positive safe integer"}),n=void 0)),s!==void 0&&n!==void 0){let i=(s-1)*n;j(i)?o=i:r.push({field:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,r),{limit:n,offset:o}}function _e(a,e,t,r){let n=[];V(a,t.select,n),C(a,t.preloads,n);let o=t.limitSource===void 0?void 0:pe(t.limitSource.value,n),s,i=Ot(r,n);if(t.offsetSource?.kind==="offset")s=le(t.offsetSource.value,n);else if(t.offsetSource?.kind==="page"){let d=me(t.offsetSource.value,n);if(o===void 0&&t.limitSource===void 0&&(o=ce(),q(o)||(n.push({field:"limit",option:"limit",cause:"Default page limit must be a positive safe integer"}),o=void 0)),d!==void 0&&o!==void 0){let c=(d-1)*o;j(c)?s=c:n.push({field:"offset",option:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,n),{limit:o,offset:s,batchSize:i}}function Ke(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r);let n;t.limitSource===void 0?(n=ce(),q(n)||(r.push({field:"limit",cause:"Default page limit must be a positive safe integer"}),n=void 0)):n=pe(t.limitSource.value,r);let o=0,s=1;if(t.offsetSource?.kind==="offset"){let i=le(t.offsetSource.value,r);i!==void 0&&(o=i,n!==void 0&&(s=Math.floor(i/n)+1))}else if(t.offsetSource?.kind==="page"){let i=me(t.offsetSource.value,r);if(i!==void 0&&(s=i),i!==void 0&&n!==void 0){let d=(i-1)*n;j(d)?o=d:r.push({field:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,r),{limit:n,offset:o,current:s}}import{v as O}from"valleyed";function He(a,e){let t=[],r={};for(let[n,o]of Object.entries(a.fields)){let s=o.onCreate?O.defaults(o.pipe,o.onCreate()):o.pipe,i=n in e?e[n]:void 0,d=O.validate(s,i);d.valid?r[n]=d.value:t.push({field:n,cause:d.error})}return t.length>0?{ok:!1,failures:t}:{ok:!0,value:r}}function ue(a,e){let t=He(a,e);if(!t.ok)throw new h("validation",a.name,"createOne",t.failures);return t.value}function Le(a,e){let t=[],r=[];for(let n=0;n<e.length;n++){let o=He(a,e[n]);if(o.ok)r.push(o.value);else for(let s of o.failures)t.push({...s,rowIndex:n})}if(t.length>0)throw new h("validation",a.name,"createMany",t);return r}function W(a,e){let t={},r={};for(let[s,i]of Object.entries(e))_(i)?r[s]=i:s in a.fieldDefs&&(t[s]=a.fieldDefs[s].pipe);for(let[s,i]of Object.entries(a.fieldDefs))!(s in e)&&i.onUpdate&&(t[s]=O.defaults(i.pipe,i.onUpdate()));let n=O.validate(O.object(t),e);if(!n.valid)throw new h("validation",a.name,"updateByPk",[{cause:n.error}]);return{...n.value,...r}}function rr(a,e,t="updateByPk"){let r=new Map;for(let d=0;d<e.length;d++)for(let c of te(e[d]))r.has(c)||r.set(c,[]),r.get(c).push(d);let n=[];for(let[d,c]of Object.entries(a.fieldDefs))if(c.onUpdate&&!r.has(d)){let m=new B({[d]:c.onUpdate()});n.push(m),r.set(d,[e.length+n.length-1])}let o=[...e,...n],s=[];for(let[d,c]of r)c.length>1&&s.push({field:d,cause:`field "${d}" touched by multiple ops at indices [${c.join(", ")}]`});if(s.length>0)throw new h("conflicting-ops",a.name,t,s);let i=[];for(let d=0;d<o.length;d++){let c=o[d];if(c instanceof B)for(let[m,p]of Object.entries(c.values)){let y=a.fields[m];if(!y)continue;let b=O.validate(y.pipe,p);b.valid||i.push({opIndex:d,field:m,cause:b.error})}}if(i.length>0)throw new h("validation",a.name,t,i);return o}function je(a,e,t,r){let n=a(t);for(let s of e)n=s(n,t);let o=O.validate(r,n);if(!o.valid)throw new h("validation",t.name,"schemaConfig",[{cause:o.error}]);return o.value}function Ve(a,e,t){let r=new Set(Object.keys(e)),n=[];for(let o of t)if(!(o instanceof B))for(let s of te(o))r.has(s)&&n.push({field:s,cause:`field "${s}" present in both create payload and atomic op "${o.kind}"`});if(n.length>0)throw new h("conflicting-ops",a.name,"upsertOne",n)}async function Ge(a,e){x(a.schema,e.where),Ne(a.schema,"findOne",e);let t=await a.use.findOne(e.where);return t?a.shapeOneRow(e.select,e.preloads,t):null}async function We(a,e){x(a.schema,e.where);let t=De(a.schema,"findMany",e),r=P(a.schema,e.select),n=await a.use.findMany(e.where,{select:r.adapterSelect,orderBy:[...e.orderBy],limit:t.limit,offset:t.offset});return a.shapeRows(e.select,e.preloads,n)}async function $e(a,e){return x(a.schema,e.where),a.use.count(e.where)}function Rt(a,e,t,r){let o=Math.ceil(e/t)||1,s=r<=1||r>o?null:r-1,i=r>=o?null:r+1;return{pages:{current:r,start:1,last:o,previous:s,next:i},docs:{limit:t,total:e,count:a.length},items:a}}async function ze(a,e){x(a.schema,e.where);let t=Ke(a.schema,"paginate",e),r=P(a.schema,e.select),n=a.use,[o,s]=await Promise.all([n.findMany(e.where,{select:r.adapterSelect,orderBy:[...e.orderBy],limit:t.limit,offset:t.offset}),n.count(e.where)]),i=await a.shapeRows(e.select,e.preloads,o);return Rt(i,s,t.limit,t.current)}async function*Qe(a,e,t){x(a.schema,e.where);let r=_e(a.schema,"iterate",e,t),n=P(a.schema,e.select);for await(let o of a.use.iterateMany(e.where,{select:n.adapterSelect,orderBy:[...e.orderBy],limit:r.limit,offset:r.offset,...r.batchSize===void 0?{}:{batchSize:r.batchSize}})){let i=(await a.shapeRows(e.select,e.preloads,[o]))[0];i&&(yield i)}}async function Xe(a,e,t){let r=ue(a.schema,t),n=await a.use.createOne(r),[o]=await a.shapeRows(e.select,e.preloads,[n]);return o}async function Ze(a,e,t){let r=Le(a.schema,t),n=await a.use.createMany(r);return a.shapeRows(e.select,e.preloads,n)}async function Ye(a,e,t){x(a.schema,e.where);let r=W(a.schema,t),n=await a.use.updateOne(e.where,r);return a.shapeOneRow(e.select,e.preloads,n)}async function Je(a,e,t){x(a.schema,e.where);let r=W(a.schema,t),n=await a.use.updateMany(e.where,r);return a.shapeRows(e.select,e.preloads,n)}async function et(a,e,t){x(a.schema,e.where);let r=ue(a.schema,t.create),n=[];if("update"in t){let s=W(a.schema,t.update),i={};for(let[d,c]of Object.entries(s))_(c)?n.push(c):i[d]=c;Object.keys(i).length>0&&n.unshift(new B(i))}n.length>0&&Ve(a.schema,t.create,n);let o=await a.use.upsertOne(e.where,r,n);return await a.shapeOneRow(e.select,e.preloads,o)}async function tt(a,e){x(a.schema,e.where);let t=await a.use.deleteOne(e.where);return a.shapeOneRow(e.select,e.preloads,t)}async function at(a,e){x(a.schema,e.where);let t=await a.use.deleteMany(e.where);return a.shapeRows(e.select,e.preloads,t)}async function rt(a,e){return Se(a.schema,a.use,e),a.use.aggregate(e)}var fe=5;function Bt(a){return typeof a=="object"&&a!=null&&"def"in a}function Tt(a){return`${a.source.name}.${a.name}->${a.target.name}`}function ye(a,e){return[...new Set(a.map(t=>t[e]).filter(t=>t!=null))]}function nt(a,e,t,r){return a.map(n=>({...n,[e]:r.get(n[t])??null}))}function Et(a,e,t,r){return a.map(n=>({...n,[e]:r.get(n[t])??[]}))}function ot(a){return a.map(e=>{if(e instanceof A||e instanceof S)return{def:e,preloads:[]};if(!Bt(e)||!(e.def instanceof A||e.def instanceof S))throw new Error("Invalid preload definition: nested preloads must include a relation definition in `def`");return{def:e.def,preloads:ot(e.preloads??[])}})}async function st(a,e,t){return $(a,ot(e),t,1,[])}async function $(a,e,t,r,n){for(let o of e)a=await Pt(a,o,t,r,n);return a}async function Pt(a,e,t,r,n){if(r>fe)throw new f(`Preload depth exceeded max depth ${fe}`,{operation:"resolvePreload",depth:r,maxDepth:fe});let{def:o}=e,{target:s,name:i}=o,d=Tt(o);if(n.includes(d))throw new f(`Preload cycle detected: ${[...n,d].join(" -> ")}`,{operation:"resolvePreload",path:n,step:d});let c=[...n,d];if(o instanceof S){if(o.fkOwner==="source"){let w=o.references.name,R=ye(a,o.foreignKey.name);if(R.length===0)return a.map(D=>({...D,[i]:null}));let N=await t(s).findMany(k.create().in(w,R));e.preloads.length>0&&N.length>0&&(N=await $(N,e.preloads,t,r+1,c));let ct=new Map(N.map(D=>[D[w],D]));return nt(a,i,o.foreignKey.name,ct)}let m=o.references.name,p=ye(a,m);if(p.length===0)return a.map(w=>({...w,[i]:null}));let y=await t(s).findMany(k.create().in(o.foreignKey,p));e.preloads.length>0&&y.length>0&&(y=await $(y,e.preloads,t,r+1,c));let b=new Map(y.map(w=>[w[o.foreignKey.name],w]));return nt(a,i,m,b)}if(o instanceof A){let m=o.references.name,p=ye(a,m);if(p.length===0)return a.map(w=>({...w,[i]:[]}));let y=await t(s).findMany(k.create().in(o.foreignKey,p));e.preloads.length>0&&y.length>0&&(y=await $(y,e.preloads,t,r+1,c));let b=new Map;for(let w of y){let R=w[o.foreignKey.name];b.has(R)||b.set(R,[]),b.get(R).push(w)}return Et(a,i,m,b)}throw new Error(`Unknown relation kind: ${String(Reflect.get(o,"kind"))}; expected OneRelation or ManyRelation`)}var U=class{constructor(e,t){this.schema=e;this.getUse=t}async shapeRows(e,t,r){let n=P(this.schema,e),o=Ie(this.schema,r,n);return t.length===0?o:await st(o,t,this.getUse)}async shapeOneRow(e,t,r){if(!r)return null;let[n]=await this.shapeRows(e,t,[r]);return n??null}get use(){return this.getUse(this.schema)}},z=class{_context;_where;_select;_preloads;constructor(e,t){this._context=e,this._where=t?.where?t.where.clone():k.create(),this._select=t?.select,this._preloads=t?.preloads??[]}where(e){let t=e(this._where.clone());return this._clone({where:t,select:this._select,preloads:this._preloads})}select(e){return this._clone({select:e})}preload(e){return this._clone({preloads:e})}_readState(e={}){return{where:e.where??this._where.clone(),select:e.select??this._select,preloads:e.preloads??[...this._preloads]}}},M=class{#e;constructor(e){this.#e=e}one(){return new Q(this.#e)}all(){return new X(this.#e)}aggregate(){return new Z(this.#e)}raw(...e){return this.#e.use.raw(...e)}},Q=class a extends z{_required;_requiredMessage;constructor(e,t,r){super(e,t),this._required=r?.required??!1,this._requiredMessage=r?.message}id(e){let t=this._where.clone().eq(this._context.schema.pkField,e);return this._clone({where:t,select:this._select,preloads:this._preloads})}required(e){return new a(this._context,this._readState(),{required:!0,message:e})}_assertFound(e,t){if(this._required&&e===null)throw new K({schema:this._context.schema.name,operation:t,where:this._where,message:this._requiredMessage})}_clone(e){return new a(this._context,this._readState(e),{required:this._required,message:this._requiredMessage})}create(e){return Xe(this._context,{select:this._select,preloads:this._preloads},e)}async update(e){let t=await Ye(this._context,{where:this._where,select:this._select,preloads:this._preloads},e);return this._assertFound(t,"updateOne"),t}upsert(e){return et(this._context,{where:this._where,select:this._select,preloads:this._preloads},e)}async delete(){let e=await tt(this._context,{where:this._where,select:this._select,preloads:this._preloads});return this._assertFound(e,"deleteOne"),e}async find(){let e=await Ge(this._context,{where:this._where,select:this._select,preloads:this._preloads});return this._assertFound(e,"findOne"),e}},X=class a extends z{#e;#t;#a;constructor(e,t,r){super(e,t),this.#e=r?.orderBy??[],this.#t=r?.limitSource,this.#a=r?.offsetSource}#r(e){let t=r=>Object.prototype.hasOwnProperty.call(e,r);return new a(this._context,this._readState(),{orderBy:t("orderBy")?e.orderBy:[...this.#e],limitSource:t("limitSource")?e.limitSource:this.#t,offsetSource:t("offsetSource")?e.offsetSource:this.#a})}_clone(e){return new a(this._context,this._readState({where:e.where,select:e.select,preloads:e.preloads}),{orderBy:[...this.#e],limitSource:this.#t,offsetSource:this.#a})}orderBy(e,t="asc"){return this.#r({orderBy:[...this.#e,new L(e,t)]})}limit(e){return this.#r({limitSource:{value:e}})}offset(e){return this.#r({offsetSource:{kind:"offset",value:e}})}page(e){return this.#r({offsetSource:{kind:"page",value:e}})}create(e){return Ze(this._context,{select:this._select,preloads:this._preloads},e)}update(e){return Je(this._context,{where:this._where,select:this._select,preloads:this._preloads},e)}delete(){return at(this._context,{where:this._where,select:this._select,preloads:this._preloads})}find(){return We(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a})}count(){return $e(this._context,{where:this._where})}paginate(){return ze(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a})}iterate(e){return Qe(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a},e)}},Z=class a{#e;#t;#a;#r;#o;constructor(e,t){this.#e=e,this.#t=t?.where?t.where.clone():k.create(),this.#a=t?.having?t.having.clone():k.create(),this.#r=t?.aggregates??[],this.#o=t?.groupBy??[]}get#n(){return{where:this.#t,having:this.#a,aggregates:this.#r,groupBy:this.#o}}where(...e){let t=e[0];return new a(this.#e,{...this.#n,where:t(this.#t.clone())})}having(...e){let t=e[0];return new a(this.#e,{...this.#n,having:t(this.#a.clone())})}groupBy(...e){return new a(this.#e,{...this.#n,groupBy:e.map(t=>v(t))})}count(...[e]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"count",alias:e}]})}countDistinct(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"countDistinct",field:v(e),alias:t}]})}sum(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"sum",field:v(e),alias:t}]})}avg(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"avg",field:v(e),alias:t}]})}min(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"min",field:v(e),alias:t}]})}max(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"max",field:v(e),alias:t}]})}async run(...e){let t={aggregates:this.#r,groupBy:this.#o};this.#t.children.length>0&&(t.where=this.#t),this.#a.children.length>0&&(t.having=this.#a);let r=await rt(this.#e,t);return this.#o.length>0?r:r[0]}};import{AsyncLocalStorage as qt}from"async_hooks";var he=new qt;function it(a,e){let t=he.getStore()??[];return he.run([...t,a],e)}function dt(){return he.getStore()??[]}var Y=class{#e;#t;#a;constructor({adapter:e,resolve:t}){this.#e=e,this.#t=t,this.#a=e.schemaConfigPipe}#r(e){let t=[...dt()];if(this.#a)return je(this.#t,t,e,this.#a);let r=this.#t(e);for(let n of t)r=n(r,e);return r}#o(e){return this.#e.use(e,this.#r(e))}on(e){return new M(new U(e,t=>this.#o(t)))}static from(e){return new ge(e)}async session(e){return this.#e.session?.(e)??e()}resolve(e,t){return it(e,t)}},ge=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t}resolve(e){return new a(this.#e,e)}build(){return new Y({adapter:this.#e,resolve:this.#t})}};export{Z as AggregateBuilder,X as AllBuilder,xe as ComputedField,re as EventLog,E as EventLogSchema,It as Field,ee as Filter,k as FilterGroup,Ct as IncOp,A as ManyRelation,Nt as MaxOp,Ee as MigrationCodegen,qe as Migrator,Mt as MinOp,Ut as MulOp,Q as OneBuilder,S as OneRelation,L as OrderBy,pt as OrmAdapter,Ft as OrmIntrospectionError,g as OrmMigrationError,K as OrmNotFoundError,F as OrmReplayError,h as OrmValidationError,Ht as PatchOp,Kt as PullOp,_t as PushOp,Fe as Relations,Y as Repo,I as Schema,ae as SchemaBuilder,U as SchemaContext,J as SchemaField,M as SchemaRef,B as SetOp,Dt as UnsetOp,Se as assertNormalisedAggregate,x as assertNormalisedFilter,je as composeSchemaConfig,oe as computePending,Te as diffSchemas,Zt as flattenOps,jt as inc,_ as isUpdateOp,Wt as max,Gt as min,Vt as mul,te as opTouchedFields,Xt as patch,Qt as pull,zt as push,Lt as set,v as toFieldName,He as tryValidateCreateRow,$t as unset,ue as validateCreate,Le as validateCreateMany,W as validateUpdate,rr as validateUpdateOps,Ve as validateUpsertConflicts};
|
|
1
|
+
import{a as Ft}from "../chunk-ZGMFFK6Y.min.mjs";import{A as zt,B as Qt,C as Xt,D as te,E as Zt,a as h,b as It,c as v,d as J,e as xe,f as ee,g as k,h as Se,i as x,j as pt,k as B,l as Ct,m as Ut,n as Mt,o as Nt,p as Dt,q as _t,r as Kt,s as Ht,t as _,u as Lt,v as jt,w as Vt,x as Gt,y as Wt,z as $t}from "../chunk-4JLDXF7T.min.mjs";import{K as we,a as f}from "../chunk-FLAPYQUT.min.mjs";import"../chunk-DSUJ5FUL.min.mjs";import"../chunk-AQY7QVYI.min.mjs";var g=class extends f{id;phase;constructor(e){super(`Migration failed at phase '${e.phase}' for migration '${e.id}'`,{id:e.id,phase:e.phase},e.cause),this.id=e.id,this.phase=e.phase}};function lt(a){if(a.op==="and"&&a.children.length===1&&a.children[0]instanceof ee&&a.children[0].op==="eq"){let e=a.children[0];return`${e.field}=${e.value}`}return be(a)}function be(a){if(a instanceof ee)return`${a.field} ${a.op} ${JSON.stringify(a.value)}`;let e=a.children.map(t=>be(t));return e.length===1?e[0]:`(${e.join(` ${a.op} `)})`}var K=class extends f{schema;operation;where;constructor(e){let t=e.message??`${e.schema}.${e.operation}: no row matched ${lt(e.where)}`;super(t,{schema:e.schema,operation:e.operation,where:e.where}),this.schema=e.schema,this.operation=e.operation,this.where=e.where}};var F=class extends f{key;eventName;constructor(e){super(`EventLog replay failed on event ${e.name} (key=${e.key})`,{key:e.key,name:e.name},e.cause),this.key=e.key,this.eventName=e.name}};import{ulid as ut}from"ulid";import{v as ft}from"valleyed";import{ulid as mt}from"ulid";import{v as T}from"valleyed";import"valleyed";var ae=class a{#e;#t;#a;#r;constructor(e,t,r,n){this.#e=e,this.#t=t??null,this.#a=r??{},this.#r=n??{}}get name(){return this.#e}pk(e,t,r){return new a(this.#e,new J(e,t,{onCreate:r}),{...this.#a},void 0)}field(e,t,r){let n={...this.#a,[e]:new J(e,t,r)};return new a(this.#e,this.#t,n,{...this.#r})}computed(e,t,r,n){let o={...this.#r,[e]:new xe(e,r,t,n)};return new a(this.#e,this.#t,{...this.#a},o)}build(){let e=this;return new I(e.#e,e.#t,e.#a,e.#r)}},I=class{#e;#t;#a;#r;constructor(e,t,r,n){this.#e=e,this.#t=t,this.#a=r,this.#r=n,this.#t&&Object.defineProperty(this.#t,"__schema",{value:this,enumerable:!1,configurable:!0});for(let o of Object.values(this.#a))Object.defineProperty(o,"__schema",{value:this,enumerable:!1,configurable:!0})}get name(){return this.#e}get pkField(){if(!this.#t)throw new Error(`Schema "${this.#e}" does not have a primary key defined`);return this.#t}get fieldDefs(){return this.#a}get computedDefs(){return this.#r}get fields(){return{...this.#t?{[this.#t.name]:this.#t}:{},...this.#a}}static from(e){return new ae(e)}};var E=I.from("event_log").pk("key",T.string(),()=>mt()).field("name",T.string()).field("ts",T.number()).field("body",T.any()).field("by",T.nullable(T.string())).build();async function ve(a,e,t,r,n){let o=ft.validate(t.pipe,r);if(!o.valid)throw new h("validation","event_log","fire",[{cause:o.error}]);return a.session(async()=>{let s=n?.at??new Date,i=s.getTime(),d=ut(i),c=n?.by??null;await a.on(E).one().create({key:d,name:e,ts:i,body:o.value,by:c});let m={key:d,name:e,ts:i,body:o.value,by:c,at:s,firstRun:!0};return await t.handle(o.value,m)})}var H=class{#e=new Map;#t=[];register(e,t){if(this.#e.has(e))throw new f(`EventLog handler "${e}" is already registered`,{name:e});this.#e.set(e,t),this.#t.push(e)}get(e){let t=this.#e.get(e);if(!t)throw new f(`EventLog handler "${e}" is not registered`,{name:e});return t}list(){return[...this.#t]}};var Ae=async(a,e,t)=>{let r={key:t.key,name:t.name,ts:t.ts,body:t.body,by:t.by,at:new Date(t.ts),firstRun:!1};try{await a.session(async()=>{await e.handle(t.body,r)})}catch(n){throw new F({key:t.key,name:t.name,cause:n})}};async function ke(a,e,t){let r=a.on(E).all().orderBy("ts","asc");t?.from&&(r=r.where(o=>o.gte("ts",t.from.getTime())));let n=await r.find();for(let o of n)await Ae(a,e.get(o.name),o)}async function Oe(a,e,t){let r=await a.on(E).one().id(t).find();if(!r)throw new F({key:t,name:"unknown",cause:new Error(`Event with key "${t}" not found`)});await Ae(a,e.get(r.name),r)}var re=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t}handler(e,t){return this.#t.register(e,t),(r,n)=>ve(this.#e,e,t,r,n)}replay(e){return ke(this.#e,this.#t,e)}rerun(e){return Oe(this.#e,this.#t,e)}static from(e){return{build:()=>new a(e,new H)}}};var Re=["dropForeignKey","dropIndex","dropField","dropTable","renameTable","renameField","createTable","addField","modifyField","addIndex","addForeignKey"];function yt(a,e){if(e==="execute")return!0;let t=`apply${e[0].toUpperCase()}${e.slice(1)}`;return typeof a[t]=="function"}function ht(a,e){return!(a.type!==e.type||(a.nullable??!1)!==e.nullable||a.default!==e.default||(a.unique??!1)!==(e.unique??!1))}var ne=a=>({name:a.name,type:a.type,...a.nullable?{nullable:!0}:{}});function gt(a){let e=a.pkField,t=Be(e.pipe),r=[];for(let n of Object.values(a.fieldDefs)){let o=n;r.push({name:o.name,type:Be(o.pipe),nullable:xt(o.pipe)})}return{name:a.name,pk:{name:e.name,type:t},fields:r}}var wt=new Set(["string","number","boolean","array","object","date"]);function Be(a){if(!a)return"string";let e=typeof a.schema=="function"?a.schema():void 0;if(e?.type)return wt.has(e.type)?e.type:"string";let t=a["~standard"];if(t?.validate){if(!t.validate(0).issues)return"number";if(!t.validate("").issues)return"string";if(!t.validate(!0).issues)return"boolean";if(!t.validate([]).issues)return"array";if(!t.validate({}).issues)return"object"}return"string"}function xt(a){if(!a)return!1;if((typeof a.context=="function"?a.context():void 0)?.optional)return!0;let t=a["~standard"];return!!(t?.validate&&!t.validate(void 0).issues)}function Te(a,e,t){let r=[],n=new Map(t.map(s=>[s.name,s])),o=new Map(e.map(s=>[s.name,s]));for(let s of t)if(!o.has(s.name)){for(let i of s.foreignKeys)r.push({kind:"dropForeignKey",table:s.name,name:i.name});for(let i of s.indexes)r.push({kind:"dropIndex",name:i.name});r.push({kind:"dropTable",name:s.name})}for(let s of e){let i=gt(s),d=n.get(i.name);if(!d){r.push({kind:"createTable",name:i.name,pk:i.pk,fields:i.fields.map(ne)});continue}let c=new Map(d.fields.map(p=>[p.name,p])),m=new Map(i.fields.map(p=>[p.name,p]));for(let p of d.fields)m.has(p.name)||r.push({kind:"dropField",table:i.name,name:p.name});for(let p of i.fields){let y=c.get(p.name);y?ht(p,y)||r.push({kind:"modifyField",table:i.name,name:p.name,to:ne(p)}):r.push({kind:"addField",table:i.name,field:ne(p)})}}return r.filter(s=>yt(a,s.kind)).sort((s,i)=>Re.indexOf(s.kind)-Re.indexOf(i.kind))}var Ee=class a{#e;#t;constructor(e,t,r){this.#e=t,this.#t=r}async diff(){let e=await this.#e.introspect(),t=Te(this.#e,this.#t,e);return t.length===0?null:t}async discover(){return this.#e.introspect()}static from(e,t){return{target(r){return{build(){return new a(e,t,r)}}}}}};async function Pe(a,e,t){if(t.kind==="execute"){await t.up(e);return}let r=`apply${t.kind[0].toUpperCase()}${t.kind.slice(1)}`,n=a[r];if(typeof n!="function")throw new Error(`Adapter does not support change kind '${t.kind}'`);await n.call(a,t)}function oe(a,e,t){let r=new Set(e.map(c=>c.id)),n=new Set(a.map(c=>c.id)),o=e.filter(c=>!n.has(c.id)).map(c=>c.id);if(o.length>0)throw new g({id:o[0],phase:"load",cause:`orphan migrations: [${o.join(", ")}]`});let s=[...a].sort((c,m)=>c.id.localeCompare(m.id)),i=[],d=[];for(let c of s)r.has(c.id)?d.push(c.id):i.push(c);if(t?.to!==void 0){let c=i.findIndex(m=>m.id===t.to);if(c===-1){if(r.has(t.to))return{pending:[],skipped:d};throw new g({id:t.to,phase:"load",cause:`unknown migration id: ${t.to}`})}i.splice(c+1)}return t?.steps!==void 0&&i.splice(t.steps),{pending:i,skipped:d}}function u(a){return!a||a.trim()===""}function se(a,e,t){u(e.name)&&a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,field:t,cause:`${t} name must be non-empty`}),a.adapter.supportedFieldTypes.length>0&&!a.adapter.supportedFieldTypes.includes(e.type)&&a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,field:t,cause:`unsupported field type '${e.type}'`})}function l(a,e,t){a.failures.push({migrationId:a.migrationId,changeIndex:a.changeIndex,...e?{field:e}:{},cause:t})}function St(a,e,t,r,n){if(e.kind==="execute")return;let o={adapter:a,migrationId:t,changeIndex:r,failures:n},s=`apply${e.kind[0].toUpperCase()}${e.kind.slice(1)}`;switch(typeof a[s]!="function"&&l(o,void 0,`adapter does not support change kind '${e.kind}'`),e.kind){case"createTable":{u(e.name)&&l(o,"name","table name must be non-empty"),u(e.pk.name)&&l(o,"pk.name","pk name must be non-empty"),a.supportedFieldTypes.length>0&&!a.supportedFieldTypes.includes(e.pk.type)&&l(o,"pk.type",`unsupported field type '${e.pk.type}'`);let i=new Set;for(let d of e.fields)se(o,d,"field"),i.has(d.name)&&l(o,"fields",`duplicate field name '${d.name}' in createTable`),i.add(d.name);e.pk.name&&i.has(e.pk.name)&&l(o,"pk.name",`pk name '${e.pk.name}' collides with a field name`);break}case"dropTable":{u(e.name)&&l(o,"name","table name must be non-empty");break}case"addField":{u(e.table)&&l(o,"table","table name must be non-empty"),se(o,e.field,"field");break}case"dropField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","field name must be non-empty");break}case"modifyField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","field name must be non-empty"),se(o,e.to,"to");break}case"renameTable":{u(e.from)&&l(o,"from","table name must be non-empty"),u(e.to)&&l(o,"to","table name must be non-empty");break}case"renameField":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.from)&&l(o,"from","field name must be non-empty"),u(e.to)&&l(o,"to","field name must be non-empty");break}case"addIndex":{u(e.table)&&l(o,"table","table name must be non-empty"),(!e.on||e.on.length===0)&&l(o,"on","addIndex.on must be non-empty");break}case"dropIndex":{u(e.name)&&l(o,"name","index name must be non-empty");break}case"addForeignKey":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.on)&&l(o,"on","addForeignKey.on must be non-empty"),u(e.references?.table)&&l(o,"references.table","references table must be non-empty"),u(e.references?.column)&&l(o,"references.column","references column must be non-empty");break}case"dropForeignKey":{u(e.table)&&l(o,"table","table name must be non-empty"),u(e.name)&&l(o,"name","foreign key name must be non-empty");break}}}function ie(a,e){let t=[],r=new Set;for(let n of e){if(u(n.id)){t.push({cause:"migration id must be a non-empty string"});continue}r.has(n.id)&&t.push({migrationId:n.id,cause:`duplicate migration id '${n.id}'`}),r.add(n.id);for(let o=0;o<n.changes.length;o++)St(a,n.changes[o],n.id,o,t)}if(t.length>0)throw new h("changes","migrations","build",t)}var qe=class a{#e;#t;#a;#r;constructor(e,t,r,n=!1){this.#e=e,this.#t=t,this.#a=r,this.#r=n}#o(e){if(typeof this.#t[e]!="function"){let t=e==="loadMigrations"?"load":"record";throw new g({id:"",phase:t,cause:`adapter does not implement ${e}`})}}async up(e){if(this.#o("loadMigrations"),this.#o("recordMigration"),!this.#r&&typeof this.#t.acquireMigrationLock=="function")try{return await this.#t.acquireMigrationLock(()=>this.#n(e))}catch(r){throw r instanceof g?r:new g({id:"",phase:"lock",cause:r})}return this.#n(e)}async status(){this.#o("loadMigrations");let e=await this.#t.loadMigrations(),t=new Map(e.map(n=>[n.id,n.appliedAt]));return[...this.#a].sort((n,o)=>n.id.localeCompare(o.id)).map(n=>{let o=t.get(n.id);return o!==void 0?{id:n.id,applied:!0,appliedAt:o}:{id:n.id,applied:!1}})}async dry(e){this.#o("loadMigrations");let t=await this.#t.loadMigrations(),{pending:r}=oe(this.#a,t,e);return{would:r.map(n=>n.id)}}async#n(e){let t;try{t=await this.#t.loadMigrations()}catch(s){throw new g({id:"",phase:"load",cause:s})}let{pending:r,skipped:n}=oe(this.#a,t,e),o=[];for(let s of r){let i=async()=>{for(let c of s.changes)try{await Pe(this.#t,this.#e,c)}catch(m){throw new g({id:s.id,phase:"user",cause:m})}try{await this.#t.recordMigration(s.id,Date.now())}catch(c){throw new g({id:s.id,phase:"record",cause:c})}};if(s.tx!==!1&&typeof this.#t.session=="function")try{await this.#e.session(i)}catch(c){throw c instanceof g?c:new g({id:s.id,phase:"session",cause:c})}else await i();o.push(s.id)}return{ran:o,skipped:n}}static from(e,t){return{migrations(r){return{build(){return ie(t,r),new a(e,t,r)},withoutLock(){return{build(){return ie(t,r),new a(e,t,r,!0)}}}}}}}};var L=class{constructor(e,t){this.direction=t;this.field=v(e)}field};var A=class{constructor(e,t,r,n,o){this.name=e;this.source=t;this.target=r;this.foreignKey=n;this.references=o}},S=class{constructor(e,t,r,n,o,s){this.name=e;this.source=t;this.target=r;this.foreignKey=n;this.fkOwner=o;this.references=s}},de=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t??{}}hasMany(e,t){let r=t.__schema,n={...this.#t,[e]:new A(e,this.#e,r,t,this.#e.pkField)};return new a(this.#e,n)}hasOne(e,t){let r=t.__schema,n={...this.#t,[e]:new S(e,this.#e,r,t,"target",this.#e.pkField)};return new a(this.#e,n)}belongsTo(e,t,r,n){let o=n??r.pkField,s={...this.#t,[e]:new S(e,this.#e,r,t,"source",o)};return new a(this.#e,s)}build(){return this.#t}},Fe=class{static from(e){return new de(e)}};import{v as bt}from"valleyed";function P(a,e){let t=a.computedDefs,r=new Set(Object.keys(t)),n=new Set(Object.keys(a.fields));if(!e||e.length===0)return{requestedSelect:null,adapterSelect:void 0,computeNames:[...r]};let o=new Set(e),s=new Set,i=new Set;for(let d of e){if(n.has(d)){s.add(d);continue}if(r.has(d)){i.add(d);for(let c of t[d].deps)s.add(c);continue}throw new f("Unknown selected field",{schema:a.name,selectedField:d,availableFields:[...n,...r]})}return{requestedSelect:o,adapterSelect:[...s],computeNames:[...i]}}function Ie(a,e,t){let r=a.computedDefs;return e.map(n=>{let o={...n};for(let i of t.computeNames){let d=r[i],c={};for(let p of d.deps){if(!(p in n))throw new f("Computed field dependency missing from adapter result",{schema:a.name,computedField:i,dependency:p,dependencies:d.deps});c[p]=n[p]}let m=bt.validate(d.pipe,d.compute(c));if(!m.valid)throw new f("Computed field validation failed",{schema:a.name,computedField:i,cause:m.error});o[i]=m.value}if(!t.requestedSelect)return o;let s={};for(let i of t.requestedSelect)i in o&&(s[i]=o[i]);return s})}var vt=100,Ce=5;function Ue(a){return a instanceof A||a instanceof S}function Me(a){return typeof a=="object"&&a!=null&&"def"in a}function At(a){return`${a.source.name}.${a.name}->${a.target.name}`}function q(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>0}function j(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>=0}function ce(){return we.maybeGet()?.settings.utils.paginationDefaultLimit??vt}function V(a,e,t){if(!e||e.length===0)return;let r=new Set(Object.keys(a.fields)),n=new Set(Object.keys(a.computedDefs));for(let o of e)r.has(o)||n.has(o)||t.push({field:o,cause:`Unknown selected field "${o}" on schema "${a.name}"`})}function C(a,e,t,r=1,n=[]){if(e!=null){if(!Array.isArray(e)){t.push({cause:"Preloads must be an array"});return}if(e.length!==0){if(r>Ce){t.push({cause:`Preload depth exceeded max depth ${Ce}`});return}for(let o of e){let s=Ue(o)?o:Me(o)?o.def:void 0;if(!Ue(s)){t.push({cause:"Invalid preload definition: expected a relation definition or nested preload definition with `def`"});continue}s.source!==a&&t.push({field:s.name,cause:`Preload relation "${s.name}" belongs to source schema "${s.source.name}" but was used from schema "${a.name}"`});let i=At(s);if(n.includes(i)){t.push({field:s.name,cause:`Preload cycle detected: ${[...n,i].join(" -> ")}`});continue}if(Me(o)){let d=o.preloads??[];if(!Array.isArray(d)){t.push({field:s.name,cause:`Nested preloads for relation "${s.name}" must be an array`});continue}C(s.target,d,t,r+1,[...n,i])}}}}}function pe(a,e){if(q(a))return a;e.push({field:"limit",option:"limit",cause:"Limit must be a positive safe integer"})}function le(a,e){if(j(a))return a;e.push({field:"offset",option:"offset",cause:"Offset must be a non-negative safe integer"})}function me(a,e){if(q(a))return a;e.push({field:"page",option:"page",cause:"Page must be a positive safe integer"})}function kt(a,e){if(a!==void 0){if(q(a))return a;e.push({field:"batchSize",option:"batchSize",cause:"Batch size must be a positive safe integer"})}}function Ot(a,e){if(a!==void 0){if(a==null||typeof a!="object"||Array.isArray(a)){e.push({option:"batchSize",cause:"Iteration options must be an object"});return}return kt(a.batchSize,e)}}function G(a,e,t){if(t.length>0)throw new h("query-shape",a.name,e,t)}function Ne(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r),G(a,e,r)}function De(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r);let n=t.limitSource===void 0?void 0:pe(t.limitSource.value,r),o;if(t.offsetSource?.kind==="offset")o=le(t.offsetSource.value,r);else if(t.offsetSource?.kind==="page"){let s=me(t.offsetSource.value,r);if(n===void 0&&t.limitSource===void 0&&(n=ce(),q(n)||(r.push({field:"limit",cause:"Default page limit must be a positive safe integer"}),n=void 0)),s!==void 0&&n!==void 0){let i=(s-1)*n;j(i)?o=i:r.push({field:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,r),{limit:n,offset:o}}function _e(a,e,t,r){let n=[];V(a,t.select,n),C(a,t.preloads,n);let o=t.limitSource===void 0?void 0:pe(t.limitSource.value,n),s,i=Ot(r,n);if(t.offsetSource?.kind==="offset")s=le(t.offsetSource.value,n);else if(t.offsetSource?.kind==="page"){let d=me(t.offsetSource.value,n);if(o===void 0&&t.limitSource===void 0&&(o=ce(),q(o)||(n.push({field:"limit",option:"limit",cause:"Default page limit must be a positive safe integer"}),o=void 0)),d!==void 0&&o!==void 0){let c=(d-1)*o;j(c)?s=c:n.push({field:"offset",option:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,n),{limit:o,offset:s,batchSize:i}}function Ke(a,e,t){let r=[];V(a,t.select,r),C(a,t.preloads,r);let n;t.limitSource===void 0?(n=ce(),q(n)||(r.push({field:"limit",cause:"Default page limit must be a positive safe integer"}),n=void 0)):n=pe(t.limitSource.value,r);let o=0,s=1;if(t.offsetSource?.kind==="offset"){let i=le(t.offsetSource.value,r);i!==void 0&&(o=i,n!==void 0&&(s=Math.floor(i/n)+1))}else if(t.offsetSource?.kind==="page"){let i=me(t.offsetSource.value,r);if(i!==void 0&&(s=i),i!==void 0&&n!==void 0){let d=(i-1)*n;j(d)?o=d:r.push({field:"offset",cause:"Resolved page offset must be a non-negative safe integer"})}}return G(a,e,r),{limit:n,offset:o,current:s}}import{v as O}from"valleyed";function He(a,e){let t=[],r={};for(let[n,o]of Object.entries(a.fields)){let s=o.onCreate?O.defaults(o.pipe,o.onCreate()):o.pipe,i=n in e?e[n]:void 0,d=O.validate(s,i);d.valid?r[n]=d.value:t.push({field:n,cause:d.error})}return t.length>0?{ok:!1,failures:t}:{ok:!0,value:r}}function ue(a,e){let t=He(a,e);if(!t.ok)throw new h("validation",a.name,"createOne",t.failures);return t.value}function Le(a,e){let t=[],r=[];for(let n=0;n<e.length;n++){let o=He(a,e[n]);if(o.ok)r.push(o.value);else for(let s of o.failures)t.push({...s,rowIndex:n})}if(t.length>0)throw new h("validation",a.name,"createMany",t);return r}function W(a,e){let t={},r={};for(let[s,i]of Object.entries(e))_(i)?r[s]=i:s in a.fieldDefs&&(t[s]=a.fieldDefs[s].pipe);for(let[s,i]of Object.entries(a.fieldDefs))!(s in e)&&i.onUpdate&&(t[s]=O.defaults(i.pipe,i.onUpdate()));let n=O.validate(O.object(t),e);if(!n.valid)throw new h("validation",a.name,"updateByPk",[{cause:n.error}]);return{...n.value,...r}}function rr(a,e,t="updateByPk"){let r=new Map;for(let d=0;d<e.length;d++)for(let c of te(e[d]))r.has(c)||r.set(c,[]),r.get(c).push(d);let n=[];for(let[d,c]of Object.entries(a.fieldDefs))if(c.onUpdate&&!r.has(d)){let m=new B({[d]:c.onUpdate()});n.push(m),r.set(d,[e.length+n.length-1])}let o=[...e,...n],s=[];for(let[d,c]of r)c.length>1&&s.push({field:d,cause:`field "${d}" touched by multiple ops at indices [${c.join(", ")}]`});if(s.length>0)throw new h("conflicting-ops",a.name,t,s);let i=[];for(let d=0;d<o.length;d++){let c=o[d];if(c instanceof B)for(let[m,p]of Object.entries(c.values)){let y=a.fields[m];if(!y)continue;let b=O.validate(y.pipe,p);b.valid||i.push({opIndex:d,field:m,cause:b.error})}}if(i.length>0)throw new h("validation",a.name,t,i);return o}function je(a,e,t,r){let n=a(t);for(let s of e)n=s(n,t);let o=O.validate(r,n);if(!o.valid)throw new h("validation",t.name,"schemaConfig",[{cause:o.error}]);return o.value}function Ve(a,e,t){let r=new Set(Object.keys(e)),n=[];for(let o of t)if(!(o instanceof B))for(let s of te(o))r.has(s)&&n.push({field:s,cause:`field "${s}" present in both create payload and atomic op "${o.kind}"`});if(n.length>0)throw new h("conflicting-ops",a.name,"upsertOne",n)}async function Ge(a,e){x(a.schema,e.where),Ne(a.schema,"findOne",e);let t=await a.use.findOne(e.where);return t?a.shapeOneRow(e.select,e.preloads,t):null}async function We(a,e){x(a.schema,e.where);let t=De(a.schema,"findMany",e),r=P(a.schema,e.select),n=await a.use.findMany(e.where,{select:r.adapterSelect,orderBy:[...e.orderBy],limit:t.limit,offset:t.offset});return a.shapeRows(e.select,e.preloads,n)}async function $e(a,e){return x(a.schema,e.where),a.use.count(e.where)}function Rt(a,e,t,r){let o=Math.ceil(e/t)||1,s=r<=1||r>o?null:r-1,i=r>=o?null:r+1;return{pages:{current:r,start:1,last:o,previous:s,next:i},docs:{limit:t,total:e,count:a.length},items:a}}async function ze(a,e){x(a.schema,e.where);let t=Ke(a.schema,"paginate",e),r=P(a.schema,e.select),n=a.use,[o,s]=await Promise.all([n.findMany(e.where,{select:r.adapterSelect,orderBy:[...e.orderBy],limit:t.limit,offset:t.offset}),n.count(e.where)]),i=await a.shapeRows(e.select,e.preloads,o);return Rt(i,s,t.limit,t.current)}async function*Qe(a,e,t){x(a.schema,e.where);let r=_e(a.schema,"iterate",e,t),n=P(a.schema,e.select);for await(let o of a.use.iterateMany(e.where,{select:n.adapterSelect,orderBy:[...e.orderBy],limit:r.limit,offset:r.offset,...r.batchSize===void 0?{}:{batchSize:r.batchSize}})){let i=(await a.shapeRows(e.select,e.preloads,[o]))[0];i&&(yield i)}}async function Xe(a,e,t){let r=ue(a.schema,t),n=await a.use.createOne(r),[o]=await a.shapeRows(e.select,e.preloads,[n]);return o}async function Ze(a,e,t){let r=Le(a.schema,t),n=await a.use.createMany(r);return a.shapeRows(e.select,e.preloads,n)}async function Ye(a,e,t){x(a.schema,e.where);let r=W(a.schema,t),n=await a.use.updateOne(e.where,r);return a.shapeOneRow(e.select,e.preloads,n)}async function Je(a,e,t){x(a.schema,e.where);let r=W(a.schema,t),n=await a.use.updateMany(e.where,r);return a.shapeRows(e.select,e.preloads,n)}async function et(a,e,t){x(a.schema,e.where);let r=ue(a.schema,t.create),n=[];if("update"in t){let s=W(a.schema,t.update),i={};for(let[d,c]of Object.entries(s))_(c)?n.push(c):i[d]=c;Object.keys(i).length>0&&n.unshift(new B(i))}n.length>0&&Ve(a.schema,t.create,n);let o=await a.use.upsertOne(e.where,r,n);return await a.shapeOneRow(e.select,e.preloads,o)}async function tt(a,e){x(a.schema,e.where);let t=await a.use.deleteOne(e.where);return a.shapeOneRow(e.select,e.preloads,t)}async function at(a,e){x(a.schema,e.where);let t=await a.use.deleteMany(e.where);return a.shapeRows(e.select,e.preloads,t)}async function rt(a,e){return Se(a.schema,a.use,e),a.use.aggregate(e)}var fe=5;function Bt(a){return typeof a=="object"&&a!=null&&"def"in a}function Tt(a){return`${a.source.name}.${a.name}->${a.target.name}`}function ye(a,e){return[...new Set(a.map(t=>t[e]).filter(t=>t!=null))]}function nt(a,e,t,r){return a.map(n=>({...n,[e]:r.get(n[t])??null}))}function Et(a,e,t,r){return a.map(n=>({...n,[e]:r.get(n[t])??[]}))}function ot(a){return a.map(e=>{if(e instanceof A||e instanceof S)return{def:e,preloads:[]};if(!Bt(e)||!(e.def instanceof A||e.def instanceof S))throw new Error("Invalid preload definition: nested preloads must include a relation definition in `def`");return{def:e.def,preloads:ot(e.preloads??[])}})}async function st(a,e,t){return $(a,ot(e),t,1,[])}async function $(a,e,t,r,n){for(let o of e)a=await Pt(a,o,t,r,n);return a}async function Pt(a,e,t,r,n){if(r>fe)throw new f(`Preload depth exceeded max depth ${fe}`,{operation:"resolvePreload",depth:r,maxDepth:fe});let{def:o}=e,{target:s,name:i}=o,d=Tt(o);if(n.includes(d))throw new f(`Preload cycle detected: ${[...n,d].join(" -> ")}`,{operation:"resolvePreload",path:n,step:d});let c=[...n,d];if(o instanceof S){if(o.fkOwner==="source"){let w=o.references.name,R=ye(a,o.foreignKey.name);if(R.length===0)return a.map(D=>({...D,[i]:null}));let N=await t(s).findMany(k.create().in(w,R));e.preloads.length>0&&N.length>0&&(N=await $(N,e.preloads,t,r+1,c));let ct=new Map(N.map(D=>[D[w],D]));return nt(a,i,o.foreignKey.name,ct)}let m=o.references.name,p=ye(a,m);if(p.length===0)return a.map(w=>({...w,[i]:null}));let y=await t(s).findMany(k.create().in(o.foreignKey,p));e.preloads.length>0&&y.length>0&&(y=await $(y,e.preloads,t,r+1,c));let b=new Map(y.map(w=>[w[o.foreignKey.name],w]));return nt(a,i,m,b)}if(o instanceof A){let m=o.references.name,p=ye(a,m);if(p.length===0)return a.map(w=>({...w,[i]:[]}));let y=await t(s).findMany(k.create().in(o.foreignKey,p));e.preloads.length>0&&y.length>0&&(y=await $(y,e.preloads,t,r+1,c));let b=new Map;for(let w of y){let R=w[o.foreignKey.name];b.has(R)||b.set(R,[]),b.get(R).push(w)}return Et(a,i,m,b)}throw new Error(`Unknown relation kind: ${String(Reflect.get(o,"kind"))}; expected OneRelation or ManyRelation`)}var U=class{constructor(e,t){this.schema=e;this.getUse=t}async shapeRows(e,t,r){let n=P(this.schema,e),o=Ie(this.schema,r,n);return t.length===0?o:await st(o,t,this.getUse)}async shapeOneRow(e,t,r){if(!r)return null;let[n]=await this.shapeRows(e,t,[r]);return n??null}get use(){return this.getUse(this.schema)}},z=class{_context;_where;_select;_preloads;constructor(e,t){this._context=e,this._where=t?.where?t.where.clone():k.create(),this._select=t?.select,this._preloads=t?.preloads??[]}where(e){let t=e(this._where.clone());return this._clone({where:t,select:this._select,preloads:this._preloads})}select(e){return this._clone({select:e})}preload(e){return this._clone({preloads:e})}_readState(e={}){return{where:e.where??this._where.clone(),select:e.select??this._select,preloads:e.preloads??[...this._preloads]}}},M=class{#e;constructor(e){this.#e=e}one(){return new Q(this.#e)}all(){return new X(this.#e)}aggregate(){return new Z(this.#e)}raw(...e){return this.#e.use.raw(...e)}},Q=class a extends z{_required;_requiredMessage;constructor(e,t,r){super(e,t),this._required=r?.required??!1,this._requiredMessage=r?.message}id(e){let t=this._where.clone().eq(this._context.schema.pkField,e);return this._clone({where:t,select:this._select,preloads:this._preloads})}required(e){return new a(this._context,this._readState(),{required:!0,message:e})}_assertFound(e,t){if(this._required&&e===null)throw new K({schema:this._context.schema.name,operation:t,where:this._where,message:this._requiredMessage})}_clone(e){return new a(this._context,this._readState(e),{required:this._required,message:this._requiredMessage})}create(e){return Xe(this._context,{select:this._select,preloads:this._preloads},e)}async update(e){let t=await Ye(this._context,{where:this._where,select:this._select,preloads:this._preloads},e);return this._assertFound(t,"updateOne"),t}upsert(e){return et(this._context,{where:this._where,select:this._select,preloads:this._preloads},e)}async delete(){let e=await tt(this._context,{where:this._where,select:this._select,preloads:this._preloads});return this._assertFound(e,"deleteOne"),e}async find(){let e=await Ge(this._context,{where:this._where,select:this._select,preloads:this._preloads});return this._assertFound(e,"findOne"),e}},X=class a extends z{#e;#t;#a;constructor(e,t,r){super(e,t),this.#e=r?.orderBy??[],this.#t=r?.limitSource,this.#a=r?.offsetSource}#r(e){let t=r=>Object.prototype.hasOwnProperty.call(e,r);return new a(this._context,this._readState(),{orderBy:t("orderBy")?e.orderBy:[...this.#e],limitSource:t("limitSource")?e.limitSource:this.#t,offsetSource:t("offsetSource")?e.offsetSource:this.#a})}_clone(e){return new a(this._context,this._readState({where:e.where,select:e.select,preloads:e.preloads}),{orderBy:[...this.#e],limitSource:this.#t,offsetSource:this.#a})}orderBy(e,t="asc"){return this.#r({orderBy:[...this.#e,new L(e,t)]})}limit(e){return this.#r({limitSource:{value:e}})}offset(e){return this.#r({offsetSource:{kind:"offset",value:e}})}page(e){return this.#r({offsetSource:{kind:"page",value:e}})}create(e){return Ze(this._context,{select:this._select,preloads:this._preloads},e)}update(e){return Je(this._context,{where:this._where,select:this._select,preloads:this._preloads},e)}delete(){return at(this._context,{where:this._where,select:this._select,preloads:this._preloads})}find(){return We(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a})}count(){return $e(this._context,{where:this._where})}paginate(){return ze(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a})}iterate(e){return Qe(this._context,{where:this._where,select:this._select,preloads:this._preloads,orderBy:this.#e,limitSource:this.#t,offsetSource:this.#a},e)}},Z=class a{#e;#t;#a;#r;#o;constructor(e,t){this.#e=e,this.#t=t?.where?t.where.clone():k.create(),this.#a=t?.having?t.having.clone():k.create(),this.#r=t?.aggregates??[],this.#o=t?.groupBy??[]}get#n(){return{where:this.#t,having:this.#a,aggregates:this.#r,groupBy:this.#o}}where(...e){let t=e[0];return new a(this.#e,{...this.#n,where:t(this.#t.clone())})}having(...e){let t=e[0];return new a(this.#e,{...this.#n,having:t(this.#a.clone())})}groupBy(...e){return new a(this.#e,{...this.#n,groupBy:e.map(t=>v(t))})}count(...[e]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"count",alias:e}]})}countDistinct(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"countDistinct",field:v(e),alias:t}]})}sum(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"sum",field:v(e),alias:t}]})}avg(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"avg",field:v(e),alias:t}]})}min(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"min",field:v(e),alias:t}]})}max(e,...[t]){return new a(this.#e,{...this.#n,aggregates:[...this.#r,{fn:"max",field:v(e),alias:t}]})}async run(...e){let t={aggregates:this.#r,groupBy:this.#o};this.#t.children.length>0&&(t.where=this.#t),this.#a.children.length>0&&(t.having=this.#a);let r=await rt(this.#e,t);return this.#o.length>0?r:r[0]}};import{AsyncLocalStorage as qt}from"async_hooks";var he=new qt;function it(a,e){let t=he.getStore()??[];return he.run([...t,a],e)}function dt(){return he.getStore()??[]}var Y=class{#e;#t;#a;constructor({adapter:e,resolve:t}){this.#e=e,this.#t=t,this.#a=e.schemaConfigPipe}#r(e){let t=[...dt()];if(this.#a)return je(this.#t,t,e,this.#a);let r=this.#t(e);for(let n of t)r=n(r,e);return r}#o(e){return this.#e.use(e,this.#r(e))}on(e){return new M(new U(e,t=>this.#o(t)))}static from(e){return new ge(e)}async session(e){return this.#e.session?.(e)??e()}resolve(e,t){return it(e,t)}},ge=class a{#e;#t;constructor(e,t){this.#e=e,this.#t=t}resolve(e){return new a(this.#e,e)}build(){return new Y({adapter:this.#e,resolve:this.#t})}};export{Z as AggregateBuilder,X as AllBuilder,xe as ComputedField,re as EventLog,E as EventLogSchema,It as Field,ee as Filter,k as FilterGroup,Ct as IncOp,A as ManyRelation,Nt as MaxOp,Ee as MigrationCodegen,qe as Migrator,Mt as MinOp,Ut as MulOp,Q as OneBuilder,S as OneRelation,L as OrderBy,pt as OrmAdapter,Ft as OrmIntrospectionError,g as OrmMigrationError,K as OrmNotFoundError,F as OrmReplayError,h as OrmValidationError,Ht as PatchOp,Kt as PullOp,_t as PushOp,Fe as Relations,Y as Repo,I as Schema,ae as SchemaBuilder,U as SchemaContext,J as SchemaField,M as SchemaRef,B as SetOp,Dt as UnsetOp,Se as assertNormalisedAggregate,x as assertNormalisedFilter,je as composeSchemaConfig,oe as computePending,Te as diffSchemas,Zt as flattenOps,jt as inc,_ as isUpdateOp,Wt as max,Gt as min,Vt as mul,te as opTouchedFields,Xt as patch,Qt as pull,zt as push,Lt as set,v as toFieldName,He as tryValidateCreateRow,$t as unset,ue as validateCreate,Le as validateCreateMany,W as validateUpdate,rr as validateUpdateOps,Ve as validateUpsertConflicts};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
package/dist/esm/orm/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OrmIntrospectionError
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-JH6EBXY4.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ComputedField,
|
|
6
6
|
Field,
|
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
set,
|
|
34
34
|
toFieldName,
|
|
35
35
|
unset
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-PQCBVQL6.mjs";
|
|
37
37
|
import {
|
|
38
38
|
EquippedError,
|
|
39
39
|
Instance
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-MDQKODYQ.mjs";
|
|
41
41
|
import "../chunk-VCCS7CAI.mjs";
|
|
42
42
|
import "../chunk-J5LGTIGS.mjs";
|
|
43
43
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{B as
|
|
1
|
+
import{B as m,C as y,K as p,g as c,m as d,q as u,u as l}from "../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";import R from"http";import x from"cookie-parser";import b from"cors";import i from"express";import f from"express-fileupload";import{rateLimit as q}from"express-rate-limit";import v from"helmet";import{pinoHttp as w}from"pino-http";var h=class extends d(m,y){#e;#s;constructor(s){super(s);let e=i(),r=p.get(),t=R.createServer(e);this.#e=e,this.#s=t,this.setup(t,s),e.disable("x-powered-by"),s.requests.log&&e.use(w({logger:r.log})),e.use(i.json()),e.use(i.text()),e.use(x()),e.use(v({crossOriginResourcePolicy:{policy:"cross-origin"},contentSecurityPolicy:!1})),e.use(b(this.cors)),e.use(i.urlencoded({extended:!1})),s.publicPath&&e.use(i.static(s.publicPath)),e.use(f({limits:{fileSize:r.settings.utils.maxFileUploadSizeInMb*1024*1024},useTempFiles:!1})),s.requests.rateLimit.enabled&&e.use(q({windowMs:s.requests.rateLimit.periodInMs,limit:s.requests.rateLimit.limit,handler:(n,o)=>o.status(c.TooManyRequests).json([{message:"Too Many Requests"}])}))}async parseRequest(s){let e=Object.fromEntries(await Promise.all(Object.entries(s.files??{}).map(async([r,t])=>{let n=Array.isArray(t)?t:[t],o=await Promise.all(n.map(async a=>({name:a.name,type:a.mimetype,size:a.size,isTruncated:a.truncated,data:a.data,duration:await u(a.data)})));return[r,o]})));return new l({ip:s.ip,body:s.body??{},cookies:s.cookies??{},params:s.params??{},query:s.query??{},method:s.method,path:s.path,headers:s.headers,files:e})}async handleResponse(s,e){if(e.piped)e.body.pipe(s);else{Object.entries(e.headers).forEach(([t,n])=>s.header(t,n)),Object.entries(e.cookies).forEach(([t,{value:n,...o}])=>s.cookie(t,n,o));let r=e.body===null||e.body===void 0?"json":"send";s.status(e.status)[r](e.body).end()}}createRawResponder(s,e){return this.createNodeRawResponder({request:s,response:e})}registerRoute(s,e,r){this.#e[s]?.(e,async(t,n)=>r(t,n))}registerErrorHandler(s){this.#e.use(async(e,r,t,n)=>s(e,r,t))}registerNotFoundHandler(s){this.#e.use(async(e,r,t)=>s(e,r))}startServer(s){return new Promise((e,r)=>{try{let t=this.#s.listen({host:"0.0.0.0",port:s},async()=>e(!0));p.on("close",t.close)}catch(t){r(t)}})}};export{h as ExpressServer};
|
|
2
2
|
//# sourceMappingURL=index.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/adapters/express/index.ts"],"sourcesContent":["import http from 'http'\n\nimport cookie from 'cookie-parser'\nimport cors from 'cors'\nimport express from 'express'\nimport fileUpload from 'express-fileupload'\nimport { rateLimit } from 'express-rate-limit'\n// import slowDown from 'express-slow-down'\nimport helmet from 'helmet'\nimport { pinoHttp } from 'pino-http'\n\nimport { Instance } from '../../../instance'\nimport { configurable, getMediaDuration } from '../../../utilities'\nimport { Request, Response } from '../../requests'\nimport { StatusCodes, type IncomingFile, type MethodsEnum } from '../../types'\nimport { Server, serverConfigPipe } from '../base'\n\nexport class ExpressServer extends configurable(serverConfigPipe, Server) {\n\t#app: express.Express\n\t#httpServer: http.Server\n\n\tprotected constructor(config: typeof ExpressServer.Config) {\n\t\tsuper(config)\n\t\tconst app = express()\n\t\tconst instance = Instance.get()\n\t\tconst httpServer = http.createServer(app)\n\t\tthis.#app = app\n\t\tthis.#httpServer = httpServer\n\n\t\tthis.setup(httpServer, config)\n\n\t\tapp.disable('x-powered-by')\n\t\tif (config.requests.log) app.use(pinoHttp({ logger: instance.log }))\n\t\tapp.use(express.json())\n\t\tapp.use(express.text())\n\t\tapp.use(cookie())\n\t\tapp.use(\n\t\t\thelmet({\n\t\t\t\tcrossOriginResourcePolicy: { policy: 'cross-origin' },\n\t\t\t\tcontentSecurityPolicy: false,\n\t\t\t}),\n\t\t)\n\t\tapp.use(cors(this.cors))\n\t\tapp.use(express.urlencoded({ extended: false }))\n\t\tif (config.publicPath) app.use(express.static(config.publicPath))\n\t\tapp.use(\n\t\t\tfileUpload({\n\t\t\t\tlimits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },\n\t\t\t\tuseTempFiles: false,\n\t\t\t}),\n\t\t)\n\t\tif (config.requests.rateLimit.enabled)\n\t\t\tapp.use(\n\t\t\t\trateLimit({\n\t\t\t\t\twindowMs: config.requests.rateLimit.periodInMs,\n\t\t\t\t\tlimit: config.requests.rateLimit.limit,\n\t\t\t\t\thandler: (_: express.Request, res: express.Response) =>\n\t\t\t\t\t\tres.status(StatusCodes.TooManyRequests).json([{ message: 'Too Many Requests' }]),\n\t\t\t\t}),\n\t\t\t)\n\t\t/* if (this.settings.slowdown.enabled) app.use(slowDown({\n\t\t\t\twindowMs: this.settings.slowdown.periodInMs,\n\t\t\t\tdelayAfter: this.settings.slowdown.delayAfter,\n\t\t\t\tdelayMs: this.settings.slowdown.delayInMs\n\t\t\t})) */\n\t}\n\n\tprotected async parseRequest(req: any) {\n\t\tconst files = Object.fromEntries(\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries(req.files ?? {}).map(async ([key, file]) => {\n\t\t\t\t\tconst uploads = Array.isArray(file) ? file : [file]\n\t\t\t\t\tconst fileArray: IncomingFile[] = await Promise.all(\n\t\t\t\t\t\tuploads.map(async (f: any) => ({\n\t\t\t\t\t\t\tname: f.name,\n\t\t\t\t\t\t\ttype: f.mimetype,\n\t\t\t\t\t\t\tsize: f.size,\n\t\t\t\t\t\t\tisTruncated: f.truncated,\n\t\t\t\t\t\t\tdata: f.data,\n\t\t\t\t\t\t\tduration: await getMediaDuration(f.data),\n\t\t\t\t\t\t})),\n\t\t\t\t\t)\n\t\t\t\t\treturn <const>[key, fileArray]\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\n\t\treturn new Request<any>({\n\t\t\tip: req.ip,\n\t\t\tbody: req.body ?? {},\n\t\t\tcookies: req.cookies ?? {},\n\t\t\tparams: req.params ?? {},\n\t\t\tquery: req.query ?? {},\n\t\t\tmethod: <any>req.method,\n\t\t\tpath: req.path,\n\t\t\theaders: req.headers,\n\t\t\tfiles,\n\t\t})\n\t}\n\n\tprotected async handleResponse(res: any, response: Response<any>) {\n\t\tif (!response.piped) {\n\t\t\tObject.entries(response.headers).forEach(([key, value]) => res.header(key, value as string))\n\t\t\tObject.entries(response.cookies).forEach(([key, { value, ...opts }]) => res.cookie(key, value, opts))\n\t\t\tconst type = response.body === null || response.body === undefined ? 'json' : 'send'\n\t\t\tres.status(response.status)[type](response.body).end()\n\t\t} else {\n\t\t\tresponse.body.pipe(res)\n\t\t}\n\t}\n\n\tprotected registerRoute(method: MethodsEnum, path: string, cb: (req: any, res: any) => Promise<void>) {\n\t\tthis.#app[method]?.(path, async (req: any, res: any) => cb(req, res))\n\t}\n\n\tprotected registerErrorHandler(cb: (error: Error, req: any, res: any) => Promise<void>) {\n\t\tthis.#app.use(async (err: any, req: any, res: any, _next: any) => cb(err, req, res))\n\t}\n\n\tprotected registerNotFoundHandler(cb: (req: any, res: any) => Promise<void>) {\n\t\tthis.#app.use(async (req: any, res: any, _next: any) => cb(req, res))\n\t}\n\n\tprotected startServer(port: number) {\n\t\treturn new Promise<boolean>((resolve: (s: boolean) => void, reject: (e: Error) => void) => {\n\t\t\ttry {\n\t\t\t\tconst server = this.#httpServer.listen({ host: '0.0.0.0', port }, async () => resolve(true))\n\t\t\t\tInstance.on('close', server.close)\n\t\t\t} catch (err) {\n\t\t\t\treject(<Error>err)\n\t\t\t}\n\t\t})\n\t}\n}\n"],"mappings":"yKAAA,OAAOA,MAAU,OAEjB,OAAOC,MAAY,gBACnB,OAAOC,MAAU,OACjB,OAAOC,MAAa,UACpB,OAAOC,MAAgB,qBACvB,OAAS,aAAAC,MAAiB,qBAE1B,OAAOC,MAAY,SACnB,OAAS,YAAAC,MAAgB,YAQlB,IAAMC,EAAN,cAA4BC,EAAaC,EAAkBC,CAAM,CAAE,CACzEC,GACAC,GAEU,YAAYC,EAAqC,CAC1D,MAAMA,CAAM,EACZ,IAAMC,EAAMC,EAAQ,EACdC,EAAWC,EAAS,IAAI,EACxBC,EAAaC,EAAK,aAAaL,CAAG,EACxC,KAAKH,GAAOG,EACZ,KAAKF,GAAcM,EAEnB,KAAK,MAAMA,EAAYL,CAAM,EAE7BC,EAAI,QAAQ,cAAc,EACtBD,EAAO,SAAS,KAAKC,EAAI,IAAIM,EAAS,CAAE,OAAQJ,EAAS,GAAI,CAAC,CAAC,EACnEF,EAAI,IAAIC,EAAQ,KAAK,CAAC,EACtBD,EAAI,IAAIC,EAAQ,KAAK,CAAC,EACtBD,EAAI,IAAIO,EAAO,CAAC,EAChBP,EAAI,IACHQ,EAAO,CACN,0BAA2B,CAAE,OAAQ,cAAe,EACpD,sBAAuB,EACxB,CAAC,CACF,EACAR,EAAI,IAAIS,EAAK,KAAK,IAAI,CAAC,EACvBT,EAAI,IAAIC,EAAQ,WAAW,CAAE,SAAU,EAAM,CAAC,CAAC,EAC3CF,EAAO,YAAYC,EAAI,IAAIC,EAAQ,OAAOF,EAAO,UAAU,CAAC,EAChEC,EAAI,IACHU,EAAW,CACV,OAAQ,CAAE,SAAUR,EAAS,SAAS,MAAM,sBAAwB,KAAO,IAAK,EAChF,aAAc,EACf,CAAC,CACF,EACIH,EAAO,SAAS,UAAU,SAC7BC,EAAI,IACHW,EAAU,CACT,SAAUZ,EAAO,SAAS,UAAU,WACpC,MAAOA,EAAO,SAAS,UAAU,MACjC,QAAS,CAACa,EAAoBC,IAC7BA,EAAI,OAAOC,EAAY,eAAe,EAAE,KAAK,CAAC,CAAE,QAAS,mBAAoB,CAAC,CAAC,CACjF,CAAC,CACF,CAMF,CAEA,MAAgB,aAAaC,EAAU,CACtC,IAAMC,EAAQ,OAAO,YACpB,MAAM,QAAQ,IACb,OAAO,QAAQD,EAAI,OAAS,CAAC,CAAC,EAAE,IAAI,MAAO,CAACE,EAAKC,CAAI,IAAM,CAC1D,IAAMC,EAAU,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAC5CE,EAA4B,MAAM,QAAQ,IAC/CD,EAAQ,IAAI,MAAOE,IAAY,CAC9B,KAAMA,EAAE,KACR,KAAMA,EAAE,SACR,KAAMA,EAAE,KACR,YAAaA,EAAE,UACf,KAAMA,EAAE,KACR,SAAU,MAAMC,EAAiBD,EAAE,IAAI,CACxC,EAAE,CACH,EACA,MAAc,CAACJ,EAAKG,CAAS,CAC9B,CAAC,CACF,CACD,EAEA,OAAO,IAAIG,EAAa,CACvB,GAAIR,EAAI,GACR,KAAMA,EAAI,MAAQ,CAAC,EACnB,QAASA,EAAI,SAAW,CAAC,EACzB,OAAQA,EAAI,QAAU,CAAC,EACvB,MAAOA,EAAI,OAAS,CAAC,EACrB,OAAaA,EAAI,OACjB,KAAMA,EAAI,KACV,QAASA,EAAI,QACb,MAAAC,CACD,CAAC,CACF,CAEA,MAAgB,eAAeH,EAAUW,EAAyB,CACjE,GAAKA,EAAS,MAMbA,EAAS,KAAK,KAAKX,CAAG,MANF,CACpB,OAAO,QAAQW,EAAS,OAAO,EAAE,QAAQ,CAAC,CAACP,EAAKQ,CAAK,IAAMZ,EAAI,OAAOI,EAAKQ,CAAe,CAAC,EAC3F,OAAO,QAAQD,EAAS,OAAO,EAAE,QAAQ,CAAC,CAACP,EAAK,CAAE,MAAAQ,EAAO,GAAGC,CAAK,CAAC,IAAMb,EAAI,OAAOI,EAAKQ,EAAOC,CAAI,CAAC,EACpG,IAAMC,EAAOH,EAAS,OAAS,MAAQA,EAAS,OAAS,OAAY,OAAS,OAC9EX,EAAI,OAAOW,EAAS,MAAM,EAAEG,CAAI,EAAEH,EAAS,IAAI,EAAE,IAAI,CACtD,CAGD,CAEU,cAAcI,EAAqBC,EAAcC,EAA2C,CACrG,KAAKjC,GAAK+B,CAAM,IAAIC,EAAM,MAAOd,EAAUF,IAAaiB,EAAGf,EAAKF,CAAG,CAAC,CACrE,CAEU,qBAAqBiB,EAAyD,CACvF,KAAKjC,GAAK,IAAI,MAAOkC,EAAUhB,EAAUF,EAAUmB,IAAeF,EAAGC,EAAKhB,EAAKF,CAAG,CAAC,CACpF,CAEU,wBAAwBiB,EAA2C,CAC5E,KAAKjC,GAAK,IAAI,MAAOkB,EAAUF,EAAUmB,IAAeF,EAAGf,EAAKF,CAAG,CAAC,CACrE,CAEU,YAAYoB,EAAc,CACnC,OAAO,IAAI,QAAiB,CAACC,EAA+BC,IAA+B,CAC1F,GAAI,CACH,IAAMC,EAAS,KAAKtC,GAAY,OAAO,CAAE,KAAM,UAAW,KAAAmC,CAAK,EAAG,SAAYC,EAAQ,EAAI,CAAC,EAC3F/B,EAAS,GAAG,QAASiC,EAAO,KAAK,CAClC,OAASL,EAAK,CACbI,EAAcJ,CAAG,CAClB,CACD,CAAC,CACF,CACD","names":["http","cookie","cors","express","fileUpload","rateLimit","helmet","pinoHttp","ExpressServer","configurable","serverConfigPipe","Server","#app","#httpServer","config","app","express","instance","Instance","httpServer","http","pinoHttp","cookie","helmet","cors","fileUpload","rateLimit","_","res","StatusCodes","req","files","key","file","uploads","fileArray","f","getMediaDuration","Request","response","value","opts","type","method","path","cb","err","_next","port","resolve","reject","server"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/server/adapters/express/index.ts"],"sourcesContent":["import http from 'http'\n\nimport cookie from 'cookie-parser'\nimport cors from 'cors'\nimport express from 'express'\nimport fileUpload from 'express-fileupload'\nimport { rateLimit } from 'express-rate-limit'\n// import slowDown from 'express-slow-down'\nimport helmet from 'helmet'\nimport { pinoHttp } from 'pino-http'\n\nimport { Instance } from '../../../instance'\nimport { configurable, getMediaDuration } from '../../../utilities'\nimport { Request, Response } from '../../requests'\nimport { StatusCodes, type IncomingFile, type MethodsEnum } from '../../types'\nimport { type RawResponder, Server, serverConfigPipe } from '../base'\n\nexport class ExpressServer extends configurable(serverConfigPipe, Server) {\n\t#app: express.Express\n\t#httpServer: http.Server\n\n\tprotected constructor(config: typeof ExpressServer.Config) {\n\t\tsuper(config)\n\t\tconst app = express()\n\t\tconst instance = Instance.get()\n\t\tconst httpServer = http.createServer(app)\n\t\tthis.#app = app\n\t\tthis.#httpServer = httpServer\n\n\t\tthis.setup(httpServer, config)\n\n\t\tapp.disable('x-powered-by')\n\t\tif (config.requests.log) app.use(pinoHttp({ logger: instance.log }))\n\t\tapp.use(express.json())\n\t\tapp.use(express.text())\n\t\tapp.use(cookie())\n\t\tapp.use(\n\t\t\thelmet({\n\t\t\t\tcrossOriginResourcePolicy: { policy: 'cross-origin' },\n\t\t\t\tcontentSecurityPolicy: false,\n\t\t\t}),\n\t\t)\n\t\tapp.use(cors(this.cors))\n\t\tapp.use(express.urlencoded({ extended: false }))\n\t\tif (config.publicPath) app.use(express.static(config.publicPath))\n\t\tapp.use(\n\t\t\tfileUpload({\n\t\t\t\tlimits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },\n\t\t\t\tuseTempFiles: false,\n\t\t\t}),\n\t\t)\n\t\tif (config.requests.rateLimit.enabled)\n\t\t\tapp.use(\n\t\t\t\trateLimit({\n\t\t\t\t\twindowMs: config.requests.rateLimit.periodInMs,\n\t\t\t\t\tlimit: config.requests.rateLimit.limit,\n\t\t\t\t\thandler: (_: express.Request, res: express.Response) =>\n\t\t\t\t\t\tres.status(StatusCodes.TooManyRequests).json([{ message: 'Too Many Requests' }]),\n\t\t\t\t}),\n\t\t\t)\n\t\t/* if (this.settings.slowdown.enabled) app.use(slowDown({\n\t\t\t\twindowMs: this.settings.slowdown.periodInMs,\n\t\t\t\tdelayAfter: this.settings.slowdown.delayAfter,\n\t\t\t\tdelayMs: this.settings.slowdown.delayInMs\n\t\t\t})) */\n\t}\n\n\tprotected async parseRequest(req: any) {\n\t\tconst files = Object.fromEntries(\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries(req.files ?? {}).map(async ([key, file]) => {\n\t\t\t\t\tconst uploads = Array.isArray(file) ? file : [file]\n\t\t\t\t\tconst fileArray: IncomingFile[] = await Promise.all(\n\t\t\t\t\t\tuploads.map(async (f: any) => ({\n\t\t\t\t\t\t\tname: f.name,\n\t\t\t\t\t\t\ttype: f.mimetype,\n\t\t\t\t\t\t\tsize: f.size,\n\t\t\t\t\t\t\tisTruncated: f.truncated,\n\t\t\t\t\t\t\tdata: f.data,\n\t\t\t\t\t\t\tduration: await getMediaDuration(f.data),\n\t\t\t\t\t\t})),\n\t\t\t\t\t)\n\t\t\t\t\treturn <const>[key, fileArray]\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\n\t\treturn new Request<any>({\n\t\t\tip: req.ip,\n\t\t\tbody: req.body ?? {},\n\t\t\tcookies: req.cookies ?? {},\n\t\t\tparams: req.params ?? {},\n\t\t\tquery: req.query ?? {},\n\t\t\tmethod: <any>req.method,\n\t\t\tpath: req.path,\n\t\t\theaders: req.headers,\n\t\t\tfiles,\n\t\t})\n\t}\n\n\tprotected async handleResponse(res: any, response: Response<any>) {\n\t\tif (!response.piped) {\n\t\t\tObject.entries(response.headers).forEach(([key, value]) => res.header(key, value as string))\n\t\t\tObject.entries(response.cookies).forEach(([key, { value, ...opts }]) => res.cookie(key, value, opts))\n\t\t\tconst type = response.body === null || response.body === undefined ? 'json' : 'send'\n\t\t\tres.status(response.status)[type](response.body).end()\n\t\t} else {\n\t\t\tresponse.body.pipe(res)\n\t\t}\n\t}\n\n\tprotected createRawResponder(req: express.Request, res: express.Response): RawResponder {\n\t\treturn this.createNodeRawResponder({ request: req, response: res })\n\t}\n\n\tprotected registerRoute(method: MethodsEnum, path: string, cb: (req: any, res: any) => Promise<void>) {\n\t\tthis.#app[method]?.(path, async (req: any, res: any) => cb(req, res))\n\t}\n\n\tprotected registerErrorHandler(cb: (error: Error, req: any, res: any) => Promise<void>) {\n\t\tthis.#app.use(async (err: any, req: any, res: any, _next: any) => cb(err, req, res))\n\t}\n\n\tprotected registerNotFoundHandler(cb: (req: any, res: any) => Promise<void>) {\n\t\tthis.#app.use(async (req: any, res: any, _next: any) => cb(req, res))\n\t}\n\n\tprotected startServer(port: number) {\n\t\treturn new Promise<boolean>((resolve: (s: boolean) => void, reject: (e: Error) => void) => {\n\t\t\ttry {\n\t\t\t\tconst server = this.#httpServer.listen({ host: '0.0.0.0', port }, async () => resolve(true))\n\t\t\t\tInstance.on('close', server.close)\n\t\t\t} catch (err) {\n\t\t\t\treject(<Error>err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nif (import.meta.vitest) {\n\tconst { describe, expect, test, vi } = import.meta.vitest\n\n\tconst testInstanceState = globalThis as typeof globalThis & { __equippedTestInstanceAliased?: boolean }\n\n\tfunction ensureTestInstance() {\n\t\tconst instance = Instance.maybeGet() ?? Instance.create({ app: { name: 'equipped-test' }, log: { level: 'silent' } })\n\t\tif (!testInstanceState.__equippedTestInstanceAliased) {\n\t\t\tinstance.alias('equipped-test')\n\t\t\ttestInstanceState.__equippedTestInstanceAliased = true\n\t\t}\n\t}\n\n\tfunction createExpressResponse() {\n\t\treturn {\n\t\t\tstatusCode: 200,\n\t\t\theadersSent: false,\n\t\t\twritableEnded: false,\n\t\t\tsetHeader: vi.fn(),\n\t\t\tend(chunk?: unknown) {\n\t\t\t\tvoid chunk\n\t\t\t\tthis.headersSent = true\n\t\t\t\tthis.writableEnded = true\n\t\t\t},\n\t\t}\n\t}\n\n\tclass TestExpressServer extends ExpressServer {\n\t\texposeRawResponder(req: express.Request, res: express.Response) {\n\t\t\treturn this.createRawResponder(req, res)\n\t\t}\n\t}\n\n\tdescribe('ExpressServer raw responder', () => {\n\t\ttest('passes the Express request and response to the raw Node handler', async () => {\n\t\t\tensureTestInstance()\n\t\t\tconst server = TestExpressServer.create({ port: 0, requests: { log: false } })\n\t\t\tconst req = { marker: 'request' } as unknown as express.Request\n\t\t\tconst res = createExpressResponse() as unknown as express.Response\n\t\t\tlet received: { request: unknown; response: unknown } | null = null\n\n\t\t\tawait server.exposeRawResponder(\n\t\t\t\treq,\n\t\t\t\tres,\n\t\t\t)(async (request, response) => {\n\t\t\t\treceived = { request, response }\n\t\t\t\tresponse.end('ok')\n\t\t\t})\n\n\t\t\texpect(received).toEqual({ request: req, response: res })\n\t\t})\n\t})\n}\n"],"mappings":"8KAAA,OAAOA,MAAU,OAEjB,OAAOC,MAAY,gBACnB,OAAOC,MAAU,OACjB,OAAOC,MAAa,UACpB,OAAOC,MAAgB,qBACvB,OAAS,aAAAC,MAAiB,qBAE1B,OAAOC,MAAY,SACnB,OAAS,YAAAC,MAAgB,YAQlB,IAAMC,EAAN,cAA4BC,EAAaC,EAAkBC,CAAM,CAAE,CACzEC,GACAC,GAEU,YAAYC,EAAqC,CAC1D,MAAMA,CAAM,EACZ,IAAMC,EAAMC,EAAQ,EACdC,EAAWC,EAAS,IAAI,EACxBC,EAAaC,EAAK,aAAaL,CAAG,EACxC,KAAKH,GAAOG,EACZ,KAAKF,GAAcM,EAEnB,KAAK,MAAMA,EAAYL,CAAM,EAE7BC,EAAI,QAAQ,cAAc,EACtBD,EAAO,SAAS,KAAKC,EAAI,IAAIM,EAAS,CAAE,OAAQJ,EAAS,GAAI,CAAC,CAAC,EACnEF,EAAI,IAAIC,EAAQ,KAAK,CAAC,EACtBD,EAAI,IAAIC,EAAQ,KAAK,CAAC,EACtBD,EAAI,IAAIO,EAAO,CAAC,EAChBP,EAAI,IACHQ,EAAO,CACN,0BAA2B,CAAE,OAAQ,cAAe,EACpD,sBAAuB,EACxB,CAAC,CACF,EACAR,EAAI,IAAIS,EAAK,KAAK,IAAI,CAAC,EACvBT,EAAI,IAAIC,EAAQ,WAAW,CAAE,SAAU,EAAM,CAAC,CAAC,EAC3CF,EAAO,YAAYC,EAAI,IAAIC,EAAQ,OAAOF,EAAO,UAAU,CAAC,EAChEC,EAAI,IACHU,EAAW,CACV,OAAQ,CAAE,SAAUR,EAAS,SAAS,MAAM,sBAAwB,KAAO,IAAK,EAChF,aAAc,EACf,CAAC,CACF,EACIH,EAAO,SAAS,UAAU,SAC7BC,EAAI,IACHW,EAAU,CACT,SAAUZ,EAAO,SAAS,UAAU,WACpC,MAAOA,EAAO,SAAS,UAAU,MACjC,QAAS,CAACa,EAAoBC,IAC7BA,EAAI,OAAOC,EAAY,eAAe,EAAE,KAAK,CAAC,CAAE,QAAS,mBAAoB,CAAC,CAAC,CACjF,CAAC,CACF,CAMF,CAEA,MAAgB,aAAaC,EAAU,CACtC,IAAMC,EAAQ,OAAO,YACpB,MAAM,QAAQ,IACb,OAAO,QAAQD,EAAI,OAAS,CAAC,CAAC,EAAE,IAAI,MAAO,CAACE,EAAKC,CAAI,IAAM,CAC1D,IAAMC,EAAU,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAC5CE,EAA4B,MAAM,QAAQ,IAC/CD,EAAQ,IAAI,MAAOE,IAAY,CAC9B,KAAMA,EAAE,KACR,KAAMA,EAAE,SACR,KAAMA,EAAE,KACR,YAAaA,EAAE,UACf,KAAMA,EAAE,KACR,SAAU,MAAMC,EAAiBD,EAAE,IAAI,CACxC,EAAE,CACH,EACA,MAAc,CAACJ,EAAKG,CAAS,CAC9B,CAAC,CACF,CACD,EAEA,OAAO,IAAIG,EAAa,CACvB,GAAIR,EAAI,GACR,KAAMA,EAAI,MAAQ,CAAC,EACnB,QAASA,EAAI,SAAW,CAAC,EACzB,OAAQA,EAAI,QAAU,CAAC,EACvB,MAAOA,EAAI,OAAS,CAAC,EACrB,OAAaA,EAAI,OACjB,KAAMA,EAAI,KACV,QAASA,EAAI,QACb,MAAAC,CACD,CAAC,CACF,CAEA,MAAgB,eAAeH,EAAUW,EAAyB,CACjE,GAAKA,EAAS,MAMbA,EAAS,KAAK,KAAKX,CAAG,MANF,CACpB,OAAO,QAAQW,EAAS,OAAO,EAAE,QAAQ,CAAC,CAACP,EAAKQ,CAAK,IAAMZ,EAAI,OAAOI,EAAKQ,CAAe,CAAC,EAC3F,OAAO,QAAQD,EAAS,OAAO,EAAE,QAAQ,CAAC,CAACP,EAAK,CAAE,MAAAQ,EAAO,GAAGC,CAAK,CAAC,IAAMb,EAAI,OAAOI,EAAKQ,EAAOC,CAAI,CAAC,EACpG,IAAMC,EAAOH,EAAS,OAAS,MAAQA,EAAS,OAAS,OAAY,OAAS,OAC9EX,EAAI,OAAOW,EAAS,MAAM,EAAEG,CAAI,EAAEH,EAAS,IAAI,EAAE,IAAI,CACtD,CAGD,CAEU,mBAAmBT,EAAsBF,EAAqC,CACvF,OAAO,KAAK,uBAAuB,CAAE,QAASE,EAAK,SAAUF,CAAI,CAAC,CACnE,CAEU,cAAce,EAAqBC,EAAcC,EAA2C,CACrG,KAAKjC,GAAK+B,CAAM,IAAIC,EAAM,MAAOd,EAAUF,IAAaiB,EAAGf,EAAKF,CAAG,CAAC,CACrE,CAEU,qBAAqBiB,EAAyD,CACvF,KAAKjC,GAAK,IAAI,MAAOkC,EAAUhB,EAAUF,EAAUmB,IAAeF,EAAGC,EAAKhB,EAAKF,CAAG,CAAC,CACpF,CAEU,wBAAwBiB,EAA2C,CAC5E,KAAKjC,GAAK,IAAI,MAAOkB,EAAUF,EAAUmB,IAAeF,EAAGf,EAAKF,CAAG,CAAC,CACrE,CAEU,YAAYoB,EAAc,CACnC,OAAO,IAAI,QAAiB,CAACC,EAA+BC,IAA+B,CAC1F,GAAI,CACH,IAAMC,EAAS,KAAKtC,GAAY,OAAO,CAAE,KAAM,UAAW,KAAAmC,CAAK,EAAG,SAAYC,EAAQ,EAAI,CAAC,EAC3F/B,EAAS,GAAG,QAASiC,EAAO,KAAK,CAClC,OAASL,EAAK,CACbI,EAAcJ,CAAG,CAClB,CACD,CAAC,CACF,CACD","names":["http","cookie","cors","express","fileUpload","rateLimit","helmet","pinoHttp","ExpressServer","configurable","serverConfigPipe","Server","#app","#httpServer","config","app","express","instance","Instance","httpServer","http","pinoHttp","cookie","helmet","cors","fileUpload","rateLimit","_","res","StatusCodes","req","files","key","file","uploads","fileArray","f","getMediaDuration","Request","response","value","opts","type","method","path","cb","err","_next","port","resolve","reject","server"]}
|