gemi 0.111.0 → 0.112.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/Agent.d.ts +54 -1
- package/dist/ai/Agent.d.ts.map +1 -1
- package/dist/ai/AgentController.d.ts +41 -0
- package/dist/ai/AgentController.d.ts.map +1 -1
- package/dist/ai/client/index.d.ts +1 -1
- package/dist/ai/client/index.d.ts.map +1 -1
- package/dist/ai/contextCompaction.d.ts +247 -0
- package/dist/ai/contextCompaction.d.ts.map +1 -0
- package/dist/ai/contextWindow.d.ts +18 -0
- package/dist/ai/contextWindow.d.ts.map +1 -1
- package/dist/ai/index.d.ts +5 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +93 -14
- package/dist/ai/index.js.map +16 -10
- package/dist/ai/jobs/AgentJob.d.ts +259 -0
- package/dist/ai/jobs/AgentJob.d.ts.map +1 -0
- package/dist/ai/jobs/AgentJobDeadlineSweep.d.ts +18 -0
- package/dist/ai/jobs/AgentJobDeadlineSweep.d.ts.map +1 -0
- package/dist/ai/jobs/AgentJobStore.d.ts +141 -0
- package/dist/ai/jobs/AgentJobStore.d.ts.map +1 -0
- package/dist/ai/jobs/DatabaseAgentJobStore.d.ts +82 -0
- package/dist/ai/jobs/DatabaseAgentJobStore.d.ts.map +1 -0
- package/dist/ai/jobs/contextBlock.d.ts +31 -0
- package/dist/ai/jobs/contextBlock.d.ts.map +1 -0
- package/dist/ai/jobs/index.d.ts +6 -0
- package/dist/ai/jobs/index.d.ts.map +1 -0
- package/dist/ai/jobs/overlay.d.ts +49 -0
- package/dist/ai/jobs/overlay.d.ts.map +1 -0
- package/dist/ai/providers/request.d.ts.map +1 -1
- package/dist/ai/store/Attachments.d.ts +6 -0
- package/dist/ai/store/Attachments.d.ts.map +1 -1
- package/dist/ai/store/MemoryAgentStore.d.ts +3 -0
- package/dist/ai/store/MemoryAgentStore.d.ts.map +1 -1
- package/dist/ai/types.d.ts +28 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/app/index.js +1 -1
- package/dist/bin/gemi.js +13 -2
- package/dist/bin/gemi.js.map +4 -4
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-30xjcyzh.js → chunk-0z2h35d7.js} +2 -2
- package/dist/{chunk-30xjcyzh.js.map → chunk-0z2h35d7.js.map} +1 -1
- package/dist/{chunk-358sdcx9.js → chunk-15a1mrdv.js} +2 -2
- package/dist/{chunk-358sdcx9.js.map → chunk-15a1mrdv.js.map} +1 -1
- package/dist/{chunk-hf7a51s3.js → chunk-18c3y8m3.js} +2 -2
- package/dist/{chunk-hf7a51s3.js.map → chunk-18c3y8m3.js.map} +1 -1
- package/dist/{chunk-tq85n8zh.js → chunk-1pvkw2pq.js} +2 -2
- package/dist/{chunk-tq85n8zh.js.map → chunk-1pvkw2pq.js.map} +1 -1
- package/dist/{chunk-8afxrmdc.js → chunk-2taa0brj.js} +2 -2
- package/dist/{chunk-8afxrmdc.js.map → chunk-2taa0brj.js.map} +1 -1
- package/dist/{chunk-5cygrbxv.js → chunk-30yg31sz.js} +2 -2
- package/dist/{chunk-5cygrbxv.js.map → chunk-30yg31sz.js.map} +1 -1
- package/dist/{chunk-3y8q8x11.js → chunk-3z9vhjd7.js} +2 -2
- package/dist/{chunk-3y8q8x11.js.map → chunk-3z9vhjd7.js.map} +1 -1
- package/dist/chunk-4sb1484x.js +46 -0
- package/dist/{chunk-h3864a8z.js.map → chunk-4sb1484x.js.map} +13 -4
- package/dist/{chunk-0sjh5v1n.js → chunk-53bek7sp.js} +1 -1
- package/dist/{chunk-xkc7ftnq.js → chunk-57edag57.js} +3 -3
- package/dist/{chunk-xkc7ftnq.js.map → chunk-57edag57.js.map} +1 -1
- package/dist/{chunk-ddr4qvvt.js → chunk-5az0mq4p.js} +3 -3
- package/dist/{chunk-ddr4qvvt.js.map → chunk-5az0mq4p.js.map} +1 -1
- package/dist/{chunk-nsvktvp4.js → chunk-5waxjsvv.js} +2 -2
- package/dist/{chunk-nsvktvp4.js.map → chunk-5waxjsvv.js.map} +1 -1
- package/dist/{chunk-rfcygmf5.js → chunk-6w79zajj.js} +3 -3
- package/dist/{chunk-rfcygmf5.js.map → chunk-6w79zajj.js.map} +1 -1
- package/dist/{chunk-gb37722w.js → chunk-75ptmewf.js} +3 -3
- package/dist/{chunk-gb37722w.js.map → chunk-75ptmewf.js.map} +1 -1
- package/dist/{chunk-pyj7cd9t.js → chunk-851k0b26.js} +2 -2
- package/dist/{chunk-pyj7cd9t.js.map → chunk-851k0b26.js.map} +1 -1
- package/dist/{chunk-m6ystvtk.js → chunk-8reepafh.js} +2 -2
- package/dist/{chunk-m6ystvtk.js.map → chunk-8reepafh.js.map} +1 -1
- package/dist/{chunk-nvv9wej6.js → chunk-9hr0bcfy.js} +3 -3
- package/dist/{chunk-nvv9wej6.js.map → chunk-9hr0bcfy.js.map} +1 -1
- package/dist/{chunk-yqavgpwd.js → chunk-a9q2cr4w.js} +2 -2
- package/dist/{chunk-yqavgpwd.js.map → chunk-a9q2cr4w.js.map} +1 -1
- package/dist/{chunk-cy5qp6mz.js → chunk-amvy4r59.js} +2 -2
- package/dist/{chunk-cy5qp6mz.js.map → chunk-amvy4r59.js.map} +1 -1
- package/dist/{chunk-twnn7r66.js → chunk-b1mk12xg.js} +2 -2
- package/dist/{chunk-twnn7r66.js.map → chunk-b1mk12xg.js.map} +1 -1
- package/dist/{chunk-a6453d9s.js → chunk-b7cqwcbm.js} +2 -2
- package/dist/{chunk-a6453d9s.js.map → chunk-b7cqwcbm.js.map} +1 -1
- package/dist/{chunk-nncz308h.js → chunk-b7qjp7r1.js} +2 -2
- package/dist/{chunk-nncz308h.js.map → chunk-b7qjp7r1.js.map} +1 -1
- package/dist/chunk-beks65me.js +19 -0
- package/dist/{chunk-mb7q7s0a.js.map → chunk-beks65me.js.map} +3 -4
- package/dist/chunk-bf1ets45.js +5 -0
- package/dist/{chunk-11fsn5mr.js.map → chunk-bf1ets45.js.map} +4 -3
- package/dist/{chunk-9rchedr4.js → chunk-bhw7k8vp.js} +2 -2
- package/dist/{chunk-9rchedr4.js.map → chunk-bhw7k8vp.js.map} +1 -1
- package/dist/{chunk-k1vw22t2.js → chunk-ck0v2kzw.js} +2 -2
- package/dist/{chunk-k1vw22t2.js.map → chunk-ck0v2kzw.js.map} +1 -1
- package/dist/{chunk-6vr7f5fq.js → chunk-csbc1fxa.js} +3 -3
- package/dist/{chunk-6vr7f5fq.js.map → chunk-csbc1fxa.js.map} +1 -1
- package/dist/{chunk-kf71mjxa.js → chunk-d0trs736.js} +3 -3
- package/dist/{chunk-kf71mjxa.js.map → chunk-d0trs736.js.map} +1 -1
- package/dist/{chunk-zhs1r1z0.js → chunk-d8ekyng4.js} +3 -3
- package/dist/{chunk-zhs1r1z0.js.map → chunk-d8ekyng4.js.map} +1 -1
- package/dist/chunk-d9an2nra.js +5 -0
- package/dist/{chunk-hn67spz6.js.map → chunk-d9an2nra.js.map} +1 -1
- package/dist/{chunk-0d9qsmx2.js → chunk-dan79jab.js} +2 -2
- package/dist/{chunk-0d9qsmx2.js.map → chunk-dan79jab.js.map} +1 -1
- package/dist/{chunk-1yx2e0bh.js → chunk-ddad3902.js} +2 -2
- package/dist/{chunk-1yx2e0bh.js.map → chunk-ddad3902.js.map} +1 -1
- package/dist/{chunk-3cg7y62b.js → chunk-dm59ze55.js} +2 -2
- package/dist/{chunk-3cg7y62b.js.map → chunk-dm59ze55.js.map} +1 -1
- package/dist/{chunk-wvsv1jgg.js → chunk-dx7wpz5b.js} +2 -2
- package/dist/{chunk-wvsv1jgg.js.map → chunk-dx7wpz5b.js.map} +1 -1
- package/dist/{chunk-q9s7kwgt.js → chunk-eazqda9z.js} +3 -3
- package/dist/{chunk-q9s7kwgt.js.map → chunk-eazqda9z.js.map} +1 -1
- package/dist/{chunk-td8tha3j.js → chunk-es487acc.js} +1 -1
- package/dist/{chunk-9s851qz8.js → chunk-et3vhkbf.js} +2 -2
- package/dist/{chunk-9s851qz8.js.map → chunk-et3vhkbf.js.map} +1 -1
- package/dist/{chunk-qd2v93y4.js → chunk-f1y8eggf.js} +2 -2
- package/dist/{chunk-qd2v93y4.js.map → chunk-f1y8eggf.js.map} +1 -1
- package/dist/{chunk-1pem26zc.js → chunk-ga7c7tq0.js} +3 -3
- package/dist/{chunk-1pem26zc.js.map → chunk-ga7c7tq0.js.map} +1 -1
- package/dist/{chunk-c098fzvk.js → chunk-gcs9ydjv.js} +2 -2
- package/dist/{chunk-c098fzvk.js.map → chunk-gcs9ydjv.js.map} +1 -1
- package/dist/{chunk-bn5yn731.js → chunk-hfyxvdjj.js} +2 -2
- package/dist/{chunk-bn5yn731.js.map → chunk-hfyxvdjj.js.map} +1 -1
- package/dist/chunk-j0sncgxc.js +14 -0
- package/dist/{chunk-mn5xw79b.js.map → chunk-j0sncgxc.js.map} +6 -5
- package/dist/{chunk-p7r2w4qw.js → chunk-j9jqxv1d.js} +3 -3
- package/dist/{chunk-p7r2w4qw.js.map → chunk-j9jqxv1d.js.map} +1 -1
- package/dist/{chunk-jbrwt3cs.js → chunk-jdtn0zk2.js} +4 -4
- package/dist/{chunk-jbrwt3cs.js.map → chunk-jdtn0zk2.js.map} +1 -1
- package/dist/{chunk-s6jjy4y9.js → chunk-jn59bsww.js} +2 -2
- package/dist/{chunk-s6jjy4y9.js.map → chunk-jn59bsww.js.map} +1 -1
- package/dist/chunk-jn8hh25v.js +24 -0
- package/dist/{chunk-wqvvjd5r.js.map → chunk-jn8hh25v.js.map} +2 -2
- package/dist/chunk-k7rbkhhw.js +6 -0
- package/dist/{chunk-tdsfke9q.js.map → chunk-k7rbkhhw.js.map} +2 -2
- package/dist/{chunk-he7z7y9j.js → chunk-kk502yk2.js} +2 -2
- package/dist/{chunk-he7z7y9j.js.map → chunk-kk502yk2.js.map} +1 -1
- package/dist/{chunk-wsttx9rg.js → chunk-mrdarm2q.js} +2 -2
- package/dist/{chunk-wsttx9rg.js.map → chunk-mrdarm2q.js.map} +1 -1
- package/dist/chunk-mvtgx1mr.js +4 -0
- package/dist/{chunk-x78jrs4y.js.map → chunk-mvtgx1mr.js.map} +2 -2
- package/dist/{chunk-et4pv1b1.js → chunk-mx9y9mtx.js} +1 -1
- package/dist/{chunk-cttmy1jp.js → chunk-p2fhtf5r.js} +3 -3
- package/dist/{chunk-cttmy1jp.js.map → chunk-p2fhtf5r.js.map} +1 -1
- package/dist/{chunk-w7jsh3xd.js → chunk-qtbf3w6w.js} +2 -2
- package/dist/{chunk-w7jsh3xd.js.map → chunk-qtbf3w6w.js.map} +1 -1
- package/dist/chunk-qx87cdfg.js +5 -0
- package/dist/chunk-qx87cdfg.js.map +10 -0
- package/dist/{chunk-1kr25rcg.js → chunk-qyp652jz.js} +3 -3
- package/dist/{chunk-1kr25rcg.js.map → chunk-qyp652jz.js.map} +1 -1
- package/dist/{chunk-8b2tw2yp.js → chunk-rend2sbk.js} +1 -1
- package/dist/chunk-rx2shb3t.js +25 -0
- package/dist/chunk-rx2shb3t.js.map +19 -0
- package/dist/{chunk-mwqg079k.js → chunk-ryzcfxq7.js} +2 -2
- package/dist/{chunk-mwqg079k.js.map → chunk-ryzcfxq7.js.map} +1 -1
- package/dist/{chunk-7tx5y712.js → chunk-s9rfgxj5.js} +2 -2
- package/dist/{chunk-7tx5y712.js.map → chunk-s9rfgxj5.js.map} +1 -1
- package/dist/{chunk-1c1d0e60.js → chunk-scbvv2e4.js} +3 -3
- package/dist/{chunk-1c1d0e60.js.map → chunk-scbvv2e4.js.map} +1 -1
- package/dist/{chunk-1bkr5wnt.js → chunk-tb126j80.js} +2 -2
- package/dist/{chunk-1bkr5wnt.js.map → chunk-tb126j80.js.map} +1 -1
- package/dist/{chunk-pwmgqq7z.js → chunk-teny6xkw.js} +2 -2
- package/dist/{chunk-pwmgqq7z.js.map → chunk-teny6xkw.js.map} +1 -1
- package/dist/{chunk-09ypnhjv.js → chunk-tmrmwthr.js} +2 -2
- package/dist/{chunk-09ypnhjv.js.map → chunk-tmrmwthr.js.map} +1 -1
- package/dist/{chunk-h4sw6nt3.js → chunk-vgdcz7tk.js} +3 -3
- package/dist/{chunk-h4sw6nt3.js.map → chunk-vgdcz7tk.js.map} +1 -1
- package/dist/{chunk-xk930yaw.js → chunk-wexs11yy.js} +2 -2
- package/dist/{chunk-xk930yaw.js.map → chunk-wexs11yy.js.map} +1 -1
- package/dist/{chunk-k1xt2tw7.js → chunk-xs4c2nvz.js} +2 -2
- package/dist/{chunk-k1xt2tw7.js.map → chunk-xs4c2nvz.js.map} +1 -1
- package/dist/{chunk-1va15sfq.js → chunk-xv74rhay.js} +2 -2
- package/dist/{chunk-1va15sfq.js.map → chunk-xv74rhay.js.map} +1 -1
- package/dist/{chunk-sq2wkynk.js → chunk-yv1psptb.js} +2 -2
- package/dist/{chunk-sq2wkynk.js.map → chunk-yv1psptb.js.map} +1 -1
- package/dist/{chunk-tk5q8hkv.js → chunk-zfter1x0.js} +4 -4
- package/dist/{chunk-tk5q8hkv.js.map → chunk-zfter1x0.js.map} +1 -1
- package/dist/client/ClientRouter.d.ts.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +215 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/useSubscription.d.ts +70 -0
- package/dist/client/useSubscription.d.ts.map +1 -0
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +2 -2
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/ChangeFeed.d.ts +42 -0
- package/dist/facades/ChangeFeed.d.ts.map +1 -0
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/http/ResourcePolicy.d.ts +141 -0
- package/dist/http/ResourcePolicy.d.ts.map +1 -0
- package/dist/http/errors.d.ts +13 -0
- package/dist/http/errors.d.ts.map +1 -1
- package/dist/http/index.d.ts +2 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +2 -2
- package/dist/kernel/index.js +3 -3
- package/dist/kernel/index.js.map +3 -3
- package/dist/kernel/providers.d.ts.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/change-feed/ChangeFeedDriver.d.ts +94 -0
- package/dist/services/change-feed/ChangeFeedDriver.d.ts.map +1 -0
- package/dist/services/change-feed/ChangeFeedManager.d.ts +166 -0
- package/dist/services/change-feed/ChangeFeedManager.d.ts.map +1 -0
- package/dist/services/change-feed/ChangeFeedServiceProvider.d.ts +11 -0
- package/dist/services/change-feed/ChangeFeedServiceProvider.d.ts.map +1 -0
- package/dist/services/change-feed/DatabaseChangeFeedDriver.d.ts +84 -0
- package/dist/services/change-feed/DatabaseChangeFeedDriver.d.ts.map +1 -0
- package/dist/services/change-feed/MemoryChangeFeedDriver.d.ts +26 -0
- package/dist/services/change-feed/MemoryChangeFeedDriver.d.ts.map +1 -0
- package/dist/services/change-feed/changeFeedDriverContract.d.ts +8 -0
- package/dist/services/change-feed/changeFeedDriverContract.d.ts.map +1 -0
- package/dist/services/change-feed/config.d.ts +42 -0
- package/dist/services/change-feed/config.d.ts.map +1 -0
- package/dist/services/change-feed/cursor.d.ts +17 -0
- package/dist/services/change-feed/cursor.d.ts.map +1 -0
- package/dist/services/change-feed/postgresListen.d.ts +30 -0
- package/dist/services/change-feed/postgresListen.d.ts.map +1 -0
- package/dist/services/change-feed/stream.d.ts +16 -0
- package/dist/services/change-feed/stream.d.ts.map +1 -0
- package/dist/services/change-feed/wire.d.ts +20 -0
- package/dist/services/change-feed/wire.d.ts.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -3
- package/dist/services/index.js.map +2 -2
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- package/dist/services/router/ViewRouteDispatcher.d.ts +16 -0
- package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
- package/dist/stats/route-table.js +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/vitest/index.js +1 -1
- package/package.json +6 -2
- package/skills/gemi-react-best-practices/rules/controller-authorize-every-tenant-read.md +16 -1
- package/dist/chunk-11fsn5mr.js +0 -5
- package/dist/chunk-h3864a8z.js +0 -17
- package/dist/chunk-hn67spz6.js +0 -5
- package/dist/chunk-mb7q7s0a.js +0 -19
- package/dist/chunk-mn5xw79b.js +0 -9
- package/dist/chunk-tdsfke9q.js +0 -6
- package/dist/chunk-wqvvjd5r.js +0 -24
- package/dist/chunk-x78jrs4y.js +0 -4
- /package/dist/{chunk-0sjh5v1n.js.map → chunk-53bek7sp.js.map} +0 -0
- /package/dist/{chunk-td8tha3j.js.map → chunk-es487acc.js.map} +0 -0
- /package/dist/{chunk-et4pv1b1.js.map → chunk-mx9y9mtx.js.map} +0 -0
- /package/dist/{chunk-8b2tw2yp.js.map → chunk-rend2sbk.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{a,b,c,d,e,f,g}from"./chunk-
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-30yg31sz.js";import"./chunk-75ptmewf.js";import"./chunk-b7cqwcbm.js";import"./chunk-ddad3902.js";export{g as fromEnv,c as ENV_SESSION,b as ENV_SECRET,a as ENV_KEY,d as ENV_EXPIRATION,e as ENV_CREDENTIAL_SCOPE,f as ENV_ACCOUNT_ID};
|
|
3
3
|
|
|
4
4
|
//# debugId=30E142423ED216F064756E2164756E21
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"./chunk-ddad3902.js";import Eu from"os";import Au from"fs";var Wl=new Map,hh=new Map,nh=Symbol("OriginError"),Dl={};class fl extends Promise{constructor(l,n,u,c,w={}){let E,t;super((_,B)=>{E=_,t=B});this.tagged=Array.isArray(l.raw),this.strings=l,this.args=n,this.handler=u,this.canceller=c,this.options=w,this.state=null,this.statement=null,this.resolve=(_)=>(this.active=!1,E(_)),this.reject=(_)=>(this.active=!1,t(_)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[nh]=this.handler.debug?Error():this.tagged&&vn(this.strings)}get origin(){return(this.handler.debug?this[nh].stack:this.tagged&&hh.has(this.strings)?hh.get(this.strings):hh.set(this.strings,this[nh].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(l=1,n){if(this.options.simple=!1,typeof l==="function")n=l,l=1;if(this.cursorRows=l,typeof n==="function")return this.cursorFn=n,this;let u;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};u&&u();let c=new Promise((w,E)=>{this.cursorFn=(t)=>{return w({value:t,done:!1}),new Promise((_)=>u=_)},this.resolve=()=>(this.active=!1,w({done:!0})),this.reject=(t)=>(this.active=!1,E(t))});return this.execute(),c},return(){return u&&u(Dl),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(l){return this.forEachFn=l,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function vn(l){if(Wl.has(l))return Wl.get(l);let n=Error.stackTraceLimit;return Error.stackTraceLimit=4,Wl.set(l,Error()),Error.stackTraceLimit=n,Wl.get(l)}class Yl extends Error{constructor(l){super(l.message);this.name=this.constructor.name,Object.assign(this,l)}}var K={connection:Th,postgres:Xh,generic:Ch,notSupported:Zh};function Th(l,n,u){let{host:c,port:w}=u||n,E=Object.assign(Error("write "+l+" "+(n.path||c+":"+w)),{code:l,errno:l,address:n.path||c},n.path?{}:{port:w});return Error.captureStackTrace(E,Th),E}function Xh(l){let n=new Yl(l);return Error.captureStackTrace(n,Xh),n}function Ch(l,n){let u=Object.assign(Error(l+": "+n),{code:l});return Error.captureStackTrace(u,Ch),u}function Zh(l){let n=Object.assign(Error(l+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:l});return Error.captureStackTrace(n,Zh),n}var mn={string:{to:25,from:null,serialize:(l)=>""+l},number:{to:0,from:[21,23,26,700,701],serialize:(l)=>""+l,parse:(l)=>+l},json:{to:114,from:[114,3802],serialize:(l)=>JSON.stringify(l),parse:(l)=>JSON.parse(l)},boolean:{to:16,from:16,serialize:(l)=>l===!0?"t":"f",parse:(l)=>l==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(l)=>(l instanceof Date?l:new Date(l)).toISOString(),parse:(l)=>new Date(l)},bytea:{to:17,from:17,serialize:(l)=>"\\x"+Buffer.from(l).toString("hex"),parse:(l)=>Buffer.from(l.slice(2),"hex")}};class ml{then(){uh()}catch(){uh()}finally(){uh()}}class il extends ml{constructor(l){super();this.value=el(l)}}class wl extends ml{constructor(l,n,u){super();this.value=l,this.type=n,this.array=u}}class bl extends ml{constructor(l,n){super();this.first=l,this.rest=n}build(l,n,u,c){let w=bn.map(([E,t])=>({fn:t,i:l.search(E)})).sort((E,t)=>E.i-t.i).pop();return w.i===-1?_h(this.first,c):w.fn(this.first,this.rest,n,u,c)}}function al(l,n,u,c){let w=l instanceof wl?l.value:l;if(w===void 0){if(l instanceof wl?l.value=c.transform.undefined:w=l=c.transform.undefined,w===void 0)throw K.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+u.push(l instanceof wl?(n.push(l.value),l.array?l.array[l.type||vl(l.value)]||l.type||ih(l.value):l.type):(n.push(l),vl(l)))}var Hh=Qh(mn);function th(l,n,u,c,w,E){for(let t=1;t<l.strings.length;t++)n+=wh(n,u,c,w,E)+l.strings[t],u=l.args[t];return n}function wh(l,n,u,c,w){return n instanceof bl?n.build(l,u,c,w):n instanceof fl?ch(n,u,c,w):n instanceof il?n.value:n&&n[0]instanceof fl?n.reduce((E,t)=>E+" "+ch(t,u,c,w),""):al(n,u,c,w)}function ch(l,n,u,c){return l.fragment=!0,th(l,l.strings[0],l.args[0],n,u,c)}function zh(l,n,u,c,w){return l.map((E)=>"("+c.map((t)=>wh("values",E[t],n,u,w)).join(",")+")").join(",")}function Fh(l,n,u,c,w){let E=Array.isArray(l[0]),t=n.length?n.flat():Object.keys(E?l[0]:l);return zh(E?l:[l],u,c,t,w)}function Kl(l,n,u,c,w){if(typeof l==="string"&&(l=[l].concat(n)),Array.isArray(l))return _h(l,w);let E;return(n.length?n.flat():Object.keys(l)).map((_)=>{return E=l[_],(E instanceof fl?ch(E,u,c,w):E instanceof il?E.value:al(E,u,c,w))+" as "+el(w.transform.column.to?w.transform.column.to(_):_)}).join(",")}var bn=Object.entries({values:Fh,in:(...l)=>{let n=Fh(...l);return n==="()"?"(null)":n},select:Kl,as:Kl,returning:Kl,"\\(":Kl,update(l,n,u,c,w){return(n.length?n.flat():Object.keys(l)).map((E)=>el(w.transform.column.to?w.transform.column.to(E):E)+"="+wh("values",l[E],u,c,w))},insert(l,n,u,c,w){let E=n.length?n.flat():Object.keys(Array.isArray(l)?l[0]:l);return"("+_h(E,w)+")values"+zh(Array.isArray(l)?l:[l],u,c,E,w)}}).map(([l,n])=>[new RegExp("((?:^|[\\s(])"+l+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),n]);function uh(){throw K.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:an,parsers:en}=Hh;function ih(l){if(Array.isArray(l))return ih(l[0]);return typeof l==="string"?1009:0}var Jh=function(l){let n=Qh(l||{});return{serializers:Object.assign({},an,n.serializers),parsers:Object.assign({},en,n.parsers)}};function Qh(l){return Object.keys(l).reduce((n,u)=>{if(l[u].from&&[].concat(l[u].from).forEach((c)=>n.parsers[c]=l[u].parse),l[u].serialize)n.serializers[l[u].to]=l[u].serialize,l[u].from&&[].concat(l[u].from).forEach((c)=>n.serializers[c]=l[u].serialize);return n},{parsers:{},serializers:{}})}function _h(l,{transform:{column:n}}){return l.map((u)=>el(n.to?n.to(u):u)).join(",")}var el=function(n){return'"'+n.replace(/"/g,'""').replace(/\./g,'"."')+'"'},vl=function l(n){return n instanceof wl?n.type:n instanceof Date?1184:n instanceof Uint8Array?17:n===!0||n===!1?16:typeof n==="bigint"?20:Array.isArray(n)?l(n[0]):0},kn=/\\/g,on=/"/g;function pn(l){return l.replace(kn,"\\\\").replace(on,"\\\"")}var Vh=function l(n,u,c,w){if(Array.isArray(n)===!1)return n;if(!n.length)return"{}";let E=n[0],t=w===1020?";":",";if(Array.isArray(E)&&!E.type)return"{"+n.map((_)=>l(_,u,c,w)).join(t)+"}";return"{"+n.map((_)=>{if(_===void 0){if(_=c.transform.undefined,_===void 0)throw K.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return _===null?"null":'"'+pn(u?u(_.type?_.value:_):""+_)+'"'}).join(t)+"}"},fh={i:0,char:null,str:"",quoted:!1,last:0},Wh=function(n,u,c){return fh.i=fh.last=0,Kh(fh,n,u,c)};function Kh(l,n,u,c){let w=[],E=c===1020?";":",";for(;l.i<n.length;l.i++){if(l.char=n[l.i],l.quoted)if(l.char==="\\")l.str+=n[++l.i];else if(l.char==='"')w.push(u?u(l.str):l.str),l.str="",l.quoted=n[l.i+1]==='"',l.last=l.i+2;else l.str+=l.char;else if(l.char==='"')l.quoted=!0;else if(l.char==="{")l.last=++l.i,w.push(Kh(l,n,u,c));else if(l.char==="}"){l.quoted=!1,l.last<l.i&&w.push(u?u(n.slice(l.last,l.i)):n.slice(l.last,l.i)),l.last=l.i+1;break}else if(l.char===E&&l.p!=="}"&&l.p!=='"')w.push(u?u(n.slice(l.last,l.i)):n.slice(l.last,l.i)),l.last=l.i+1;l.p=l.char}return l.last<l.i&&w.push(u?u(n.slice(l.last,l.i+1)):n.slice(l.last,l.i+1)),w}var Sl=(l)=>{let n=l[0];for(let u=1;u<l.length;u++)n+=l[u]==="_"?l[++u].toUpperCase():l[u];return n},Gl=(l)=>{let n=l[0].toUpperCase();for(let u=1;u<l.length;u++)n+=l[u]==="_"?l[++u].toUpperCase():l[u];return n},jl=(l)=>l.replace(/_/g,"-"),Fl=(l)=>l.replace(/([A-Z])/g,"_$1").toLowerCase(),Hl=(l)=>(l.slice(0,1)+l.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),zl=(l)=>l.replace(/-/g,"_");function Oh(l){return function n(u,c){return typeof u==="object"&&u!==null&&(c.type===114||c.type===3802)?Array.isArray(u)?u.map((w)=>n(w,c)):Object.entries(u).reduce((w,[E,t])=>Object.assign(w,{[l(E)]:n(t,c)}),{}):u}}Sl.column={from:Sl};Sl.value={from:Oh(Sl)};Fl.column={to:Fl};var Eh={...Sl};Eh.column.to=Fl;Gl.column={from:Gl};Gl.value={from:Oh(Gl)};Hl.column={to:Hl};var Ah={...Gl};Ah.column.to=Hl;jl.column={from:jl};jl.value={from:Oh(jl)};zl.column={to:zl};var Uh={...jl};Uh.column.to=zl;import vh from"net";import qn from"tls";import Jl from"crypto";import $h from"stream";import{performance as mh}from"perf_hooks";class Ml extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var hl=yn;function yn(l=[]){let n=l.slice(),u=0;return{get length(){return n.length-u},remove:(c)=>{let w=n.indexOf(c);return w===-1?null:(n.splice(w,1),c)},push:(c)=>(n.push(c),c),shift:()=>{let c=n[u++];if(u===n.length)u=0,n=[];else n[u-1]=void 0;return c}}}var p=Buffer.allocUnsafe(256),rn="BCcDdEFfHPpQSX".split("").reduce((l,n)=>{let u=n.charCodeAt(0);return l[n]=()=>{return p[0]=u,R.i=5,R},l},{}),R=Object.assign(sn,rn,{N:String.fromCharCode(0),i:0,inc(l){return R.i+=l,R},str(l){let n=Buffer.byteLength(l);return kl(n),R.i+=p.write(l,R.i,n,"utf8"),R},i16(l){return kl(2),p.writeUInt16BE(l,R.i),R.i+=2,R},i32(l,n){if(n||n===0)return p.writeUInt32BE(l,n),R;return kl(4),p.writeUInt32BE(l,R.i),R.i+=4,R},z(l){return kl(l),p.fill(0,R.i,R.i+l),R.i+=l,R},raw(l){return p=Buffer.concat([p.subarray(0,R.i),l]),R.i=p.length,R},end(l=1){p.writeUInt32BE(R.i-l,l);let n=p.subarray(0,R.i);return R.i=0,p=Buffer.allocUnsafe(256),n}}),$=R;function kl(l){if(p.length-R.i<l){let n=p,u=n.length;p=Buffer.allocUnsafe(u+(u>>1)+l),n.copy(p)}}function sn(){return R.i=0,R}var Bh=eh,xn=1,Bl=$().S().end(),bh=$().H().end(),lu=$().i32(8).i32(80877103).end(8),hu=Buffer.concat([$().E().str($.N).i32(0).end(),Bl]),nu=$().D().str("S").str($.N).end(),Rl=()=>{},uu=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),fu={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function eh(l,n={},{onopen:u=Rl,onend:c=Rl,onclose:w=Rl}={}){let{sslnegotiation:E,ssl:t,max:_,user:B,host:Q,port:T,database:Y,parsers:j,transform:M,onnotice:H,onnotify:I,onparameter:b,max_pipeline:Z,keep_alive:cl,backoff:nl,target_session_attrs:x}=l,d=hl(),Ul=xn++,_l={pid:null,secret:null},Pl=gh(xl,l.idle_timeout),Il=gh(xl,l.max_lifetime),L=gh(xh,l.connect_timeout),U=null,Ol,q=null,N=new Ml,y=Buffer.alloc(0),dl=l.fetch_types,El={},O={},S=Math.random().toString(36).slice(2),F=1,v=0,V=0,G=0,D=0,i=0,J=0,m=0,r=null,X=null,Al=!1,tl=null,$l=null,e=null,z=null,C=null,ll=null,Ql=null,sl=null,A=null,Tl=null,k={queue:n.closed,idleTimer:Pl,connect(h){e=h,Lh()},terminate:Zl,execute:Xl,cancel:yh,end:xl,count:0,id:Ul};return n.closed&&n.closed.push(k),k;async function ph(){let h;try{h=l.socket?await Promise.resolve(l.socket(l)):new vh.Socket}catch(f){Nl(f);return}return h.on("error",Nl),h.on("close",Nh),h.on("drain",Ph),h}async function yh({pid:h,secret:f},g,P){try{Ol=$().i32(16).i32(80877102).i32(h).i32(f).end(16),await dh(),U.once("error",P),U.once("close",g)}catch(W){P(W)}}function Xl(h){if(Al)return Cl(h,K.connection("CONNECTION_DESTROYED",l));if(C)return Cl(h,K.generic("COPY_IN_PROGRESS","You cannot execute queries during copy"));if(h.cancelled)return;try{return h.state=_l,A?d.push(h):(A=h,A.active=!0),qh(h),a(rh(h))&&!h.describeFirst&&!h.cursorFn&&d.length<Z&&(!h.options.onexecute||h.options.onexecute(k))}catch(f){return d.length===0&&a(Bl),ul(f),!0}}function rh(h){if(h.parameters.length>=65534)throw K.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return h.options.simple?$().Q().str(h.statement.string+$.N).end():h.describeFirst?Buffer.concat([Gh(h),bh]):h.prepare?h.prepared?Vl(h):Buffer.concat([Gh(h),Vl(h)]):sh(h)}function Gh(h){return Buffer.concat([Yh(h.statement.string,h.parameters,h.statement.types,h.statement.name),Vn("S",h.statement.name)])}function Vl(h){return Buffer.concat([Qn(h.parameters,h.statement.types,h.statement.name,h.cursorName),h.cursorFn?Rh("",h.cursorRows):hu])}function sh(h){return Buffer.concat([Yh(h.statement.string,h.parameters,h.statement.types),nu,Vl(h)])}function qh(h){let f=[],g=[],P=th(h,h.strings[0],h.args[0],f,g,l);!h.tagged&&h.args.forEach((W)=>al(W,f,g,l)),h.prepare=l.prepare&&("prepare"in h.options?h.options.prepare:!0),h.string=P,h.signature=h.prepare&&g+P,h.onlyDescribe&&delete O[h.signature],h.parameters=h.parameters||f,h.prepared=h.prepare&&h.signature in O,h.describeFirst=h.onlyDescribe||f.length&&!h.prepared,h.statement=h.prepared?O[h.signature]:{string:P,types:g,name:h.prepare?S+F++:""},typeof l.debug==="function"&&l.debug(Ul,P,f,g)}function a(h,f){if(ll=ll?Buffer.concat([ll,h]):Buffer.from(h),f||ll.length>=1024)return jh(f);return X===null&&(X=setImmediate(jh)),!0}function jh(h){let f=U.write(ll,h);return X!==null&&clearImmediate(X),ll=X=null,f}function xh(){ul(K.connection("CONNECT_TIMEOUT",l,U)),U.destroy()}async function Mh(){if(E!=="direct"){if(a(lu),!await new Promise((g)=>U.once("data",(P)=>g(P[0]===83)))&&t==="prefer")return Ll()}let h={socket:U,servername:vh.isIP(U.host)?void 0:U.host};if(E==="direct")h.ALPNProtocols=["postgresql"];if(t==="require"||t==="allow"||t==="prefer")h.rejectUnauthorized=!1;else if(typeof t==="object")Object.assign(h,t);U.removeAllListeners(),U=qn.connect(h),U.on("secureConnect",Ll),U.on("error",Nl),U.on("close",Nh),U.on("drain",Ph)}function Ph(){!A&&u(k)}function ql(h){if(tl){if(tl.push(h),V-=h.length,V>0)return}y=tl?Buffer.concat(tl,i-V):y.length===0?h:Buffer.concat([y,h],y.length+h.length);while(y.length>4){if(i=y.readUInt32BE(1),i>=y.length){V=i-y.length,tl=[y];break}try{ln(y.subarray(0,i+1))}catch(f){A&&(A.cursorFn||A.describeFirst)&&a(Bl),ul(f)}y=y.subarray(i+1),V=0,tl=null}}async function dh(){if(Al=!1,El={},U||(U=await ph()),!U)return;if(L.start(),l.socket)return t?Mh():Ll();if(U.on("connect",t?Mh:Ll),l.path)return U.connect(l.path);U.ssl=t,U.connect(T[G],Q[G]),U.host=Q[G],U.port=T[G],G=(G+1)%T.length}function Lh(){setTimeout(dh,v?Math.max(0,v+J-mh.now()):0)}function Ll(){try{O={},dl=l.fetch_types,S=Math.random().toString(36).slice(2),F=1,Il.start(),U.on("data",ql),cl&&U.setKeepAlive&&U.setKeepAlive(!0,1000*cl);let h=Kn();a(h)}catch(h){Nl(h)}}function Nl(h){if(k.queue===n.connecting&&l.host[D+1])return;ul(h);while(d.length)Cl(d.shift(),h)}function ul(h){C&&(C.destroy(h),C=null),A&&Cl(A,h),e&&(Cl(e,h),e=null)}function Cl(h,f){if(h.reserve)return h.reject(f);if(!f||typeof f!=="object")f=Error(f);"query"in f||"parameters"in f||Object.defineProperties(f,{stack:{value:f.stack+h.origin.replace(/.*\n/,`
|
|
3
|
+
`),enumerable:l.debug},query:{value:h.string,enumerable:l.debug},parameters:{value:h.parameters,enumerable:l.debug},args:{value:h.args,enumerable:l.debug},types:{value:h.statement&&h.statement.types,enumerable:l.debug}}),h.reject(f)}function xl(){return z||(!k.reserved&&c(k),!k.reserved&&!e&&!A&&d.length===0?(Zl(),new Promise((h)=>U&&U.readyState!=="closed"?U.once("close",h):h())):z=new Promise((h)=>Ql=h))}function Zl(){if(Al=!0,C||A||e||d.length)Nl(K.connection("CONNECTION_DESTROYED",l));if(clearImmediate(X),U)U.removeListener("data",ql),U.removeListener("connect",Ll),U.readyState==="open"&&U.end($().X().end());Ql&&(Ql(),z=Ql=null)}async function Nh(h){if(y=Buffer.alloc(0),V=0,tl=null,clearImmediate(X),U.removeListener("data",ql),U.removeListener("connect",Ll),Pl.cancel(),Il.cancel(),L.cancel(),U.removeAllListeners(),U=null,e)return Lh();!h&&(A||d.length)&&Nl(K.connection("CONNECTION_CLOSED",l,U)),v=mh.now(),h&&l.shared.retries++,J=(typeof nl==="function"?nl(l.shared.retries):nl)*1000,w(k,K.connection("CONNECTION_CLOSED",l,U))}function ln(h,f=h[0]){(f===68?hn:f===100?Tn:f===65?dn:f===83?nn:f===90?un:f===67?fn:f===50?Dh:f===49?cn:f===116?tn:f===84?wn:f===82?_n:f===110?gn:f===75?Bn:f===69?Mn:f===115?Ln:f===51?Nn:f===71?Dn:f===78?Cn:f===72?Yn:f===99?Xn:f===73?Zn:f===86?Fn:f===118?Hn:f===87?Rn:zn)(h)}function hn(h){let f=7,g,P,W,o=A.isRaw?Array(A.statement.columns.length):{};for(let s=0;s<A.statement.columns.length;s++)P=A.statement.columns[s],g=h.readInt32BE(f),f+=4,W=g===-1?null:A.isRaw===!0?h.subarray(f,f+=g):P.parser===void 0?h.toString("utf8",f,f+=g):P.parser.array===!0?P.parser(h.toString("utf8",f+1,f+=g)):P.parser(h.toString("utf8",f,f+=g)),A.isRaw?o[s]=A.isRaw===!0?W:M.value.from?M.value.from(W,P):W:o[P.name]=M.value.from?M.value.from(W,P):W;A.forEachFn?A.forEachFn(M.row.from?M.row.from(o):o,N):N[m++]=M.row.from?M.row.from(o):o}function nn(h){let[f,g]=h.toString("utf8",5,h.length-1).split($.N);if(El[f]=g,l.parameters[f]!==g)l.parameters[f]=g,b&&b(f,g)}function un(h){if(A)if(q)A.retried?ul(A.retried):A.prepared&&uu.has(q.routine)?Pn(A,q):ul(q);else A.resolve($l||N);else if(q)ul(q);if(A=$l=q=null,N=new Ml,L.cancel(),e){if(x){if(!El.in_hot_standby||!El.default_transaction_read_only)return jn();else if(Gn(x,El))return Zl()}if(dl)return e.reserve&&(e=null),In();e&&!e.reserve&&Xl(e),l.shared.retries=D=0,e=null;return}while(d.length&&(A=d.shift())&&(A.active=!0,A.cancelled))eh(l).cancel(A.state,A.cancelled.resolve,A.cancelled.reject);if(A)return;k.reserved?!k.reserved.release&&h[5]===73?z?Zl():(k.reserved=null,u(k)):k.reserved():z?Zl():u(k)}function fn(h){m=0;for(let f=h.length-1;f>0;f--){if(h[f]===32&&h[f+1]<58&&N.count===null)N.count=+h.toString("utf8",f+1,h.length-1);if(h[f-1]>=65){N.command=h.toString("utf8",5,f),N.state=_l;break}}if(Tl&&(Tl(),Tl=null),N.command==="BEGIN"&&_!==1&&!k.reserved)return ul(K.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(A.options.simple)return Dh();if(A.cursorFn)N.count&&A.cursorFn(N),a(Bl)}function cn(){A.parsing=!1}function Dh(){!N.statement&&(N.statement=A.statement),N.columns=A.statement.columns}function tn(h){let f=h.readUInt16BE(5);for(let g=0;g<f;++g)!A.statement.types[g]&&(A.statement.types[g]=h.readUInt32BE(7+g*4));A.prepare&&(O[A.signature]=A.statement),A.describeFirst&&!A.onlyDescribe&&(a(Vl(A)),A.describeFirst=!1)}function wn(h){if(N.command)$l=$l||[N],$l.push(N=new Ml),N.count=null,A.statement.columns=null;let f=h.readUInt16BE(5),g=7,P;A.statement.columns=Array(f);for(let W=0;W<f;++W){P=g;while(h[g++]!==0);let o=h.readUInt32BE(g),s=h.readUInt16BE(g+4),gl=h.readUInt32BE(g+6);A.statement.columns[W]={name:M.column.from?M.column.from(h.toString("utf8",P,g-1)):h.toString("utf8",P,g-1),parser:j[gl],table:o,number:s,type:gl},g+=18}if(N.statement=A.statement,A.onlyDescribe)return A.resolve(A.statement),a(Bl)}async function _n(h,f=h.readUInt32BE(5)){(f===3?On:f===5?En:f===10?An:f===11?Un:f===12?$n:f!==0?Jn:Rl)(h,f)}async function On(){let h=await lh();a($().p().str(h).z(1).end())}async function En(h){let f="md5"+await ah(Buffer.concat([Buffer.from(await ah(await lh()+B)),h.subarray(9)]));a($().p().str(f).z(1).end())}async function An(){sl=(await Jl.randomBytes(18)).toString("base64"),$().p().str("SCRAM-SHA-256"+$.N);let h=$.i;a($.inc(4).str("n,,n=*,r="+sl).i32($.i-h-4,h).end())}async function Un(h){let f=h.toString("utf8",9).split(",").reduce((s,gl)=>(s[gl[0]]=gl.slice(2),s),{}),g=await Jl.pbkdf2Sync(await lh(),Buffer.from(f.s,"base64"),parseInt(f.i),32,"sha256"),P=await pl(g,"Client Key"),W="n=*,r="+sl+",r="+f.r+",s="+f.s+",i="+f.i+",c=biws,r="+f.r;r=(await pl(await pl(g,"Server Key"),W)).toString("base64");let o="c=biws,r="+f.r+",p="+tu(P,Buffer.from(await pl(await cu(P),W))).toString("base64");a($().p().str(o).end())}function $n(h){if(h.toString("utf8",9).split($.N,1)[0].slice(2)===r)return;ul(K.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),U.destroy()}function lh(){return Promise.resolve(typeof l.pass==="function"?l.pass():l.pass)}function gn(){if(N.statement=A.statement,N.statement.columns=[],A.onlyDescribe)return A.resolve(A.statement),a(Bl)}function Bn(h){_l.pid=h.readUInt32BE(5),_l.secret=h.readUInt32BE(9)}async function In(){dl=!1,(await new fl([`
|
|
4
|
+
select b.oid, b.typarray
|
|
5
|
+
from pg_catalog.pg_type a
|
|
6
|
+
left join pg_catalog.pg_type b on b.oid = a.typelem
|
|
7
|
+
where a.typcategory = 'A'
|
|
8
|
+
group by b.oid, b.typarray
|
|
9
|
+
order by b.oid
|
|
10
|
+
`],[],Xl)).forEach(({oid:f,typarray:g})=>Sn(f,g))}function Sn(h,f){if(!!l.parsers[f]&&!!l.serializers[f])return;let g=l.parsers[h];l.shared.typeArrayMap[h]=f,l.parsers[f]=(P)=>Wh(P,g,f),l.parsers[f].array=!0,l.serializers[f]=(P)=>Vh(P,l.serializers[h],l,f)}function Gn(h,f){return h==="read-write"&&f.default_transaction_read_only==="on"||h==="read-only"&&f.default_transaction_read_only==="off"||h==="primary"&&f.in_hot_standby==="on"||h==="standby"&&f.in_hot_standby==="off"||h==="prefer-standby"&&f.in_hot_standby==="off"&&l.host[D]}function jn(){let h=new fl([`
|
|
11
|
+
show transaction_read_only;
|
|
12
|
+
select pg_catalog.pg_is_in_recovery()
|
|
13
|
+
`],[],Xl,null,{simple:!0});h.resolve=([[f],[g]])=>{El.default_transaction_read_only=f.transaction_read_only,El.in_hot_standby=g.pg_is_in_recovery?"on":"off"},h.execute()}function Mn(h){if(A)(A.cursorFn||A.describeFirst)&&a(Bl),q=K.postgres(ol(h));else ul(K.postgres(ol(h)))}function Pn(h,f){delete O[h.signature],h.retried=f,Xl(h)}function dn(h){if(!I)return;let f=9;while(h[f++]!==0);I(h.toString("utf8",9,f-1),h.toString("utf8",f,h.length-1))}async function Ln(){try{let h=await Promise.resolve(A.cursorFn(N));m=0,h===Dl?a(Wn(A.portal)):(N=new Ml,a(Rh("",A.cursorRows)))}catch(h){a(Bl),A.reject(h)}}function Nn(){N.count&&A.cursorFn(N),A.resolve(N)}function Dn(){C=new $h.Writable({autoDestroy:!0,write(h,f,g){U.write($().d().raw(h).end(),g)},destroy(h,f){f(h),U.write($().f().str(h+$.N).end()),C=null},final(h){U.write($().c().end()),Tl=h,C=null}}),A.resolve(C)}function Yn(){C=new $h.Readable({read(){U.resume()}}),A.resolve(C)}function Rn(){C=new $h.Duplex({autoDestroy:!0,read(){U.resume()},write(h,f,g){U.write($().d().raw(h).end(),g)},destroy(h,f){f(h),U.write($().f().str(h+$.N).end()),C=null},final(h){U.write($().c().end()),Tl=h}}),A.resolve(C)}function Tn(h){C&&(C.push(h.subarray(5))||U.pause())}function Xn(){C&&C.push(null),C=null}function Cn(h){H?H(ol(h)):console.log(ol(h))}function Zn(){}function Fn(){ul(K.notSupported("FunctionCallResponse"))}function Hn(){ul(K.notSupported("NegotiateProtocolVersion"))}function zn(h){console.error("Postgres.js : Unknown Message:",h[0])}function Jn(h,f){console.error("Postgres.js : Unknown Auth:",f)}function Qn(h,f,g="",P=""){let W,o;return $().B().str(P+$.N).str(g+$.N).i16(0).i16(h.length),h.forEach((s,gl)=>{if(s===null)return $.i32(4294967295);o=f[gl],h[gl]=s=o in l.serializers?l.serializers[o](s):""+s,W=$.i,$.inc(4).str(s).i32($.i-W-4,W)}),$.i16(0),$.end()}function Yh(h,f,g,P=""){return $().P().str(P+$.N).str(h+$.N).i16(f.length),f.forEach((W,o)=>$.i32(g[o]||0)),$.end()}function Vn(h,f=""){return $().D().str(h).str(f+$.N).end()}function Rh(h="",f=0){return Buffer.concat([$().E().str(h+$.N).i32(f).end(),bh])}function Wn(h=""){return Buffer.concat([$().C().str("P").str(h+$.N).end(),$().S().end()])}function Kn(){return Ol||$().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:B,database:Y,client_encoding:"UTF8"},l.connection)).filter(([,h])=>h).map(([h,f])=>h+$.N+f).join($.N)).z(2).end(0)}}function ol(l){let n={},u=5;for(let c=5;c<l.length-1;c++)if(l[c]===0)n[fu[l[u]]]=l.toString("utf8",u+1,c),u=c+1;return n}function ah(l){return Jl.createHash("md5").update(l).digest("hex")}function pl(l,n){return Jl.createHmac("sha256",l).update(n).digest()}function cu(l){return Jl.createHash("sha256").update(l).digest()}function tu(l,n){let u=Math.max(l.length,n.length),c=Buffer.allocUnsafe(u);for(let w=0;w<u;w++)c[w]=l[w]^n[w];return c}function gh(l,n){if(n=typeof n==="function"?n():n,!n)return{cancel:Rl,start:Rl};let u;return{cancel(){u&&(clearTimeout(u),u=null)},start(){u&&clearTimeout(u),u=setTimeout(c,n*1000,arguments)}};function c(w){l.apply(null,w),u=null}}var kh=()=>{};function Ih(l,n){let u=new Map,c="postgresjs_"+Math.random().toString(36).slice(2),w={},E,t,_=!1,B=Y.sql=l({...n,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...n.connection,replication:"database"},onclose:async function(){if(_)return;t=null,w.pid=w.secret=void 0,j(await M(B,c,n.publications)),u.forEach((I)=>I.forEach(({onsubscribe:b})=>b()))},no_subscribe:!0}),Q=B.end,T=B.close;return B.end=async()=>{return _=!0,t&&await new Promise((I)=>(t.once("close",I),t.end())),Q()},B.close=async()=>{return t&&await new Promise((I)=>(t.once("close",I),t.end())),T()},Y;async function Y(I,b,Z=kh,cl=kh){if(I=Ou(I),!E)E=M(B,c,n.publications);let nl={fn:b,onsubscribe:Z},x=u.has(I)?u.get(I).add(nl):u.set(I,new Set([nl])).get(I),d=()=>{x.delete(nl),x.size===0&&u.delete(I)};return E.then((Ul)=>{return j(Ul),Z(),t&&t.on("error",cl),{unsubscribe:d,state:w,sql:B}})}function j(I){t=I.stream,w.pid=I.state.pid,w.secret=I.state.secret}async function M(I,b,Z){if(!Z)throw Error("Missing publication names");let cl=await I.unsafe(`CREATE_REPLICATION_SLOT ${b} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[nl]=cl,x=await I.unsafe(`START_REPLICATION SLOT ${b} LOGICAL ${nl.consistent_point} (proto_version '1', publication_names '${Z}')`).writable(),d={lsn:Buffer.concat(nl.consistent_point.split("/").map((L)=>Buffer.from(("00000000"+L).slice(-8),"hex")))};return x.on("data",_l),x.on("error",Ul),x.on("close",I.close),{stream:x,state:cl.state};function Ul(L){console.error("Unexpected error during logical streaming - reconnecting",L)}function _l(L){if(L[0]===119)_u(L.subarray(25),d,I.options.parsers,Pl,n.transform);else if(L[0]===107&&L[17])d.lsn=L.subarray(1,9),Il()}function Pl(L,U){let Ol=U.relation.schema+"."+U.relation.table;H("*",L,U),H("*:"+Ol,L,U),U.relation.keys.length&&H("*:"+Ol+"="+U.relation.keys.map((q)=>L[q.name]),L,U),H(U.command,L,U),H(U.command+":"+Ol,L,U),U.relation.keys.length&&H(U.command+":"+Ol+"="+U.relation.keys.map((q)=>L[q.name]),L,U)}function Il(){let L=Buffer.alloc(34);L[0]=114,L.fill(d.lsn,1),L.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),x.write(L)}}function H(I,b,Z){u.has(I)&&u.get(I).forEach(({fn:cl})=>cl(b,Z,I))}}function wu(l){return new Date(Date.UTC(2000,0,1)+Number(l/BigInt(1000)))}function _u(l,n,u,c,w){let E=(t,[_,B])=>(t[_.charCodeAt(0)]=B,t);Object.entries({R:(t)=>{let _=1,B=n[t.readUInt32BE(_)]={schema:t.toString("utf8",_+=4,_=t.indexOf(0,_))||"pg_catalog",table:t.toString("utf8",_+1,_=t.indexOf(0,_+1)),columns:Array(t.readUInt16BE(_+=2)),keys:[]};_+=2;let Q=0,T;while(_<t.length)T=B.columns[Q++]={key:t[_++],name:w.column.from?w.column.from(t.toString("utf8",_,_=t.indexOf(0,_))):t.toString("utf8",_,_=t.indexOf(0,_)),type:t.readUInt32BE(_+=1),parser:u[t.readUInt32BE(_)],atttypmod:t.readUInt32BE(_+=4)},T.key&&B.keys.push(T),_+=4},Y:()=>{},O:()=>{},B:(t)=>{n.date=wu(t.readBigInt64BE(9)),n.lsn=t.subarray(1,9)},I:(t)=>{let _=1,B=n[t.readUInt32BE(_)],{row:Q}=yl(t,B.columns,_+=7,w);c(Q,{command:"insert",relation:B})},D:(t)=>{let _=1,B=n[t.readUInt32BE(_)];_+=4;let Q=t[_]===75;c(Q||t[_]===79?yl(t,B.columns,_+=3,w).row:null,{command:"delete",relation:B,key:Q})},U:(t)=>{let _=1,B=n[t.readUInt32BE(_)];_+=4;let Q=t[_]===75,T=Q||t[_]===79?yl(t,B.columns,_+=3,w):null;T&&(_=T.i);let{row:Y}=yl(t,B.columns,_+3,w);c(Y,{command:"update",relation:B,key:Q,old:T&&T.row})},T:()=>{},C:()=>{}}).reduce(E,{})[l[0]](l)}function yl(l,n,u,c){let w,E,t,_=c.raw?Array(n.length):{};for(let B=0;B<n.length;B++)w=l[u++],E=n[B],t=w===110?null:w===117?void 0:E.parser===void 0?l.toString("utf8",u+4,u+=4+l.readUInt32BE(u)):E.parser.array===!0?E.parser(l.toString("utf8",u+5,u+=4+l.readUInt32BE(u))):E.parser(l.toString("utf8",u+4,u+=4+l.readUInt32BE(u))),c.raw?_[B]=c.raw===!0?t:c.value.from?c.value.from(t,E):t:_[E.name]=c.value.from?c.value.from(t,E):t;return{i:u,row:c.row.from?c.row.from(_):_}}function Ou(l){let n=l.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!n)throw Error("Malformed subscribe pattern: "+l);let[,u,c,w]=n;return(u||"*")+(c?":"+(c.indexOf(".")===-1?"public."+c:c):"")+(w?"="+w:"")}import oh from"stream";function Sh(l,n,u=393216){return new Promise(async(c,w)=>{await l.begin(async(E)=>{let t;!n&&([{oid:n}]=await E`select lo_creat(-1) as oid`);let[{fd:_}]=await E`select lo_open(${n}, ${u}) as fd`,B={writable:T,readable:Q,close:()=>E`select lo_close(${_})`.then(t),tell:()=>E`select lo_tell64(${_})`,read:(Y)=>E`select loread(${_}, ${Y}) as data`,write:(Y)=>E`select lowrite(${_}, ${Y})`,truncate:(Y)=>E`select lo_truncate64(${_}, ${Y})`,seek:(Y,j=0)=>E`select lo_lseek64(${_}, ${Y}, ${j})`,size:()=>E`
|
|
14
|
+
select
|
|
15
|
+
lo_lseek64(${_}, location, 0) as position,
|
|
16
|
+
seek.size
|
|
17
|
+
from (
|
|
18
|
+
select
|
|
19
|
+
lo_lseek64($1, 0, 2) as size,
|
|
20
|
+
tell.location
|
|
21
|
+
from (select lo_tell64($1) as location) tell
|
|
22
|
+
) seek
|
|
23
|
+
`};return c(B),new Promise(async(Y)=>t=Y);async function Q({highWaterMark:Y=16384,start:j=0,end:M=1/0}={}){let H=M-j;return j&&await B.seek(j),new oh.Readable({highWaterMark:Y,async read(I){let b=I>H?I-H:I;H-=I;let[{data:Z}]=await B.read(b);if(this.push(Z),Z.length<I)this.push(null)}})}async function T({highWaterMark:Y=16384,start:j=0}={}){return j&&await B.seek(j),new oh.Writable({highWaterMark:Y,write(M,H,I){B.write(M).then(()=>I(),I)}})}}).catch(w)})}Object.assign(rl,{PostgresError:Yl,toPascal:Gl,pascal:Ah,toCamel:Sl,camel:Eh,toKebab:jl,kebab:Uh,fromPascal:Hl,fromCamel:Fl,fromKebab:zl,BigInt:{to:20,from:[20],parse:(l)=>BigInt(l),serialize:(l)=>l.toString()}});var qu=rl;function rl(l,n){let u=Uu(l,n),c=u.no_subscribe||Ih(rl,{...u}),w=!1,E=hl(),t=hl(),_=hl(),B=hl(),Q=hl(),T=hl(),Y=hl(),j=hl(),M={connecting:t,reserved:_,closed:B,ended:Q,open:T,busy:Y,full:j},H=[...Array(u.max)].map(()=>Bh(u,M,{onopen:dl,onend:y,onclose:El})),I=b(Pl);return Object.assign(I,{get parameters(){return u.parameters},largeObject:Sh.bind(null,I),subscribe:c,CLOSE:Dl,END:Dl,PostgresError:Yl,options:u,reserve:nl,listen:Z,begin:x,close:Ol,end:U}),I;function b(O){return O.debug=u.debug,Object.entries(u.types).reduce((G,[D,i])=>{return G[D]=(J)=>new wl(J,i.to),G},S),Object.assign(F,{types:S,typed:S,unsafe:v,notify:cl,array:_l,json:Ul,file:V}),F;function S(G,D){return new wl(G,D)}function F(G,...D){return G&&Array.isArray(G.raw)?new fl(G,D,O,L):typeof G==="string"&&!D.length?new il(u.transform.column.to?u.transform.column.to(G):G):new bl(G,D)}function v(G,D=[],i={}){return arguments.length===2&&!Array.isArray(D)&&(i=D,D=[]),new fl([G],D,O,L,{prepare:!1,...i,simple:"simple"in i?i.simple:D.length===0})}function V(G,D=[],i={}){return arguments.length===2&&!Array.isArray(D)&&(i=D,D=[]),new fl([],D,(m)=>{Au.readFile(G,"utf8",(r,X)=>{if(r)return m.reject(r);m.strings=[X],O(m)})},L,{...i,simple:"simple"in i?i.simple:D.length===0})}}async function Z(O,S,F){let v={fn:S,onlisten:F},V=Z.sql||(Z.sql=rl({...u,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(Z.channels).forEach(([m,{listeners:r}])=>{delete Z.channels[m],Promise.all(r.map((X)=>Z(m,X.fn,X.onlisten).catch(()=>{})))})},onnotify(m,r){m in Z.channels&&Z.channels[m].listeners.forEach((X)=>X.fn(r))}})),G=Z.channels||(Z.channels={});if(O in G){G[O].listeners.push(v);let m=await G[O].result;return v.onlisten&&v.onlisten(),{state:m.state,unlisten:J}}G[O]={result:V`listen ${V.unsafe('"'+O.replace(/"/g,'""')+'"')}`,listeners:[v]};let i=await G[O].result;return v.onlisten&&v.onlisten(),{state:i.state,unlisten:J};async function J(){if(O in G===!1)return;if(G[O].listeners=G[O].listeners.filter((m)=>m!==v),G[O].listeners.length)return;return delete G[O],V`unlisten ${V.unsafe('"'+O.replace(/"/g,'""')+'"')}`}}async function cl(O,S){return await I`select pg_notify(${O}, ${""+S})`}async function nl(){let O=hl(),S=T.length?T.shift():await new Promise((V,G)=>{let D={reserve:V,reject:G};E.push(D),B.length&&N(B.shift(),D)});d(S,_),S.reserved=()=>O.length?S.execute(O.shift()):d(S,_),S.reserved.release=!0;let F=b(v);return F.release=()=>{S.reserved=null,dl(S)},F;function v(V){S.queue===j?O.push(V):S.execute(V)||d(S,j)}}async function x(O,S){!S&&(S=O,O="");let F=hl(),v=0,V,G=null;try{return await I.unsafe("begin "+O.replace(/[^a-z ]/ig,""),[],{onexecute:i}).execute(),await Promise.race([D(V,S),new Promise((J,m)=>V.onclose=m)])}catch(J){throw J}async function D(J,m,r){let X=b(e);X.savepoint=$l,X.prepare=(z)=>G=z.replace(/[^a-z0-9$-_. ]/gi);let Al,tl;r&&await X`savepoint ${X(r)}`;try{if(tl=await new Promise((z,C)=>{let ll=m(X);Promise.resolve(Array.isArray(ll)?Promise.all(ll):ll).then(z,C)}),Al)throw Al}catch(z){throw await(r?X`rollback to ${X(r)}`:X`rollback`),z instanceof Yl&&z.code==="25P02"&&Al||z}if(!r)G?await X`prepare transaction '${X.unsafe(G)}'`:await X`commit`;return tl;function $l(z,C){if(z&&Array.isArray(z.raw))return $l((ll)=>ll.apply(ll,arguments));return arguments.length===1&&(C=z,z=null),D(J,C,"s"+v+++(z?"_"+z:""))}function e(z){z.catch((C)=>Al||(Al=C)),J.queue===j?F.push(z):J.execute(z)||d(J,j)}}function i(J){V=J,d(J,_),J.reserved=()=>F.length?J.execute(F.shift()):d(J,_)}}function d(O,S){return O.queue.remove(O),S.push(O),O.queue=S,S===T?O.idleTimer.start():O.idleTimer.cancel(),O}function Ul(O){return new wl(O,3802)}function _l(O,S){if(!Array.isArray(O))return _l(Array.from(arguments));return new wl(O,S||(O.length?vl(O)||25:0),u.shared.typeArrayMap)}function Pl(O){if(w)return O.reject(K.connection("CONNECTION_ENDED",u,u));if(T.length)return Il(T.shift(),O);if(B.length)return N(B.shift(),O);Y.length?Il(Y.shift(),O):E.push(O)}function Il(O,S){return O.execute(S)?d(O,Y):d(O,j)}function L(O){return new Promise((S,F)=>{O.state?O.active?Bh(u).cancel(O.state,S,F):O.cancelled={resolve:S,reject:F}:(E.remove(O),O.cancelled=!0,O.reject(K.generic("57014","canceling statement due to user request")),S())})}async function U({timeout:O=null}={}){if(w)return w;await 1;let S;return w=Promise.race([new Promise((F)=>O!==null&&(S=setTimeout(q,O*1000,F))),Promise.all(H.map((F)=>F.end()).concat(Z.sql?Z.sql.end({timeout:0}):[],c.sql?c.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(S))}async function Ol(){await Promise.all(H.map((O)=>O.end()))}async function q(O){await Promise.all(H.map((S)=>S.terminate()));while(E.length)E.shift().reject(K.connection("CONNECTION_DESTROYED",u));O()}function N(O,S){return d(O,t),O.connect(S),O}function y(O){d(O,Q)}function dl(O){if(E.length===0)return d(O,T);let S=Math.ceil(E.length/(t.length+1)),F=!0;while(F&&E.length&&S-- >0){let v=E.shift();if(v.reserve)return v.reserve(O);F=O.execute(v)}F?d(O,Y):d(O,j)}function El(O,S){d(O,B),O.reserved=null,O.onclose&&(O.onclose(S),O.onclose=null),u.onclose&&u.onclose(O.id),E.length&&N(O,E.shift())}}function Uu(l,n){if(l&&l.shared)return l;let u=process.env,c=(!l||typeof l==="string"?n:l)||{},{url:w,multihost:E}=Su(l),t=[...w.searchParams].reduce((j,[M,H])=>(j[M]=H,j),{}),_=c.hostname||c.host||E||w.hostname||u.PGHOST||"localhost",B=c.port||w.port||u.PGPORT||5432,Q=c.user||c.username||w.username||u.PGUSERNAME||u.PGUSER||Gu();c.no_prepare&&(c.prepare=!1),t.sslmode&&(t.ssl=t.sslmode,delete t.sslmode),"timeout"in c&&(console.log("The timeout option is deprecated, use idle_timeout instead"),c.idle_timeout=c.timeout),t.sslrootcert==="system"&&(t.ssl="verify-full");let T=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],Y={max:globalThis.Cloudflare?3:10,ssl:!1,sslnegotiation:null,idle_timeout:null,connect_timeout:30,max_lifetime:Bu,max_pipeline:100,backoff:gu,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(_)?_:_.split(",").map((j)=>j.split(":")[0]),port:Array.isArray(B)?B:_.split(",").map((j)=>parseInt(j.split(":")[1]||B)),path:c.path||_.indexOf("/")>-1&&_+"/.s.PGSQL."+B,database:c.database||c.db||(w.pathname||"").slice(1)||u.PGDATABASE||Q,user:Q,pass:c.pass||c.password||w.password||u.PGPASSWORD||"",...Object.entries(Y).reduce((j,[M,H])=>{let I=M in c?c[M]:(M in t)?t[M]==="disable"||t[M]==="false"?!1:t[M]:u["PG"+M.toUpperCase()]||H;return j[M]=typeof I==="string"&&T.includes(M)?+I:I,j},{}),connection:{application_name:u.PGAPPNAME||"postgres.js",...c.connection,...Object.entries(t).reduce((j,[M,H])=>((M in Y)||(j[M]=H),j),{})},types:c.types||{},target_session_attrs:$u(c,w,u),onnotice:c.onnotice,onnotify:c.onnotify,onclose:c.onclose,onparameter:c.onparameter,socket:c.socket,transform:Iu(c.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...Jh(c.types)}}function $u(l,n,u){let c=l.target_session_attrs||n.searchParams.get("target_session_attrs")||u.PGTARGETSESSIONATTRS;if(!c||["read-write","read-only","primary","standby","prefer-standby"].includes(c))return c;throw Error("target_session_attrs "+c+" is not supported")}function gu(l){return(0.5+Math.random()/2)*Math.min(3**l/100,20)}function Bu(){return 60*(30+Math.random()*30)}function Iu(l){return{undefined:l.undefined,column:{from:typeof l.column==="function"?l.column:l.column&&l.column.from,to:l.column&&l.column.to},value:{from:typeof l.value==="function"?l.value:l.value&&l.value.from,to:l.value&&l.value.to},row:{from:typeof l.row==="function"?l.row:l.row&&l.row.from,to:l.row&&l.row.to}}}function Su(l){if(!l||typeof l!=="string")return{url:{searchParams:new Map}};let n=l;n=n.slice(n.indexOf("://")+3).split(/[?/]/)[0],n=decodeURIComponent(n.slice(n.indexOf("@")+1));let u=new URL(l.replace(n,n.split(",")[0]));return{url:{username:decodeURIComponent(u.username),password:decodeURIComponent(u.password),host:u.host,hostname:u.hostname,port:u.port,pathname:u.pathname,searchParams:u.searchParams},multihost:n.indexOf(",")>-1&&n}}function Gu(){try{return Eu.userInfo().username}catch(l){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}export{qu as default};
|
|
24
|
+
|
|
25
|
+
//# debugId=403970AFE35B261F64756E2164756E21
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/index.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/query.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/errors.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/types.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/connection.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/result.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/queue.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/bytes.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/subscribe.js", "../../../node_modules/.bun/postgres@3.4.9/node_modules/postgres/src/large.js"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import os from 'os'\nimport fs from 'fs'\n\nimport {\n mergeUserTypes,\n inferType,\n Parameter,\n Identifier,\n Builder,\n toPascal,\n pascal,\n toCamel,\n camel,\n toKebab,\n kebab,\n fromPascal,\n fromCamel,\n fromKebab\n} from './types.js'\n\nimport Connection from './connection.js'\nimport { Query, CLOSE } from './query.js'\nimport Queue from './queue.js'\nimport { Errors, PostgresError } from './errors.js'\nimport Subscribe from './subscribe.js'\nimport largeObject from './large.js'\n\nObject.assign(Postgres, {\n PostgresError,\n toPascal,\n pascal,\n toCamel,\n camel,\n toKebab,\n kebab,\n fromPascal,\n fromCamel,\n fromKebab,\n BigInt: {\n to: 20,\n from: [20],\n parse: x => BigInt(x), // eslint-disable-line\n serialize: x => x.toString()\n }\n})\n\nexport default Postgres\n\nfunction Postgres(a, b) {\n const options = parseOptions(a, b)\n , subscribe = options.no_subscribe || Subscribe(Postgres, { ...options })\n\n let ending = false\n\n const queries = Queue()\n , connecting = Queue()\n , reserved = Queue()\n , closed = Queue()\n , ended = Queue()\n , open = Queue()\n , busy = Queue()\n , full = Queue()\n , queues = { connecting, reserved, closed, ended, open, busy, full }\n\n const connections = [...Array(options.max)].map(() => Connection(options, queues, { onopen, onend, onclose }))\n\n const sql = Sql(handler)\n\n Object.assign(sql, {\n get parameters() { return options.parameters },\n largeObject: largeObject.bind(null, sql),\n subscribe,\n CLOSE,\n END: CLOSE,\n PostgresError,\n options,\n reserve,\n listen,\n begin,\n close,\n end\n })\n\n return sql\n\n function Sql(handler) {\n handler.debug = options.debug\n\n Object.entries(options.types).reduce((acc, [name, type]) => {\n acc[name] = (x) => new Parameter(x, type.to)\n return acc\n }, typed)\n\n Object.assign(sql, {\n types: typed,\n typed,\n unsafe,\n notify,\n array,\n json,\n file\n })\n\n return sql\n\n function typed(value, type) {\n return new Parameter(value, type)\n }\n\n function sql(strings, ...args) {\n const query = strings && Array.isArray(strings.raw)\n ? new Query(strings, args, handler, cancel)\n : typeof strings === 'string' && !args.length\n ? new Identifier(options.transform.column.to ? options.transform.column.to(strings) : strings)\n : new Builder(strings, args)\n return query\n }\n\n function unsafe(string, args = [], options = {}) {\n arguments.length === 2 && !Array.isArray(args) && (options = args, args = [])\n const query = new Query([string], args, handler, cancel, {\n prepare: false,\n ...options,\n simple: 'simple' in options ? options.simple : args.length === 0\n })\n return query\n }\n\n function file(path, args = [], options = {}) {\n arguments.length === 2 && !Array.isArray(args) && (options = args, args = [])\n const query = new Query([], args, (query) => {\n fs.readFile(path, 'utf8', (err, string) => {\n if (err)\n return query.reject(err)\n\n query.strings = [string]\n handler(query)\n })\n }, cancel, {\n ...options,\n simple: 'simple' in options ? options.simple : args.length === 0\n })\n return query\n }\n }\n\n async function listen(name, fn, onlisten) {\n const listener = { fn, onlisten }\n\n const sql = listen.sql || (listen.sql = Postgres({\n ...options,\n max: 1,\n idle_timeout: null,\n max_lifetime: null,\n fetch_types: false,\n onclose() {\n Object.entries(listen.channels).forEach(([name, { listeners }]) => {\n delete listen.channels[name]\n Promise.all(listeners.map(l => listen(name, l.fn, l.onlisten).catch(() => { /* noop */ })))\n })\n },\n onnotify(c, x) {\n c in listen.channels && listen.channels[c].listeners.forEach(l => l.fn(x))\n }\n }))\n\n const channels = listen.channels || (listen.channels = {})\n , exists = name in channels\n\n if (exists) {\n channels[name].listeners.push(listener)\n const result = await channels[name].result\n listener.onlisten && listener.onlisten()\n return { state: result.state, unlisten }\n }\n\n channels[name] = { result: sql`listen ${\n sql.unsafe('\"' + name.replace(/\"/g, '\"\"') + '\"')\n }`, listeners: [listener] }\n const result = await channels[name].result\n listener.onlisten && listener.onlisten()\n return { state: result.state, unlisten }\n\n async function unlisten() {\n if (name in channels === false)\n return\n\n channels[name].listeners = channels[name].listeners.filter(x => x !== listener)\n if (channels[name].listeners.length)\n return\n\n delete channels[name]\n return sql`unlisten ${\n sql.unsafe('\"' + name.replace(/\"/g, '\"\"') + '\"')\n }`\n }\n }\n\n async function notify(channel, payload) {\n return await sql`select pg_notify(${ channel }, ${ '' + payload })`\n }\n\n async function reserve() {\n const queue = Queue()\n const c = open.length\n ? open.shift()\n : await new Promise((resolve, reject) => {\n const query = { reserve: resolve, reject }\n queries.push(query)\n closed.length && connect(closed.shift(), query)\n })\n\n move(c, reserved)\n c.reserved = () => queue.length\n ? c.execute(queue.shift())\n : move(c, reserved)\n c.reserved.release = true\n\n const sql = Sql(handler)\n sql.release = () => {\n c.reserved = null\n onopen(c)\n }\n\n return sql\n\n function handler(q) {\n c.queue === full\n ? queue.push(q)\n : c.execute(q) || move(c, full)\n }\n }\n\n async function begin(options, fn) {\n !fn && (fn = options, options = '')\n const queries = Queue()\n let savepoints = 0\n , connection\n , prepare = null\n\n try {\n await sql.unsafe('begin ' + options.replace(/[^a-z ]/ig, ''), [], { onexecute }).execute()\n return await Promise.race([\n scope(connection, fn),\n new Promise((_, reject) => connection.onclose = reject)\n ])\n } catch (error) {\n throw error\n }\n\n async function scope(c, fn, name) {\n const sql = Sql(handler)\n sql.savepoint = savepoint\n sql.prepare = x => prepare = x.replace(/[^a-z0-9$-_. ]/gi)\n let uncaughtError\n , result\n\n name && await sql`savepoint ${ sql(name) }`\n try {\n result = await new Promise((resolve, reject) => {\n const x = fn(sql)\n Promise.resolve(Array.isArray(x) ? Promise.all(x) : x).then(resolve, reject)\n })\n\n if (uncaughtError)\n throw uncaughtError\n } catch (e) {\n await (name\n ? sql`rollback to ${ sql(name) }`\n : sql`rollback`\n )\n throw e instanceof PostgresError && e.code === '25P02' && uncaughtError || e\n }\n\n if (!name) {\n prepare\n ? await sql`prepare transaction '${ sql.unsafe(prepare) }'`\n : await sql`commit`\n }\n\n return result\n\n function savepoint(name, fn) {\n if (name && Array.isArray(name.raw))\n return savepoint(sql => sql.apply(sql, arguments))\n\n arguments.length === 1 && (fn = name, name = null)\n return scope(c, fn, 's' + savepoints++ + (name ? '_' + name : ''))\n }\n\n function handler(q) {\n q.catch(e => uncaughtError || (uncaughtError = e))\n c.queue === full\n ? queries.push(q)\n : c.execute(q) || move(c, full)\n }\n }\n\n function onexecute(c) {\n connection = c\n move(c, reserved)\n c.reserved = () => queries.length\n ? c.execute(queries.shift())\n : move(c, reserved)\n }\n }\n\n function move(c, queue) {\n c.queue.remove(c)\n queue.push(c)\n c.queue = queue\n queue === open\n ? c.idleTimer.start()\n : c.idleTimer.cancel()\n return c\n }\n\n function json(x) {\n return new Parameter(x, 3802)\n }\n\n function array(x, type) {\n if (!Array.isArray(x))\n return array(Array.from(arguments))\n\n return new Parameter(x, type || (x.length ? inferType(x) || 25 : 0), options.shared.typeArrayMap)\n }\n\n function handler(query) {\n if (ending)\n return query.reject(Errors.connection('CONNECTION_ENDED', options, options))\n\n if (open.length)\n return go(open.shift(), query)\n\n if (closed.length)\n return connect(closed.shift(), query)\n\n busy.length\n ? go(busy.shift(), query)\n : queries.push(query)\n }\n\n function go(c, query) {\n return c.execute(query)\n ? move(c, busy)\n : move(c, full)\n }\n\n function cancel(query) {\n return new Promise((resolve, reject) => {\n query.state\n ? query.active\n ? Connection(options).cancel(query.state, resolve, reject)\n : query.cancelled = { resolve, reject }\n : (\n queries.remove(query),\n query.cancelled = true,\n query.reject(Errors.generic('57014', 'canceling statement due to user request')),\n resolve()\n )\n })\n }\n\n async function end({ timeout = null } = {}) {\n if (ending)\n return ending\n\n await 1\n let timer\n return ending = Promise.race([\n new Promise(r => timeout !== null && (timer = setTimeout(destroy, timeout * 1000, r))),\n Promise.all(connections.map(c => c.end()).concat(\n listen.sql ? listen.sql.end({ timeout: 0 }) : [],\n subscribe.sql ? subscribe.sql.end({ timeout: 0 }) : []\n ))\n ]).then(() => clearTimeout(timer))\n }\n\n async function close() {\n await Promise.all(connections.map(c => c.end()))\n }\n\n async function destroy(resolve) {\n await Promise.all(connections.map(c => c.terminate()))\n while (queries.length)\n queries.shift().reject(Errors.connection('CONNECTION_DESTROYED', options))\n resolve()\n }\n\n function connect(c, query) {\n move(c, connecting)\n c.connect(query)\n return c\n }\n\n function onend(c) {\n move(c, ended)\n }\n\n function onopen(c) {\n if (queries.length === 0)\n return move(c, open)\n\n let max = Math.ceil(queries.length / (connecting.length + 1))\n , ready = true\n\n while (ready && queries.length && max-- > 0) {\n const query = queries.shift()\n if (query.reserve)\n return query.reserve(c)\n\n ready = c.execute(query)\n }\n\n ready\n ? move(c, busy)\n : move(c, full)\n }\n\n function onclose(c, e) {\n move(c, closed)\n c.reserved = null\n c.onclose && (c.onclose(e), c.onclose = null)\n options.onclose && options.onclose(c.id)\n queries.length && connect(c, queries.shift())\n }\n}\n\nfunction parseOptions(a, b) {\n if (a && a.shared)\n return a\n\n const env = process.env // eslint-disable-line\n , o = (!a || typeof a === 'string' ? b : a) || {}\n , { url, multihost } = parseUrl(a)\n , query = [...url.searchParams].reduce((a, [b, c]) => (a[b] = c, a), {})\n , host = o.hostname || o.host || multihost || url.hostname || env.PGHOST || 'localhost'\n , port = o.port || url.port || env.PGPORT || 5432\n , user = o.user || o.username || url.username || env.PGUSERNAME || env.PGUSER || osUsername()\n\n o.no_prepare && (o.prepare = false)\n query.sslmode && (query.ssl = query.sslmode, delete query.sslmode)\n 'timeout' in o && (console.log('The timeout option is deprecated, use idle_timeout instead'), o.idle_timeout = o.timeout) // eslint-disable-line\n query.sslrootcert === 'system' && (query.ssl = 'verify-full')\n\n const ints = ['idle_timeout', 'connect_timeout', 'max_lifetime', 'max_pipeline', 'backoff', 'keep_alive']\n const defaults = {\n max : globalThis.Cloudflare ? 3 : 10,\n ssl : false,\n sslnegotiation : null,\n idle_timeout : null,\n connect_timeout : 30,\n max_lifetime : max_lifetime,\n max_pipeline : 100,\n backoff : backoff,\n keep_alive : 60,\n prepare : true,\n debug : false,\n fetch_types : true,\n publications : 'alltables',\n target_session_attrs: null\n }\n\n return {\n host : Array.isArray(host) ? host : host.split(',').map(x => x.split(':')[0]),\n port : Array.isArray(port) ? port : host.split(',').map(x => parseInt(x.split(':')[1] || port)),\n path : o.path || host.indexOf('/') > -1 && host + '/.s.PGSQL.' + port,\n database : o.database || o.db || (url.pathname || '').slice(1) || env.PGDATABASE || user,\n user : user,\n pass : o.pass || o.password || url.password || env.PGPASSWORD || '',\n ...Object.entries(defaults).reduce(\n (acc, [k, d]) => {\n const value = k in o ? o[k] : k in query\n ? (query[k] === 'disable' || query[k] === 'false' ? false : query[k])\n : env['PG' + k.toUpperCase()] || d\n acc[k] = typeof value === 'string' && ints.includes(k)\n ? +value\n : value\n return acc\n },\n {}\n ),\n connection : {\n application_name: env.PGAPPNAME || 'postgres.js',\n ...o.connection,\n ...Object.entries(query).reduce((acc, [k, v]) => (k in defaults || (acc[k] = v), acc), {})\n },\n types : o.types || {},\n target_session_attrs: tsa(o, url, env),\n onnotice : o.onnotice,\n onnotify : o.onnotify,\n onclose : o.onclose,\n onparameter : o.onparameter,\n socket : o.socket,\n transform : parseTransform(o.transform || { undefined: undefined }),\n parameters : {},\n shared : { retries: 0, typeArrayMap: {} },\n ...mergeUserTypes(o.types)\n }\n}\n\nfunction tsa(o, url, env) {\n const x = o.target_session_attrs || url.searchParams.get('target_session_attrs') || env.PGTARGETSESSIONATTRS\n if (!x || ['read-write', 'read-only', 'primary', 'standby', 'prefer-standby'].includes(x))\n return x\n\n throw new Error('target_session_attrs ' + x + ' is not supported')\n}\n\nfunction backoff(retries) {\n return (0.5 + Math.random() / 2) * Math.min(3 ** retries / 100, 20)\n}\n\nfunction max_lifetime() {\n return 60 * (30 + Math.random() * 30)\n}\n\nfunction parseTransform(x) {\n return {\n undefined: x.undefined,\n column: {\n from: typeof x.column === 'function' ? x.column : x.column && x.column.from,\n to: x.column && x.column.to\n },\n value: {\n from: typeof x.value === 'function' ? x.value : x.value && x.value.from,\n to: x.value && x.value.to\n },\n row: {\n from: typeof x.row === 'function' ? x.row : x.row && x.row.from,\n to: x.row && x.row.to\n }\n }\n}\n\nfunction parseUrl(url) {\n if (!url || typeof url !== 'string')\n return { url: { searchParams: new Map() } }\n\n let host = url\n host = host.slice(host.indexOf('://') + 3).split(/[?/]/)[0]\n host = decodeURIComponent(host.slice(host.indexOf('@') + 1))\n\n const urlObj = new URL(url.replace(host, host.split(',')[0]))\n\n return {\n url: {\n username: decodeURIComponent(urlObj.username),\n password: decodeURIComponent(urlObj.password),\n host: urlObj.host,\n hostname: urlObj.hostname,\n port: urlObj.port,\n pathname: urlObj.pathname,\n searchParams: urlObj.searchParams\n },\n multihost: host.indexOf(',') > -1 && host\n }\n}\n\nfunction osUsername() {\n try {\n return os.userInfo().username // eslint-disable-line\n } catch (_) {\n return process.env.USERNAME || process.env.USER || process.env.LOGNAME // eslint-disable-line\n }\n}\n",
|
|
6
|
+
"const originCache = new Map()\n , originStackCache = new Map()\n , originError = Symbol('OriginError')\n\nexport const CLOSE = {}\nexport class Query extends Promise {\n constructor(strings, args, handler, canceller, options = {}) {\n let resolve\n , reject\n\n super((a, b) => {\n resolve = a\n reject = b\n })\n\n this.tagged = Array.isArray(strings.raw)\n this.strings = strings\n this.args = args\n this.handler = handler\n this.canceller = canceller\n this.options = options\n\n this.state = null\n this.statement = null\n\n this.resolve = x => (this.active = false, resolve(x))\n this.reject = x => (this.active = false, reject(x))\n\n this.active = false\n this.cancelled = null\n this.executed = false\n this.signature = ''\n\n this[originError] = this.handler.debug\n ? new Error()\n : this.tagged && cachedError(this.strings)\n }\n\n get origin() {\n return (this.handler.debug\n ? this[originError].stack\n : this.tagged && originStackCache.has(this.strings)\n ? originStackCache.get(this.strings)\n : originStackCache.set(this.strings, this[originError].stack).get(this.strings)\n ) || ''\n }\n\n static get [Symbol.species]() {\n return Promise\n }\n\n cancel() {\n return this.canceller && (this.canceller(this), this.canceller = null)\n }\n\n simple() {\n this.options.simple = true\n this.options.prepare = false\n return this\n }\n\n async readable() {\n this.simple()\n this.streaming = true\n return this\n }\n\n async writable() {\n this.simple()\n this.streaming = true\n return this\n }\n\n cursor(rows = 1, fn) {\n this.options.simple = false\n if (typeof rows === 'function') {\n fn = rows\n rows = 1\n }\n\n this.cursorRows = rows\n\n if (typeof fn === 'function')\n return (this.cursorFn = fn, this)\n\n let prev\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => {\n if (this.executed && !this.active)\n return { done: true }\n\n prev && prev()\n const promise = new Promise((resolve, reject) => {\n this.cursorFn = value => {\n resolve({ value, done: false })\n return new Promise(r => prev = r)\n }\n this.resolve = () => (this.active = false, resolve({ done: true }))\n this.reject = x => (this.active = false, reject(x))\n })\n this.execute()\n return promise\n },\n return() {\n prev && prev(CLOSE)\n return { done: true }\n }\n })\n }\n }\n\n describe() {\n this.options.simple = false\n this.onlyDescribe = this.options.prepare = true\n return this\n }\n\n stream() {\n throw new Error('.stream has been renamed to .forEach')\n }\n\n forEach(fn) {\n this.forEachFn = fn\n this.handle()\n return this\n }\n\n raw() {\n this.isRaw = true\n return this\n }\n\n values() {\n this.isRaw = 'values'\n return this\n }\n\n async handle() {\n !this.executed && (this.executed = true) && await 1 && this.handler(this)\n }\n\n execute() {\n this.handle()\n return this\n }\n\n then() {\n this.handle()\n return super.then.apply(this, arguments)\n }\n\n catch() {\n this.handle()\n return super.catch.apply(this, arguments)\n }\n\n finally() {\n this.handle()\n return super.finally.apply(this, arguments)\n }\n}\n\nfunction cachedError(xs) {\n if (originCache.has(xs))\n return originCache.get(xs)\n\n const x = Error.stackTraceLimit\n Error.stackTraceLimit = 4\n originCache.set(xs, new Error())\n Error.stackTraceLimit = x\n return originCache.get(xs)\n}\n",
|
|
7
|
+
"export class PostgresError extends Error {\n constructor(x) {\n super(x.message)\n this.name = this.constructor.name\n Object.assign(this, x)\n }\n}\n\nexport const Errors = {\n connection,\n postgres,\n generic,\n notSupported\n}\n\nfunction connection(x, options, socket) {\n const { host, port } = socket || options\n const error = Object.assign(\n new Error(('write ' + x + ' ' + (options.path || (host + ':' + port)))),\n {\n code: x,\n errno: x,\n address: options.path || host\n }, options.path ? {} : { port: port }\n )\n Error.captureStackTrace(error, connection)\n return error\n}\n\nfunction postgres(x) {\n const error = new PostgresError(x)\n Error.captureStackTrace(error, postgres)\n return error\n}\n\nfunction generic(code, message) {\n const error = Object.assign(new Error(code + ': ' + message), { code })\n Error.captureStackTrace(error, generic)\n return error\n}\n\n/* c8 ignore next 10 */\nfunction notSupported(x) {\n const error = Object.assign(\n new Error(x + ' (B) is not supported'),\n {\n code: 'MESSAGE_NOT_SUPPORTED',\n name: x\n }\n )\n Error.captureStackTrace(error, notSupported)\n return error\n}\n",
|
|
8
|
+
"import { Query } from './query.js'\nimport { Errors } from './errors.js'\n\nexport const types = {\n string: {\n to: 25,\n from: null, // defaults to string\n serialize: x => '' + x\n },\n number: {\n to: 0,\n from: [21, 23, 26, 700, 701],\n serialize: x => '' + x,\n parse: x => +x\n },\n json: {\n to: 114,\n from: [114, 3802],\n serialize: x => JSON.stringify(x),\n parse: x => JSON.parse(x)\n },\n boolean: {\n to: 16,\n from: 16,\n serialize: x => x === true ? 't' : 'f',\n parse: x => x === 't'\n },\n date: {\n to: 1184,\n from: [1082, 1114, 1184],\n serialize: x => (x instanceof Date ? x : new Date(x)).toISOString(),\n parse: x => new Date(x)\n },\n bytea: {\n to: 17,\n from: 17,\n serialize: x => '\\\\x' + Buffer.from(x).toString('hex'),\n parse: x => Buffer.from(x.slice(2), 'hex')\n }\n}\n\nclass NotTagged { then() { notTagged() } catch() { notTagged() } finally() { notTagged() }}\n\nexport class Identifier extends NotTagged {\n constructor(value) {\n super()\n this.value = escapeIdentifier(value)\n }\n}\n\nexport class Parameter extends NotTagged {\n constructor(value, type, array) {\n super()\n this.value = value\n this.type = type\n this.array = array\n }\n}\n\nexport class Builder extends NotTagged {\n constructor(first, rest) {\n super()\n this.first = first\n this.rest = rest\n }\n\n build(before, parameters, types, options) {\n const keyword = builders.map(([x, fn]) => ({ fn, i: before.search(x) })).sort((a, b) => a.i - b.i).pop()\n return keyword.i === -1\n ? escapeIdentifiers(this.first, options)\n : keyword.fn(this.first, this.rest, parameters, types, options)\n }\n}\n\nexport function handleValue(x, parameters, types, options) {\n let value = x instanceof Parameter ? x.value : x\n if (value === undefined) {\n x instanceof Parameter\n ? x.value = options.transform.undefined\n : value = x = options.transform.undefined\n\n if (value === undefined)\n throw Errors.generic('UNDEFINED_VALUE', 'Undefined values are not allowed')\n }\n\n return '$' + (types.push(\n x instanceof Parameter\n ? (parameters.push(x.value), x.array\n ? x.array[x.type || inferType(x.value)] || x.type || firstIsString(x.value)\n : x.type\n )\n : (parameters.push(x), inferType(x))\n ))\n}\n\nconst defaultHandlers = typeHandlers(types)\n\nexport function stringify(q, string, value, parameters, types, options) { // eslint-disable-line\n for (let i = 1; i < q.strings.length; i++) {\n string += (stringifyValue(string, value, parameters, types, options)) + q.strings[i]\n value = q.args[i]\n }\n\n return string\n}\n\nfunction stringifyValue(string, value, parameters, types, o) {\n return (\n value instanceof Builder ? value.build(string, parameters, types, o) :\n value instanceof Query ? fragment(value, parameters, types, o) :\n value instanceof Identifier ? value.value :\n value && value[0] instanceof Query ? value.reduce((acc, x) => acc + ' ' + fragment(x, parameters, types, o), '') :\n handleValue(value, parameters, types, o)\n )\n}\n\nfunction fragment(q, parameters, types, options) {\n q.fragment = true\n return stringify(q, q.strings[0], q.args[0], parameters, types, options)\n}\n\nfunction valuesBuilder(first, parameters, types, columns, options) {\n return first.map(row =>\n '(' + columns.map(column =>\n stringifyValue('values', row[column], parameters, types, options)\n ).join(',') + ')'\n ).join(',')\n}\n\nfunction values(first, rest, parameters, types, options) {\n const multi = Array.isArray(first[0])\n const columns = rest.length ? rest.flat() : Object.keys(multi ? first[0] : first)\n return valuesBuilder(multi ? first : [first], parameters, types, columns, options)\n}\n\nfunction select(first, rest, parameters, types, options) {\n typeof first === 'string' && (first = [first].concat(rest))\n if (Array.isArray(first))\n return escapeIdentifiers(first, options)\n\n let value\n const columns = rest.length ? rest.flat() : Object.keys(first)\n return columns.map(x => {\n value = first[x]\n return (\n value instanceof Query ? fragment(value, parameters, types, options) :\n value instanceof Identifier ? value.value :\n handleValue(value, parameters, types, options)\n ) + ' as ' + escapeIdentifier(options.transform.column.to ? options.transform.column.to(x) : x)\n }).join(',')\n}\n\nconst builders = Object.entries({\n values,\n in: (...xs) => {\n const x = values(...xs)\n return x === '()' ? '(null)' : x\n },\n select,\n as: select,\n returning: select,\n '\\\\(': select,\n\n update(first, rest, parameters, types, options) {\n return (rest.length ? rest.flat() : Object.keys(first)).map(x =>\n escapeIdentifier(options.transform.column.to ? options.transform.column.to(x) : x) +\n '=' + stringifyValue('values', first[x], parameters, types, options)\n )\n },\n\n insert(first, rest, parameters, types, options) {\n const columns = rest.length ? rest.flat() : Object.keys(Array.isArray(first) ? first[0] : first)\n return '(' + escapeIdentifiers(columns, options) + ')values' +\n valuesBuilder(Array.isArray(first) ? first : [first], parameters, types, columns, options)\n }\n}).map(([x, fn]) => ([new RegExp('((?:^|[\\\\s(])' + x + '(?:$|[\\\\s(]))(?![\\\\s\\\\S]*\\\\1)', 'i'), fn]))\n\nfunction notTagged() {\n throw Errors.generic('NOT_TAGGED_CALL', 'Query not called as a tagged template literal')\n}\n\nexport const serializers = defaultHandlers.serializers\nexport const parsers = defaultHandlers.parsers\n\nexport const END = {}\n\nfunction firstIsString(x) {\n if (Array.isArray(x))\n return firstIsString(x[0])\n return typeof x === 'string' ? 1009 : 0\n}\n\nexport const mergeUserTypes = function(types) {\n const user = typeHandlers(types || {})\n return {\n serializers: Object.assign({}, serializers, user.serializers),\n parsers: Object.assign({}, parsers, user.parsers)\n }\n}\n\nfunction typeHandlers(types) {\n return Object.keys(types).reduce((acc, k) => {\n types[k].from && [].concat(types[k].from).forEach(x => acc.parsers[x] = types[k].parse)\n if (types[k].serialize) {\n acc.serializers[types[k].to] = types[k].serialize\n types[k].from && [].concat(types[k].from).forEach(x => acc.serializers[x] = types[k].serialize)\n }\n return acc\n }, { parsers: {}, serializers: {} })\n}\n\nfunction escapeIdentifiers(xs, { transform: { column } }) {\n return xs.map(x => escapeIdentifier(column.to ? column.to(x) : x)).join(',')\n}\n\nexport const escapeIdentifier = function escape(str) {\n return '\"' + str.replace(/\"/g, '\"\"').replace(/\\./g, '\".\"') + '\"'\n}\n\nexport const inferType = function inferType(x) {\n return (\n x instanceof Parameter ? x.type :\n x instanceof Date ? 1184 :\n x instanceof Uint8Array ? 17 :\n (x === true || x === false) ? 16 :\n typeof x === 'bigint' ? 20 :\n Array.isArray(x) ? inferType(x[0]) :\n 0\n )\n}\n\nconst escapeBackslash = /\\\\/g\nconst escapeQuote = /\"/g\n\nfunction arrayEscape(x) {\n return x\n .replace(escapeBackslash, '\\\\\\\\')\n .replace(escapeQuote, '\\\\\"')\n}\n\nexport const arraySerializer = function arraySerializer(xs, serializer, options, typarray) {\n if (Array.isArray(xs) === false)\n return xs\n\n if (!xs.length)\n return '{}'\n\n const first = xs[0]\n // Only _box (1020) has the ';' delimiter for arrays, all other types use the ',' delimiter\n const delimiter = typarray === 1020 ? ';' : ','\n\n if (Array.isArray(first) && !first.type)\n return '{' + xs.map(x => arraySerializer(x, serializer, options, typarray)).join(delimiter) + '}'\n\n return '{' + xs.map(x => {\n if (x === undefined) {\n x = options.transform.undefined\n if (x === undefined)\n throw Errors.generic('UNDEFINED_VALUE', 'Undefined values are not allowed')\n }\n\n return x === null\n ? 'null'\n : '\"' + arrayEscape(serializer ? serializer(x.type ? x.value : x) : '' + x) + '\"'\n }).join(delimiter) + '}'\n}\n\nconst arrayParserState = {\n i: 0,\n char: null,\n str: '',\n quoted: false,\n last: 0\n}\n\nexport const arrayParser = function arrayParser(x, parser, typarray) {\n arrayParserState.i = arrayParserState.last = 0\n return arrayParserLoop(arrayParserState, x, parser, typarray)\n}\n\nfunction arrayParserLoop(s, x, parser, typarray) {\n const xs = []\n // Only _box (1020) has the ';' delimiter for arrays, all other types use the ',' delimiter\n const delimiter = typarray === 1020 ? ';' : ','\n for (; s.i < x.length; s.i++) {\n s.char = x[s.i]\n if (s.quoted) {\n if (s.char === '\\\\') {\n s.str += x[++s.i]\n } else if (s.char === '\"') {\n xs.push(parser ? parser(s.str) : s.str)\n s.str = ''\n s.quoted = x[s.i + 1] === '\"'\n s.last = s.i + 2\n } else {\n s.str += s.char\n }\n } else if (s.char === '\"') {\n s.quoted = true\n } else if (s.char === '{') {\n s.last = ++s.i\n xs.push(arrayParserLoop(s, x, parser, typarray))\n } else if (s.char === '}') {\n s.quoted = false\n s.last < s.i && xs.push(parser ? parser(x.slice(s.last, s.i)) : x.slice(s.last, s.i))\n s.last = s.i + 1\n break\n } else if (s.char === delimiter && s.p !== '}' && s.p !== '\"') {\n xs.push(parser ? parser(x.slice(s.last, s.i)) : x.slice(s.last, s.i))\n s.last = s.i + 1\n }\n s.p = s.char\n }\n s.last < s.i && xs.push(parser ? parser(x.slice(s.last, s.i + 1)) : x.slice(s.last, s.i + 1))\n return xs\n}\n\nexport const toCamel = x => {\n let str = x[0]\n for (let i = 1; i < x.length; i++)\n str += x[i] === '_' ? x[++i].toUpperCase() : x[i]\n return str\n}\n\nexport const toPascal = x => {\n let str = x[0].toUpperCase()\n for (let i = 1; i < x.length; i++)\n str += x[i] === '_' ? x[++i].toUpperCase() : x[i]\n return str\n}\n\nexport const toKebab = x => x.replace(/_/g, '-')\n\nexport const fromCamel = x => x.replace(/([A-Z])/g, '_$1').toLowerCase()\nexport const fromPascal = x => (x.slice(0, 1) + x.slice(1).replace(/([A-Z])/g, '_$1')).toLowerCase()\nexport const fromKebab = x => x.replace(/-/g, '_')\n\nfunction createJsonTransform(fn) {\n return function jsonTransform(x, column) {\n return typeof x === 'object' && x !== null && (column.type === 114 || column.type === 3802)\n ? Array.isArray(x)\n ? x.map(x => jsonTransform(x, column))\n : Object.entries(x).reduce((acc, [k, v]) => Object.assign(acc, { [fn(k)]: jsonTransform(v, column) }), {})\n : x\n }\n}\n\ntoCamel.column = { from: toCamel }\ntoCamel.value = { from: createJsonTransform(toCamel) }\nfromCamel.column = { to: fromCamel }\n\nexport const camel = { ...toCamel }\ncamel.column.to = fromCamel\n\ntoPascal.column = { from: toPascal }\ntoPascal.value = { from: createJsonTransform(toPascal) }\nfromPascal.column = { to: fromPascal }\n\nexport const pascal = { ...toPascal }\npascal.column.to = fromPascal\n\ntoKebab.column = { from: toKebab }\ntoKebab.value = { from: createJsonTransform(toKebab) }\nfromKebab.column = { to: fromKebab }\n\nexport const kebab = { ...toKebab }\nkebab.column.to = fromKebab\n",
|
|
9
|
+
"import net from 'net'\nimport tls from 'tls'\nimport crypto from 'crypto'\nimport Stream from 'stream'\nimport { performance } from 'perf_hooks'\n\nimport { stringify, handleValue, arrayParser, arraySerializer } from './types.js'\nimport { Errors } from './errors.js'\nimport Result from './result.js'\nimport Queue from './queue.js'\nimport { Query, CLOSE } from './query.js'\nimport b from './bytes.js'\n\nexport default Connection\n\nlet uid = 1\n\nconst Sync = b().S().end()\n , Flush = b().H().end()\n , SSLRequest = b().i32(8).i32(80877103).end(8)\n , ExecuteUnnamed = Buffer.concat([b().E().str(b.N).i32(0).end(), Sync])\n , DescribeUnnamed = b().D().str('S').str(b.N).end()\n , noop = () => { /* noop */ }\n\nconst retryRoutines = new Set([\n 'FetchPreparedStatement',\n 'RevalidateCachedQuery',\n 'transformAssignedExpr'\n])\n\nconst errorFields = {\n 83 : 'severity_local', // S\n 86 : 'severity', // V\n 67 : 'code', // C\n 77 : 'message', // M\n 68 : 'detail', // D\n 72 : 'hint', // H\n 80 : 'position', // P\n 112 : 'internal_position', // p\n 113 : 'internal_query', // q\n 87 : 'where', // W\n 115 : 'schema_name', // s\n 116 : 'table_name', // t\n 99 : 'column_name', // c\n 100 : 'data type_name', // d\n 110 : 'constraint_name', // n\n 70 : 'file', // F\n 76 : 'line', // L\n 82 : 'routine' // R\n}\n\nfunction Connection(options, queues = {}, { onopen = noop, onend = noop, onclose = noop } = {}) {\n const {\n sslnegotiation,\n ssl,\n max,\n user,\n host,\n port,\n database,\n parsers,\n transform,\n onnotice,\n onnotify,\n onparameter,\n max_pipeline,\n keep_alive,\n backoff,\n target_session_attrs\n } = options\n\n const sent = Queue()\n , id = uid++\n , backend = { pid: null, secret: null }\n , idleTimer = timer(end, options.idle_timeout)\n , lifeTimer = timer(end, options.max_lifetime)\n , connectTimer = timer(connectTimedOut, options.connect_timeout)\n\n let socket = null\n , cancelMessage\n , errorResponse = null\n , result = new Result()\n , incoming = Buffer.alloc(0)\n , needsTypes = options.fetch_types\n , backendParameters = {}\n , statements = {}\n , statementId = Math.random().toString(36).slice(2)\n , statementCount = 1\n , closedTime = 0\n , remaining = 0\n , hostIndex = 0\n , retries = 0\n , length = 0\n , delay = 0\n , rows = 0\n , serverSignature = null\n , nextWriteTimer = null\n , terminated = false\n , incomings = null\n , results = null\n , initial = null\n , ending = null\n , stream = null\n , chunk = null\n , ended = null\n , nonce = null\n , query = null\n , final = null\n\n const connection = {\n queue: queues.closed,\n idleTimer,\n connect(query) {\n initial = query\n reconnect()\n },\n terminate,\n execute,\n cancel,\n end,\n count: 0,\n id\n }\n\n queues.closed && queues.closed.push(connection)\n\n return connection\n\n async function createSocket() {\n let x\n try {\n x = options.socket\n ? (await Promise.resolve(options.socket(options)))\n : new net.Socket()\n } catch (e) {\n error(e)\n return\n }\n x.on('error', error)\n x.on('close', closed)\n x.on('drain', drain)\n return x\n }\n\n async function cancel({ pid, secret }, resolve, reject) {\n try {\n cancelMessage = b().i32(16).i32(80877102).i32(pid).i32(secret).end(16)\n await connect()\n socket.once('error', reject)\n socket.once('close', resolve)\n } catch (error) {\n reject(error)\n }\n }\n\n function execute(q) {\n if (terminated)\n return queryError(q, Errors.connection('CONNECTION_DESTROYED', options))\n\n if (stream)\n return queryError(q, Errors.generic('COPY_IN_PROGRESS', 'You cannot execute queries during copy'))\n\n if (q.cancelled)\n return\n\n try {\n q.state = backend\n query\n ? sent.push(q)\n : (query = q, query.active = true)\n\n build(q)\n return write(toBuffer(q))\n && !q.describeFirst\n && !q.cursorFn\n && sent.length < max_pipeline\n && (!q.options.onexecute || q.options.onexecute(connection))\n } catch (error) {\n sent.length === 0 && write(Sync)\n errored(error)\n return true\n }\n }\n\n function toBuffer(q) {\n if (q.parameters.length >= 65534)\n throw Errors.generic('MAX_PARAMETERS_EXCEEDED', 'Max number of parameters (65534) exceeded')\n\n return q.options.simple\n ? b().Q().str(q.statement.string + b.N).end()\n : q.describeFirst\n ? Buffer.concat([describe(q), Flush])\n : q.prepare\n ? q.prepared\n ? prepared(q)\n : Buffer.concat([describe(q), prepared(q)])\n : unnamed(q)\n }\n\n function describe(q) {\n return Buffer.concat([\n Parse(q.statement.string, q.parameters, q.statement.types, q.statement.name),\n Describe('S', q.statement.name)\n ])\n }\n\n function prepared(q) {\n return Buffer.concat([\n Bind(q.parameters, q.statement.types, q.statement.name, q.cursorName),\n q.cursorFn\n ? Execute('', q.cursorRows)\n : ExecuteUnnamed\n ])\n }\n\n function unnamed(q) {\n return Buffer.concat([\n Parse(q.statement.string, q.parameters, q.statement.types),\n DescribeUnnamed,\n prepared(q)\n ])\n }\n\n function build(q) {\n const parameters = []\n , types = []\n\n const string = stringify(q, q.strings[0], q.args[0], parameters, types, options)\n\n !q.tagged && q.args.forEach(x => handleValue(x, parameters, types, options))\n\n q.prepare = options.prepare && ('prepare' in q.options ? q.options.prepare : true)\n q.string = string\n q.signature = q.prepare && types + string\n q.onlyDescribe && (delete statements[q.signature])\n q.parameters = q.parameters || parameters\n q.prepared = q.prepare && q.signature in statements\n q.describeFirst = q.onlyDescribe || (parameters.length && !q.prepared)\n q.statement = q.prepared\n ? statements[q.signature]\n : { string, types, name: q.prepare ? statementId + statementCount++ : '' }\n\n typeof options.debug === 'function' && options.debug(id, string, parameters, types)\n }\n\n function write(x, fn) {\n chunk = chunk ? Buffer.concat([chunk, x]) : Buffer.from(x)\n if (fn || chunk.length >= 1024)\n return nextWrite(fn)\n nextWriteTimer === null && (nextWriteTimer = setImmediate(nextWrite))\n return true\n }\n\n function nextWrite(fn) {\n const x = socket.write(chunk, fn)\n nextWriteTimer !== null && clearImmediate(nextWriteTimer)\n chunk = nextWriteTimer = null\n return x\n }\n\n function connectTimedOut() {\n errored(Errors.connection('CONNECT_TIMEOUT', options, socket))\n socket.destroy()\n }\n\n async function secure() {\n if (sslnegotiation !== 'direct') {\n write(SSLRequest)\n const canSSL = await new Promise(r => socket.once('data', x => r(x[0] === 83))) // S\n\n if (!canSSL && ssl === 'prefer')\n return connected()\n }\n\n const options = {\n socket,\n servername: net.isIP(socket.host) ? undefined : socket.host\n }\n\n if (sslnegotiation === 'direct')\n options.ALPNProtocols = ['postgresql']\n\n if (ssl === 'require' || ssl === 'allow' || ssl === 'prefer')\n options.rejectUnauthorized = false\n else if (typeof ssl === 'object')\n Object.assign(options, ssl)\n\n socket.removeAllListeners()\n socket = tls.connect(options)\n socket.on('secureConnect', connected)\n socket.on('error', error)\n socket.on('close', closed)\n socket.on('drain', drain)\n }\n\n /* c8 ignore next 3 */\n function drain() {\n !query && onopen(connection)\n }\n\n function data(x) {\n if (incomings) {\n incomings.push(x)\n remaining -= x.length\n if (remaining > 0)\n return\n }\n\n incoming = incomings\n ? Buffer.concat(incomings, length - remaining)\n : incoming.length === 0\n ? x\n : Buffer.concat([incoming, x], incoming.length + x.length)\n\n while (incoming.length > 4) {\n length = incoming.readUInt32BE(1)\n if (length >= incoming.length) {\n remaining = length - incoming.length\n incomings = [incoming]\n break\n }\n\n try {\n handle(incoming.subarray(0, length + 1))\n } catch (e) {\n query && (query.cursorFn || query.describeFirst) && write(Sync)\n errored(e)\n }\n incoming = incoming.subarray(length + 1)\n remaining = 0\n incomings = null\n }\n }\n\n async function connect() {\n terminated = false\n backendParameters = {}\n socket || (socket = await createSocket())\n\n if (!socket)\n return\n\n connectTimer.start()\n\n if (options.socket)\n return ssl ? secure() : connected()\n\n socket.on('connect', ssl ? secure : connected)\n\n if (options.path)\n return socket.connect(options.path)\n\n socket.ssl = ssl\n socket.connect(port[hostIndex], host[hostIndex])\n socket.host = host[hostIndex]\n socket.port = port[hostIndex]\n\n hostIndex = (hostIndex + 1) % port.length\n }\n\n function reconnect() {\n setTimeout(connect, closedTime ? Math.max(0, closedTime + delay - performance.now()) : 0)\n }\n\n function connected() {\n try {\n statements = {}\n needsTypes = options.fetch_types\n statementId = Math.random().toString(36).slice(2)\n statementCount = 1\n lifeTimer.start()\n socket.on('data', data)\n keep_alive && socket.setKeepAlive && socket.setKeepAlive(true, 1000 * keep_alive)\n const s = StartupMessage()\n write(s)\n } catch (err) {\n error(err)\n }\n }\n\n function error(err) {\n if (connection.queue === queues.connecting && options.host[retries + 1])\n return\n\n errored(err)\n while (sent.length)\n queryError(sent.shift(), err)\n }\n\n function errored(err) {\n stream && (stream.destroy(err), stream = null)\n query && queryError(query, err)\n initial && (queryError(initial, err), initial = null)\n }\n\n function queryError(query, err) {\n if (query.reserve)\n return query.reject(err)\n\n if (!err || typeof err !== 'object')\n err = new Error(err)\n\n 'query' in err || 'parameters' in err || Object.defineProperties(err, {\n stack: { value: err.stack + query.origin.replace(/.*\\n/, '\\n'), enumerable: options.debug },\n query: { value: query.string, enumerable: options.debug },\n parameters: { value: query.parameters, enumerable: options.debug },\n args: { value: query.args, enumerable: options.debug },\n types: { value: query.statement && query.statement.types, enumerable: options.debug }\n })\n query.reject(err)\n }\n\n function end() {\n return ending || (\n !connection.reserved && onend(connection),\n !connection.reserved && !initial && !query && sent.length === 0\n ? (terminate(), new Promise(r => socket && socket.readyState !== 'closed' ? socket.once('close', r) : r()))\n : ending = new Promise(r => ended = r)\n )\n }\n\n function terminate() {\n terminated = true\n if (stream || query || initial || sent.length)\n error(Errors.connection('CONNECTION_DESTROYED', options))\n\n clearImmediate(nextWriteTimer)\n if (socket) {\n socket.removeListener('data', data)\n socket.removeListener('connect', connected)\n socket.readyState === 'open' && socket.end(b().X().end())\n }\n ended && (ended(), ending = ended = null)\n }\n\n async function closed(hadError) {\n incoming = Buffer.alloc(0)\n remaining = 0\n incomings = null\n clearImmediate(nextWriteTimer)\n socket.removeListener('data', data)\n socket.removeListener('connect', connected)\n idleTimer.cancel()\n lifeTimer.cancel()\n connectTimer.cancel()\n\n socket.removeAllListeners()\n socket = null\n\n if (initial)\n return reconnect()\n\n !hadError && (query || sent.length) && error(Errors.connection('CONNECTION_CLOSED', options, socket))\n closedTime = performance.now()\n hadError && options.shared.retries++\n delay = (typeof backoff === 'function' ? backoff(options.shared.retries) : backoff) * 1000\n onclose(connection, Errors.connection('CONNECTION_CLOSED', options, socket))\n }\n\n /* Handlers */\n function handle(xs, x = xs[0]) {\n (\n x === 68 ? DataRow : // D\n x === 100 ? CopyData : // d\n x === 65 ? NotificationResponse : // A\n x === 83 ? ParameterStatus : // S\n x === 90 ? ReadyForQuery : // Z\n x === 67 ? CommandComplete : // C\n x === 50 ? BindComplete : // 2\n x === 49 ? ParseComplete : // 1\n x === 116 ? ParameterDescription : // t\n x === 84 ? RowDescription : // T\n x === 82 ? Authentication : // R\n x === 110 ? NoData : // n\n x === 75 ? BackendKeyData : // K\n x === 69 ? ErrorResponse : // E\n x === 115 ? PortalSuspended : // s\n x === 51 ? CloseComplete : // 3\n x === 71 ? CopyInResponse : // G\n x === 78 ? NoticeResponse : // N\n x === 72 ? CopyOutResponse : // H\n x === 99 ? CopyDone : // c\n x === 73 ? EmptyQueryResponse : // I\n x === 86 ? FunctionCallResponse : // V\n x === 118 ? NegotiateProtocolVersion : // v\n x === 87 ? CopyBothResponse : // W\n /* c8 ignore next */\n UnknownMessage\n )(xs)\n }\n\n function DataRow(x) {\n let index = 7\n let length\n let column\n let value\n\n const row = query.isRaw ? new Array(query.statement.columns.length) : {}\n for (let i = 0; i < query.statement.columns.length; i++) {\n column = query.statement.columns[i]\n length = x.readInt32BE(index)\n index += 4\n\n value = length === -1\n ? null\n : query.isRaw === true\n ? x.subarray(index, index += length)\n : column.parser === undefined\n ? x.toString('utf8', index, index += length)\n : column.parser.array === true\n ? column.parser(x.toString('utf8', index + 1, index += length))\n : column.parser(x.toString('utf8', index, index += length))\n\n query.isRaw\n ? (row[i] = query.isRaw === true\n ? value\n : transform.value.from ? transform.value.from(value, column) : value)\n : (row[column.name] = transform.value.from ? transform.value.from(value, column) : value)\n }\n\n query.forEachFn\n ? query.forEachFn(transform.row.from ? transform.row.from(row) : row, result)\n : (result[rows++] = transform.row.from ? transform.row.from(row) : row)\n }\n\n function ParameterStatus(x) {\n const [k, v] = x.toString('utf8', 5, x.length - 1).split(b.N)\n backendParameters[k] = v\n if (options.parameters[k] !== v) {\n options.parameters[k] = v\n onparameter && onparameter(k, v)\n }\n }\n\n function ReadyForQuery(x) {\n if (query) {\n if (errorResponse) {\n query.retried\n ? errored(query.retried)\n : query.prepared && retryRoutines.has(errorResponse.routine)\n ? retry(query, errorResponse)\n : errored(errorResponse)\n } else {\n query.resolve(results || result)\n }\n } else if (errorResponse) {\n errored(errorResponse)\n }\n\n query = results = errorResponse = null\n result = new Result()\n connectTimer.cancel()\n\n if (initial) {\n if (target_session_attrs) {\n if (!backendParameters.in_hot_standby || !backendParameters.default_transaction_read_only)\n return fetchState()\n else if (tryNext(target_session_attrs, backendParameters))\n return terminate()\n }\n\n if (needsTypes) {\n initial.reserve && (initial = null)\n return fetchArrayTypes()\n }\n\n initial && !initial.reserve && execute(initial)\n options.shared.retries = retries = 0\n initial = null\n return\n }\n\n while (sent.length && (query = sent.shift()) && (query.active = true, query.cancelled))\n Connection(options).cancel(query.state, query.cancelled.resolve, query.cancelled.reject)\n\n if (query)\n return // Consider opening if able and sent.length < 50\n\n connection.reserved\n ? !connection.reserved.release && x[5] === 73 // I\n ? ending\n ? terminate()\n : (connection.reserved = null, onopen(connection))\n : connection.reserved()\n : ending\n ? terminate()\n : onopen(connection)\n }\n\n function CommandComplete(x) {\n rows = 0\n\n for (let i = x.length - 1; i > 0; i--) {\n if (x[i] === 32 && x[i + 1] < 58 && result.count === null)\n result.count = +x.toString('utf8', i + 1, x.length - 1)\n if (x[i - 1] >= 65) {\n result.command = x.toString('utf8', 5, i)\n result.state = backend\n break\n }\n }\n\n final && (final(), final = null)\n\n if (result.command === 'BEGIN' && max !== 1 && !connection.reserved)\n return errored(Errors.generic('UNSAFE_TRANSACTION', 'Only use sql.begin, sql.reserved or max: 1'))\n\n if (query.options.simple)\n return BindComplete()\n\n if (query.cursorFn) {\n result.count && query.cursorFn(result)\n write(Sync)\n }\n }\n\n function ParseComplete() {\n query.parsing = false\n }\n\n function BindComplete() {\n !result.statement && (result.statement = query.statement)\n result.columns = query.statement.columns\n }\n\n function ParameterDescription(x) {\n const length = x.readUInt16BE(5)\n\n for (let i = 0; i < length; ++i)\n !query.statement.types[i] && (query.statement.types[i] = x.readUInt32BE(7 + i * 4))\n\n query.prepare && (statements[query.signature] = query.statement)\n query.describeFirst && !query.onlyDescribe && (write(prepared(query)), query.describeFirst = false)\n }\n\n function RowDescription(x) {\n if (result.command) {\n results = results || [result]\n results.push(result = new Result())\n result.count = null\n query.statement.columns = null\n }\n\n const length = x.readUInt16BE(5)\n let index = 7\n let start\n\n query.statement.columns = Array(length)\n\n for (let i = 0; i < length; ++i) {\n start = index\n while (x[index++] !== 0);\n const table = x.readUInt32BE(index)\n const number = x.readUInt16BE(index + 4)\n const type = x.readUInt32BE(index + 6)\n query.statement.columns[i] = {\n name: transform.column.from\n ? transform.column.from(x.toString('utf8', start, index - 1))\n : x.toString('utf8', start, index - 1),\n parser: parsers[type],\n table,\n number,\n type\n }\n index += 18\n }\n\n result.statement = query.statement\n if (query.onlyDescribe)\n return (query.resolve(query.statement), write(Sync))\n }\n\n async function Authentication(x, type = x.readUInt32BE(5)) {\n (\n type === 3 ? AuthenticationCleartextPassword :\n type === 5 ? AuthenticationMD5Password :\n type === 10 ? SASL :\n type === 11 ? SASLContinue :\n type === 12 ? SASLFinal :\n type !== 0 ? UnknownAuth :\n noop\n )(x, type)\n }\n\n /* c8 ignore next 5 */\n async function AuthenticationCleartextPassword() {\n const payload = await Pass()\n write(\n b().p().str(payload).z(1).end()\n )\n }\n\n async function AuthenticationMD5Password(x) {\n const payload = 'md5' + (\n await md5(\n Buffer.concat([\n Buffer.from(await md5((await Pass()) + user)),\n x.subarray(9)\n ])\n )\n )\n write(\n b().p().str(payload).z(1).end()\n )\n }\n\n async function SASL() {\n nonce = (await crypto.randomBytes(18)).toString('base64')\n b().p().str('SCRAM-SHA-256' + b.N)\n const i = b.i\n write(b.inc(4).str('n,,n=*,r=' + nonce).i32(b.i - i - 4, i).end())\n }\n\n async function SASLContinue(x) {\n const res = x.toString('utf8', 9).split(',').reduce((acc, x) => (acc[x[0]] = x.slice(2), acc), {})\n\n const saltedPassword = await crypto.pbkdf2Sync(\n await Pass(),\n Buffer.from(res.s, 'base64'),\n parseInt(res.i), 32,\n 'sha256'\n )\n\n const clientKey = await hmac(saltedPassword, 'Client Key')\n\n const auth = 'n=*,r=' + nonce + ','\n + 'r=' + res.r + ',s=' + res.s + ',i=' + res.i\n + ',c=biws,r=' + res.r\n\n serverSignature = (await hmac(await hmac(saltedPassword, 'Server Key'), auth)).toString('base64')\n\n const payload = 'c=biws,r=' + res.r + ',p=' + xor(\n clientKey, Buffer.from(await hmac(await sha256(clientKey), auth))\n ).toString('base64')\n\n write(\n b().p().str(payload).end()\n )\n }\n\n function SASLFinal(x) {\n if (x.toString('utf8', 9).split(b.N, 1)[0].slice(2) === serverSignature)\n return\n /* c8 ignore next 5 */\n errored(Errors.generic('SASL_SIGNATURE_MISMATCH', 'The server did not return the correct signature'))\n socket.destroy()\n }\n\n function Pass() {\n return Promise.resolve(typeof options.pass === 'function'\n ? options.pass()\n : options.pass\n )\n }\n\n function NoData() {\n result.statement = query.statement\n result.statement.columns = []\n if (query.onlyDescribe)\n return (query.resolve(query.statement), write(Sync))\n }\n\n function BackendKeyData(x) {\n backend.pid = x.readUInt32BE(5)\n backend.secret = x.readUInt32BE(9)\n }\n\n async function fetchArrayTypes() {\n needsTypes = false\n const types = await new Query([`\n select b.oid, b.typarray\n from pg_catalog.pg_type a\n left join pg_catalog.pg_type b on b.oid = a.typelem\n where a.typcategory = 'A'\n group by b.oid, b.typarray\n order by b.oid\n `], [], execute)\n types.forEach(({ oid, typarray }) => addArrayType(oid, typarray))\n }\n\n function addArrayType(oid, typarray) {\n if (!!options.parsers[typarray] && !!options.serializers[typarray]) return\n const parser = options.parsers[oid]\n options.shared.typeArrayMap[oid] = typarray\n options.parsers[typarray] = (xs) => arrayParser(xs, parser, typarray)\n options.parsers[typarray].array = true\n options.serializers[typarray] = (xs) => arraySerializer(xs, options.serializers[oid], options, typarray)\n }\n\n function tryNext(x, xs) {\n return (\n (x === 'read-write' && xs.default_transaction_read_only === 'on') ||\n (x === 'read-only' && xs.default_transaction_read_only === 'off') ||\n (x === 'primary' && xs.in_hot_standby === 'on') ||\n (x === 'standby' && xs.in_hot_standby === 'off') ||\n (x === 'prefer-standby' && xs.in_hot_standby === 'off' && options.host[retries])\n )\n }\n\n function fetchState() {\n const query = new Query([`\n show transaction_read_only;\n select pg_catalog.pg_is_in_recovery()\n `], [], execute, null, { simple: true })\n query.resolve = ([[a], [b]]) => {\n backendParameters.default_transaction_read_only = a.transaction_read_only\n backendParameters.in_hot_standby = b.pg_is_in_recovery ? 'on' : 'off'\n }\n query.execute()\n }\n\n function ErrorResponse(x) {\n if (query) {\n (query.cursorFn || query.describeFirst) && write(Sync)\n errorResponse = Errors.postgres(parseError(x))\n } else {\n errored(Errors.postgres(parseError(x)))\n }\n }\n\n function retry(q, error) {\n delete statements[q.signature]\n q.retried = error\n execute(q)\n }\n\n function NotificationResponse(x) {\n if (!onnotify)\n return\n\n let index = 9\n while (x[index++] !== 0);\n onnotify(\n x.toString('utf8', 9, index - 1),\n x.toString('utf8', index, x.length - 1)\n )\n }\n\n async function PortalSuspended() {\n try {\n const x = await Promise.resolve(query.cursorFn(result))\n rows = 0\n x === CLOSE\n ? write(Close(query.portal))\n : (result = new Result(), write(Execute('', query.cursorRows)))\n } catch (err) {\n write(Sync)\n query.reject(err)\n }\n }\n\n function CloseComplete() {\n result.count && query.cursorFn(result)\n query.resolve(result)\n }\n\n function CopyInResponse() {\n stream = new Stream.Writable({\n autoDestroy: true,\n write(chunk, encoding, callback) {\n socket.write(b().d().raw(chunk).end(), callback)\n },\n destroy(error, callback) {\n callback(error)\n socket.write(b().f().str(error + b.N).end())\n stream = null\n },\n final(callback) {\n socket.write(b().c().end())\n final = callback\n stream = null\n }\n })\n query.resolve(stream)\n }\n\n function CopyOutResponse() {\n stream = new Stream.Readable({\n read() { socket.resume() }\n })\n query.resolve(stream)\n }\n\n /* c8 ignore next 3 */\n function CopyBothResponse() {\n stream = new Stream.Duplex({\n autoDestroy: true,\n read() { socket.resume() },\n /* c8 ignore next 11 */\n write(chunk, encoding, callback) {\n socket.write(b().d().raw(chunk).end(), callback)\n },\n destroy(error, callback) {\n callback(error)\n socket.write(b().f().str(error + b.N).end())\n stream = null\n },\n final(callback) {\n socket.write(b().c().end())\n final = callback\n }\n })\n query.resolve(stream)\n }\n\n function CopyData(x) {\n stream && (stream.push(x.subarray(5)) || socket.pause())\n }\n\n function CopyDone() {\n stream && stream.push(null)\n stream = null\n }\n\n function NoticeResponse(x) {\n onnotice\n ? onnotice(parseError(x))\n : console.log(parseError(x)) // eslint-disable-line\n\n }\n\n /* c8 ignore next 3 */\n function EmptyQueryResponse() {\n /* noop */\n }\n\n /* c8 ignore next 3 */\n function FunctionCallResponse() {\n errored(Errors.notSupported('FunctionCallResponse'))\n }\n\n /* c8 ignore next 3 */\n function NegotiateProtocolVersion() {\n errored(Errors.notSupported('NegotiateProtocolVersion'))\n }\n\n /* c8 ignore next 3 */\n function UnknownMessage(x) {\n console.error('Postgres.js : Unknown Message:', x[0]) // eslint-disable-line\n }\n\n /* c8 ignore next 3 */\n function UnknownAuth(x, type) {\n console.error('Postgres.js : Unknown Auth:', type) // eslint-disable-line\n }\n\n /* Messages */\n function Bind(parameters, types, statement = '', portal = '') {\n let prev\n , type\n\n b().B().str(portal + b.N).str(statement + b.N).i16(0).i16(parameters.length)\n\n parameters.forEach((x, i) => {\n if (x === null)\n return b.i32(0xFFFFFFFF)\n\n type = types[i]\n parameters[i] = x = type in options.serializers\n ? options.serializers[type](x)\n : '' + x\n\n prev = b.i\n b.inc(4).str(x).i32(b.i - prev - 4, prev)\n })\n\n b.i16(0)\n\n return b.end()\n }\n\n function Parse(str, parameters, types, name = '') {\n b().P().str(name + b.N).str(str + b.N).i16(parameters.length)\n parameters.forEach((x, i) => b.i32(types[i] || 0))\n return b.end()\n }\n\n function Describe(x, name = '') {\n return b().D().str(x).str(name + b.N).end()\n }\n\n function Execute(portal = '', rows = 0) {\n return Buffer.concat([\n b().E().str(portal + b.N).i32(rows).end(),\n Flush\n ])\n }\n\n function Close(portal = '') {\n return Buffer.concat([\n b().C().str('P').str(portal + b.N).end(),\n b().S().end()\n ])\n }\n\n function StartupMessage() {\n return cancelMessage || b().inc(4).i16(3).z(2).str(\n Object.entries(Object.assign({\n user,\n database,\n client_encoding: 'UTF8'\n },\n options.connection\n )).filter(([, v]) => v).map(([k, v]) => k + b.N + v).join(b.N)\n ).z(2).end(0)\n }\n\n}\n\nfunction parseError(x) {\n const error = {}\n let start = 5\n for (let i = 5; i < x.length - 1; i++) {\n if (x[i] === 0) {\n error[errorFields[x[start]]] = x.toString('utf8', start + 1, i)\n start = i + 1\n }\n }\n return error\n}\n\nfunction md5(x) {\n return crypto.createHash('md5').update(x).digest('hex')\n}\n\nfunction hmac(key, x) {\n return crypto.createHmac('sha256', key).update(x).digest()\n}\n\nfunction sha256(x) {\n return crypto.createHash('sha256').update(x).digest()\n}\n\nfunction xor(a, b) {\n const length = Math.max(a.length, b.length)\n const buffer = Buffer.allocUnsafe(length)\n for (let i = 0; i < length; i++)\n buffer[i] = a[i] ^ b[i]\n return buffer\n}\n\nfunction timer(fn, seconds) {\n seconds = typeof seconds === 'function' ? seconds() : seconds\n if (!seconds)\n return { cancel: noop, start: noop }\n\n let timer\n return {\n cancel() {\n timer && (clearTimeout(timer), timer = null)\n },\n start() {\n timer && clearTimeout(timer)\n timer = setTimeout(done, seconds * 1000, arguments)\n }\n }\n\n function done(args) {\n fn.apply(null, args)\n timer = null\n }\n}\n",
|
|
10
|
+
"export default class Result extends Array {\n constructor() {\n super()\n Object.defineProperties(this, {\n count: { value: null, writable: true },\n state: { value: null, writable: true },\n command: { value: null, writable: true },\n columns: { value: null, writable: true },\n statement: { value: null, writable: true }\n })\n }\n\n static get [Symbol.species]() {\n return Array\n }\n}\n",
|
|
11
|
+
"export default Queue\n\nfunction Queue(initial = []) {\n let xs = initial.slice()\n let index = 0\n\n return {\n get length() {\n return xs.length - index\n },\n remove: (x) => {\n const index = xs.indexOf(x)\n return index === -1\n ? null\n : (xs.splice(index, 1), x)\n },\n push: (x) => (xs.push(x), x),\n shift: () => {\n const out = xs[index++]\n\n if (index === xs.length) {\n index = 0\n xs = []\n } else {\n xs[index - 1] = undefined\n }\n\n return out\n }\n }\n}\n",
|
|
12
|
+
"const size = 256\nlet buffer = Buffer.allocUnsafe(size)\n\nconst messages = 'BCcDdEFfHPpQSX'.split('').reduce((acc, x) => {\n const v = x.charCodeAt(0)\n acc[x] = () => {\n buffer[0] = v\n b.i = 5\n return b\n }\n return acc\n}, {})\n\nconst b = Object.assign(reset, messages, {\n N: String.fromCharCode(0),\n i: 0,\n inc(x) {\n b.i += x\n return b\n },\n str(x) {\n const length = Buffer.byteLength(x)\n fit(length)\n b.i += buffer.write(x, b.i, length, 'utf8')\n return b\n },\n i16(x) {\n fit(2)\n buffer.writeUInt16BE(x, b.i)\n b.i += 2\n return b\n },\n i32(x, i) {\n if (i || i === 0) {\n buffer.writeUInt32BE(x, i)\n return b\n }\n fit(4)\n buffer.writeUInt32BE(x, b.i)\n b.i += 4\n return b\n },\n z(x) {\n fit(x)\n buffer.fill(0, b.i, b.i + x)\n b.i += x\n return b\n },\n raw(x) {\n buffer = Buffer.concat([buffer.subarray(0, b.i), x])\n b.i = buffer.length\n return b\n },\n end(at = 1) {\n buffer.writeUInt32BE(b.i - at, at)\n const out = buffer.subarray(0, b.i)\n b.i = 0\n buffer = Buffer.allocUnsafe(size)\n return out\n }\n})\n\nexport default b\n\nfunction fit(x) {\n if (buffer.length - b.i < x) {\n const prev = buffer\n , length = prev.length\n\n buffer = Buffer.allocUnsafe(length + (length >> 1) + x)\n prev.copy(buffer)\n }\n}\n\nfunction reset() {\n b.i = 0\n return b\n}\n",
|
|
13
|
+
"const noop = () => { /* noop */ }\n\nexport default function Subscribe(postgres, options) {\n const subscribers = new Map()\n , slot = 'postgresjs_' + Math.random().toString(36).slice(2)\n , state = {}\n\n let connection\n , stream\n , ended = false\n\n const sql = subscribe.sql = postgres({\n ...options,\n transform: { column: {}, value: {}, row: {} },\n max: 1,\n fetch_types: false,\n idle_timeout: null,\n max_lifetime: null,\n connection: {\n ...options.connection,\n replication: 'database'\n },\n onclose: async function() {\n if (ended)\n return\n stream = null\n state.pid = state.secret = undefined\n connected(await init(sql, slot, options.publications))\n subscribers.forEach(event => event.forEach(({ onsubscribe }) => onsubscribe()))\n },\n no_subscribe: true\n })\n\n const end = sql.end\n , close = sql.close\n\n sql.end = async() => {\n ended = true\n stream && (await new Promise(r => (stream.once('close', r), stream.end())))\n return end()\n }\n\n sql.close = async() => {\n stream && (await new Promise(r => (stream.once('close', r), stream.end())))\n return close()\n }\n\n return subscribe\n\n async function subscribe(event, fn, onsubscribe = noop, onerror = noop) {\n event = parseEvent(event)\n\n if (!connection)\n connection = init(sql, slot, options.publications)\n\n const subscriber = { fn, onsubscribe }\n const fns = subscribers.has(event)\n ? subscribers.get(event).add(subscriber)\n : subscribers.set(event, new Set([subscriber])).get(event)\n\n const unsubscribe = () => {\n fns.delete(subscriber)\n fns.size === 0 && subscribers.delete(event)\n }\n\n return connection.then(x => {\n connected(x)\n onsubscribe()\n stream && stream.on('error', onerror)\n return { unsubscribe, state, sql }\n })\n }\n\n function connected(x) {\n stream = x.stream\n state.pid = x.state.pid\n state.secret = x.state.secret\n }\n\n async function init(sql, slot, publications) {\n if (!publications)\n throw new Error('Missing publication names')\n\n const xs = await sql.unsafe(\n `CREATE_REPLICATION_SLOT ${ slot } TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`\n )\n\n const [x] = xs\n\n const stream = await sql.unsafe(\n `START_REPLICATION SLOT ${ slot } LOGICAL ${\n x.consistent_point\n } (proto_version '1', publication_names '${ publications }')`\n ).writable()\n\n const state = {\n lsn: Buffer.concat(x.consistent_point.split('/').map(x => Buffer.from(('00000000' + x).slice(-8), 'hex')))\n }\n\n stream.on('data', data)\n stream.on('error', error)\n stream.on('close', sql.close)\n\n return { stream, state: xs.state }\n\n function error(e) {\n console.error('Unexpected error during logical streaming - reconnecting', e) // eslint-disable-line\n }\n\n function data(x) {\n if (x[0] === 0x77) {\n parse(x.subarray(25), state, sql.options.parsers, handle, options.transform)\n } else if (x[0] === 0x6b && x[17]) {\n state.lsn = x.subarray(1, 9)\n pong()\n }\n }\n\n function handle(a, b) {\n const path = b.relation.schema + '.' + b.relation.table\n call('*', a, b)\n call('*:' + path, a, b)\n b.relation.keys.length && call('*:' + path + '=' + b.relation.keys.map(x => a[x.name]), a, b)\n call(b.command, a, b)\n call(b.command + ':' + path, a, b)\n b.relation.keys.length && call(b.command + ':' + path + '=' + b.relation.keys.map(x => a[x.name]), a, b)\n }\n\n function pong() {\n const x = Buffer.alloc(34)\n x[0] = 'r'.charCodeAt(0)\n x.fill(state.lsn, 1)\n x.writeBigInt64BE(BigInt(Date.now() - Date.UTC(2000, 0, 1)) * BigInt(1000), 25)\n stream.write(x)\n }\n }\n\n function call(x, a, b) {\n subscribers.has(x) && subscribers.get(x).forEach(({ fn }) => fn(a, b, x))\n }\n}\n\nfunction Time(x) {\n return new Date(Date.UTC(2000, 0, 1) + Number(x / BigInt(1000)))\n}\n\nfunction parse(x, state, parsers, handle, transform) {\n const char = (acc, [k, v]) => (acc[k.charCodeAt(0)] = v, acc)\n\n Object.entries({\n R: x => { // Relation\n let i = 1\n const r = state[x.readUInt32BE(i)] = {\n schema: x.toString('utf8', i += 4, i = x.indexOf(0, i)) || 'pg_catalog',\n table: x.toString('utf8', i + 1, i = x.indexOf(0, i + 1)),\n columns: Array(x.readUInt16BE(i += 2)),\n keys: []\n }\n i += 2\n\n let columnIndex = 0\n , column\n\n while (i < x.length) {\n column = r.columns[columnIndex++] = {\n key: x[i++],\n name: transform.column.from\n ? transform.column.from(x.toString('utf8', i, i = x.indexOf(0, i)))\n : x.toString('utf8', i, i = x.indexOf(0, i)),\n type: x.readUInt32BE(i += 1),\n parser: parsers[x.readUInt32BE(i)],\n atttypmod: x.readUInt32BE(i += 4)\n }\n\n column.key && r.keys.push(column)\n i += 4\n }\n },\n Y: () => { /* noop */ }, // Type\n O: () => { /* noop */ }, // Origin\n B: x => { // Begin\n state.date = Time(x.readBigInt64BE(9))\n state.lsn = x.subarray(1, 9)\n },\n I: x => { // Insert\n let i = 1\n const relation = state[x.readUInt32BE(i)]\n const { row } = tuples(x, relation.columns, i += 7, transform)\n\n handle(row, {\n command: 'insert',\n relation\n })\n },\n D: x => { // Delete\n let i = 1\n const relation = state[x.readUInt32BE(i)]\n i += 4\n const key = x[i] === 75\n handle(key || x[i] === 79\n ? tuples(x, relation.columns, i += 3, transform).row\n : null\n , {\n command: 'delete',\n relation,\n key\n })\n },\n U: x => { // Update\n let i = 1\n const relation = state[x.readUInt32BE(i)]\n i += 4\n const key = x[i] === 75\n const xs = key || x[i] === 79\n ? tuples(x, relation.columns, i += 3, transform)\n : null\n\n xs && (i = xs.i)\n\n const { row } = tuples(x, relation.columns, i + 3, transform)\n\n handle(row, {\n command: 'update',\n relation,\n key,\n old: xs && xs.row\n })\n },\n T: () => { /* noop */ }, // Truncate,\n C: () => { /* noop */ } // Commit\n }).reduce(char, {})[x[0]](x)\n}\n\nfunction tuples(x, columns, xi, transform) {\n let type\n , column\n , value\n\n const row = transform.raw ? new Array(columns.length) : {}\n for (let i = 0; i < columns.length; i++) {\n type = x[xi++]\n column = columns[i]\n value = type === 110 // n\n ? null\n : type === 117 // u\n ? undefined\n : column.parser === undefined\n ? x.toString('utf8', xi + 4, xi += 4 + x.readUInt32BE(xi))\n : column.parser.array === true\n ? column.parser(x.toString('utf8', xi + 5, xi += 4 + x.readUInt32BE(xi)))\n : column.parser(x.toString('utf8', xi + 4, xi += 4 + x.readUInt32BE(xi)))\n\n transform.raw\n ? (row[i] = transform.raw === true\n ? value\n : transform.value.from ? transform.value.from(value, column) : value)\n : (row[column.name] = transform.value.from\n ? transform.value.from(value, column)\n : value\n )\n }\n\n return { i: xi, row: transform.row.from ? transform.row.from(row) : row }\n}\n\nfunction parseEvent(x) {\n const xs = x.match(/^(\\*|insert|update|delete)?:?([^.]+?\\.?[^=]+)?=?(.+)?/i) || []\n\n if (!xs)\n throw new Error('Malformed subscribe pattern: ' + x)\n\n const [, command, path, key] = xs\n\n return (command || '*')\n + (path ? ':' + (path.indexOf('.') === -1 ? 'public.' + path : path) : '')\n + (key ? '=' + key : '')\n}\n",
|
|
14
|
+
"import Stream from 'stream'\n\nexport default function largeObject(sql, oid, mode = 0x00020000 | 0x00040000) {\n return new Promise(async(resolve, reject) => {\n await sql.begin(async sql => {\n let finish\n !oid && ([{ oid }] = await sql`select lo_creat(-1) as oid`)\n const [{ fd }] = await sql`select lo_open(${ oid }, ${ mode }) as fd`\n\n const lo = {\n writable,\n readable,\n close : () => sql`select lo_close(${ fd })`.then(finish),\n tell : () => sql`select lo_tell64(${ fd })`,\n read : (x) => sql`select loread(${ fd }, ${ x }) as data`,\n write : (x) => sql`select lowrite(${ fd }, ${ x })`,\n truncate : (x) => sql`select lo_truncate64(${ fd }, ${ x })`,\n seek : (x, whence = 0) => sql`select lo_lseek64(${ fd }, ${ x }, ${ whence })`,\n size : () => sql`\n select\n lo_lseek64(${ fd }, location, 0) as position,\n seek.size\n from (\n select\n lo_lseek64($1, 0, 2) as size,\n tell.location\n from (select lo_tell64($1) as location) tell\n ) seek\n `\n }\n\n resolve(lo)\n\n return new Promise(async r => finish = r)\n\n async function readable({\n highWaterMark = 2048 * 8,\n start = 0,\n end = Infinity\n } = {}) {\n let max = end - start\n start && await lo.seek(start)\n return new Stream.Readable({\n highWaterMark,\n async read(size) {\n const l = size > max ? size - max : size\n max -= size\n const [{ data }] = await lo.read(l)\n this.push(data)\n if (data.length < size)\n this.push(null)\n }\n })\n }\n\n async function writable({\n highWaterMark = 2048 * 8,\n start = 0\n } = {}) {\n start && await lo.seek(start)\n return new Stream.Writable({\n highWaterMark,\n write(chunk, encoding, callback) {\n lo.write(chunk).then(() => callback(), callback)\n }\n })\n }\n }).catch(reject)\n })\n}\n"
|
|
15
|
+
],
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "403970AFE35B261F64756E2164756E21",
|
|
18
|
+
"names": []
|
|
19
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Qh as I}from"./chunk-5waxjsvv.js";class J{kernel;onException;constructor(f){this.kernel=new f.kernel,this.kernel.boot.call(this.kernel),this.onException=f.onException??((A)=>{console.error("Unhandled exception in App:",A)})}async waitForBoot(){await this.kernel.waitForBoot()}getComponentTree(){return this.kernel.viewRoutes().componentTree}getFlatComponentTree(){let f=new Set;for(let A of this.kernel.domains().viewDispatchers())for(let B of A.flatComponentTree)f.add(B);return Array.from(f)}devAllowedHosts(){let f=this.kernel.domains();if(!f.resolver)return[];return f.acceptsCustomDomains?!0:[`.${f.resolver.root}`]}getRouteManifest(){return this.kernel.viewRoutes().routeManifest}globallyGated=new WeakMap;async withGlobalMiddleware(f,A,B){let z;try{z=await this.kernel.run.call(this.kernel,()=>this.kernel.globalMiddleware(f))}catch(D){return await B(D)}if(z.refusal)return z.refusal;return this.globallyGated.set(f,z.carried),z.apply(await A(f))}async fetch(f){let A=new URL(f.url);return this.kernel.run.call(this.kernel,async()=>{let B=this.globallyGated.has(f),z=B?null:await this.kernel.globalMiddleware(f),D=B?this.globallyGated.get(f):z.carried;if(z?.refusal)return z.refusal;let H=this.kernel.domains(),C=await H.ask(f)??await H.route(f);if(C instanceof Response)return z?z.apply(C):C;if(!C){let G=new Response("Unknown host",{status:404});return z?z.apply(G):G}let F=I(A.pathname)?await C.api.handleApiRequest(f,D):await C.view.handleViewRequest(f,D);if(!z)return F;if(typeof F==="function"){let G=F;return async(...L)=>z.apply(await G(...L))}return z.apply(F)})}dispatchJob(f,A){return this.kernel.run.bind(this.kernel)(()=>{return this.kernel.queue().dispatchJob(f,A)})}shutdown(f){return this.kernel.shutdown(f)}destroy(){this.kernel.destroy()}clone(){return Object.assign(Object.create(Object.getPrototypeOf(this)),this)}}export{J as Ha};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=8C9528E2730FE24C64756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import type { Kernel } from \"../kernel\";\nimport type { CarriedContext } from \"../http/requestContext\";\nimport { isApiPath } from \"../services/router/apiPath\";\n\ninterface AppParams {\n kernel: new () => Kernel;\n onException?: (error: Error) => void;\n}\n\nexport class App {\n private kernel: Kernel;\n public onException?: (error: Error) => void;\n\n constructor(params: AppParams) {\n this.kernel = new params.kernel();\n this.kernel.boot.call(this.kernel);\n this.onException =\n params.onException ??\n ((error: Error) => {\n console.error(\"Unhandled exception in App:\", error);\n });\n }\n\n // Every service this class touches is resolved through a `this.kernel.*`\n // accessor rather than by importing the service class and calling `app()`\n // here. That is deliberate: the built bin (`dist/bin/gemi.js`) bundles its own\n // copy of gemi, while the app's Kernel is loaded from source and resolves\n // `gemi/*` to the source modules — so the two copies have *different*\n // `kernelContext` AsyncLocalStorage instances and different `Application`\n // class objects. A method call on the Kernel executes in the app's copy and\n // reads the app's container; a resolution attempted here would not. Service\n // *tokens* still cross the boundary safely (they are plain strings), which is\n // why `kernel.resolve()` works from either side.\n public async waitForBoot() {\n await this.kernel.waitForBoot();\n }\n\n public getComponentTree() {\n return this.kernel.viewRoutes().componentTree;\n }\n\n // Every host group's views, not just the root's: the servers load these\n // modules up front, and a view only an `admin.` group routes to still has\n // to be among them.\n public getFlatComponentTree() {\n const views = new Set<string>();\n for (const dispatcher of this.kernel.domains().viewDispatchers()) {\n for (const view of dispatcher.flatComponentTree) {\n views.add(view);\n }\n }\n return Array.from(views);\n }\n\n /**\n * The hosts the dev server's Vite may answer: the `route.domains` root and\n * its subdomains, or any host when custom domains are on, since those are\n * only known to the app's resolver.\n */\n public devAllowedHosts(): true | string[] {\n const domains = this.kernel.domains();\n if (!domains.resolver) {\n return [];\n }\n return domains.acceptsCustomDomains ? true : [`.${domains.resolver.root}`];\n }\n\n public getRouteManifest() {\n return this.kernel.viewRoutes().routeManifest;\n }\n\n // Requests `withGlobalMiddleware` already ran the global middleware for, so\n // `fetch` inside it does not run the list a second time, and can still hand\n // the route what the list carried. Keyed by the Request object: the servers\n // hand `fetch` the same one they gated.\n private globallyGated = new WeakMap<Request, CarriedContext | null>();\n\n /**\n * Runs the `global` middleware list, then `next` — what the servers put in\n * front of everything they serve, so the list covers static files, which\n * never reach `fetch`, as well as routes. A refusal is answered without\n * calling `next`. A global middleware that throws something other than a\n * break is answered by `onError` rather than by `next`, since a gate that\n * failed must not let a static file through.\n */\n public async withGlobalMiddleware(\n req: Request,\n next: (req: Request) => Promise<Response>,\n onError: (err: unknown) => Response | Promise<Response>,\n ): Promise<Response> {\n let outcome: Awaited<ReturnType<Kernel[\"globalMiddleware\"]>>;\n try {\n outcome = await this.kernel.run.call(this.kernel, () => this.kernel.globalMiddleware(req));\n } catch (err) {\n return await onError(err);\n }\n if (outcome.refusal) {\n return outcome.refusal;\n }\n this.globallyGated.set(req, outcome.carried);\n return outcome.apply(await next(req));\n }\n\n public async fetch(req: Request): Promise<Response> {\n const url = new URL(req.url);\n return this.kernel.run.call(this.kernel, async () => {\n // Run here too for a caller that is not one of the servers, a test or an\n // app's own `Bun.serve`, so the list is not skipped by calling `fetch`.\n const gated = this.globallyGated.has(req);\n const outcome = gated ? null : await this.kernel.globalMiddleware(req);\n const carried = gated ? this.globallyGated.get(req) : outcome.carried;\n if (outcome?.refusal) {\n return outcome.refusal;\n }\n const domains = this.kernel.domains();\n const dispatchers = (await domains.ask(req)) ?? (await domains.route(req));\n if (dispatchers instanceof Response) {\n return outcome ? outcome.apply(dispatchers) : dispatchers;\n }\n if (!dispatchers) {\n const unknown = new Response(\"Unknown host\", { status: 404 });\n return outcome ? outcome.apply(unknown) : unknown;\n }\n const result = isApiPath(url.pathname)\n ? await dispatchers.api.handleApiRequest(req, carried)\n : await dispatchers.view.handleViewRequest(req, carried);\n if (!outcome) {\n return result;\n }\n // A document comes back as a render function the server calls with its\n // manifests, and the Response only exists once it has.\n if (typeof result === \"function\") {\n const render = result as (...args: any[]) => Promise<Response>;\n return (async (...args: any[]) => outcome.apply(await render(...args))) as any;\n }\n return outcome.apply(result);\n });\n }\n\n public dispatchJob(jobName: string, args: string) {\n const kernelRun = this.kernel.run.bind(this.kernel);\n return kernelRun(() => {\n return this.kernel.queue().dispatchJob(jobName, args);\n });\n }\n\n /** Every provider's `shutdown()`; see `Kernel.shutdown`. */\n public shutdown(options?: { timeoutMs?: number }) {\n return this.kernel.shutdown(options);\n }\n\n public destroy() {\n this.kernel.destroy();\n }\n\n public clone() {\n return Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n }\n}\n\nexport type FetchHandler = InstanceType<typeof App>[\"fetch\"];\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";yCASO,MAAM,CAAI,CACP,OACD,YAEP,WAAW,CAAC,EAAmB,CAC7B,KAAK,OAAS,IAAI,EAAO,OACzB,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,EACjC,KAAK,YACH,EAAO,cACN,CAAC,IAAiB,CACjB,QAAQ,MAAM,8BAA+B,CAAK,SAc3C,YAAW,EAAG,CACzB,MAAM,KAAK,OAAO,YAAY,EAGzB,gBAAgB,EAAG,CACxB,OAAO,KAAK,OAAO,WAAW,EAAE,cAM3B,oBAAoB,EAAG,CAC5B,IAAM,EAAQ,IAAI,IAClB,QAAW,KAAc,KAAK,OAAO,QAAQ,EAAE,gBAAgB,EAC7D,QAAW,KAAQ,EAAW,kBAC5B,EAAM,IAAI,CAAI,EAGlB,OAAO,MAAM,KAAK,CAAK,EAQlB,eAAe,EAAoB,CACxC,IAAM,EAAU,KAAK,OAAO,QAAQ,EACpC,GAAI,CAAC,EAAQ,SACX,MAAO,CAAC,EAEV,OAAO,EAAQ,qBAAuB,GAAO,CAAC,IAAI,EAAQ,SAAS,MAAM,EAGpE,gBAAgB,EAAG,CACxB,OAAO,KAAK,OAAO,WAAW,EAAE,cAO1B,cAAgB,IAAI,aAUf,qBAAoB,CAC/B,EACA,EACA,EACmB,CACnB,IAAI,EACJ,GAAI,CACF,EAAU,MAAM,KAAK,OAAO,IAAI,KAAK,KAAK,OAAQ,IAAM,KAAK,OAAO,iBAAiB,CAAG,CAAC,EACzF,MAAO,EAAK,CACZ,OAAO,MAAM,EAAQ,CAAG,EAE1B,GAAI,EAAQ,QACV,OAAO,EAAQ,QAGjB,OADA,KAAK,cAAc,IAAI,EAAK,EAAQ,OAAO,EACpC,EAAQ,MAAM,MAAM,EAAK,CAAG,CAAC,OAGzB,MAAK,CAAC,EAAiC,CAClD,IAAM,EAAM,IAAI,IAAI,EAAI,GAAG,EAC3B,OAAO,KAAK,OAAO,IAAI,KAAK,KAAK,OAAQ,SAAY,CAGnD,IAAM,EAAQ,KAAK,cAAc,IAAI,CAAG,EAClC,EAAU,EAAQ,KAAO,MAAM,KAAK,OAAO,iBAAiB,CAAG,EAC/D,EAAU,EAAQ,KAAK,cAAc,IAAI,CAAG,EAAI,EAAQ,QAC9D,GAAI,GAAS,QACX,OAAO,EAAQ,QAEjB,IAAM,EAAU,KAAK,OAAO,QAAQ,EAC9B,EAAe,MAAM,EAAQ,IAAI,CAAG,GAAO,MAAM,EAAQ,MAAM,CAAG,EACxE,GAAI,aAAuB,SACzB,OAAO,EAAU,EAAQ,MAAM,CAAW,EAAI,EAEhD,GAAI,CAAC,EAAa,CAChB,IAAM,EAAU,IAAI,SAAS,eAAgB,CAAE,OAAQ,GAAI,CAAC,EAC5D,OAAO,EAAU,EAAQ,MAAM,CAAO,EAAI,EAE5C,IAAM,EAAS,EAAU,EAAI,QAAQ,EACjC,MAAM,EAAY,IAAI,iBAAiB,EAAK,CAAO,EACnD,MAAM,EAAY,KAAK,kBAAkB,EAAK,CAAO,EACzD,GAAI,CAAC,EACH,OAAO,EAIT,GAAI,OAAO,IAAW,WAAY,CAChC,IAAM,EAAS,EACf,MAAQ,UAAU,IAAgB,EAAQ,MAAM,MAAM,EAAO,GAAG,CAAI,CAAC,EAEvE,OAAO,EAAQ,MAAM,CAAM,EAC5B,EAGI,WAAW,CAAC,EAAiB,EAAc,CAEhD,OADkB,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EACjC,IAAM,CACrB,OAAO,KAAK,OAAO,MAAM,EAAE,YAAY,EAAS,CAAI,EACrD,EAII,QAAQ,CAAC,EAAkC,CAChD,OAAO,KAAK,OAAO,SAAS,CAAO,EAG9B,OAAO,EAAG,CACf,KAAK,OAAO,QAAQ,EAGf,KAAK,EAAG,CACb,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,eAAe,IAAI,CAAC,EAAG,IAAI,EAEzE",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "8C9528E2730FE24C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var b="UTC";function W(j){if(typeof j!=="string"||j.length===0)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:j}),!0}catch{return!1}}var S=new Map,H=500;function U(j,B){let N=S.get(j);if(N===void 0){if(S.size>=H)S.delete(S.keys().next().value);N=B(),S.set(j,N)}return N}function Y(j){return j instanceof Date?j:new Date(j)}function M(j){return j.dateStyle!==void 0||j.timeStyle!==void 0||j.weekday!==void 0||j.era!==void 0||j.year!==void 0||j.month!==void 0||j.day!==void 0||j.dayPeriod!==void 0||j.hour!==void 0||j.minute!==void 0||j.second!==void 0||j.fractionalSecondDigits!==void 0||j.timeZoneName!==void 0}function $(j){let{locale:B,timeZone:N}=j,Q=(J={})=>{let K={...J,timeZone:J.timeZone??N};return U(`dt|${B}|${JSON.stringify(K)}`,()=>{return new Intl.DateTimeFormat(B,K)})},P=(J,K)=>{if(J&&M(J))return J;return{...K,...J}};return{locale:B,timeZone:N,date(J,K){return Q(P(K,{dateStyle:"medium"})).format(Y(J))},time(J,K){return Q(P(K,{timeStyle:"short"})).format(Y(J))},dateTime(J,K){return Q(P(K,{dateStyle:"medium",timeStyle:"short"})).format(Y(J))},number(J,K={}){return U(`n|${B}|${JSON.stringify(K)}`,()=>new Intl.NumberFormat(B,K)).format(J)},relative(J,K,R={}){return U(`r|${B}|${JSON.stringify(R)}`,()=>new Intl.RelativeTimeFormat(B,R)).format(J,K)},list(J,K={}){return U(`l|${B}|${JSON.stringify(K)}`,()=>new Intl.ListFormat(B,K)).format(J)},plural(J,K={}){return U(`p|${B}|${JSON.stringify(K)}`,()=>new Intl.PluralRules(B,K)).select(J)},dateTimeFormat:Q}}var x=/^[a-z]{2,3}(?:[-_][a-z0-9]{2,8})*$/i;function I(j){return x.test(j)}function z(j){return j.split(/[-_]/)[0].toLowerCase()}function G(j,B,N){let Q=j?.split(";")[0].trim();if(!Q||!I(Q))return null;let P=Q.replaceAll("_","-").toLowerCase(),J=B.find((X)=>X.toLowerCase()===P);if(J)return J;let K=z(Q),R=B.filter((X)=>z(X)===K);if(R.length===0)return null;if(N&&R.includes(N))return N;return R[0]}class _{config;static token="translator";translations={};isEnabled=!1;constructor(j){this.config=j;if(!W(this.config.timeZone))throw Error(`translation.timeZone: "${String(this.config.timeZone)}" is not a time zone this runtime knows. Use an IANA name such as "UTC" or "Europe/Istanbul".`);let B={};for(let[N,Q]of Object.entries(this.config.prefetch))for(let P of this.config.supportedLocales){if(!B[P])B[P]={};B[P][N]={};for(let J of Q){B[P][N][J.name]={};for(let[K,R]of Object.entries(J.dictionary))this.isEnabled=!0,B[P][N][J.name][K]=R[P]}}this.translations=B}get isLocaleAware(){return this.isEnabled||this.config.supportedLocales.length>0}get supportedLocales(){return this.config.supportedLocales}get defaultLocale(){return this.config.defaultLocale}get components(){return this.config.components}get timeZone(){return this.config.timeZone}detectTimeZone(j){if(j){let B=this.config.detectTimeZone(j);if(W(B))return B}return this.config.timeZone}formatter(j,B){return $({locale:j||this.defaultLocale,timeZone:W(B)?B:this.timeZone})}onLocaleChange(j){return this.config.onLocaleChange(j)}detectLocale(j){let B=this.config.defaultLocale??this.config.supportedLocales[0]??"en-US",N=(K)=>G(K,this.config.supportedLocales,this.config.defaultLocale),Q=N(this.config.detectLocale(j));if(Q)return Q;let P=N(j.cookies.get("i18n-locale"));if(P)return P;let J=j.headers.get("accept-language")??"";for(let K of J.split(",")){let R=N(K);if(R)return R}return B}getPageTranslations(j,B){if(this.translations[j][B])return this.translations[j][B];return{}}}
|
|
3
|
-
export{G as
|
|
3
|
+
export{G as vh,b as wh,W as xh,$ as yh,_ as zh};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=E65E09328B51CDB864756E2164756E21
|
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
"import type { HttpRequest } from \"../http/HttpRequest\";\nimport type { Dictionary } from \"./Dictionary\";\nimport type { TranslationConfig } from \"./config\";\nimport { resolveLocale } from \"./resolveLocale\";\nimport {\n createFormatter,\n isValidTimeZone,\n type Formatter,\n} from \"./formatter\";\n\nexport class Translator {\n static token = \"translator\";\n\n translations = {};\n isEnabled = false;\n\n constructor(public config: Required<TranslationConfig>) {\n // Fail at boot rather than on the first page that prints a date: `Intl`\n // throws a `RangeError` for a zone it does not know.\n if (!isValidTimeZone(this.config.timeZone)) {\n throw new Error(\n `translation.timeZone: \"${String(this.config.timeZone)}\" is not a time zone this runtime knows. Use an IANA name such as \"UTC\" or \"Europe/Istanbul\".`,\n );\n }\n\n const translations = {};\n\n for (const [route, dicArray] of Object.entries(this.config.prefetch)) {\n for (const locale of this.config.supportedLocales) {\n if (!translations[locale]) {\n translations[locale] = {};\n }\n translations[locale][route] = {};\n for (const dic of dicArray) {\n translations[locale][route][dic.name] = {};\n for (const [key, value] of Object.entries(dic.dictionary)) {\n this.isEnabled = true;\n translations[locale][route][dic.name][key] = value[locale];\n }\n }\n }\n }\n this.translations = translations;\n }\n\n /**\n * Whether the app does locale-aware routing and rendering at all.\n *\n * `isEnabled` only means the legacy `prefetch` config has dictionaries to\n * serve. An app on `defineDictionary` has an empty `prefetch` and declares\n * its locales through `supportedLocales` alone, so gating on `isEnabled`\n * leaves it without locale detection or a locale URL prefix. Both the render\n * path and the redirect read this, because when they disagreed a migrated app\n * rendered a non-default locale at `/` with no redirect and no `Vary` — one\n * cache fill away from serving that document to everyone.\n */\n get isLocaleAware(): boolean {\n return this.isEnabled || this.config.supportedLocales.length > 0;\n }\n\n get supportedLocales(): string[] {\n return this.config.supportedLocales;\n }\n\n get defaultLocale(): string {\n return this.config.defaultLocale;\n }\n\n get components(): Record<string, Dictionary<any>> {\n return this.config.components;\n }\n\n /** The configured zone; `UTC` unless `translation.timeZone` says otherwise. */\n get timeZone(): string {\n return this.config.timeZone;\n }\n\n /**\n * The zone dates are formatted in for this request: `detectTimeZone`'s\n * answer when it gives a zone `Intl` knows, the configured zone otherwise.\n * A bad value from a cookie must not take the page down, so it is ignored\n * rather than thrown.\n */\n detectTimeZone(req: HttpRequest<any, any> | null | undefined): string {\n if (req) {\n const detected = this.config.detectTimeZone(req);\n if (isValidTimeZone(detected)) {\n return detected;\n }\n }\n return this.config.timeZone;\n }\n\n /**\n * A formatter for `locale` (the default locale when omitted) in `timeZone`\n * (the configured zone when omitted). For server code outside a request —\n * jobs, emails. Inside a request, `Lang.formatter()` picks up the request's\n * locale and zone.\n */\n formatter(locale?: string, timeZone?: string): Formatter {\n return createFormatter({\n locale: locale || this.defaultLocale,\n timeZone: isValidTimeZone(timeZone) ? timeZone : this.timeZone,\n });\n }\n\n onLocaleChange(locale: string): Promise<void> | void {\n return this.config.onLocaleChange(locale);\n }\n\n detectLocale(req: HttpRequest<any, any>) {\n const fallbackLocale =\n this.config.defaultLocale ?? this.config.supportedLocales[0] ?? \"en-US\";\n const resolve = (tag: string | null | undefined) =>\n resolveLocale(tag, this.config.supportedLocales, this.config.defaultLocale);\n\n const detectedLocale = resolve(this.config.detectLocale(req));\n if (detectedLocale) {\n return detectedLocale;\n }\n\n const previousLocale = resolve(req.cookies.get(\"i18n-locale\"));\n if (previousLocale) {\n return previousLocale;\n }\n\n // Entries are in the browser's preference order; the first one the app can\n // serve, even by language alone (`de-AT` → `de-DE`), wins.\n const acceptLanguage = req.headers.get(\"accept-language\") ?? \"\";\n for (const entry of acceptLanguage.split(\",\")) {\n const locale = resolve(entry);\n if (locale) {\n return locale;\n }\n }\n\n return fallbackLocale;\n }\n\n getPageTranslations(locale: string, scope: string) {\n if (this.translations[locale][scope]) {\n return this.translations[locale][scope];\n }\n return {};\n }\n}\n"
|
|
8
8
|
],
|
|
9
9
|
"mappings": "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",
|
|
10
|
-
"debugId": "
|
|
10
|
+
"debugId": "E65E09328B51CDB864756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
3
|
-
export{U as
|
|
2
|
+
import{Th as a}from"./chunk-ddad3902.js";var i=a((f)=>{function u(t){let r={};if(t=t.replace(/^\?/,""),t)for(let n of t.split("&")){let[e,s=null]=n.split("=");if(e=decodeURIComponent(e),s)s=decodeURIComponent(s);if(!(e in r))r[e]=s;else if(Array.isArray(r[e]))r[e].push(s);else r[e]=[r[e],s]}return r}f.parseQueryString=u});var U=a((d)=>{var y=i(),c=(t)=>{if(typeof t==="string")return c(new URL(t));let{hostname:r,pathname:n,port:e,protocol:s,search:o}=t,p;if(o)p=y.parseQueryString(o);return{hostname:r,port:e?parseInt(e):void 0,protocol:s,path:n,query:p}};d.parseUrl=c});
|
|
3
|
+
export{U as Z};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=424B01F1872CB92864756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"'use strict';\n\nvar querystringParser = require('@smithy/querystring-parser');\n\nconst parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = querystringParser.parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n\nexports.parseUrl = parseUrl;\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": ";uDAEA,SAAS,CAAgB,CAAC,EAAa,CACnC,IAAM,EAAQ,CAAC,EAEf,GADA,EAAc,EAAY,QAAQ,MAAO,EAAE,EACvC,EACA,QAAW,KAAQ,EAAY,MAAM,GAAG,EAAG,CACvC,IAAK,EAAK,EAAQ,MAAQ,EAAK,MAAM,GAAG,EAExC,GADA,EAAM,mBAAmB,CAAG,EACxB,EACA,EAAQ,mBAAmB,CAAK,EAEpC,GAAI,EAAE,KAAO,GACT,EAAM,GAAO,EAEZ,QAAI,MAAM,QAAQ,EAAM,EAAI,EAC7B,EAAM,GAAK,KAAK,CAAK,EAGrB,OAAM,GAAO,CAAC,EAAM,GAAM,CAAK,EAI3C,OAAO,EAGH,mBAAmB,kBCxB3B,IAAI,MAEE,EAAW,CAAC,IAAQ,CACtB,GAAI,OAAO,IAAQ,SACf,OAAO,EAAS,IAAI,IAAI,CAAG,CAAC,EAEhC,IAAQ,WAAU,WAAU,OAAM,WAAU,UAAW,EACnD,EACJ,GAAI,EACA,EAAQ,EAAkB,iBAAiB,CAAM,EAErD,MAAO,CACH,WACA,KAAM,EAAO,SAAS,CAAI,EAAI,OAC9B,WACA,KAAM,EACN,OACJ,GAGI,WAAW",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "424B01F1872CB92864756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{R as C,T as h,U as m}from"./chunk-k7rbkhhw.js";import{la as w,ma as q}from"./chunk-6chz1ktz.js";import"./chunk-frerzsxq.js";import"./chunk-yer1r3t3.js";import"./chunk-303mprnv.js";import"./chunk-p1aqq0ga.js";import{Ca as N}from"./chunk-4mfrgd5m.js";import"./chunk-5stgtwqw.js";import"./chunk-ryzcfxq7.js";import{tg as _}from"./chunk-teny6xkw.js";import{Qh as y}from"./chunk-5waxjsvv.js";import"./chunk-ddad3902.js";import{join as $J}from"path";import{createServer as zJ}from"vite";import{join as l}from"path";import{IncomingMessage as d,ServerResponse as p}from"http";import{Socket as i}from"net";function v(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
|
|
3
3
|
`).split(`
|
|
4
4
|
`).map((W)=>W.trim()).filter((W)=>W.length>0).join(`
|
|
5
5
|
`).trim()}function D(J){return`
|
|
@@ -55,4 +55,4 @@ window.$RefreshSig$ = () => (type) => type;
|
|
|
55
55
|
window.__vite_plugin_react_preamble_installed__ = true;
|
|
56
56
|
`;function t(J){let{pathname:W}=new URL(J.url),Z=($)=>new Response($,{headers:{"Content-Type":"application/javascript"}});if(W===S)return Z(s);if(W.startsWith("/render-error.js"))return Z("window.render_error = true");if(W.startsWith("/refresh.js"))return Z(a);return null}function k(J,W,Z){let $=l(process.cwd(),"app");return async(Q)=>{let{pathname:X}=new URL(Q.url),Y=(z)=>{if(console.error(z),Z.ssrFixStacktrace?.(z),O(z),y(X))return new Response(JSON.stringify({error:_("server_error",z?.message??String(z),500)}),{status:500,headers:{"Content-Type":"application/json"}});return globalThis.__gemiErrorPageServed=!0,new Response(D(H(z)),{status:500,headers:{"Content-Type":"text/html"}})},G=async(z)=>{let U=t(z);if(U)return U;try{let B=J.fetch.bind(J),K=await n(Z,z)??await B(z);if(K instanceof Response)return K;let j={},b={},M={},c=(L,A)=>`"${L}": () => import("${A}")`,F=[];for(let L of["404",...J.getFlatComponentTree.call(J)]){if(Bun.env.NODE_ENV==="test")break;let A=`${process.env.APP_DIR}`,x=await I(Z).import(`${A}/views/${L}.tsx`);j[L]=x.default,b[L]=x?.OpenGraph,M[L]=x,F.push(c(L,`/app/views/${L}.tsx`))}let u=`{${F.join(",")}}`;return await K({getStyles:async(L,A)=>await C($,Z,L,A?.layout),resolveIsland:(L)=>({src:`/${L}${N}`,preload:[]}),bootstrapModules:[S],viewImportMap:j,viewModules:M,ogMap:b,loaders:u,cssManifest:{}})}catch(B){return Y(B)}};return await W(Q,(z)=>J.withGlobalMiddleware(z,G,Y))}}function r(J){try{return Bun.listen({hostname:"0.0.0.0",port:J,socket:{data(){}}}).stop(!0),!0}catch(W){return W?.code!=="EADDRINUSE"}}function T(J,W=r){let Z=24678+(J-5173);if(Z>65471)Z=24678;for(let $=Z;$<Z+64;$++)if(W($))return $;throw Error(`Could not find a free port for Vite's HMR websocket: tried ${Z}-${Z+64-1}. Set one explicitly in gemi.config.ts as \`vite: { server: { ws: { port } } }\`.`)}import{createServer as e}from"http";var JJ=new Set(["vite-hmr","vite-ping"]);async function P(J){let W=e((Z,$)=>{$.writeHead(426,{"Content-Type":"text/plain"}),$.end("Upgrade Required")});return await new Promise((Z,$)=>{W.once("error",$),W.listen(J,"127.0.0.1",()=>{W.off("error",$),Z()})}),W}function f(J){if(!J||typeof J!=="object")return null;let Z=J.server?.address?.();if(Z&&typeof Z==="object"&&"port"in Z)return Number(Z.port)||null;return null}function R(J){if(J.headers.get("upgrade")?.toLowerCase()!=="websocket")return!1;return JJ.has(J.headers.get("sec-websocket-protocol")??"")}var WJ=(J)=>typeof J==="string"?J:new Uint8Array(J);async function g(J,W,Z){let $=new URL(J.url),Q=J.headers.get("sec-websocket-protocol")??"vite-hmr",X={host:J.headers.get("host")??$.host},Y=J.headers.get("origin");if(Y)X.origin=Y;let G=new WebSocket(`ws://127.0.0.1:${Z}${$.pathname}${$.search}`,{protocols:[Q],headers:X});G.binaryType="arraybuffer";let z={upstream:G,early:[]};if(G.onmessage=(K)=>{let j=WJ(K.data);if(z.browser)z.browser.send(j);else z.early.push(j)},G.onclose=(K)=>{z.browser?.close(ZJ(K.code),K.reason)},G.onerror=()=>{},!await new Promise((K)=>{G.addEventListener("open",()=>K(!0),{once:!0}),G.addEventListener("close",()=>K(!1),{once:!0})}))return new Response("Vite refused the HMR websocket",{status:403});if(!W.upgrade(J,{headers:{"Sec-WebSocket-Protocol":Q},data:z}))return G.close(),new Response("WebSocket upgrade failed",{status:400});return}function ZJ(J){if(J===1000||J>=1001&&J<=1003||J>=1007&&J<=1014)return J;if(J>=3000&&J<=4999)return J;return 1000}var E={open(J){let W=J.data;for(let Z of W.early)J.send(Z);if(W.early=[],W.browser=J,W.upstream.readyState!==WebSocket.OPEN)J.close(1000)},message(J,W){if(J.data.upstream.readyState===WebSocket.OPEN)J.data.upstream.send(W)},close(J){let{upstream:W}=J.data;if(W.readyState<=WebSocket.OPEN)W.close()}};var V=process.cwd(),GJ=$J(V,"app");if(!globalThis.__gemiErrorHooked)globalThis.__gemiErrorHooked=!0,process.on("unhandledRejection",(J)=>{console.error(J),O(J)}),process.on("uncaughtException",(J)=>{console.error(J),O(J)});async function SJ(J,W){let Z=Number(process.env.PORT)||5173,$=m(),Q=Boolean(globalThis.__gemiVite),X=globalThis.__gemiVite??=await zJ({configFile:!1,plugins:[q()],server:{middlewareMode:!0,port:Z,ws:{server:await P(T(Z))},allowedHosts:J.devAllowedHosts.call(J),watch:{ignored:(U)=>{let B=U.split(/[/\\]/).pop()??"";return B===".env"||B.startsWith(".env.")}}},appType:"custom",resolve:{dedupe:["react","react-dom"]},optimizeDeps:{include:["react","react-dom","react-dom/client"]},ssr:{external:[...w]}});process.env.ROOT_DIR=V,process.env.APP_DIR=GJ;let Y=k(J,W,X),G=f(X.config?.server?.ws),z=Bun.serve({port:Z,idleTimeout:$,fetch:(U,B)=>{if(G!==null&&R(U))return g(U,B,G);return Y(U)},websocket:E});if(Q)I(X).clearCache();if(Q)if(globalThis.__gemiErrorActive&&globalThis.__gemiErrorPageServed)globalThis.__gemiErrorActive=!1,globalThis.__gemiErrorPageServed=!1,X.ws.send({type:"full-reload"});else globalThis.__gemiErrorActive=!1,X.ws.send({type:"custom",event:"http-reload"});else h({port:z.port,rootDir:V});return z}export{H as viteErrorPayload,SJ as httpDev};
|
|
57
57
|
|
|
58
|
-
//# debugId=
|
|
58
|
+
//# debugId=8E88E39FD1FD784164756E2164756E21
|