@nightowlsdev/cli 0.1.2 → 0.2.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/dist/cli.js +12 -8
- package/package.json +14 -14
package/dist/cli.js
CHANGED
|
@@ -39,12 +39,13 @@ var INSTALLED_FILE = /_nightowls_(.+)\.sql$/;
|
|
|
39
39
|
async function runDbInstall(deps) {
|
|
40
40
|
const migrations = collectMigrations(deps.plugins);
|
|
41
41
|
const dir = `${deps.root.replace(/\/$/, "")}/${deps.out.replace(/^\//, "")}`;
|
|
42
|
-
await deps.fs.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
42
|
+
if (!deps.dryRun) await deps.fs.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
43
43
|
const existing = await deps.fs.readdir(dir).catch(() => []);
|
|
44
44
|
const installed = new Set(
|
|
45
45
|
existing.map((f) => INSTALLED_FILE.exec(f)?.[1]).filter((v) => Boolean(v))
|
|
46
46
|
);
|
|
47
47
|
const base = deps.now();
|
|
48
|
+
const stamp = deps.stamp ?? ((_v, i2, b) => migrationStamp(b, i2));
|
|
48
49
|
const written = [];
|
|
49
50
|
const skipped = [];
|
|
50
51
|
let i = 0;
|
|
@@ -53,13 +54,13 @@ async function runDbInstall(deps) {
|
|
|
53
54
|
skipped.push(m.version);
|
|
54
55
|
continue;
|
|
55
56
|
}
|
|
56
|
-
const file = `${
|
|
57
|
-
await deps.fs.writeFile(`${dir}/${file}`, `${m.sql.trimStart()}
|
|
57
|
+
const file = `${stamp(m.version, i, base)}_nightowls_${m.version}.sql`;
|
|
58
|
+
if (!deps.dryRun) await deps.fs.writeFile(`${dir}/${file}`, `${m.sql.trimStart()}
|
|
58
59
|
`);
|
|
59
60
|
written.push({ version: m.version, file });
|
|
60
61
|
i += 1;
|
|
61
62
|
}
|
|
62
|
-
return { written, skipped };
|
|
63
|
+
return { written, skipped, dryRun: Boolean(deps.dryRun) };
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
// src/templates.ts
|
|
@@ -386,19 +387,22 @@ db.command("types").description("Generate TypeScript types for the nightowls sch
|
|
|
386
387
|
const out = await runDbTypes({ exec });
|
|
387
388
|
process.stdout.write(out);
|
|
388
389
|
});
|
|
389
|
-
db.command("install").description("Install Night Owls' migrations into your supabase/migrations/ (timestamped, idempotent) \u2014 apply them with `supabase db push`.").option("--out <dir>", "target migrations dir (relative to cwd)", "supabase/migrations").action(async (opts) => {
|
|
390
|
+
db.command("install").description("Install Night Owls' migrations into your supabase/migrations/ (timestamped, idempotent) \u2014 apply them with `supabase db push`.").option("--out <dir>", "target migrations dir (relative to cwd)", "supabase/migrations").option("--dry-run", "preview the migration set without writing any files", false).action(async (opts) => {
|
|
390
391
|
const cwd = process.cwd();
|
|
391
392
|
const plugins = await discoverPlugins(nodeDiscoverDeps(cwd));
|
|
392
|
-
const { written, skipped } = await runDbInstall({
|
|
393
|
+
const { written, skipped, dryRun } = await runDbInstall({
|
|
393
394
|
plugins,
|
|
394
395
|
root: cwd,
|
|
395
396
|
out: opts.out,
|
|
396
397
|
fs: await nodeFs(),
|
|
397
|
-
now: () => /* @__PURE__ */ new Date()
|
|
398
|
+
now: () => /* @__PURE__ */ new Date(),
|
|
399
|
+
dryRun: opts.dryRun
|
|
398
400
|
});
|
|
399
|
-
|
|
401
|
+
const verb = dryRun ? "would write" : "wrote";
|
|
402
|
+
for (const w of written) console.log(`${verb} ${opts.out}/${w.file}`);
|
|
400
403
|
for (const version of skipped) console.log(`skipped ${version} (already installed)`);
|
|
401
404
|
if (!written.length) console.log("Nothing to install \u2014 all nightowls migrations already present.");
|
|
405
|
+
else if (dryRun) console.log(`Dry run \u2014 ${written.length} migration(s) would be written to ${opts.out}/. Re-run without --dry-run to apply.`);
|
|
402
406
|
});
|
|
403
407
|
program.command("plugins").description("List installed Night Owls plugins and the commands they expose.").action(async () => {
|
|
404
408
|
const cwd = process.cwd();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nightowlsdev/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -36,22 +36,22 @@
|
|
|
36
36
|
"tsup": "8.5.1",
|
|
37
37
|
"typescript": "6.0.3",
|
|
38
38
|
"vitest": "^3.2.0",
|
|
39
|
-
"@nightowlsdev/core": "0.
|
|
40
|
-
"@nightowlsdev/
|
|
41
|
-
"@nightowlsdev/
|
|
42
|
-
"@nightowlsdev/auth-auth0": "
|
|
43
|
-
"@nightowlsdev/telemetry-otel": "
|
|
44
|
-
"@nightowlsdev/
|
|
45
|
-
"@nightowlsdev/runner-nextjs": "
|
|
46
|
-
"@nightowlsdev/
|
|
47
|
-
"@nightowlsdev/
|
|
39
|
+
"@nightowlsdev/core": "0.5.0",
|
|
40
|
+
"@nightowlsdev/auth-supabase": "2.0.0",
|
|
41
|
+
"@nightowlsdev/storage-supabase": "2.0.0",
|
|
42
|
+
"@nightowlsdev/auth-auth0": "2.0.0",
|
|
43
|
+
"@nightowlsdev/telemetry-otel": "2.0.0",
|
|
44
|
+
"@nightowlsdev/runner-background": "2.0.0",
|
|
45
|
+
"@nightowlsdev/runner-nextjs": "2.0.0",
|
|
46
|
+
"@nightowlsdev/mcp": "2.0.0",
|
|
47
|
+
"@nightowlsdev/telemetry-langfuse": "2.0.0",
|
|
48
48
|
"@nightowlsdev/model-anthropic": "0.1.0",
|
|
49
|
-
"@nightowlsdev/model-openai": "0.
|
|
49
|
+
"@nightowlsdev/model-openai": "0.2.0",
|
|
50
|
+
"@nightowlsdev/model-openrouter": "0.2.0",
|
|
50
51
|
"@nightowlsdev/model-vercel-gateway": "0.1.0",
|
|
51
|
-
"@nightowlsdev/model-openrouter": "0.1.0",
|
|
52
52
|
"@nightowlsdev/tsconfig": "0.0.0",
|
|
53
|
-
"@nightowlsdev/
|
|
54
|
-
"@nightowlsdev/
|
|
53
|
+
"@nightowlsdev/eslint-config": "0.0.0",
|
|
54
|
+
"@nightowlsdev/model-ollama": "0.1.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "tsup",
|