rapidkit 0.26.0 → 0.27.1
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/README.md +26 -2
- package/dist/{create-YIUV6RUX.js → create-3V7O72CO.js} +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +138 -130
- package/dist/package.json +1 -1
- package/dist/{workspace-VN3VF62I.js → workspace-7JHX7L3E.js} +50 -50
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {j}from'./chunk-Z5LKRG57.js';import {b}from'./chunk-Q7ULIFQA.js';import {promises}from'fs';import
|
|
2
|
-
\u2705 Synced ${
|
|
3
|
-
\u2705 All projects already registered (${d} found)`);}catch(r){t||console.error("\u274C Failed to sync projects:",r.message);}}async function
|
|
1
|
+
import {j as j$1}from'./chunk-Z5LKRG57.js';import {b as b$1}from'./chunk-Q7ULIFQA.js';import {promises}from'fs';import n from'path';import a from'chalk';import b from'ora';import {execa}from'execa';function j(e){let t=n.resolve(e);return process.platform==="win32"?t.toLowerCase():t}function I(e){let t=j(e.path),r=Array.isArray(e.projects)?e.projects:[],o=[],i=new Set;for(let s of r){if(!s||typeof s.name!="string"||typeof s.path!="string")continue;let c=j(s.path);i.has(c)||(i.add(c),o.push({name:s.name,path:c}));}return {name:e.name,path:t,mode:e.mode,projects:o}}function x(e){let t=[],r=new Set;for(let o of e.workspaces||[]){if(!o||typeof o.name!="string"||typeof o.path!="string")continue;let i=I(o);r.has(i.path)||(r.add(i.path),t.push(i));}return {workspaces:t}}async function A(e,t){try{let r=j(e),o=j$1(),i=n.join(o,"workspaces.json");await promises.mkdir(o,{recursive:true});let s={workspaces:[]};try{let p=await promises.readFile(i,"utf8"),d=JSON.parse(p);d&&Array.isArray(d.workspaces)&&(s=x(d));}catch{}s.workspaces.some(p=>p.path===r)||(s.workspaces.push({name:t,path:r,mode:"full",projects:[]}),await promises.writeFile(i,JSON.stringify(s,null,2)));}catch{console.warn(a.gray("Note: Could not register workspace in shared registry"));}}async function X(e,t=false){try{let r=j(e),o=j$1(),i=n.join(o,"workspaces.json"),s={workspaces:[]};try{let g=await promises.readFile(i,"utf8"),f=JSON.parse(g);f&&Array.isArray(f.workspaces)&&(s=x(f));}catch{t||console.log("\u26A0\uFE0F Workspace registry not found");return}let c=s.workspaces.find(g=>g.path===r);if(!c){t||console.log("\u26A0\uFE0F Workspace not registered in registry");return}Array.isArray(c.projects)||(c.projects=[]);let p=0,d=0,u=[e],m=new Set;for(;u.length>0;){let g=u.shift();if(!g||m.has(g))continue;m.add(g);let f=await promises.readdir(g,{withFileTypes:true});for(let y of f){if(!y.isDirectory()||y.name.startsWith(".")||["node_modules","dist","build","target","coverage","htmlcov"].includes(y.name))continue;let k=n.join(g,y.name),h=j(k),v=n.join(h,".rapidkit","context.json"),E=n.join(h,".rapidkit","project.json");try{let _=false;try{await promises.access(v),_=true;}catch{await promises.access(E),_=true;}if(_){let $=n.basename(h);c.projects.some(R=>R.path===h||R.name===$)?d++:(c.projects.push({name:$,path:h}),p++,t||console.log(`\u2714 Added: ${n.relative(e,h)}`));continue}}catch{}u.push(k);}}p>0?(await promises.writeFile(i,JSON.stringify(s,null,2)),t||console.log(`
|
|
2
|
+
\u2705 Synced ${p} project(s) to registry`)):t||console.log(`
|
|
3
|
+
\u2705 All projects already registered (${d} found)`);}catch(r){t||console.error("\u274C Failed to sync projects:",r.message);}}async function Z(e,t,r){try{let o=j(e),i=j(r),s=j$1(),c=n.join(s,"workspaces.json"),p={workspaces:[]};try{let m=await promises.readFile(c,"utf8"),g=JSON.parse(m);g&&Array.isArray(g.workspaces)&&(p=x(g));}catch{return}let d=p.workspaces.find(m=>m.path===o);if(!d)return;Array.isArray(d.projects)||(d.projects=[]),d.projects.some(m=>m.path===i||m.name===t)||(d.projects.push({name:t,path:i}),await promises.writeFile(c,JSON.stringify(p,null,2)));}catch{}}async function ee(e,t){let r=b("Creating RapidKit workspace...").start();try{await promises.mkdir(e,{recursive:true}),await promises.mkdir(n.join(e,".rapidkit"),{recursive:true});let o={workspace_name:t.name,author:t.author,rapidkit_version:b$1(),created_at:new Date().toISOString(),type:"workspace"};await promises.writeFile(n.join(e,".rapidkit","config.json"),JSON.stringify(o,null,2));let{syncWorkspaceFoundationFiles:i}=await import('./create-3V7O72CO.js');await i(e,{workspaceName:t.name,installMethod:"venv",writeMarker:true,writeGitignore:false,onlyIfMissing:true});let s=F();await promises.writeFile(n.join(e,"rapidkit"),s),await promises.chmod(n.join(e,"rapidkit"),493);let c=O();await promises.writeFile(n.join(e,"rapidkit.cmd"),c);let p=B(t.name);if(await promises.writeFile(n.join(e,"README.md"),p),await promises.writeFile(n.join(e,".gitignore"),`# RapidKit workspace
|
|
4
4
|
.env
|
|
5
5
|
.env.*
|
|
6
6
|
!.env.example
|
|
@@ -15,10 +15,10 @@ Thumbs.db
|
|
|
15
15
|
|
|
16
16
|
# Logs
|
|
17
17
|
*.log
|
|
18
|
-
`),await promises.writeFile(
|
|
19
|
-
${
|
|
18
|
+
`),await promises.writeFile(n.join(e,".rapidkit-workspace"),JSON.stringify({signature:"RAPIDKIT_WORKSPACE",createdBy:"rapidkit-npm",version:b$1(),createdAt:new Date().toISOString(),name:t.name},null,2)),await T(e),r.succeed("Workspace created!"),!t.skipGit){let u=b("Initializing git repository...").start();try{await execa("git",["init"],{cwd:e}),await execa("git",["add","."],{cwd:e}),await execa("git",["commit","-m","Initial commit: RapidKit workspace"],{cwd:e}),u.succeed("Git repository initialized");}catch{u.warn("Could not initialize git repository");}}await A(e,t.name),console.log(`
|
|
19
|
+
${a.green("\u2728 RapidKit workspace created successfully!")}
|
|
20
20
|
|
|
21
|
-
${
|
|
21
|
+
${a.bold("\u{1F4C2} Workspace structure:")}
|
|
22
22
|
${e}/
|
|
23
23
|
\u251C\u2500\u2500 rapidkit # Local CLI wrapper
|
|
24
24
|
\u251C\u2500\u2500 rapidkit.cmd # Windows local CLI wrapper
|
|
@@ -30,29 +30,29 @@ ${e}/
|
|
|
30
30
|
\u2502 \u2514\u2500\u2500 config.json # Legacy compatibility metadata
|
|
31
31
|
\u2514\u2500\u2500 README.md
|
|
32
32
|
|
|
33
|
-
${
|
|
34
|
-
${
|
|
35
|
-
${
|
|
36
|
-
${
|
|
37
|
-
${
|
|
38
|
-
${
|
|
33
|
+
${a.bold("\u{1F680} Get started:")}
|
|
34
|
+
${a.cyan(`cd ${t.name}`)}
|
|
35
|
+
${a.cyan("npx rapidkit my-api --template fastapi")}
|
|
36
|
+
${a.cyan("cd my-api")}
|
|
37
|
+
${a.cyan("npx rapidkit init")}
|
|
38
|
+
${a.cyan("npx rapidkit dev")}
|
|
39
39
|
|
|
40
|
-
${
|
|
40
|
+
${a.bold("\u{1F4E6} Available templates:")}
|
|
41
41
|
fastapi - FastAPI + Python
|
|
42
42
|
nestjs - NestJS + TypeScript
|
|
43
43
|
springboot - Spring Boot + Java
|
|
44
44
|
gofiber - Go Fiber
|
|
45
45
|
gogin - Go Gin
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${a.bold("\u{1F4DA} Commands:")}
|
|
48
48
|
npx rapidkit <name> --template <type> Create a new project
|
|
49
49
|
npx rapidkit init Install dependencies
|
|
50
50
|
npx rapidkit dev Start dev server
|
|
51
51
|
npx rapidkit help Show all commands
|
|
52
52
|
|
|
53
|
-
${
|
|
54
|
-
${
|
|
55
|
-
`);}catch(
|
|
53
|
+
${a.gray("Alternative: ./rapidkit dev (Windows: .\\rapidkit.cmd dev), make dev")}
|
|
54
|
+
${a.gray("\u{1F4A1} Tip: Install globally (npm i -g rapidkit) to use without npx")}
|
|
55
|
+
`);}catch(o){throw r.fail("Failed to create workspace"),o}}function F(){return `#!/usr/bin/env bash
|
|
56
56
|
#
|
|
57
57
|
# RapidKit CLI - Local workspace commands
|
|
58
58
|
# This script provides rapidkit commands within the workspace
|
|
@@ -400,7 +400,7 @@ main() {
|
|
|
400
400
|
print_help
|
|
401
401
|
;;
|
|
402
402
|
version|-v|--version)
|
|
403
|
-
echo "RapidKit CLI (npm workspace) v${b()}"
|
|
403
|
+
echo "RapidKit CLI (npm workspace) v${b$1()}"
|
|
404
404
|
;;
|
|
405
405
|
*)
|
|
406
406
|
echo -e "\${RED}\u274C Unknown command: $cmd\${NC}"
|
|
@@ -412,7 +412,7 @@ main() {
|
|
|
412
412
|
}
|
|
413
413
|
|
|
414
414
|
main "$@"
|
|
415
|
-
`}function
|
|
415
|
+
`}function O(){return `@echo off
|
|
416
416
|
setlocal enabledelayedexpansion
|
|
417
417
|
|
|
418
418
|
set "SCRIPT_DIR=%~dp0"
|
|
@@ -432,7 +432,7 @@ if %ERRORLEVEL%==0 (
|
|
|
432
432
|
echo [RapidKit] No sh/bash found. Falling back to npx rapidkit.
|
|
433
433
|
npx rapidkit %*
|
|
434
434
|
exit /b %ERRORLEVEL%
|
|
435
|
-
`}function
|
|
435
|
+
`}function B(e){return `# ${e}
|
|
436
436
|
|
|
437
437
|
RapidKit workspace for building API projects.
|
|
438
438
|
|
|
@@ -480,7 +480,7 @@ npx rapidkit dev # Start dev server
|
|
|
480
480
|
|
|
481
481
|
- [RapidKit Documentation](https://rapidkit.dev)
|
|
482
482
|
- [GitHub Repository](https://github.com/Baziar/rapidkit)
|
|
483
|
-
`}async function
|
|
483
|
+
`}async function T(e){let{fileURLToPath:t}=await import('url'),r=t(import.meta.url),o=n.dirname(r),i=n.resolve(o,".."),s=n.join(i,"templates","kits"),c=n.join(e,".rapidkit","templates"),{default:p}=await import('fs-extra');await p.copy(s,c);let d=n.join(i,"templates","generator.js"),u=n.join(e,".rapidkit","generator.js");await p.copy(d,u);}async function te(e,t){let r=t.template==="fastapi",o=r?"FastAPI":"NestJS",i=b(`Creating ${o} project...`).start();try{let{fileURLToPath:s}=await import('url'),c=s(import.meta.url),p=n.dirname(c),d=n.resolve(p,".."),u=r?"fastapi-standard":"nestjs-standard",m=n.join(d,"templates","kits",u);await promises.mkdir(e,{recursive:true});let g={project_name:r?t.name.replace(/-/g,"_").toLowerCase():t.name.replace(/_/g,"-").toLowerCase(),author:t.author,description:t.description||`${o} application generated with RapidKit`,app_version:"0.1.0",license:"MIT",package_manager:t.package_manager||"npm",created_at:new Date().toISOString(),rapidkit_version:b$1()};await W(m,e,g);let f=r?`# Python
|
|
484
484
|
__pycache__/
|
|
485
485
|
*.py[cod]
|
|
486
486
|
*$py.class
|
|
@@ -548,10 +548,10 @@ Thumbs.db
|
|
|
548
548
|
|
|
549
549
|
# Coverage
|
|
550
550
|
coverage/
|
|
551
|
-
`;if(await promises.writeFile(
|
|
552
|
-
${
|
|
551
|
+
`;if(await promises.writeFile(n.join(e,".gitignore"),f),i.succeed(`${o} project created!`),!t.skipGit){let k=b("Initializing git repository...").start();try{await execa("git",["init"],{cwd:e}),await execa("git",["add","."],{cwd:e}),await execa("git",["commit","-m",`Initial commit: ${o} project via RapidKit`],{cwd:e}),k.succeed("Git repository initialized");}catch{k.warn("Could not initialize git repository");}}if(!t.skipInstall&&!r){let k=t.package_manager||"npm",h=b(`Installing dependencies with ${k}...`).start();try{await execa(k,["install"],{cwd:e}),h.succeed("Dependencies installed");}catch{h.warn(`Could not install dependencies. Run '${k} install' manually.`);}}let y=n.basename(e);console.log(r?`
|
|
552
|
+
${a.green("\u2728 FastAPI project created successfully!")}
|
|
553
553
|
|
|
554
|
-
${
|
|
554
|
+
${a.bold("\u{1F4C2} Project structure:")}
|
|
555
555
|
${e}/
|
|
556
556
|
\u251C\u2500\u2500 .rapidkit/ # RapidKit CLI module
|
|
557
557
|
\u251C\u2500\u2500 src/
|
|
@@ -563,12 +563,12 @@ ${e}/
|
|
|
563
563
|
\u251C\u2500\u2500 pyproject.toml # Poetry configuration
|
|
564
564
|
\u2514\u2500\u2500 README.md
|
|
565
565
|
|
|
566
|
-
${
|
|
567
|
-
${
|
|
568
|
-
${
|
|
569
|
-
${
|
|
566
|
+
${a.bold("\u{1F680} Get started:")}
|
|
567
|
+
${a.cyan(`cd ${y}`)}
|
|
568
|
+
${a.cyan("npx rapidkit init")} ${a.gray("# Install dependencies")}
|
|
569
|
+
${a.cyan("npx rapidkit dev")} ${a.gray("# Start dev server")}
|
|
570
570
|
|
|
571
|
-
${
|
|
571
|
+
${a.bold("\u{1F4DA} Available commands:")}
|
|
572
572
|
npx rapidkit init # Install dependencies (poetry install)
|
|
573
573
|
npx rapidkit dev # Start dev server with hot reload
|
|
574
574
|
npx rapidkit start # Start production server
|
|
@@ -576,12 +576,12 @@ ${i.bold("\u{1F4DA} Available commands:")}
|
|
|
576
576
|
npx rapidkit lint # Lint code
|
|
577
577
|
npx rapidkit format # Format code
|
|
578
578
|
|
|
579
|
-
${
|
|
580
|
-
${
|
|
579
|
+
${a.gray("Alternative: make dev, ./rapidkit dev, poetry run dev")}
|
|
580
|
+
${a.gray("\u{1F4A1} Tip: Install globally (npm i -g rapidkit) to use without npx")}
|
|
581
581
|
`:`
|
|
582
|
-
${
|
|
582
|
+
${a.green("\u2728 NestJS project created successfully!")}
|
|
583
583
|
|
|
584
|
-
${
|
|
584
|
+
${a.bold("\u{1F4C2} Project structure:")}
|
|
585
585
|
${e}/
|
|
586
586
|
\u251C\u2500\u2500 .rapidkit/ # RapidKit CLI module
|
|
587
587
|
\u251C\u2500\u2500 src/
|
|
@@ -593,13 +593,13 @@ ${e}/
|
|
|
593
593
|
\u251C\u2500\u2500 package.json # Dependencies
|
|
594
594
|
\u2514\u2500\u2500 README.md
|
|
595
595
|
|
|
596
|
-
${
|
|
597
|
-
${
|
|
598
|
-
${t.skipInstall?
|
|
599
|
-
`:""}${
|
|
600
|
-
${
|
|
596
|
+
${a.bold("\u{1F680} Get started:")}
|
|
597
|
+
${a.cyan(`cd ${y}`)}
|
|
598
|
+
${t.skipInstall?a.cyan("npx rapidkit init")+a.gray(" # npm install")+`
|
|
599
|
+
`:""}${a.cyan("cp .env.example .env")}
|
|
600
|
+
${a.cyan("npx rapidkit dev")} ${a.gray("# Start dev server")}
|
|
601
601
|
|
|
602
|
-
${
|
|
602
|
+
${a.bold("\u{1F4DA} Available commands:")}
|
|
603
603
|
npx rapidkit init # Install dependencies
|
|
604
604
|
npx rapidkit dev # Start dev server with hot reload
|
|
605
605
|
npx rapidkit start # Start production server
|
|
@@ -608,22 +608,22 @@ ${i.bold("\u{1F4DA} Available commands:")}
|
|
|
608
608
|
npx rapidkit lint # Lint code
|
|
609
609
|
npx rapidkit format # Format code
|
|
610
610
|
|
|
611
|
-
${
|
|
611
|
+
${a.bold("\u{1F310} API endpoints:")}
|
|
612
612
|
http://localhost:8000/health # Health check
|
|
613
613
|
http://localhost:8000/docs # Swagger docs
|
|
614
614
|
http://localhost:8000/examples/notes # Example API
|
|
615
615
|
|
|
616
|
-
${
|
|
617
|
-
`);}catch(
|
|
616
|
+
${a.gray("\u{1F4A1} Tip: Install globally (npm i -g rapidkit) to use without npx")}
|
|
617
|
+
`);}catch(s){throw i.fail(`Failed to create ${o} project`),s}}async function W(e,t,r){let o=await promises.readdir(e,{withFileTypes:true});for(let i of o){let s=n.join(e,i.name),c=i.name.replace(/\.j2$/,""),p=n.join(t,c);if(i.isDirectory())await promises.mkdir(p,{recursive:true}),await W(s,p,r);else {let d=await promises.readFile(s,"utf-8");i.name.endsWith(".j2")&&(d=z(d,r)),await promises.writeFile(p,d),(c==="rapidkit"||c==="activate"||c.endsWith(".py")&&p.includes(".rapidkit"))&&await promises.chmod(p,493);}}}function z(e,t){let r=e;for(let[o,i]of Object.entries(t)){let s=new RegExp(`\\{\\{\\s*${o}\\s*\\}\\}`,"g");r=r.replace(s,String(i));let c=new RegExp(`\\{\\{\\s*${o}\\s*\\|\\s*replace\\s*\\(\\s*['"]([^'"]+)['"]\\s*,\\s*['"]([^'"]*)['"]\\s*\\)\\s*\\}\\}`,"g");r=r.replace(c,(u,m,g)=>String(i).replace(new RegExp(m,"g"),g));let p=new RegExp(`\\{\\{\\s*${o}\\s*\\|\\s*lower\\s*\\}\\}`,"g");r=r.replace(p,String(i).toLowerCase());let d=new RegExp(`\\{\\{\\s*${o}\\s*\\|\\s*replace\\s*\\(\\s*['"]([^'"]+)['"]\\s*,\\s*['"]([^'"]*)['"]\\s*\\)\\s*\\|\\s*lower\\s*\\}\\}`,"g");r=r.replace(d,(u,m,g)=>String(i).replace(new RegExp(m,"g"),g).toLowerCase());}return r}async function re(){let e=j$1(),t=n.join(e,"workspaces.json");if(!await promises.stat(t).catch(()=>null)){console.log(a.yellow(`
|
|
618
618
|
\u26A0\uFE0F No workspaces registered yet.
|
|
619
|
-
`)),console.log(
|
|
620
|
-
`));return}try{let r=await promises.readFile(t,"utf8"),
|
|
619
|
+
`)),console.log(a.gray(`Create a workspace with: npx rapidkit <workspace-name>
|
|
620
|
+
`));return}try{let r=await promises.readFile(t,"utf8"),o=JSON.parse(r);if(!o||typeof o!="object"||!Array.isArray(o.workspaces)){console.log(a.yellow(`
|
|
621
621
|
\u26A0\uFE0F Workspace registry is invalid; resetting to empty state.
|
|
622
|
-
`)),await promises.writeFile(t,JSON.stringify({workspaces:[]},null,2));return}let
|
|
622
|
+
`)),await promises.writeFile(t,JSON.stringify({workspaces:[]},null,2));return}let i=x(o),s=[],c=0;for(let m of i.workspaces)await promises.stat(m.path).catch(()=>null)?s.push(m):c+=1;let p={workspaces:s},d=JSON.stringify(o),u=JSON.stringify(p);if(d!==u&&await promises.writeFile(t,JSON.stringify(p,null,2)),!p.workspaces||p.workspaces.length===0){console.log(a.yellow(`
|
|
623
623
|
\u26A0\uFE0F No workspaces registered yet.
|
|
624
|
-
`)),
|
|
625
|
-
`));return}console.log(
|
|
624
|
+
`)),c>0&&console.log(a.gray(`Cleaned ${c} stale workspace entr${c===1?"y":"ies"}.
|
|
625
|
+
`));return}console.log(a.bold(`
|
|
626
626
|
\u{1F4E6} Registered RapidKit Workspaces:
|
|
627
|
-
`));for(let m of
|
|
628
|
-
`));}catch(r){console.error(
|
|
629
|
-
\u274C Failed to read workspace registry`)),console.error(
|
|
627
|
+
`));for(let m of p.workspaces)console.log(a.cyan(` ${m.name}`)),console.log(a.gray(` Path: ${m.path}`)),console.log(a.gray(` Projects: ${m.projects?.length||0}`)),console.log();c>0&&console.log(a.gray(`Cleaned ${c} stale workspace entr${c===1?"y":"ies"}.`)),console.log(a.gray(`Total: ${p.workspaces.length} workspace(s)
|
|
628
|
+
`));}catch(r){console.error(a.red(`
|
|
629
|
+
\u274C Failed to read workspace registry`)),console.error(a.gray(String(r)));}}async function P(e){try{let t=await promises.readFile(e,"utf8");return JSON.parse(t)}catch{return null}}async function D(e){try{return await promises.access(e),true}catch{return false}}async function U(e){let t=[],r=[e],o=new Set;for(;r.length>0;){let i=r.shift();if(!i||o.has(i))continue;o.add(i);let s=[];try{s=await promises.readdir(i,{withFileTypes:true});}catch{continue}for(let c of s){if(!c.isDirectory()||c.name.startsWith(".")||["node_modules","dist","build","target","coverage","htmlcov"].includes(c.name))continue;let p=n.join(i,c.name),d=await D(n.join(p,".rapidkit","context.json")),u=await D(n.join(p,".rapidkit","project.json"));(d||u)&&t.push(p),r.push(p);}}return t.sort((i,s)=>i.localeCompare(s))}async function L(e){try{return (await promises.readdir(e,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.toLowerCase().endsWith(".json")).map(r=>r.name).sort((r,o)=>r.localeCompare(o))}catch{return []}}async function ie(e,t){let r=t?.includePaths===true,o=t?.includeDoctorEvidence!==false,i=n.resolve(e),s=await P(n.join(i,".rapidkit","workspace.json")),c=typeof s?.workspace_name=="string"&&s.workspace_name.trim()||n.basename(i),p=typeof s?.profile=="string"?s.profile:void 0,d=typeof s?.rapidkit_version=="string"?s.rapidkit_version:void 0,u=await U(i),m=[];for(let h of u){let v=await P(n.join(h,".rapidkit","project.json")),E=n.relative(i,h)||".",_=n.join(h,".rapidkit","reports"),$={name:n.basename(h),relative_path:E,runtime:typeof v?.runtime=="string"?v.runtime:void 0,kit_name:typeof v?.kit_name=="string"?v.kit_name:void 0};if(r&&($.absolute_path=h),o){let R=await P(n.join(_,"doctor-last-run.json"));R&&($.doctor_report=R);}let N=await L(_);N.length>0&&($.reports=N),m.push($);}let g=n.join(i,".rapidkit","reports"),f=await L(g),y={schema_version:"1.0",generated_at:new Date().toISOString(),generated_by:"rapidkit-npm",workspace:{name:c,relative_root:".",profile:p,rapidkit_version:d,...r?{absolute_root:i}:{}},summary:{project_count:m.length,doctor_evidence_included:o},reports:{workspace:f},projects:m},k=t?.outputPath?n.resolve(t.outputPath):n.join(g,"share-bundle.json");return await promises.mkdir(n.dirname(k),{recursive:true}),await promises.writeFile(k,JSON.stringify(y,null,2),"utf8"),k}export{te as createProject,ee as createWorkspace,ie as createWorkspaceShareBundle,re as listWorkspaces,Z as registerProjectInWorkspace,A as registerWorkspace,X as syncWorkspaceProjects};
|
package/package.json
CHANGED