@devbie/newbie-cli 1.9.1 → 1.10.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.
Files changed (74) hide show
  1. package/README.md +79 -103
  2. package/dist/assemble/modules-copy.js +1 -1
  3. package/dist/assemble/modules-copy.js.map +1 -1
  4. package/dist/assemble/modules.js +13 -4
  5. package/dist/assemble/modules.js.map +1 -1
  6. package/dist/assemble/schema.js +1 -1
  7. package/dist/commands/create.js +1 -1
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/doctor.d.ts +4 -1
  10. package/dist/commands/doctor.js +36 -16
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/modules/default.d.ts +5 -0
  13. package/dist/commands/{default.js → modules/default.js} +64 -13
  14. package/dist/commands/modules/default.js.map +1 -0
  15. package/dist/commands/modules/install.d.ts +7 -0
  16. package/dist/commands/modules/install.js +121 -0
  17. package/dist/commands/modules/install.js.map +1 -0
  18. package/dist/commands/modules/lint.d.ts +3 -0
  19. package/dist/commands/{dev → modules}/lint.js +12 -11
  20. package/dist/commands/modules/lint.js.map +1 -0
  21. package/dist/commands/modules/remove.d.ts +6 -0
  22. package/dist/commands/modules/remove.js +47 -0
  23. package/dist/commands/modules/remove.js.map +1 -0
  24. package/dist/commands/modules/update.d.ts +8 -0
  25. package/dist/commands/{update.js → modules/update.js} +68 -27
  26. package/dist/commands/modules/update.js.map +1 -0
  27. package/dist/commands/modules/watch.d.ts +6 -0
  28. package/dist/commands/{watch.js → modules/watch.js} +16 -8
  29. package/dist/commands/modules/watch.js.map +1 -0
  30. package/dist/commands/shared.d.ts +1 -0
  31. package/dist/commands/shared.js +1 -1
  32. package/dist/commands/shared.js.map +1 -1
  33. package/dist/commands/template/sync.d.ts +7 -0
  34. package/dist/commands/{sync-template.js → template/sync.js} +10 -19
  35. package/dist/commands/template/sync.js.map +1 -0
  36. package/dist/core/deploy-compose.js +1 -1
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.js +3 -179
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/module-selector.d.ts +1 -0
  41. package/dist/lib/module-selector.js +13 -0
  42. package/dist/lib/module-selector.js.map +1 -0
  43. package/dist/lib/sink.d.ts +10 -1
  44. package/dist/lib/sink.js +42 -3
  45. package/dist/lib/sink.js.map +1 -1
  46. package/dist/program.d.ts +3 -0
  47. package/dist/program.js +166 -0
  48. package/dist/program.js.map +1 -0
  49. package/package.json +2 -1
  50. package/dist/commands/agent.d.ts +0 -5
  51. package/dist/commands/agent.js +0 -223
  52. package/dist/commands/agent.js.map +0 -1
  53. package/dist/commands/apply.d.ts +0 -7
  54. package/dist/commands/apply.js +0 -61
  55. package/dist/commands/apply.js.map +0 -1
  56. package/dist/commands/assemble.d.ts +0 -5
  57. package/dist/commands/assemble.js +0 -66
  58. package/dist/commands/assemble.js.map +0 -1
  59. package/dist/commands/config.d.ts +0 -7
  60. package/dist/commands/config.js +0 -120
  61. package/dist/commands/config.js.map +0 -1
  62. package/dist/commands/default.d.ts +0 -2
  63. package/dist/commands/default.js.map +0 -1
  64. package/dist/commands/dev/lint.d.ts +0 -3
  65. package/dist/commands/dev/lint.js.map +0 -1
  66. package/dist/commands/install.d.ts +0 -4
  67. package/dist/commands/install.js +0 -48
  68. package/dist/commands/install.js.map +0 -1
  69. package/dist/commands/sync-template.d.ts +0 -8
  70. package/dist/commands/sync-template.js.map +0 -1
  71. package/dist/commands/update.d.ts +0 -8
  72. package/dist/commands/update.js.map +0 -1
  73. package/dist/commands/watch.d.ts +0 -5
  74. package/dist/commands/watch.js.map +0 -1
@@ -11,6 +11,7 @@ export declare function printBanner(): void;
11
11
  export interface ContextOptions {
12
12
  ensureConfig?: boolean;
13
13
  fetch?: boolean;
14
+ check?: boolean;
14
15
  }
15
16
  export declare function createContext(options: GlobalOptions, opts?: ContextOptions): Promise<{
16
17
  ctx: PipelineContext;
@@ -34,7 +34,7 @@ function printBanner() {
34
34
  }
35
35
  async function createContext(options, opts = {}) {
36
36
  const cwd = node_path_1.default.resolve(options.cwd);
37
- const sink = (0, sink_1.createSink)(cwd, options.dryRun);
37
+ const sink = (0, sink_1.createSink)(cwd, options.dryRun, { check: opts.check });
38
38
  const issues = new issues_1.IssueBag();
39
39
  if (opts.ensureConfig) {
40
40
  await (0, modules_state_1.ensureModulesState)(cwd, sink);
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":";;;;;AAmBA,gCAOC;AAED,kCAUC;AAaD,sCA6BC;AAhFD,gEAAkC;AAClC,0DAA6B;AAC7B,oDAA4B;AAC5B,yCAAiC;AAEjC,+CAAuD;AACvD,8CAA8C;AAE9C,0CAAyC;AACzC,wDAA4E;AAC5E,8CAAoE;AACpE,sCAA+C;AAQxC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,IAAA,oBAAS,EAAC,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,CAAC,IAAI,CACV,IAAA,gBAAI,EACF,gBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,GAAG;QACV,eAAe,EAAE,IAAI;KACtB,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAaM,KAAK,UAAU,aAAa,CACjC,OAAsB,EACtB,OAAuB,EAAE;IAMzB,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAC;IAE9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,IAAA,kCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAgB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAoB;QAC3B,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,QAAQ;QACR,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;KAC/C,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":";;;;;AAmBA,gCAOC;AAED,kCAUC;AAeD,sCA6BC;AAlFD,gEAAkC;AAClC,0DAA6B;AAC7B,oDAA4B;AAC5B,yCAAiC;AAEjC,+CAAuD;AACvD,8CAA8C;AAE9C,0CAAyC;AACzC,wDAA4E;AAC5E,8CAAoE;AACpE,sCAA+C;AAQxC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,IAAA,oBAAS,EAAC,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,CAAC,IAAI,CACV,IAAA,gBAAI,EACF,gBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,GAAG;QACV,eAAe,EAAE,IAAI;KACtB,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAeM,KAAK,UAAU,aAAa,CACjC,OAAsB,EACtB,OAAuB,EAAE;IAMzB,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAC;IAE9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,IAAA,kCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAgB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAoB;QAC3B,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,QAAQ;QACR,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;KAC/C,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { GlobalOptions } from "../shared";
2
+ import { TemplateReference } from "../create";
3
+ export interface TemplateSyncOptions extends GlobalOptions, TemplateReference {
4
+ check?: boolean;
5
+ paths?: string[];
6
+ }
7
+ export declare function runTemplateSync(options: TemplateSyncOptions): Promise<void>;
@@ -3,15 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runSyncTemplate = runSyncTemplate;
6
+ exports.runTemplateSync = runTemplateSync;
7
7
  const promises_1 = __importDefault(require("node:fs/promises"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const colorette_1 = require("colorette");
10
- const template_sync_1 = require("../core/template-sync");
11
- const unified_diff_1 = require("../core/unified-diff");
12
- const errors_1 = require("../lib/errors");
13
- const sink_1 = require("../lib/sink");
14
- const create_1 = require("./create");
10
+ const template_sync_1 = require("../../core/template-sync");
11
+ const unified_diff_1 = require("../../core/unified-diff");
12
+ const errors_1 = require("../../lib/errors");
13
+ const sink_1 = require("../../lib/sink");
14
+ const create_1 = require("../create");
15
15
  function matchesPathFilter(filePath, filter) {
16
16
  const normalized = filter.replace(/^\.\//, "").replace(/\/+$/, "");
17
17
  if (normalized === "")
@@ -85,10 +85,7 @@ function printChangeDiff(change) {
85
85
  const diff = (0, unified_diff_1.unifiedDiff)(change.currentComparable ?? "", change.templateComparable ?? "", aLabel, `b/${label}`);
86
86
  process.stdout.write(diff);
87
87
  }
88
- async function runSyncTemplate(options) {
89
- if (options.check && options.write) {
90
- throw new errors_1.CliError("--check and --write are mutually exclusive.");
91
- }
88
+ async function runTemplateSync(options) {
92
89
  const cwd = node_path_1.default.resolve(options.cwd);
93
90
  const sink = (0, sink_1.createSink)(cwd, options.dryRun);
94
91
  const templateFiles = filterTemplateFiles(options.paths);
@@ -123,17 +120,11 @@ async function runSyncTemplate(options) {
123
120
  }
124
121
  console.info(`\n${actionable.length} template file(s) to sync: ` +
125
122
  actionable.map((c) => `${c.file.path} (${c.kind})`).join(", "));
126
- const writeCommand = scope ? `newbie sync-template --write ${scope}` : "newbie sync-template --write";
127
123
  if (options.check) {
124
+ const command = scope ? `newbie template sync ${scope}` : "newbie template sync";
128
125
  throw new errors_1.CliError(`${changes.length} template file(s) drift from the template ` +
129
126
  `(${actionable.length} auto-fixable). ` +
130
- `Run \`${writeCommand}\` to apply the template version.`);
131
- }
132
- if (!options.write) {
133
- console.info("\nNext steps:");
134
- console.info(` ${writeCommand} # apply these changes (supports --dry-run)`);
135
- console.info(" git checkout -b chore/template-sync # then review `git diff` and open a PR");
136
- return;
127
+ `Run \`${command}\` to apply the template version.`);
137
128
  }
138
129
  for (const change of actionable) {
139
130
  if (change.nextContent !== null) {
@@ -148,4 +139,4 @@ async function runSyncTemplate(options) {
148
139
  console.info("Review with `git diff`, then commit on a branch and open a PR.");
149
140
  }
150
141
  }
151
- //# sourceMappingURL=sync-template.js.map
142
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/template/sync.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ exports.buildComposeModulesYaml = buildComposeModulesYaml;
4
4
  const env_file_1 = require("./env-file");
5
5
  const datastore_registry_1 = require("./datastore-registry");
6
6
  const HEADER = `# THIS FILE IS GENERATED BY @devbie/newbie-cli. DO NOT EDIT.
7
- # Regenerate with \`newbie assemble\` (it also runs as part of install/apply/update).
7
+ # Regenerate with \`newbie modules install\` (it also runs as part of modules update).
8
8
 
9
9
  `;
10
10
  const EMPTY_YAML = `${HEADER}services: {}\n`;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export declare const VERSION: string;
2
+ import { VERSION } from "./program";
3
+ export { VERSION };
package/dist/index.js CHANGED
@@ -1,45 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  exports.VERSION = void 0;
8
- const commander_1 = require("commander");
9
5
  const colorette_1 = require("colorette");
10
- const package_json_1 = __importDefault(require("../package.json"));
11
- const agent_1 = require("./commands/agent");
12
- const apply_1 = require("./commands/apply");
13
- const assemble_1 = require("./commands/assemble");
14
- const config_1 = require("./commands/config");
15
- const create_1 = require("./commands/create");
16
- const lint_1 = require("./commands/dev/lint");
17
- const doctor_1 = require("./commands/doctor");
18
- const install_1 = require("./commands/install");
19
- const status_1 = require("./commands/status");
20
- const update_1 = require("./commands/update");
21
- const sync_template_1 = require("./commands/sync-template");
22
- const watch_1 = require("./commands/watch");
23
- const default_1 = require("./commands/default");
6
+ const program_1 = require("./program");
7
+ Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return program_1.VERSION; } });
24
8
  const module_cli_1 = require("./lib/module-cli");
25
- const cli_runner_1 = require("./lib/cli-runner");
26
- exports.VERSION = package_json_1.default.version;
27
- const program = new commander_1.Command();
28
- program
29
- .name("newbie")
30
- .description("Newbie framework CLI: install modules from the newbie-modules registry and sync project files")
31
- .version(exports.VERSION)
32
- .option("-C, --cwd <dir>", "project root directory", process.cwd())
33
- .option("--dry-run", "print planned changes without writing files or running mutating commands", false)
34
- .option("--skip-prisma-generate", "skip `npx prisma generate` after schema changes", false);
35
- function collectOptions(command) {
36
- const globals = command.optsWithGlobals();
37
- return {
38
- cwd: globals.cwd ?? process.cwd(),
39
- dryRun: Boolean(globals.dryRun),
40
- skipPrismaGenerate: Boolean(globals.skipPrismaGenerate),
41
- };
42
- }
43
9
  function findCwdInArgv() {
44
10
  const argv = process.argv;
45
11
  for (let i = 2; i < argv.length; i++) {
@@ -61,149 +27,7 @@ function findCwdInArgv() {
61
27
  }
62
28
  return process.cwd();
63
29
  }
64
- program
65
- .command("install")
66
- .description("Reconcile the project with modules.json (copy missing modules / remove extra ones and regenerate wiring)")
67
- .option("-y, --yes", "skip confirmation prompts", false)
68
- .action(function () {
69
- const options = { ...collectOptions(this), yes: Boolean(this.opts().yes) };
70
- return (0, cli_runner_1.run)(() => (0, install_1.runInstall)(options));
71
- });
72
- program
73
- .command("assemble")
74
- .description("Regenerate module-derived deploy assets (deploy/compose.modules.yml, Caddyfile module route block) from the installed module set")
75
- .option("--check", "CI gate: print the diff and exit non-zero when the generated deploy assets drift", false)
76
- .action(function () {
77
- const flags = this.opts();
78
- return (0, cli_runner_1.run)(() => (0, assemble_1.runAssemble)({ ...collectOptions(this), check: Boolean(flags.check) }));
79
- });
80
- program
81
- .command("config")
82
- .description("View or edit the enabled-module list in modules.json without touching project files")
83
- .option("--add <modules...>", "enable module(s), space or comma separated")
84
- .option("--remove <modules...>", "disable module(s), space or comma separated")
85
- .option("--list", "print current configuration", false)
86
- .action(function () {
87
- const flags = this.opts();
88
- return (0, cli_runner_1.run)(() => (0, config_1.runConfig)({
89
- ...collectOptions(this),
90
- add: flags.add,
91
- remove: flags.remove,
92
- list: Boolean(flags.list),
93
- }));
94
- });
95
- program
96
- .command("update")
97
- .description("Update enabled module copies to the registry HEAD commit (blocks on local drift unless --force)")
98
- .option("--all", "select every module with an available update", false)
99
- .option("-y, --yes", "skip confirmation prompts", false)
100
- .option("--force", "overwrite locally drifted module copies", false)
101
- .option("--keys <moduleKeys...>", "non-interactive module selector (comma or space separated)")
102
- .action(function () {
103
- const flags = this.opts();
104
- return (0, cli_runner_1.run)(() => (0, update_1.runUpdate)({
105
- ...collectOptions(this),
106
- all: Boolean(flags.all),
107
- yes: Boolean(flags.yes),
108
- force: Boolean(flags.force),
109
- keys: (0, update_1.parseKeysFlag)(flags.keys),
110
- }));
111
- });
112
- program
113
- .command("apply")
114
- .description('Non-interactively sync the module set declared in a JSON spec ({"modules": [...]})')
115
- .requiredOption("--config <file>", "path to the declarative apply spec JSON")
116
- .option("--ci", "CI mode marker (apply is always non-interactive)", false)
117
- .action(function () {
118
- const flags = this.opts();
119
- return (0, cli_runner_1.run)(() => (0, apply_1.runApply)({
120
- ...collectOptions(this),
121
- config: flags.config,
122
- ci: Boolean(flags.ci),
123
- }));
124
- });
125
- program
126
- .command("doctor")
127
- .description("Audit the installation: registry pins, copied modules, drift, env and prisma wiring")
128
- .action(function () {
129
- return (0, cli_runner_1.run)(() => (0, doctor_1.runDoctor)(collectOptions(this)));
130
- });
131
- program
132
- .command("status")
133
- .description("Print machine-readable project state as JSON")
134
- .option("--drift", "include content drift against pinned pristine copies", false)
135
- .action(function () {
136
- const flags = this.opts();
137
- return (0, cli_runner_1.run)(() => (0, status_1.runStatus)({ ...collectOptions(this), drift: Boolean(flags.drift) }));
138
- });
139
- program
140
- .command("create <name>")
141
- .description("Scaffold a new project from the basic template")
142
- .option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
143
- .option("--template-ref <ref>", "git ref of newbie-starter to clone the template from")
144
- .option("--no-git-init", "skip 'git init' in the new project", undefined)
145
- .action(function (name) {
146
- const flags = this.opts();
147
- return (0, cli_runner_1.run)(() => (0, create_1.runCreate)({
148
- ...collectOptions(this),
149
- name,
150
- templatePath: flags.templatePath,
151
- templateRef: flags.templateRef,
152
- gitInit: flags.gitInit,
153
- }));
154
- });
155
- program
156
- .command("sync-template [paths...]")
157
- .description("Diff framework-owned template files (ADR-009 ownership registry: main.ts, tsconfig*, nest-cli.json, prisma.config.ts, prisma framework block, .env.example/.gitignore framework blocks, deploy/*) against the template; generated and host-owned files are skipped. Pass path prefixes (e.g. deploy/) to restrict the scope")
158
- .option("--template-path <dir>", "use a local template directory instead of cloning newbie-starter")
159
- .option("--template-ref <ref>", "git ref (e.g. a template tag) of newbie-starter to sync from")
160
- .option("--write", "apply the template version of differing skeleton files", false)
161
- .option("--check", "CI gate: print the diff and exit non-zero when skeleton files drift", false)
162
- .action(function (paths) {
163
- const flags = this.opts();
164
- return (0, cli_runner_1.run)(() => (0, sync_template_1.runSyncTemplate)({
165
- ...collectOptions(this),
166
- templatePath: flags.templatePath,
167
- templateRef: flags.templateRef,
168
- write: Boolean(flags.write),
169
- check: Boolean(flags.check),
170
- paths,
171
- }));
172
- });
173
- program
174
- .command("agent")
175
- .description("Run the module-hub agent: poll the hub with `newbie status`, execute dispatched changes (apply/update), report receipts (requires hub v2; v1 hubs expose no agent-poll route)")
176
- .option("--once", "single pass: drain pending changes, deliver receipts, then exit (CI/cron friendly)", false)
177
- .action(function () {
178
- const flags = this.opts();
179
- return (0, cli_runner_1.run)(() => (0, agent_1.runAgent)({ ...collectOptions(this), once: Boolean(flags.once) }));
180
- });
181
- program
182
- .command("watch [keys...]")
183
- .description("Watch the local newbie-modules registry and sync installed module sources into the project on change")
184
- .option("--all", "watch every registry module instead of only installed ones", false)
185
- .action(function (_keys) {
186
- const flags = this.opts();
187
- return (0, cli_runner_1.run)(() => (0, watch_1.runWatch)({
188
- ...collectOptions(this),
189
- all: Boolean(flags.all),
190
- }));
191
- });
192
- const dev = program
193
- .command("dev")
194
- .description("Registry development commands (run inside the newbie-modules repo, not a consuming project)");
195
- dev
196
- .command("lint")
197
- .description("Enforce the module layering rules (feature -> capability -> infrastructure -> datastore) across registry sources")
198
- .action(function () {
199
- return (0, cli_runner_1.run)(() => (0, lint_1.runDevLint)(collectOptions(this)));
200
- });
201
- program
202
- .command("interactive", { isDefault: true, hidden: true })
203
- .description("Interactive module enable/disable flow (default)")
204
- .action(function () {
205
- return (0, cli_runner_1.run)(() => (0, default_1.runInteractive)(collectOptions(this)));
206
- });
30
+ const program = (0, program_1.buildProgram)();
207
31
  void (async () => {
208
32
  try {
209
33
  await (0, module_cli_1.registerModuleCommands)(program, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,yCAAgC;AAEhC,uCAAkD;AAGzC,wFAHc,iBAAO,OAGd;AAFhB,iDAA0D;AAS1D,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACjD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAGhC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,OAAO,GAAG,IAAA,sBAAY,GAAE,CAAC;AAE/B,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACH,MAAM,IAAA,mCAAsB,EAAC,OAAO,EAAE;YACpC,GAAG,EAAE,aAAa,EAAE;YACpB,MAAM,EAAE,KAAK;YACb,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,IAAA,eAAG,EAAC,iCAAkC,KAAe,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAK,KAAe,CAAC,KAAK,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function parseModuleSelector(input: readonly string[] | undefined): string[] | undefined;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseModuleSelector = parseModuleSelector;
4
+ function parseModuleSelector(input) {
5
+ if (!input || input.length === 0)
6
+ return undefined;
7
+ const keys = input
8
+ .flatMap((chunk) => chunk.split(","))
9
+ .map((key) => key.trim())
10
+ .filter((key) => key.length > 0);
11
+ return [...new Set(keys)];
12
+ }
13
+ //# sourceMappingURL=module-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-selector.js","sourceRoot":"","sources":["../../src/lib/module-selector.ts"],"names":[],"mappings":";;AAKA,kDAOC;AAPD,SAAgB,mBAAmB,CAAC,KAAoC;IACtE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK;SACf,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,10 +1,19 @@
1
+ export interface SinkFinding {
2
+ path: string;
3
+ kind: "missing" | "differs" | "action";
4
+ detail?: string;
5
+ }
1
6
  export interface Sink {
2
7
  readonly cwd: string;
3
8
  readonly dryRun: boolean;
9
+ readonly check: boolean;
10
+ readonly findings: SinkFinding[];
4
11
  writeText(file: string, content: string): Promise<void>;
5
12
  writeJson(file: string, value: unknown): Promise<void>;
6
13
  remove(fileOrDir: string): Promise<void>;
7
14
  copy(fromAbsolute: string, toRelative: string): Promise<void>;
8
15
  run(command: string, args: string[], label?: string): Promise<void>;
9
16
  }
10
- export declare function createSink(cwd: string, dryRun: boolean): Sink;
17
+ export declare function createSink(cwd: string, dryRun: boolean, options?: {
18
+ check?: boolean;
19
+ }): Sink;
package/dist/lib/sink.js CHANGED
@@ -7,15 +7,37 @@ exports.createSink = createSink;
7
7
  const promises_1 = __importDefault(require("node:fs/promises"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const exec_1 = require("./exec");
10
- function createSink(cwd, dryRun) {
10
+ async function readOrNull(absolutePath) {
11
+ try {
12
+ return await promises_1.default.readFile(absolutePath, "utf8");
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ }
18
+ function createSink(cwd, dryRun, options = {}) {
11
19
  const resolve = (file) => node_path_1.default.resolve(cwd, file);
20
+ const check = Boolean(options.check);
21
+ const findings = [];
12
22
  const plan = (message) => {
13
23
  console.info(`[dry-run] ${message}`);
14
24
  };
25
+ const recordAction = (target, detail) => {
26
+ findings.push({ path: target, kind: "action", detail });
27
+ };
15
28
  return {
16
29
  cwd,
17
- dryRun,
30
+ dryRun: dryRun || check,
31
+ check,
32
+ findings,
18
33
  async writeText(file, content) {
34
+ if (check) {
35
+ const current = await readOrNull(resolve(file));
36
+ if (current !== content) {
37
+ findings.push({ path: file, kind: current === null ? "missing" : "differs" });
38
+ }
39
+ return;
40
+ }
19
41
  if (dryRun) {
20
42
  plan(`write ${file} (${content.length} bytes)`);
21
43
  return;
@@ -28,6 +50,15 @@ function createSink(cwd, dryRun) {
28
50
  await this.writeText(file, `${JSON.stringify(value, null, 2)}\n`);
29
51
  },
30
52
  async remove(fileOrDir) {
53
+ if (check) {
54
+ try {
55
+ await promises_1.default.stat(resolve(fileOrDir));
56
+ recordAction(fileOrDir, `remove ${fileOrDir}`);
57
+ }
58
+ catch {
59
+ }
60
+ return;
61
+ }
31
62
  if (dryRun) {
32
63
  plan(`remove ${fileOrDir}`);
33
64
  return;
@@ -35,6 +66,10 @@ function createSink(cwd, dryRun) {
35
66
  await promises_1.default.rm(resolve(fileOrDir), { recursive: true, force: true });
36
67
  },
37
68
  async copy(fromAbsolute, toRelative) {
69
+ if (check) {
70
+ recordAction(toRelative, `copy ${node_path_1.default.basename(fromAbsolute)} -> ${toRelative}`);
71
+ return;
72
+ }
38
73
  if (dryRun) {
39
74
  plan(`copy ${node_path_1.default.basename(fromAbsolute)} -> ${toRelative}`);
40
75
  return;
@@ -44,7 +79,11 @@ function createSink(cwd, dryRun) {
44
79
  await promises_1.default.mkdir(node_path_1.default.dirname(target), { recursive: true });
45
80
  await promises_1.default.cp(fromAbsolute, target, { recursive: true });
46
81
  },
47
- async run(command, args, _label) {
82
+ async run(command, args, label) {
83
+ if (check) {
84
+ recordAction(label ?? `${command} ${args.join(" ")}`.trim(), label ?? `${command} ${args.join(" ")}`.trim());
85
+ return;
86
+ }
48
87
  if (dryRun) {
49
88
  plan(`${command} ${args.join(" ")}`.trim());
50
89
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/lib/sink.ts"],"names":[],"mappings":";;;;;AAoBA,gCAoDC;AAxED,gEAAkC;AAClC,0DAA6B;AAE7B,iCAAkC;AAiBlC,SAAgB,UAAU,CAAC,GAAW,EAAE,MAAe;IACrD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO;QACL,GAAG;QACH,MAAM;QAEN,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS,IAAI,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,KAAc;YAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,SAAiB;YAC5B,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,kBAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,YAAoB,EAAE,UAAkB;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,mBAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,kBAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,kBAAE,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,IAAc,EAAE,MAAe;YACxD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,MAAM,IAAA,eAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/lib/sink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const VERSION: string;
3
+ export declare function buildProgram(): Command;