gemi 0.119.1 → 0.119.2
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/index.js +2 -2
- package/dist/ai/index.js.map +1 -1
- package/dist/app/index.js +1 -1
- package/dist/auth/routes.d.ts.map +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-jf6qqzat.js → chunk-0p6mdba6.js} +2 -2
- package/dist/{chunk-jf6qqzat.js.map → chunk-0p6mdba6.js.map} +1 -1
- package/dist/{chunk-a1qt8aky.js → chunk-14xk8kq0.js} +2 -2
- package/dist/{chunk-a1qt8aky.js.map → chunk-14xk8kq0.js.map} +1 -1
- package/dist/chunk-15v719sq.js +5 -0
- package/dist/{chunk-3nf95j9e.js.map → chunk-15v719sq.js.map} +1 -1
- package/dist/{chunk-z759yah5.js → chunk-1p87gdd2.js} +2 -2
- package/dist/{chunk-z759yah5.js.map → chunk-1p87gdd2.js.map} +1 -1
- package/dist/{chunk-453rmkpm.js → chunk-2854taf5.js} +2 -2
- package/dist/{chunk-453rmkpm.js.map → chunk-2854taf5.js.map} +1 -1
- package/dist/{chunk-3zxfd7pn.js → chunk-299zx9dv.js} +3 -3
- package/dist/{chunk-3zxfd7pn.js.map → chunk-299zx9dv.js.map} +1 -1
- package/dist/{chunk-1m3hvy3q.js → chunk-2kegxt0s.js} +2 -2
- package/dist/{chunk-1m3hvy3q.js.map → chunk-2kegxt0s.js.map} +1 -1
- package/dist/{chunk-nrezmscd.js → chunk-2y0r4b7g.js} +1 -1
- package/dist/{chunk-cvfg88cx.js → chunk-3vt172y7.js} +3 -3
- package/dist/{chunk-cvfg88cx.js.map → chunk-3vt172y7.js.map} +1 -1
- package/dist/{chunk-490sbcma.js → chunk-4c1npv8k.js} +2 -2
- package/dist/{chunk-490sbcma.js.map → chunk-4c1npv8k.js.map} +1 -1
- package/dist/{chunk-qf4bmee9.js → chunk-4kj4e22e.js} +2 -2
- package/dist/{chunk-qf4bmee9.js.map → chunk-4kj4e22e.js.map} +1 -1
- package/dist/{chunk-p83erprx.js → chunk-511zqetr.js} +2 -2
- package/dist/{chunk-p83erprx.js.map → chunk-511zqetr.js.map} +1 -1
- package/dist/{chunk-m4kmetpb.js → chunk-5crtgt1y.js} +2 -2
- package/dist/{chunk-m4kmetpb.js.map → chunk-5crtgt1y.js.map} +1 -1
- package/dist/{chunk-j5858bz7.js → chunk-620yeafr.js} +2 -2
- package/dist/{chunk-j5858bz7.js.map → chunk-620yeafr.js.map} +1 -1
- package/dist/{chunk-pvz90a49.js → chunk-6gfsjgra.js} +2 -2
- package/dist/{chunk-hm9cjxy2.js.map → chunk-6gfsjgra.js.map} +1 -1
- package/dist/{chunk-y09r0wsw.js → chunk-6pqbsc5y.js} +3 -3
- package/dist/{chunk-y09r0wsw.js.map → chunk-6pqbsc5y.js.map} +1 -1
- package/dist/{chunk-scc0j5k9.js → chunk-79rtpahn.js} +2 -2
- package/dist/{chunk-scc0j5k9.js.map → chunk-79rtpahn.js.map} +1 -1
- package/dist/{chunk-qkxnvpaj.js → chunk-7ns5506p.js} +2 -2
- package/dist/{chunk-qkxnvpaj.js.map → chunk-7ns5506p.js.map} +1 -1
- package/dist/{chunk-tzdenj0n.js → chunk-7pxdvvrz.js} +2 -2
- package/dist/{chunk-tzdenj0n.js.map → chunk-7pxdvvrz.js.map} +1 -1
- package/dist/{chunk-33s2xqv1.js → chunk-7rffbkmg.js} +1 -1
- package/dist/{chunk-xzn2nmny.js → chunk-8507ez1g.js} +2 -2
- package/dist/{chunk-xzn2nmny.js.map → chunk-8507ez1g.js.map} +1 -1
- package/dist/{chunk-sce5jes2.js → chunk-862jeyz0.js} +2 -2
- package/dist/{chunk-sce5jes2.js.map → chunk-862jeyz0.js.map} +1 -1
- package/dist/{chunk-d806cy7p.js → chunk-9c5s06gc.js} +2 -2
- package/dist/{chunk-d806cy7p.js.map → chunk-9c5s06gc.js.map} +1 -1
- package/dist/{chunk-cte6ysqd.js → chunk-9qkjkse0.js} +4 -4
- package/dist/{chunk-cte6ysqd.js.map → chunk-9qkjkse0.js.map} +1 -1
- package/dist/{chunk-g9hhdcax.js → chunk-b336h3hj.js} +2 -2
- package/dist/{chunk-g9hhdcax.js.map → chunk-b336h3hj.js.map} +1 -1
- package/dist/{chunk-hzepfrzy.js → chunk-bw2pfaz3.js} +2 -2
- package/dist/{chunk-hzepfrzy.js.map → chunk-bw2pfaz3.js.map} +1 -1
- package/dist/chunk-bz5gda3b.js +57 -0
- package/dist/{chunk-dxag6enj.js.map → chunk-bz5gda3b.js.map} +6 -5
- package/dist/{chunk-gqfqnv3f.js → chunk-c8vttyem.js} +2 -2
- package/dist/{chunk-gqfqnv3f.js.map → chunk-c8vttyem.js.map} +1 -1
- package/dist/{chunk-xx7necqt.js → chunk-ct1vwaw7.js} +3 -3
- package/dist/{chunk-xx7necqt.js.map → chunk-ct1vwaw7.js.map} +1 -1
- package/dist/{chunk-76p0rf4d.js → chunk-d2v78b77.js} +3 -3
- package/dist/{chunk-76p0rf4d.js.map → chunk-d2v78b77.js.map} +1 -1
- package/dist/{chunk-n4sdm0jn.js → chunk-d38x71xy.js} +3 -3
- package/dist/{chunk-n4sdm0jn.js.map → chunk-d38x71xy.js.map} +1 -1
- package/dist/{chunk-nang3847.js → chunk-d4dd7jde.js} +2 -2
- package/dist/{chunk-nang3847.js.map → chunk-d4dd7jde.js.map} +1 -1
- package/dist/{chunk-5dbpgyrx.js → chunk-d6nhcqvt.js} +2 -2
- package/dist/{chunk-5dbpgyrx.js.map → chunk-d6nhcqvt.js.map} +1 -1
- package/dist/{chunk-tfdmvxza.js → chunk-f9tfpn3w.js} +2 -2
- package/dist/{chunk-tfdmvxza.js.map → chunk-f9tfpn3w.js.map} +1 -1
- package/dist/{chunk-eke2frrm.js → chunk-fjhnn3de.js} +3 -3
- package/dist/{chunk-eke2frrm.js.map → chunk-fjhnn3de.js.map} +1 -1
- package/dist/{chunk-hr1r3g0d.js → chunk-fmea4sak.js} +2 -2
- package/dist/{chunk-hr1r3g0d.js.map → chunk-fmea4sak.js.map} +1 -1
- package/dist/{chunk-aedkrck1.js → chunk-h02kyxgg.js} +1 -1
- package/dist/{chunk-bz8xssrc.js → chunk-hd5ztshp.js} +2 -2
- package/dist/{chunk-bz8xssrc.js.map → chunk-hd5ztshp.js.map} +1 -1
- package/dist/{chunk-hm9cjxy2.js → chunk-j5q5ysng.js} +2 -2
- package/dist/{chunk-pvz90a49.js.map → chunk-j5q5ysng.js.map} +1 -1
- package/dist/{chunk-bgwtdbfw.js → chunk-j632p533.js} +3 -3
- package/dist/{chunk-bgwtdbfw.js.map → chunk-j632p533.js.map} +1 -1
- package/dist/{chunk-pkr5dsbk.js → chunk-k1ncgq7p.js} +2 -2
- package/dist/{chunk-pkr5dsbk.js.map → chunk-k1ncgq7p.js.map} +1 -1
- package/dist/{chunk-vkkt7j2y.js → chunk-khd9ft0s.js} +2 -2
- package/dist/{chunk-vkkt7j2y.js.map → chunk-khd9ft0s.js.map} +1 -1
- package/dist/{chunk-9pkj7sk6.js → chunk-kkx8a35r.js} +2 -2
- package/dist/{chunk-9pkj7sk6.js.map → chunk-kkx8a35r.js.map} +1 -1
- package/dist/{chunk-ebret82e.js → chunk-mcjbck8e.js} +3 -3
- package/dist/{chunk-ebret82e.js.map → chunk-mcjbck8e.js.map} +1 -1
- package/dist/{chunk-8wcpxm41.js → chunk-nfq127pg.js} +2 -2
- package/dist/{chunk-8wcpxm41.js.map → chunk-nfq127pg.js.map} +1 -1
- package/dist/{chunk-aqpaw4jq.js → chunk-p5xy9cn8.js} +2 -2
- package/dist/{chunk-aqpaw4jq.js.map → chunk-p5xy9cn8.js.map} +1 -1
- package/dist/{chunk-kkte8nze.js → chunk-pjz79c2c.js} +3 -3
- package/dist/{chunk-kkte8nze.js.map → chunk-pjz79c2c.js.map} +1 -1
- package/dist/{chunk-8t6dwwz6.js → chunk-pzk2a5sr.js} +1 -1
- package/dist/{chunk-5cgq9c43.js → chunk-q00f25na.js} +2 -2
- package/dist/{chunk-5cgq9c43.js.map → chunk-q00f25na.js.map} +1 -1
- package/dist/{chunk-jg79n382.js → chunk-q0djcyj2.js} +2 -2
- package/dist/{chunk-jg79n382.js.map → chunk-q0djcyj2.js.map} +1 -1
- package/dist/{chunk-xx3zvc3g.js → chunk-q6a30w8w.js} +2 -2
- package/dist/{chunk-xx3zvc3g.js.map → chunk-q6a30w8w.js.map} +1 -1
- package/dist/{chunk-rpwb1t5z.js → chunk-qm6j85fq.js} +2 -2
- package/dist/{chunk-rpwb1t5z.js.map → chunk-qm6j85fq.js.map} +1 -1
- package/dist/{chunk-sn04cyw0.js → chunk-qpy25jj9.js} +2 -2
- package/dist/{chunk-sn04cyw0.js.map → chunk-qpy25jj9.js.map} +1 -1
- package/dist/{chunk-pqc16rrx.js → chunk-qxxbp3nn.js} +2 -2
- package/dist/{chunk-pqc16rrx.js.map → chunk-qxxbp3nn.js.map} +1 -1
- package/dist/{chunk-q290tgza.js → chunk-s2h85rbf.js} +2 -2
- package/dist/{chunk-q290tgza.js.map → chunk-s2h85rbf.js.map} +1 -1
- package/dist/{chunk-5ses4tcz.js → chunk-svn6zvzd.js} +2 -2
- package/dist/{chunk-5ses4tcz.js.map → chunk-svn6zvzd.js.map} +1 -1
- package/dist/{chunk-mdp2dsbb.js → chunk-ty8gxbgj.js} +2 -2
- package/dist/{chunk-mdp2dsbb.js.map → chunk-ty8gxbgj.js.map} +1 -1
- package/dist/{chunk-39kyz4k6.js → chunk-vy0tnx2s.js} +2 -2
- package/dist/{chunk-39kyz4k6.js.map → chunk-vy0tnx2s.js.map} +1 -1
- package/dist/{chunk-dwpn6fze.js → chunk-w1zqg54r.js} +2 -2
- package/dist/{chunk-dwpn6fze.js.map → chunk-w1zqg54r.js.map} +1 -1
- package/dist/{chunk-x6v2zex2.js → chunk-w7am9q0q.js} +2 -2
- package/dist/{chunk-x6v2zex2.js.map → chunk-w7am9q0q.js.map} +1 -1
- package/dist/{chunk-rbm57mck.js → chunk-w8d37mcq.js} +2 -2
- package/dist/{chunk-rbm57mck.js.map → chunk-w8d37mcq.js.map} +1 -1
- package/dist/{chunk-r1favzz4.js → chunk-wdg83tgd.js} +2 -2
- package/dist/{chunk-r1favzz4.js.map → chunk-wdg83tgd.js.map} +1 -1
- package/dist/{chunk-xfw8zyvn.js → chunk-x5m12vkw.js} +2 -2
- package/dist/{chunk-xfw8zyvn.js.map → chunk-x5m12vkw.js.map} +1 -1
- package/dist/{chunk-razjfecn.js → chunk-xecnc8zv.js} +1 -1
- package/dist/{chunk-1z1rj2zq.js → chunk-xeh1mw1d.js} +2 -2
- package/dist/{chunk-1z1rj2zq.js.map → chunk-xeh1mw1d.js.map} +1 -1
- package/dist/{chunk-xtzn0qfh.js → chunk-xpz1bp50.js} +2 -2
- package/dist/{chunk-xtzn0qfh.js.map → chunk-xpz1bp50.js.map} +1 -1
- package/dist/{chunk-fsj5k511.js → chunk-xqd3zde5.js} +2 -2
- package/dist/{chunk-fsj5k511.js.map → chunk-xqd3zde5.js.map} +1 -1
- package/dist/{chunk-01ehxca0.js → chunk-yn4x9wxc.js} +2 -2
- package/dist/{chunk-01ehxca0.js.map → chunk-yn4x9wxc.js.map} +1 -1
- package/dist/{chunk-4c1kdd8p.js → chunk-yvd4pgd9.js} +2 -2
- package/dist/{chunk-4c1kdd8p.js.map → chunk-yvd4pgd9.js.map} +1 -1
- package/dist/{chunk-g5ppst76.js → chunk-zb8zzf5x.js} +3 -3
- package/dist/{chunk-g5ppst76.js.map → chunk-zb8zzf5x.js.map} +1 -1
- package/dist/{chunk-hkf2k2eq.js → chunk-zq1bhsdg.js} +3 -3
- package/dist/{chunk-hkf2k2eq.js.map → chunk-zq1bhsdg.js.map} +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- 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/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/SameSiteBounceMiddleware.d.ts +42 -0
- package/dist/http/SameSiteBounceMiddleware.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -0
- 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 +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.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/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- 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 +1 -1
- package/dist/chunk-3nf95j9e.js +0 -5
- package/dist/chunk-dxag6enj.js +0 -57
- /package/dist/{chunk-nrezmscd.js.map → chunk-2y0r4b7g.js.map} +0 -0
- /package/dist/{chunk-33s2xqv1.js.map → chunk-7rffbkmg.js.map} +0 -0
- /package/dist/{chunk-aedkrck1.js.map → chunk-h02kyxgg.js.map} +0 -0
- /package/dist/{chunk-8t6dwwz6.js.map → chunk-pzk2a5sr.js.map} +0 -0
- /package/dist/{chunk-razjfecn.js.map → chunk-xecnc8zv.js.map} +0 -0
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
"import type { ServiceToken } from \"../container/Container\";\nimport { kernelContext } from \"../kernel/context\";\nimport { Application } from \"./Application\";\n\n/**\n * Resolves the Application for the current async context. Reads the kernel\n * AsyncLocalStorage — there is exactly one ALS in the framework, and\n * `Kernel.run()` stores the Application in it, so this is the primary path for\n * anything running inside a request or a cron tick.\n *\n * The static instance (Laravel's `Container::setInstance`, set by\n * `Kernel.boot()`) is the fallback for code that runs outside any `run()`\n * scope — build-time tooling, module top level, a stray `setTimeout`.\n */\nexport function app(): Application;\nexport function app<T>(token: ServiceToken<T>): T;\nexport function app<T>(token?: ServiceToken<T>): Application | T {\n const store = kernelContext.getStore();\n const instance = Application.isApplication(store)\n ? store\n : Application.getInstance();\n\n if (!instance) {\n throw new Error(\n \"No Application instance is available. Boot a Kernel before resolving services.\",\n );\n }\n\n return token ? instance.make(token) : instance;\n}\n"
|
|
9
9
|
],
|
|
10
10
|
"mappings": "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",
|
|
11
|
-
"debugId": "
|
|
11
|
+
"debugId": "1146A56BB1863E5264756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
3
|
-
export{g as
|
|
2
|
+
import{if as K,jf as L,kf as R,lf as Y,mf as M,nf as Q,of as O,pf as y,vf as U}from"./chunk-fjhnn3de.js";import{nh as G,oh as W}from"./chunk-kkx8a35r.js";var S=/^\s*::\s*(?:text\s*::\s*)?(jsonb|json)\b(?!\s*\[)/i,I=/^\s*as\s+(jsonb|json)\s*\)/i,P=/\bcast\s*\(\s*$/i,T=new Set;function _(k,B){if(!B.typesParametersFromStatement)return{fragment:k,jsonParameters:T};let q=Y(k),z=new Set,D;for(let H=0;H<q.length-1;H++){let X=q[H+1],$=S.exec(X);if($){D??=[...q],D[H+1]=`::text::${$[1]}${X.slice($[0].length)}`,z.add(H);continue}let J=I.exec(X);if(J&&P.test((D??q)[H]))D??=[...q],D[H+1]=` as text)::${J[1]}${X.slice(J[0].length)}`,z.add(H)}if(!D)return{fragment:k,jsonParameters:z};return{fragment:M(D,k.binders),jsonParameters:z}}function C(k,B){if(k===null||k===void 0)return null;let q=U(k);if(q==="db")return null;if(q==="json")return"null";if(q==="any")throw new W(B,"DB",B,"Prisma.AnyNull is a filter operand \u2014 it asks for a SQL NULL *or* a JSON "+"null \u2014 so it has no single value to bind. Write the one you mean: "+"Prisma.DbNull for the column being NULL, Prisma.JsonNull for the JSON value.");if(typeof k==="string")return k;let z;try{z=JSON.stringify(k)}catch(D){throw new W(B,"DB",B,`A parameter cast to json could not be serialised: ${D instanceof Error?D.message:String(D)}. `+"Bind text you have serialised yourself if the value is not JSON \u2014 a "+"bigint has no JSON form, and neither does a cycle.")}if(z===void 0)throw new W(B,"DB",B,`A ${typeof k} was bound to a parameter cast to json, and has no JSON form. Bind the value it stands for.`);return z}var N=new WeakSet;function Z(k){return N.add(k),k}function V(k){return typeof k==="object"&&k!==null&&N.has(k)}function g(k,...B){if(!Array.isArray(k)||!("raw"in k))throw new G("sql","DB","sql","'sql' is a tagged template \u2014 write sql`select 1`, not sql(\"select 1\"). "+"To put text that is not a value into a statement, use 'unsafeSql', and read what it says first.");let q=[];for(let z=0;z<k.length;z++)if(q.push(L(k[z])),z<B.length)q.push(F(B[z]));return Z(Q(...q))}function m(k,B=", "){if(!Array.isArray(k))throw new W("join","DB","sql",`Expected an array of fragments or values, got ${typeof k}.`);if(k.length===0)return b;let q=k.map(F);if(V(B)){let z=[];for(let D=0;D<q.length;D++){if(D>0)z.push(B);z.push(q[D])}return Z(Q(...z))}return j(B),Z(O(q,B))}var h=/^[\s,]*$|^\s*(?:and|or)\s*$/i;function j(k){if(typeof k==="string"&&h.test(k))return;throw new W("join","DB","sql",typeof k==="string"?`A separator is written into the SQL text, so it may only be glue: whitespace, commas, or 'and' / 'or'. Got ${JSON.stringify(k)}. If that is deliberate, say so with `+"unsafeSql(...) \u2014 and never build one from anything that came from "+"outside the program.":`Expected a separator string or a fragment, got ${k===null?"null":typeof k}.`)}var b=Z(Object.freeze({text:"",binders:Object.freeze([])}));function v(k){if(typeof k!=="string")throw new W("unsafeSql","DB","sql",`Expected a string literal, got ${Array.isArray(k)?"an array":typeof k}. 'unsafeSql' is a plain call, not a tagged template \u2014 a template would `+"interpolate values into the SQL text, which is the one thing it must never do.");return Z(L(k))}function p(k,B,q="query"){if(!V(k))throw new W(q,"DB",q,`Expected a fragment built with 'sql', got ${k===null?"null":typeof k}. A plain string is not accepted here on purpose \u2014 it would be the one `+"path into the SQL text that nobody had to think about.");let z=_(k,B),D=y(z.fragment,B,{model:"DB",operation:q});return{text:D.text,values:K(D.binders)(void 0).map((H,X)=>z.jsonParameters.has(X)?C(H,q):H===null||H===void 0?H??null:B.encodeUntyped(H))}}function F(k){if(V(k))return k;return R(()=>k)}
|
|
3
|
+
export{g as cf,m as df,b as ef,v as ff,p as gf};
|
|
4
4
|
|
|
5
|
-
//# debugId=
|
|
5
|
+
//# debugId=A1AD0F614E788FD964756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import type { SqlDialect } from \"./dialect\";\nimport {\n InvalidArgumentError,\n UnsupportedQueryError,\n} from \"./errors\";\nimport {\n type Fragment,\n bindValues,\n concat,\n joinFragments,\n param,\n render,\n sql as text,\n} from \"./compile/fragment\";\nimport { jsonTextParameter, retypeJsonParameters } from \"./json-param\";\n\n/**\n * SQL fragments as first-class values: `sql`, `join`, `empty`, and one door out.\n *\n * The ORM deliberately does not implement every SQL shape — `distinct`, cursor\n * pagination, window functions, recursive CTEs. That is the right call, but it\n * is only half a decision: the shapes it declines have to have somewhere to go,\n * and \"drop to raw SQL\" is not an answer if raw SQL cannot be *composed*.\n *\n * `DB.sql` — Bun's tagged template — covers a single self-contained statement,\n * and that is genuinely all it covers. The shape it cannot express is the common\n * one: a predicate list built conditionally, passed around as a value, and\n * interpolated into a larger statement.\n *\n * ```ts\n * const filters = []\n * if (q) filters.push(sql`name ilike ${`%${q}%`}`)\n * if (organizationId) filters.push(sql`\"organizationId\" = ${organizationId}`)\n *\n * const where = filters.length ? sql`where ${join(filters, \" and \")}` : empty\n * const rows = await DB.query(sql`select * from \"Product\" ${where} limit ${20}`)\n * ```\n *\n * ## This is the compiler's own `Fragment`, made public\n *\n * Not a parallel mechanism. `compile/fragment.ts` has held exactly this shape\n * since iteration 1 — text plus positional binders, composable, never\n * concatenating a value into the text — because that is what invariant 2 needs\n * internally. Reusing it means a public fragment binds by the same rule the\n * compiler's own SQL does, and it means the parameter ceiling, the placeholder\n * numbering and the dialect split are all already handled rather than\n * reimplemented one door down.\n *\n * **Placeholders are assigned at assembly, not at authoring.** SQLite writes\n * `?` and Postgres writes `$1`, `$2`, and a fragment does not know where in the\n * final statement it will land — so `sql` records a *position* and `render`\n * turns it into a placeholder once the whole statement exists. That is what lets\n * the same fragment be nested, reused twice in one statement, or built before\n * the dialect is even known.\n */\n\n/**\n * A composable piece of SQL. Its values are bound parameters, never text.\n *\n * Opaque on purpose: an application builds one with `sql`, combines it with\n * `join`, and hands it to `DB.query` / `DB.execute`. Reading `.text` off it is\n * not part of the contract — it holds parameter *markers* rather than the\n * dialect's placeholders, so it is not the statement that runs.\n */\nexport type SqlFragment = Fragment;\n\n/**\n * Every fragment this module has produced.\n *\n * **Identity, not shape, and the difference is a SQL injection.** `interpolate`\n * splices a fragment as text and binds everything else, so \"is this a fragment\"\n * decides whether a value reaches the statement or a parameter. Asking the\n * *shape* — a `text` string and a `binders` array — makes that decision\n * answerable by anything that can name two properties, and `{\"text\": \"…\",\n * \"binders\": []}` is two lines of JSON:\n *\n * ```ts\n * const body = await request.json()\n * await DB.query(sql`select \"email\" from \"User\" where \"email\" = ${body.email}`)\n * // body.email = { text: `'' union select \"password\" from \"User\"`, binders: [] }\n * // -> select \"email\" from \"User\" where \"email\" = '' union select \"password\" from \"User\"\n * ```\n *\n * That is the intended call site with the intended safe value, and it returned\n * the password column out of a statement selecting only `email`. The internal\n * `Fragment` never had the problem because nothing outside `compile/` could\n * construct one; making the type public is what turned \"text plus binders\" from\n * an implementation detail into a shape an attacker can name. `unsafeSql` is\n * built so that reaching for the escape hatch is a decision — a structural check\n * is a second, unmarked door beside it.\n *\n * A `WeakSet` the module owns cannot be forged: membership is granted only by\n * the constructors below. It registers the *returned* object rather than\n * stamping a property, because `concat` and `joinFragments` return fresh objects\n * — a marker property on the inputs would not survive them, and the version that\n * cannot drift is the one that brands what actually comes out.\n */\nconst FRAGMENTS = new WeakSet<object>();\n\nfunction brand(fragment: Fragment): SqlFragment {\n FRAGMENTS.add(fragment);\n return fragment;\n}\n\n/** Whether a value is a fragment *this module made*, so it splices rather than binds. */\nfunction isFragment(value: unknown): value is Fragment {\n return typeof value === \"object\" && value !== null && FRAGMENTS.has(value);\n}\n\n/**\n * A SQL fragment. Every `${value}` is bound as a parameter; a `${fragment}` is\n * spliced in, carrying its own parameters with it.\n *\n * ```ts\n * sql`where \"id\" = ${id}` // \"id\" = $1, with id bound\n * sql`where ${sql`\"a\" = ${1}`} and ${sql`\"b\" = ${2}`}` // nests to any depth\n * ```\n *\n * An interpolated **array** is bound as one value, not expanded — that is what\n * Postgres's `= any($1)` wants, and it is the only reading that does not depend\n * on the dialect. For a comma-separated list of placeholders, say so with\n * `join`.\n *\n * A value at a `::jsonb` cast the caller wrote is the one parameter with a type\n * behind it, and it is bound as **JSON text** so that the statement means what\n * the same statement meant under Prisma's `$executeRaw`:\n *\n * ```ts\n * sql`… set payload = payload || ${JSON.stringify(patch)}::jsonb` // merges\n * ```\n *\n * Without that the driver would JSON-encode the string and the column would\n * hold the document as a jsonb *string* — which `||` appends as an array\n * element rather than merging. `json-param.ts` has the measurements.\n */\nexport function sql(\n strings: TemplateStringsArray,\n ...values: unknown[]\n): SqlFragment {\n // A defensive check rather than a type error, because the interesting misuse\n // is `sql(userInput)` — a plain call with a string, which would otherwise\n // reach `strings.raw` as `undefined` and produce a fragment of `undefined`\n // text rather than an error. It is also the shape somebody reaches for when\n // they want the escape hatch and have not found `unsafeSql`.\n if (!Array.isArray(strings) || !(\"raw\" in (strings as object))) {\n throw new UnsupportedQueryError(\n \"sql\",\n \"DB\",\n \"sql\",\n `'sql' is a tagged template — write sql\\`select 1\\`, not sql(\"select 1\"). ` +\n `To put text that is not a value into a statement, use 'unsafeSql', ` +\n `and read what it says first.`,\n );\n }\n\n const parts: Fragment[] = [];\n\n for (let i = 0; i < strings.length; i++) {\n parts.push(text(strings[i]));\n if (i < values.length) parts.push(interpolate(values[i]));\n }\n\n return brand(concat(...parts));\n}\n\n/**\n * Fragments — or values — joined by a separator, the way `Array.join` reads.\n *\n * ```ts\n * join(filters, \" and \") // a and b and c\n * join([sql`\"a\" asc`, sql`\"b\" desc`]) // \"a\" asc, \"b\" desc\n * join(ids) // $1, $2, $3 — each bound\n * ```\n *\n * An **empty list produces `empty`**, not a separator and not a syntax error, so\n * `join` composes with a list that turned out to have nothing in it. That is the\n * case a caller forgets, and it is the one that would otherwise emit `where ` and\n * fail at the database rather than here.\n *\n * ## The separator is text, so it is not a free string\n *\n * It goes between the fragments *in the statement*, which makes it the one other\n * place a string could reach the SQL — and this module's whole claim is that\n * `unsafeSql` is **the** door. So a plain-string separator has to be glue and\n * nothing else: whitespace, commas, or a boolean connective. Anything more\n * expressive is legitimate and has to say so:\n *\n * ```ts\n * join(filters, \" and \") // fine\n * join(parts, unsafeSql(\") and (\")) // fine, and visibly a decision\n * join(ids, request.query.sep) // refused\n * ```\n *\n * A **blocklist would not do**, which is why this is an allowlist. The obvious\n * one — reject quotes, semicolons and comment markers — lets this through:\n *\n * join([1, 2], \") or 1=1 union select password from Users where 1=(1\")\n *\n * No quote, no `--`, still an injection. There is no sound way to say \"this\n * arbitrary text is safe glue\", so the rule is that glue is a small closed set\n * and everything else is a fragment somebody built on purpose.\n */\nexport function join(\n values: readonly unknown[],\n separator: string | SqlFragment = \", \",\n): SqlFragment {\n if (!Array.isArray(values)) {\n throw new InvalidArgumentError(\n \"join\",\n \"DB\",\n \"sql\",\n `Expected an array of fragments or values, got ${typeof values}.`,\n );\n }\n if (values.length === 0) return empty;\n\n const parts = values.map(interpolate);\n\n if (isFragment(separator)) {\n const woven: Fragment[] = [];\n for (let i = 0; i < parts.length; i++) {\n if (i > 0) woven.push(separator);\n woven.push(parts[i]);\n }\n return brand(concat(...woven));\n }\n\n assertGlue(separator);\n return brand(joinFragments(parts, separator));\n}\n\n/**\n * Whitespace and commas, or a boolean connective surrounded by whitespace.\n *\n * Deliberately small. Every separator a composed statement actually needs is in\n * here — `\", \"`, `\" and \"`, `\" or \"`, `\" \"` — and everything outside it is\n * expressive enough to change what the statement *does*, which is the property\n * that makes it a `unsafeSql` decision rather than a string argument.\n */\nconst GLUE = /^[\\s,]*$|^\\s*(?:and|or)\\s*$/i;\n\nfunction assertGlue(separator: unknown): void {\n if (typeof separator === \"string\" && GLUE.test(separator)) return;\n\n throw new InvalidArgumentError(\n \"join\",\n \"DB\",\n \"sql\",\n typeof separator === \"string\"\n ? `A separator is written into the SQL text, so it may only be glue: ` +\n `whitespace, commas, or 'and' / 'or'. Got ` +\n `${JSON.stringify(separator)}. If that is deliberate, say so with ` +\n `unsafeSql(...) — and never build one from anything that came from ` +\n `outside the program.`\n : `Expected a separator string or a fragment, got ${\n separator === null ? \"null\" : typeof separator\n }.`,\n );\n}\n\n/**\n * The fragment that contributes nothing.\n *\n * The point of it is that `where ${empty}` and `where ${filter}` are the same\n * expression — a conditional predicate is a value, not a branch around the\n * statement. Frozen, because it is shared by every caller and a fragment is read\n * as immutable everywhere else.\n */\nexport const empty: SqlFragment = brand(\n Object.freeze({ text: \"\", binders: Object.freeze([]) as [] }),\n);\n\n/**\n * **Text straight into the SQL, with no parameter around it.** The one door in\n * this ORM through which a value reaches the statement text.\n *\n * Everything else in the compiler exists to make this impossible — identifiers\n * come from the generated schema, values are bound — so reaching for it should\n * feel like reaching for it. **Never give it a value that came from a request, a\n * form, a URL, a header, a queue payload or a database row.** There is no\n * escaping here and there will not be: escaping that is \"usually right\" is worse\n * than none, because it survives review.\n *\n * ## Why it exists at all, since that is the fair question\n *\n * Plan quality can depend on *not* parameterising. A partial index declared as\n *\n * ```sql\n * create index … on \"Job\" (…) where \"name\" is distinct from 'reaper'\n * ```\n *\n * is only usable if the planner can prove the query's predicate matches the\n * index's. A bound parameter is opaque at plan time, so `where \"name\" is\n * distinct from $1` does not match — and the query falls back to a sequential\n * scan over the whole table. The constant has to be *in the text*:\n *\n * ```ts\n * const REAPER = unsafeSql(`'reaper'`) // a literal in this file, never input\n * await DB.query(sql`\n * select … from \"Job\" where \"name\" is distinct from ${REAPER} …\n * `)\n * ```\n *\n * A builder with no escape hatch cannot express that at any price, and the\n * workaround — hand-writing the whole statement — loses composition for every\n * other part of it.\n *\n * The same applies to the other things that cannot be parameters in SQL:\n * identifiers, a sort direction, a table name chosen from a fixed set in code.\n * All of them share the rule above — the value is written in the source file, or\n * chosen from a set written in the source file, never passed in.\n */\nexport function unsafeSql(literal: string): SqlFragment {\n if (typeof literal !== \"string\") {\n throw new InvalidArgumentError(\n \"unsafeSql\",\n \"DB\",\n \"sql\",\n `Expected a string literal, got ${\n Array.isArray(literal) ? \"an array\" : typeof literal\n }. 'unsafeSql' is a plain call, not a tagged template — a template would ` +\n `interpolate values into the SQL text, which is the one thing it must ` +\n `never do.`,\n );\n }\n return brand(text(literal));\n}\n\n/**\n * A fragment as the statement a driver can run: the dialect's placeholders in\n * the text, and the values in the order they appear.\n *\n * Separate from the executing, and exported, because it is the half that is a\n * pure function of `(fragment, dialect)` — so a test can assert what a\n * composition emits on both dialects without a database anywhere near it, which\n * is exactly how the rest of the compiler is tested.\n *\n * `render` also applies the parameter ceiling here, which matters more for a\n * hand-built fragment than for a compiled plan: `join(ids)` over a\n * request-derived list is one placeholder per element on SQLite, and 40 000 of\n * them is a driver error rather than a clear one.\n */\nexport function renderFragment(\n fragment: SqlFragment,\n dialect: SqlDialect,\n operation = \"query\",\n): { text: string; values: unknown[] } {\n if (!isFragment(fragment)) {\n throw new InvalidArgumentError(\n operation,\n \"DB\",\n operation,\n `Expected a fragment built with 'sql', got ${\n fragment === null ? \"null\" : typeof fragment\n }. A plain string is not accepted here on purpose — it would be the one ` +\n `path into the SQL text that nobody had to think about.`,\n );\n }\n\n // The one thing a raw parameter can be *told* about its type: a `::jsonb` the\n // caller wrote onto their own placeholder. Where there is one, the parameter\n // is retyped through `text` and its value serialised, because Bun otherwise\n // JSON-encodes a string bound to a `jsonb` parameter and stores the document\n // as a jsonb *string* where Prisma stored the object. See `json-param.ts` —\n // the mechanism, the measurements, and why a string is not serialised here\n // while `fieldParam` serialises one.\n //\n // The dialect is passed because this is not universal, and the reason is\n // narrower than it looks: `::` is Postgres-only syntax, but `cast(? as json)`\n // *parses and runs* on SQLite, where it means NUMERIC affinity — so retyping\n // it would rewrite a working statement into `cast(? as text)::json`, which\n // SQLite cannot parse. `typesParametersFromStatement` is false there.\n const json = retypeJsonParameters(fragment, dialect);\n\n const rendered = render(json.fragment, dialect, { model: \"DB\", operation });\n return {\n text: rendered.text,\n // `encodeUntyped` and not `encode`: there is no field here to ask, which is\n // the whole difference between a fragment's parameters and a compiled\n // plan's. It normalises the two JavaScript types whose SQL form the ORM has\n // already decided — a `Date` and a boolean — so a raw statement compares\n // against ORM-written rows on both dialects rather than only on Postgres.\n values: bindValues(rendered.binders)(undefined).map((value, index) =>\n json.jsonParameters.has(index)\n ? jsonTextParameter(value, operation)\n : value === null || value === undefined\n ? (value ?? null)\n : dialect.encodeUntyped(value),\n ),\n };\n}\n\n/**\n * One interpolated slot: a fragment splices, anything else binds.\n *\n * The binder ignores both its arguments. A compiled plan's binders read the\n * *call's* argument tree, because one plan serves many calls; a fragment is\n * built per call and closes over the value it was given, which is the whole\n * difference between the compiler's fragments and these.\n */\nfunction interpolate(value: unknown): Fragment {\n if (isFragment(value)) return value;\n return param(() => value);\n}\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "A1AD0F614E788FD964756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/config/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-
|
|
2
|
+
import"../chunk-j5q5ysng.js";function k(b){return b}function q(b){if((process.env.GEMI_REACT_COMPILER??"auto").toLowerCase()==="off")return!1;return b??!0}export{q as reactCompiler,k as defineConfig};
|
|
3
3
|
|
|
4
4
|
//# debugId=2F7F86887FCF6F1A64756E2164756E21
|
package/dist/console/run.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ba as c}from"../chunk-
|
|
2
|
+
import{ba as c}from"../chunk-7ns5506p.js";import{gb as f,hb as o}from"../chunk-thz75w6e.js";import{kc as A,nc as n,oc as u,yc as r}from"../chunk-wdg83tgd.js";import"../chunk-675kzd7z.js";import"../chunk-d4dd7jde.js";import{Sg as g,Wg as v}from"../chunk-ct1vwaw7.js";import{fh as h}from"../chunk-6pqbsc5y.js";import"../chunk-kkx8a35r.js";import"../chunk-q6a30w8w.js";import{Ph as t}from"../chunk-c8vttyem.js";import"../chunk-pjz79c2c.js";import"../chunk-fmea4sak.js";import{Ti as k}from"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-nfq127pg.js";import{bj as a}from"../chunk-q0djcyj2.js";import"../chunk-j5q5ysng.js";function E(){let z=Promise.resolve(),J=Promise.resolve(),Y=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=Y(process.stdout,Q)},stderr:(Q)=>{J=Y(process.stderr,Q)},flush:async()=>{await Promise.all([z,J])}}}function x(z){let J=z.writers??E();return{args:z.args,options:z.options,argv:z.argv,line:(Y="")=>J.stdout(`${Y}
|
|
3
3
|
`),error:(Y)=>J.stderr(`${Y}
|
|
4
4
|
`),fail:(Y,Q=1)=>{throw new A(Y,Q)}}}import b from"path";var Gz=u("encryption:rotate").describe("Re-encrypt encrypted columns that are still under an older key").arg("model",{description:"The model to rotate. Omit to rotate every model with encrypted columns"}).option("batchSize",{type:"number",default:500,description:"Rows read and rewritten per batch"}).option("dryRun",{type:"boolean",description:"Count what would be re-encrypted, and write nothing"}).option("encryptPlaintext",{type:"boolean",description:"Also encrypt values that are not encrypted yet (a column just marked @gemi.encrypted)"}).handle(async({args:z,options:J,line:Y,fail:Q})=>{let G=z.model?[z.model]:[...new Set(h().map((B)=>B.split(".")[0]))],$=z.model?null:Jz();if(G.length===0&&!$){Y("No model has encrypted columns.");return}if($){let B=await $.rotateEncryption({dryRun:J.dryRun});Y(`OAuth connections: ${B.scanned} rows, ${B.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`)}let _=0;for(let B of G){let V=await c(B,{batchSize:J.batchSize,dryRun:J.dryRun,encryptPlaintext:J.encryptPlaintext});_+=V.plaintext,Y(`${V.model} (${V.fields.join(", ")}): ${V.scanned} rows, ${V.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`+(V.skipped>0?`, ${V.skipped} changed meanwhile (already current)`:"")+(V.plaintext>0?`, ${V.plaintext} not encrypted yet`:""))}if(_>0)Q(`${_} value${_===1?" is":"s are"} not encrypted. If the column was just marked @gemi.encrypted, run again with --encrypt-plaintext.`)});function Jz(){let z=k();if(!z.bound(v))return null;let J=z.make(v);if(Object.keys(J.providers).length===0)return null;let Y=J.store;return Y instanceof g?Y:null}var m=[Gz];function R(z){return z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}function Qz(z){let J=new Map,Y=new Map;for(let Q of z){J.set(R(Q.name),Q),J.set(Q.name,Q);let G="alias"in Q?Q.alias:void 0;if(G)Y.set(G,Q)}return{byName:J,byAlias:Y}}function l(z){if(z==="--")return!0;if(!z.startsWith("-"))return!1;if(z==="-")return!1;if(/^-(\d|\.\d)/.test(z))return!1;return!0}function p(z,J){let{byName:Y,byAlias:Q}=Qz(z.options),G=[],$=[],_=new Map,B=!Y.has("help"),V=!Q.has("h"),F=!1,N=!1,W=(X)=>G.push(`Unknown option ${X} for command "${z.commandName}".`),T=(X,Z)=>{if(Z==="--help"||Z==="-h")N=!0;G.push(Z===void 0?`Option ${X} needs a value.`:`Option ${X} needs a value, but the next token is ${JSON.stringify(Z)}, which is another option. If that really is the value, write ${X}=${Z}.`)},j=0;while(j<J.length){let X=J[j];if(X==="--"){$.push(...J.slice(j+1));break}if(X.startsWith("--")){let Z=X.slice(2),K=Z.indexOf("="),M=K===-1?Z:Z.slice(0,K),O=K===-1?void 0:Z.slice(K+1),P=Y.get(M),D=!1;if(!P&&M.startsWith("no-")){let S=Y.get(M.slice(3));if(S&&S.type==="boolean")P=S,D=!0}if(!P&&M==="help"&&B){F=!0,j+=1;continue}if(!P){W(`--${M}`),j+=1;continue}if(P.type==="boolean"){if(O!==void 0&&O!=="true"&&O!=="false")G.push(`Option --${R(P.name)} is a flag and takes no value, but got ${JSON.stringify(O)}.`);else{let S=O===void 0?!0:O==="true";_.set(P.name,D?!S:S)}j+=1;continue}if(O!==void 0){_.set(P.name,O),j+=1;continue}let L=J[j+1];if(L===void 0||l(L)){T(`--${R(P.name)}`,L),j+=1;continue}_.set(P.name,L),j+=2;continue}if(X.startsWith("-")&&X.length>1){let Z=X.slice(1),K=!1;for(let M=0;M<Z.length;M+=1){let O=Q.get(Z[M]);if(!O){if(Z[M]==="h"&&V){F=!0;continue}W(`-${Z[M]}`);break}if(O.type==="boolean"){_.set(O.name,!0);continue}let P=Z.slice(M+1),D=P.startsWith("=")?P.slice(1):P;if(D!==""){_.set(O.name,D);break}let L=J[j+1];if(L===void 0||l(L)){T(`-${O.alias}`,L);break}_.set(O.name,L),K=!0;break}j+=K?2:1;continue}$.push(X),j+=1}let H={},I=0;for(let X of z.args){if(X.variadic){let K=$.slice(I);if(I=$.length,H[X.name]=K,X.required&&K.length===0)G.push(`Missing required argument <${X.name}...>. Command "${z.commandName}" needs at least one.`);continue}let Z=$[I];if(I+=1,Z!==void 0){H[X.name]=Z;continue}if(X.default!==void 0){H[X.name]=X.default;continue}if(X.required)G.push(`Missing required argument <${X.name}>.`);H[X.name]=void 0}if(I<$.length){let X=$.slice(I);G.push(`Unexpected argument${X.length===1?"":"s"} ${X.map((Z)=>JSON.stringify(Z)).join(", ")}. Command "${z.commandName}" takes ${z.args.length} argument${z.args.length===1?"":"s"}.`)}let U={};for(let X of z.options){let Z=_.get(X.name);if(X.type==="boolean"){U[X.name]=Z===void 0?X.default??!1:Boolean(Z);continue}if(Z===void 0){if(X.default!==void 0)U[X.name]=X.default;else if(X.required)G.push(`Missing required option --${R(X.name)}.`),U[X.name]=void 0;else U[X.name]=void 0;continue}let K=String(Z);if(X.type==="number"){let M=Number(K);if(K.trim()===""||!Number.isFinite(M))G.push(`Option --${R(X.name)} expects a number, but got ${JSON.stringify(K)}.`),U[X.name]=void 0;else U[X.name]=M;continue}U[X.name]=K}let q=F&&!N;if(G.length>0)return{ok:!1,help:q,errors:G};return{ok:!0,help:q,args:H,options:U}}function C(z,J=" "){let Y=z.reduce((Q,[G])=>Math.max(Q,G.length),0);return z.map(([Q,G])=>G===""?`${J}${Q}`:`${J}${Q.padEnd(Y)} ${G}`)}function d(z){let J=z.variadic?`${z.name}...`:z.name;return z.required?`<${J}>`:`[${J}]`}function Xz(z){let J=(G)=>z.options.some(G),Y=J((G)=>G.name==="help"||R(G.name)==="help"),Q=J((G)=>("alias"in G)&&G.alias==="h");if(Y&&Q)return[];if(Y)return[["-h","Show this message"]];return[[`${Q?"":"-h, "}--help`,"Show this message"]]}function w(z){let J=[],Y=z.args.map(d).join(" "),Q=["gemi run",z.commandName,z.options.length>0?"[options]":"",Y].filter(Boolean).join(" ");if(J.push(`Usage: ${Q}`),z.description)J.push("",z.description);if(z.args.length>0)J.push("","Arguments:"),J.push(...C(z.args.map((G)=>{let $=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:""].filter(Boolean).join(" ");return[d(G),$]})));return J.push("","Options:"),J.push(...C([...z.options.map((G)=>{let $="alias"in G&&G.alias?`-${G.alias}, `:"",_=G.type==="boolean"?"":` <${G.type}>`,B=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:"","required"in G&&G.required?"(required)":""].filter(Boolean).join(" ");return[`${$}--${R(G.name)}${_}`,B]}),...Xz(z)])),J.join(`
|
|
5
5
|
`)}function i(z){return["Provided by gemi:","",...C(z.map((J)=>[J.commandName,J.description]))].join(`
|
|
@@ -15,4 +15,4 @@ ${i(j)}`);return 0}let H=W.get(z.name)??j.find((Z)=>Z.commandName===z.name);if($
|
|
|
15
15
|
${Q.message}
|
|
16
16
|
\`gemi run\` boots your application the way the server does, so it needs the Kernel. Run it from the root of a gemi project.`,{cause:Q})}if(typeof Y.default!=="function")throw new f(`${J} has no default export. gemi expects the Kernel subclass to be the default export of that file.`);return new Y.default}function s(z,J,Y,Q="returned"){if(z===void 0||z===null)return 0;if(typeof z==="number"&&Number.isInteger(z)&&z>=0&&z<=255)return z;let G=J?`Command "${J.commandName}"`:"The command";return Y(`${G} ${Q} ${JSON.stringify(z)}, which is not an exit `+"code \u2014 an exit code is an integer from 0 to 255. Treating this as a "+"failure."),1}var[Zz,..._z]=process.argv.slice(2),zz=E();e({rootDir:process.cwd(),name:Zz,argv:_z,writers:zz}).then(async(z)=>{await zz.flush(),process.exit(z)});
|
|
17
17
|
|
|
18
|
-
//# debugId=
|
|
18
|
+
//# debugId=CFBB44DE9AA5510D64756E2164756E21
|
package/dist/console/run.js.map
CHANGED
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
"/**\n * The entry point `gemi run` spawns.\n *\n * Exposed through the exports map as `gemi/console/run` and resolved by the CLI\n * out of the *application's* `node_modules`, the same way `dev` and `start`\n * resolve `gemi/bun/preload`. That indirection is the point: the runner has to\n * be the application's copy of gemi, not the one bundled into `dist/bin/gemi.js`\n * — see the note at the top of `runner.ts`.\n *\n * Nothing but argv handling lives here, so that everything worth testing lives\n * in `runConsole`, which returns an exit code instead of taking one.\n */\nimport { processWriters } from \"./context\";\nimport { runConsole } from \"./runner\";\n\n// The tail is forwarded exactly as commander handed it over, `--` and all.\n// commander passes a `--` through as a literal operand (verified: `gemi run x --\n// --weird` arrives as `[\"--\", \"--weird\"]`), and `parse.ts` already treats a `--`\n// as \"everything after this is positional\". Stripping it here — which an earlier\n// draft did — consumed the escape hatch before the only thing that reads it,\n// leaving `-- --weird` reported as an unknown option and `-- --` the only way to\n// pass a flag-shaped value.\nconst [name, ...argv] = process.argv.slice(2);\n\nconst writers = processWriters();\n\n// `.then` rather than a top-level `await`, so this file typechecks under the\n// package's inherited `module: NodeNext` — the same TS1309 that keeps `bun/` out\n// of tsconfig.json's `include`. Bun runs it as ESM either way; this just avoids\n// buying a nested tsconfig for two lines.\nrunConsole({ rootDir: process.cwd(), name, argv, writers }).then(\n async (code) => {\n // Everything written has to reach the OS before the exit below discards it —\n // see `processWriters` for what that costs when it is skipped.\n await writers.flush();\n\n // Explicit, and not belt-and-braces. `kernel.destroy()` stops the scheduler,\n // but an open database pool, a Redis client or an unref'd timer will happily\n // hold the loop open after the work is done — a command that finishes and then\n // sits there, which is the failure `kernel/exit.test.ts` exists for and the\n // one `orm/context.test.ts` names by example.\n process.exit(code);\n },\n);\n"
|
|
11
11
|
],
|
|
12
12
|
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
13
|
+
"debugId": "CFBB44DE9AA5510D64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/dist/container/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Ui as e,Vi as o}from"../chunk-9c5s06gc.js";import"../chunk-j5q5ysng.js";export{o as Container,e as BindingResolutionError};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=E19128F1A525B31364756E2164756E21
|
package/dist/database/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ja as N}from"../chunk-
|
|
2
|
+
import{Ja as N}from"../chunk-xpz1bp50.js";import"../chunk-30xxc6r7.js";import"../chunk-fjhnn3de.js";import"../chunk-kkx8a35r.js";import"../chunk-c8vttyem.js";import{fi as j,gi as k,ii as w,ji as x,ki as z,li as A,mi as E,ni as F,oi as G,pi as H,qi as I,ri as J,si as K,ti as L}from"../chunk-fmea4sak.js";import"../chunk-j5q5ysng.js";export{A as isSqlite,E as isMysqlFamily,z as inferDialect,j as defineDatabaseConfig,k as databaseConfigDefaults,w as UnknownDatabaseUrlError,H as UnknownConnectionError,I as ReservedConnectionNameError,x as MissingDatabaseUrlError,N as DatabaseServiceProvider,L as DatabaseManager,G as DEFAULT_CONNECTION,J as CrossConnectionTransactionError,K as Connection,F as AmbiguousSqlitePathError};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=C52342301D7EB28864756E2164756E21
|
package/dist/email/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Ii as qS,Ji as JS}from"../chunk-3vt172y7.js";import{Pi as $S}from"../chunk-1p87gdd2.js";import{Ti as P}from"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-j5q5ysng.js";import{render as s}from"jsx-email";import B from"process";import{Buffer as n}from"buffer";import r from"path";import{fileURLToPath as PS}from"url";import{promisify as yS}from"util";import o from"child_process";import wS,{constants as fS}from"fs/promises";import h from"process";import l,{constants as zS}from"fs/promises";import g from"process";import NS from"os";import W from"fs";import RS from"fs";import b from"fs";var F;function HS(){try{return b.statSync("/.dockerenv"),!0}catch{return!1}}function XS(){try{return b.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(F===void 0)F=HS()||XS();return F}var O,US=()=>{try{return RS.statSync("/run/.containerenv"),!0}catch{return!1}};function R(){if(O===void 0)O=US()||L();return O}var u=()=>{if(g.platform!=="linux")return!1;if(NS.release().toLowerCase().includes("microsoft")){if(R())return!1;return!0}try{if(W.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!R()}catch{}if(W.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||W.existsSync("/run/WSL"))return!R();return!1},H=g.env.__IS_WSL_TEST__?u:u();var ES=(()=>{let S;return async function(){if(S)return S;let q="/etc/wsl.conf",J=!1;try{await l.access(q,zS.F_OK),J=!0}catch{}if(!J)return"/mnt/";let K=await l.readFile(q,{encoding:"utf8"}),Q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(K);if(!Q)return"/mnt/";return S=Q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),MS=async()=>{return`${await ES()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},v=async()=>{if(H)return MS();return`${h.env.SYSTEMROOT||h.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function X($,S,q){let J=(K)=>Object.defineProperty($,S,{value:K,enumerable:!0,writable:!0});return Object.defineProperty($,S,{configurable:!0,enumerable:!0,get(){let K=q();return J(K),K},set(K){J(K)}}),$}import{promisify as jS}from"util";import j from"process";import{execFile as xS}from"child_process";import{promisify as _S}from"util";import kS from"process";import{execFile as DS}from"child_process";var FS=_S(DS);async function T(){if(kS.platform!=="darwin")throw Error("macOS only");let{stdout:$}=await FS("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),q=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec($)?.groups.id??"com.apple.Safari";if(q==="com.apple.safari")return"com.apple.Safari";return q}import LS from"process";import{promisify as OS}from"util";import{execFile as WS,execFileSync as H0}from"child_process";var vS=OS(WS);async function m($,{humanReadableOutput:S=!0,signal:q}={}){if(LS.platform!=="darwin")throw Error("macOS only");let J=S?[]:["-ss"],K={};if(q)K.signal=q;let{stdout:Q}=await vS("osascript",["-e",$,J],K);return Q.trim()}async function C($){return m(`tell application "Finder" to set app_path to application file id "${$}" as string
|
|
3
3
|
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as TS}from"util";import{execFile as CS}from"child_process";var IS=TS(CS),_={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},E0=new Map(Object.entries(_));class c extends Error{}async function I($=IS){let{stdout:S}=await $("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),q=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(S);if(!q)throw new c(`Cannot find Windows browser in stdout: ${JSON.stringify(S)}`);let{id:J}=q.groups,K=J.lastIndexOf("."),Q=J.lastIndexOf("-"),Z=K===-1?void 0:J.slice(0,K),V=Q===-1?void 0:J.slice(0,Q);return _[J]??_[Z]??_[V]??{name:J,id:J}}var BS=jS(xS),AS=($)=>$.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,(S)=>S.toUpperCase());async function x(){if(j.platform==="darwin"){let $=await T();return{name:await C($),id:$}}if(j.platform==="linux"){let{stdout:$}=await BS("xdg-mime",["query","default","x-scheme-handler/http"]),S=$.trim();return{name:AS(S.replace(/.desktop$/,"").replace("-"," ")),id:S}}if(j.platform==="win32")return I();throw Error("Only macOS, Linux, and Windows are supported")}var bS=yS(o.execFile),A=r.dirname(PS(import.meta.url)),d=r.join(A,"xdg-open"),{platform:N,arch:p}=B;async function uS(){let $=await v(),S=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,q=n.from(S,"utf16le").toString("base64"),{stdout:J}=await bS($,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",q],{encoding:"utf8"}),K=J.trim(),Q={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return Q[K]?{id:Q[K]}:{}}var t=async($,S)=>{let q;for(let J of $)try{return await S(J)}catch(K){q=K}throw q},k=async($)=>{if($={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...$},Array.isArray($.app))return t($.app,(V)=>k({...$,app:V}));let{name:S,arguments:q=[]}=$.app??{};if(q=[...q],Array.isArray(S))return t(S,(V)=>k({...$,app:{name:V,arguments:q}}));if(S==="browser"||S==="browserPrivate"){let V={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},Y={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},G=H?await uS():await x();if(G.id in V){let z=V[G.id];if(S==="browserPrivate")q.push(Y[z]);return k({...$,app:{name:U[z],arguments:q}})}throw Error(`${G.name} is not supported as a default browser`)}let J,K=[],Q={};if(N==="darwin"){if(J="open",$.wait)K.push("--wait-apps");if($.background)K.push("--background");if($.newInstance)K.push("--new");if(S)K.push("-a",S)}else if(N==="win32"||H&&!R()&&!S){if(J=await v(),K.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),!H)Q.windowsVerbatimArguments=!0;let V=["Start"];if($.wait)V.push("-Wait");if(S){if(V.push(`"\`"${S}\`""`),$.target)q.push($.target)}else if($.target)V.push(`"${$.target}"`);if(q.length>0)q=q.map((Y)=>`"\`"${Y}\`""`),V.push("-ArgumentList",q.join(","));$.target=n.from(V.join(" "),"utf16le").toString("base64")}else{if(S)J=S;else{let V=!A||A==="/",Y=!1;try{await wS.access(d,fS.X_OK),Y=!0}catch{}J=B.versions.electron??(N==="android"||V||!Y)?"xdg-open":d}if(q.length>0)K.push(...q);if(!$.wait)Q.stdio="ignore",Q.detached=!0}if(N==="darwin"&&q.length>0)K.push("--args",...q);if($.target)K.push($.target);let Z=o.spawn(J,K,Q);if($.wait)return new Promise((V,Y)=>{Z.once("error",Y),Z.once("close",(G)=>{if(!$.allowNonzeroExitCode&&G>0){Y(Error(`Exited with code ${G}`));return}V(Z)})});return Z.unref(),Z},gS=($,S)=>{if(typeof $!=="string")throw TypeError("Expected a `target`");return k({...S,target:$})};function i($){if(typeof $==="string"||Array.isArray($))return $;let{[p]:S}=$;if(!S)throw Error(`${p} is not supported`);return S}function D({[N]:$},{wsl:S}){if(S&&H)return i(S);if(!$)throw Error(`${N} is not supported`);return i($)}var U={};X(U,"chrome",()=>D({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));X(U,"brave",()=>D({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));X(U,"firefox",()=>D({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));X(U,"edge",()=>D({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));X(U,"browser",()=>"browser");X(U,"browserPrivate",()=>"browserPrivate");var a=gS;function hS($){return Array.from($,(S)=>{let q=S.charCodeAt(0);return S==="/"||S==="\\"||q<32||q===127?"_":S}).join("")}async function e($,S,q={}){let J=`${$}/${new Date().toISOString()}${hS(S.subject)}`,K={to:S.to,cc:S.cc,bcc:S.bcc,from:S.from,subject:S.subject,headers:S.headers??{},attachments:S.attachments.map((Q)=>({filename:Q.filename,bytes:Buffer.byteLength(Q.content)})),scheduledAt:S.scheduledAt??null,idempotencyKey:S.idempotencyKey??null,locale:q.locale??null,text:S.text??null};return await Bun.write(`${J}.json`,`${JSON.stringify(K,null,2)}
|
|
4
4
|
`),await Bun.write(`${J}.html`,S.html),`${J}.html`}import{jsx as SS}from"react/jsx-runtime";class KS{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send($){let S=new this,q=P($S).defaultLocale,J=P(JS),{to:K=S.to,from:Q=S.from,subject:Z=typeof S.subject==="string"?S.subject:S.subject[$.locale||q],cc:V=S.cc,bcc:Y=S.bcc,attachments:G=S.attachments,data:z,headers:QS={}}=$,VS={...J.headers??{},...S.headers??{},...QS??{}},y=process.env.EMAIL_DEBUG==="true",E=y?"debug":J.driver?.provider??"custom",w=await J.filterRecipients(K);if(!w.length)return{id:null,provider:E,status:"skipped"};let[YS,ZS]=await Promise.all([S.render({...z,locale:$.locale}),S.renderText({...z,locale:$.locale})]),f={bcc:Y,cc:V,from:Q,subject:Z,to:w,attachments:G,html:YS,headers:VS,text:ZS,scheduledAt:$.scheduledAt,idempotencyKey:$.idempotencyKey};if(y){let GS=await e(`${process.env.ROOT_DIR}/.debug/emails`,f,{locale:$.locale});if(process.env.CI!=="true")await a(GS);return{id:`debug_${crypto.randomUUID()}`,provider:E,status:"debug"}}let M=await qS(J,f);return M.ok?{id:M.id,provider:E,status:"sent"}:{id:M.id,provider:E,status:"failed",error:M.error}}static async preview($){return await new this().render({...$.data,locale:$.locale})}async render($){let S=this.template;return await s(SS(S,{...$}))}async renderText($){let S=this.template;return await s(SS(S,{...$}),{plainText:!0})}}export{KS as Email};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=E1CCA7FC458B054C64756E2164756E21
|
package/dist/email/index.js.map
CHANGED
|
@@ -17,6 +17,6 @@
|
|
|
17
17
|
"import type { SendEmailParams } from \"../services/email/drivers/types\";\n\n/**\n * What `EMAIL_DEBUG=true` records about a send, next to the rendered HTML.\n *\n * The HTML alone can't say who a mail went to: plenty of templates render\n * nothing per recipient, so a test asserting \"this action mailed this user\"\n * could match another send with the same subject. The sidecar holds the\n * envelope the driver would have been handed, with `to` already filtered.\n */\nexport interface DebugEmailRecord {\n to: string[];\n cc: string[];\n bcc: string[];\n from: string;\n subject: string;\n headers: Record<string, string>;\n // Attachment bodies are left out: name and size are enough to assert on.\n attachments: Array<{ filename: string; bytes: number }>;\n scheduledAt: string | null;\n idempotencyKey: string | null;\n locale: string | null;\n text: string | null;\n}\n\n/**\n * A subject as a filename fragment. Path separators would write into a\n * subdirectory (or fail), and control characters aren't valid on every\n * filesystem. Everything else is kept, so a reader matching on the subject\n * substring keeps working.\n */\nexport function debugEmailFileSubject(subject: string) {\n return Array.from(subject, (char) => {\n const code = char.charCodeAt(0);\n return char === \"/\" || char === \"\\\\\" || code < 0x20 || code === 0x7f ? \"_\" : char;\n }).join(\"\");\n}\n\n/**\n * Writes `<dir>/<iso><subject>.json` and then `<dir>/<iso><subject>.html`, and\n * returns the HTML path. The sidecar goes first so a reader that sees the HTML\n * can rely on its envelope being there.\n */\nexport async function writeDebugEmail(\n dir: string,\n params: SendEmailParams,\n options: { locale?: string } = {},\n) {\n const base = `${dir}/${new Date().toISOString()}${debugEmailFileSubject(params.subject)}`;\n\n const record: DebugEmailRecord = {\n to: params.to,\n cc: params.cc,\n bcc: params.bcc,\n from: params.from,\n subject: params.subject,\n headers: params.headers ?? {},\n attachments: params.attachments.map((attachment) => ({\n filename: attachment.filename,\n bytes: Buffer.byteLength(attachment.content),\n })),\n scheduledAt: params.scheduledAt ?? null,\n idempotencyKey: params.idempotencyKey ?? null,\n locale: options.locale ?? null,\n text: params.text ?? null,\n };\n\n await Bun.write(`${base}.json`, `${JSON.stringify(record, null, 2)}\\n`);\n await Bun.write(`${base}.html`, params.html);\n\n return `${base}.html`;\n}\n"
|
|
18
18
|
],
|
|
19
19
|
"mappings": "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",
|
|
20
|
-
"debugId": "
|
|
20
|
+
"debugId": "E1CCA7FC458B054C64756E2164756E21",
|
|
21
21
|
"names": []
|
|
22
22
|
}
|
package/dist/facades/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Id as c,Jd as d,Kd as f,Ld as g,Md as i,Nd as j,Od as k,Pd as l,Qd as m,Rd as n,Sd as o,ae as p,gd as a,oe as q,pe as r,qe as s}from"../chunk-bz5gda3b.js";import"../chunk-zq1bhsdg.js";import"../chunk-fjhnn3de.js";import{Bg as e,Dg as h,cg as b}from"../chunk-299zx9dv.js";import"../chunk-2kegxt0s.js";import"../chunk-4c1npv8k.js";import"../chunk-ct1vwaw7.js";import"../chunk-6pqbsc5y.js";import"../chunk-kkx8a35r.js";import"../chunk-q6a30w8w.js";import"../chunk-c8vttyem.js";import"../chunk-pjz79c2c.js";import"../chunk-fmea4sak.js";import"../chunk-b336h3hj.js";import"../chunk-1p87gdd2.js";import"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-nfq127pg.js";import"../chunk-q0djcyj2.js";import"../chunk-0p6mdba6.js";import"../chunk-j5q5ysng.js";export{g as Url,e as Storage,k as Redis,a as Redirect,l as RateLimiter,f as Query,i as Meta,h as Log,m as Lock,d as Lang,q as Features,b as Facade,s as DB,n as Crypt,j as Cookie,o as Connections,r as ConnectionQueries,p as ChangeFeed,c as Auth};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=A2CC8DCEE739D76664756E2164756E21
|
package/dist/foundation/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Si as o,Ti as r}from"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-j5q5ysng.js";export{r as app,o as Application};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=FA68D1ADB69FDBB764756E2164756E21
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { RequestBreakerError } from "./Error";
|
|
2
|
+
import { Middleware } from "./Middleware";
|
|
3
|
+
/** Marks the second, same-origin hop, so the bounce happens at most once. */
|
|
4
|
+
export declare const SAME_SITE_BOUNCE_PARAM = "gemi_same_site";
|
|
5
|
+
/**
|
|
6
|
+
* Lets a page that needs the session be the target of a redirect back from
|
|
7
|
+
* another site: an OAuth connection's callback, a payment provider's return
|
|
8
|
+
* URL.
|
|
9
|
+
*
|
|
10
|
+
* The `access_token` cookie is `SameSite=Strict`, so the browser leaves it off
|
|
11
|
+
* a top-level navigation that another site started — the provider's redirect
|
|
12
|
+
* back included. `auth` then sees nobody and sends a signed-in user to the
|
|
13
|
+
* sign-in page. Listed ahead of `auth`, this answers such a request with a
|
|
14
|
+
* tiny page that loads the same URL again from this origin
|
|
15
|
+
* (`<meta http-equiv="refresh">`, no script). That second navigation is
|
|
16
|
+
* same-site, the cookie goes with it, and `auth` runs as usual.
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* "/billing/return": this.view("BillingReturn", handler).middleware(["same-site-bounce", "auth"]),
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* with `"same-site-bounce": SameSiteBounceMiddleware` in the middleware
|
|
23
|
+
* config's `aliases`. gemi's own `/auth/connections/:provider/callback` uses
|
|
24
|
+
* it without one.
|
|
25
|
+
*
|
|
26
|
+
* It bounces only a page load (`GET`, not a `.json` navigation) that carries
|
|
27
|
+
* no session token and no user, whose `Sec-Fetch-Site` is `cross-site` or
|
|
28
|
+
* absent, and only once: the second hop carries `?gemi_same_site=1`, and if
|
|
29
|
+
* there is still no session there the request goes on to `auth` and its
|
|
30
|
+
* sign-in redirect. Nothing is read or consumed on the bounced hop, so the
|
|
31
|
+
* route's own cookies (an OAuth `state`, which must be `SameSite=Lax` to
|
|
32
|
+
* arrive at all) are still there for the second.
|
|
33
|
+
*/
|
|
34
|
+
export declare class SameSiteBounceMiddleware extends Middleware {
|
|
35
|
+
run(): {};
|
|
36
|
+
}
|
|
37
|
+
/** The bounce page, as a request breaker so the dispatcher answers with it. */
|
|
38
|
+
export declare class SameSiteBounce extends RequestBreakerError {
|
|
39
|
+
location: string;
|
|
40
|
+
constructor(location: string);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=SameSiteBounceMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SameSiteBounceMiddleware.d.ts","sourceRoot":"","sources":["../../http/SameSiteBounceMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;IACtD,GAAG;CAsBJ;AAED,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,mBAAmB;IAClC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;CAiCpC"}
|
package/dist/http/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export type { Refusal, RefusalKind } from "./refusal";
|
|
|
16
16
|
export { HttpResponse, httpError, type HttpResponseOptions, type ClientHttpError, } from "./HttpResponse";
|
|
17
17
|
export { defineMiddlewareConfig, middlewareConfigDefaults, type MiddlewareConfig, } from "./middleware-config";
|
|
18
18
|
export { AuthenticationMiddleware } from "./AuthenticationMiddlware";
|
|
19
|
+
export { SameSiteBounceMiddleware, SAME_SITE_BOUNCE_PARAM } from "./SameSiteBounceMiddleware";
|
|
19
20
|
export { CacheMiddleware } from "./CacheMiddleware";
|
|
20
21
|
export { CorsMiddleware } from "./CorsMiddleware";
|
|
21
22
|
export { RateLimitMiddleware, RateLimitExceededError, clientIp, type RateLimitMiddlewareConfig, } from "./RateLimitMiddleware";
|
package/dist/http/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../http/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../http/index.ts"],"names":[],"mappings":"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"}
|
package/dist/http/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{$c as p,$e as ka,
|
|
2
|
+
import{$c as p,$e as ka,Gd as M,Hd as N,Se as ba,Te as ca,Ue as da,Ve as ea,We as fa,Xe as ga,Ye as ha,Zc as n,Ze as ia,_c as o,_e as ja,ad as q,af as la,bd as r,bf as ma,cd as y,dd as z,ed as A,fd as B,hd as C,id as D,jd as E,kd as F,ld as G,md as H,nd as I,sd as J,td as K,ud as L,ye as aa}from"../chunk-bz5gda3b.js";import"../chunk-zq1bhsdg.js";import"../chunk-fjhnn3de.js";import{$f as v,Bf as a,Cf as b,Df as d,If as e,Jf as f,Kf as g,Lf as h,Mf as i,Nf as j,Sf as k,Tf as l,Xf as m,Yf as s,Zf as t,_f as u,ag as w,bg as x,lg as O,mg as P,ng as Q,og as R,pg as S,qg as T,rg as U,sg as V,tg as W,ug as X,vg as Y,wg as Z,xg as _,yg as $}from"../chunk-299zx9dv.js";import{Lg as c}from"../chunk-2kegxt0s.js";import"../chunk-4c1npv8k.js";import"../chunk-ct1vwaw7.js";import"../chunk-6pqbsc5y.js";import"../chunk-kkx8a35r.js";import"../chunk-q6a30w8w.js";import"../chunk-c8vttyem.js";import"../chunk-pjz79c2c.js";import"../chunk-fmea4sak.js";import"../chunk-b336h3hj.js";import"../chunk-1p87gdd2.js";import"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-nfq127pg.js";import"../chunk-q0djcyj2.js";import"../chunk-0p6mdba6.js";import"../chunk-j5q5ysng.js";export{g as toRangeHeaderValue,n as toMiddlewareList,$ as safeFetch,f as resolveRange,e as parseRangeHeader,h as parseContentRange,r as parseByteSize,I as middlewareConfigDefaults,D as httpError,d as getCookies,j as formatUnsatisfiedContentRange,i as formatContentRange,ia as defineResourcePolicy,H as defineMiddlewareConfig,o as createUnsatisfiableResponse,p as createStreamResponse,E as createFileResponse,L as clientIp,Z as classifyAddress,F as ViewRouter,k as ValidationError,W as TooManyRedirectsError,U as TooLargeError,T as TimeoutError,ja as SitemapError,ka as Sitemap,N as SameSiteBounceMiddleware,_ as SafeResponse,O as SafeFetchError,M as SAME_SITE_BOUNCE_PARAM,la as RobotsTxt,ma as Robots,ha as ResourcePolicy,b as ResourceController,c as RequestBreakerError,K as RateLimitMiddleware,J as RateLimitExceededError,u as RangeNotSatisfiableError,fa as PoliciesServiceProvider,ga as Policies,q as PayloadTooLargeError,v as NotFoundError,X as NetworkError,G as Middleware,B as McpRouter,A as McpRouteDeclaration,z as McpModelParam,l as InvalidValidationRuleError,P as InvalidUrlError,t as InsufficientPermissionsError,Y as HttpStatusError,C as HttpResponse,m as HttpRequest,w as FileNotFoundError,S as DnsError,da as CorsMiddleware,a as Controller,V as ContentTypeError,ca as CacheMiddleware,ea as CSRFMiddleware,aa as BodyLimitMiddleware,Q as BlockedHostError,R as BlockedAddressError,s as AuthorizationError,ba as AuthenticationMiddleware,x as AuthenticationError,y as ApiRouter};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=0C8A9EF31E6F7B6464756E2164756E21
|
package/dist/http/index.js.map
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ca as y,da as p}from"../chunk-
|
|
2
|
+
import{ca as y,da as p}from"../chunk-620yeafr.js";import{ua as c,va as d,xa as l}from"../chunk-epvpmakp.js";import{Ai as o,Bi as n,Ci as a,Di as s,vi as e,wi as i,yi as t,zi as r}from"../chunk-b336h3hj.js";import"../chunk-j5q5ysng.js";export{o as setActiveLocale,r as seedDictionaries,t as preloadDictionaries,d as localeStrings,i as loadDictionary,n as getActiveLocale,e as dictionaryRegistrationMark,c as dictionaryLocales,l as dictionaryId,y as defineDictionary,s as createDictionarySink,a as __resetDictionaryRegistry,p as __gemi_dict__};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=5774A15A8DF6B20E64756E2164756E21
|
package/dist/i18n/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ca as T}from"../chunk-
|
|
2
|
+
import{ca as T}from"../chunk-620yeafr.js";import"../chunk-epvpmakp.js";import{fb as D}from"../chunk-15v719sq.js";import{Wc as b,Xc as w}from"../chunk-7pxdvvrz.js";import"../chunk-30xxc6r7.js";import{Jd as j}from"../chunk-bz5gda3b.js";import"../chunk-zq1bhsdg.js";import"../chunk-fjhnn3de.js";import"../chunk-299zx9dv.js";import"../chunk-2kegxt0s.js";import"../chunk-4c1npv8k.js";import"../chunk-ct1vwaw7.js";import"../chunk-6pqbsc5y.js";import"../chunk-kkx8a35r.js";import"../chunk-q6a30w8w.js";import"../chunk-c8vttyem.js";import"../chunk-pjz79c2c.js";import"../chunk-fmea4sak.js";import"../chunk-b336h3hj.js";import{Ki as V,Li as X,Mi as E,Ni as L,Oi as R,Pi as S}from"../chunk-1p87gdd2.js";import"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-nfq127pg.js";import"../chunk-q0djcyj2.js";import"../chunk-0p6mdba6.js";import"../chunk-j5q5ysng.js";import{createElement as J,Fragment as M,isValidElement as U}from"react";function $(q,B){let G=Object.values(B).some((z)=>typeof z==="function"&&U(z(""))),Q=/{{([^{}]+?)(?::([^{}\[\]]+?))?(?:\[(.*?)\])?}}/g;if(!G)return q.replace(Q,(W,O,_,Z)=>{let C=O.includes(":")?O.split(":")[0]:O,H=B[C];if(H===void 0)return W;if(typeof H==="function"){let K=H(Z!==void 0?Z:"");if(U(K))throw Error("JSX returned in string context");return String(K)}if(_)switch(_.toLowerCase()){case"number":return Number(H).toString();case"string":return String(H);case"boolean":return Boolean(H).toString();default:return String(H)}return String(H)});else{let z=[],W=0,O=null;while((O=Q.exec(q))!==null){let[_,Z,C,H]=O,F=O.index,K=Z.includes(":")?Z.split(":")[0]:Z;if(F>W)z.push(q.substring(W,F));let Y=B[K];if(Y===void 0)z.push(_);else if(typeof Y==="function"){let A=Y(H!==void 0?H:"");z.push(A)}else if(C)switch(C.toLowerCase()){case"number":z.push(Number(Y).toString());break;case"string":z.push(String(Y));break;case"boolean":z.push(Boolean(Y).toString());break;default:z.push(String(Y))}else z.push(String(Y));W=F+_.length}if(W<q.length)z.push(q.substring(W));return J(M,{},...z)}}class P{name;dictionary;constructor(q,B){this.name=q;this.dictionary=B}reference(q){if(typeof window<"u")throw Error("Cannot use reference in the browser");if(!this.dictionary?.[q])throw Error(`Translation not found for ${String(q)}`);return this.dictionary[q]}render(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B[0]};if(typeof window<"u")throw Error("Cannot use render in the browser");if(!this.dictionary?.[q]?.[G])throw Error(`Translation not found for ${String(q)} in ${String(G)}`);return $(this.dictionary[q][G],Q??{})}static create(q,B){return new P(q,B)}static text(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B?.[0]};if(!q?.[G])throw Error(`Translation not found for ${String(G)}`);return $(q[G],Q??{})}}async function N(q,B,...G){let{locale:Q=j.locale(),params:z}={params:{},...G[0]},O=(await q.load(String(Q)))[B];if(typeof O!=="string")throw Error(`Translation not found for "${B}" in "${String(Q)}" (dictionary ${q.id})`);return $(O,z??{})}export{w as translationConfigDefaults,N as translate,V as resolveLocale,X as negotiateLocale,L as isValidTimeZone,b as defineTranslationConfig,T as defineDictionary,R as createFormatter,S as Translator,D as TranslationServiceProvider,P as Dictionary,E as DEFAULT_TIME_ZONE};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=9BE351899A47E1A364756E2164756E21
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
"import { Lang } from \"../facades\";\nimport { parseTranslation } from \"../utils/parseTranslation\";\nimport type { ParseTranslationParamsServer, Prettify } from \"../utils/type\";\nimport type { DictionaryHandle } from \"./defineDictionary\";\nimport type { DictionaryTranslations } from \"./dictionaryShape\";\n\n/**\n * Read one string from a `defineDictionary` dictionary outside React — a\n * controller, a job, an email template.\n *\n * Async because a bundled dictionary loads its locale on demand. Server code\n * does not go through the bundler, so in practice this resolves without ever\n * yielding; the `await` is what makes the same call work either way.\n *\n * Kept out of `defineDictionary.ts` on purpose: that module is imported by\n * components and has to stay free of the server facades this one needs.\n */\nexport async function translate<\n T extends DictionaryTranslations,\n K extends keyof T & string,\n U extends keyof T[K],\n R = Prettify<ParseTranslationParamsServer<T[K][U] & string>>,\n>(\n dictionary: DictionaryHandle<T>,\n key: K,\n ...args: R extends Record<string, never>\n ? [args?: { locale?: U | (string & {}) }]\n : [args: { locale?: U | (string & {}); params: R }]\n): Promise<string> {\n const { locale = Lang.locale(), params } = { params: {}, ...args[0] };\n const strings = await dictionary.load(String(locale));\n const template = strings[key];\n\n if (typeof template !== \"string\") {\n throw new Error(\n `Translation not found for \"${key}\" in \"${String(locale)}\" (dictionary ${dictionary.id})`,\n );\n }\n\n return parseTranslation(template, (params ?? {}) as any) as string;\n}\n"
|
|
8
8
|
],
|
|
9
9
|
"mappings": ";g+BAAA,mBAAS,SAAe,eAAU,SAO3B,IAAS,JAAgB,JAAC,HAAkB,HAAwB,JAEzE,DAAM,HAAS,EAAO,EAAO,JAAM,HAAE,AACnC,JAAC,DACC,EAAO,DAAU,OACjB,HAAgB,HAAkC,HAAE,CAAC,CACzD,EAMM,EAAQ,kDAEd,GAAI,CAAC,EAqCH,OAnCe,EAAS,QAAQ,EAAO,CAAC,EAAO,EAAM,EAAM,IAAY,CAErE,IAAM,EAAY,EAAK,SAAS,GAAG,EAAI,EAAK,MAAM,GAAG,EAAE,GAAK,EAEtD,EAAQ,EAAO,GACrB,GAAI,IAAU,OACZ,OAAO,EAGT,GAAI,OAAO,IAAU,WAAY,CAG/B,IAAM,EAAiB,EADD,IAAY,OAAY,EAAU,EACd,EAE1C,GAAI,EAAe,CAAc,EAC/B,MAAU,MAAM,gCAAgC,EAElD,OAAO,OAAO,CAAc,EAI9B,GAAI,EACF,OAAQ,EAAK,YAAY,OAClB,SACH,OAAO,OAAO,CAAK,EAAE,SAAS,MAC3B,SACH,OAAO,OAAO,CAAK,MAChB,UACH,OAAO,QAAQ,CAAK,EAAE,SAAS,UAE/B,OAAO,OAAO,CAAK,EAGzB,OAAO,OAAO,CAAK,EACpB,EAEI,KAEL,IAAM,EAAqC,CAAC,EACxC,EAAY,EACZ,EAAgC,KAEpC,OAAQ,EAAQ,EAAM,KAAK,CAAQ,KAAO,KAAM,CAC9C,IAAO,EAAW,EAAM,EAAM,GAAW,EACnC,EAAa,EAAM,MAGnB,EAAY,EAAK,SAAS,GAAG,EAAI,EAAK,MAAM,GAAG,EAAE,GAAK,EAG5D,GAAI,EAAa,EACf,EAAM,KAAK,EAAS,UAAU,EAAW,CAAU,CAAC,EAGtD,IAAM,EAAQ,EAAO,GACrB,GAAI,IAAU,OAEZ,EAAM,KAAK,CAAS,EACf,QAAI,OAAO,IAAU,WAAY,CAGtC,IAAM,EAAiB,EADD,IAAY,OAAY,EAAU,EACd,EAC1C,EAAM,KAAK,CAAc,EACpB,QAAI,EAET,OAAQ,EAAK,YAAY,OAClB,SACH,EAAM,KAAK,OAAO,CAAK,EAAE,SAAS,CAAC,EACnC,UACG,SACH,EAAM,KAAK,OAAO,CAAK,CAAC,EACxB,UACG,UACH,EAAM,KAAK,QAAQ,CAAK,EAAE,SAAS,CAAC,EACpC,cAEA,EAAM,KAAK,OAAO,CAAK,CAAC,EAG5B,OAAM,KAAK,OAAO,CAAK,CAAC,EAG1B,EAAY,EAAa,EAAU,OAIrC,GAAI,EAAY,EAAS,OACvB,EAAM,KAAK,EAAS,UAAU,CAAS,CAAC,EAI1C,OAAO,EAAc,EAAU,CAAC,EAAG,GAAG,CAAK,GChGxC,MAAM,CAAmC,CAErC,KACA,WAFT,WAAW,CACF,EACA,EACP,CAFO,YACA,kBAGT,SAAS,CAAC,EAAc,CACtB,GAAI,OAAO,OAAW,IACpB,MAAU,MAAM,qCAAqC,EAEvD,GAAI,CAAC,KAAK,aAAa,GACrB,MAAU,MAAM,6BAA6B,OAAO,CAAG,GAAG,EAE5D,OAAO,KAAK,WAAW,GAGzB,MAIC,CACC,KACG,EAGH,CACA,IAAQ,SAAS,EAAK,OAAO,EAAG,UAAW,CACzC,OAAQ,CAAC,KACN,EAAK,EACV,EAEA,GAAI,OAAO,OAAW,IACpB,MAAU,MAAM,kCAAkC,EAGpD,GAAI,CAAC,KAAK,aAAa,KAAO,GAC5B,MAAU,MACR,6BAA6B,OAAO,CAAG,QAAQ,OAAO,CAAM,GAC9D,EAEF,OAAO,EAAiB,KAAK,WAAW,GAAK,GAAS,GAAU,CAAC,CAAC,QAU7D,OAAoC,CAAC,EAAc,EAAiB,CACzE,OAAO,IAAI,EAAc,EAAM,CAAY,QAGtC,KAA+D,CACpE,KACG,EAWK,CACR,IAAQ,SAAS,EAAK,OAAO,EAAG,UAAW,CAAE,OAAQ,CAAC,KAAM,IAAO,EAAG,EAEtE,GAAI,CAAC,IAAU,GACb,MAAU,MAAM,6BAA6B,OAAO,CAAM,GAAG,EAG/D,OAAO,EAAiB,EAAQ,GAAS,GAAU,CAAC,CAAC,EAEzD,CC7EA,eAAsB,CAKrB,CACC,EACA,KACG,EAGc,CACjB,IAAQ,SAAS,EAAK,OAAO,EAAG,UAAW,CAAE,OAAQ,CAAC,KAAM,EAAK,EAAG,EAE9D,GADU,MAAM,EAAW,KAAK,OAAO,CAAM,CAAC,GAC3B,GAEzB,GAAI,OAAO,IAAa,SACtB,MAAU,MACR,8BAA8B,UAAY,OAAO,CAAM,kBAAkB,EAAW,KACtF,EAGF,OAAO,EAAiB,EAAW,GAAU,CAAC,CAAS",
|
|
10
|
-
"debugId": "
|
|
10
|
+
"debugId": "9BE351899A47E1A364756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/dist/kernel/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ja as g}from"../chunk-
|
|
2
|
+
import{Ja as g}from"../chunk-xpz1bp50.js";import{eb as jj}from"../chunk-xeh1mw1d.js";import{fb as w}from"../chunk-15v719sq.js";import{Bb as S,Cb as h,Db as R,Fb as u,Gb as l,Hb as v,Ib as d,Lb as c,Mb as p,Pb as n,Sb as a,Tb as s,rb as e,sb as T,tb as D,ub as Jj,vb as A,wb as y,xb as P}from"../chunk-khd9ft0s.js";import"../chunk-vy0tnx2s.js";import"../chunk-wdg83tgd.js";import"../chunk-675kzd7z.js";import{Rc as zj}from"../chunk-d4dd7jde.js";import"../chunk-7pxdvvrz.js";import"../chunk-30xxc6r7.js";import{Ad as Oj,Dd as Hj,Ed as Lj,Ee as I,Fe as q,Je as K,Ke as E,Le as o,Me as m,Ne as C,Oe as Q,Pe as i,Qe as r,zd as Nj,ze as x}from"../chunk-bz5gda3b.js";import"../chunk-zq1bhsdg.js";import"../chunk-fjhnn3de.js";import{Xf as b}from"../chunk-299zx9dv.js";import{Kg as B}from"../chunk-2kegxt0s.js";import{Qg as L}from"../chunk-4c1npv8k.js";import"../chunk-ct1vwaw7.js";import{$g as t}from"../chunk-6pqbsc5y.js";import{th as V,yh as f}from"../chunk-kkx8a35r.js";import"../chunk-q6a30w8w.js";import"../chunk-c8vttyem.js";import"../chunk-pjz79c2c.js";import"../chunk-fmea4sak.js";import"../chunk-b336h3hj.js";import"../chunk-3vt172y7.js";import"../chunk-1p87gdd2.js";import{Qi as _,Si as O,Ti as F}from"../chunk-zb8zzf5x.js";import"../chunk-9c5s06gc.js";import"../chunk-nfq127pg.js";import"../chunk-q0djcyj2.js";import{ej as M}from"../chunk-0p6mdba6.js";import"../chunk-j5q5ysng.js";function Yj(j){let X=j.headers.get("Cache-Control")?.toLowerCase()??"";return/(^|[\s,])(public|s-maxage)\b/.test(X)}var Zj=new Set,$j={refusal:null,apply:(j)=>j,carried:null};async function k(j){let X=F(x);if(X.config.global.length===0)return $j;let{pathname:Z}=new URL(j.url),W=M(Z),z=new b(j,{},W?"api":"view","");return await L.run(z,async()=>{let $=L.getStore(),{headers:N,cookies:Xj}=$,Y=(J)=>{if(!Yj(J))return Q(J,N,Xj);let G=new Headers(N);return G.delete("Set-Cookie"),Q(J,G,Zj)};try{return await X.runGlobalMiddleware(),{refusal:null,apply:Y,carried:{user:$.user}}}catch(J){let G=!W&&Z.endsWith(".json");if(J?.kind===B){let H=W?C(J.payload.api):G?E(J.payload.viewData??J.payload.api):K(J.payload.view);return{refusal:Y(H),apply:Y,carried:null}}if(V(J)&&(W||G))return{refusal:Y(m()),apply:Y,carried:null};if(f(J)){console.error(J);let H=W||G?I():K(q());return{refusal:Y(H),apply:Y,carried:null}}throw J}finally{$.destroy()}})}var U=[d,p,g,R,S,s,y,h,c,l,D,u,a,v,w,n,P,A];class Wj{config={};providers=[];services=[];serviceInstances=[];serviceTokens=new Set;servicesBooted=!1;models=[];app=new O;boot(){if(this.models.length>0)jj(...this.models);else Gj();this.app.config.merge(this.config),O.setInstance(this.app),this.app.registerMany([...U,...this.providers]),this.registerServices()}registerServices(){let j=this.serviceTokens;this.serviceInstances=[],this.serviceTokens=new Set,this.servicesBooted=!1;let X=new Map;for(let Z of this.services){let W=typeof Z==="function"?new Z:Z,z=W.constructor;if(!z.token)throw Error(`Service [${z.name}] is listed in \`services\` but does not declare a \`static token\`.`);let $=X.get(z.token);if($)throw Error(`Services [${$}] and [${z.name}] both declare the token "${z.token}". Tokens are the container's keys, so they must be unique.`);X.set(z.token,z.name);let N=z;if(!j.has(z.token)&&this.app.bound(N))throw Error(`Service [${z.name}] declares the token "${z.token}", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`);this.app.instance(N,W),this.serviceInstances.push(W),this.serviceTokens.add(z.token)}}async waitForBoot(){await this.app.boot(),await this.bootServices(),Jj(this.app)}async bootServices(){if(this.servicesBooted)return;for(let j of this.serviceInstances)await j.boot();this.servicesBooted=!0}shutdown(j){return this.run(()=>this.app.shutdown(j))}run(j){return _.run(this.app,j)}resolve(j){return this.app.make(j)}apiRoutes(){return this.app.make(i)}viewRoutes(){return this.app.make(o)}domains(){return this.app.make(r)}queue(){return this.app.make(zj)}mcpHttp(){return this.app.config.get("route.mcp.remote.enabled")===!0?this.app.make(e):null}globalMiddleware(j){return k(j)}destroy(){if(this.app.resolved(T))this.app.make(T).stop();if(this.app.flush(),O.getInstance()===this.app)O.setInstance(void 0);_.disable()}}function Gj(){if(Bun.env.NODE_ENV==="production")return;let j=t();if(j.length===0)return;console.warn(`[gemi] ${j.length} model${j.length===1?" is":"s are"} registered, but Kernel.models is empty.
|
|
3
3
|
Nested relation reads resolve a model by name, so a policy on a subclass that does not own its
|
|
4
4
|
`+" name is skipped inside every include \u2014 scoped at the root, "+`unscoped in an include, with nothing
|
|
5
5
|
to notice it. Declaring the modules registers each class under its own name and audits the set:
|
|
@@ -13,4 +13,4 @@ import{Ja as g}from"../chunk-xtzn0qfh.js";import{eb as jj}from"../chunk-1z1rj2zq
|
|
|
13
13
|
|
|
14
14
|
See docs/orm.md#your-model-class. Development only; this never prints in production.`)}export{Oj as oneTimeSecretMatches,Nj as hashOneTimeSecret,U as frameworkProviders,Lj as UserProvider,Hj as SESSION_SELECT,Wj as Kernel};
|
|
15
15
|
|
|
16
|
-
//# debugId=
|
|
16
|
+
//# debugId=399953363567446964756E2164756E21
|