everything-dev 0.3.2 → 1.3.2
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 +64 -0
- package/cli.js +10 -0
- package/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/api-contract.cjs +172 -0
- package/dist/api-contract.cjs.map +1 -0
- package/dist/api-contract.mjs +171 -0
- package/dist/api-contract.mjs.map +1 -0
- package/dist/api.cjs +124 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.cts +36 -0
- package/dist/api.d.cts.map +1 -0
- package/dist/api.d.mts +36 -0
- package/dist/api.d.mts.map +1 -0
- package/dist/api.mjs +119 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app.cjs +156 -0
- package/dist/app.cjs.map +1 -0
- package/dist/app.mjs +153 -0
- package/dist/app.mjs.map +1 -0
- package/dist/cli/catalog.cjs +30 -0
- package/dist/cli/catalog.cjs.map +1 -0
- package/dist/cli/catalog.mjs +29 -0
- package/dist/cli/catalog.mjs.map +1 -0
- package/dist/cli/help.cjs +16 -0
- package/dist/cli/help.cjs.map +1 -0
- package/dist/cli/help.mjs +16 -0
- package/dist/cli/help.mjs.map +1 -0
- package/dist/cli/init.cjs +317 -0
- package/dist/cli/init.cjs.map +1 -0
- package/dist/cli/init.d.cts +36 -0
- package/dist/cli/init.d.cts.map +1 -0
- package/dist/cli/init.d.mts +36 -0
- package/dist/cli/init.d.mts.map +1 -0
- package/dist/cli/init.mjs +309 -0
- package/dist/cli/init.mjs.map +1 -0
- package/dist/cli/parse.cjs +96 -0
- package/dist/cli/parse.cjs.map +1 -0
- package/dist/cli/parse.mjs +95 -0
- package/dist/cli/parse.mjs.map +1 -0
- package/dist/cli/prompts.cjs +42 -0
- package/dist/cli/prompts.cjs.map +1 -0
- package/dist/cli/prompts.mjs +41 -0
- package/dist/cli/prompts.mjs.map +1 -0
- package/dist/cli.cjs +167 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +166 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/components/dev-view.cjs +307 -0
- package/dist/components/dev-view.cjs.map +1 -0
- package/dist/components/dev-view.mjs +306 -0
- package/dist/components/dev-view.mjs.map +1 -0
- package/dist/components/streaming-view.cjs +146 -0
- package/dist/components/streaming-view.cjs.map +1 -0
- package/dist/components/streaming-view.mjs +144 -0
- package/dist/components/streaming-view.mjs.map +1 -0
- package/dist/config.cjs +280 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +35 -0
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.mts +35 -0
- package/dist/config.d.mts.map +1 -0
- package/dist/config.mjs +266 -0
- package/dist/config.mjs.map +1 -0
- package/dist/contract.cjs +209 -0
- package/dist/contract.cjs.map +1 -0
- package/dist/contract.d.cts +490 -0
- package/dist/contract.d.cts.map +1 -0
- package/dist/contract.d.mts +490 -0
- package/dist/contract.d.mts.map +1 -0
- package/dist/contract.meta.cjs +104 -0
- package/dist/contract.meta.cjs.map +1 -0
- package/dist/contract.meta.d.cts +141 -0
- package/dist/contract.meta.d.cts.map +1 -0
- package/dist/contract.meta.d.mts +141 -0
- package/dist/contract.meta.d.mts.map +1 -0
- package/dist/contract.meta.mjs +102 -0
- package/dist/contract.meta.mjs.map +1 -0
- package/dist/contract.mjs +186 -0
- package/dist/contract.mjs.map +1 -0
- package/dist/dev-logs.cjs +53 -0
- package/dist/dev-logs.cjs.map +1 -0
- package/dist/dev-logs.mjs +51 -0
- package/dist/dev-logs.mjs.map +1 -0
- package/dist/dev-session.cjs +195 -0
- package/dist/dev-session.cjs.map +1 -0
- package/dist/dev-session.mjs +194 -0
- package/dist/dev-session.mjs.map +1 -0
- package/dist/fastkv.cjs +89 -0
- package/dist/fastkv.cjs.map +1 -0
- package/dist/fastkv.d.cts +11 -0
- package/dist/fastkv.d.cts.map +1 -0
- package/dist/fastkv.d.mts +11 -0
- package/dist/fastkv.d.mts.map +1 -0
- package/dist/fastkv.mjs +82 -0
- package/dist/fastkv.mjs.map +1 -0
- package/dist/federation.server.cjs +27 -0
- package/dist/federation.server.cjs.map +1 -0
- package/dist/federation.server.mjs +27 -0
- package/dist/federation.server.mjs.map +1 -0
- package/dist/host.cjs +367 -0
- package/dist/host.cjs.map +1 -0
- package/dist/host.d.cts +22 -0
- package/dist/host.d.cts.map +1 -0
- package/dist/host.d.mts +22 -0
- package/dist/host.d.mts.map +1 -0
- package/dist/host.mjs +364 -0
- package/dist/host.mjs.map +1 -0
- package/dist/index.cjs +122 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.mjs +9 -0
- package/dist/integrity.cjs +39 -0
- package/dist/integrity.cjs.map +1 -0
- package/dist/integrity.d.cts +7 -0
- package/dist/integrity.d.cts.map +1 -0
- package/dist/integrity.d.mts +7 -0
- package/dist/integrity.d.mts.map +1 -0
- package/dist/integrity.mjs +35 -0
- package/dist/integrity.mjs.map +1 -0
- package/dist/mf.cjs +77 -0
- package/dist/mf.cjs.map +1 -0
- package/dist/mf.d.cts +19 -0
- package/dist/mf.d.cts.map +1 -0
- package/dist/mf.d.mts +19 -0
- package/dist/mf.d.mts.map +1 -0
- package/dist/mf.mjs +71 -0
- package/dist/mf.mjs.map +1 -0
- package/dist/near-cli.cjs +196 -0
- package/dist/near-cli.cjs.map +1 -0
- package/dist/near-cli.mjs +193 -0
- package/dist/near-cli.mjs.map +1 -0
- package/dist/network.cjs +9 -0
- package/dist/network.cjs.map +1 -0
- package/dist/network.mjs +8 -0
- package/dist/network.mjs.map +1 -0
- package/dist/orchestrator.cjs +441 -0
- package/dist/orchestrator.cjs.map +1 -0
- package/dist/orchestrator.d.cts +40 -0
- package/dist/orchestrator.d.cts.map +1 -0
- package/dist/orchestrator.d.mts +40 -0
- package/dist/orchestrator.d.mts.map +1 -0
- package/dist/orchestrator.mjs +436 -0
- package/dist/orchestrator.mjs.map +1 -0
- package/dist/plugin.cjs +825 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.cts +347 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.mts +348 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +822 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/process-registry.cjs +120 -0
- package/dist/process-registry.cjs.map +1 -0
- package/dist/process-registry.d.cts +25 -0
- package/dist/process-registry.d.cts.map +1 -0
- package/dist/process-registry.d.mts +25 -0
- package/dist/process-registry.d.mts.map +1 -0
- package/dist/process-registry.mjs +119 -0
- package/dist/process-registry.mjs.map +1 -0
- package/dist/sdk.cjs +61 -0
- package/dist/sdk.d.cts +5 -0
- package/dist/sdk.d.mts +5 -0
- package/dist/sdk.mjs +6 -0
- package/dist/shared.cjs +143 -0
- package/dist/shared.cjs.map +1 -0
- package/dist/shared.d.cts +33 -0
- package/dist/shared.d.cts.map +1 -0
- package/dist/shared.d.mts +33 -0
- package/dist/shared.d.mts.map +1 -0
- package/dist/shared.mjs +140 -0
- package/dist/shared.mjs.map +1 -0
- package/dist/types.cjs +160 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +269 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +269 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +144 -0
- package/dist/types.mjs.map +1 -0
- package/dist/ui/head.cjs +67 -0
- package/dist/ui/head.cjs.map +1 -0
- package/dist/ui/head.d.cts +19 -0
- package/dist/ui/head.d.cts.map +1 -0
- package/dist/ui/head.d.mts +19 -0
- package/dist/ui/head.d.mts.map +1 -0
- package/dist/ui/head.mjs +61 -0
- package/dist/ui/head.mjs.map +1 -0
- package/dist/ui/index.cjs +32 -0
- package/dist/ui/index.d.cts +7 -0
- package/dist/ui/index.d.mts +7 -0
- package/dist/ui/index.mjs +6 -0
- package/dist/ui/metadata.cjs +106 -0
- package/dist/ui/metadata.cjs.map +1 -0
- package/dist/ui/metadata.d.cts +35 -0
- package/dist/ui/metadata.d.cts.map +1 -0
- package/dist/ui/metadata.d.mts +35 -0
- package/dist/ui/metadata.d.mts.map +1 -0
- package/dist/ui/metadata.mjs +100 -0
- package/dist/ui/metadata.mjs.map +1 -0
- package/dist/ui/router.cjs +56 -0
- package/dist/ui/router.cjs.map +1 -0
- package/dist/ui/router.d.cts +11 -0
- package/dist/ui/router.d.cts.map +1 -0
- package/dist/ui/router.d.mts +11 -0
- package/dist/ui/router.d.mts.map +1 -0
- package/dist/ui/router.mjs +51 -0
- package/dist/ui/router.mjs.map +1 -0
- package/dist/ui/runtime.cjs +65 -0
- package/dist/ui/runtime.cjs.map +1 -0
- package/dist/ui/runtime.d.cts +29 -0
- package/dist/ui/runtime.d.cts.map +1 -0
- package/dist/ui/runtime.d.mts +29 -0
- package/dist/ui/runtime.d.mts.map +1 -0
- package/dist/ui/runtime.mjs +53 -0
- package/dist/ui/runtime.mjs.map +1 -0
- package/dist/ui/types.cjs +0 -0
- package/dist/ui/types.d.cts +52 -0
- package/dist/ui/types.d.cts.map +1 -0
- package/dist/ui/types.d.mts +52 -0
- package/dist/ui/types.d.mts.map +1 -0
- package/dist/ui/types.mjs +1 -0
- package/dist/utils/banner.cjs +24 -0
- package/dist/utils/banner.cjs.map +1 -0
- package/dist/utils/banner.mjs +23 -0
- package/dist/utils/banner.mjs.map +1 -0
- package/dist/utils/linkify.cjs +15 -0
- package/dist/utils/linkify.cjs.map +1 -0
- package/dist/utils/linkify.mjs +14 -0
- package/dist/utils/linkify.mjs.map +1 -0
- package/dist/utils/run.cjs +40 -0
- package/dist/utils/run.cjs.map +1 -0
- package/dist/utils/run.mjs +39 -0
- package/dist/utils/run.mjs.map +1 -0
- package/dist/utils/theme.cjs +44 -0
- package/dist/utils/theme.cjs.map +1 -0
- package/dist/utils/theme.mjs +37 -0
- package/dist/utils/theme.mjs.map +1 -0
- package/package.json +269 -80
- package/src/api-contract.ts +309 -0
- package/src/api.ts +181 -0
- package/src/app.ts +346 -0
- package/src/cli/catalog.ts +49 -0
- package/src/cli/help.ts +13 -0
- package/src/cli/init.ts +415 -0
- package/src/cli/parse.ts +130 -0
- package/src/cli/prompts.ts +64 -0
- package/src/cli.ts +203 -1507
- package/src/components/dev-view.tsx +104 -41
- package/src/components/streaming-view.ts +89 -22
- package/src/config.ts +462 -532
- package/src/contract.meta.ts +96 -0
- package/src/contract.ts +164 -561
- package/src/dev-logs.ts +85 -0
- package/src/dev-session.ts +318 -0
- package/src/fastkv.ts +153 -0
- package/src/federation.server.ts +43 -0
- package/src/host.ts +526 -0
- package/src/index.ts +6 -3
- package/src/integrity.ts +54 -0
- package/src/mf.ts +105 -0
- package/src/near-cli.ts +284 -0
- package/src/network.ts +3 -0
- package/src/orchestrator.ts +648 -0
- package/src/plugin.ts +1116 -2303
- package/src/process-registry.ts +154 -0
- package/src/scripts/sync-api-contract.ts +24 -0
- package/src/sdk.ts +14 -0
- package/src/shared.ts +206 -0
- package/src/types.ts +152 -206
- package/src/ui/head.ts +34 -27
- package/src/ui/index.ts +3 -3
- package/src/ui/metadata.ts +95 -0
- package/src/ui/router.ts +22 -6
- package/src/ui/runtime.ts +55 -6
- package/src/ui/types.ts +24 -11
- package/src/utils/banner.ts +10 -6
- package/src/utils/run.ts +26 -27
- package/src/utils/theme.ts +3 -66
- package/src/components/monitor-view.tsx +0 -475
- package/src/components/status-view.tsx +0 -173
- package/src/lib/env.ts +0 -109
- package/src/lib/near-cli.ts +0 -289
- package/src/lib/nova.ts +0 -266
- package/src/lib/orchestrator.ts +0 -276
- package/src/lib/process-registry.ts +0 -166
- package/src/lib/process.ts +0 -549
- package/src/lib/resource-monitor/assertions.ts +0 -234
- package/src/lib/resource-monitor/command.ts +0 -283
- package/src/lib/resource-monitor/diff.ts +0 -157
- package/src/lib/resource-monitor/errors.ts +0 -127
- package/src/lib/resource-monitor/index.ts +0 -305
- package/src/lib/resource-monitor/platform/darwin.ts +0 -306
- package/src/lib/resource-monitor/platform/index.ts +0 -35
- package/src/lib/resource-monitor/platform/linux.ts +0 -332
- package/src/lib/resource-monitor/platform/windows.ts +0 -298
- package/src/lib/resource-monitor/snapshot.ts +0 -217
- package/src/lib/resource-monitor/types.ts +0 -74
- package/src/lib/session-recorder/errors.ts +0 -102
- package/src/lib/session-recorder/flows/login.ts +0 -210
- package/src/lib/session-recorder/index.ts +0 -361
- package/src/lib/session-recorder/playwright.ts +0 -257
- package/src/lib/session-recorder/report.ts +0 -353
- package/src/lib/session-recorder/server.ts +0 -267
- package/src/lib/session-recorder/types.ts +0 -115
- package/src/lib/sync.ts +0 -1
- package/src/ui/files.ts +0 -134
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { bosContract } from "../contract.mjs";
|
|
2
|
+
import { cliCommandMeta } from "../contract.meta.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/cli/catalog.ts
|
|
5
|
+
function splitCamelCase(value) {
|
|
6
|
+
return value.replace(/([a-z0-9])([A-Z])/g, "$1 $2").split(/\s+/).map((part) => part.trim()).filter(Boolean).map((part) => part.toLowerCase());
|
|
7
|
+
}
|
|
8
|
+
const commandCatalog = Object.entries(bosContract).map(([key, procedure]) => {
|
|
9
|
+
const meta = cliCommandMeta[key] ?? { summary: splitCamelCase(String(key)).join(" ") };
|
|
10
|
+
return {
|
|
11
|
+
key,
|
|
12
|
+
commandPath: meta.commandPath ?? splitCamelCase(String(key)),
|
|
13
|
+
summary: meta.summary,
|
|
14
|
+
meta,
|
|
15
|
+
procedure
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
function findCommandDescriptor(args) {
|
|
19
|
+
const sorted = [...commandCatalog].sort((a, b) => b.commandPath.length - a.commandPath.length);
|
|
20
|
+
for (const descriptor of sorted) if (args.slice(0, descriptor.commandPath.length).map((part) => part.toLowerCase()).join(" ") === descriptor.commandPath.join(" ")) return {
|
|
21
|
+
descriptor,
|
|
22
|
+
consumed: descriptor.commandPath.length
|
|
23
|
+
};
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { commandCatalog, findCommandDescriptor };
|
|
29
|
+
//# sourceMappingURL=catalog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.mjs","names":[],"sources":["../../src/cli/catalog.ts"],"sourcesContent":["import { bosContract } from \"../contract\";\nimport { type CliCommandMeta, cliCommandMeta } from \"../contract.meta\";\n\nexport type CommandDescriptor = {\n key: keyof typeof bosContract;\n commandPath: string[];\n summary: string;\n meta: CliCommandMeta;\n procedure: (typeof bosContract)[keyof typeof bosContract];\n};\n\nfunction splitCamelCase(value: string): string[] {\n return value\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .split(/\\s+/)\n .map((part) => part.trim())\n .filter(Boolean)\n .map((part) => part.toLowerCase());\n}\n\nexport const commandCatalog: CommandDescriptor[] = (\n Object.entries(bosContract) as Array<\n [keyof typeof bosContract, (typeof bosContract)[keyof typeof bosContract]]\n >\n).map(([key, procedure]) => {\n const meta = cliCommandMeta[key as keyof typeof cliCommandMeta] ?? {\n summary: splitCamelCase(String(key)).join(\" \"),\n };\n return {\n key,\n commandPath: meta.commandPath ?? splitCamelCase(String(key)),\n summary: meta.summary,\n meta,\n procedure,\n };\n});\n\nexport function findCommandDescriptor(\n args: string[],\n): { descriptor: CommandDescriptor; consumed: number } | null {\n const sorted = [...commandCatalog].sort((a, b) => b.commandPath.length - a.commandPath.length);\n for (const descriptor of sorted) {\n const parts = args.slice(0, descriptor.commandPath.length).map((part) => part.toLowerCase());\n if (parts.join(\" \") === descriptor.commandPath.join(\" \")) {\n return { descriptor, consumed: descriptor.commandPath.length };\n }\n }\n return null;\n}\n"],"mappings":";;;;AAWA,SAAS,eAAe,OAAyB;AAC/C,QAAO,MACJ,QAAQ,sBAAsB,QAAQ,CACtC,MAAM,MAAM,CACZ,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ,CACf,KAAK,SAAS,KAAK,aAAa,CAAC;;AAGtC,MAAa,iBACX,OAAO,QAAQ,YAAY,CAG3B,KAAK,CAAC,KAAK,eAAe;CAC1B,MAAM,OAAO,eAAe,QAAuC,EACjE,SAAS,eAAe,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,EAC/C;AACD,QAAO;EACL;EACA,aAAa,KAAK,eAAe,eAAe,OAAO,IAAI,CAAC;EAC5D,SAAS,KAAK;EACd;EACA;EACD;EACD;AAEF,SAAgB,sBACd,MAC4D;CAC5D,MAAM,SAAS,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,MAAM,EAAE,YAAY,SAAS,EAAE,YAAY,OAAO;AAC9F,MAAK,MAAM,cAAc,OAEvB,KADc,KAAK,MAAM,GAAG,WAAW,YAAY,OAAO,CAAC,KAAK,SAAS,KAAK,aAAa,CAAC,CAClF,KAAK,IAAI,KAAK,WAAW,YAAY,KAAK,IAAI,CACtD,QAAO;EAAE;EAAY,UAAU,WAAW,YAAY;EAAQ;AAGlE,QAAO"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const require_catalog = require('./catalog.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/cli/help.ts
|
|
4
|
+
function printHelp() {
|
|
5
|
+
process.stdout.write(`everything-dev commands\n\n`);
|
|
6
|
+
for (const command of require_catalog.commandCatalog) {
|
|
7
|
+
process.stdout.write(` everything-dev ${command.commandPath.join(" ")}`);
|
|
8
|
+
process.stdout.write(command.meta.longRunning ? " (long running)" : "");
|
|
9
|
+
process.stdout.write(`\n ${command.summary}\n`);
|
|
10
|
+
}
|
|
11
|
+
process.stdout.write(`\n'bos' is an alias for 'everything-dev'.\n`);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.printHelp = printHelp;
|
|
16
|
+
//# sourceMappingURL=help.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.cjs","names":["commandCatalog"],"sources":["../../src/cli/help.ts"],"sourcesContent":["import { commandCatalog } from \"./catalog\";\n\nexport function printHelp() {\n process.stdout.write(`everything-dev commands\\n\\n`);\n\n for (const command of commandCatalog) {\n process.stdout.write(` everything-dev ${command.commandPath.join(\" \")}`);\n process.stdout.write(command.meta.longRunning ? \" (long running)\" : \"\");\n process.stdout.write(`\\n ${command.summary}\\n`);\n }\n\n process.stdout.write(`\\n'bos' is an alias for 'everything-dev'.\\n`);\n}\n"],"mappings":";;;AAEA,SAAgB,YAAY;AAC1B,SAAQ,OAAO,MAAM,8BAA8B;AAEnD,MAAK,MAAM,WAAWA,gCAAgB;AACpC,UAAQ,OAAO,MAAM,oBAAoB,QAAQ,YAAY,KAAK,IAAI,GAAG;AACzE,UAAQ,OAAO,MAAM,QAAQ,KAAK,cAAc,oBAAoB,GAAG;AACvE,UAAQ,OAAO,MAAM,SAAS,QAAQ,QAAQ,IAAI;;AAGpD,SAAQ,OAAO,MAAM,8CAA8C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { commandCatalog } from "./catalog.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/help.ts
|
|
4
|
+
function printHelp() {
|
|
5
|
+
process.stdout.write(`everything-dev commands\n\n`);
|
|
6
|
+
for (const command of commandCatalog) {
|
|
7
|
+
process.stdout.write(` everything-dev ${command.commandPath.join(" ")}`);
|
|
8
|
+
process.stdout.write(command.meta.longRunning ? " (long running)" : "");
|
|
9
|
+
process.stdout.write(`\n ${command.summary}\n`);
|
|
10
|
+
}
|
|
11
|
+
process.stdout.write(`\n'bos' is an alias for 'everything-dev'.\n`);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { printHelp };
|
|
16
|
+
//# sourceMappingURL=help.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.mjs","names":[],"sources":["../../src/cli/help.ts"],"sourcesContent":["import { commandCatalog } from \"./catalog\";\n\nexport function printHelp() {\n process.stdout.write(`everything-dev commands\\n\\n`);\n\n for (const command of commandCatalog) {\n process.stdout.write(` everything-dev ${command.commandPath.join(\" \")}`);\n process.stdout.write(command.meta.longRunning ? \" (long running)\" : \"\");\n process.stdout.write(`\\n ${command.summary}\\n`);\n }\n\n process.stdout.write(`\\n'bos' is an alias for 'everything-dev'.\\n`);\n}\n"],"mappings":";;;AAEA,SAAgB,YAAY;AAC1B,SAAQ,OAAO,MAAM,8BAA8B;AAEnD,MAAK,MAAM,WAAW,gBAAgB;AACpC,UAAQ,OAAO,MAAM,oBAAoB,QAAQ,YAAY,KAAK,IAAI,GAAG;AACzE,UAAQ,OAAO,MAAM,QAAQ,KAAK,cAAc,oBAAoB,GAAG;AACvE,UAAQ,OAAO,MAAM,SAAS,QAAQ,QAAQ,IAAI;;AAGpD,SAAQ,OAAO,MAAM,8CAA8C"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
const require_fastkv = require('../fastkv.cjs');
|
|
4
|
+
let node_fs = require("node:fs");
|
|
5
|
+
let node_path = require("node:path");
|
|
6
|
+
let node_child_process = require("node:child_process");
|
|
7
|
+
let node_module = require("node:module");
|
|
8
|
+
let node_os = require("node:os");
|
|
9
|
+
let node_stream_promises = require("node:stream/promises");
|
|
10
|
+
let glob = require("glob");
|
|
11
|
+
|
|
12
|
+
//#region src/cli/init.ts
|
|
13
|
+
const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
|
|
14
|
+
async function resolveSourceDir(opts) {
|
|
15
|
+
if (opts.source) {
|
|
16
|
+
const sourceDir = (0, node_path.resolve)(opts.source);
|
|
17
|
+
if (!(0, node_fs.existsSync)((0, node_path.join)(sourceDir, "bos.config.json"))) throw new Error(`No bos.config.json found in source directory: ${sourceDir}`);
|
|
18
|
+
return {
|
|
19
|
+
sourceDir,
|
|
20
|
+
parentConfig: JSON.parse((0, node_fs.readFileSync)((0, node_path.join)(sourceDir, "bos.config.json"), "utf-8")),
|
|
21
|
+
cleanup: async () => {}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const parentConfig = await fetchParentConfig(opts.account, opts.gateway);
|
|
25
|
+
if (!parentConfig.repository) throw new Error("Parent config has no repository field — cannot locate template source");
|
|
26
|
+
const { dir: sourceDir, cleanup } = await downloadTarball(parentConfig.repository);
|
|
27
|
+
return {
|
|
28
|
+
sourceDir,
|
|
29
|
+
parentConfig,
|
|
30
|
+
cleanup
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async function fetchParentConfig(account, gateway) {
|
|
34
|
+
return require_fastkv.fetchBosConfigFromFastKv(`bos://${account}/${gateway}`);
|
|
35
|
+
}
|
|
36
|
+
async function downloadTarball(repoUrl) {
|
|
37
|
+
const parsed = parseGitHubUrl(repoUrl);
|
|
38
|
+
if (!parsed) throw new Error(`Cannot parse repository URL: ${repoUrl}`);
|
|
39
|
+
const { owner, repo, branch } = parsed;
|
|
40
|
+
const tarballUrl = `https://api.github.com/repos/${owner}/${repo}/tarball/${branch}`;
|
|
41
|
+
const tmpDir = mkTmpDir("bos-init-tarball-");
|
|
42
|
+
const tarballPath = (0, node_path.join)(tmpDir, "source.tar.gz");
|
|
43
|
+
const response = await fetch(tarballUrl, {
|
|
44
|
+
headers: { "User-Agent": "everything-dev" },
|
|
45
|
+
redirect: "follow"
|
|
46
|
+
});
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
(0, node_fs.rmSync)(tmpDir, {
|
|
49
|
+
recursive: true,
|
|
50
|
+
force: true
|
|
51
|
+
});
|
|
52
|
+
throw new Error(`GitHub tarball download failed: ${response.status} ${response.statusText}`);
|
|
53
|
+
}
|
|
54
|
+
if (!response.body) {
|
|
55
|
+
(0, node_fs.rmSync)(tmpDir, {
|
|
56
|
+
recursive: true,
|
|
57
|
+
force: true
|
|
58
|
+
});
|
|
59
|
+
throw new Error("GitHub tarball download returned empty body");
|
|
60
|
+
}
|
|
61
|
+
const fileStream = (0, node_fs.createWriteStream)(tarballPath);
|
|
62
|
+
const reader = response.body;
|
|
63
|
+
await (0, node_stream_promises.pipeline)(reader, fileStream);
|
|
64
|
+
const extractDir = mkTmpDir("bos-init-extract-");
|
|
65
|
+
try {
|
|
66
|
+
await require$1("tar").extract({
|
|
67
|
+
cwd: extractDir,
|
|
68
|
+
file: tarballPath,
|
|
69
|
+
strip: 1
|
|
70
|
+
});
|
|
71
|
+
} catch {
|
|
72
|
+
await execCommand("tar", [
|
|
73
|
+
"-xzf",
|
|
74
|
+
tarballPath,
|
|
75
|
+
"--strip-components=1",
|
|
76
|
+
"-C",
|
|
77
|
+
extractDir
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
(0, node_fs.rmSync)(tmpDir, {
|
|
81
|
+
recursive: true,
|
|
82
|
+
force: true
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
dir: extractDir,
|
|
86
|
+
cleanup: async () => {
|
|
87
|
+
(0, node_fs.rmSync)(extractDir, {
|
|
88
|
+
recursive: true,
|
|
89
|
+
force: true
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function parseGitHubUrl(url) {
|
|
95
|
+
const httpsMatch = url.match(/^https?:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?(?:\/.*)?$/);
|
|
96
|
+
if (httpsMatch) return {
|
|
97
|
+
owner: httpsMatch[1],
|
|
98
|
+
repo: httpsMatch[2],
|
|
99
|
+
branch: "main"
|
|
100
|
+
};
|
|
101
|
+
const sshMatch = url.match(/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
102
|
+
if (sshMatch) return {
|
|
103
|
+
owner: sshMatch[1],
|
|
104
|
+
repo: sshMatch[2],
|
|
105
|
+
branch: "main"
|
|
106
|
+
};
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
async function readTemplatekeep(sourceDir) {
|
|
110
|
+
const keepFile = (0, node_path.join)(sourceDir, ".templatekeep");
|
|
111
|
+
if (!(0, node_fs.existsSync)(keepFile)) return [];
|
|
112
|
+
return (0, node_fs.readFileSync)(keepFile, "utf-8").split("\n").map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#"));
|
|
113
|
+
}
|
|
114
|
+
async function copyFilteredFiles(sourceDir, destination, patterns, options) {
|
|
115
|
+
if (patterns.length === 0) return 0;
|
|
116
|
+
const effectivePatterns = options.withHost ? [...patterns, "host/**"] : patterns.filter((p) => !p.startsWith("host/") && p !== "host/**");
|
|
117
|
+
const allFiles = /* @__PURE__ */ new Set();
|
|
118
|
+
for (const pattern of effectivePatterns) {
|
|
119
|
+
const matches = await (0, glob.glob)(pattern, {
|
|
120
|
+
cwd: sourceDir,
|
|
121
|
+
nodir: true,
|
|
122
|
+
dot: true,
|
|
123
|
+
absolute: false
|
|
124
|
+
});
|
|
125
|
+
for (const match of matches) allFiles.add(match);
|
|
126
|
+
}
|
|
127
|
+
(0, node_fs.mkdirSync)(destination, { recursive: true });
|
|
128
|
+
let count = 0;
|
|
129
|
+
for (const filePath of allFiles) {
|
|
130
|
+
const src = (0, node_path.join)(sourceDir, filePath);
|
|
131
|
+
if (!(0, node_fs.lstatSync)(src).isFile()) continue;
|
|
132
|
+
const dest = (0, node_path.join)(destination, filePath);
|
|
133
|
+
(0, node_fs.mkdirSync)((0, node_path.dirname)(dest), { recursive: true });
|
|
134
|
+
(0, node_fs.writeFileSync)(dest, (0, node_fs.readFileSync)(src));
|
|
135
|
+
count++;
|
|
136
|
+
}
|
|
137
|
+
return count;
|
|
138
|
+
}
|
|
139
|
+
async function personalizeConfig(destination, opts) {
|
|
140
|
+
const configPath = (0, node_path.join)(destination, "bos.config.json");
|
|
141
|
+
if ((0, node_fs.existsSync)(configPath)) {
|
|
142
|
+
const config = JSON.parse((0, node_fs.readFileSync)(configPath, "utf-8"));
|
|
143
|
+
config.extends = `bos://${opts.parentAccount}/${opts.parentGateway}`;
|
|
144
|
+
if (opts.name) config.account = opts.name;
|
|
145
|
+
if (opts.domain) config.domain = opts.domain;
|
|
146
|
+
if (config.app && typeof config.app === "object") {
|
|
147
|
+
const app = config.app;
|
|
148
|
+
for (const entryKey of Object.keys(app)) {
|
|
149
|
+
const entry = app[entryKey];
|
|
150
|
+
if (entry && typeof entry === "object") {
|
|
151
|
+
const e = entry;
|
|
152
|
+
delete e.production;
|
|
153
|
+
delete e.productionIntegrity;
|
|
154
|
+
delete e.ssr;
|
|
155
|
+
delete e.ssrIntegrity;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (config.plugins && typeof config.plugins === "object") {
|
|
160
|
+
const plugins = config.plugins;
|
|
161
|
+
for (const pluginKey of Object.keys(plugins)) {
|
|
162
|
+
const plugin = plugins[pluginKey];
|
|
163
|
+
if (plugin && typeof plugin === "object") {
|
|
164
|
+
const p = plugin;
|
|
165
|
+
delete p.production;
|
|
166
|
+
delete p.productionIntegrity;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
(0, node_fs.writeFileSync)(configPath, `${JSON.stringify(config, null, 2)}\n`);
|
|
171
|
+
}
|
|
172
|
+
const pkgPath = (0, node_path.join)(destination, "package.json");
|
|
173
|
+
if ((0, node_fs.existsSync)(pkgPath)) {
|
|
174
|
+
const pkg = JSON.parse((0, node_fs.readFileSync)(pkgPath, "utf-8"));
|
|
175
|
+
if (pkg.workspaces && typeof pkg.workspaces === "object") {
|
|
176
|
+
const ws = pkg.workspaces;
|
|
177
|
+
if (Array.isArray(ws.packages)) ws.packages = ws.packages.filter((p) => p !== "host" && !p.startsWith("packages/"));
|
|
178
|
+
}
|
|
179
|
+
if (pkg.scripts && typeof pkg.scripts === "object") {
|
|
180
|
+
const scripts = pkg.scripts;
|
|
181
|
+
const rewrite = (key, from, to) => {
|
|
182
|
+
if (scripts[key]?.includes(from)) scripts[key] = scripts[key].replaceAll(from, to);
|
|
183
|
+
};
|
|
184
|
+
rewrite("dev", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
185
|
+
rewrite("dev:ui", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
186
|
+
rewrite("dev:api", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
187
|
+
rewrite("dev:proxy", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
188
|
+
rewrite("build", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
189
|
+
rewrite("deploy", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
190
|
+
rewrite("publish", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
191
|
+
rewrite("start", "packages/everything-dev/cli.js", "node_modules/.bin/bos");
|
|
192
|
+
if (scripts["sync:api-contract"]) delete scripts["sync:api-contract"];
|
|
193
|
+
if (scripts.postinstall) delete scripts.postinstall;
|
|
194
|
+
if (scripts.typecheck?.includes("sync:api-contract")) scripts.typecheck = scripts.typecheck.replace("bun run sync:api-contract && ", "");
|
|
195
|
+
}
|
|
196
|
+
if (pkg.devDependencies && typeof pkg.devDependencies === "object") {
|
|
197
|
+
const deps = pkg.devDependencies;
|
|
198
|
+
delete deps["every-plugin"];
|
|
199
|
+
delete deps["everything-dev"];
|
|
200
|
+
}
|
|
201
|
+
if (!pkg.dependencies) pkg.dependencies = {};
|
|
202
|
+
const deps = pkg.dependencies;
|
|
203
|
+
if (!deps["everything-dev"]) deps["everything-dev"] = "^1.1.0";
|
|
204
|
+
if (!deps["every-plugin"]) deps["every-plugin"] = "^2.0.0";
|
|
205
|
+
(0, node_fs.writeFileSync)(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
206
|
+
}
|
|
207
|
+
await resolveWorkspaceRefs(destination, opts.workspaceOpts);
|
|
208
|
+
}
|
|
209
|
+
async function runBunInstall(destination) {
|
|
210
|
+
await execCommand("bun", ["install"], destination);
|
|
211
|
+
}
|
|
212
|
+
const WORKSPACE_VERSION_MAP = {
|
|
213
|
+
"everything-dev": "^1.1.0",
|
|
214
|
+
"every-plugin": "^2.0.0"
|
|
215
|
+
};
|
|
216
|
+
const WORKSPACE_LOCAL_PATHS = {
|
|
217
|
+
"everything-dev": "packages/everything-dev",
|
|
218
|
+
"every-plugin": "packages/every-plugin"
|
|
219
|
+
};
|
|
220
|
+
async function resolveWorkspaceRefs(destination, options) {
|
|
221
|
+
const files = await (0, glob.glob)("**/package.json", {
|
|
222
|
+
cwd: destination,
|
|
223
|
+
nodir: true,
|
|
224
|
+
dot: false,
|
|
225
|
+
absolute: false,
|
|
226
|
+
ignore: ["**/node_modules/**"]
|
|
227
|
+
});
|
|
228
|
+
for (const file of files) {
|
|
229
|
+
const filePath = (0, node_path.join)(destination, file);
|
|
230
|
+
const content = (0, node_fs.readFileSync)(filePath, "utf-8");
|
|
231
|
+
if (!content.includes("workspace:")) continue;
|
|
232
|
+
const pkg = JSON.parse(content);
|
|
233
|
+
let modified = false;
|
|
234
|
+
for (const depField of [
|
|
235
|
+
"dependencies",
|
|
236
|
+
"devDependencies",
|
|
237
|
+
"peerDependencies"
|
|
238
|
+
]) {
|
|
239
|
+
const deps = pkg[depField];
|
|
240
|
+
if (!deps || typeof deps !== "object") continue;
|
|
241
|
+
const map = deps;
|
|
242
|
+
for (const [name, version] of Object.entries(map)) if (version === "workspace:*") {
|
|
243
|
+
const resolved = WORKSPACE_VERSION_MAP[name];
|
|
244
|
+
if (resolved) {
|
|
245
|
+
map[name] = resolved;
|
|
246
|
+
modified = true;
|
|
247
|
+
} else if (name === "host") {
|
|
248
|
+
delete map[name];
|
|
249
|
+
modified = true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (modified) (0, node_fs.writeFileSync)(filePath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
254
|
+
}
|
|
255
|
+
if (options?.localOverrides && options.sourceDir) {
|
|
256
|
+
const rootPkgPath = (0, node_path.join)(destination, "package.json");
|
|
257
|
+
if ((0, node_fs.existsSync)(rootPkgPath)) {
|
|
258
|
+
const pkg = JSON.parse((0, node_fs.readFileSync)(rootPkgPath, "utf-8"));
|
|
259
|
+
if (!pkg.overrides) pkg.overrides = {};
|
|
260
|
+
const overrides = pkg.overrides;
|
|
261
|
+
const rootWorkspaces = (pkg.workspaces?.packages ?? []).filter(Boolean);
|
|
262
|
+
for (const [name, relPath] of Object.entries(WORKSPACE_LOCAL_PATHS)) if (!rootWorkspaces.some((ws) => ws === relPath || ws === `plugins/${name}`)) {
|
|
263
|
+
if ((0, node_fs.existsSync)((0, node_path.join)(options.sourceDir, relPath, "package.json"))) {
|
|
264
|
+
overrides[name] = `file:${relPath}`;
|
|
265
|
+
rootWorkspaces.push(relPath);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
if (rootWorkspaces.length > 0) {
|
|
269
|
+
if (!pkg.workspaces) pkg.workspaces = {};
|
|
270
|
+
pkg.workspaces.packages = rootWorkspaces;
|
|
271
|
+
}
|
|
272
|
+
(0, node_fs.writeFileSync)(rootPkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function mkTmpDir(prefix) {
|
|
277
|
+
const base = (0, node_path.join)((0, node_os.tmpdir)(), prefix);
|
|
278
|
+
let attempt = 0;
|
|
279
|
+
while (true) {
|
|
280
|
+
const dir = `${base}-${Date.now()}-${attempt}`;
|
|
281
|
+
try {
|
|
282
|
+
(0, node_fs.mkdirSync)(dir, { recursive: true });
|
|
283
|
+
return dir;
|
|
284
|
+
} catch {
|
|
285
|
+
attempt++;
|
|
286
|
+
if (attempt > 10) throw new Error("Failed to create temp directory");
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
function execCommand(command, args, cwd) {
|
|
291
|
+
return new Promise((resolve, reject) => {
|
|
292
|
+
const child = (0, node_child_process.spawn)(command, args, {
|
|
293
|
+
cwd,
|
|
294
|
+
stdio: "pipe",
|
|
295
|
+
shell: true
|
|
296
|
+
});
|
|
297
|
+
let stderr = "";
|
|
298
|
+
child.stderr?.on("data", (data) => {
|
|
299
|
+
stderr += data.toString();
|
|
300
|
+
});
|
|
301
|
+
child.on("close", (code) => {
|
|
302
|
+
if (code === 0) resolve();
|
|
303
|
+
else reject(/* @__PURE__ */ new Error(`Command '${command} ${args.join(" ")}' failed with exit code ${code}: ${stderr}`));
|
|
304
|
+
});
|
|
305
|
+
child.on("error", reject);
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
//#endregion
|
|
310
|
+
exports.copyFilteredFiles = copyFilteredFiles;
|
|
311
|
+
exports.downloadTarball = downloadTarball;
|
|
312
|
+
exports.fetchParentConfig = fetchParentConfig;
|
|
313
|
+
exports.personalizeConfig = personalizeConfig;
|
|
314
|
+
exports.readTemplatekeep = readTemplatekeep;
|
|
315
|
+
exports.resolveSourceDir = resolveSourceDir;
|
|
316
|
+
exports.runBunInstall = runBunInstall;
|
|
317
|
+
//# sourceMappingURL=init.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.cjs","names":["require","fetchBosConfigFromFastKv"],"sources":["../../src/cli/init.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport {\n createWriteStream,\n existsSync,\n lstatSync,\n mkdirSync,\n readFileSync,\n rmSync,\n writeFileSync,\n} from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pipeline } from \"node:stream/promises\";\nimport { glob } from \"glob\";\nimport { fetchBosConfigFromFastKv } from \"../fastkv\";\nimport type { BosConfig } from \"../types\";\n\nconst require = createRequire(import.meta.url);\n\ninterface SourceResult {\n sourceDir: string;\n parentConfig: BosConfig;\n cleanup: () => Promise<void>;\n}\n\nexport async function resolveSourceDir(opts: {\n account: string;\n gateway: string;\n source?: string;\n}): Promise<SourceResult> {\n if (opts.source) {\n const sourceDir = resolve(opts.source);\n if (!existsSync(join(sourceDir, \"bos.config.json\"))) {\n throw new Error(`No bos.config.json found in source directory: ${sourceDir}`);\n }\n const parentConfig = JSON.parse(\n readFileSync(join(sourceDir, \"bos.config.json\"), \"utf-8\"),\n ) as BosConfig;\n return { sourceDir, parentConfig, cleanup: async () => {} };\n }\n\n const parentConfig = await fetchParentConfig(opts.account, opts.gateway);\n\n if (!parentConfig.repository) {\n throw new Error(\"Parent config has no repository field — cannot locate template source\");\n }\n\n const { dir: sourceDir, cleanup } = await downloadTarball(parentConfig.repository);\n return { sourceDir, parentConfig, cleanup };\n}\n\nexport async function fetchParentConfig(account: string, gateway: string): Promise<BosConfig> {\n const bosUrl = `bos://${account}/${gateway}`;\n return fetchBosConfigFromFastKv<BosConfig>(bosUrl);\n}\n\nexport async function downloadTarball(\n repoUrl: string,\n): Promise<{ dir: string; cleanup: () => Promise<void> }> {\n const parsed = parseGitHubUrl(repoUrl);\n if (!parsed) {\n throw new Error(`Cannot parse repository URL: ${repoUrl}`);\n }\n\n const { owner, repo, branch } = parsed;\n const tarballUrl = `https://api.github.com/repos/${owner}/${repo}/tarball/${branch}`;\n\n const tmpDir = mkTmpDir(\"bos-init-tarball-\");\n const tarballPath = join(tmpDir, \"source.tar.gz\");\n\n const response = await fetch(tarballUrl, {\n headers: { \"User-Agent\": \"everything-dev\" },\n redirect: \"follow\",\n });\n\n if (!response.ok) {\n rmSync(tmpDir, { recursive: true, force: true });\n throw new Error(`GitHub tarball download failed: ${response.status} ${response.statusText}`);\n }\n\n if (!response.body) {\n rmSync(tmpDir, { recursive: true, force: true });\n throw new Error(\"GitHub tarball download returned empty body\");\n }\n\n const fileStream = createWriteStream(tarballPath);\n const reader = response.body as unknown as NodeJS.ReadableStream;\n await pipeline(reader, fileStream);\n\n const extractDir = mkTmpDir(\"bos-init-extract-\");\n try {\n const tar = require(\"tar\") as {\n extract: (opts: { cwd: string; file: string; strip: number }) => Promise<void>;\n };\n await tar.extract({ cwd: extractDir, file: tarballPath, strip: 1 });\n } catch {\n await execCommand(\"tar\", [\"-xzf\", tarballPath, \"--strip-components=1\", \"-C\", extractDir]);\n }\n\n rmSync(tmpDir, { recursive: true, force: true });\n\n return {\n dir: extractDir,\n cleanup: async () => {\n rmSync(extractDir, { recursive: true, force: true });\n },\n };\n}\n\nfunction parseGitHubUrl(url: string): { owner: string; repo: string; branch: string } | null {\n const httpsMatch = url.match(/^https?:\\/\\/github\\.com\\/([^/]+)\\/([^/]+?)(?:\\.git)?(?:\\/.*)?$/);\n if (httpsMatch) {\n return { owner: httpsMatch[1], repo: httpsMatch[2], branch: \"main\" };\n }\n\n const sshMatch = url.match(/^git@github\\.com:([^/]+)\\/([^/]+?)(?:\\.git)?$/);\n if (sshMatch) {\n return { owner: sshMatch[1], repo: sshMatch[2], branch: \"main\" };\n }\n\n return null;\n}\n\nexport async function readTemplatekeep(sourceDir: string): Promise<string[]> {\n const keepFile = join(sourceDir, \".templatekeep\");\n if (!existsSync(keepFile)) {\n return [];\n }\n\n const content = readFileSync(keepFile, \"utf-8\");\n return content\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\n\nexport async function copyFilteredFiles(\n sourceDir: string,\n destination: string,\n patterns: string[],\n options: { withHost: boolean },\n): Promise<number> {\n if (patterns.length === 0) {\n return 0;\n }\n\n const effectivePatterns = options.withHost\n ? [...patterns, \"host/**\"]\n : patterns.filter((p) => !p.startsWith(\"host/\") && p !== \"host/**\");\n\n const allFiles = new Set<string>();\n for (const pattern of effectivePatterns) {\n const matches = await glob(pattern, {\n cwd: sourceDir,\n nodir: true,\n dot: true,\n absolute: false,\n });\n for (const match of matches) {\n allFiles.add(match);\n }\n }\n\n mkdirSync(destination, { recursive: true });\n\n let count = 0;\n for (const filePath of allFiles) {\n const src = join(sourceDir, filePath);\n const stat = lstatSync(src);\n if (!stat.isFile()) continue;\n\n const dest = join(destination, filePath);\n mkdirSync(dirname(dest), { recursive: true });\n const content = readFileSync(src);\n writeFileSync(dest, content);\n count++;\n }\n\n return count;\n}\n\nexport async function personalizeConfig(\n destination: string,\n opts: {\n parentAccount: string;\n parentGateway: string;\n name?: string;\n domain?: string;\n workspaceOpts?: { localOverrides?: boolean; sourceDir?: string };\n },\n): Promise<void> {\n const configPath = join(destination, \"bos.config.json\");\n if (existsSync(configPath)) {\n const config = JSON.parse(readFileSync(configPath, \"utf-8\")) as Record<string, unknown>;\n\n config.extends = `bos://${opts.parentAccount}/${opts.parentGateway}`;\n\n if (opts.name) {\n config.account = opts.name;\n }\n if (opts.domain) {\n config.domain = opts.domain;\n }\n\n if (config.app && typeof config.app === \"object\") {\n const app = config.app as Record<string, unknown>;\n for (const entryKey of Object.keys(app)) {\n const entry = app[entryKey];\n if (entry && typeof entry === \"object\") {\n const e = entry as Record<string, unknown>;\n delete e.production;\n delete e.productionIntegrity;\n delete e.ssr;\n delete e.ssrIntegrity;\n }\n }\n }\n\n if (config.plugins && typeof config.plugins === \"object\") {\n const plugins = config.plugins as Record<string, unknown>;\n for (const pluginKey of Object.keys(plugins)) {\n const plugin = plugins[pluginKey];\n if (plugin && typeof plugin === \"object\") {\n const p = plugin as Record<string, unknown>;\n delete p.production;\n delete p.productionIntegrity;\n }\n }\n }\n\n writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\\n`);\n }\n\n const pkgPath = join(destination, \"package.json\");\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as Record<string, unknown>;\n\n if (pkg.workspaces && typeof pkg.workspaces === \"object\") {\n const ws = pkg.workspaces as { packages?: string[] };\n if (Array.isArray(ws.packages)) {\n ws.packages = ws.packages.filter((p: string) => p !== \"host\" && !p.startsWith(\"packages/\"));\n }\n }\n\n if (pkg.scripts && typeof pkg.scripts === \"object\") {\n const scripts = pkg.scripts as Record<string, string>;\n const rewrite = (key: string, from: string, to: string) => {\n if (scripts[key]?.includes(from)) {\n scripts[key] = scripts[key].replaceAll(from, to);\n }\n };\n rewrite(\"dev\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"dev:ui\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"dev:api\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"dev:proxy\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"build\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"deploy\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"publish\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n rewrite(\"start\", \"packages/everything-dev/cli.js\", \"node_modules/.bin/bos\");\n\n if (scripts[\"sync:api-contract\"]) {\n delete scripts[\"sync:api-contract\"];\n }\n if (scripts.postinstall) {\n delete scripts.postinstall;\n }\n if (scripts.typecheck?.includes(\"sync:api-contract\")) {\n scripts.typecheck = scripts.typecheck.replace(\"bun run sync:api-contract && \", \"\");\n }\n }\n\n if (pkg.devDependencies && typeof pkg.devDependencies === \"object\") {\n const deps = pkg.devDependencies as Record<string, string>;\n delete deps[\"every-plugin\"];\n delete deps[\"everything-dev\"];\n }\n\n if (!pkg.dependencies) pkg.dependencies = {};\n const deps = pkg.dependencies as Record<string, string>;\n if (!deps[\"everything-dev\"]) deps[\"everything-dev\"] = \"^1.1.0\";\n if (!deps[\"every-plugin\"]) deps[\"every-plugin\"] = \"^2.0.0\";\n\n writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n }\n\n await resolveWorkspaceRefs(destination, opts.workspaceOpts);\n}\n\nexport async function runBunInstall(destination: string): Promise<void> {\n await execCommand(\"bun\", [\"install\"], destination);\n}\n\nconst WORKSPACE_VERSION_MAP: Record<string, string> = {\n \"everything-dev\": \"^1.1.0\",\n \"every-plugin\": \"^2.0.0\",\n};\n\nconst WORKSPACE_LOCAL_PATHS: Record<string, string> = {\n \"everything-dev\": \"packages/everything-dev\",\n \"every-plugin\": \"packages/every-plugin\",\n};\n\nasync function resolveWorkspaceRefs(\n destination: string,\n options?: { localOverrides?: boolean; sourceDir?: string },\n): Promise<void> {\n const files = await glob(\"**/package.json\", {\n cwd: destination,\n nodir: true,\n dot: false,\n absolute: false,\n ignore: [\"**/node_modules/**\"],\n });\n\n for (const file of files) {\n const filePath = join(destination, file);\n const content = readFileSync(filePath, \"utf-8\");\n if (!content.includes(\"workspace:\")) continue;\n\n const pkg = JSON.parse(content) as Record<string, unknown>;\n let modified = false;\n\n for (const depField of [\"dependencies\", \"devDependencies\", \"peerDependencies\"]) {\n const deps = pkg[depField];\n if (!deps || typeof deps !== \"object\") continue;\n const map = deps as Record<string, string>;\n for (const [name, version] of Object.entries(map)) {\n if (version === \"workspace:*\") {\n const resolved = WORKSPACE_VERSION_MAP[name];\n if (resolved) {\n map[name] = resolved;\n modified = true;\n } else if (name === \"host\") {\n delete map[name];\n modified = true;\n }\n }\n }\n }\n\n if (modified) {\n writeFileSync(filePath, `${JSON.stringify(pkg, null, 2)}\\n`);\n }\n }\n\n if (options?.localOverrides && options.sourceDir) {\n const rootPkgPath = join(destination, \"package.json\");\n if (existsSync(rootPkgPath)) {\n const pkg = JSON.parse(readFileSync(rootPkgPath, \"utf-8\")) as Record<string, unknown>;\n if (!pkg.overrides) pkg.overrides = {};\n const overrides = pkg.overrides as Record<string, string>;\n\n const rootWorkspaces = ((pkg.workspaces as Record<string, string[]>)?.packages ?? []).filter(\n Boolean,\n );\n\n for (const [name, relPath] of Object.entries(WORKSPACE_LOCAL_PATHS)) {\n if (!rootWorkspaces.some((ws) => ws === relPath || ws === `plugins/${name}`)) {\n const srcPkgPath = join(options.sourceDir, relPath, \"package.json\");\n if (existsSync(srcPkgPath)) {\n overrides[name] = `file:${relPath}`;\n rootWorkspaces.push(relPath);\n }\n }\n }\n\n if (rootWorkspaces.length > 0) {\n if (!pkg.workspaces) pkg.workspaces = {};\n (pkg.workspaces as Record<string, string[]>).packages = rootWorkspaces;\n }\n\n writeFileSync(rootPkgPath, `${JSON.stringify(pkg, null, 2)}\\n`);\n }\n }\n}\n\nfunction mkTmpDir(prefix: string): string {\n const base = join(tmpdir(), prefix);\n let attempt = 0;\n while (true) {\n const dir = `${base}-${Date.now()}-${attempt}`;\n try {\n mkdirSync(dir, { recursive: true });\n return dir;\n } catch {\n attempt++;\n if (attempt > 10) throw new Error(\"Failed to create temp directory\");\n }\n }\n}\n\nfunction execCommand(command: string, args: string[], cwd?: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n cwd,\n stdio: \"pipe\",\n shell: true,\n });\n let stderr = \"\";\n child.stderr?.on(\"data\", (data: Buffer) => {\n stderr += data.toString();\n });\n child.on(\"close\", (code) => {\n if (code === 0) resolve();\n else\n reject(\n new Error(\n `Command '${command} ${args.join(\" \")}' failed with exit code ${code}: ${stderr}`,\n ),\n );\n });\n child.on(\"error\", reject);\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BosConfig } from "../types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/init.d.ts
|
|
4
|
+
interface SourceResult {
|
|
5
|
+
sourceDir: string;
|
|
6
|
+
parentConfig: BosConfig;
|
|
7
|
+
cleanup: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
declare function resolveSourceDir(opts: {
|
|
10
|
+
account: string;
|
|
11
|
+
gateway: string;
|
|
12
|
+
source?: string;
|
|
13
|
+
}): Promise<SourceResult>;
|
|
14
|
+
declare function fetchParentConfig(account: string, gateway: string): Promise<BosConfig>;
|
|
15
|
+
declare function downloadTarball(repoUrl: string): Promise<{
|
|
16
|
+
dir: string;
|
|
17
|
+
cleanup: () => Promise<void>;
|
|
18
|
+
}>;
|
|
19
|
+
declare function readTemplatekeep(sourceDir: string): Promise<string[]>;
|
|
20
|
+
declare function copyFilteredFiles(sourceDir: string, destination: string, patterns: string[], options: {
|
|
21
|
+
withHost: boolean;
|
|
22
|
+
}): Promise<number>;
|
|
23
|
+
declare function personalizeConfig(destination: string, opts: {
|
|
24
|
+
parentAccount: string;
|
|
25
|
+
parentGateway: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
domain?: string;
|
|
28
|
+
workspaceOpts?: {
|
|
29
|
+
localOverrides?: boolean;
|
|
30
|
+
sourceDir?: string;
|
|
31
|
+
};
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
declare function runBunInstall(destination: string): Promise<void>;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { copyFilteredFiles, downloadTarball, fetchParentConfig, personalizeConfig, readTemplatekeep, resolveSourceDir, runBunInstall };
|
|
36
|
+
//# sourceMappingURL=init.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.cts","names":[],"sources":["../../src/cli/init.ts"],"mappings":";;;UAoBU,YAAA;EACR,SAAA;EACA,YAAA,EAAc,SAAA;EACd,OAAA,QAAe,OAAA;AAAA;AAAA,iBAGK,gBAAA,CAAiB,IAAA;EACrC,OAAA;EACA,OAAA;EACA,MAAA;AAAA,IACE,OAAA,CAAQ,YAAA;AAAA,iBAsBU,iBAAA,CAAkB,OAAA,UAAiB,OAAA,WAAkB,OAAA,CAAQ,SAAA;AAAA,iBAK7D,eAAA,CACpB,OAAA,WACC,OAAA;EAAU,GAAA;EAAa,OAAA,QAAe,OAAA;AAAA;AAAA,iBAiEnB,gBAAA,CAAiB,SAAA,WAAoB,OAAA;AAAA,iBAarC,iBAAA,CACpB,SAAA,UACA,WAAA,UACA,QAAA,YACA,OAAA;EAAW,QAAA;AAAA,IACV,OAAA;AAAA,iBAwCmB,iBAAA,CACpB,WAAA,UACA,IAAA;EACE,aAAA;EACA,aAAA;EACA,IAAA;EACA,MAAA;EACA,aAAA;IAAkB,cAAA;IAA0B,SAAA;EAAA;AAAA,IAE7C,OAAA;AAAA,iBAkGmB,aAAA,CAAc,WAAA,WAAsB,OAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BosConfig } from "../types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/cli/init.d.ts
|
|
4
|
+
interface SourceResult {
|
|
5
|
+
sourceDir: string;
|
|
6
|
+
parentConfig: BosConfig;
|
|
7
|
+
cleanup: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
declare function resolveSourceDir(opts: {
|
|
10
|
+
account: string;
|
|
11
|
+
gateway: string;
|
|
12
|
+
source?: string;
|
|
13
|
+
}): Promise<SourceResult>;
|
|
14
|
+
declare function fetchParentConfig(account: string, gateway: string): Promise<BosConfig>;
|
|
15
|
+
declare function downloadTarball(repoUrl: string): Promise<{
|
|
16
|
+
dir: string;
|
|
17
|
+
cleanup: () => Promise<void>;
|
|
18
|
+
}>;
|
|
19
|
+
declare function readTemplatekeep(sourceDir: string): Promise<string[]>;
|
|
20
|
+
declare function copyFilteredFiles(sourceDir: string, destination: string, patterns: string[], options: {
|
|
21
|
+
withHost: boolean;
|
|
22
|
+
}): Promise<number>;
|
|
23
|
+
declare function personalizeConfig(destination: string, opts: {
|
|
24
|
+
parentAccount: string;
|
|
25
|
+
parentGateway: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
domain?: string;
|
|
28
|
+
workspaceOpts?: {
|
|
29
|
+
localOverrides?: boolean;
|
|
30
|
+
sourceDir?: string;
|
|
31
|
+
};
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
declare function runBunInstall(destination: string): Promise<void>;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { copyFilteredFiles, downloadTarball, fetchParentConfig, personalizeConfig, readTemplatekeep, resolveSourceDir, runBunInstall };
|
|
36
|
+
//# sourceMappingURL=init.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.mts","names":[],"sources":["../../src/cli/init.ts"],"mappings":";;;UAoBU,YAAA;EACR,SAAA;EACA,YAAA,EAAc,SAAA;EACd,OAAA,QAAe,OAAA;AAAA;AAAA,iBAGK,gBAAA,CAAiB,IAAA;EACrC,OAAA;EACA,OAAA;EACA,MAAA;AAAA,IACE,OAAA,CAAQ,YAAA;AAAA,iBAsBU,iBAAA,CAAkB,OAAA,UAAiB,OAAA,WAAkB,OAAA,CAAQ,SAAA;AAAA,iBAK7D,eAAA,CACpB,OAAA,WACC,OAAA;EAAU,GAAA;EAAa,OAAA,QAAe,OAAA;AAAA;AAAA,iBAiEnB,gBAAA,CAAiB,SAAA,WAAoB,OAAA;AAAA,iBAarC,iBAAA,CACpB,SAAA,UACA,WAAA,UACA,QAAA,YACA,OAAA;EAAW,QAAA;AAAA,IACV,OAAA;AAAA,iBAwCmB,iBAAA,CACpB,WAAA,UACA,IAAA;EACE,aAAA;EACA,aAAA;EACA,IAAA;EACA,MAAA;EACA,aAAA;IAAkB,cAAA;IAA0B,SAAA;EAAA;AAAA,IAE7C,OAAA;AAAA,iBAkGmB,aAAA,CAAc,WAAA,WAAsB,OAAA"}
|