everything-dev 1.27.0 → 1.28.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/dist/cli/infra.cjs +1 -1
- package/dist/cli/infra.mjs +1 -1
- package/dist/cli/init.cjs +34 -9
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +2 -1
- package/dist/cli/init.d.cts.map +1 -1
- package/dist/cli/init.d.mts +2 -1
- package/dist/cli/init.d.mts.map +1 -1
- package/dist/cli/init.mjs +34 -9
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/prompts.cjs +28 -24
- package/dist/cli/prompts.cjs.map +1 -1
- package/dist/cli/prompts.mjs +27 -24
- package/dist/cli/prompts.mjs.map +1 -1
- package/dist/cli/sync.cjs +40 -3
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +40 -3
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli.cjs +187 -12
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +186 -11
- package/dist/cli.mjs.map +1 -1
- package/dist/config.cjs +1 -0
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +1 -0
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +1 -1
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +38 -34
- package/dist/contract.d.cts.map +1 -1
- package/dist/contract.d.mts +38 -34
- package/dist/contract.d.mts.map +1 -1
- package/dist/contract.mjs +1 -0
- package/dist/contract.mjs.map +1 -1
- package/dist/dev-session.cjs +0 -1
- package/dist/dev-session.mjs +1 -1
- package/dist/index.cjs +0 -2
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +0 -1
- package/dist/near-cli.cjs +1 -1
- package/dist/near-cli.mjs +1 -1
- package/dist/orchestrator.cjs +1 -1
- package/dist/orchestrator.mjs +1 -1
- package/dist/plugin.cjs +183 -151
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +67 -34
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts +66 -34
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +173 -142
- package/dist/plugin.mjs.map +1 -1
- package/dist/service-descriptor.d.cts +34 -0
- package/dist/service-descriptor.d.cts.map +1 -0
- package/dist/service-descriptor.d.mts +36 -0
- package/dist/service-descriptor.d.mts.map +1 -0
- package/dist/types.d.cts +2 -2
- package/dist/types.d.mts +2 -2
- package/dist/utils/run.cjs +9 -20
- package/dist/utils/run.cjs.map +1 -1
- package/dist/utils/run.mjs +9 -20
- package/dist/utils/run.mjs.map +1 -1
- package/package.json +2 -2
- package/src/api-contract.ts +0 -623
- package/src/app.ts +0 -193
- package/src/cli/catalog.ts +0 -49
- package/src/cli/framework-version.ts +0 -61
- package/src/cli/help.ts +0 -13
- package/src/cli/infra.ts +0 -190
- package/src/cli/init.ts +0 -1145
- package/src/cli/parse.ts +0 -147
- package/src/cli/prompts.ts +0 -135
- package/src/cli/snapshot.ts +0 -46
- package/src/cli/status.ts +0 -99
- package/src/cli/sync.ts +0 -429
- package/src/cli/timing.ts +0 -63
- package/src/cli/upgrade.ts +0 -869
- package/src/cli.ts +0 -516
- package/src/components/dev-view.tsx +0 -352
- package/src/components/streaming-view.ts +0 -177
- package/src/config.ts +0 -893
- package/src/contract.meta.ts +0 -140
- package/src/contract.ts +0 -326
- package/src/dev-logs.ts +0 -92
- package/src/dev-session.ts +0 -283
- package/src/fastkv.ts +0 -181
- package/src/index.ts +0 -8
- package/src/integrity.ts +0 -138
- package/src/internal/manifest-normalizer.ts +0 -290
- package/src/merge.ts +0 -187
- package/src/mf.ts +0 -147
- package/src/near-cli.ts +0 -259
- package/src/network.ts +0 -3
- package/src/orchestrator.ts +0 -493
- package/src/plugin.ts +0 -1799
- package/src/sdk.ts +0 -14
- package/src/service-descriptor.ts +0 -281
- package/src/shared.ts +0 -249
- package/src/sidebar.ts +0 -140
- package/src/types.ts +0 -330
- package/src/ui/head.ts +0 -83
- package/src/ui/index.ts +0 -5
- package/src/ui/metadata.ts +0 -95
- package/src/ui/router.ts +0 -88
- package/src/ui/runtime.ts +0 -42
- package/src/ui/types.ts +0 -65
- package/src/utils/banner.ts +0 -21
- package/src/utils/linkify.ts +0 -11
- package/src/utils/path-match.ts +0 -16
- package/src/utils/run.ts +0 -31
- package/src/utils/save-config.ts +0 -20
- package/src/utils/theme.ts +0 -39
package/dist/plugin.cjs
CHANGED
|
@@ -1,39 +1,74 @@
|
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
1
2
|
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
2
3
|
const require_fastkv = require('./fastkv.cjs');
|
|
3
4
|
const require_network = require('./network.cjs');
|
|
4
5
|
const require_config = require('./config.cjs');
|
|
5
|
-
require('./sdk.cjs');
|
|
6
6
|
const require_contract = require('./contract.cjs');
|
|
7
|
+
const require_sidebar = require('./sidebar.cjs');
|
|
8
|
+
const require_integrity = require('./integrity.cjs');
|
|
7
9
|
const require_api_contract = require('./api-contract.cjs');
|
|
8
10
|
const require_app = require('./app.cjs');
|
|
9
11
|
const require_infra = require('./cli/infra.cjs');
|
|
10
12
|
const require_save_config = require('./utils/save-config.cjs');
|
|
11
13
|
const require_cli_init = require('./cli/init.cjs');
|
|
12
|
-
const require_prompts = require('./cli/prompts.cjs');
|
|
13
14
|
const require_status = require('./cli/status.cjs');
|
|
14
15
|
const require_sync = require('./cli/sync.cjs');
|
|
15
|
-
const require_timing = require('./cli/timing.cjs');
|
|
16
16
|
const require_upgrade = require('./cli/upgrade.cjs');
|
|
17
|
-
const require_integrity = require('./integrity.cjs');
|
|
18
17
|
const require_near_cli = require('./near-cli.cjs');
|
|
19
18
|
const require_service_descriptor = require('./service-descriptor.cjs');
|
|
20
19
|
const require_shared = require('./shared.cjs');
|
|
21
|
-
const require_sidebar = require('./sidebar.cjs');
|
|
22
20
|
const require_run = require('./utils/run.cjs');
|
|
23
|
-
const require_theme = require('./utils/theme.cjs');
|
|
24
21
|
let node_fs = require("node:fs");
|
|
25
22
|
let node_path = require("node:path");
|
|
23
|
+
let node_events = require("node:events");
|
|
24
|
+
let node_fs_promises = require("node:fs/promises");
|
|
26
25
|
let node_process = require("node:process");
|
|
27
26
|
node_process = require_runtime.__toESM(node_process, 1);
|
|
28
|
-
let _clack_prompts = require("@clack/prompts");
|
|
29
|
-
_clack_prompts = require_runtime.__toESM(_clack_prompts, 1);
|
|
30
27
|
let effect = require("effect");
|
|
31
28
|
let every_plugin = require("every-plugin");
|
|
32
29
|
let zod = require("zod");
|
|
33
30
|
|
|
34
31
|
//#region src/plugin.ts
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
const pluginEvents = new node_events.EventEmitter();
|
|
33
|
+
let pendingSession = null;
|
|
34
|
+
let pendingStartSummary = null;
|
|
35
|
+
function consumeDevSession() {
|
|
36
|
+
const data = pendingSession;
|
|
37
|
+
const summary = pendingStartSummary;
|
|
38
|
+
pendingSession = null;
|
|
39
|
+
pendingStartSummary = null;
|
|
40
|
+
if (!data) return null;
|
|
41
|
+
return summary ? {
|
|
42
|
+
...data,
|
|
43
|
+
summary
|
|
44
|
+
} : data;
|
|
45
|
+
}
|
|
46
|
+
async function timePhase(timings, name, fn) {
|
|
47
|
+
pluginEvents.emit("progress", {
|
|
48
|
+
phase: name,
|
|
49
|
+
status: "running"
|
|
50
|
+
});
|
|
51
|
+
const startedAt = Date.now();
|
|
52
|
+
try {
|
|
53
|
+
const result = await fn();
|
|
54
|
+
timings.push({
|
|
55
|
+
name,
|
|
56
|
+
durationMs: Date.now() - startedAt
|
|
57
|
+
});
|
|
58
|
+
pluginEvents.emit("progress", {
|
|
59
|
+
phase: name,
|
|
60
|
+
status: "done",
|
|
61
|
+
durationMs: Date.now() - startedAt
|
|
62
|
+
});
|
|
63
|
+
return result;
|
|
64
|
+
} catch (error) {
|
|
65
|
+
pluginEvents.emit("progress", {
|
|
66
|
+
phase: name,
|
|
67
|
+
status: "error",
|
|
68
|
+
durationMs: Date.now() - startedAt
|
|
69
|
+
});
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
37
72
|
}
|
|
38
73
|
const buildCommands = {
|
|
39
74
|
host: {
|
|
@@ -66,6 +101,17 @@ function buildConfigResult(bosConfig) {
|
|
|
66
101
|
remotes: packages.filter((name) => name !== "host")
|
|
67
102
|
};
|
|
68
103
|
}
|
|
104
|
+
async function fileExists(path) {
|
|
105
|
+
try {
|
|
106
|
+
await (0, node_fs_promises.access)(path);
|
|
107
|
+
return true;
|
|
108
|
+
} catch {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function readJsonFile(path) {
|
|
113
|
+
return JSON.parse(await (0, node_fs_promises.readFile)(path, "utf8"));
|
|
114
|
+
}
|
|
69
115
|
function resolveWorkspaceTarget(key, bosConfig, runtimeConfig, configDir) {
|
|
70
116
|
if (bosConfig?.app && key in bosConfig.app) {
|
|
71
117
|
const appEntry = bosConfig.app[key];
|
|
@@ -161,10 +207,8 @@ function extractPublishedUrl(output) {
|
|
|
161
207
|
return match[match.length - 1] ?? null;
|
|
162
208
|
}
|
|
163
209
|
async function buildEveryPluginQuietly(cwd) {
|
|
164
|
-
|
|
165
|
-
if (
|
|
166
|
-
const distPath = `${cwd}/packages/every-plugin/dist/build/rspack/plugin.mjs`;
|
|
167
|
-
if (await Bun.file(distPath).exists()) return;
|
|
210
|
+
if (!await fileExists(`${`${cwd}/packages/every-plugin`}/package.json`)) return;
|
|
211
|
+
if (await fileExists(`${cwd}/packages/every-plugin/dist/build/rspack/plugin.mjs`)) return;
|
|
168
212
|
const result = await require_run.run("bun", [
|
|
169
213
|
"run",
|
|
170
214
|
"--cwd",
|
|
@@ -183,10 +227,8 @@ async function buildEveryPluginQuietly(cwd) {
|
|
|
183
227
|
throw new Error(`bun run --cwd packages/every-plugin build failed with exit code ${result.exitCode}`);
|
|
184
228
|
}
|
|
185
229
|
async function buildEverythingDevQuietly(cwd) {
|
|
186
|
-
|
|
187
|
-
if (
|
|
188
|
-
const distPath = `${cwd}/packages/everything-dev/dist/index.mjs`;
|
|
189
|
-
if (await Bun.file(distPath).exists()) return;
|
|
230
|
+
if (!await fileExists(`${`${cwd}/packages/everything-dev`}/package.json`)) return;
|
|
231
|
+
if (await fileExists(`${cwd}/packages/everything-dev/dist/index.mjs`)) return;
|
|
190
232
|
const result = await require_run.run("bun", [
|
|
191
233
|
"run",
|
|
192
234
|
"--cwd",
|
|
@@ -225,7 +267,7 @@ async function buildWorkspaceTargets(opts) {
|
|
|
225
267
|
skipped.push(target);
|
|
226
268
|
continue;
|
|
227
269
|
}
|
|
228
|
-
if (await
|
|
270
|
+
if (await fileExists(`${resolved.path}/package.json`)) existing.push(resolved);
|
|
229
271
|
else skipped.push(target);
|
|
230
272
|
}
|
|
231
273
|
if (existing.length === 0) return {
|
|
@@ -253,7 +295,7 @@ async function buildWorkspaceTargets(opts) {
|
|
|
253
295
|
] : existing;
|
|
254
296
|
const built = [];
|
|
255
297
|
for (const resolved of orderedExisting) {
|
|
256
|
-
const pkgJson =
|
|
298
|
+
const pkgJson = await readJsonFile(`${resolved.path}/package.json`);
|
|
257
299
|
const buildConfig = opts.deploy && pkgJson.scripts?.deploy ? {
|
|
258
300
|
cmd: "bun",
|
|
259
301
|
args: ["run", "deploy"]
|
|
@@ -379,12 +421,12 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
379
421
|
error: `Plugin '${input.key}' does not have a local development path`
|
|
380
422
|
};
|
|
381
423
|
const pkgPath = (0, node_path.join)(localPath, "package.json");
|
|
382
|
-
if (!await
|
|
424
|
+
if (!await fileExists(pkgPath)) return {
|
|
383
425
|
status: "error",
|
|
384
426
|
key: input.key,
|
|
385
427
|
error: `Missing package.json at ${localPath}`
|
|
386
428
|
};
|
|
387
|
-
const pkgJson = await
|
|
429
|
+
const pkgJson = await readJsonFile(pkgPath);
|
|
388
430
|
const script = pkgJson.scripts?.deploy ? "deploy" : "build";
|
|
389
431
|
const { stdout, stderr, exitCode } = await require_run.run("bun", ["run", script], {
|
|
390
432
|
cwd: localPath,
|
|
@@ -440,6 +482,10 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
440
482
|
}),
|
|
441
483
|
dev: builder.dev.handler(async ({ input }) => {
|
|
442
484
|
require_infra.ensureEnvFile(deps.configDir);
|
|
485
|
+
pluginEvents.emit("progress", {
|
|
486
|
+
phase: "config",
|
|
487
|
+
status: "running"
|
|
488
|
+
});
|
|
443
489
|
const localPackages = require_app.detectLocalPackages(deps.bosConfig ?? void 0, deps.runtimeConfig ?? void 0);
|
|
444
490
|
const hostSource = localPackages.includes("host") ? parseSourceMode(input.host, "local") : "remote";
|
|
445
491
|
const uiSource = localPackages.includes("ui") ? parseSourceMode(input.ui, "local") : "remote";
|
|
@@ -452,9 +498,41 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
452
498
|
hostMode: hostSource,
|
|
453
499
|
bosConfig: deps.bosConfig ?? void 0,
|
|
454
500
|
extendsChain: []
|
|
455
|
-
})).catalogChanged)
|
|
456
|
-
|
|
501
|
+
})).catalogChanged) {
|
|
502
|
+
pluginEvents.emit("progress", {
|
|
503
|
+
phase: "install",
|
|
504
|
+
status: "running"
|
|
505
|
+
});
|
|
506
|
+
await require_run.run("bun", ["install"], { cwd: deps.configDir });
|
|
507
|
+
pluginEvents.emit("progress", {
|
|
508
|
+
phase: "install",
|
|
509
|
+
status: "done"
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
if (apiSource === "local" && !proxy || localPackages.some((pkg) => pkg.startsWith("plugin:"))) {
|
|
513
|
+
pluginEvents.emit("progress", {
|
|
514
|
+
phase: "build plugin",
|
|
515
|
+
status: "running"
|
|
516
|
+
});
|
|
517
|
+
await buildEveryPluginQuietly(deps.configDir);
|
|
518
|
+
pluginEvents.emit("progress", {
|
|
519
|
+
phase: "build plugin",
|
|
520
|
+
status: "done"
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
pluginEvents.emit("progress", {
|
|
524
|
+
phase: "build",
|
|
525
|
+
status: "running"
|
|
526
|
+
});
|
|
457
527
|
await buildEverythingDevQuietly(deps.configDir);
|
|
528
|
+
pluginEvents.emit("progress", {
|
|
529
|
+
phase: "build",
|
|
530
|
+
status: "done"
|
|
531
|
+
});
|
|
532
|
+
pluginEvents.emit("progress", {
|
|
533
|
+
phase: "config",
|
|
534
|
+
status: "done"
|
|
535
|
+
});
|
|
458
536
|
const refreshed = await require_config.loadConfig({ cwd: deps.configDir });
|
|
459
537
|
deps.bosConfig = refreshed?.config ?? deps.bosConfig;
|
|
460
538
|
deps.runtimeConfig = refreshed?.runtime ?? deps.runtimeConfig;
|
|
@@ -502,8 +580,11 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
502
580
|
port: runtimeConfig.host.port,
|
|
503
581
|
interactive: input.interactive
|
|
504
582
|
};
|
|
505
|
-
|
|
506
|
-
|
|
583
|
+
pendingSession = {
|
|
584
|
+
orchestrator,
|
|
585
|
+
services,
|
|
586
|
+
runtimeConfig
|
|
587
|
+
};
|
|
507
588
|
return {
|
|
508
589
|
status: "started",
|
|
509
590
|
description: orchestrator.description,
|
|
@@ -512,6 +593,10 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
512
593
|
}),
|
|
513
594
|
start: builder.start.handler(async ({ input }) => {
|
|
514
595
|
require_infra.ensureEnvFile(deps.configDir);
|
|
596
|
+
pluginEvents.emit("progress", {
|
|
597
|
+
phase: "config",
|
|
598
|
+
status: "running"
|
|
599
|
+
});
|
|
515
600
|
const account = input.account ?? node_process.default.env.BOS_ACCOUNT;
|
|
516
601
|
const domain = input.domain ?? node_process.default.env.BOS_GATEWAY;
|
|
517
602
|
let config = null;
|
|
@@ -546,10 +631,18 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
546
631
|
env: "production",
|
|
547
632
|
plugins: runtimePlugins
|
|
548
633
|
});
|
|
634
|
+
pluginEvents.emit("progress", {
|
|
635
|
+
phase: "generate artifacts",
|
|
636
|
+
status: "running"
|
|
637
|
+
});
|
|
549
638
|
await generateCodeArtifacts(deps.configDir, config, {
|
|
550
639
|
env: "production",
|
|
551
640
|
runtimeConfig
|
|
552
641
|
});
|
|
642
|
+
pluginEvents.emit("progress", {
|
|
643
|
+
phase: "generate artifacts",
|
|
644
|
+
status: "done"
|
|
645
|
+
});
|
|
553
646
|
const productionEnv = {};
|
|
554
647
|
const warnings = [];
|
|
555
648
|
if (!node_process.default.env.CORS_ORIGIN && config.domain) {
|
|
@@ -569,32 +662,40 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
569
662
|
if (missingSecrets.length > 0) warnings.push(`Missing ${missingSecrets.length} secret(s): ${missingSecrets.join(", ")}`);
|
|
570
663
|
const services = require_service_descriptor.buildServiceDescriptorMap(runtimeConfig);
|
|
571
664
|
const stagingEnvVars = isStaging ? { BOS_GATEWAY: config.staging?.domain ?? config.domain ?? "" } : {};
|
|
572
|
-
const
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
665
|
+
const summary = {
|
|
666
|
+
configSource: remoteConfig ? `bos://${account}/${domain}` : require_config.findConfigPath() ?? "bos.config.json",
|
|
667
|
+
configSourceHttp: remoteConfig && account && domain ? require_fastkv.buildRegistryConfigUrl(account, domain) : void 0,
|
|
668
|
+
account: config.account,
|
|
669
|
+
domain: config.domain ?? void 0,
|
|
670
|
+
modules: {
|
|
671
|
+
host: runtimeConfig.host.remoteUrl ?? runtimeConfig.host.url ?? "local",
|
|
672
|
+
ui: runtimeConfig.ui.url ?? "local",
|
|
673
|
+
api: runtimeConfig.api.url ?? "local",
|
|
674
|
+
auth: runtimeConfig.auth?.url ?? void 0
|
|
675
|
+
},
|
|
676
|
+
warnings
|
|
677
|
+
};
|
|
678
|
+
pendingSession = {
|
|
679
|
+
orchestrator: {
|
|
680
|
+
packages: ["host"],
|
|
681
|
+
env: {
|
|
682
|
+
NODE_ENV: "production",
|
|
683
|
+
...productionEnv,
|
|
684
|
+
...stagingEnvVars
|
|
685
|
+
},
|
|
686
|
+
description: `${isStaging ? "Staging" : "Production"} Mode (${config.account})`,
|
|
687
|
+
port,
|
|
688
|
+
interactive: input.interactive,
|
|
689
|
+
noLogs: true
|
|
590
690
|
},
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
interactive: input.interactive,
|
|
594
|
-
noLogs: true
|
|
691
|
+
services,
|
|
692
|
+
runtimeConfig
|
|
595
693
|
};
|
|
596
|
-
|
|
597
|
-
|
|
694
|
+
pendingStartSummary = summary;
|
|
695
|
+
pluginEvents.emit("progress", {
|
|
696
|
+
phase: "config",
|
|
697
|
+
status: "done"
|
|
698
|
+
});
|
|
598
699
|
return {
|
|
599
700
|
status: "running",
|
|
600
701
|
url: `http://localhost:${port}`
|
|
@@ -784,8 +885,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
784
885
|
let extendsAccount = "";
|
|
785
886
|
let extendsGateway = "";
|
|
786
887
|
let directory = input.directory;
|
|
787
|
-
|
|
788
|
-
|
|
888
|
+
const account = input.account;
|
|
889
|
+
const domain = input.domain;
|
|
789
890
|
let overrides = input.overrides;
|
|
790
891
|
let plugins = input.plugins;
|
|
791
892
|
if (input.extends) {
|
|
@@ -797,77 +898,22 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
797
898
|
}
|
|
798
899
|
extendsAccount = extendsAccount || "dev.everything.near";
|
|
799
900
|
extendsGateway = extendsGateway || "everything.dev";
|
|
800
|
-
const s = _clack_prompts.spinner();
|
|
801
|
-
s.start("Initializing project");
|
|
802
901
|
let parentPluginKeys = [];
|
|
803
902
|
let parentConfig = null;
|
|
804
903
|
try {
|
|
805
|
-
parentConfig = await
|
|
904
|
+
parentConfig = await timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(extendsAccount, extendsGateway));
|
|
806
905
|
if (parentConfig?.plugins && typeof parentConfig.plugins === "object") parentPluginKeys = Object.keys(parentConfig.plugins);
|
|
807
906
|
} catch {}
|
|
808
|
-
if (!input.noInteractive) {
|
|
809
|
-
s.stop("Config fetched");
|
|
810
|
-
const initialExtendsAccount = extendsAccount;
|
|
811
|
-
const initialExtendsGateway = extendsGateway;
|
|
812
|
-
const prompted = await require_prompts.promptInitOptions({
|
|
813
|
-
extends: `bos://${extendsAccount}/${extendsGateway}`,
|
|
814
|
-
directory,
|
|
815
|
-
account,
|
|
816
|
-
domain,
|
|
817
|
-
plugins,
|
|
818
|
-
overrides,
|
|
819
|
-
parentPluginKeys
|
|
820
|
-
});
|
|
821
|
-
extendsAccount = prompted.extendsAccount;
|
|
822
|
-
extendsGateway = prompted.extendsGateway;
|
|
823
|
-
directory = prompted.directory;
|
|
824
|
-
account = prompted.account;
|
|
825
|
-
domain = prompted.domain;
|
|
826
|
-
plugins = prompted.plugins;
|
|
827
|
-
overrides = prompted.overrides;
|
|
828
|
-
if (!parentConfig || prompted.extendsAccount !== initialExtendsAccount || prompted.extendsGateway !== initialExtendsGateway) {
|
|
829
|
-
try {
|
|
830
|
-
parentConfig = await require_timing.timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(prompted.extendsAccount, prompted.extendsGateway), s);
|
|
831
|
-
if (parentConfig?.plugins && typeof parentConfig.plugins === "object") parentPluginKeys = Object.keys(parentConfig.plugins);
|
|
832
|
-
else parentPluginKeys = [];
|
|
833
|
-
} catch {
|
|
834
|
-
return {
|
|
835
|
-
status: "error",
|
|
836
|
-
directory,
|
|
837
|
-
extendsRef: `bos://${prompted.extendsAccount}/${prompted.extendsGateway}`,
|
|
838
|
-
account,
|
|
839
|
-
domain,
|
|
840
|
-
extends: `bos://${prompted.extendsAccount}/${prompted.extendsGateway}`,
|
|
841
|
-
plugins,
|
|
842
|
-
overrides,
|
|
843
|
-
filesCopied: 0,
|
|
844
|
-
timings,
|
|
845
|
-
error: `No config found at bos://${prompted.extendsAccount}/${prompted.extendsGateway} — are you sure this is the right parent?`
|
|
846
|
-
};
|
|
847
|
-
}
|
|
848
|
-
s.stop("Config fetched");
|
|
849
|
-
}
|
|
850
|
-
if (typeof parentConfig?.title === "string" && parentConfig.title.trim() && typeof parentConfig.description === "string" && parentConfig.description.trim()) {
|
|
851
|
-
const shouldContinue = await _clack_prompts.confirm({
|
|
852
|
-
message: `You will be extending ${parentConfig.title} - ${parentConfig.description}. Continue?`,
|
|
853
|
-
initialValue: true
|
|
854
|
-
});
|
|
855
|
-
if (_clack_prompts.isCancel(shouldContinue) || !shouldContinue) node_process.default.exit(0);
|
|
856
|
-
}
|
|
857
|
-
s.start("Setting up project");
|
|
858
|
-
}
|
|
859
907
|
overrides = overrides?.length ? overrides : ["ui", "api"];
|
|
860
|
-
if (overrides.includes("plugins") &&
|
|
908
|
+
if (overrides.includes("plugins") && plugins === void 0) plugins = parentPluginKeys;
|
|
861
909
|
plugins = plugins ?? [];
|
|
862
910
|
directory = directory || domain || extendsGateway;
|
|
863
911
|
const targetDir = (0, node_path.resolve)(directory);
|
|
864
912
|
const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;
|
|
865
|
-
if (overrides.includes("plugins") && !plugins.length) {}
|
|
866
913
|
const repository = await require_cli_init.detectGitRemoteUrl(node_process.default.cwd()).catch(() => void 0) ?? parentConfig?.repository;
|
|
867
914
|
if (!parentConfig) try {
|
|
868
|
-
parentConfig = await
|
|
915
|
+
parentConfig = await timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(extendsAccount, extendsGateway));
|
|
869
916
|
} catch {
|
|
870
|
-
s.stop("Failed");
|
|
871
917
|
return {
|
|
872
918
|
status: "error",
|
|
873
919
|
directory,
|
|
@@ -882,17 +928,17 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
882
928
|
error: `No config found at ${extendsRef} — are you sure this is the right parent?`
|
|
883
929
|
};
|
|
884
930
|
}
|
|
885
|
-
const { sourceDir, parentConfig: resolvedParentConfig, cleanup } = await
|
|
931
|
+
const { sourceDir, parentConfig: resolvedParentConfig, cleanup } = await timePhase(timings, "template source", () => require_cli_init.resolveSourceDir({
|
|
886
932
|
extendsAccount,
|
|
887
933
|
extendsGateway,
|
|
888
934
|
source: input.source
|
|
889
|
-
})
|
|
935
|
+
}));
|
|
890
936
|
parentConfig = resolvedParentConfig;
|
|
891
937
|
const isMinimalScaffold = sourceDir === "";
|
|
892
938
|
try {
|
|
893
939
|
let filesCopied;
|
|
894
940
|
if (isMinimalScaffold) {
|
|
895
|
-
filesCopied = await
|
|
941
|
+
filesCopied = await timePhase(timings, "scaffold project", () => require_cli_init.scaffoldMinimalProject(targetDir, parentConfig, {
|
|
896
942
|
extendsAccount,
|
|
897
943
|
extendsGateway,
|
|
898
944
|
account: account || extendsAccount,
|
|
@@ -902,8 +948,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
902
948
|
repository,
|
|
903
949
|
title: parentConfig?.title,
|
|
904
950
|
description: parentConfig?.description
|
|
905
|
-
})
|
|
906
|
-
await
|
|
951
|
+
}));
|
|
952
|
+
await timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
|
|
907
953
|
extendsAccount,
|
|
908
954
|
extendsGateway,
|
|
909
955
|
account: account || extendsAccount,
|
|
@@ -916,14 +962,14 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
916
962
|
description: parentConfig?.description,
|
|
917
963
|
testnet: parentConfig?.testnet,
|
|
918
964
|
staging: parentConfig?.staging
|
|
919
|
-
})
|
|
965
|
+
}));
|
|
920
966
|
} else {
|
|
921
967
|
const patterns = require_cli_init.buildInitPatterns(overrides, plugins);
|
|
922
|
-
filesCopied = await
|
|
968
|
+
filesCopied = await timePhase(timings, "copy files", () => require_cli_init.copyFilteredFiles(sourceDir, targetDir, patterns, {
|
|
923
969
|
overrides,
|
|
924
970
|
plugins
|
|
925
|
-
})
|
|
926
|
-
await
|
|
971
|
+
}));
|
|
972
|
+
await timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
|
|
927
973
|
extendsAccount,
|
|
928
974
|
extendsGateway,
|
|
929
975
|
account: account || extendsAccount,
|
|
@@ -936,45 +982,28 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
936
982
|
description: parentConfig?.description,
|
|
937
983
|
testnet: parentConfig?.testnet,
|
|
938
984
|
staging: parentConfig?.staging
|
|
939
|
-
})
|
|
940
|
-
await
|
|
985
|
+
}));
|
|
986
|
+
await timePhase(timings, "write snapshot", () => require_cli_init.writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
|
|
941
987
|
overrides,
|
|
942
988
|
plugins
|
|
943
|
-
})
|
|
989
|
+
}));
|
|
944
990
|
}
|
|
945
991
|
const lockfilePath = (0, node_path.join)(targetDir, "bun.lock");
|
|
946
992
|
require_cli_init.stripOrphanedWorkspacesFromLockfile(lockfilePath, computeAllowedWorkspaces(overrides, plugins));
|
|
947
993
|
require_cli_init.removeInitLockfile(lockfilePath);
|
|
948
|
-
const initConfig = await
|
|
949
|
-
if (initConfig?.runtime) await
|
|
994
|
+
const initConfig = await timePhase(timings, "resolve config", () => require_config.loadConfig({ cwd: targetDir }));
|
|
995
|
+
if (initConfig?.runtime) await timePhase(timings, "generate env/docker", async () => {
|
|
950
996
|
require_infra.writeGeneratedInfra(targetDir, initConfig.runtime);
|
|
951
|
-
}
|
|
952
|
-
await
|
|
997
|
+
});
|
|
998
|
+
await timePhase(timings, "create env file", async () => {
|
|
953
999
|
require_infra.ensureEnvFile(targetDir);
|
|
954
|
-
}
|
|
1000
|
+
});
|
|
955
1001
|
if (!input.noInstall) {
|
|
956
|
-
await
|
|
957
|
-
await
|
|
958
|
-
await
|
|
959
|
-
}
|
|
960
|
-
if (input.noInstall && initConfig?.config) await require_timing.timePhase(timings, "generate code artifacts", () => generateCodeArtifacts(targetDir, initConfig.config), s);
|
|
961
|
-
s.stop("Project initialized");
|
|
962
|
-
if (!input.noInteractive) {
|
|
963
|
-
if (await _clack_prompts.confirm({
|
|
964
|
-
message: "Run docker compose up -d --wait?",
|
|
965
|
-
initialValue: true
|
|
966
|
-
}) === true) {
|
|
967
|
-
const dockerSpinner = _clack_prompts.spinner();
|
|
968
|
-
dockerSpinner.start("Starting Docker services");
|
|
969
|
-
try {
|
|
970
|
-
await require_timing.timePhase(timings, "docker compose up", () => require_cli_init.runDockerComposeUp(targetDir));
|
|
971
|
-
dockerSpinner.stop("Docker services ready");
|
|
972
|
-
} catch (error) {
|
|
973
|
-
dockerSpinner.stop("Docker services not started");
|
|
974
|
-
_clack_prompts.log.warn(`docker compose up -d --wait failed: ${error instanceof Error ? error.message : error}`);
|
|
975
|
-
}
|
|
976
|
-
}
|
|
1002
|
+
await timePhase(timings, "install dependencies", () => require_cli_init.runBunInstall(targetDir));
|
|
1003
|
+
await timePhase(timings, "generate types", () => require_cli_init.runTypesGen(targetDir));
|
|
1004
|
+
await timePhase(timings, "generate migrations", () => require_cli_init.generateDatabaseMigrations(targetDir));
|
|
977
1005
|
}
|
|
1006
|
+
if (input.noInstall && initConfig?.config) await timePhase(timings, "generate code artifacts", () => generateCodeArtifacts(targetDir, initConfig.config));
|
|
978
1007
|
return {
|
|
979
1008
|
status: "initialized",
|
|
980
1009
|
directory,
|
|
@@ -985,7 +1014,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
|
|
|
985
1014
|
plugins,
|
|
986
1015
|
overrides,
|
|
987
1016
|
filesCopied,
|
|
988
|
-
timings
|
|
1017
|
+
timings,
|
|
1018
|
+
targetDir
|
|
989
1019
|
};
|
|
990
1020
|
} finally {
|
|
991
1021
|
await cleanup();
|
|
@@ -1160,10 +1190,12 @@ function computeAllowedWorkspaces(overrides, plugins) {
|
|
|
1160
1190
|
if (section === "ui") workspaces.push("ui");
|
|
1161
1191
|
if (section === "api") workspaces.push("api");
|
|
1162
1192
|
}
|
|
1163
|
-
if (plugins
|
|
1193
|
+
if (plugins && plugins.length > 0) workspaces.push("plugins/*");
|
|
1164
1194
|
return workspaces;
|
|
1165
1195
|
}
|
|
1166
1196
|
|
|
1167
1197
|
//#endregion
|
|
1168
|
-
|
|
1198
|
+
exports.consumeDevSession = consumeDevSession;
|
|
1199
|
+
exports.default = plugin_default;
|
|
1200
|
+
exports.pluginEvents = pluginEvents;
|
|
1169
1201
|
//# sourceMappingURL=plugin.cjs.map
|