@longzai-intelligence-bun/cli 0.0.25 → 0.0.27
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 -10
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -172,24 +172,26 @@ ${a}
|
|
|
172
172
|
${q.default.gray(ru+tu.repeat(i+2)+iu)}
|
|
173
173
|
`)},hu=(e=``)=>{process.stdout.write(`${q.default.gray(Ql)} ${q.default.red(e)}
|
|
174
174
|
|
|
175
|
-
`)},
|
|
175
|
+
`)},gu={message:(e=``,{symbol:t=q.default.gray(Z)}={})=>{let n=[`${q.default.gray(Z)}`];if(e){let[r,...i]=e.split(`
|
|
176
176
|
`);n.push(`${t} ${r}`,...i.map(e=>`${q.default.gray(Z)} ${e}`))}process.stdout.write(`${n.join(`
|
|
177
177
|
`)}
|
|
178
|
-
`)},info:e=>{
|
|
178
|
+
`)},info:e=>{gu.message(e,{symbol:q.default.blue(au)})},success:e=>{gu.message(e,{symbol:q.default.green(ou)})},step:e=>{gu.message(e,{symbol:q.default.green(Zl)})},warn:e=>{gu.message(e,{symbol:q.default.yellow(su)})},warning:e=>{gu.warn(e)},error:e=>{gu.message(e,{symbol:q.default.red(cu)})}};`${q.default.gray(Z)}`;const _u=({indicator:e=`dots`}={})=>{let t=ql?[`◒`,`◐`,`◓`,`◑`]:[`•`,`o`,`O`,`0`],n=ql?80:120,r=process.env.CI===`true`,i,a,o=!1,s=``,c,l=performance.now(),u=e=>{o&&y(e>1?`Something went wrong`:`Canceled`,e)},d=()=>u(2),f=()=>u(1),p=()=>{process.on(`uncaughtExceptionMonitor`,d),process.on(`unhandledRejection`,d),process.on(`SIGINT`,f),process.on(`SIGTERM`,f),process.on(`exit`,u)},m=()=>{process.removeListener(`uncaughtExceptionMonitor`,d),process.removeListener(`unhandledRejection`,d),process.removeListener(`SIGINT`,f),process.removeListener(`SIGTERM`,f),process.removeListener(`exit`,u)},h=()=>{if(c===void 0)return;r&&process.stdout.write(`
|
|
179
179
|
`);let e=c.split(`
|
|
180
180
|
`);process.stdout.write(K.cursor.move(-999,e.length-1)),process.stdout.write(K.erase.down(e.length))},g=e=>e.replace(/\.+$/,``),_=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},v=(u=``)=>{o=!0,i=Il(),s=g(u),l=performance.now(),process.stdout.write(`${q.default.gray(Z)}
|
|
181
181
|
`);let d=0,f=0;p(),a=setInterval(()=>{if(r&&s===c)return;h(),c=s;let n=q.default.magenta(t[d]);if(r)process.stdout.write(`${n} ${s}...`);else if(e===`timer`)process.stdout.write(`${n} ${s} ${_(l)}`);else{let e=`.`.repeat(Math.floor(f)).slice(0,3);process.stdout.write(`${n} ${s}${e}`)}d=d+1<t.length?d+1:0,f=f<t.length?f+.125:0},n)},y=(t=``,n=0)=>{o=!1,clearInterval(a),h();let r=n===0?q.default.green(Zl):n===1?q.default.red(Yl):q.default.red(Xl);s=g(t??s),e===`timer`?process.stdout.write(`${r} ${s} ${_(l)}
|
|
182
182
|
`):process.stdout.write(`${r} ${s}
|
|
183
|
-
`),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}},_u={red:e=>q.default.red(e),green:e=>q.default.green(e),yellow:e=>q.default.yellow(e),blue:e=>q.default.blue(e),cyan:e=>q.default.cyan(e),magenta:e=>q.default.magenta(e),gray:e=>q.default.gray(e),bold:e=>q.default.bold(e),dim:e=>q.default.dim(e)},vu={async select(e,t){let n=await pu({message:e,options:t.map(e=>({value:e.value,label:e.label,hint:e.hint}))});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async textInput(e,t){let n=await du({message:e,placeholder:t?.placeholder,defaultValue:t?.defaultValue});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async confirm(e,t){let n=await fu({message:e,initialValue:t?.defaultValue??!1});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`boolean`?n:!!n},spinner(){let e=gu();return{start(t){e.start(t)},stop(t){e.stop(t)}}},note(e,t){mu(e,t)},log:{info(e){Q.info(q.default.blue(e))},success(e){Q.success(q.default.green(e))},warn(e){Q.warn(q.default.yellow(e))},error(e){Q.error(q.default.red(e))},step(e){Q.step(e)}}},$=`https://registry.npmjs.org/`,yu=/* @__PURE__ */ new Map([[`longzai-intelligence`,$],[`longzai-intelligence-agent-tools`,$],[`longzai-intelligence-audit`,$],[`longzai-intelligence-auth`,$],[`longzai-intelligence-builder`,$],[`longzai-intelligence-bun`,$],[`longzai-intelligence-cache`,$],[`longzai-intelligence-cli`,$],[`longzai-intelligence-config`,$],[`longzai-intelligence-design-system`,$],[`longzai-intelligence-dev-tools`,$],[`longzai-intelligence-electron`,$],[`longzai-intelligence-error`,$],[`longzai-intelligence-event-bus`,$],[`longzai-intelligence-logger`,$],[`longzai-intelligence-oxfmt`,$],[`longzai-intelligence-okr`,$],[`longzai-intelligence-oxlint`,$],[`longzai-intelligence-plugin`,$],[`longzai-intelligence-shared-config`,$],[`longzai-intelligence-shared-kernel`,$],[`longzai-intelligence-transport`,$],[`longzai-intelligence-typescript`,$],[`longzai-intelligence-zod`,$],[`longzai-intelligence-prettier`,$],[`longzai-intelligence-tsdown`,$],[`longzai-intelligence-vitest`,$],[`longzai-intelligence-academy`,$],[`longzai-intelligence-accounting`,$],[`longzai-intelligence-activity`,$],[`longzai-intelligence-administration`,$],[`longzai-intelligence-agent`,$],[`longzai-intelligence-agent-collaboration`,$],[`longzai-intelligence-agent-endless`,$],[`longzai-intelligence-agent-session`,$],[`longzai-intelligence-agent-swarm`,$],[`longzai-intelligence-agent-ui`,$],[`longzai-intelligence-analytics`,$],[`longzai-intelligence-api`,$],[`longzai-intelligence-app-store`,$],[`longzai-intelligence-architecture`,$],[`longzai-intelligence-arkts`,$],[`longzai-intelligence-art`,$],[`longzai-intelligence-arxiv`,$],[`longzai-intelligence-atomic`,$],[`longzai-intelligence-attention`,$],[`longzai-intelligence-audio`,$],[`longzai-intelligence-audio-assistant`,$],[`longzai-intelligence-auto-research`,$],[`longzai-intelligence-automate`,$],[`longzai-intelligence-benchmark`,$],[`longzai-intelligence-billing`,$],[`longzai-intelligence-board`,$],[`longzai-intelligence-broker`,$],[`longzai-intelligence-business-plan`,$],[`longzai-intelligence-calendar`,$],[`longzai-intelligence-canvas`,$],[`longzai-intelligence-capture`,$],[`longzai-intelligence-changeset`,$],[`longzai-intelligence-chat`,$],[`longzai-intelligence-chess`,$],[`longzai-intelligence-circuit`,$],[`longzai-intelligence-claude-code`,$],[`longzai-intelligence-clipboard-share`,$],[`longzai-intelligence-cloud`,$],[`longzai-intelligence-code`,$],[`longzai-intelligence-code-agent`,$],[`longzai-intelligence-code-reviewer`,$],[`longzai-intelligence-codebase-research`,$],[`longzai-intelligence-collaboration`,$],[`longzai-intelligence-commerce`,$],[`longzai-intelligence-concrete`,$],[`longzai-intelligence-context`,$],[`longzai-intelligence-contract`,$],[`longzai-intelligence-contract-parity`,$],[`longzai-intelligence-cookery`,$],[`longzai-intelligence-country`,$],[`longzai-intelligence-creativity`,$],[`longzai-intelligence-cross-platform`,$],[`longzai-intelligence-crypto`,$],[`longzai-intelligence-customer-service`,$],[`longzai-intelligence-cut`,$],[`longzai-intelligence-dashboard`,$],[`longzai-intelligence-data`,$],[`longzai-intelligence-data-science`,$],[`longzai-intelligence-database`,$],[`longzai-intelligence-decenterlization`,$],[`longzai-intelligence-decision`,$],[`longzai-intelligence-design`,$],[`longzai-intelligence-design-lab`,$],[`longzai-intelligence-device`,$],[`longzai-intelligence-discipline`,$],[`longzai-intelligence-discovery`,$],[`longzai-intelligence-distill`,$],[`longzai-intelligence-docs`,$],[`longzai-intelligence-document`,$],[`longzai-intelligence-drone`,$],[`longzai-intelligence-edge`,$],[`longzai-intelligence-electrobun`,$],[`longzai-intelligence-elysia`,$],[`longzai-intelligence-embodied`,$],[`longzai-intelligence-empowerment`,$],[`longzai-intelligence-engineering`,$],[`longzai-intelligence-equilibrium`,$],[`longzai-intelligence-eslint`,$],[`longzai-intelligence-event`,$],[`longzai-intelligence-evolution`,$],[`longzai-intelligence-exchange-rate`,$],[`longzai-intelligence-execution`,$],[`longzai-intelligence-experience`,$],[`longzai-intelligence-expert-thinking`,$],[`longzai-intelligence-feature-flags`,$],[`longzai-intelligence-federation`,$],[`longzai-intelligence-feed`,$],[`longzai-intelligence-file-processing`,$],[`longzai-intelligence-fitness`,$],[`longzai-intelligence-game`,$],[`longzai-intelligence-gateway`,$],[`longzai-intelligence-geo`,$],[`longzai-intelligence-git`,$],[`longzai-intelligence-git-insight`,$],[`longzai-intelligence-gitcode`,$],[`longzai-intelligence-github-trending`,$],[`longzai-intelligence-hardware`,$],[`longzai-intelligence-harness`,$],[`longzai-intelligence-healthcare`,$],[`longzai-intelligence-history`,$],[`longzai-intelligence-horizon`,$],[`longzai-intelligence-human-resource`,$],[`longzai-intelligence-i18n`,$],[`longzai-intelligence-idea`,$],[`longzai-intelligence-identity`,$],[`longzai-intelligence-ime`,$],[`longzai-intelligence-impact-maker`,$],[`longzai-intelligence-intellectual-property`,$],[`longzai-intelligence-key-management`,$],[`longzai-intelligence-knowledge`,$],[`longzai-intelligence-language-model`,$],[`longzai-intelligence-legal`,$],[`longzai-intelligence-loop`,$],[`longzai-intelligence-machine-learning`,$],[`longzai-intelligence-mail`,$],[`longzai-intelligence-mandala`,$],[`longzai-intelligence-map`,$],[`longzai-intelligence-markdown`,$],[`longzai-intelligence-marketing`,$],[`longzai-intelligence-marketplace`,$],[`longzai-intelligence-math`,$],[`longzai-intelligence-mcn`,$],[`longzai-intelligence-mcp`,$],[`longzai-intelligence-memory`,$],[`longzai-intelligence-mentor`,$],[`longzai-intelligence-messaging`,$],[`longzai-intelligence-mindset`,$],[`longzai-intelligence-mission-control`,$],[`longzai-intelligence-model-fusion`,$],[`longzai-intelligence-model-gateway`,$],[`longzai-intelligence-moment`,$],[`longzai-intelligence-montage`,$],[`longzai-intelligence-movie`,$],[`longzai-intelligence-narrative-analyzer`,$],[`longzai-intelligence-nginx`,$],[`longzai-intelligence-notification`,$],[`longzai-intelligence-npm`,$],[`longzai-intelligence-npm-registry`,$],[`longzai-intelligence-observability`,$],[`longzai-intelligence-office-industry`,$],[`longzai-intelligence-older`,$],[`longzai-intelligence-one`,$],[`longzai-intelligence-ontology`,$],[`longzai-intelligence-open-pencil`,$],[`longzai-intelligence-opencode`,$],[`longzai-intelligence-opportunity`,$],[`longzai-intelligence-orchestry`,$],[`longzai-intelligence-organization`,$],[`longzai-intelligence-orm`,$],[`longzai-intelligence-outfit`,$],[`longzai-intelligence-outsourcing`,$],[`longzai-intelligence-overseas`,$],[`longzai-intelligence-pagination`,$],[`longzai-intelligence-panel`,$],[`longzai-intelligence-paper-reader`,$],[`longzai-intelligence-parametric-industry`,$],[`longzai-intelligence-partner`,$],[`longzai-intelligence-payment`,$],[`longzai-intelligence-personal-assistant`,$],[`longzai-intelligence-pii`,$],[`longzai-intelligence-policy-research`,$],[`longzai-intelligence-portal`,$],[`longzai-intelligence-prezi`,$],[`longzai-intelligence-product-requirement`,$],[`longzai-intelligence-product-research`,$],[`longzai-intelligence-programming-language`,$],[`longzai-intelligence-project`,$],[`longzai-intelligence-project-portfolio`,$],[`longzai-intelligence-promotion`,$],[`longzai-intelligence-prospect`,$],[`longzai-intelligence-publication`,$],[`longzai-intelligence-qcloud`,$],[`longzai-intelligence-quant`,$],[`longzai-intelligence-queue`,$],[`longzai-intelligence-react-devtools`,$],[`longzai-intelligence-reasoning`,$],[`longzai-intelligence-recruitment`,$],[`longzai-intelligence-reliability`,$],[`longzai-intelligence-report`,$],[`longzai-intelligence-repository`,$],[`longzai-intelligence-repository-handover`,$],[`longzai-intelligence-resilience`,$],[`longzai-intelligence-reverse-engineering`,$],[`longzai-intelligence-reviewer`,$],[`longzai-intelligence-risk`,$],[`longzai-intelligence-router`,$],[`longzai-intelligence-sales`,$],[`longzai-intelligence-scheduler`,$],[`longzai-intelligence-schema`,$],[`longzai-intelligence-scrape`,$],[`longzai-intelligence-search`,$],[`longzai-intelligence-security`,$],[`longzai-intelligence-security-inventory`,$],[`longzai-intelligence-serverless`,$],[`longzai-intelligence-share`,$],[`longzai-intelligence-skill`,$],[`longzai-intelligence-slider`,$],[`longzai-intelligence-smart-transition`,$],[`longzai-intelligence-sms`,$],[`longzai-intelligence-soul`,$],[`longzai-intelligence-sports`,$],[`longzai-intelligence-ssl`,$],[`longzai-intelligence-storage`,$],[`longzai-intelligence-strategy`,$],[`longzai-intelligence-supply-chain`,$],[`longzai-intelligence-talk`,$],[`longzai-intelligence-taro`,$],[`longzai-intelligence-task`,$],[`longzai-intelligence-templates`,$],[`longzai-intelligence-tenant`,$],[`longzai-intelligence-testing`,$],[`longzai-intelligence-thinking`,$],[`longzai-intelligence-token-exchange`,$],[`longzai-intelligence-token-finance`,$],[`longzai-intelligence-token-handover`,$],[`longzai-intelligence-topology`,$],[`longzai-intelligence-trader`,$],[`longzai-intelligence-trae`,$],[`longzai-intelligence-training-data`,$],[`longzai-intelligence-translator`,$],[`longzai-intelligence-travel`,$],[`longzai-intelligence-trending`,$],[`longzai-intelligence-tsgo`,$],[`longzai-intelligence-twitter`,$],[`longzai-intelligence-typeorm`,$],[`longzai-intelligence-usecase`,$],[`longzai-intelligence-user-research`,$],[`longzai-intelligence-userscript`,$],[`longzai-intelligence-utils`,$],[`longzai-intelligence-value-chain`,$],[`longzai-intelligence-vector-search`,$],[`longzai-intelligence-vendor`,$],[`longzai-intelligence-venture-capital`,$],[`longzai-intelligence-voice`,$],[`longzai-intelligence-vscode-developer`,$],[`longzai-intelligence-warehouse`,$],[`longzai-intelligence-wealth`,$],[`longzai-intelligence-web3`,$],[`longzai-intelligence-webhook`,$],[`longzai-intelligence-websocket`,$],[`longzai-intelligence-wechat`,$],[`longzai-intelligence-wechat-miniprogram`,$],[`longzai-intelligence-wechat-pay`,$],[`longzai-intelligence-wiki`,$],[`longzai-intelligence-work`,$],[`longzai-intelligence-worker`,$],[`longzai-intelligence-workflow`,$],[`longzai-intelligence-workspace`,$],[`longzai-intelligence-writer`,$],[`longzai-intelligence-zcode`,$]]),bu=`LZI_GLOBALS_ROOT`,xu=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;var Su=class extends Error{details;constructor(e,t=`install.extraScopes`){super(`${t} 校验失败:\n${e.map(e=>`- ${e}`).join(`
|
|
184
|
-
`)}`),this.name=`InstallScopesError`,this.details=e}};function
|
|
185
|
-
`)}\n]`}function
|
|
183
|
+
`),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}},vu={red:e=>q.default.red(e),green:e=>q.default.green(e),yellow:e=>q.default.yellow(e),blue:e=>q.default.blue(e),cyan:e=>q.default.cyan(e),magenta:e=>q.default.magenta(e),gray:e=>q.default.gray(e),bold:e=>q.default.bold(e),dim:e=>q.default.dim(e)},yu={async select(e,t){let n=await pu({message:e,options:t.map(e=>({value:e.value,label:e.label,hint:e.hint}))});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async textInput(e,t){let n=await du({message:e,placeholder:t?.placeholder,defaultValue:t?.defaultValue});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async confirm(e,t){let n=await fu({message:e,initialValue:t?.defaultValue??!1});return Pl(n)&&(hu(`操作已取消`),process.exit(0)),typeof n==`boolean`?n:!!n},spinner(){let e=_u();return{start(t){e.start(t)},stop(t){e.stop(t)}}},note(e,t){mu(e,t)},log:{info(e){gu.info(q.default.blue(e))},success(e){gu.success(q.default.green(e))},warn(e){gu.warn(q.default.yellow(e))},error(e){gu.error(q.default.red(e))},step(e){gu.step(e)}}},Q=`https://registry.npmjs.org/`,bu=/* @__PURE__ */ new Map([[`longzai-intelligence`,Q],[`longzai-intelligence-agent-tools`,Q],[`longzai-intelligence-audit`,Q],[`longzai-intelligence-auth`,Q],[`longzai-intelligence-builder`,Q],[`longzai-intelligence-bun`,Q],[`longzai-intelligence-cache`,Q],[`longzai-intelligence-cli`,Q],[`longzai-intelligence-config`,Q],[`longzai-intelligence-design-system`,Q],[`longzai-intelligence-dev-tools`,Q],[`longzai-intelligence-electron`,Q],[`longzai-intelligence-error`,Q],[`longzai-intelligence-event-bus`,Q],[`longzai-intelligence-logger`,Q],[`longzai-intelligence-oxfmt`,Q],[`longzai-intelligence-okr`,Q],[`longzai-intelligence-oxlint`,Q],[`longzai-intelligence-plugin`,Q],[`longzai-intelligence-shared-config`,Q],[`longzai-intelligence-shared-kernel`,Q],[`longzai-intelligence-transport`,Q],[`longzai-intelligence-typescript`,Q],[`longzai-intelligence-vscode`,Q],[`longzai-intelligence-zod`,Q],[`longzai-intelligence-prettier`,Q],[`longzai-intelligence-tsdown`,Q],[`longzai-intelligence-vitest`,Q],[`longzai-intelligence-academy`,Q],[`longzai-intelligence-accounting`,Q],[`longzai-intelligence-activity`,Q],[`longzai-intelligence-administration`,Q],[`longzai-intelligence-agent`,Q],[`longzai-intelligence-agent-collaboration`,Q],[`longzai-intelligence-agent-endless`,Q],[`longzai-intelligence-agent-session`,Q],[`longzai-intelligence-agent-swarm`,Q],[`longzai-intelligence-agent-ui`,Q],[`longzai-intelligence-analytics`,Q],[`longzai-intelligence-api`,Q],[`longzai-intelligence-app-store`,Q],[`longzai-intelligence-architecture`,Q],[`longzai-intelligence-arkts`,Q],[`longzai-intelligence-art`,Q],[`longzai-intelligence-arxiv`,Q],[`longzai-intelligence-arxiv-markdown`,Q],[`longzai-intelligence-atomic`,Q],[`longzai-intelligence-attention`,Q],[`longzai-intelligence-audio`,Q],[`longzai-intelligence-audio-assistant`,Q],[`longzai-intelligence-auto-research`,Q],[`longzai-intelligence-automate`,Q],[`longzai-intelligence-benchmark`,Q],[`longzai-intelligence-billing`,Q],[`longzai-intelligence-board`,Q],[`longzai-intelligence-broker`,Q],[`longzai-intelligence-business-plan`,Q],[`longzai-intelligence-calendar`,Q],[`longzai-intelligence-canvas`,Q],[`longzai-intelligence-capture`,Q],[`longzai-intelligence-changeset`,Q],[`longzai-intelligence-chat`,Q],[`longzai-intelligence-chess`,Q],[`longzai-intelligence-circuit`,Q],[`longzai-intelligence-claude-code`,Q],[`longzai-intelligence-clipboard-share`,Q],[`longzai-intelligence-cloud`,Q],[`longzai-intelligence-code`,Q],[`longzai-intelligence-code-agent`,Q],[`longzai-intelligence-code-reviewer`,Q],[`longzai-intelligence-codebase-research`,Q],[`longzai-intelligence-collaboration`,Q],[`longzai-intelligence-commerce`,Q],[`longzai-intelligence-concrete`,Q],[`longzai-intelligence-context`,Q],[`longzai-intelligence-contract`,Q],[`longzai-intelligence-contract-parity`,Q],[`longzai-intelligence-cookery`,Q],[`longzai-intelligence-country`,Q],[`longzai-intelligence-creativity`,Q],[`longzai-intelligence-cross-platform`,Q],[`longzai-intelligence-crypto`,Q],[`longzai-intelligence-customer-service`,Q],[`longzai-intelligence-cut`,Q],[`longzai-intelligence-dashboard`,Q],[`longzai-intelligence-data`,Q],[`longzai-intelligence-data-science`,Q],[`longzai-intelligence-database`,Q],[`longzai-intelligence-decenterlization`,Q],[`longzai-intelligence-decision`,Q],[`longzai-intelligence-design`,Q],[`longzai-intelligence-design-lab`,Q],[`longzai-intelligence-device`,Q],[`longzai-intelligence-discipline`,Q],[`longzai-intelligence-discovery`,Q],[`longzai-intelligence-distill`,Q],[`longzai-intelligence-docs`,Q],[`longzai-intelligence-document`,Q],[`longzai-intelligence-drone`,Q],[`longzai-intelligence-edge`,Q],[`longzai-intelligence-electrobun`,Q],[`longzai-intelligence-elysia`,Q],[`longzai-intelligence-embodied`,Q],[`longzai-intelligence-empowerment`,Q],[`longzai-intelligence-engineering`,Q],[`longzai-intelligence-equilibrium`,Q],[`longzai-intelligence-eslint`,Q],[`longzai-intelligence-event`,Q],[`longzai-intelligence-evolution`,Q],[`longzai-intelligence-exchange-rate`,Q],[`longzai-intelligence-execution`,Q],[`longzai-intelligence-experience`,Q],[`longzai-intelligence-expert-thinking`,Q],[`longzai-intelligence-feature-flags`,Q],[`longzai-intelligence-federation`,Q],[`longzai-intelligence-feed`,Q],[`longzai-intelligence-file-processing`,Q],[`longzai-intelligence-fitness`,Q],[`longzai-intelligence-game`,Q],[`longzai-intelligence-gateway`,Q],[`longzai-intelligence-geo`,Q],[`longzai-intelligence-git`,Q],[`longzai-intelligence-git-insight`,Q],[`longzai-intelligence-gitcode`,Q],[`longzai-intelligence-github-trending`,Q],[`longzai-intelligence-github-trending-markdown`,Q],[`longzai-intelligence-hardware`,Q],[`longzai-intelligence-harness`,Q],[`longzai-intelligence-healthcare`,Q],[`longzai-intelligence-history`,Q],[`longzai-intelligence-horizon`,Q],[`longzai-intelligence-human-resource`,Q],[`longzai-intelligence-i18n`,Q],[`longzai-intelligence-idea`,Q],[`longzai-intelligence-identity`,Q],[`longzai-intelligence-ime`,Q],[`longzai-intelligence-impact-maker`,Q],[`longzai-intelligence-intellectual-property`,Q],[`longzai-intelligence-key-management`,Q],[`longzai-intelligence-knowledge`,Q],[`longzai-intelligence-language-model`,Q],[`longzai-intelligence-legal`,Q],[`longzai-intelligence-loop`,Q],[`longzai-intelligence-machine-learning`,Q],[`longzai-intelligence-mail`,Q],[`longzai-intelligence-mandala`,Q],[`longzai-intelligence-map`,Q],[`longzai-intelligence-markdown`,Q],[`longzai-intelligence-marketing`,Q],[`longzai-intelligence-marketplace`,Q],[`longzai-intelligence-math`,Q],[`longzai-intelligence-mcn`,Q],[`longzai-intelligence-mcp`,Q],[`longzai-intelligence-memory`,Q],[`longzai-intelligence-mentor`,Q],[`longzai-intelligence-messaging`,Q],[`longzai-intelligence-mindset`,Q],[`longzai-intelligence-mission-control`,Q],[`longzai-intelligence-model-fusion`,Q],[`longzai-intelligence-model-gateway`,Q],[`longzai-intelligence-moment`,Q],[`longzai-intelligence-montage`,Q],[`longzai-intelligence-movie`,Q],[`longzai-intelligence-music-video`,Q],[`longzai-intelligence-narrative-analyzer`,Q],[`longzai-intelligence-nginx`,Q],[`longzai-intelligence-notification`,Q],[`longzai-intelligence-npm`,Q],[`longzai-intelligence-npm-registry`,Q],[`longzai-intelligence-observability`,Q],[`longzai-intelligence-office-industry`,Q],[`longzai-intelligence-older`,Q],[`longzai-intelligence-one`,Q],[`longzai-intelligence-ontology`,Q],[`longzai-intelligence-open-pencil`,Q],[`longzai-intelligence-opencode`,Q],[`longzai-intelligence-opportunity`,Q],[`longzai-intelligence-orchestry`,Q],[`longzai-intelligence-organization`,Q],[`longzai-intelligence-orm`,Q],[`longzai-intelligence-outfit`,Q],[`longzai-intelligence-outsourcing`,Q],[`longzai-intelligence-overseas`,Q],[`longzai-intelligence-pagination`,Q],[`longzai-intelligence-panel`,Q],[`longzai-intelligence-paper-reader`,Q],[`longzai-intelligence-parametric-industry`,Q],[`longzai-intelligence-partner`,Q],[`longzai-intelligence-payment`,Q],[`longzai-intelligence-personal-assistant`,Q],[`longzai-intelligence-pii`,Q],[`longzai-intelligence-policy-research`,Q],[`longzai-intelligence-portal`,Q],[`longzai-intelligence-prezi`,Q],[`longzai-intelligence-product-requirement`,Q],[`longzai-intelligence-product-research`,Q],[`longzai-intelligence-programming-language`,Q],[`longzai-intelligence-project`,Q],[`longzai-intelligence-project-portfolio`,Q],[`longzai-intelligence-promotion`,Q],[`longzai-intelligence-prospect`,Q],[`longzai-intelligence-publication`,Q],[`longzai-intelligence-qcloud`,Q],[`longzai-intelligence-quant`,Q],[`longzai-intelligence-queue`,Q],[`longzai-intelligence-react-devtools`,Q],[`longzai-intelligence-reasoning`,Q],[`longzai-intelligence-recruitment`,Q],[`longzai-intelligence-reliability`,Q],[`longzai-intelligence-report`,Q],[`longzai-intelligence-repository`,Q],[`longzai-intelligence-repository-handover`,Q],[`longzai-intelligence-resilience`,Q],[`longzai-intelligence-reverse-engineering`,Q],[`longzai-intelligence-reviewer`,Q],[`longzai-intelligence-risk`,Q],[`longzai-intelligence-router`,Q],[`longzai-intelligence-sales`,Q],[`longzai-intelligence-scheduler`,Q],[`longzai-intelligence-schema`,Q],[`longzai-intelligence-scrape`,Q],[`longzai-intelligence-search`,Q],[`longzai-intelligence-security`,Q],[`longzai-intelligence-security-inventory`,Q],[`longzai-intelligence-serverless`,Q],[`longzai-intelligence-share`,Q],[`longzai-intelligence-skill`,Q],[`longzai-intelligence-slider`,Q],[`longzai-intelligence-smart-transition`,Q],[`longzai-intelligence-sms`,Q],[`longzai-intelligence-soul`,Q],[`longzai-intelligence-sports`,Q],[`longzai-intelligence-ssl`,Q],[`longzai-intelligence-storage`,Q],[`longzai-intelligence-strategy`,Q],[`longzai-intelligence-supply-chain`,Q],[`longzai-intelligence-talk`,Q],[`longzai-intelligence-taro`,Q],[`longzai-intelligence-task`,Q],[`longzai-intelligence-templates`,Q],[`longzai-intelligence-tenant`,Q],[`longzai-intelligence-testing`,Q],[`longzai-intelligence-thinking`,Q],[`longzai-intelligence-token-exchange`,Q],[`longzai-intelligence-token-finance`,Q],[`longzai-intelligence-token-handover`,Q],[`longzai-intelligence-topology`,Q],[`longzai-intelligence-trader`,Q],[`longzai-intelligence-trae`,Q],[`longzai-intelligence-training-data`,Q],[`longzai-intelligence-translator`,Q],[`longzai-intelligence-travel`,Q],[`longzai-intelligence-trending`,Q],[`longzai-intelligence-tsgo`,Q],[`longzai-intelligence-twitter`,Q],[`longzai-intelligence-typeorm`,Q],[`longzai-intelligence-usecase`,Q],[`longzai-intelligence-user-research`,Q],[`longzai-intelligence-userscript`,Q],[`longzai-intelligence-utils`,Q],[`longzai-intelligence-value-chain`,Q],[`longzai-intelligence-vector-search`,Q],[`longzai-intelligence-vendor`,Q],[`longzai-intelligence-venture-capital`,Q],[`longzai-intelligence-voice`,Q],[`longzai-intelligence-vscode-developer`,Q],[`longzai-intelligence-warehouse`,Q],[`longzai-intelligence-wealth`,Q],[`longzai-intelligence-web3`,Q],[`longzai-intelligence-webhook`,Q],[`longzai-intelligence-websocket`,Q],[`longzai-intelligence-wechat`,Q],[`longzai-intelligence-wechat-miniprogram`,Q],[`longzai-intelligence-wechat-pay`,Q],[`longzai-intelligence-wiki`,Q],[`longzai-intelligence-work`,Q],[`longzai-intelligence-worker`,Q],[`longzai-intelligence-workflow`,Q],[`longzai-intelligence-workspace`,Q],[`longzai-intelligence-writer`,Q],[`longzai-intelligence-zcode`,Q]]),xu=`LZI_GLOBALS_ROOT`,Su=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;var Cu=class extends Error{details;constructor(e,t=`install.extraScopes`){super(`${t} 校验失败:\n${e.map(e=>`- ${e}`).join(`
|
|
184
|
+
`)}`),this.name=`InstallScopesError`,this.details=e}};function wu(e){if(typeof e!=`string`)return!1;try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function Tu(e,t,n,r){let i=e instanceof Map?Object.fromEntries(e):{...e},a=[],o={};for(let[n,i]of Object.entries(t??{})){let t=n.replace(/^@+/,``);if(t.length===0||!Su.test(t)){a.push(`\`${n}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,@ 前缀可省略)`);continue}if(!wu(i)){a.push(`\`${n}\` 的安装源 \`${String(i)}\` 不是合法的 http/https URL`);continue}if(o[t]!==void 0&&o[t]!==i){a.push(`\`${t}\` 在 extraScopes 内重复声明且安装源不一致`);continue}if(e instanceof Map?e.has(t):Object.hasOwn(e,t)){a.push(`\`${t}\` 与预定义 scope 冲突(预定义不可覆盖,如需调整请在 ${r} 维护)`);continue}o[t]=i}let s=/* @__PURE__ */ new Set;for(let e of n??[]){let t=e.replace(/^@+/,``);if(t.length===0||!Su.test(t)){a.push(`\`${e}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,@ 前缀可省略)`);continue}if(o[t]!==void 0){a.push(`\`${t}\` 同时出现在 extraScopes 与 privateScopes(追加公网安装源与私有轨声明矛盾)`);continue}s.add(t)}if(a.length>0)throw new Cu(a);for(let[e,t]of Object.entries(o))i[e]=t;for(let e of s)delete i[e];return i}function Eu(e,t,n,r){let i=Tu(e,t,n,`globals 仓 lzi-bun-install.config.ts`),a=r?.replace(/^@+/,``),o=new Set((n??[]).map(e=>e.replace(/^@+/,``)));return a!==void 0&&Su.test(a)&&!Object.hasOwn(i,a)&&!o.has(a)&&(i[a]=Q),i}function Du(e){let t=[];if(typeof e!=`object`||!e)throw new Cu([`default export 必须是对象({ scopes: { ... } })`],`globals 预设 lzi-bun-install.config.ts`);let n=typeof e==`object`&&e&&`scopes`in e?e.scopes:void 0;if(typeof n!=`object`||!n||Array.isArray(n))throw new Cu([`scopes 必须是 scope → registry 的对象映射`],`globals 预设 lzi-bun-install.config.ts`);let r={};for(let[e,i]of Object.entries(n)){if(!Su.test(e)){t.push(`\`${e}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,不含 @ 前缀)`);continue}if(typeof i!=`string`||!wu(i)){t.push(`\`${e}\` 的安装源 \`${String(i)}\` 不是合法的 http/https URL`);continue}r[e]=i}if(t.length>0)throw new Cu(t,`globals 预设 lzi-bun-install.config.ts`);if(Object.keys(r).length===0)throw new Cu([`scopes 清单为空(真源不允许空清单)`],`globals 预设 lzi-bun-install.config.ts`);return r}var Ou=class extends Error{configPath;constructor(e,t){super(e),this.name=`SharedConfigError`,this.configPath=t}},ku=class extends Ou{cause;constructor(e,t){super(`加载配置文件 ${e} 失败`,e),this.name=`SharedConfigLoadError`,this.cause=t}},Au=class extends Ou{searchFrom;constructor(e){super(`未在 ${e} 及其上级目录中找到 lzi.config.ts 配置文件`,e),this.name=`SharedConfigNotFoundError`,this.searchFrom=e}};const ju=[`packages/*`,`apps/*`];function Mu(e){let r=s(e,`package.json`);if(!t(r))throw new Au(e);let i;try{i=JSON.parse(n(r,`utf8`)).workspaces}catch(e){throw new ku(r,e)}let a=Array.isArray(i)?i:i?.packages;return a&&a.length>0?a:ju}async function Nu(e,r={}){let i=Mu(e),a=/* @__PURE__ */ new Set,o=[];for(let c of i){let i=new Bun.Glob(`${c}/package.json`);for await(let c of i.scan({cwd:e,absolute:!0,onlyFiles:!0})){let e=s(c,`..`);if(a.has(e))continue;let i;try{i=JSON.parse(n(c,`utf8`))}catch{continue}typeof i.name==`string`&&i.name.length!==0&&(r.configFileName!==void 0&&!t(s(e,r.configFileName))||(a.add(e),o.push({name:i.name,dir:e})))}}return o}function Pu(e=process.cwd()){let n=s(e);for(;;){let e=o(n,`lzi.config.ts`);if(t(e))return e;let r=a(n);if(r===n)return null;n=r}}async function Fu(e={}){let t=e.cwd??process.cwd(),n=Pu(t);if(n===null)throw new Au(t);let r=s(n,`..`);try{return{config:(await import(n)).default,configPath:r,configFilePath:n}}catch(e){throw new ku(n,e)}}function Iu(e,n=process.cwd()){let r=Array.isArray(e)?e:[e],i=s(n);for(;;){for(let e of r){let n=o(i,e);if(t(n))return n}let e=a(i);if(e===i)return null;i=e}}async function Lu(e={}){let t=e.cwd??s(process.cwd());if(e.standaloneFile){let n=Iu(e.standaloneFile,t);if(n)try{let e=await import(n);return{success:!0,config:e.default??e,source:`standalone`,configFilePath:n}}catch(e){throw new ku(n,e)}}if(e.unifiedField)try{let{config:n,configFilePath:r}=await Fu({cwd:t}),i=n?.[e.unifiedField];if(i!==void 0)return{success:!0,config:i,source:`unified`,configFilePath:r}}catch{}return{success:!1,configFilePath:null}}var Ru=class extends Error{bunfigPath;reason;constructor(e,t){super(`${e} 校验失败:${t};请运行 bun run bun-config:generate 后重试`),this.name=`BunfigDriftError`,this.bunfigPath=e,this.reason=t}},zu=class extends Error{bunfigPath;constructor(e){super(`${e} 已存在且非 lzi-bun-cli 生成(缺少 @lzi-bun-cli 自动生成,请勿编辑 标记),如需 lzi-bun-cli 接管,请删除该文件或手动合并后重试`),this.name=`BunfigProtectedError`,this.bunfigPath=e}};function Bu(e){return`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`}function Vu(e,t){let n=e.map(e=>Bu(e)),r=`[${n.join(`, `)}]`;return`${t} = `.length+r.length<=100?r:`[\n${n.map(e=>` ${e},`).join(`
|
|
185
|
+
`)}\n]`}function Hu(e){let t=[];return e.lines!==void 0&&t.push(`lines = ${e.lines}`),e.functions!==void 0&&t.push(`functions = ${e.functions}`),e.statements!==void 0&&t.push(`statements = ${e.statements}`),`{ ${t.join(`, `)} }`}function Uu(e){let t=[`registry = ${Bu(e.registry)}`],n=Gu(`linker`,e.linker);n&&t.push(n);let r=Gu(`globalStore`,e.globalStore);r&&t.push(r);let i=Object.entries(e.scopes).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${Bu(`@${e}`)} = ${Bu(t)}`),a=[`[install]\n${t.join(`
|
|
186
186
|
`)}`];return i.length>0&&a.push(`[install.scopes]\n${i.join(`
|
|
187
187
|
`)}`),a.join(`
|
|
188
188
|
|
|
189
|
-
`)}function
|
|
189
|
+
`)}function Wu(e,t,n){return{registry:`https://mirrors.cloud.tencent.com/npm/`,scopes:Eu(t,e?.extraScopes,e?.privateScopes,n),linker:e?.linker,globalStore:e?.globalStore}}function Gu(e,t){if(t!==void 0){if(typeof t==`boolean`||typeof t==`number`)return`${e} = ${t}`;if(typeof t==`string`)return`${e} = ${Bu(t)}`;if(Array.isArray(t))return t.length===0?void 0:`${e} = ${Vu(t,e)}`}}function Ku(e){let t=[];e.install&&t.push(Uu(e.install));let n=e.test,r=[],i=Gu(`preload`,n.preload);i&&r.push(i);let a=Gu(`coverage`,n.coverage);a&&r.push(a);let o=Gu(`coverageSkipTestFiles`,n.coverageSkipTestFiles);o&&r.push(o);let s=Gu(`coverageReporter`,n.coverageReporter);s&&r.push(s);let c=Gu(`coverageDir`,n.coverageDir);c&&r.push(c);let l=Gu(`coveragePathIgnorePatterns`,n.coveragePathIgnorePatterns);l&&r.push(l),n.coverageThreshold!==void 0&&(typeof n.coverageThreshold==`number`?r.push(`coverageThreshold = ${n.coverageThreshold}`):r.push(`coverageThreshold = ${Hu(n.coverageThreshold)}`));let u=Gu(`coverageIgnoreSourcemaps`,n.coverageIgnoreSourcemaps);u&&r.push(u);let d=Gu(`timeout`,n.timeout);return d&&r.push(d),r.length>0&&t.push(`[test]\n${r.join(`
|
|
190
190
|
`)}`),`# @lzi-bun-cli 自动生成,请勿编辑\n${t.join(`
|
|
191
191
|
|
|
192
|
-
`)}\n`}function
|
|
193
|
-
`)}\n请修正 ${
|
|
194
|
-
`)||e.length===0?e:`${e}\n`;i(a,`${t}${s}\n`,`utf8`)}}else i(a,`${s}\n`,`utf8`);let c=o(e,`.env.example`);if(t(c)){let e=n(c,`utf8`);if(!e.includes(`${
|
|
195
|
-
`)||e.length===0?e:`${e}\n`;i(c,`${t}${
|
|
192
|
+
`)}\n`}function qu(e,t={}){let n=t.isRoot===!0,r=e?.test,i=r?r.coverage!==void 0||r.coverageThreshold!==void 0||r.coveragePathIgnorePatterns!==void 0||r.coverageReporter!==void 0||r.coverageSkipTestFiles!==void 0||r.coverageDir!==void 0||r.preload!==void 0||r.timeout!==void 0:!1;if(!n&&!i)return null;let a={test:r??{}};if(n){if(t.installScopesPreset===void 0)throw Error(`root bunfig 生成需要 globals 仓 install scopes 预设(LZI_GLOBALS_ROOT 定位 longzai-intelligence-globals → lzi-bun-install.config.ts),调用方应先解析并加载`);a.install=Wu(e?.install,t.installScopesPreset,t.selfScope)}return{content:Ku(a),shouldWrite:!0}}function Ju(e){return e.map(e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}).join(` `)}function $(...e){process.stdout.write(`${Ju(e)}\n`)}function Yu(...e){process.stderr.write(`${Ju(e)}\n`)}const Xu=async(e=process.cwd())=>{let t=await Lu({cwd:e,standaloneFile:`lzi-bun.config.ts`,unifiedField:`bun`});return t.success?t.config:($(`提示: 未找到配置文件 lzi-bun.config.ts,使用默认配置`),{})};var Zu=class extends Error{constructor(e){super(e),this.name=`GlobalsUnresolvedError`}};const Qu=e=>`已配置的 globals 定位未能命中(longzai-intelligence-globals),已尝试:\n ${e.join(`
|
|
193
|
+
`)}\n请修正 ${xu} / --globals 的路径,或移除该配置以回落包内预设(LZI_SCOPES)`,$u=e=>{try{return r(e).isDirectory()}catch{return!1}},ed=(e={})=>{let t=process.env[xu],n=[...t!==void 0&&t!==``?[{source:`env`,path:s(t)}]:[],...e.explicitPath===void 0?[]:[{source:`explicit`,path:s(e.explicitPath)}]],r=[];for(let e of n)if(r.push(`${e.source}: ${e.path}`),$u(e.path))return{ok:!0,resolution:{globalsRoot:e.path,source:e.source}};return{ok:!1,failure:{attempted:r}}},td=RegExp(`^${xu}=.*$`,`m`),nd=`${xu}=/absolute/path/to/longzai-intelligence-globals`,rd=(e,r)=>{let a=o(e,`.env`),s=`${xu}=${r}`;if(t(a)){let e=n(a,`utf8`);if(td.test(e)){let t=e.replace(td,s);t!==e&&i(a,t,`utf8`)}else{let t=e.endsWith(`
|
|
194
|
+
`)||e.length===0?e:`${e}\n`;i(a,`${t}${s}\n`,`utf8`)}}else i(a,`${s}\n`,`utf8`);let c=o(e,`.env.example`);if(t(c)){let e=n(c,`utf8`);if(!e.includes(`${xu}=`)){let t=e.endsWith(`
|
|
195
|
+
`)||e.length===0?e:`${e}\n`;i(c,`${t}${nd}\n`,`utf8`)}}else i(c,`${nd}\n`,`utf8`)},id=e=>typeof e==`object`&&e&&`default`in e?e.default:void 0,ad=async e=>{let t=o(e,`lzi-bun-install.config.ts`);return Du(id(await import(t)))},od=async(e={})=>{let t=ed({explicitPath:e.explicitPath});if(t.ok)return{presetScopes:await ad(t.resolution.globalsRoot),source:`globals`};if(t.failure.attempted.length===0)return{presetScopes:Object.fromEntries(bu),source:`preset`};throw new Zu(Qu(t.failure.attempted))},sd=e=>typeof e==`object`&&!!e&&!Array.isArray(e),cd=e=>Array.isArray(e)||typeof e==`object`&&!!e&&`packages`in e,ld=e=>{let r=o(e,`package.json`);if(!t(r))return`missing-package-json`;let i;try{i=JSON.parse(n(r,`utf8`))}catch{return`not-root`}return sd(i)&&cd(i.workspaces)?`root`:`not-root`},ud=e=>ld(e)===`root`,dd=(e,t)=>{let r=o(e,`package.json`);try{let e=JSON.parse(n(r,`utf8`));if(sd(e)){let t=e.name;if(typeof t==`string`&&t!==``)return t}}catch{}return t},fd=e=>{let t=e.indexOf(`/`);if(!(!e.startsWith(`@`)||t<=1))return e.slice(1,t)},pd=[`src/**/*.test.ts`,`src/**/*.test.tsx`,`__tests__/**/*.test.ts`];function md(e){let t=[`bun`,`test`];return e.watch===!0&&t.push(`--watch`),e.coverage===!0&&t.push(`--coverage`),e.extra&&e.extra.length>0&&t.push(...e.extra),t}async function hd(e){let t=/* @__PURE__ */ new Set;for(let n of e){let e=new Bun.Glob(n);for await(let n of e.scan({cwd:process.cwd(),onlyFiles:!0}))t.add(n)}return t.size}const gd=(e,t,n)=>{let r=e.split(`
|
|
196
|
+
`),i=t.split(`
|
|
197
|
+
`),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=`第 ${a+1} 行不一致(磁盘 \`${r[a]??`<缺行>`}\` ≠ 预期 \`${i[a]??`<缺行>`}\`)`,s=n===void 0?void 0:`"@${n}" = `;return s!==void 0&&t.includes(s)&&!e.includes(s)?`${o},且本仓 scope @${n} 行在磁盘文件中缺位——bun publish 的 scope 映射优先级会使公网轨发布回退默认镜像源并以 missing authentication 失败(issue 0008)`:o},_d=async(e,r={})=>{let a=r.dir??process.cwd(),s=o(a,`bunfig.toml`),c=ud(a),l;c&&(l=(await od({explicitPath:r.globalsPath})).presetScopes);let u=c?fd(dd(a,``)):void 0,d=qu(e,{isRoot:c,installScopesPreset:l,selfScope:u});if(!d?.shouldWrite){if(r.dryRun&&$(`(无 coverage 配置,不会生成 bunfig.toml)`),r.check===!0&&t(s))throw new Ru(s,`该包无 coverage 配置,生成器判定不应存在 bunfig.toml(多余文件),请删除该文件`);return{status:`skipped`,bunfigPath:s}}if(r.dryRun)return $(`[dry-run] 将写入 ${s}:`),$(d.content),{status:`generated`,bunfigPath:s};if(r.check===!0){if(!t(s))throw new Ru(s,u===void 0?`bunfig.toml 不存在(生成器预期应存在)`:`bunfig.toml 不存在,本仓 scope @${u} 未注入 [install.scopes]——bun publish 的 scope 映射优先级会使公网轨发布回退默认镜像源并以 missing authentication 失败(issue 0008)`);let e=n(s,`utf8`);if(!e.includes(`@lzi-bun-cli 自动生成,请勿编辑`))throw new Ru(s,`bunfig.toml 为手写文件(无生成标记),不受 lzi-bun-cli 管理;如需接管请确认内容后删除该文件重新生成`);if(e!==d.content)throw new Ru(s,gd(e,d.content,u));return $(`校验通过 ${s}(与生成器预期一致)`),{status:`checked`,bunfigPath:s}}if(t(s)&&!n(s,`utf8`).includes(`@lzi-bun-cli 自动生成,请勿编辑`))throw new zu(s);return i(s,d.content,`utf8`),$(`已生成 ${s}(lzi-bun-cli 接管覆盖率配置)`),{status:`generated`,bunfigPath:s}},vd=async e=>{let t=await Xu(),n=t.test?.passWithNoTests??!0;await hd(t.test?.include??pd)===0&&(n&&($(`无测试文件,跳过(type-only / facade 包,passWithNoTests)`),process.exit(0)),Yu(`错误: 未找到测试文件,且 test.passWithNoTests 为 false`),Yu(`(如该包确为 type-only / facade 包,请在 lzi-dev.config.ts 设置 test.passWithNoTests: true)`),process.exit(1));try{await _d(t)}catch(e){throw(e instanceof zu||e instanceof Cu||e instanceof Zu)&&(Yu(`错误: ${e.message}`),process.exit(1)),e}let r=md(e),i=await Bun.spawn(r,{cwd:process.cwd(),stdout:`inherit`,stderr:`inherit`}).exited;i!==0&&process.exit(i)},yd=async(e,t,n)=>{let r=await Xu();try{await _d(r,{dryRun:e,globalsPath:t,check:n})}catch(e){throw(e instanceof zu||e instanceof Ru||e instanceof Cu||e instanceof Zu)&&(Yu(`错误: ${e.message}`),process.exit(1)),e}},bd=e=>{let t=ld(e);t===`missing-package-json`&&(Yu(`错误: 当前目录 ${e} 无 package.json,--recursive 须在 monorepo root 执行`),process.exit(1)),t!==`root`&&(Yu(`错误: ${e} 的 package.json 未声明 workspaces 字段,--recursive 须在 monorepo root 执行`),process.exit(1))},xd=async(e,t,n)=>{let r=process.cwd();bd(r);let i=await Nu(r,{configFileName:`lzi-bun.config.ts`}),a=[{name:dd(r,r.split(`/`).pop()??`root`),dir:r}];a.push(...i.map(e=>({name:e.name,dir:e.dir})));let o=n===!0?`校验`:e?`预览`:`生成`;$(`发现 ${a.length} 个目标(root 1 + 子包 ${i.length}),开始${o}...`);let s=[];for(let r of a){$(`▶ ${r.name}`);try{let i=await Xu(r.dir),{status:a}=await _d(i,{dryRun:e,check:n,dir:r.dir,globalsPath:t});s.push({name:r.name,dir:r.dir,status:a})}catch(e){s.push({name:r.name,dir:r.dir,status:`failed`,reason:e instanceof Error?e.message:String(e)})}}let c=s.filter(e=>e.status===`generated`),l=s.filter(e=>e.status===`checked`),u=s.filter(e=>e.status===`skipped`),d=s.filter(e=>e.status===`failed`);if($(``),$(`汇总:${c.length} 生成 / ${l.length} 一致 / ${u.length} 跳过 / ${d.length} 失败`),d.length>0){Yu(``),Yu(`失败子包:`);for(let e of d)Yu(` - ${e.name}:${e.reason}`);process.exitCode=1}},Sd=async e=>{let t=e.dryRun===!0,n=e.check===!0;if(t&&n&&(Yu(`错误: --dry-run 与 --check 互斥(预览与校验是两种只读形态,请二选一)`),process.exit(1)),e.globalsPath!==void 0){let t=ed({explicitPath:e.globalsPath});t.ok||(Yu(`错误: ${Qu(t.failure.attempted)}`),process.exit(1));let{globalsRoot:n,source:r}=t.resolution;rd(process.cwd(),n),$(`已定位 globals 仓(${r})并固化到 .env:${n}`)}if(e.recursive===!0){await xd(t,e.globalsPath,n);return}await yd(t,e.globalsPath,n)};function Cd(e){wd(e),Td(e)}function wd(e){tl(e,{name:`test`,description:`运行 bun 测试(替代三件套,零测试包默认放行)`,options:[{flags:`--watch`,description:`监听模式(对应 test:watch)`},{flags:`--coverage`,description:`覆盖率(对应 test:coverage)`}],schema:fc({watch:ic().optional(),coverage:ic().optional()}),action:async(e,t)=>{await vd({watch:e.watch===!0,coverage:e.coverage===!0,extra:t})}})}function Td(e){tl(e,{name:`config generate`,description:`生成 bunfig.toml(不执行测试,支持 --dry-run 预览、--check 校验、-r 批量、--globals 定位)`,options:[{flags:`--dry-run`,description:`仅预览将写入的内容,不写盘`},{flags:`--check`,description:`仅校验磁盘 bunfig.toml 与生成器预期是否一致(漂移即报错退出,不写盘)`},{flags:`-r, --recursive`,description:`递归处理 monorepo 下含 lzi-bun.config.ts 的子包`},{flags:`--globals <path>`,description:`一次性 bootstrap 定位 globals 仓(命中后固化 .env,此后零参数)`}],schema:fc({dryRun:ic().optional(),check:ic().optional(),recursive:ic().optional(),globals:Ns().optional()}),action:async e=>{await Sd({dryRun:e.dryRun===!0,check:e.check===!0,recursive:e.recursive===!0,globalsPath:e.globals})}})}const Ed=Zc({name:`lzi-bun-cli`,description:`Longzai Intelligence bun 工具集`,interaction:yu,color:vu});Cd(Ed);async function Dd(){await Ed.parseAsync(process.argv)}Dd().catch(e=>{process.stderr.write(`错误: ${e instanceof Error?e.message:String(e)}\n`),process.exit(1)});export{};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@longzai-intelligence-bun/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.27",
|
|
4
4
|
"description": "Longzai Intelligence bun 工具集 CLI",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"test:coverage": "bun test --coverage"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@longzai-intelligence-bun/config": "0.0.
|
|
36
|
+
"@longzai-intelligence-bun/config": "0.0.27",
|
|
37
37
|
"@longzai-intelligence-cli/core": "^0.0.10",
|
|
38
38
|
"@longzai-intelligence-cli/standard": "^0.0.10",
|
|
39
39
|
"@longzai-intelligence-shared-config/core": "^0.0.7",
|