openboot 0.1.0
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/LICENSE +110 -0
- package/README.md +273 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +132 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/clean.d.ts +7 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +173 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/dev.d.ts +7 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +92 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/down.d.ts +5 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +33 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +560 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logs.d.ts +14 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +243 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/reboot.d.ts +5 -0
- package/dist/commands/reboot.d.ts.map +1 -0
- package/dist/commands/reboot.js +15 -0
- package/dist/commands/reboot.js.map +1 -0
- package/dist/commands/setup.d.ts +5 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +200 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +5 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +200 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/up.d.ts +7 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +325 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/lib/config.d.ts +18 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +95 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/docker.d.ts +19 -0
- package/dist/lib/docker.d.ts.map +1 -0
- package/dist/lib/docker.js +511 -0
- package/dist/lib/docker.js.map +1 -0
- package/dist/lib/health.d.ts +5 -0
- package/dist/lib/health.d.ts.map +1 -0
- package/dist/lib/health.js +80 -0
- package/dist/lib/health.js.map +1 -0
- package/dist/lib/log.d.ts +11 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +51 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/ports.d.ts +13 -0
- package/dist/lib/ports.d.ts.map +1 -0
- package/dist/lib/ports.js +45 -0
- package/dist/lib/ports.js.map +1 -0
- package/dist/lib/prereqs.d.ts +8 -0
- package/dist/lib/prereqs.d.ts.map +1 -0
- package/dist/lib/prereqs.js +78 -0
- package/dist/lib/prereqs.js.map +1 -0
- package/dist/lib/process.d.ts +38 -0
- package/dist/lib/process.d.ts.map +1 -0
- package/dist/lib/process.js +285 -0
- package/dist/lib/process.js.map +1 -0
- package/dist/lib/tail.d.ts +12 -0
- package/dist/lib/tail.d.ts.map +1 -0
- package/dist/lib/tail.js +136 -0
- package/dist/lib/tail.js.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.clean = clean;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const config_1 = require("../lib/config");
|
|
40
|
+
const log_1 = require("../lib/log");
|
|
41
|
+
/**
|
|
42
|
+
* Common cache and build output directories to clean.
|
|
43
|
+
*/
|
|
44
|
+
const CACHE_DIRS = [
|
|
45
|
+
".nuxt",
|
|
46
|
+
".next",
|
|
47
|
+
".output",
|
|
48
|
+
".turbo",
|
|
49
|
+
".parcel-cache",
|
|
50
|
+
".vite",
|
|
51
|
+
];
|
|
52
|
+
const BUILD_DIRS = ["dist", "build", ".output"];
|
|
53
|
+
const LOCKFILES = [
|
|
54
|
+
"package-lock.json",
|
|
55
|
+
"yarn.lock",
|
|
56
|
+
];
|
|
57
|
+
/**
|
|
58
|
+
* `boot clean` — nuke dependencies, caches, and build outputs for a fresh start.
|
|
59
|
+
*/
|
|
60
|
+
async function clean(options = {}) {
|
|
61
|
+
let config;
|
|
62
|
+
try {
|
|
63
|
+
config = (0, config_1.loadConfig)();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
config = null;
|
|
67
|
+
}
|
|
68
|
+
const projectName = config?.name || path.basename(process.cwd());
|
|
69
|
+
log_1.log.header(`Cleaning ${projectName}`);
|
|
70
|
+
const cwd = process.cwd();
|
|
71
|
+
let removed = 0;
|
|
72
|
+
// 1. Collect all app directories
|
|
73
|
+
const appDirs = [cwd];
|
|
74
|
+
if (config?.apps) {
|
|
75
|
+
for (const app of config.apps) {
|
|
76
|
+
if (app.path) {
|
|
77
|
+
const appDir = path.resolve(cwd, app.path);
|
|
78
|
+
if (fs.existsSync(appDir)) {
|
|
79
|
+
appDirs.push(appDir);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Also scan apps/ directory for monorepo sub-apps not in config
|
|
85
|
+
const monorepoAppsDir = path.join(cwd, "apps");
|
|
86
|
+
if (fs.existsSync(monorepoAppsDir) && fs.statSync(monorepoAppsDir).isDirectory()) {
|
|
87
|
+
for (const dir of fs.readdirSync(monorepoAppsDir)) {
|
|
88
|
+
const fullPath = path.join(monorepoAppsDir, dir);
|
|
89
|
+
if (fs.statSync(fullPath).isDirectory() &&
|
|
90
|
+
fs.existsSync(path.join(fullPath, "package.json"))) {
|
|
91
|
+
if (!appDirs.includes(fullPath)) {
|
|
92
|
+
appDirs.push(fullPath);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// 2. Remove node_modules in all app dirs
|
|
98
|
+
log_1.log.info("Removing node_modules...");
|
|
99
|
+
for (const dir of appDirs) {
|
|
100
|
+
const nm = path.join(dir, "node_modules");
|
|
101
|
+
if (fs.existsSync(nm)) {
|
|
102
|
+
const label = path.relative(cwd, nm) || "node_modules";
|
|
103
|
+
fs.rmSync(nm, { recursive: true, force: true });
|
|
104
|
+
log_1.log.success(`Removed ${label}`);
|
|
105
|
+
removed++;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// 3. Remove lockfiles (except pnpm-lock.yaml unless --all)
|
|
109
|
+
log_1.log.info("Removing lockfiles...");
|
|
110
|
+
for (const dir of appDirs) {
|
|
111
|
+
for (const lockfile of LOCKFILES) {
|
|
112
|
+
const lf = path.join(dir, lockfile);
|
|
113
|
+
if (fs.existsSync(lf)) {
|
|
114
|
+
fs.rmSync(lf, { force: true });
|
|
115
|
+
const label = path.relative(cwd, lf) || lockfile;
|
|
116
|
+
log_1.log.success(`Removed ${label}`);
|
|
117
|
+
removed++;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (options.all) {
|
|
122
|
+
// Also remove pnpm-lock.yaml
|
|
123
|
+
const pnpmLock = path.join(cwd, "pnpm-lock.yaml");
|
|
124
|
+
if (fs.existsSync(pnpmLock)) {
|
|
125
|
+
fs.rmSync(pnpmLock, { force: true });
|
|
126
|
+
log_1.log.success("Removed pnpm-lock.yaml");
|
|
127
|
+
removed++;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// 4. Remove caches
|
|
131
|
+
log_1.log.info("Removing caches...");
|
|
132
|
+
for (const dir of appDirs) {
|
|
133
|
+
for (const cache of CACHE_DIRS) {
|
|
134
|
+
const cd = path.join(dir, cache);
|
|
135
|
+
if (fs.existsSync(cd)) {
|
|
136
|
+
fs.rmSync(cd, { recursive: true, force: true });
|
|
137
|
+
const label = path.relative(cwd, cd) || cache;
|
|
138
|
+
log_1.log.success(`Removed ${label}`);
|
|
139
|
+
removed++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// 5. Remove build outputs
|
|
144
|
+
log_1.log.info("Removing build outputs...");
|
|
145
|
+
for (const dir of appDirs) {
|
|
146
|
+
for (const build of BUILD_DIRS) {
|
|
147
|
+
const bd = path.join(dir, build);
|
|
148
|
+
if (fs.existsSync(bd)) {
|
|
149
|
+
fs.rmSync(bd, { recursive: true, force: true });
|
|
150
|
+
const label = path.relative(cwd, bd) || build;
|
|
151
|
+
log_1.log.success(`Removed ${label}`);
|
|
152
|
+
removed++;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// 6. Remove .boot runtime data
|
|
157
|
+
const bootDir = path.join(cwd, ".boot");
|
|
158
|
+
if (fs.existsSync(bootDir)) {
|
|
159
|
+
fs.rmSync(bootDir, { recursive: true, force: true });
|
|
160
|
+
log_1.log.success("Removed .boot/");
|
|
161
|
+
removed++;
|
|
162
|
+
}
|
|
163
|
+
log_1.log.blank();
|
|
164
|
+
if (removed === 0) {
|
|
165
|
+
log_1.log.step("Nothing to clean");
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
log_1.log.success(`Cleaned ${removed} items`);
|
|
169
|
+
log_1.log.step("Run 'boot setup' or 'boot up' to reinstall and start fresh.");
|
|
170
|
+
}
|
|
171
|
+
log_1.log.blank();
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAyFzC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dev = dev;
|
|
4
|
+
const config_1 = require("../lib/config");
|
|
5
|
+
const docker_1 = require("../lib/docker");
|
|
6
|
+
const process_1 = require("../lib/process");
|
|
7
|
+
const docker_2 = require("../lib/docker");
|
|
8
|
+
const health_1 = require("../lib/health");
|
|
9
|
+
const log_1 = require("../lib/log");
|
|
10
|
+
const prereqs_1 = require("../lib/prereqs");
|
|
11
|
+
const tail_1 = require("../lib/tail");
|
|
12
|
+
/**
|
|
13
|
+
* `boot dev` — interactive development mode.
|
|
14
|
+
* Starts everything (docker + apps) and streams all logs in the foreground.
|
|
15
|
+
* Ctrl+C gracefully stops all services.
|
|
16
|
+
*/
|
|
17
|
+
async function dev() {
|
|
18
|
+
const config = (0, config_1.loadConfig)();
|
|
19
|
+
if (!config)
|
|
20
|
+
return;
|
|
21
|
+
const needsDocker = !!(config.docker?.composeFile ||
|
|
22
|
+
(config.docker?.containers && config.docker.containers.length > 0));
|
|
23
|
+
if (!(0, prereqs_1.checkPrerequisites)({ needsDocker })) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const projectRoot = process.cwd();
|
|
27
|
+
log_1.log.header(`${config.name} — dev mode`);
|
|
28
|
+
log_1.log.blank();
|
|
29
|
+
// Start Docker services
|
|
30
|
+
if (config.docker) {
|
|
31
|
+
(0, docker_1.startDocker)(config);
|
|
32
|
+
log_1.log.blank();
|
|
33
|
+
}
|
|
34
|
+
// Start app processes
|
|
35
|
+
if (config.apps) {
|
|
36
|
+
for (const app of config.apps) {
|
|
37
|
+
(0, process_1.startApp)(app, projectRoot);
|
|
38
|
+
}
|
|
39
|
+
// Wait for health checks
|
|
40
|
+
for (const app of config.apps) {
|
|
41
|
+
if (app.health) {
|
|
42
|
+
log_1.log.info(`Waiting for ${app.name} to be healthy...`);
|
|
43
|
+
const healthy = await (0, health_1.waitForHealth)(app.health, 45);
|
|
44
|
+
if (healthy) {
|
|
45
|
+
log_1.log.success(`${app.name} is ready`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
log_1.log.warn(`${app.name} may not be ready (timed out)`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Summary
|
|
54
|
+
log_1.log.blank();
|
|
55
|
+
log_1.log.header(`${config.name} is running`);
|
|
56
|
+
if (config.apps) {
|
|
57
|
+
for (const app of config.apps) {
|
|
58
|
+
if (app.port) {
|
|
59
|
+
log_1.log.step(`${app.name}: http://localhost:${app.port}`);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
log_1.log.step(`${app.name}: started`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
log_1.log.blank();
|
|
67
|
+
// Stream logs — Ctrl+C stops everything
|
|
68
|
+
const handle = (0, tail_1.tailAllLogs)(config);
|
|
69
|
+
await new Promise((resolve) => {
|
|
70
|
+
const shutdown = () => {
|
|
71
|
+
handle.stop();
|
|
72
|
+
log_1.log.blank();
|
|
73
|
+
log_1.log.header("Shutting down...");
|
|
74
|
+
log_1.log.blank();
|
|
75
|
+
// Stop apps
|
|
76
|
+
if (config.apps) {
|
|
77
|
+
(0, process_1.stopAllApps)(config.apps);
|
|
78
|
+
}
|
|
79
|
+
// Stop Docker
|
|
80
|
+
if (config.docker) {
|
|
81
|
+
(0, docker_2.stopDocker)(config);
|
|
82
|
+
}
|
|
83
|
+
log_1.log.blank();
|
|
84
|
+
log_1.log.success(`${config.name} stopped`);
|
|
85
|
+
log_1.log.blank();
|
|
86
|
+
resolve();
|
|
87
|
+
};
|
|
88
|
+
process.on("SIGINT", shutdown);
|
|
89
|
+
process.on("SIGTERM", shutdown);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB1C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = down;
|
|
4
|
+
const config_1 = require("../lib/config");
|
|
5
|
+
const docker_1 = require("../lib/docker");
|
|
6
|
+
const process_1 = require("../lib/process");
|
|
7
|
+
const log_1 = require("../lib/log");
|
|
8
|
+
/**
|
|
9
|
+
* `boot down` — stop all services.
|
|
10
|
+
*/
|
|
11
|
+
async function down() {
|
|
12
|
+
let config;
|
|
13
|
+
try {
|
|
14
|
+
config = (0, config_1.loadConfig)();
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Even without config, try to stop any running apps
|
|
18
|
+
log_1.log.info("No boot.yaml found — stopping any tracked processes...");
|
|
19
|
+
(0, process_1.stopAllApps)();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
log_1.log.header(`Stopping ${config.name}`);
|
|
23
|
+
// Stop app processes first (pass configs for pkill fallback + port cleanup)
|
|
24
|
+
(0, process_1.stopAllApps)(config.apps);
|
|
25
|
+
// Stop Docker services
|
|
26
|
+
if (config.docker) {
|
|
27
|
+
(0, docker_1.stopDocker)(config);
|
|
28
|
+
}
|
|
29
|
+
log_1.log.blank();
|
|
30
|
+
log_1.log.success("All services stopped");
|
|
31
|
+
log_1.log.blank();
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=down.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":";;AAQA,oBAwBC;AAhCD,0CAA2C;AAC3C,0CAA2C;AAC3C,4CAA6C;AAC7C,oCAAiC;AAEjC;;GAEG;AACI,KAAK,UAAU,IAAI;IACxB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;QACpD,SAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACnE,IAAA,qBAAW,GAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,SAAG,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtC,4EAA4E;IAC5E,IAAA,qBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzB,uBAAuB;IACvB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,SAAG,CAAC,KAAK,EAAE,CAAC;IACZ,SAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,SAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuN1C"}
|