@66rpg/cgmaker-create 0.1.17 → 0.1.19
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/index.js +12 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import p from"node:fs";import d from"node:path";import de from"node:readline";import{fileURLToPath as pe}from"node:url";import{spawnSync as ue}from"node:child_process";import{spawnSync as z}from"node:child_process";var O={_comment:"cgmaker-create \u7528\u6237\u53EF\u89C1\u6587\u6848\u3002\u5360\u4F4D\u7B26 {name}\u3002",help:{body:{code:"",text:`cgmaker-create \u2014 \u4ECE\u6258\u7BA1\u6A21\u677F\u521B\u5EFA\u5E26\u5B8C\u6574\u6E90\u7801\u7684\u6E38\u620F\u5DE5\u7A0B
|
|
2
2
|
|
|
3
3
|
\u7528\u6CD5:
|
|
4
4
|
npx @66rpg/cgmaker-create@latest <template_id> [\u76EE\u5F55] [data_id]
|
|
@@ -12,16 +12,16 @@ data_id \u4E3A\u8BE5\u6A21\u677F\u4E0B\u7684\u8D44\u6E90\u5305 id\uFF1BTTY \u4E0
|
|
|
12
12
|
\u672A\u6307\u5B9A skill \u65F6\uFF1A\u4EA4\u4E92\u7EC8\u7AEF\u4F1A\u8BE2\u95EE\u6247\u51FA\u5230\u54EA\u4E2A Agent\uFF08\u56DE\u8F66\u65E0\u6548\uFF0C\u8DF3\u8FC7\u987B\u8F93\u5165 s\uFF1B\u4E4B\u540E\u53EF\u5728\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C cgmaker skill\uFF09\uFF1B\u811A\u672C\u73AF\u5883\u9ED8\u8BA4\u4E0D\u6247\u51FA\u3002Agent \u8BF7\u52A0 --agent --json\uFF1A\u7F3A\u53C2/\u65B0\u7248\u672C\u4F1A\u505C\u4E0B\u8BA9\u5BF9\u8BDD\u8BE2\u95EE\u7528\u6237\u3002
|
|
13
13
|
--skill-platform \u53EA\u6247\u51FA\u5230\u8BE5\u5E73\u53F0\uFF08\u5982 cursor\uFF09\uFF1B--skill-all \u6247\u51FA\u5230\u5168\u90E8\u5E73\u53F0\u3002\u5DF2\u6709\u5DE5\u7A0B\u8865\u6247\u7528 npx cgmaker skill --platform cursor \u6216 --all\u3002
|
|
14
14
|
\u6682\u65E0\u4E91\u7AEF\u6A21\u677F\u79CD\u5B50\u65F6\uFF0C\u7528 --from-dir\u3002\u53D1\u73B0\u65B0\u7248\uFF1ATTY \u4F1A\u95EE\u662F\u5426\u66F4\u65B0\uFF1BAgent \u9000\u51FA\u7801 10\uFF0C\u540C\u610F\u540E --apply-update\uFF0C\u62D2\u7EDD --skip-update\u3002
|
|
15
|
-
`,comment:"\u6574\u6BB5 --help"}},err:{from_dir_need_path:{code:"",text:"--from-dir \u9700\u8981\u6A21\u677F\u76EE\u5F55\u8DEF\u5F84",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_need:{code:"",text:"--data-id \u9700\u8981\u8D44\u6E90\u5305 id",comment:"\u53C2\u6570\u9519\u8BEF"},skill_platform_need:{code:"",text:"--skill-platform \u9700\u8981\u5E73\u53F0\u540D\uFF08\u5982 cursor\uFF09",comment:"\u53C2\u6570\u9519\u8BEF"},skill_conflict:{code:"",text:"--skill-platform \u4E0E --skill-all \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528",comment:"\u53C2\u6570\u9519\u8BEF"},cleared:{code:"",text:"\u5DF2\u6E05\u7A7A {dir}",comment:"\u5931\u8D25\u56DE\u6EDA"},clear_failed:{code:"",text:"\u65E0\u6CD5\u6E05\u7A7A {dir}
|
|
16
|
-
`)}function
|
|
17
|
-
`)[0]?.trim();n.status===0&&
|
|
18
|
-
`)}function
|
|
19
|
-
`),
|
|
20
|
-
${_}`,"Y");if(b({...i,promptedPpid:n},
|
|
21
|
-
`)}function
|
|
22
|
-
`),
|
|
15
|
+
`,comment:"\u6574\u6BB5 --help"}},err:{from_dir_need_path:{code:"",text:"--from-dir \u9700\u8981\u6A21\u677F\u76EE\u5F55\u8DEF\u5F84",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_need:{code:"",text:"--data-id \u9700\u8981\u8D44\u6E90\u5305 id",comment:"\u53C2\u6570\u9519\u8BEF"},skill_platform_need:{code:"",text:"--skill-platform \u9700\u8981\u5E73\u53F0\u540D\uFF08\u5982 cursor\uFF09",comment:"\u53C2\u6570\u9519\u8BEF"},skill_conflict:{code:"",text:"--skill-platform \u4E0E --skill-all \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528",comment:"\u53C2\u6570\u9519\u8BEF"},cleared:{code:"",text:"\u5DF2\u6E05\u7A7A {dir}",comment:"\u5931\u8D25\u56DE\u6EDA"},clear_failed:{code:"",text:"\u65E0\u6CD5\u6E05\u7A7A {dir}\uFF1A{e}",comment:"\u5931\u8D25\u56DE\u6EDA\uFF1B{e} \u4E3A\u4E2D\u6587\u539F\u56E0\uFF0C\u4E0D\u8981\u586B\u7CFB\u7EDF Error.message"},sys_denied:{code:"",text:"\u6CA1\u6709\u6743\u9650\uFF0C\u6216\u6587\u4EF6\u88AB\u5360\u7528",comment:"EPERM / EACCES\uFF0C\u4E0D\u6253\u5370\u7CFB\u7EDF\u8DEF\u5F84"},sys_missing:{code:"",text:"\u8DEF\u5F84\u4E0D\u5B58\u5728",comment:"ENOENT"},sys_busy:{code:"",text:"\u76EE\u5F55\u975E\u7A7A\u6216\u6587\u4EF6\u6B63\u5728\u4F7F\u7528",comment:"EBUSY / ENOTEMPTY"},sys_type:{code:"",text:"\u8DEF\u5F84\u7C7B\u578B\u4E0D\u6B63\u786E",comment:"ENOTDIR / EISDIR"},sys_invalid:{code:"",text:"\u8DEF\u5F84\u65E0\u6548",comment:"EINVAL"},sys_too_many:{code:"",text:"\u6253\u5F00\u7684\u6587\u4EF6\u8FC7\u591A",comment:"EMFILE / ENFILE"},sys_unknown:{code:"",text:"\u7CFB\u7EDF\u62D2\u7EDD\u4E86\u8FD9\u6B21\u64CD\u4F5C",comment:"\u5176\u5B83\u7CFB\u7EDF\u9519\u8BEF\uFF0C\u4E0D\u6253\u5370 Error.message \u4EE5\u514D\u4E71\u7801"},owner_slug:{code:"",text:"\u4E0D\u8981\u7528 owner/slug\u3002\u8BF7\u4F7F\u7528\u5E73\u53F0 template_id\uFF08\u5B57\u6BCD\u6570\u5B57\uFF09\uFF0C\u4F8B\u5982 k8n2x4m7q1w5",comment:"\u53C2\u6570\u9519\u8BEF"},data_id_from_dir:{code:"",text:"--data-id \u4E0D\u80FD\u4E0E --from-dir \u540C\u65F6\u4F7F\u7528",comment:"\u53C2\u6570\u9519\u8BEF"},invalid_data_id:{code:"",text:"\u65E0\u6548\u7684 data_id: {id}",comment:"\u53C2\u6570\u9519\u8BEF"},from_dir_not_template:{code:"",text:"--from-dir \u4E0D\u662F\u6A21\u677F\u76EE\u5F55: {dir}",comment:"\u53C2\u6570\u9519\u8BEF"},need_dest_no_tty:{code:"",text:"\u65E0 TTY \u65F6\u5FC5\u987B\u6307\u5B9A\u5DE5\u7A0B\u76EE\u5F55\u3002",comment:"\u53C2\u6570\u9519\u8BEF"},dest_exists:{code:"",text:"\u76EE\u5F55\u5DF2\u5B58\u5728\u4E14\u975E\u7A7A\uFF0C\u4E0D\u53EF\u521B\u5EFA: {dir}",comment:"\u53C2\u6570\u9519\u8BEF"},npm_install:{code:"",text:"npm install \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},bin_missing:{code:"",text:"\u627E\u4E0D\u5230 {js}",comment:"\u843D\u5730\u5931\u8D25"},run_js:{code:"",text:"\u65E0\u6CD5\u8FD0\u884C {js}: {e}",comment:"\u843D\u5730\u5931\u8D25"},init_failed:{code:"",text:"cgmaker init \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},npm_install_again:{code:"",text:"init \u540E npm install \u5931\u8D25",comment:"\u843D\u5730\u5931\u8D25"},run_npm:{code:"",text:"\u65E0\u6CD5\u8FD0\u884C {cmd}: {e}",comment:"npm \u542F\u52A8\u5931\u8D25"},need_input:{code:"11",text:"\u7F3A\u5C11\u9700\u8981\u5411\u7528\u6237\u786E\u8BA4\u7684\u53C2\u6570\u3002\u8BF7\u8BE2\u95EE\u7528\u6237\u540E\uFF0C\u628A\u7B54\u6848\u53D8\u6210\u547D\u4EE4\u884C\u65D7\u6807\u518D\u91CD\u8DD1\u3002",comment:"Agent \u9000\u51FA\u7801 11"},update_available:{code:"10",text:"\u68C0\u6D4B\u5230 cgmaker \u65B0\u7248\u672C\uFF0C\u63A8\u8350\u66F4\u65B0\u3002\u8BF7\u8BE2\u95EE\u7528\u6237\u662F\u5426\u73B0\u5728\u66F4\u65B0\u3002",comment:"Agent \u9000\u51FA\u7801 10"},update_use_latest:{code:"",text:"\u5F53\u524D\u76EE\u5F55\u6CA1\u6709 package.json\uFF0C\u65E0\u6CD5\u5199\u5165\u5DE5\u7A0B\u4F9D\u8D56\u3002\u8BF7\u6539\u7528 npx @66rpg/cgmaker-create@latest \u518D\u6267\u884C\u3002",comment:"create --apply-update \u65E0\u5DE5\u7A0B"},update_failed:{code:"",text:"\u66F4\u65B0\u5931\u8D25\uFF0C\u5DF2\u8DF3\u8FC7\uFF0C\u7EE7\u7EED\u6267\u884C\u539F\u547D\u4EE4\u3002",comment:"npm install \u5931\u8D25"}},prompt:{dest_dir:{code:"",text:"\u5DE5\u7A0B\u76EE\u5F55",comment:"\u8BE2\u95EE\u843D\u5730\u76EE\u5F55"},skill:{code:"",text:"\u628A\u5E73\u53F0 skill \u6247\u51FA\u5230\u54EA\u4E2A Agent\uFF1F\uFF08\u63A8\u8350 cursor\uFF09",comment:"Agent / TTY \u9009\u5E73\u53F0"},ask:{code:"",text:"{question} ({fallback}): ",comment:"readline \u63D0\u95EE\u683C\u5F0F"},update_ask:{code:"",text:"\u68C0\u6D4B\u5230\u65B0\u7248\u672C\uFF0C\u63A8\u8350\u66F4\u65B0\uFF0C\u662F\u5426\u73B0\u5728\u66F4\u65B0\uFF1F\uFF08\u56DE\u8F66=\u662F\uFF0Cn=\u5426\uFF09",comment:"TTY \u66F4\u65B0\u786E\u8BA4"}},ok:{written:{code:"",text:"\u5DF2\u5199\u5165\u5DE5\u7A0B {dir}",comment:"\u843D\u5730\u6210\u529F"},installed:{code:"",text:"\u5DF2\u5B89\u88C5 @66rpg/cgmaker \u5E76\u6267\u884C cgmaker init\u3002",comment:"\u843D\u5730\u6210\u529F"},local_origin:{code:"",text:"\u672C\u5730 --from-dir \u7684 origin.template_id \u4E3A local\uFF0C\u4E0D\u80FD\u76F4\u63A5 publish-template \u5230\u5E73\u53F0\u3002",comment:"\u672C\u5730\u6A21\u677F\u63D0\u9192"},next:{code:"",text:"\u63A5\u7740: cd \u8BE5\u76EE\u5F55 && npm run dev",comment:"\u843D\u5730\u6210\u529F\u4E0B\u4E00\u6B65"},update_installing:{code:"",text:"\u6B63\u5728\u628A cgmaker \u76F8\u5173\u5305\u66F4\u65B0\u5230\u6700\u65B0\u2026",comment:"npm install \u524D"},update_done:{code:"",text:"\u5DF2\u66F4\u65B0\u3002\u5F53\u524D\u8FDB\u7A0B\u4ECD\u662F\u65E7\u4EE3\u7801\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C\u521A\u624D\u7684\u547D\u4EE4\u3002",comment:"\u66F4\u65B0\u6210\u529F\u540E\u9000\u51FA"}}};function W(){let e={...O};return delete e._comment,e}var q=W();function s(e,t,r){let n=q[e]?.[t];if(!n?.text)throw new Error(`missing create message ${e}.${t}`);let o=n.text;if(r)for(let[i,u]of Object.entries(r))o=o.split(`{${i}}`).join(String(u));return o}function V(e){return e&&typeof e=="object"&&"code"in e&&typeof e.code=="string"?e.code:(e instanceof Error?e.message:String(e)).match(/\b(EPERM|EACCES|ENOENT|EBUSY|ENOTEMPTY|ENOTDIR|EISDIR|EINVAL|EMFILE|ENFILE)\b/)?.[1]??""}function H(e){return e?e.includes("\uFFFD")||e.includes("\\\\?\\"):!1}function E(e){switch(V(e)){case"EPERM":case"EACCES":return s("err","sys_denied");case"ENOENT":return s("err","sys_missing");case"EBUSY":case"ENOTEMPTY":return s("err","sys_busy");case"ENOTDIR":case"EISDIR":return s("err","sys_type");case"EINVAL":return s("err","sys_invalid");case"EMFILE":case"ENFILE":return s("err","sys_too_many");default:return s("err","sys_unknown")}}function F(e){let t=e instanceof Error?e.message:String(e??"");return H(t)?E(e):t}function G(){return process.platform==="win32"?"npm.cmd":"npm"}function S(e,t={}){let r=process.platform==="win32",n=z(G(),e,{windowsHide:r,...t,shell:r});if(n.error)throw new Error(s("err","run_npm",{cmd:G(),e:E(n.error)}));return n}import v from"node:fs";import Z from"node:os";import y from"node:path";import Q from"node:readline";import{fileURLToPath as X}from"node:url";var D=["@66rpg/cgmaker","@66rpg/cgmaker-create","@66rpg/cgmaker-win32-x64"],ee=1440*60*1e3;function te(e,t){let r=e.split(".").map(i=>Number.parseInt(i,10)||0),n=t.split(".").map(i=>Number.parseInt(i,10)||0),o=Math.max(r.length,n.length);for(let i=0;i<o;i++){let u=r[i]??0,_=n[i]??0;if(u>_)return!0;if(u<_)return!1}return!1}function T(e=Z.homedir()){return y.join(e,".cgmaker","update-check.json")}function ne(e=T()){try{let t=JSON.parse(v.readFileSync(e,"utf8"));return!t||typeof t.checkedAt!="number"||typeof t.latest!="object"?null:t}catch{return null}}function b(e,t=T()){v.mkdirSync(y.dirname(t),{recursive:!0}),v.writeFileSync(t,`${JSON.stringify(e,null,2)}
|
|
16
|
+
`)}function re(){return y.resolve(y.dirname(X(import.meta.url)),"..")}function se(e,t=process.cwd()){if(e==="@66rpg/cgmaker-create")try{let r=JSON.parse(v.readFileSync(y.join(re(),"package.json"),"utf8"));if(r.version)return r.version}catch{}try{return JSON.parse(v.readFileSync(y.join(t,"node_modules",e,"package.json"),"utf8")).version||null}catch{return null}}function U(e,t=process.cwd(),r={}){let n=[];for(let o of D){let i=e[o];if(!i||r[o]===i)continue;let u=se(o,t);u&&te(i,u)&&n.push({name:o,current:u,latest:i})}return n}function oe(e=process.cwd()){let t={};for(let r of D)try{let n=S(["view",r,"version"],{cwd:e,encoding:"utf8",timeout:2e3}),o=(n.stdout??"").toString().trim().split(`
|
|
17
|
+
`)[0]?.trim();n.status===0&&o&&(t[r]=o)}catch{}return t}function ie(){return process.env.CI==="true"||process.env.CGMAKER_NO_INTERACTIVE==="1"||process.env.CGMAKER_SKIP_UPDATE==="1"}function ce(){return process.platform==="win32"?["@66rpg/cgmaker-win32-x64"]:[]}function ae(e){process.stdout.write(`${JSON.stringify({success:!1,code:10,command:"update-available",message:s("err","update_available"),data:{packages:e,apply:"npx @66rpg/cgmaker-create@latest --apply-update",skip:"npx @66rpg/cgmaker-create@latest --skip-update <\u539F\u547D\u4EE4\u4E0E\u53C2\u6570>"}},null,2)}
|
|
18
|
+
`)}function le(e,t){let r=Q.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{r.question(`${e} [${t}]: `,o=>{r.close(),n(o.trim()||t)})})}async function K(e){if(ie())return"continue";let t=e.cwd??process.cwd(),r=e.now??Date.now(),n=e.ppid??process.ppid,o=e.cacheFile??T(),i=ne(o)??{checkedAt:0,latest:{}};if(r-i.checkedAt>=ee){let l={};try{l=e.fetch?e.fetch():oe(t)}catch{l={}}i={...i,checkedAt:r,latest:{...i.latest,...l}},b(i,o)}if(e.apply)return $(i.latest,t);if(e.skip){let l={...i.declined};for(let f of U(i.latest,t))l[f.name]=f.latest;return b({...i,declined:l,promptedPpid:n},o),"continue"}let u=U(i.latest,t,i.declined??{});if(u.length===0)return"continue";if(e.agent)return ae(u),"agent-block";if(!e.tty||i.promptedPpid===n)return"continue";let _=u.map(l=>`${l.name} ${l.current} \u2192 ${l.latest}`).join(`
|
|
19
|
+
`),w=await le(`${s("prompt","update_ask")}
|
|
20
|
+
${_}`,"Y");if(b({...i,promptedPpid:n},o),/^(n|no|否)$/i.test(w)){let l={...i.declined};for(let f of u)l[f.name]=f.latest;return b({...i,declined:l,promptedPpid:n},o),"continue"}return $(i.latest,t)}function $(e,t){let r=y.join(t,"package.json");if(!v.existsSync(r))return console.error(s("err","update_use_latest")),"updated-exit";let n=[];for(let o of["@66rpg/cgmaker","@66rpg/cgmaker-create",...ce()]){let i=e[o];n.push(i?`${o}@${i}`:`${o}@latest`)}console.error(s("ok","update_installing"));try{if(S(["install","-D",...n],{cwd:t,stdio:"inherit"}).status!==0)return console.error(s("err","update_failed")),"continue"}catch{return console.error(s("err","update_failed")),"continue"}return console.error(s("ok","update_done")),"updated-exit"}function R(){return s("help","body")}function me(){return d.resolve(d.dirname(pe(import.meta.url)),"..")}function Y(e=process.cwd()){let t=e;for(;;){let r=d.join(t,"templates"),n=d.join(t,"package.json");if(p.existsSync(r)&&p.existsSync(n))try{if(JSON.parse(p.readFileSync(n,"utf8")).workspaces?.some(u=>u.includes("templates")))return t}catch{}let o=d.dirname(t);if(o===t)return null;t=o}}function fe(){return JSON.parse(p.readFileSync(d.join(me(),"package.json"),"utf8"))}function B(){let e=Y();if(e){let t=d.join(e,"packages/cgmaker");if(p.existsSync(t))return`file:${t.replace(/\\/g,"/")}`}return`^${fe().version}`}function L(e){let t=e.split("@")[0]??e;return((t.includes("/")?t.split("/").pop():t)||"game").replace(/^tmpl_/,"tmpl-")}function ge(e){return/^[a-zA-Z0-9]+$/.test(e)}function _e(e){let t=e.filter(g=>g!=="--"),r,n,o,i=!1,u=!1,_=!1,w=!1,l=!1,f=[];for(let g=0;g<t.length;g++){let c=t[g];if(c==="--from-dir"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","from_dir_need_path"));r=a;continue}if(c.startsWith("--from-dir=")){if(r=c.slice(11),!r)throw new Error(s("err","from_dir_need_path"));continue}if(c==="--data-id"||c==="--data-ver-id"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","data_id_need"));n=a;continue}if(c.startsWith("--data-id=")){if(n=c.slice(10),!n)throw new Error(s("err","data_id_need"));continue}if(c.startsWith("--data-ver-id=")){if(n=c.slice(14),!n)throw new Error(s("err","data_id_need"));continue}if(c==="--skill-all"){i=!0;continue}if(c==="--skill-skip"||c==="--skip-skill"){u=!0;continue}if(c==="--agent"){_=!0;continue}if(c==="--apply-update"){w=!0;continue}if(c==="--skip-update"){l=!0;continue}if(c!=="--json"){if(c==="--skill-platform"){let a=t[++g];if(!a||a.startsWith("-"))throw new Error(s("err","skill_platform_need"));o=a;continue}if(c.startsWith("--skill-platform=")){if(o=c.slice(17),!o)throw new Error(s("err","skill_platform_need"));continue}f.push(c)}}if(i&&o)throw new Error(s("err","skill_conflict"));if(u&&(i||o))throw new Error(s("err","skill_conflict"));return{rest:f,fromDir:r,dataId:n,skillPlatform:o,skillAll:i,skillSkip:u,agent:_,applyUpdate:w,skipUpdateFlag:l}}function ke(e,t){process.stdout.write(`${JSON.stringify({success:!1,code:11,command:"need-input",message:e,data:{questions:t}},null,2)}
|
|
21
|
+
`)}function xe(e){return process.env.CI==="true"||process.env.CGMAKER_NO_INTERACTIVE==="1"?!1:e||process.env.CGMAKER_AGENT==="1"}function j(e,t){try{if(!p.existsSync(e))return;if(!t)p.rmSync(e,{recursive:!0,force:!0});else for(let r of p.readdirSync(e))p.rmSync(d.join(e,r),{recursive:!0,force:!0});console.error(s("err","cleared",{dir:e}))}catch(r){console.error(s("err","clear_failed",{dir:e,e:E(r)}))}}function we(e,t){let r=de.createInterface({input:process.stdin,output:process.stdout});return new Promise(n=>{r.question(s("prompt","ask",{question:e,fallback:t}),o=>{r.close(),n(o.trim()||t)})})}function C(){return!!(process.stdin.isTTY&&process.stdout.isTTY)}function he(e,t){p.mkdirSync(e,{recursive:!0});let r={name:t,private:!0,type:"module",engines:{node:">=20"},devDependencies:{"@66rpg/cgmaker":B()}};p.writeFileSync(d.join(e,"package.json"),`${JSON.stringify(r,null,2)}
|
|
22
|
+
`),p.writeFileSync(d.join(e,".gitignore"),`node_modules/
|
|
23
23
|
dist/
|
|
24
24
|
.DS_Store
|
|
25
|
-
`);let n=r.devDependencies["@66rpg/cgmaker"],
|
|
26
|
-
`)}function
|
|
27
|
-
`)}function
|
|
25
|
+
`);let n=r.devDependencies["@66rpg/cgmaker"],o=process.env.CGMAKER_NPM_SCOPE_REGISTRY?.trim();o&&typeof n=="string"&&!n.startsWith("file:")&&p.writeFileSync(d.join(e,".npmrc"),`@66rpg:registry=${o}
|
|
26
|
+
`)}function ye(e,t){let r=d.join(e,"package.json"),n=JSON.parse(p.readFileSync(r,"utf8"));n.name=t,n.devDependencies=n.devDependencies??{},n.devDependencies["@66rpg/cgmaker"]||(n.devDependencies["@66rpg/cgmaker"]=B()),p.writeFileSync(r,`${JSON.stringify(n,null,2)}
|
|
27
|
+
`)}function Ee(){return process.platform==="win32"?"cgmaker.exe":"cgmaker"}function Se(){let e=process.platform,t=process.arch;return e==="darwin"&&t==="arm64"?["aarch64-apple-darwin"]:e==="darwin"&&t==="x64"?["x86_64-apple-darwin"]:e==="win32"&&t==="x64"?["x86_64-pc-windows-gnu","x86_64-pc-windows-msvc"]:e==="linux"&&t==="x64"?["x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl"]:e==="linux"&&t==="arm64"?["aarch64-unknown-linux-gnu","aarch64-unknown-linux-musl"]:[]}function ve(e){let t=Ee(),r=[];for(let n of["release","debug"]){for(let o of Se())r.push(d.join(e,o,n,t));r.push(d.join(e,n,t))}return r}function Re(){if(process.env.CG_MAKER_CLI_BIN&&p.existsSync(process.env.CG_MAKER_CLI_BIN))return process.env.CG_MAKER_CLI_BIN;if(process.env.CGMAKER_BIN&&p.existsSync(process.env.CGMAKER_BIN))return process.env.CGMAKER_BIN;let e=[];process.env.CARGO_TARGET_DIR&&e.push(process.env.CARGO_TARGET_DIR);let t=Y();t&&e.push(d.join(t,"target"));for(let r of e)for(let n of ve(r))if(p.existsSync(n))return n}async function Ae(){let{rest:e,fromDir:t,dataId:r,skillPlatform:n,skillAll:o,skillSkip:i,agent:u,applyUpdate:_,skipUpdateFlag:w}=_e(process.argv.slice(2));if(e.includes("-h")||e.includes("--help")){process.stdout.write(R());return}let l=xe(u);if(l&&(process.env.CGMAKER_AGENT="1"),_||w||e.length>0){let m=await K({apply:_,skip:w,agent:l,tty:C()});m==="updated-exit"&&process.exit(0),m==="agent-block"&&process.exit(10)}e.length===0&&(process.stdout.write(R()),process.exit(1));let f=e[0],g=e[1],c=r??e[2];if(e.length>3&&(process.stderr.write(R()),process.exit(1)),(!f||f.startsWith("-"))&&(process.stderr.write(R()),process.exit(1)),f.includes("/")&&(console.error(s("err","owner_slug")),process.exit(1)),g?.startsWith("-")&&(process.stderr.write(R()),process.exit(1)),t&&c&&(console.error(s("err","data_id_from_dir")),process.exit(1)),c&&c!=="0"&&!ge(c)&&(console.error(s("err","invalid_data_id",{id:c})),process.exit(1)),l&&!C()){let m=[];g||m.push({id:"create.dest",kind:"text",question:s("prompt","dest_dir"),recommended:!0,default:L(f)}),!n&&!o&&!i&&m.push({id:"create.skill",kind:"select",question:s("prompt","skill"),recommended:!0,options:[{value:"cursor",label:"cursor",flag:"--skill-platform cursor"},{value:"__all__",label:"all",flag:"--skill-all"},{value:"skip",label:"skip",flag:"--skill-skip",optional:!0}]}),m.some(k=>k.optional!==!0)&&(ke(s("err","need_input"),m),process.exit(11))}if(t){let m=d.resolve(t);p.existsSync(d.join(m,"package.json"))||(console.error(s("err","from_dir_not_template",{dir:m})),process.exit(1))}if(!g){let m=L(f);C()||(console.error(s("err","need_dest_no_tty")),process.stderr.write(R()),process.exit(1)),g=await we(s("prompt","dest_dir"),m)}let a=d.resolve(g),N=p.existsSync(a);N&&p.readdirSync(a).length&&(console.error(s("err","dest_exists",{dir:a})),process.exit(1));let A=(m,k=1)=>{j(a,N),console.error(m),process.exit(k)};try{he(a,d.basename(a));let m=S(["install"],{cwd:a,stdio:"inherit"});m.status!==0&&A(s("err","npm_install"),m.status??1);let k=d.join(a,"node_modules/@66rpg/cgmaker/bin/cgmaker.js");p.existsSync(k)||A(s("err","bin_missing",{js:k}));let h=[k,"init",f];t&&h.push("--from-dir",d.resolve(t)),c&&h.push("--data-id",c),o&&h.push("--all"),n&&h.push("--platform",n),i&&h.push("--skip-skill"),l&&h.push("--agent","--json");let M=Re(),I={...process.env};M&&(I.CGMAKER_BIN=M),l&&(I.CGMAKER_AGENT="1"),I.CGMAKER_SKIP_UPDATE="1";let x=ue(process.execPath,h,{cwd:a,stdio:"inherit",windowsHide:!0,env:I});x.error&&A(s("err","run_js",{js:k,e:E(x.error)})),(x.status===10||x.status===11||x.status===12)&&(j(a,N),process.exit(x.status)),x.status!==0&&A(s("err","init_failed"),x.status??1),ye(a,d.basename(a));let P=S(["install"],{cwd:a,stdio:"inherit"});P.status!==0&&A(s("err","npm_install_again"),P.status??1)}catch(m){throw j(a,N),m}console.log(s("ok","written",{dir:a})),console.log(s("ok","installed")),t&&console.log(s("ok","local_origin")),console.log(s("ok","next"))}Ae().catch(e=>{console.error(F(e)),process.exit(1)});
|