gemi 0.54.2 → 0.54.3
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/{chunk-3xa807p3.js → chunk-4zmcbmf9.js} +1 -1
- package/dist/{chunk-efp54183.js → chunk-9nskvzpv.js} +1 -1
- package/dist/{chunk-qq2yhtpp.js → chunk-jjvnmyw4.js} +1 -1
- package/dist/{chunk-05edp1zf.js → chunk-p8fm3tjy.js} +2 -2
- package/dist/{chunk-05edp1zf.js.map → chunk-p8fm3tjy.js.map} +1 -1
- package/dist/{chunk-n382ygnp.js → chunk-tpyhhdq5.js} +24 -24
- package/dist/{chunk-n382ygnp.js.map → chunk-tpyhhdq5.js.map} +5 -4
- package/dist/facades/index.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/kernel/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/router/htmlInsertionPoint.d.ts +64 -0
- package/dist/services/router/htmlInsertionPoint.d.ts.map +1 -0
- package/dist/services/router/streamQueryInjection.d.ts +10 -0
- package/dist/services/router/streamQueryInjection.d.ts.map +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-3xa807p3.js.map → chunk-4zmcbmf9.js.map} +0 -0
- /package/dist/{chunk-efp54183.js.map → chunk-9nskvzpv.js.map} +0 -0
- /package/dist/{chunk-qq2yhtpp.js.map → chunk-jjvnmyw4.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{c as D,d as v}from"./chunk-
|
|
2
|
+
import{c as D,d as v}from"./chunk-p8fm3tjy.js";import"./chunk-agabw2w1.js";import{Ib as q}from"./chunk-xxw0gz4q.js";import{fc as P,ic as V}from"./chunk-tpyhhdq5.js";import"./chunk-pgjk5ft3.js";import"./chunk-k8endm5j.js";import"./chunk-e3mggavt.js";import"./chunk-85av4ncy.js";import"./chunk-k14dmqwh.js";import"./chunk-0weeq0ke.js";import"./chunk-g5tj10p8.js";import"./chunk-nncwsdzz.js";import"./chunk-w6gb9gc5.js";import"./chunk-6j1z2cqt.js";import"./chunk-7f5ad759.js";import{join as E}from"path";import{Duplex as o}from"stream";import{constants as T,createBrotliCompress as l,createGzip as n}from"zlib";var i=["br","gzip"],t=1024,a=5,s=19,r=6;function e($){if($===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test($.trim()))return 1;let J=Number($.trim());return Number.isFinite(J)?Math.min(J,1):1}function JJ($){if($===null||$===void 0)return null;let J=new Map;for(let H of $.split(",")){let[Z,...X]=H.split(";"),j=Z.trim().toLowerCase();if(j==="")continue;let x=1;for(let K of X){let O=K.indexOf("=");if(O===-1)continue;if(K.slice(0,O).trim().toLowerCase()==="q"){x=e(K.slice(O+1));break}}J.set(j,x)}return J}function $J($,J=i){let H=JJ($);if(!H)return null;let Z=H.get("*"),X=null,j=0;for(let x of J){let K=H.get(x)??Z??0;if(K>j)X=x,j=K}return X}function HJ($,J){if(!$)return!1;return $.split(",").some((H)=>H.trim().toLowerCase().split("=")[0].trim()===J)}function UJ($,J){if($==="HEAD")return!1;if(!J.body)return!1;if(J.status<200||J.status===204||J.status===206||J.status===304)return!1;if(J.headers.has("Content-Range"))return!1;let H=J.headers.get("Content-Type");if(!H||!/^\s*text\/html\s*(;|$)/i.test(H))return!1;let Z=J.headers.get("Content-Encoding");if(Z&&Z.trim().toLowerCase()!=="identity")return!1;if(HJ(J.headers.get("Cache-Control"),"no-transform"))return!1;let X=J.headers.get("Content-Length");if(X!==null&&Number(X)<t)return!1;return!0}function ZJ($){let J=$==="br"?l({params:{[T.BROTLI_PARAM_QUALITY]:a,[T.BROTLI_PARAM_LGWIN]:s},flush:T.BROTLI_OPERATION_FLUSH}):n({level:r,flush:T.Z_SYNC_FLUSH});return o.toWeb(J)}function zJ($){let J=$.get("Vary");if(!J){$.set("Vary","Accept-Encoding");return}let H=J.split(",").map((Z)=>Z.trim().toLowerCase());if(H.includes("*")||H.includes("accept-encoding"))return;$.append("Vary","Accept-Encoding")}function F($,J){if(!UJ($.method,J))return J;let H=new Headers(J.headers);zJ(H);let Z=$J($.headers.get("Accept-Encoding"));if(!Z)return new Response(J.body,{status:J.status,statusText:J.statusText,headers:H});let X;try{X=ZJ(Z)}catch{return new Response(J.body,{status:J.status,statusText:J.statusText,headers:H})}return H.set("Content-Encoding",Z),H.delete("Content-Length"),new Response(J.body.pipeThrough(X),{status:J.status,statusText:J.statusText,headers:H})}function y($){let J=$.toString(),H=new Bun.CryptoHasher("sha1");return H.update(J),H.digest("hex")}if(!globalThis.URLPattern)globalThis.URLPattern=P;import{exists as GJ}from"fs/promises";var g="app/client.tsx";function w($){let J=$["app/client.tsx"]?.file;if(!J)return;return{module:`/${J}`,preload:S($,"app/client.tsx")}}function S($,J){let H=[],Z=new Set,X=(j)=>{if(Z.has(j))return;Z.add(j);let x=$[j];if(!x?.file)return;H.push(`/${x.file}`);for(let K of x.imports??[])X(K)};return X(J),H}var I=q(),XJ=E(I,"app"),L=E(I,"dist");async function VJ($,J){let H=await import(`${L}/client/.vite/manifest.json`),Z=await import(`${L}/server/.vite/manifest.json`);process.env.ROOT_DIR=I,process.env.APP_DIR=XJ,process.env.DIST_DIR=L;let X={},j={},x={},K={},O={},f=(U,G)=>`"${U}": () => import("${G}")`,k=[];for(let U of["404",...$.getFlatComponentTree.call($)]){let G=Z[`app/views/${U}.tsx`];if(!G?.file){console.log(`Server file not found for ${U}`),console.log(G);let W=Object.keys(Z),A=`app/views/${U}.tsx`;console.log(`${A} not found in server manifest`),console.log(W)}let Q=await import(`${process.env.DIST_DIR}/server/${G?.file}`);X[U]=Q.default,j[U]=Q.OpenGraph,x[U]=Q;let z=H[`app/views/${U}.tsx`];if(z?.css&&z?.css.length>0)K[U]=z?.css;if(z)k.push(f(U,`/${z?.file}`)),O[U]=S(H,`app/views/${U}.tsx`)}let u=`{${k.join(",")}}`,N=w(H);if(!N)console.error(`Client manifest has no "${g}" entry \u2014 dist/client is incomplete, so documents will render but never hydrate.`);let m=H["app/client.tsx"]?.css??[],h=(await Promise.all(m.map((U)=>Bun.file(`${L}/client/${U}`).text()))).join(`
|
|
3
3
|
`),c=new P({pathname:"/*.:filetype(png|txt|js|css|jpg|svg|jpeg|avif|webp|ico|ttf|map)"});async function p(U){let{pathname:G}=new URL(U.url),Q=G.startsWith("/.well-known"),z=c.test({pathname:G})||Q,W=G.startsWith("/api");if(z&&!W){let A=new URL(U.url),b=U.url.replace(A.origin,"").split("?")[0],B=`${L}/client${b.replace("/assets/assets","/assets")}`,C=await GJ(B);if(!C&&A.pathname.includes(".js"))return new Response(`if(caches){caches?.delete("${B}")}window.location.reload();export {}`,{headers:{"Content-Type":"application/javascript"}});if(!C){if(G===V||G.startsWith(`${V}/`))return new Response("Not found",{status:404});return await R(U,G)}try{let Y=Bun.file(B),_=y(Y.lastModified);return new Response(Y.stream(),{headers:{"Content-Type":Y.type,"Cache-Control":"public, max-age=31536000, must-revalidate","Content-Length":String(Y.size),ETag:_}})}catch(Y){return $.onException?.(Y),new Response("Not found",{status:404})}}return await R(U,G)}async function R(U,G){let Q=$.fetch.bind($);try{let z=await Q(U);if(z instanceof Response)return z;else{let W=[];return W.push({content:h}),await z({getStyles:async(b)=>{if(!b)return D([]);for(let B of b){let C=H[`app/views/${B}.tsx`];for(let Y of C?.css??[]){let _=Bun.file(`${process.env.DIST_DIR}/client/${Y}`);W.push({id:Y,content:await _.text()})}}return D(W)},clientEntry:N,modulePreloadManifest:O,loaders:u,viewImportMap:X,viewModules:x,ogMap:j,cssManifest:K})}}catch(z){if(console.error(z),G.startsWith("/api"))return new Response(JSON.stringify({error:z.message}),{status:500,headers:{"Content-Type":"application/json"}});return $.onException?.(z),new Response(z.stack,{status:500})}}let d=(process.env.GEMI_COMPRESSION??"auto").toLowerCase()!=="off",M=Bun.serve({maxRequestBodySize:10737418240,fetch:async(U,G)=>{if(!U.headers.get("x-forwarded-for")){let z=G.requestIP(U);if(z)U.headers.set("x-forwarded-for",z.address)}let Q=await J(U,p);return d?F(U,Q):Q},idleTimeout:Number(process.env.SERVER_IDLE_TIMEOUT??10),port:process.env.PORT||5173});return v({port:M.port,rootDir:I}),M}export{VJ as httpProd};
|
|
4
4
|
|
|
5
5
|
//# debugId=BBA728563DA44B6264756E2164756E21
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ab as U,Cb as j,Db as g,rb as y,sb as N}from"./chunk-1sh6kqjn.js";import{Lb as F}from"./chunk-n1tkn8gv.js";import{$b as V,Nb as J,Vb as Q,ac as $,bc as q,hc as I,jc as z,kc as O,pc as R}from"./chunk-
|
|
2
|
+
import{Ab as U,Cb as j,Db as g,rb as y,sb as N}from"./chunk-1sh6kqjn.js";import{Lb as F}from"./chunk-n1tkn8gv.js";import{$b as V,Nb as J,Vb as Q,ac as $,bc as q,hc as I,jc as z,kc as O,pc as R}from"./chunk-tpyhhdq5.js";import{ae as p,fe as K,je as f}from"./chunk-85av4ncy.js";import{Se as B}from"./chunk-g5tj10p8.js";import{Xe as A}from"./chunk-kv2ep453.js";import{Ze as S}from"./chunk-w6gb9gc5.js";async function u(m){try{if(!await m.shouldRun.call(m))return}catch(x){console.error(`Error evaluating shouldRun for cron job ${m.name}:`,x);return}try{await m.onTick.call(m)}catch(x){console.error(`Error executing cron job ${m.name}:`,x)}try{await m.callback.call(m)}catch(x){console.error(`Error in cron job ${m.name}:`,x)}try{await m.onComplete.call(m)}catch(x){console.error(`Error completing cron job ${m.name}:`,x)}}class _{static token="scheduler";handles=[];resolved;constructor(m){this.resolved=m.jobs}get jobs(){return[...this.resolved]}useJobs(m){this.resolved=m}start(m=(x)=>x()){if(this.resolved.length===0)return;let x=globalThis.__gemiCronJobs??=new Map,P=new Map;for(let C of this.resolved){let M=new C;if(!M.name){console.error(`Cron job must have a name \u2014 ${C.name||"an anonymous class"} has none, so it is not scheduled. If this is a base class that other jobs extend, move it out of the discovered directory: \`abstract\` does not survive to runtime, so a class under app/cron is indistinguishable from a job.`);continue}if(!M.cron){console.error(`Cron job must have an expression. Job: ${M.name}`);continue}let E=P.get(M.name);if(E!==void 0){console.error(`Two cron jobs claim the name "${M.name}" \u2014 ${E} is scheduled and ${C.name||"an anonymous class"} is not. A name is the scheduler's key, so only one job can hold it. Rename one.`);continue}P.set(M.name,C.name||"an anonymous class"),x.get(M.name)?.stop();let X=Bun.cron(M.cron,()=>m(()=>u(M)));x.set(M.name,X),this.handles.push(X)}}stop(){for(let m of this.handles)m.stop();this.handles=[]}}class w extends F{register(){this.app.singleton(K,()=>new K(this.app.config.get("auth",{})))}}class d extends F{register(){this.app.singleton(_,()=>new _(B(U(),this.app.config.get("schedule",{}))))}async boot(){let m=this.app.make(_),x=this.app.config.get("schedule",{});if(x.jobs===void 0){let{jobsDir:C}=B(U(),x);m.useJobs(await g(C))}if(process.env.GEMI_NO_SCHEDULE==="1")return;let P=this.app;m.start((C)=>S.run(P,C))}}class s extends F{register(){this.app.singleton(A,()=>new A(this.app.config.get("mail",{})))}}class i extends F{register(){this.app.singleton(Q,()=>new Q(this.app.config.get("filesystem",{})))}}class r extends F{register(){this.app.singleton(V,()=>new V(this.app.config.get("image",{})))}}class a extends F{register(){this.app.instance(I,new I)}}function Wm(m){return m}function D(){return{maxFileSize:10485760,onLogFileClosed:()=>{},onLogCreated:()=>{}}}class n extends F{register(){this.app.singleton($,()=>new $(B(D(),this.app.config.get("log",{}))))}async boot(){await this.app.make($).boot()}}class o extends F{register(){this.app.singleton(q,()=>new q(B(p(),this.app.config.get("middleware",{}))))}}function hm(m){return m}function v(){return{channels:{}}}class t extends F{register(){this.app.singleton(J,()=>new J(B(v(),this.app.config.get("broadcast",{}))))}}class e extends F{register(){this.app.singleton(N,()=>new N(this.app.config.get("queue",{})))}async boot(){let m=this.app.config.get("queue",{});if(m.jobs!==void 0)return;let{jobsDir:x}=B(y(),m);this.app.make(N).useJobs(await j(x))}}class L{}function k(m,x){return Math.floor(m/x)*x}function mm(m,x){if(x<=0)return 0;return Math.min(1,Math.max(0,(x-m)/x))}function T(m,x,P,C){return x*mm(P,C)+m}function xm(m){let{current:x,previous:P,elapsed:C,window:M,limit:E,cost:X}=m,G=E-X;if(G<0)return M;let H=Math.max(0,M-C);if(P>0){let Y=M*(1-(G-x)/P);if(Y<=M)return Math.max(0,Math.ceil(Y-C))}if(x<=G)return H;if(x<=0)return H;let Z=M*(1-G/x);return H+Math.max(0,Math.ceil(Z))}function l(m){let{allowed:x,current:P,previous:C,now:M,elapsed:E,window:X,limit:G,cost:H}=m;if(x){let Y=T(P,C,E,X);return{allowed:!0,limit:G,remaining:Math.max(0,Math.floor(G-Y)),resetAt:M-E+X,retryAfter:0}}let Z=xm({current:P,previous:C,elapsed:E,window:X,limit:G,cost:H});return{allowed:!1,limit:G,remaining:0,resetAt:M+Z,retryAfter:Z}}class W extends L{buckets=new Map;maxKeys;constructor(m={}){super();this.maxKeys=Math.max(1,m.maxKeys??1e5)}consume(m){let{key:x,limit:P,window:C}=m,M=m.cost??1,E=Date.now(),X=k(E,C),G=E-X,H=this.roll(x,C,X),Y=T(H.current,H.previous,G,C)+M<=P;if(Y)H.current+=M;if(this.buckets.delete(x),this.buckets.set(x,H),this.buckets.size>this.maxKeys)this.evict(E);return l({allowed:Y,current:H.current,previous:H.previous,now:E,elapsed:G,window:C,limit:P,cost:M})}clear(){this.buckets.clear()}get size(){return this.buckets.size}roll(m,x,P){let C=this.buckets.get(m);if(!C||C.window!==x)return{window:x,windowStart:P,current:0,previous:0};if(C.windowStart===P)return C;if(C.windowStart+x===P)return C.previous=C.current,C.current=0,C.windowStart=P,C;return C.previous=0,C.current=0,C.windowStart=P,C}evict(m){for(let[x,P]of this.buckets)if(m-P.windowStart>=P.window*2)this.buckets.delete(x);for(let x of this.buckets.keys()){if(this.buckets.size<=this.maxKeys)break;this.buckets.delete(x)}}}function Mx(m){return m}function h(){return{driver:new W,limit:1000,window:60}}class Cm extends F{register(){this.app.singleton(f,()=>new f(B(h(),this.app.config.get("ratelimiter",{}))))}}function Zx(m){return m}function b(){return{url:process.env.REDIS_URL,options:void 0}}class Pm extends F{register(){this.app.singleton(R,()=>new R(B(b(),this.app.config.get("redis",{}))))}}function c(m,x){let P=m.get(x);if(!P)throw Error(`Missing "${x}" configuration. Route dispatching needs a root router \u2014 declare it in "app/config/route.ts".`);return P}class Fm extends F{register(){this.app.singleton(O,()=>new O(c(this.app.config,"route.api"))),this.app.singleton(z,()=>new z(c(this.app.config,"route.view")))}boot(){this.app.make(O),this.app.make(z)}}
|
|
3
3
|
export{_ as Sa,w as Ta,d as Ua,s as Va,i as Wa,r as Xa,a as Ya,Wm as Za,D as _a,n as $a,o as ab,hm as bb,v as cb,t as db,e as eb,k as fb,l as gb,L as hb,W as ib,Mx as jb,h as kb,Cm as lb,Zx as mb,b as nb,Pm as ob,Fm as pb};
|
|
4
4
|
|
|
5
5
|
//# debugId=7566831479BE7F6964756E2164756E21
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{b as x,d as D}from"./chunk-
|
|
2
|
+
import{b as x,d as D}from"./chunk-p8fm3tjy.js";import{l as y,m as I}from"./chunk-f4e7fh95.js";import"./chunk-gn9zjgep.js";import"./chunk-f418jh9k.js";import"./chunk-agabw2w1.js";import"./chunk-fcqc3e3r.js";import"./chunk-7f5ad759.js";import{IncomingMessage as T,ServerResponse as g}from"http";import{Socket as w}from"net";import{join as E}from"path";import{createServer as k}from"vite";function N(H){return H.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
|
|
3
3
|
`).split(`
|
|
4
4
|
`).map((J)=>J.trim()).filter((J)=>J.length>0).join(`
|
|
5
5
|
`).trim()}function R(H){return`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{s as j}from"./chunk-agabw2w1.js";import{createElement as o}from"react";function y(i,n){let s=Object.keys(n).sort((b,u)=>u.length-b.length).map((b)=>b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),r=new RegExp(s.join("|"),"g");return i.replace(r,(b)=>n[b])}async function J(i,n,s=[]){let r=[...s.map((t)=>`${i}/views/${t}.tsx`),`${i}/views/RootLayout.tsx`],b=new Set;for(let t of r){let e=n.moduleGraph.getModulesByFile(t);if(e)for(let g of e)b.add(g)}let u=[],p=[],c={};for(let t of b)if(t)for(let e of t.importedModules){if(e.file.includes("module.css"))c[e.file]=e.ssrTransformResult.map.sourcesContent.join("");if(e.file.includes(".css"))p.push(e.file)}for(let t of p){let e=await n.transformRequest(t+"?direct"),g=t.includes("module.css"),a="";if(g)a=y(c[t],e.default);u.push({isDev:!0,id:t,content:g?a:e.code})}return u.map((t,e)=>{return o("style",{key:e,type:"text/css","data-vite-dev-id":t.id,dangerouslySetInnerHTML:{__html:t.content}})})}async function L(i=[]){return i.map((n,s)=>{return o("style",{key:s,id:n?.id,type:"text/css",dangerouslySetInnerHTML:{__html:n.content}})})}import{existsSync as v}from"fs";import{basename as f}from"path";import{networkInterfaces as z}from"os";var h={name:"gemi",version:"0.54.
|
|
2
|
+
import{s as j}from"./chunk-agabw2w1.js";import{createElement as o}from"react";function y(i,n){let s=Object.keys(n).sort((b,u)=>u.length-b.length).map((b)=>b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),r=new RegExp(s.join("|"),"g");return i.replace(r,(b)=>n[b])}async function J(i,n,s=[]){let r=[...s.map((t)=>`${i}/views/${t}.tsx`),`${i}/views/RootLayout.tsx`],b=new Set;for(let t of r){let e=n.moduleGraph.getModulesByFile(t);if(e)for(let g of e)b.add(g)}let u=[],p=[],c={};for(let t of b)if(t)for(let e of t.importedModules){if(e.file.includes("module.css"))c[e.file]=e.ssrTransformResult.map.sourcesContent.join("");if(e.file.includes(".css"))p.push(e.file)}for(let t of p){let e=await n.transformRequest(t+"?direct"),g=t.includes("module.css"),a="";if(g)a=y(c[t],e.default);u.push({isDev:!0,id:t,content:g?a:e.code})}return u.map((t,e)=>{return o("style",{key:e,type:"text/css","data-vite-dev-id":t.id,dangerouslySetInnerHTML:{__html:t.content}})})}async function L(i=[]){return i.map((n,s)=>{return o("style",{key:s,id:n?.id,type:"text/css",dangerouslySetInnerHTML:{__html:n.content}})})}import{existsSync as v}from"fs";import{basename as f}from"path";import{networkInterfaces as z}from"os";var h={name:"gemi",version:"0.54.3",private:!1,license:"MIT",author:"Enes Tufekci <enes@gemijs.dev>",repository:{type:"git",url:"git+https://github.com/nstfkc/gemi.git",directory:"packages/gemi"},bin:{gemi:"./dist/bin/gemi.js","gemi-orm-generator":"./dist/bin/orm-generator.js"},files:["dist/**/*"],module:!0,exports:{"./http":"./http/index.ts","./client":"./client/index.ts","./testing":"./testing/index.ts","./app":"./app/index.ts","./facades":"./facades/index.ts","./email":"./email/index.ts","./vite":"./dist/vite/index.mjs","./kernel":"./kernel/index.ts","./services":"./services/index.ts","./broadcasting":"./broadcasting/index.ts","./i18n":"./i18n/index.ts","./dictionary":"./i18n/dictionaryRuntime.ts","./server":"./server/index.ts","./config":"./config/index.ts","./container":"./container/index.ts","./foundation":"./foundation/index.ts","./database":"./database/index.ts","./orm":"./orm/index.ts","./support":"./support/index.ts","./console/run":"./console/run.ts","./bun/preload":"./bun/preload.ts","./bun/plugin":"./bun/plugin.ts"},scripts:{lint:"oxlint",typecheck:"tsc --noEmit -p tsconfig.json",build:"NODE_ENV=production bun run build:core && bun run build:bin && bun run build:types && bun run build:client && bun run build:plugin && bun run build:client-types","build:core":"bun ./scripts/build.ts","build:bin":"bun build --outdir=./dist/bin --target=bun --external=vite --external=react-dom --external=react/jsx-runtime --external=bun --external=sharp --external=@azure/storage-blob --sourcemap ./bin/gemi.ts ./bin/orm-generator.ts && bun ./scripts/prepare-bin.ts","build:client":"rm -rf dist/client dist/testing dist/chunks && vite build -c vite.client.config.mts","build:plugin":"vite build -c vite.plugin.config.mts","build:types":"tsc","build:client-types":"tsc -p tsconfig.browser.json",test:"bun --bun vitest","test:types":"vitest run --typecheck.only","build:publish":"bun scripts/build-publish.ts",prepublishOnly:"echo 'Do not publish from this directory \u2014 its exports point at TS source. Run: bun run build:publish, then publish from .publish/' && exit 1"},dependencies:{"@aws-sdk/client-s3":"^3.629.0","@aws-sdk/s3-request-presigner":"^3.629.0","ast-types":"^0.14.2",commander:"^12.1.0",history:"^5.3.0","jsx-email":"2.0.0-rc2.1","magic-string":"^0.30.17",open:"^10.1.0","react-error-boundary":"^6.0.0",recast:"^0.23.9",resend:"^6.12.3",satori:"^0.12.2","temporal-polyfill":"^0.2.5","twitter-api-v2":"^1.20.2","urlpattern-polyfill":"^10.0.0",uuid:"^9.0.1"},devDependencies:{"@babel/parser":"^7.25.4","@prisma/generator-helper":"^6.5.0","@repo/typescript-config":"*","@testing-library/react":"^16.3.2","@types/bun":"^1.3.14","@types/eslint":"^8.56.5","@types/node":"^20.11.24","@types/react":"^19.0.2","@types/react-dom":"^19.0.2",eslint:"^8.57.0",jsdom:"^30.0.1",oxlint:"^1.39.0",react:"19.2.3","react-dom":"19.2.3",typescript:"^5.7.3",vitest:"^4.0.0"},peerDependencies:{"@azure/storage-blob":"^12.28.0",react:">=19","react-dom":">=19",sharp:"^0.34.2",vite:"^8.0.0"},peerDependenciesMeta:{"@azure/storage-blob":{optional:!0}}};var k=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D"],O=Boolean(process.stdout.isTTY)&&!process.env.NO_COLOR,d=(i,n)=>O?`\x1B[${i}m${n}\x1B[0m`:n,T=(i)=>d("1",i),l=(i)=>d("2",i),x=(i)=>d("36",i),q=(i)=>d("32",i),R=(i)=>d("35",i);function _(){return h.version??"?"}function E(i){for(let n of Object.values(z()))for(let s of n??[])if((s.family==="IPv4"||s.family===4)&&!s.internal)return`http://${s.address}:${i}`;return null}function G(i){return j(i).filter((n)=>v(n)).map((n)=>f(n))}function A(i){let{port:n,rootDir:s}=i,r=`http://localhost:${n}`,b=E(n),u=G(s),p=(t,e)=>` ${q("\u279C")} ${T(t.padEnd(9))}${e}`,c=["",...k.map((t)=>R(t)),"",` ${l("gemi")} ${x(`v${_()}`)}`,"",p("Local:",x(r)),p("Network:",b?x(b):l("unavailable")),p("Env:",u.length?u.join(", "):l("none")),""];console.log(c.join(`
|
|
3
3
|
`))}
|
|
4
4
|
export{J as b,L as c,A as d};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=06FFA1F6CA88259064756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import { existsSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { networkInterfaces } from \"node:os\";\nimport { envFiles } from \"./watchEnv\";\nimport pkg from \"../package.json\";\n\n// \"GEMI\" — ANSI Shadow figlet font.\nconst ART = [\n \" ██████╗ ███████╗███╗ ███╗██╗\",\n \"██╔════╝ ██╔════╝████╗ ████║██║\",\n \"██║ ███╗█████╗ ██╔████╔██║██║\",\n \"██║ ██║██╔══╝ ██║╚██╔╝██║██║\",\n \"╚██████╔╝███████╗██║ ╚═╝ ██║██║\",\n \" ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝\",\n];\n\nconst useColor = Boolean(process.stdout.isTTY) && !process.env.NO_COLOR;\nconst paint = (code: string, text: string) =>\n useColor ? `\\x1b[${code}m${text}\\x1b[0m` : text;\nconst bold = (t: string) => paint(\"1\", t);\nconst dim = (t: string) => paint(\"2\", t);\nconst cyan = (t: string) => paint(\"36\", t);\nconst green = (t: string) => paint(\"32\", t);\nconst magenta = (t: string) => paint(\"35\", t);\n\nfunction gemiVersion(): string {\n return (pkg as { version?: string }).version ?? \"?\";\n}\n\nfunction networkUrl(port: number | string): string | null {\n for (const ifaces of Object.values(networkInterfaces())) {\n for (const iface of ifaces ?? []) {\n // Node <18 reported `family` as the number 4; newer Bun/Node use \"IPv4\".\n const isV4 = iface.family === \"IPv4\" || (iface.family as unknown) === 4;\n if (isV4 && !iface.internal) return `http://${iface.address}:${port}`;\n }\n }\n return null;\n}\n\nfunction loadedEnvFiles(rootDir: string): string[] {\n return envFiles(rootDir)\n .filter((file) => existsSync(file))\n .map((file) => basename(file));\n}\n\nexport function printStartupBanner(params: {\n port: number | string;\n rootDir: string;\n}) {\n const { port, rootDir } = params;\n const local = `http://localhost:${port}`;\n const network = networkUrl(port);\n const env = loadedEnvFiles(rootDir);\n\n const row = (label: string, value: string) =>\n ` ${green(\"➜\")} ${bold(label.padEnd(9))}${value}`;\n\n const out = [\n \"\",\n ...ART.map((line) => magenta(line)),\n \"\",\n ` ${dim(\"gemi\")} ${cyan(`v${gemiVersion()}`)}`,\n \"\",\n row(\"Local:\", cyan(local)),\n row(\"Network:\", network ? cyan(network) : dim(\"unavailable\")),\n row(\"Env:\", env.length ? env.join(\", \") : dim(\"none\")),\n \"\",\n ];\n\n console.log(out.join(\"\\n\"));\n}\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": ";wCAAA,wBAAS,cAGT,SAAS,CAAc,CAAC,EAAc,EAAwC,CAC5E,IAAM,EAAc,OAAO,KAAK,CAAM,EACnC,KAAK,CAAC,EAAG,IAAM,EAAE,OAAS,EAAE,MAAM,EAClC,IAAI,CAAC,IAAQ,EAAI,QAAQ,sBAAuB,MAAM,CAAC,EAGpD,EAAQ,IAAI,OAAO,EAAY,KAAK,GAAG,EAAG,GAAG,EAEnD,OAAO,EAAK,QAAQ,EAAO,CAAC,IAAU,EAAO,EAAM,EAGrD,eAAsB,CAAe,CACnC,EACA,EACA,EAAyB,CAAC,EAC1B,CACA,IAAM,EAAQ,CACZ,GAAG,EAAa,IAAI,CAAC,IAAS,GAAG,WAAgB,OAAU,EAC3D,GAAG,wBACL,EAEM,EAAU,IAAI,IACpB,QAAW,KAAQ,EAAO,CACxB,IAAM,EAAM,EAAK,YAAY,iBAAiB,CAAI,EAClD,GAAI,EACF,QAAW,KAAK,EAAK,EAAQ,IAAI,CAAC,EAItC,IAAM,EAAS,CAAC,EACV,EAAa,CAAC,EACd,EAA2C,CAAC,EAClD,QAAW,KAAO,EAChB,GAAI,EACF,QAAW,KAAY,EAAI,gBAAiB,CAC1C,GAAI,EAAS,KAAK,SAAS,YAAY,EACrC,EAAiB,EAAS,MAAQ,EAAS,mBAAmB,IAAI,eAAe,KAAK,EAAE,EAE1F,GAAI,EAAS,KAAK,SAAS,MAAM,EAC/B,EAAW,KAAK,EAAS,IAAI,EAMrC,QAAW,KAAiB,EAAY,CACtC,IAAM,EAAY,MAAM,EAAK,iBAAiB,EAAgB,SAAS,EAEjE,EAAc,EAAc,SAAS,YAAY,EAEnD,EAAuB,GAE3B,GAAI,EACF,EAAuB,EACrB,EAAiB,GAGhB,EAA6D,OAChE,EAGF,EAAO,KAAK,CACV,MAAO,GACP,GAAI,EACJ,QAAS,EAAc,EAAuB,EAAU,IAC1D,CAAC,EAGH,OAAO,EAAO,IAAI,CAAC,EAAO,IAAM,CAC9B,OAAO,EAAc,QAAS,CAC5B,IAAK,EACL,KAAM,WACN,mBAAoB,EAAM,GAC1B,wBAAyB,CAAE,OAAQ,EAAM,OAAQ,CACnD,CAAC,EACF,EAGH,eAAsB,CAAY,CAAC,EAAS,CAAC,EAAG,CAC9C,OAAO,EAAO,IAAI,CAAC,EAAO,IAAM,CAC9B,OAAO,EAAc,QAAS,CAC5B,IAAK,EACL,GAAI,GAAO,GACX,KAAM,WACN,wBAAyB,CAAE,OAAQ,EAAM,OAAQ,CACnD,CAAC,EACF,ECzFH,qBAAS,WACT,mBAAS,aACT,4BAAS,ggGAKT,IAAM,EAAM,CACV,oKACA,mLACA,yKACA,oKACA,mLACA,yJACF,EAEM,EAAW,QAAQ,QAAQ,OAAO,KAAK,GAAK,CAAC,QAAQ,IAAI,SACzD,EAAQ,CAAC,EAAc,IAC3B,EAAW,QAAQ,KAAQ,WAAgB,EACvC,EAAO,CAAC,IAAc,EAAM,IAAK,CAAC,EAClC,EAAM,CAAC,IAAc,EAAM,IAAK,CAAC,EACjC,EAAO,CAAC,IAAc,EAAM,KAAM,CAAC,EACnC,EAAQ,CAAC,IAAc,EAAM,KAAM,CAAC,EACpC,EAAU,CAAC,IAAc,EAAM,KAAM,CAAC,EAE5C,SAAS,CAAW,EAAW,CAC7B,OAAQ,EAA6B,SAAW,IAGlD,SAAS,CAAU,CAAC,EAAsC,CACxD,QAAW,KAAU,OAAO,OAAO,EAAkB,CAAC,EACpD,QAAW,KAAS,GAAU,CAAC,EAG7B,IADa,EAAM,SAAW,QAAW,EAAM,SAAuB,IAC1D,CAAC,EAAM,SAAU,MAAO,UAAU,EAAM,WAAW,IAGnE,OAAO,KAGT,SAAS,CAAc,CAAC,EAA2B,CACjD,OAAO,EAAS,CAAO,EACpB,OAAO,CAAC,IAAS,EAAW,CAAI,CAAC,EACjC,IAAI,CAAC,IAAS,EAAS,CAAI,CAAC,EAG1B,SAAS,CAAkB,CAAC,EAGhC,CACD,IAAQ,OAAM,WAAY,EACpB,EAAQ,oBAAoB,IAC5B,EAAU,EAAW,CAAI,EACzB,EAAM,EAAe,CAAO,EAE5B,EAAM,CAAC,EAAe,IAC1B,KAAK,EAAM,QAAE,MAAM,EAAK,EAAM,OAAO,CAAC,CAAC,IAAI,IAEvC,EAAM,CACV,GACA,GAAG,EAAI,IAAI,CAAC,IAAS,EAAQ,CAAI,CAAC,EAClC,GACA,KAAK,EAAI,MAAM,KAAK,EAAK,IAAI,EAAY,GAAG,IAC5C,GACA,EAAI,SAAU,EAAK,CAAK,CAAC,EACzB,EAAI,WAAY,EAAU,EAAK,CAAO,EAAI,EAAI,aAAa,CAAC,EAC5D,EAAI,OAAQ,EAAI,OAAS,EAAI,KAAK,IAAI,EAAI,EAAI,MAAM,CAAC,EACrD,EACF,EAEA,QAAQ,IAAI,EAAI,KAAK;AAAA,CAAI,CAAC",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "06FFA1F6CA88259064756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|