@shivaedev/create-app 0.32.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/cli.js +1 -1
- package/dist/template.js +2 -2
- package/dist/template.js.map +1 -1
- package/package.json +4 -4
- package/src/template.ts +2 -2
- package/template.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.33.0 - 2026-11-01
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Export Effect logs as trace events and ErrorReporter reports as error spans through the redacting Railway OTLP pipeline in appHost and worker Layers.
|
|
8
|
+
- Mount a same-origin browser error reporting route in appHost, with server redaction, bounded reports and per-client rate limiting.
|
|
9
|
+
- Generated starters enable Railway manual tracing for web and worker services and mount browser reporting by default.
|
|
10
|
+
- Add useBrowserErrors to forward uncaught browser errors and unhandled rejections to the host, removing listeners on unmount.
|
|
11
|
+
- Rules can validate inventory-dependent configuration through `defineRule`'s `validate` callback before checking files.
|
|
12
|
+
- Identity exposes `signInAgain(auth, userId)` to mint a fresh test session for an existing user using the caller's Effect Clock and Better Auth's configured lifetime.
|
|
13
|
+
- Generated apps provide session renewal verbs for HTTP visitors and browser cookies after long story clock jumps.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Generated starters declare auth ownership with reasoned globs for Quality.
|
|
18
|
+
- The starter's app and cookie story kits start TestClock at the present by default so Better Auth's wall-clock endpoints accept minted sessions. Stories can still choose an explicit clock.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Mask complete RPC payload annotations before exporting logs and error reports, keeping sensitive error values out of Railway diagnostics even when the request uses public field names.
|
|
23
|
+
- Enable Biome's `noDelete` as an error while disabling its automatic fix so diagnostics remain visible without rewriting deletion behavior.
|
|
24
|
+
|
|
25
|
+
### Breaking
|
|
26
|
+
|
|
27
|
+
- Glob options (`toolOwned`, `content`, `edge`, `owners` and `suites`) require `{ glob, reason }` declarations. Replace each string with a declaration explaining its purpose, and remove patterns that match no current inventoried file. Stale declarations fail configuration.
|
|
28
|
+
- Lint and baseline commands refuse legacy exception registries. Run `quality exceptions migrate` (or `quality exceptions migrate --from <registry>`) to move entries into config exceptions.
|
|
29
|
+
|
|
30
|
+
## 0.32.1 - 2026-10-31
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- Generate admin-only declarations, reads, registrations, views and story support under `admin/` paths, keeping note statistics inside the notes module. The bootstrap command remains `pnpm admin:create`.
|
|
35
|
+
|
|
3
36
|
## 0.32.0 - 2026-10-31
|
|
4
37
|
|
|
5
38
|
### Added
|
package/dist/cli.js
CHANGED
|
@@ -285,7 +285,7 @@ ${s}${o}ERRORS${n}`);for(let[,u]of i)for(let f of u)c.push(` ${qb(f.message)}${
|
|
|
285
285
|
`)};var f4=Ce("effect/cli/TerminalCapabilities",{defaultValue:()=>bde()}),l4=e=>e!==void 0&&e.length>0,Sde=e=>l4(e)&&e!=="0"&&e.toLowerCase()!=="false",Ede=e=>e.term==="dumb"?{canColor:!1,canAnimate:!1,canPrompt:!1}:{canColor:!l4(e.noColor)&&(Sde(e.forceColor)||e.stdoutIsTerminal),canAnimate:e.stdoutIsTerminal,canPrompt:e.stdinIsTerminal&&e.stdoutIsTerminal},bde=()=>{let e=globalThis.process;return Ede({noColor:e?.env?.NO_COLOR,forceColor:e?.env?.FORCE_COLOR,term:e?.env?.TERM,stdinIsTerminal:e?.stdin?.isTTY===!0,stdoutIsTerminal:e?.stdout?.isTTY===!0})};var kp=fu(e=>h(_f(e,c4)??v_({colors:Fe(e,f4).canColor})));var O_=e=>{let t=new Set,r=[];for(let n of e)t.has(n)||(t.add(n),r.push(n));return r},d4=(e,t)=>{let r=[e],n=e;for(let o=1;o<t.length;o++){let s=t[o],a;for(let i of n.subcommands)if(a=i.commands.find(c=>c.name===s),a)break;if(!a)break;r.push(a),n=a}return r},__=(e,t,r)=>{let o=d4(e,t).flatMap(s=>He(s).globalFlags);return O_([...r,...o])},Ide=e=>{let t=[],r=n=>{let o=He(n);for(let s of o.globalFlags)t.push(s);for(let s of n.subcommands)for(let a of s.commands)r(a)};return r(e),O_(t)},Cde=(e,t)=>{if(e.length<=1)return[];let r=new Set(t.map(o=>o.name)),n=[];for(let o of e.slice(0,-1)){let s=He(o);for(let a of s.contextConfig.flags){let i=Ct(a),c=Bn(a);for(let u of i)r.has(u.name)||u.hidden||(r.add(u.name),n.push(Lb(u,c)))}}return n},m4=(e,t)=>O_([...t,...Ide(e)]),Wb=(e,t,r)=>rt(function*(){let n=d4(e,t),o=n.length>0?n[n.length-1]:e,s=He(o).buildHelpDoc(t),a=Cde(n,s.flags),i=__(e,t,r),c=[];for(let u of i){let f=Ct(u.flag),p=Bn(u.flag);for(let d of f)d.hidden||c.push({...Lb(d,p),required:!1})}return{...s,flags:[...a,...s.flags],globalFlags:c}});var Vb=e=>({_tag:"Action",flag:e.flag,run:e.run}),wde=e=>t=>{h4+=1;let r=st(`effect/cli/GlobalFlag/${e}/${h4}`);return Object.assign(r,{_tag:"Setting",id:e,flag:t.flag})},h4=0,kde=Vb({flag:tg("help").pipe(jb("h"),hf("Show help information"),rg(!1)),run:D(function*(e,{builtIns:t,command:r,commandPath:n}){let o=yield*kp,s=yield*Wb(r,n,t);yield*Lr(o.formatHelpDoc(s))})}),Ade=Vb({flag:tg("version").pipe(jb("v"),hf("Show version information"),rg(!1)),run:D(function*(e,{command:t,version:r}){let n=yield*kp;yield*Lr(n.formatVersion(t.name,r))})}),P_=Vb({flag:tg("wizard").pipe(hf("Start wizard mode for a command"),rg(!1)),run:()=>H}),vde=Vb({flag:Bb("completions",[["bash","bash"],["zsh","zsh"],["fish","fish"],["powershell","powershell"],["sh","bash"],["pwsh","powershell"]]).pipe(Hb,zb("<bash|zsh|fish|powershell|sh|pwsh>"),hf("Print shell completion script")),run:D(function*(e,{command:t}){if(me(e))return;let r=S_(t);yield*Lr(s4(t.name,e.value,r))})}),Ap=wde("log-level")({flag:Bb("log-level",[["all","All"],["trace","Trace"],["debug","Debug"],["info","Info"],["warn","Warn"],["warning","Warn"],["error","Error"],["fatal","Fatal"],["none","None"]]).pipe(Hb,hf("Sets the minimum log level"),zb("<all|trace|debug|info|warn|warning|error|fatal|none>"))}),g4=[kde,Ade,P_,vde,Ap];var og=class extends Ce("effect/cli/CliConfig",{defaultValue:()=>Ode}){},Ode={builtIns:g4};var Ic={};kn(Ic,{annotate:()=>dme,annotateMerge:()=>mme,isCommand:()=>B_,make:()=>rme,provide:()=>gme,provideEffect:()=>yme,provideEffectDiscard:()=>Sme,provideSync:()=>xme,run:()=>Tme,runWith:()=>j_,unlisted:()=>pme,validate:()=>ome,withAlias:()=>lme,withDescription:()=>ume,withExamples:()=>hme,withGlobalFlags:()=>cme,withHandler:()=>nme,withSharedFlags:()=>ime,withShortDescription:()=>fme,withSubcommands:()=>ame,wizard:()=>Eme});function S4(e){let t=e.indexOf("--");return t===-1?{tokens:y4(e),trailingOperands:[]}:{tokens:y4(e.slice(0,t)),trailingOperands:e.slice(t+1)}}var _de=/^-(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/,y4=e=>{let t=[];for(let r of e)if(!r.startsWith("-")||_de.test(r))t.push({_tag:"Value",value:r});else if(r.startsWith("--")){let n=r.indexOf("=");if(n!==-1){let o=r.slice(2,n);if(o==="")t.push({_tag:"Value",value:r});else{let s=r.slice(n+1);t.push({_tag:"LongOption",name:o,raw:r,value:s})}}else t.push({_tag:"LongOption",name:r.slice(2),raw:r})}else if(r.length>1){let n=r.slice(1),o=n.indexOf("=");if(o!==-1){let s=Array.from(n.slice(0,o)),a=s.pop()??"";for(let i of s)t.push({_tag:"ShortOption",flag:i,raw:`-${i}`});t.push({_tag:"ShortOption",flag:a,raw:`-${a}`,value:n.slice(o+1)})}else for(let s of n)t.push({_tag:"ShortOption",flag:s,raw:`-${s}`})}else t.push({_tag:"Value",value:r});return t};var Fde=(e,t)=>{let r=e.length,n=t.length,o=Array.from({length:r+1},()=>new Array(n+1).fill(0));for(let s=0;s<=r;s++)o[s][0]=s;for(let s=0;s<=n;s++)o[0][s]=s;for(let s=1;s<=r;s++)for(let a=1;a<=n;a++){let i=e[s-1]===t[a-1]?0:1;o[s][a]=Math.min(o[s-1][a]+1,o[s][a-1]+1,o[s-1][a-1]+i)}return o[r][n]},R_=(e,t)=>{let r=t.map(o=>[Fde(e,o),o]).filter(([o])=>o<=2).sort(([o],[s])=>o-s);if(r.length===0)return[];let n=r[0][0];return r.filter(([o])=>o===n).map(([,o])=>o)};var $_=e=>qe(e.subcommand,{onNone:()=>[],onSome:t=>[t.name,...$_(t.parsedInput)]}),M_=(e,t,r=[])=>rt(function*(){let{tokens:n,trailingOperands:o}=e,s=[...r,t.name],a=He(t),c=a.config.flags.flatMap(Ct).filter(uf),u=Op(c),p=a.contextConfig.flags.flatMap(Ct).filter(uf),d=Op(p),m=new Set(p.map(N=>N.name)),g={command:t,commandPath:s,flagRegistry:u,inheritedFlagRegistry:d,localFlagNames:c.filter(N=>!m.has(N.name)).map(N=>N.name)},x=Wde(n,g);if(x._tag==="Leaf")return{flags:x.flags,arguments:[...x.arguments,...o],subcommand:k(),...x.errors.length>0&&{errors:x.errors}};let E={tokens:x.childTokens,trailingOperands:o},w=yield*M_(E,x.sub,s),C=[...x.errors,...w.errors??[]];return{flags:x.flags,arguments:[],subcommand:_({name:x.sub.name,parsedInput:w}),...C.length>0&&{errors:C}}}),Gb=e=>{let t=0;return{peek:()=>e[t],take:()=>e[t++],rest:()=>e.slice(t)}},I4=e=>!qO(e.primitiveType)||e.negation===!1?void 0:e.negation??`no-${e.name}`,Op=e=>{let t=new Map,r=new Map;for(let n of e){if(t.has(n.name))throw new Error(`Duplicate flag name "${n.name}" in command definition`);t.set(n.name,n);for(let s of n.aliases){if(t.has(s))throw new Error(`Duplicate flag/alias "${s}" in command definition (conflicts with "${t.get(s).name}")`);t.set(s,n)}let o=I4(n);if(o!==void 0){if(r.has(o))throw new Error(`Duplicate negation "${o}" in command definition (conflicts with "${r.get(o).name}")`);r.set(o,n)}}return{params:e,index:t,negations:r}},C4=e=>{let t=new Map,r=(n,o)=>{let s=t.get(n);if(s&&s!==o)throw new Error(`Duplicate subcommand name/alias "${n}" in command definition (conflicts with "${s.name}")`);t.set(n,o)};for(let n of e)for(let o of n.commands)r(o.name,o),o.alias&&o.alias!==o.name&&r(o.alias,o);return t},U_=e=>Object.fromEntries(e.map(t=>[t.name,[]])),Rde=e=>{let t=U_(e);return{add:(r,n)=>{n!==void 0&&t[r].push(n)},merge:r=>{for(let n in r){let o=r[n];if(o?.length)for(let s=0;s<o.length;s++)t[n].push(o[s])}},snapshot:()=>t}},Kb=e=>e._tag==="LongOption"||e._tag==="ShortOption",T4=e=>e._tag==="LongOption"?e.name:e.flag,vp=(e,t)=>{let r=T4(e),n=t.index.get(r);if(n&&n.name===r)return{param:n,negated:!1};let o=e._tag==="LongOption"?t.negations.get(e.name):void 0;if(o)return{param:o,negated:!0};if(n)return{param:n,negated:!1}},E4=(e,t,r)=>new ln({option:t.name,value:r,expected:`omit the value and use ${e.raw} by itself to set --${t.name} to false`,kind:"flag"}),Nde=e=>{let t=di(e.primitiveType);return new ln({option:e.name,value:"",expected:t===void 0?e.typeName??Wh(e.primitiveType):t.join(" | "),kind:"flag"})},b4=e=>e?._tag==="Value"&&(LV(e.value)||BV(e.value))?e.value:void 0,w4=(e,t,r,n=!1)=>{let o=sg(e,t,r,n);switch(o._tag){case"Value":return{_tag:"Value",value:o.value};case"Error":return{_tag:"Error",error:o.error}}},sg=(e,t,r,n=!1)=>{if(n){if(t.value!==void 0)return{_tag:"Error",error:E4(t,r,t.value),tokens:[]};let s=r.optionalValue===void 0?b4(e.peek()):void 0;if(s!==void 0){let a=e.take();return{_tag:"Error",error:E4(t,r,s),tokens:a===void 0?[]:[a]}}return{_tag:"Value",value:"false",tokens:[]}}if(t.value!==void 0)return{_tag:"Value",value:t.value,tokens:[]};if(r.optionalValue!==void 0)return{_tag:"Value",value:r.optionalValue,tokens:[]};if(qO(r.primitiveType)){let s=b4(e.peek()),a=s!==void 0?e.take():void 0;return{_tag:"Value",value:s??"true",tokens:a===void 0?[]:[a]}}let o=e.peek();if(o?._tag==="Value"){let s=e.take();return{_tag:"Value",value:o.value,tokens:s===void 0?[]:[s]}}return{_tag:"Error",error:Nde(r),tokens:[]}},$de=(e,t)=>{let r=U_(t.params),n=[],o=[],s=Gb(e);for(let a=s.take();a;a=s.take()){if(!Kb(a)){n.push(a);continue}let i=vp(a,t);if(!i){n.push(a);continue}let c=w4(s,a,i.param,i.negated);if(c._tag==="Error"){o.push(c.error);continue}c.value!==void 0&&r[i.param.name].push(c.value)}return{flagMap:r,remainder:n,errors:o}},Mde=e=>He(e).config.flags.flatMap(Ct).filter(uf),Ude=e=>He(e).contextConfig.flags.flatMap(Ct).filter(uf),k4=(e,t)=>{for(let r of t){let n=vp(e,r);if(n!==void 0)return n}},N_=(e,t,r,n)=>{e.push(r);let o=sg(t,r,n.param,n.negated);e.push(...o.tokens)},Dde=(e,t,r,n,o)=>{let s=Gb(t);sg(s,e,r.param,r.negated);for(let a=s.take();a;a=s.take()){if(Kb(a)){let i=k4(a,o);i!==void 0&&sg(s,a,i.param,i.negated);continue}if(a._tag==="Value")return n.has(a.value)}return!1},A4=(e,t,r)=>{let n=U_(r.params),o=[],s=(a,i,c)=>{let u=Op(Mde(i)),f=Op(Ude(i)),p=C4(i.subcommands),d=Gb(a),m=[],g=!0;for(let x=d.take();x;x=d.take()){if(Kb(x)){let E=k4(x,c);if(E!==void 0){N_(m,d,x,E);continue}let w=vp(x,f);if(w!==void 0){N_(m,d,x,w);continue}let C=vp(x,u),N=vp(x,r);if(C!==void 0&&(N===void 0||!g||!Dde(x,d.rest(),C,p,[u,f,r]))){N_(m,d,x,C);continue}if(N!==void 0){let P=sg(d,x,N.param,N.negated);if(P._tag==="Error"){o.push(P.error);continue}P.value!==void 0&&n[N.param.name].push(P.value);continue}m.push(x);continue}if(x._tag==="Value"&&g){let E=p.get(x.value);if(E!==void 0)return m.push(x),m.push(...s(d.rest(),E,[...c,f])),m;g=!1}m.push(x)}return m};return{flagMap:n,remainder:s(e,t,[]),errors:o}},Lde=(e,t,r)=>{let n=e._tag==="LongOption"?`--${e.name}`:`-${e.flag}`,o=[];for(let a of t){if(a.hidden)continue;o.push(a.name);let i=I4(a);i!==void 0&&o.push(i);for(let c of a.aliases)o.push(c)}let s=R_(T4(e),o).map(a=>a.length===1?`-${a}`:`--${a}`);return new yc({option:n,suggestions:s,command:r})},Bde=e=>({flags:Rde(e.params),arguments:[],errors:[],mode:{_tag:"AwaitingFirstValue"}}),jde=e=>({_tag:"Leaf",flags:e.flags.snapshot(),arguments:e.arguments,errors:e.errors}),zde=(e,t,r,n)=>{let{command:o,commandPath:s,inheritedFlagRegistry:a,localFlagNames:i}=r,c=C4(o.subcommands),u=c.get(e);if(u){let p=[...s,u.name],d=n.flags.snapshot();for(let g of i){let x=d[g];x!==void 0&&x.length>0&&n.errors.push(new yc({option:`--${g}`,suggestions:[],command:p}))}let m=$de(t.rest(),a);return n.flags.merge(m.flagMap),n.errors.push(...m.errors),{_tag:"Subcommand",result:{_tag:"Sub",flags:n.flags.snapshot(),sub:u,childTokens:m.remainder,errors:n.errors}}}if(!(He(o).config.arguments.length>0)&&c.size>0){let p=[];for(let[m,g]of c)g.unlisted||p.push(m);let d=R_(e,p);n.errors.push(new jh({subcommand:e,parent:s,suggestions:d}))}return{_tag:"Argument"}},Hde=(e,t,r,n)=>{let{commandPath:o,flagRegistry:s}=r,a=vp(e,s);if(!a){n.errors.push(Lde(e,s.params,o));return}let i=w4(t,e,a.param,a.negated);if(i._tag==="Error"){n.errors.push(i.error);return}n.flags.add(a.param.name,i.value)},qde=(e,t,r,n)=>{if(n.mode._tag==="AwaitingFirstValue"){let o=zde(e,t,r,n);if(o._tag==="Subcommand")return o.result;n.mode={_tag:"CollectingArguments"}}n.arguments.push(e)},Wde=(e,t)=>{let r=Gb(e),n=Bde(t.flagRegistry);for(let o=r.take();o;o=r.take()){if(Kb(o)){Hde(o,r,t,n);continue}if(o._tag==="Value"){let s=qde(o.value,r,t,n);if(s)return s}}return jde(n)};var L_=D(function*(e,t){let r=t?.commandPath??[e.name],n=Gde(e,r),o=(t?.prefix??r).map(a=>Ds(a)),{colors:s}=yield*Kh;return yield*Jb(o,s),yield*_4(n,o,n===e?"ROOT":n.name,s),{args:o.map(a=>a.value),displayArgs:o.map(a=>a.displayValue)}}),Gde=(e,t)=>{let r=e;for(let n of t.slice(1)){let o=r.subcommands.flatMap(s=>s.commands).find(s=>s.name===n||s.alias===n);if(o===void 0)break;r=o}return r},_4=D(function*(e,t,r,n){let o=He(e),s=e.subcommands.flatMap(c=>c.commands.filter(u=>!u.unlisted)),a=s.length===0?o.config:o.contextConfig;if(a.flags.length>0){yield*Lr(O4(r,"FLAGS",n));for(let c of a.flags)t.push(...yield*v4(c));(a.arguments.length>0||s.length>0)&&(yield*Jb(t,n))}if(a.arguments.length>0){yield*Lr(O4(r,"ARGUMENTS",n));for(let c of a.arguments)t.push(...yield*v4(c));s.length>0&&(yield*Jb(t,n))}if(s.length===0)return;let i=yield*pn(u_({message:"Command",choices:s.map(c=>({title:c.name,value:c,...c.shortDescription!==void 0?{description:c.shortDescription}:c.description!==void 0?{description:c.description}:{}}))}));yield*Lr(),t.push(Ds(i.name)),Kde(i)&&(yield*Jb(t,n)),yield*_4(i,t,i.name,n)}),Kde=e=>e.subcommands.some(r=>r.commands.some(n=>!n.unlisted))||He(e).config.orderedParams.length>0,v4=D(function*(e){let t=wp(e),r=Bn(e);if(r.isOptional&&!(yield*pn(i_({message:`Set ${D_(t)}?`,initial:!1}))))return yield*Lr(),[];let n=r.isVariadic?yield*pn(c_({message:`${D_(t)} count`,default:Nt(r.variadicMin,()=>0),min:Nt(r.variadicMin,()=>0),...fe(r.variadicMax)?{max:r.variadicMax.value}:{}})):1,o=[];for(let a=0;a<n;a++)o.push(yield*Jde(t));let s=t.kind===Zt?{flags:{[t.name]:o.map(a=>a.value)},arguments:[]}:{flags:{},arguments:o.map(a=>a.value)};return yield*e.parse(s),yield*Lr(),t.kind===jr?o:o.flatMap(a=>t.optionalValue!==void 0||a.value.startsWith("-")&&a.value.length>1?[Ds(`--${t.name}=${a.value}`,`--${t.name}=${a.displayValue}`)]:[Ds(`--${t.name}`),a])}),Jde=e=>{let t=Qde(e);switch(e.primitiveType._tag){case"Boolean":return R(pn(i_({message:t,label:{confirm:"true",deny:"false"},placeholder:{defaultConfirm:"(T/f)",defaultDeny:"(t/F)"}})),r=>Ds(String(r)));case"Choice":{let r=di(e.primitiveType)??[];return R(pn(u_({message:t,choices:r.map(n=>({title:n,value:n}))})),Ds)}case"Date":return R(pn(mG({message:t})),r=>Ds(r.toISOString()));case"Finite":return R(pn(hG({message:t})),r=>Ds(String(r)));case"Int":return R(pn(c_({message:t})),r=>Ds(String(r)));case"Redacted":return R(pn(gG({message:t})),r=>Ds(ya(r),"<redacted>"));default:return R(pn(xG({message:t})),Ds)}},Ds=(e,t=e)=>({value:e,displayValue:t}),Zde=e=>e.kind===Zt?`--${e.name}`:e.name,Qde=e=>D_(e),D_=e=>{let t=Or(e.description)?.trim(),r=e.kind===Zt&&t!==void 0&&t.length<=32?t:Yde(e.name);return e.kind===Zt?`${r} (${Zde(e)})`:r},Yde=e=>{let t=e.split(/[-_]+/).filter(r=>r.length>0);return t.length===0?e:[t[0][0].toUpperCase()+t[0].slice(1),...t.slice(1)].join(" ")},Jb=(e,t)=>Lr(N4("Current command",e.map(r=>r.displayValue),t,tG)),O4=(e,t,r)=>`${It(r,e.toUpperCase(),mi,bp)} ${It(r,"\xB7",Gh)} ${It(r,t,mi,nf)}`,P4=(e,t,r,n)=>[`${It(n,e,mi,bp)} ${It(n,`v${t}`,nf)} ${It(n,"\xB7 Command wizard",mi,nf)}`,...r===void 0||r.length===0?[]:[r],It(n,"Build a command interactively. Press Ctrl+C to cancel.",Gh),""].join(`
|
|
286
286
|
`),F4=(e,t)=>N4("Command ready",e,t,bp,ab),R4=e=>`
|
|
287
287
|
${It(e,"Wizard cancelled.",sb)}`,N4=(e,t,r,n,o=nf)=>{let s=Xde(t);return[It(r,e,mi,o),...s.map(a=>It(r,a,n)),""].join(`
|
|
288
|
-
`)},Xde=e=>{let r=" $ ",n=" ",o=e.map(eme),s=[],a=r;for(let i of o){let c=a===r||a===n?"":" ";a.length+c.length+i.length>88&&a!==r?(s.push(`${a} \\`),a=`${n}${i}`):a+=`${c}${i}`}return a!==r&&s.push(a),s},eme=e=>/^[A-Za-z0-9_./:@%+=,-]+$/.test(e)?e:`'${e.replaceAll("'",`'"'"'`)}'`;var B_=e=>O(e,Xh),rme=(e,t,r)=>{let n=Ub(t??{});return Tn({name:e,config:n,...At(r)?{handle:r}:{}})},nme=l(2,(e,t)=>Tn({...He(e),handle:t})),ome=l(2,(e,t)=>{let r=He(e);return Tn({...r,parse:n=>Cr(r.parse(n),t)})}),sme=e=>{let t=[],r=new Map,n=(a,i)=>{t.push(i);let c=r.get(a);c?c.push(i):r.set(a,[i])};for(let a of e){if(B_(a)){n(void 0,a);continue}for(let i of a.commands)n(a.group,i)}let o=[],s=r.get(void 0);s&&s.length>0&&o.push({group:void 0,commands:s});for(let[a,i]of r)a!==void 0&&o.push({group:a,commands:i});return{flat:t,groups:o}},ame=l(2,(e,t)=>{let r=sme(t);y_(e,r.flat);let n=He(e),o=new Map(r.flat.map(c=>[c.name,He(c)])),s=Symbol("effect/cli/SubcommandState"),a=D(function*(c){if(me(c.subcommand))return yield*n.parse(c);let u=o.get(c.subcommand.value.name);if(!u)return yield*n.parse(c);let f=yield*n.parseContext(c),p=yield*u.parse(c.subcommand.value.parsedInput);return{...f,[s]:{name:u.name,result:p}}}),i=D(function*(c,u){let p=c[s];if(p){let d=o.get(p.name);return d?yield*d.handle(p.result,[...u,d.name]).pipe(yn(n.service,c)):yield*new pi({commandPath:u,errors:[]})}return yield*n.handle(c,u)});return Tn({name:n.name,config:n.config,contextConfig:n.contextConfig,description:n.description,shortDescription:n.shortDescription,alias:n.alias,unlisted:n.unlisted,annotations:n.annotations,globalFlags:n.globalFlags,resolveExamples:n.resolveExamples,service:n.service,subcommands:r.groups,parse:a,parseContext:n.parseContext,handle:i})}),ime=l(2,(e,t)=>{let r=He(e),n=Ub(t),o=g_(r.config,n),s=g_(r.contextConfig,n);if(r.subcommands.length>0){let f=r.subcommands.flatMap(p=>p.commands);y_(e,f,{contextConfig:s})}let a=Db(n,{allowLeftovers:!0}),i=D(function*(f){let p=yield*r.parse(f),d=yield*a(f);return{...p,...d}}),c=D(function*(f){let p=yield*r.parseContext(f),d=yield*a(f);return{...p,...d}}),u=(f,p)=>r.handle(f,p);return Tn({name:r.name,config:o,contextConfig:s,description:r.description,shortDescription:r.shortDescription,alias:r.alias,unlisted:r.unlisted,annotations:r.annotations,globalFlags:r.globalFlags,resolveExamples:r.resolveExamples,service:r.service,subcommands:r.subcommands,parse:i,parseContext:c,handle:u})}),cme=l(2,(e,t)=>{let r=He(e),n=Array.from(new Set([...r.globalFlags,...t]));return Tn({...r,globalFlags:n})}),ume=l(2,(e,t)=>Tn({...He(e),description:t})),fme=l(2,(e,t)=>Tn({...He(e),shortDescription:t})),lme=l(2,(e,t)=>Tn({...He(e),alias:t})),pme=e=>Tn({...He(e),unlisted:!0}),dme=l(3,(e,t,r)=>{let n=He(e);return Tn({...n,annotations:fr(n.annotations,t,r)})}),mme=l(2,(e,t)=>{let r=He(e);return Tn({...r,annotations:Bc(r.annotations,t)})}),hme=l(2,(e,t)=>Tn({...He(e),resolveExamples:zr(t)?r=>t({commandPath:r}):()=>t})),Zb=(e,t)=>{let r=He(e);return Tn({...r,handle:(n,o)=>t(r.handle(n,o),n)})},gme=l(e=>B_(e[0]),(e,t,r)=>Zb(e,(n,o)=>iT(n,typeof t=="function"?t(o):t,r))),xme=l(3,(e,t,r)=>Zb(e,(n,o)=>yn(n,t,typeof r=="function"?r(o):r))),yme=l(3,(e,t,r)=>Zb(e,(n,o)=>uT(n,t,typeof r=="function"?r(o):r))),Sme=l(2,(e,t)=>Zb(e,(r,n)=>Ut(typeof t=="function"?t(n):t,r))),Eme=(e,t)=>R(L_(e,t),r=>r.args),bme=(e,t,r,n)=>{let o=new Set(t),s=[],a=new Set;for(let i of e){if(o.has(i))continue;let c=Ct(i.flag);for(let u of c){let f=r[u.name];if(!f||f.length===0)continue;let p=`--${u.name}`;a.has(p)||(a.add(p),s.push(new yc({option:p,suggestions:[],command:n})))}}return s},Ime=(e,t,r)=>rt(function*(){let{builtIns:n}=yield*og,o=yield*kp,s=yield*Wb(e,t.commandPath,n);yield*Lr(o.formatHelpDoc(s)),r&&t.errors.length>0&&(yield*rb(o.formatErrors(t.errors)))}),Cme=e=>rt(function*(){let t=yield*kp;yield*rb(t.formatError(e)),e[du]=!1}),Tme=l(2,(e,t)=>HS.use(({args:r})=>I(r,n=>j_(e,t)(n)))),j_=(e,t)=>{let r=He(e);return D(function*(n){let{builtIns:o}=yield*og,{tokens:s,trailingOperands:a}=S4(n),i=m4(e,o),c=i.flatMap(b=>Ct(b.flag)),u=Op(c.filter(uf)),{flagMap:f,remainder:p,errors:d}=A4(s,e,u),m={flags:f,arguments:[]},g=yield*M_({tokens:p,trailingOperands:a},e),x=[e.name,...$_(g)],E={builtIns:o,command:e,commandPath:x,version:t.version},w=__(e,x,o),C=bme(i,w,f,x);if(C.length>0||d.length>0){let b=g.errors??[];return yield*new pi({commandPath:x,errors:[...d,...C,...b]})}for(let b of w){if(b._tag!=="Action"||!Ct(b.flag).some(L=>{let Z=f[L.name];return Z!==void 0&&Z.length>0}))continue;let[,F]=yield*b.flag.parse(m);if(b===P_){let{colors:L}=yield*Kh;return yield*rt(function*(){yield*Lr(P4(e.name,t.version,e.description,L));let Z=[e.name,...n.filter(Ae=>Ae!=="--wizard"&&!Ae.startsWith("--wizard="))],he=yield*L_(e,{commandPath:x,prefix:Z});yield*Lr(F4(he.displayArgs,L)),(yield*pn(yG({message:"Run this command?",initial:!0,active:"yes",inactive:"no"})))&&(yield*Lr(),yield*j_(e,{...t,renderErrors:!1})(he.args.slice(1)))}).pipe(qa("QuitError",()=>Lr(R4(L))))}yield*b.run(F,E);return}if(g.errors&&g.errors.length>0)return yield*new pi({commandPath:x,errors:g.errors});let N=yield*YC(r.parse(g));if(N._tag==="Failure")return yield*new pi({commandPath:x,errors:[N.failure]});let P=r.handle(N.success,[e.name]),S=w.includes(Ap)?(yield*Ap.flag.parse(m))[1]:k();P=yn(P,Ap,S);for(let b of w){if(b._tag!=="Setting"||b===Ap)continue;let[,A]=yield*b.flag.parse(m);P=yn(P,b,A)}let y=qe(S,{onNone:()=>ur(),onSome:b=>Fa(z$,b)});yield*xn(P,y)},Kd(n=>RO(n)&&n._tag==="ShowHelp"?W(n):K(n),n=>Ut(Ime(e,n,t.renderErrors!==!1),T(n))),Kd(n=>t.renderErrors!==!1&&RO(n)&&n._tag==="UserError"?W(n):K(n),n=>Ut(Cme(n),T(n))),Kd(n=>dV(n)?W(n):K(n),n=>_n))};var qt=class extends ko.TaggedError("CreateAppError"){constructor(t,r){super(t),Object.defineProperty(this,"cause",{value:r?.cause})}};import{Buffer as _me}from"node:buffer";import{basename as Pme,join as V_,resolve as Fme}from"node:path";import{Buffer as H_}from"node:buffer";import{Buffer as $4}from"node:buffer";var ag=Pe.Record(Pe.String,Pe.String),z_=Pe.Array(Pe.Struct({content:Pe.String,path:Pe.String})),nTe=Pe.decodeUnknownSync(Pe.fromJsonString(z_));function ig(e,t=!1){let r=e.find(o=>o.path==="package.minimal.json"),n=e.filter(o=>o.path!=="package.minimal.json");return t?n.filter(o=>!o.path.startsWith("src/modules/notes/")).map(o=>{if(o.path==="package.json"&&r!==void 0)return{...o,content:r.content};if(!["src/modules.ts","src/server/modules.ts","src/server/workerModules.ts","src/client/modules.ts"].includes(o.path))return o;let s=$4.from(o.content,"base64").toString().replace(/^import .* from "#modules\/notes\/.*";\n/gmu,"").replace(/,?\s*\b(?:noteQueue|notesModule|notesRegistration|notesWorker)\b/gu,"");return{...o,content:$4.from(s).toString("base64")}}):n}var wme=Pe.Struct({dependencies:ag,devDependencies:ag,engines:ag,imports:ag,name:Pe.String,packageManager:Pe.String,private:Pe.Boolean,scripts:ag,type:Pe.String,version:Pe.String}),M4=Pe.decodeUnknownSync(Pe.fromJsonString(wme)),kme=["name","version","private","type","imports","scripts","dependencies","devDependencies","packageManager","engines"];function U4(e){return`${JSON.stringify(Object.fromEntries(kme.map(t=>[t,e[t]])),null," ")}
|
|
288
|
+
`)},Xde=e=>{let r=" $ ",n=" ",o=e.map(eme),s=[],a=r;for(let i of o){let c=a===r||a===n?"":" ";a.length+c.length+i.length>88&&a!==r?(s.push(`${a} \\`),a=`${n}${i}`):a+=`${c}${i}`}return a!==r&&s.push(a),s},eme=e=>/^[A-Za-z0-9_./:@%+=,-]+$/.test(e)?e:`'${e.replaceAll("'",`'"'"'`)}'`;var B_=e=>O(e,Xh),rme=(e,t,r)=>{let n=Ub(t??{});return Tn({name:e,config:n,...At(r)?{handle:r}:{}})},nme=l(2,(e,t)=>Tn({...He(e),handle:t})),ome=l(2,(e,t)=>{let r=He(e);return Tn({...r,parse:n=>Cr(r.parse(n),t)})}),sme=e=>{let t=[],r=new Map,n=(a,i)=>{t.push(i);let c=r.get(a);c?c.push(i):r.set(a,[i])};for(let a of e){if(B_(a)){n(void 0,a);continue}for(let i of a.commands)n(a.group,i)}let o=[],s=r.get(void 0);s&&s.length>0&&o.push({group:void 0,commands:s});for(let[a,i]of r)a!==void 0&&o.push({group:a,commands:i});return{flat:t,groups:o}},ame=l(2,(e,t)=>{let r=sme(t);y_(e,r.flat);let n=He(e),o=new Map(r.flat.map(c=>[c.name,He(c)])),s=Symbol("effect/cli/SubcommandState"),a=D(function*(c){if(me(c.subcommand))return yield*n.parse(c);let u=o.get(c.subcommand.value.name);if(!u)return yield*n.parse(c);let f=yield*n.parseContext(c),p=yield*u.parse(c.subcommand.value.parsedInput);return{...f,[s]:{name:u.name,result:p}}}),i=D(function*(c,u){let p=c[s];if(p){let d=o.get(p.name);return d?yield*d.handle(p.result,[...u,d.name]).pipe(yn(n.service,c)):yield*new pi({commandPath:u,errors:[]})}return yield*n.handle(c,u)});return Tn({name:n.name,config:n.config,contextConfig:n.contextConfig,description:n.description,shortDescription:n.shortDescription,alias:n.alias,unlisted:n.unlisted,annotations:n.annotations,globalFlags:n.globalFlags,resolveExamples:n.resolveExamples,service:n.service,subcommands:r.groups,parse:a,parseContext:n.parseContext,handle:i})}),ime=l(2,(e,t)=>{let r=He(e),n=Ub(t),o=g_(r.config,n),s=g_(r.contextConfig,n);if(r.subcommands.length>0){let f=r.subcommands.flatMap(p=>p.commands);y_(e,f,{contextConfig:s})}let a=Db(n,{allowLeftovers:!0}),i=D(function*(f){let p=yield*r.parse(f),d=yield*a(f);return{...p,...d}}),c=D(function*(f){let p=yield*r.parseContext(f),d=yield*a(f);return{...p,...d}}),u=(f,p)=>r.handle(f,p);return Tn({name:r.name,config:o,contextConfig:s,description:r.description,shortDescription:r.shortDescription,alias:r.alias,unlisted:r.unlisted,annotations:r.annotations,globalFlags:r.globalFlags,resolveExamples:r.resolveExamples,service:r.service,subcommands:r.subcommands,parse:i,parseContext:c,handle:u})}),cme=l(2,(e,t)=>{let r=He(e),n=Array.from(new Set([...r.globalFlags,...t]));return Tn({...r,globalFlags:n})}),ume=l(2,(e,t)=>Tn({...He(e),description:t})),fme=l(2,(e,t)=>Tn({...He(e),shortDescription:t})),lme=l(2,(e,t)=>Tn({...He(e),alias:t})),pme=e=>Tn({...He(e),unlisted:!0}),dme=l(3,(e,t,r)=>{let n=He(e);return Tn({...n,annotations:fr(n.annotations,t,r)})}),mme=l(2,(e,t)=>{let r=He(e);return Tn({...r,annotations:Bc(r.annotations,t)})}),hme=l(2,(e,t)=>Tn({...He(e),resolveExamples:zr(t)?r=>t({commandPath:r}):()=>t})),Zb=(e,t)=>{let r=He(e);return Tn({...r,handle:(n,o)=>t(r.handle(n,o),n)})},gme=l(e=>B_(e[0]),(e,t,r)=>Zb(e,(n,o)=>iT(n,typeof t=="function"?t(o):t,r))),xme=l(3,(e,t,r)=>Zb(e,(n,o)=>yn(n,t,typeof r=="function"?r(o):r))),yme=l(3,(e,t,r)=>Zb(e,(n,o)=>uT(n,t,typeof r=="function"?r(o):r))),Sme=l(2,(e,t)=>Zb(e,(r,n)=>Ut(typeof t=="function"?t(n):t,r))),Eme=(e,t)=>R(L_(e,t),r=>r.args),bme=(e,t,r,n)=>{let o=new Set(t),s=[],a=new Set;for(let i of e){if(o.has(i))continue;let c=Ct(i.flag);for(let u of c){let f=r[u.name];if(!f||f.length===0)continue;let p=`--${u.name}`;a.has(p)||(a.add(p),s.push(new yc({option:p,suggestions:[],command:n})))}}return s},Ime=(e,t,r)=>rt(function*(){let{builtIns:n}=yield*og,o=yield*kp,s=yield*Wb(e,t.commandPath,n);yield*Lr(o.formatHelpDoc(s)),r&&t.errors.length>0&&(yield*rb(o.formatErrors(t.errors)))}),Cme=e=>rt(function*(){let t=yield*kp;yield*rb(t.formatError(e)),e[du]=!1}),Tme=l(2,(e,t)=>HS.use(({args:r})=>I(r,n=>j_(e,t)(n)))),j_=(e,t)=>{let r=He(e);return D(function*(n){let{builtIns:o}=yield*og,{tokens:s,trailingOperands:a}=S4(n),i=m4(e,o),c=i.flatMap(b=>Ct(b.flag)),u=Op(c.filter(uf)),{flagMap:f,remainder:p,errors:d}=A4(s,e,u),m={flags:f,arguments:[]},g=yield*M_({tokens:p,trailingOperands:a},e),x=[e.name,...$_(g)],E={builtIns:o,command:e,commandPath:x,version:t.version},w=__(e,x,o),C=bme(i,w,f,x);if(C.length>0||d.length>0){let b=g.errors??[];return yield*new pi({commandPath:x,errors:[...d,...C,...b]})}for(let b of w){if(b._tag!=="Action"||!Ct(b.flag).some(L=>{let Z=f[L.name];return Z!==void 0&&Z.length>0}))continue;let[,F]=yield*b.flag.parse(m);if(b===P_){let{colors:L}=yield*Kh;return yield*rt(function*(){yield*Lr(P4(e.name,t.version,e.description,L));let Z=[e.name,...n.filter(Ae=>Ae!=="--wizard"&&!Ae.startsWith("--wizard="))],he=yield*L_(e,{commandPath:x,prefix:Z});yield*Lr(F4(he.displayArgs,L)),(yield*pn(yG({message:"Run this command?",initial:!0,active:"yes",inactive:"no"})))&&(yield*Lr(),yield*j_(e,{...t,renderErrors:!1})(he.args.slice(1)))}).pipe(qa("QuitError",()=>Lr(R4(L))))}yield*b.run(F,E);return}if(g.errors&&g.errors.length>0)return yield*new pi({commandPath:x,errors:g.errors});let N=yield*YC(r.parse(g));if(N._tag==="Failure")return yield*new pi({commandPath:x,errors:[N.failure]});let P=r.handle(N.success,[e.name]),S=w.includes(Ap)?(yield*Ap.flag.parse(m))[1]:k();P=yn(P,Ap,S);for(let b of w){if(b._tag!=="Setting"||b===Ap)continue;let[,A]=yield*b.flag.parse(m);P=yn(P,b,A)}let y=qe(S,{onNone:()=>ur(),onSome:b=>Fa(z$,b)});yield*xn(P,y)},Kd(n=>RO(n)&&n._tag==="ShowHelp"?W(n):K(n),n=>Ut(Ime(e,n,t.renderErrors!==!1),T(n))),Kd(n=>t.renderErrors!==!1&&RO(n)&&n._tag==="UserError"?W(n):K(n),n=>Ut(Cme(n),T(n))),Kd(n=>dV(n)?W(n):K(n),n=>_n))};var qt=class extends ko.TaggedError("CreateAppError"){constructor(t,r){super(t),Object.defineProperty(this,"cause",{value:r?.cause})}};import{Buffer as _me}from"node:buffer";import{basename as Pme,join as V_,resolve as Fme}from"node:path";import{Buffer as H_}from"node:buffer";import{Buffer as $4}from"node:buffer";var ag=Pe.Record(Pe.String,Pe.String),z_=Pe.Array(Pe.Struct({content:Pe.String,path:Pe.String})),nTe=Pe.decodeUnknownSync(Pe.fromJsonString(z_));function ig(e,t=!1){let r=e.find(o=>o.path==="package.minimal.json"),n=e.filter(o=>o.path!=="package.minimal.json");return t?n.filter(o=>!o.path.startsWith("src/modules/notes/")).map(o=>{if(o.path==="package.json"&&r!==void 0)return{...o,content:r.content};if(!["src/admin/modules.ts","src/server/modules.ts","src/server/workerModules.ts","src/client/modules.ts"].includes(o.path))return o;let s=$4.from(o.content,"base64").toString().replace(/^import .* from "#modules\/notes\/.*";\n/gmu,"").replace(/,?\s*\b(?:noteQueue|notesModule|notesRegistration|notesWorker)\b/gu,"");return{...o,content:$4.from(s).toString("base64")}}):n}var wme=Pe.Struct({dependencies:ag,devDependencies:ag,engines:ag,imports:ag,name:Pe.String,packageManager:Pe.String,private:Pe.Boolean,scripts:ag,type:Pe.String,version:Pe.String}),M4=Pe.decodeUnknownSync(Pe.fromJsonString(wme)),kme=["name","version","private","type","imports","scripts","dependencies","devDependencies","packageManager","engines"];function U4(e){return`${JSON.stringify(Object.fromEntries(kme.map(t=>[t,e[t]])),null," ")}
|
|
289
289
|
`}function Qb(e){return e.replaceAll(/[.-]/gu,"_").replace(/^[^a-z]/u,"app_$&").slice(0,58)}function D4(e,t,r){return e==="package.json"?H_.from(U4({...M4(t.toString()),name:r})):e===".env.example"?H_.from(t.toString().replaceAll("starter_dev",`${Qb(r)}_dev`).replaceAll("starter_test",`${Qb(r)}_test`)):["AGENTS.md","README.md"].includes(e)?H_.from(t.toString().replaceAll("{{appName}}",r)):t}import{Buffer as Ame}from"node:buffer";import{dirname as vme,join as q_}from"node:path";var L4=Pe.Struct({minimal:Pe.optional(Pe.Boolean),name:Pe.String,version:Pe.String}),Yb=".create-app.json",_p=G.fn("CreateApp.readTemplate")(function*(e){let t=yield*Yr.FileSystem;return yield*Pe.decodeUnknownEffect(Pe.fromJsonString(z_))(yield*t.readFileString(e))}),Xb=G.fn("CreateApp.writeGeneration")(function*(e,t){let r=yield*Yr.FileSystem;yield*r.writeFileString(q_(e,Yb),`${JSON.stringify(t,null," ")}
|
|
290
290
|
`,{mode:420}),yield*r.chmod(q_(e,Yb),420)}),cg=G.fn("CreateApp.renderTemplate")(function*(e,t,r){let n=yield*Yr.FileSystem;for(let o of t){let s=q_(e,o.path),a=yield*G.try({catch:i=>new qt({message:`Failed to render template file ${o.path}`},{cause:i}),try:()=>D4(o.path,Ame.from(o.content,"base64"),r)});yield*n.makeDirectory(vme(s),{recursive:!0}),yield*n.writeFile(s,a,{mode:420})}});function eI(e,t,r=!1){return G.flatMap(ac.ChildProcessSpawner,n=>n.exitCode(As.make("git",t,{cwd:e,stderr:r?"inherit":"pipe",stdout:r?"inherit":"pipe"})))}function Ome(e){return/^[\w./=@:-]+$/u.test(e)?e:`'${e.replaceAll("'",`'"'"'`)}'`}var W_=G.fn("CreateApp.checkedGit")(function*(e,t,r=[]){let n=yield*eI(e,[...r,...t],!0);if(n!==0)return yield*new qt({message:`git ${t.map(Ome).join(" ")} failed (exit ${n}). The generated files remain in ${e}.`})}),B4=G.fn("CreateApp.initializeGit")(function*(e){return(yield*eI(e,["--version"]).pipe(G.catch(r=>r.reason._tag==="NotFound"?G.succeed(-1):G.fail(r))))!==0||(yield*eI(e,["rev-parse","--git-dir"]))===0?!1:(yield*W_(e,["init","--initial-branch=main"]),!0)}),j4=G.fn("CreateApp.commitGit")(function*(e){let r=(yield*eI(e,["-c","user.useConfigOnly=true","var","GIT_AUTHOR_IDENT"]))===0?[]:["-c","user.name=Create App","-c","user.email=create-app@localhost"];yield*W_(e,["add","--all"]),yield*W_(e,["commit","-m","Initialize a generated app"],r)});var z4=G.fn("CreateApp.createApp")(function*(e,t,r){let n=yield*Yr.FileSystem,o=Fme(e),s=Pme(o);if(!/^[a-z0-9][a-z0-9._-]*$/u.test(s)||s.length>214||["node_modules","favicon.ico"].includes(s))return yield*new qt({message:"The final folder name must be a lowercase npm package name."});if((yield*n.exists(o))&&((yield*n.stat(o)).type!=="Directory"||(yield*n.readDirectory(o)).length>0))return yield*new qt({message:`Refusing to write into ${e}: the destination must be an empty folder.`});let a=ig(yield*_p(t),r.minimal);yield*n.makeDirectory(o,{recursive:!0}),yield*cg(o,a,s),yield*Xb(o,{...r.minimal?{minimal:!0}:{},name:s,version:r.version}),yield*n.symlink("AGENTS.md",V_(o,"CLAUDE.md"));let i=Qb(s),c=yield*Zm.Crypto,u=_me.from(yield*c.randomBytes(32)).toString("base64url");yield*n.writeFileString(V_(o,".env.local"),`DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:55432/${i}_dev
|
|
291
291
|
TEST_DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:55432/${i}_test
|
package/dist/template.js
CHANGED
|
@@ -16,7 +16,7 @@ export function appTemplate(template, minimal = false) {
|
|
|
16
16
|
if (entry.path === "package.json" && minimalManifest !== undefined) {
|
|
17
17
|
return { ...entry, content: minimalManifest.content };
|
|
18
18
|
}
|
|
19
|
-
if (!["src/modules.ts", "src/server/modules.ts", "src/server/workerModules.ts", "src/client/modules.ts"].includes(entry.path)) {
|
|
19
|
+
if (!["src/admin/modules.ts", "src/server/modules.ts", "src/server/workerModules.ts", "src/client/modules.ts"].includes(entry.path)) {
|
|
20
20
|
return entry;
|
|
21
21
|
}
|
|
22
22
|
const source = Buffer.from(entry.content, "base64")
|
|
@@ -79,7 +79,7 @@ export function prepareManifest(source, versions, minimal = false) {
|
|
|
79
79
|
return manifestJson(prepared);
|
|
80
80
|
}
|
|
81
81
|
export function prepareFile(path, content, versions) {
|
|
82
|
-
if (["src/test-support/
|
|
82
|
+
if (["src/test-support/admin/command.ts", "src/test-support/deployChild.ts", "src/test-support/developmentServer.ts"].includes(path)) {
|
|
83
83
|
return Buffer.from(content.toString().replaceAll('"--conditions=source", ', ""));
|
|
84
84
|
}
|
|
85
85
|
if (path === "package.json") {
|
package/dist/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAErG,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAExF,MAAM,UAAU,WAAW,CAAC,QAAkB,EAAE,OAAO,GAAG,KAAK;IAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACpE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/create-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Create and install a Platform application from the maintained starter",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/create-app#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
"README.md"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@shivaedev/sql": "0.
|
|
47
|
+
"@shivaedev/sql": "0.30.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@effect/platform-node": "4.0.6",
|
|
51
51
|
"@effect/platform-node-shared": "4.0.6",
|
|
52
|
-
"@shivaedev/quality": "0.
|
|
53
|
-
"@shivaedev/test-story": "0.31.
|
|
52
|
+
"@shivaedev/quality": "0.53.0",
|
|
53
|
+
"@shivaedev/test-story": "0.31.3",
|
|
54
54
|
"@types/node": "24.19.2",
|
|
55
55
|
"effect": "4.0.6",
|
|
56
56
|
"esbuild": "0.28.2",
|
package/src/template.ts
CHANGED
|
@@ -19,7 +19,7 @@ export function appTemplate(template: Template, minimal = false): Template {
|
|
|
19
19
|
if (entry.path === "package.json" && minimalManifest !== undefined) {
|
|
20
20
|
return { ...entry, content: minimalManifest.content };
|
|
21
21
|
}
|
|
22
|
-
if (!["src/modules.ts", "src/server/modules.ts", "src/server/workerModules.ts", "src/client/modules.ts"].includes(entry.path)) {
|
|
22
|
+
if (!["src/admin/modules.ts", "src/server/modules.ts", "src/server/workerModules.ts", "src/client/modules.ts"].includes(entry.path)) {
|
|
23
23
|
return entry;
|
|
24
24
|
}
|
|
25
25
|
const source = Buffer.from(entry.content, "base64")
|
|
@@ -92,7 +92,7 @@ export function prepareManifest(source: string, versions: Readonly<Record<string
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
export function prepareFile(path: string, content: Buffer, versions: Readonly<Record<string, string>>) {
|
|
95
|
-
if (["src/test-support/
|
|
95
|
+
if (["src/test-support/admin/command.ts", "src/test-support/deployChild.ts", "src/test-support/developmentServer.ts"].includes(path)) {
|
|
96
96
|
return Buffer.from(content.toString().replaceAll('"--conditions=source", ', ""));
|
|
97
97
|
}
|
|
98
98
|
if (path === "package.json") {
|