@devbie/newbie-cli 0.1.0-stage.0 → 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.
Files changed (109) hide show
  1. package/README.md +244 -0
  2. package/dist/assemble/assets.js.map +1 -1
  3. package/dist/assemble/dependencies.js +20 -4
  4. package/dist/assemble/dependencies.js.map +1 -1
  5. package/dist/assemble/env.js.map +1 -1
  6. package/dist/assemble/module-graph.d.ts +14 -0
  7. package/dist/assemble/module-graph.js +51 -0
  8. package/dist/assemble/module-graph.js.map +1 -0
  9. package/dist/assemble/modules-copy.js +1 -3
  10. package/dist/assemble/modules-copy.js.map +1 -1
  11. package/dist/assemble/modules.js +2 -6
  12. package/dist/assemble/modules.js.map +1 -1
  13. package/dist/assemble/pipeline.d.ts +5 -0
  14. package/dist/assemble/pipeline.js +58 -12
  15. package/dist/assemble/pipeline.js.map +1 -1
  16. package/dist/assemble/schema.js.map +1 -1
  17. package/dist/commands/agent.d.ts +5 -1
  18. package/dist/commands/agent.js +214 -7
  19. package/dist/commands/agent.js.map +1 -1
  20. package/dist/commands/apply.d.ts +1 -0
  21. package/dist/commands/apply.js +1 -0
  22. package/dist/commands/apply.js.map +1 -1
  23. package/dist/commands/config.js +39 -13
  24. package/dist/commands/config.js.map +1 -1
  25. package/dist/commands/create.js +1 -7
  26. package/dist/commands/create.js.map +1 -1
  27. package/dist/commands/default.js +1 -2
  28. package/dist/commands/default.js.map +1 -1
  29. package/dist/commands/dev/lint.d.ts +3 -0
  30. package/dist/commands/dev/lint.js +82 -0
  31. package/dist/commands/dev/lint.js.map +1 -0
  32. package/dist/commands/doctor.js +11 -14
  33. package/dist/commands/doctor.js.map +1 -1
  34. package/dist/commands/install.js +4 -1
  35. package/dist/commands/install.js.map +1 -1
  36. package/dist/commands/status.d.ts +27 -0
  37. package/dist/commands/status.js +9 -8
  38. package/dist/commands/status.js.map +1 -1
  39. package/dist/commands/update-template.js.map +1 -1
  40. package/dist/commands/update.d.ts +2 -0
  41. package/dist/commands/update.js +51 -6
  42. package/dist/commands/update.js.map +1 -1
  43. package/dist/commands/watch.d.ts +5 -0
  44. package/dist/commands/watch.js +128 -0
  45. package/dist/commands/watch.js.map +1 -0
  46. package/dist/constants/paths.d.ts +1 -0
  47. package/dist/constants/paths.js +3 -5
  48. package/dist/constants/paths.js.map +1 -1
  49. package/dist/core/assets.js.map +1 -1
  50. package/dist/core/dependency-plan.d.ts +9 -0
  51. package/dist/core/dependency-plan.js +31 -0
  52. package/dist/core/dependency-plan.js.map +1 -1
  53. package/dist/core/drift.js.map +1 -1
  54. package/dist/core/env-file.js +2 -5
  55. package/dist/core/env-file.js.map +1 -1
  56. package/dist/core/layer-lint.d.ts +15 -0
  57. package/dist/core/layer-lint.js +165 -0
  58. package/dist/core/layer-lint.js.map +1 -0
  59. package/dist/core/module-closure.d.ts +18 -0
  60. package/dist/core/module-closure.js +71 -0
  61. package/dist/core/module-closure.js.map +1 -0
  62. package/dist/core/module-manifest.d.ts +4 -0
  63. package/dist/core/module-manifest.js +24 -0
  64. package/dist/core/module-manifest.js.map +1 -1
  65. package/dist/core/modules-state.js +3 -9
  66. package/dist/core/modules-state.js.map +1 -1
  67. package/dist/core/prisma-schema.js +1 -4
  68. package/dist/core/prisma-schema.js.map +1 -1
  69. package/dist/core/semver.js +1 -3
  70. package/dist/core/semver.js.map +1 -1
  71. package/dist/core/template-sync.js +1 -2
  72. package/dist/core/template-sync.js.map +1 -1
  73. package/dist/core/unified-diff.js +1 -4
  74. package/dist/core/unified-diff.js.map +1 -1
  75. package/dist/index.js +71 -61
  76. package/dist/index.js.map +1 -1
  77. package/dist/lib/check.js.map +1 -1
  78. package/dist/lib/cli-runner.d.ts +1 -0
  79. package/dist/lib/cli-runner.js +26 -0
  80. package/dist/lib/cli-runner.js.map +1 -0
  81. package/dist/lib/drift.js +1 -8
  82. package/dist/lib/drift.js.map +1 -1
  83. package/dist/lib/exec.js.map +1 -1
  84. package/dist/lib/fs-util.js.map +1 -1
  85. package/dist/lib/issues.js.map +1 -1
  86. package/dist/lib/loading.js.map +1 -1
  87. package/dist/lib/module-cli.d.ts +13 -0
  88. package/dist/lib/module-cli.js +65 -0
  89. package/dist/lib/module-cli.js.map +1 -0
  90. package/dist/lib/module-install.js.map +1 -1
  91. package/dist/lib/modules-state.js.map +1 -1
  92. package/dist/lib/registry.js +5 -40
  93. package/dist/lib/registry.js.map +1 -1
  94. package/dist/lib/version.d.ts +1 -1
  95. package/dist/lib/version.js +2 -16
  96. package/dist/lib/version.js.map +1 -1
  97. package/dist/public.d.ts +9 -0
  98. package/dist/public.js +21 -0
  99. package/dist/public.js.map +1 -0
  100. package/package.json +7 -5
  101. package/dist/commands/check.d.ts +0 -2
  102. package/dist/commands/check.js +0 -37
  103. package/dist/commands/check.js.map +0 -1
  104. package/dist/commands/env.d.ts +0 -7
  105. package/dist/commands/env.js +0 -324
  106. package/dist/commands/env.js.map +0 -1
  107. package/dist/lib/env-tool-config.d.ts +0 -17
  108. package/dist/lib/env-tool-config.js +0 -32
  109. package/dist/lib/env-tool-config.js.map +0 -1
@@ -10,6 +10,7 @@ const figlet_1 = __importDefault(require("figlet"));
10
10
  const colorette_1 = require("colorette");
11
11
  const paths_1 = require("../constants/paths");
12
12
  const drift_1 = require("../core/drift");
13
+ const module_closure_1 = require("../core/module-closure");
13
14
  const modules_state_1 = require("../core/modules-state");
14
15
  const prisma_schema_1 = require("../core/prisma-schema");
15
16
  const check_1 = require("../lib/check");
@@ -56,13 +57,10 @@ async function runDoctor(options) {
56
57
  if (!(await (0, fs_util_1.fileExists)(cwd, paths_1.MODULES_CONFIG_TS))) {
57
58
  error(`Generated ${paths_1.MODULES_CONFIG_TS} is missing; run 'newbie install'.`);
58
59
  }
60
+ const moduleGraph = new Map();
59
61
  const missingEnv = await (0, check_1.collectMissingEnv)(cwd, keys);
60
- const datasourceContent = await promises_1.default
61
- .readFile(node_path_1.default.resolve(cwd, paths_1.PRISMA_SCHEMA_MAIN), "utf8")
62
- .catch(() => null);
63
- const datasourceSchemas = datasourceContent
64
- ? (0, prisma_schema_1.readDatasourceSchemas)(datasourceContent)
65
- : null;
62
+ const datasourceContent = await promises_1.default.readFile(node_path_1.default.resolve(cwd, paths_1.PRISMA_SCHEMA_MAIN), "utf8").catch(() => null);
63
+ const datasourceSchemas = datasourceContent ? (0, prisma_schema_1.readDatasourceSchemas)(datasourceContent) : null;
66
64
  if (datasourceContent && datasourceSchemas === null) {
67
65
  notice(`Cannot parse schemas array in ${paths_1.PRISMA_SCHEMA_MAIN}.`);
68
66
  }
@@ -77,12 +75,12 @@ async function runDoctor(options) {
77
75
  error(`${label}: newbie.module.json missing or unreadable.`);
78
76
  continue;
79
77
  }
78
+ moduleGraph.set(key, manifest.moduleDependencies ?? []);
80
79
  if (manifest.schema) {
81
80
  if (!(await (0, fs_util_1.fileExists)(cwd, node_path_1.default.posix.join(paths_1.PRISMA_SCHEMA_MODELS_DIR, `${key}.prisma`)))) {
82
81
  error(`${label}: ${paths_1.PRISMA_SCHEMA_MODELS_DIR}/${key}.prisma missing; run 'newbie install'.`);
83
82
  }
84
- if (datasourceSchemas &&
85
- !datasourceSchemas.includes((0, prisma_schema_1.moduleSchemaNamespace)(key))) {
83
+ if (datasourceSchemas && !datasourceSchemas.includes((0, prisma_schema_1.moduleSchemaNamespace)(key))) {
86
84
  error(`${label}: datasource schemas lacks '${(0, prisma_schema_1.moduleSchemaNamespace)(key)}'.`);
87
85
  }
88
86
  }
@@ -90,9 +88,7 @@ async function runDoctor(options) {
90
88
  error(`${label}: missing env ${missingEnv[key].join(", ")}`);
91
89
  }
92
90
  const record = state.modules.find((entry) => entry.key === key);
93
- if (registry?.sourceCommit &&
94
- record?.sourceCommit &&
95
- record.sourceCommit !== registry.sourceCommit) {
91
+ if (registry?.sourceCommit && record?.sourceCommit && record.sourceCommit !== registry.sourceCommit) {
96
92
  notice(`${label}: update available (${record.sourceCommit.slice(0, 7)} -> ${registry.sourceCommit.slice(0, 7)}); run 'newbie update'.`);
97
93
  }
98
94
  if (registry && record?.sourceCommit) {
@@ -110,6 +106,9 @@ async function runDoctor(options) {
110
106
  }
111
107
  }
112
108
  }
109
+ for (const { module, dependency } of (0, module_closure_1.findMissingEnabledModules)(keys, moduleGraph)) {
110
+ error(`'${dependency}' must be enabled because module '${module}' declares it as a module dependency; run 'newbie install'.`);
111
+ }
113
112
  const copied = new Set((await promises_1.default
114
113
  .readdir(node_path_1.default.resolve(cwd, paths_1.MODULES_DIR), { withFileTypes: true })
115
114
  .catch(() => []))
@@ -117,9 +116,7 @@ async function runDoctor(options) {
117
116
  .map((dirent) => dirent.name));
118
117
  for (const dir of copied) {
119
118
  if (!keys.includes(dir)) {
120
- const isRegistryModule = registry
121
- ? (await (0, registry_1.readRegistryModule)(registry.root, dir)) !== null
122
- : false;
119
+ const isRegistryModule = registry ? (await (0, registry_1.readRegistryModule)(registry.root, dir)) !== null : false;
123
120
  if (isRegistryModule) {
124
121
  notice(`Extra module directory '${dir}' not declared in ${paths_1.MODULES_JSON}; run 'newbie install' to remove it.`);
125
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,10 @@ const shared_1 = require("./shared");
8
8
  async function runInstall(options) {
9
9
  const { ctx } = await (0, shared_1.createContext)(options, { fetch: true });
10
10
  const plan = await (0, pipeline_1.planReconcile)(ctx);
11
- const { installed, uninstalled } = plan;
11
+ const { installed, uninstalled, closureAdded } = plan;
12
+ for (const addition of closureAdded ?? []) {
13
+ console.info((0, colorette_1.cyan)(`[info] ${addition.key} is required by ${addition.requiredBy.join(", ")} and will also be enabled.`));
14
+ }
12
15
  if (installed.length === 0 && uninstalled.length === 0) {
13
16
  await (0, pipeline_1.applyPlanned)(ctx, plan);
14
17
  ctx.issues.assertEmpty();
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;AAOA,gCA6CC;AApDD,+CAA2C;AAC3C,yCAAuD;AAEvD,mDAAmE;AAEnE,qCAAwD;AAEjD,KAAK,UAAU,UAAU,CAC9B,OAA0C;IAE1C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAIxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CACV,IAAA,iBAAK,EAAC,gEAAgE,CAAC,CACxE,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,GAAG,0BAA0B,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACrH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC7B,OAAO;YACP,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,IAAA,iBAAK,EAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;AAOA,gCA+CC;AAtDD,+CAA2C;AAC3C,yCAAuD;AAEvD,mDAAmE;AAEnE,qCAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,OAA0C;IACzE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEtD,KAAK,MAAM,QAAQ,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,IAAA,gBAAI,EAAC,UAAU,QAAQ,CAAC,GAAG,mBAAmB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAC1G,CAAC;IACJ,CAAC;IAID,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,gEAAgE,CAAC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,GAAG,0BAA0B,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACrH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC7B,OAAO;YACP,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,IAAA,iBAAK,EAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,4 +1,31 @@
1
+ import { DriftReport } from "../core/drift";
1
2
  import { GlobalOptions } from "./shared";
3
+ export interface StatusModuleEntry {
4
+ key: string;
5
+ version: string | null;
6
+ sourceCommit: string | null;
7
+ localPatches: string[];
8
+ installed: boolean;
9
+ hasSchema: boolean;
10
+ missingEnv: string[];
11
+ updateAvailable: boolean;
12
+ drift?: DriftReport;
13
+ }
14
+ export interface StatusReport {
15
+ cwd: string;
16
+ registry: {
17
+ available: true;
18
+ local: boolean;
19
+ path: string;
20
+ sourceCommit: string | null;
21
+ } | {
22
+ available: false;
23
+ };
24
+ modules: StatusModuleEntry[];
25
+ }
26
+ export declare function collectStatus(cwd: string, options?: {
27
+ drift?: boolean;
28
+ }): Promise<StatusReport>;
2
29
  export declare function runStatus(options: GlobalOptions & {
3
30
  drift?: boolean;
4
31
  }): Promise<void>;
@@ -3,6 +3,7 @@ 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.collectStatus = collectStatus;
6
7
  exports.runStatus = runStatus;
7
8
  const node_path_1 = __importDefault(require("node:path"));
8
9
  const paths_1 = require("../constants/paths");
@@ -14,8 +15,7 @@ const fs_util_1 = require("../lib/fs-util");
14
15
  const module_install_1 = require("../lib/module-install");
15
16
  const modules_state_2 = require("../lib/modules-state");
16
17
  const registry_1 = require("../lib/registry");
17
- async function runStatus(options) {
18
- const cwd = node_path_1.default.resolve(options.cwd);
18
+ async function collectStatus(cwd, options) {
19
19
  const state = await (0, modules_state_2.readModulesState)(cwd);
20
20
  const registry = await (0, registry_1.resolveRegistry)({ fetch: false });
21
21
  const keys = (0, modules_state_1.moduleKeys)(state);
@@ -33,11 +33,9 @@ async function runStatus(options) {
33
33
  installed,
34
34
  hasSchema: Boolean(manifest?.schema),
35
35
  missingEnv: missingEnv[key] ?? [],
36
- updateAvailable: Boolean(registry?.sourceCommit &&
37
- record.sourceCommit &&
38
- registry.sourceCommit !== record.sourceCommit),
36
+ updateAvailable: Boolean(registry?.sourceCommit && record.sourceCommit && registry.sourceCommit !== record.sourceCommit),
39
37
  };
40
- if (options.drift && installed && registry && record.sourceCommit) {
38
+ if (options?.drift && installed && registry && record.sourceCommit) {
41
39
  const pristine = await (0, drift_2.snapshotPristineModule)(registry, key, record.sourceCommit);
42
40
  if (pristine) {
43
41
  entry.drift = (0, drift_1.diffSnapshots)(await (0, drift_2.snapshotInstalledModule)(cwd, key), pristine);
@@ -45,7 +43,7 @@ async function runStatus(options) {
45
43
  }
46
44
  modules.push(entry);
47
45
  }
48
- const output = {
46
+ return {
49
47
  cwd,
50
48
  registry: registry
51
49
  ? {
@@ -57,6 +55,9 @@ async function runStatus(options) {
57
55
  : { available: false },
58
56
  modules,
59
57
  };
60
- console.info(JSON.stringify(output, null, 2));
58
+ }
59
+ async function runStatus(options) {
60
+ const report = await collectStatus(node_path_1.default.resolve(options.cwd), { drift: options.drift });
61
+ console.info(JSON.stringify(report, null, 2));
61
62
  }
62
63
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;AAmBA,8BAwEC;AA3FD,0DAA6B;AAG7B,8CAAiD;AACjD,yCAA8C;AAC9C,yDAAmD;AACnD,wCAAiD;AACjD,wCAA+E;AAC/E,4CAA4C;AAC5C,0DAA8D;AAC9D,wDAAwD;AACxD,8CAAkD;AAQ3C,KAAK,UAAU,SAAS,CAC7B,OAA4C;IAE5C,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAgB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAA,0BAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAatD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,GAAG,mBAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,IAAA,sCAAqB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1E,MAAM,KAAK,GAAiB;YAC1B,GAAG;YACH,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YACpC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;YACjC,eAAe,EAAE,OAAO,CACtB,QAAQ,EAAE,YAAY;gBACpB,MAAM,CAAC,YAAY;gBACnB,QAAQ,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAChD;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAsB,EAC3C,QAAQ,EACR,GAAG,EACH,MAAM,CAAC,YAAY,CACpB,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,KAAK,GAAG,IAAA,qBAAa,EACzB,MAAM,IAAA,+BAAuB,EAAC,GAAG,EAAE,GAAG,CAAC,EACvC,QAAQ,CACT,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG;QACb,GAAG;QACH,QAAQ,EAAE,QAAQ;YAChB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC;YACH,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QACxB,OAAO;KACR,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;AAsCA,sCA8CC;AAMD,8BAGC;AA7FD,0DAA6B;AAG7B,8CAAiD;AACjD,yCAA8C;AAC9C,yDAAmD;AACnD,wCAAiD;AACjD,wCAA+E;AAC/E,4CAA4C;AAC5C,0DAA8D;AAC9D,wDAAwD;AACxD,8CAAkD;AA2B3C,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,OAA6B;IAC5E,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAgB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAA,0BAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,GAAG,mBAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,IAAA,sCAAqB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1E,MAAM,KAAK,GAAsB;YAC/B,GAAG;YACH,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YACpC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;YACjC,eAAe,EAAE,OAAO,CACtB,QAAQ,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAC/F;SACF,CAAC;QAEF,IAAI,OAAO,EAAE,KAAK,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAsB,EAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAClF,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,KAAK,GAAG,IAAA,qBAAa,EAAC,MAAM,IAAA,+BAAuB,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,QAAQ;YAChB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC;YACH,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QACxB,OAAO;KACR,CAAC;AACJ,CAAC;AAMM,KAAK,UAAU,SAAS,CAAC,OAA4C;IAC1E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-template.js","sourceRoot":"","sources":["../../src/commands/update-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-template.js","sourceRoot":"","sources":["../../src/commands/update-template.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { GlobalOptions } from "./shared";
2
+ export declare function parseKeysFlag(input: string[] | undefined): string[] | undefined;
2
3
  export declare function runUpdate(options: GlobalOptions & {
3
4
  all?: boolean;
4
5
  yes?: boolean;
5
6
  force?: boolean;
7
+ keys?: string[];
6
8
  }): Promise<void>;
@@ -3,19 +3,31 @@ 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.parseKeysFlag = parseKeysFlag;
6
7
  exports.runUpdate = runUpdate;
7
8
  const figlet_1 = __importDefault(require("figlet"));
8
9
  const prompts_1 = require("@inquirer/prompts");
9
10
  const colorette_1 = require("colorette");
10
11
  const pipeline_1 = require("../assemble/pipeline");
12
+ const module_graph_1 = require("../assemble/module-graph");
11
13
  const drift_1 = require("../core/drift");
12
14
  const modules_state_1 = require("../core/modules-state");
13
15
  const drift_2 = require("../lib/drift");
14
16
  const fs_util_1 = require("../lib/fs-util");
15
17
  const paths_1 = require("../constants/paths");
16
18
  const modules_state_2 = require("../lib/modules-state");
19
+ const errors_1 = require("../lib/errors");
17
20
  const shared_1 = require("./shared");
18
- const short = (commit) => commit ? commit.slice(0, 7) : "unknown";
21
+ const short = (commit) => (commit ? commit.slice(0, 7) : "unknown");
22
+ function parseKeysFlag(input) {
23
+ if (!input)
24
+ return undefined;
25
+ const keys = input
26
+ .flatMap((chunk) => chunk.split(","))
27
+ .map((key) => key.trim())
28
+ .filter((key) => key.length > 0);
29
+ return [...new Set(keys)];
30
+ }
19
31
  async function runUpdate(options) {
20
32
  console.info(figlet_1.default.textSync("Newbie", {
21
33
  font: "Epic",
@@ -81,7 +93,28 @@ async function runUpdate(options) {
81
93
  return;
82
94
  }
83
95
  let selected;
84
- if (options.all || options.dryRun) {
96
+ if (options.keys) {
97
+ const enabled = new Set(keys);
98
+ const unknown = options.keys.filter((key) => !enabled.has(key));
99
+ if (unknown.length > 0) {
100
+ throw new errors_1.CliError(`Unknown or disabled module(s) in --keys: ${unknown.join(", ")}. Enabled: ${keys.join(", ")}`);
101
+ }
102
+ const updatableKeys = new Set(updatable.map((result) => result.key));
103
+ for (const key of options.keys) {
104
+ if (!updatableKeys.has(key)) {
105
+ const inspection = inspections.find((result) => result.key === key);
106
+ if (inspection?.status === "up-to-date") {
107
+ console.info((0, colorette_1.green)(`[info] ${key}: already up to date.`));
108
+ }
109
+ }
110
+ }
111
+ selected = updatable.filter((result) => options.keys.includes(result.key));
112
+ if (selected.length === 0) {
113
+ console.info((0, colorette_1.green)("\n[info] Nothing to update for the given --keys.\n"));
114
+ return;
115
+ }
116
+ }
117
+ else if (options.all || options.dryRun) {
85
118
  selected = updatable;
86
119
  }
87
120
  else {
@@ -101,9 +134,22 @@ async function runUpdate(options) {
101
134
  console.info("\n[info] No modules selected.\n");
102
135
  return;
103
136
  }
137
+ const selectedKeys = selected.map((result) => result.key);
138
+ const closure = await (0, module_graph_1.expandRegistryClosure)(ctx.registry.root, selectedKeys, {
139
+ satisfied: new Set(keys),
140
+ });
141
+ const missing = (0, module_graph_1.describeMissingDependencies)(closure);
142
+ if (missing.length > 0) {
143
+ throw new errors_1.CliError(`Cannot resolve module dependencies:\n - ${missing.join("\n - ")}`);
144
+ }
145
+ const addedKeys = [...selectedKeys, ...closure.added];
146
+ const enabledKeys = [...keys, ...closure.added.filter((key) => !keys.includes(key))];
147
+ for (const key of closure.added) {
148
+ console.info((0, colorette_1.cyan)(`[info] ${key} is a new module dependency and will also be enabled.`));
149
+ }
104
150
  if (!options.yes && !options.dryRun) {
105
151
  const confirmed = await (0, prompts_1.select)({
106
- message: `Do you want to UPDATE ${(0, colorette_1.cyan)(selected.map((result) => result.key).join(", "))}?`,
152
+ message: `Do you want to UPDATE ${(0, colorette_1.cyan)(addedKeys.join(", "))}?`,
107
153
  choices: [
108
154
  { name: "Yes", value: "yes" },
109
155
  { name: "No", value: "no" },
@@ -114,11 +160,10 @@ async function runUpdate(options) {
114
160
  return;
115
161
  }
116
162
  }
117
- const selectedKeys = selected.map((result) => result.key);
118
163
  await (0, pipeline_1.runSteps)(ctx, {
119
- added: selectedKeys,
164
+ added: addedKeys,
120
165
  removed: [],
121
- enabledKeys: keys,
166
+ enabledKeys,
122
167
  });
123
168
  if (!sink.dryRun) {
124
169
  await (0, modules_state_2.writeModulesState)(cwd, sink, ctx.state);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;AA8BA,8BAqJC;AAnLD,oDAA4B;AAC5B,+CAAqD;AACrD,yCAA+D;AAE/D,mDAAgD;AAChD,yCAA6D;AAC7D,yDAAmD;AACnD,wCAGsB;AACtB,4CAA4C;AAC5C,8CAAiD;AACjD,wDAAyD;AAEzD,qCAAwD;AAYxD,MAAM,KAAK,GAAG,CAAC,MAAqB,EAAU,EAAE,CAC9C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEnC,KAAK,UAAU,SAAS,CAC7B,OAIC;IAED,OAAO,CAAC,IAAI,CACV,gBAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,IAAI;KACtB,CAAC,CACH,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAE3C,MAAM,IAAI,GAAG,IAAA,0BAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC3C,MAAM,WAAW,GAAuB,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC;QAChD,MAAM,IAAI,GAAqB;YAC7B,GAAG;YACH,MAAM,EAAE,YAAY;YACpB,UAAU;YACV,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,CAAC,MAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,GAAG,mBAAW,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAC9D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAGD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAsB,EAC3C,QAAQ,EACR,GAAG,EACH,UAAU,CACX,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,IAAA,qBAAa,EACzB,MAAM,IAAA,+BAAuB,EAAC,GAAG,EAAE,GAAG,CAAC,EACvC,QAAQ,CACT,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,IAAI;wBACP,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,IAAA,qBAAa,EAAC,KAAK,CAAC;qBAC/B,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,UAAU,MAAM,CAAC,GAAG,4CAA4C,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CACV,IAAA,kBAAM,EACJ,UAAU,MAAM,CAAC,GAAG,6BAA6B,MAAM,CAAC,QAAQ,CAAC,MAAM,8CAA8C,CACtH,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAClC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,CACjD,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,wCAAwC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAClC,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,MAAM,IAAA,kBAAQ,EAAC;YAClC,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,GAAG;gBACjB,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAA,mBAAO,EAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,IAAA,gBAAI,EACjE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CACvB,EAAE;gBACH,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACrC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAClC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC7B,OAAO,EAAE,yBAAyB,IAAA,gBAAI,EACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChD,GAAG;YACJ,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,IAAA,mBAAQ,EAAC,GAAG,EAAE;QAClB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAA,iCAAiB,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,IAAA,iBAAK,EAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface WatchOptions {
2
+ cwd: string;
3
+ all?: boolean;
4
+ }
5
+ export declare function runWatch(options: WatchOptions): Promise<void>;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runWatch = runWatch;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const colorette_1 = require("colorette");
11
+ const paths_1 = require("../constants/paths");
12
+ const errors_1 = require("../lib/errors");
13
+ const registry_1 = require("../lib/registry");
14
+ async function installedModuleKeys(projectRoot) {
15
+ const dir = node_path_1.default.join(projectRoot, paths_1.MODULES_DIR);
16
+ try {
17
+ const entries = await promises_1.default.readdir(dir, { withFileTypes: true });
18
+ const keys = [];
19
+ for (const entry of entries) {
20
+ if (!entry.isDirectory())
21
+ continue;
22
+ const hasManifest = await promises_1.default
23
+ .access(node_path_1.default.join(dir, entry.name, paths_1.MODULE_MANIFEST_FILE))
24
+ .then(() => true)
25
+ .catch(() => false);
26
+ if (hasManifest)
27
+ keys.push(entry.name);
28
+ }
29
+ return keys.sort();
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ }
35
+ async function syncModule(projectRoot, registry, key) {
36
+ const source = (0, registry_1.moduleRootInRegistry)(registry.root, key);
37
+ const target = node_path_1.default.join(projectRoot, paths_1.MODULES_DIR, key);
38
+ await promises_1.default.rm(target, { recursive: true, force: true });
39
+ await promises_1.default.mkdir(node_path_1.default.dirname(target), { recursive: true });
40
+ await promises_1.default.cp(source, target, { recursive: true });
41
+ }
42
+ function debounce(fn, delay) {
43
+ let timer = null;
44
+ return (...args) => {
45
+ if (timer)
46
+ clearTimeout(timer);
47
+ timer = setTimeout(() => fn(...args), delay);
48
+ };
49
+ }
50
+ async function runWatch(options) {
51
+ const projectRoot = node_path_1.default.resolve(options.cwd);
52
+ const registry = await (0, registry_1.resolveRegistry)({ fetch: false });
53
+ if (!registry) {
54
+ throw new errors_1.CliError("watch requires a local newbie-modules checkout. " +
55
+ "Set NEWBIE_MODULES_PATH or place the repo at ~/src/newbie-modules.");
56
+ }
57
+ if (!registry.local) {
58
+ throw new errors_1.CliError("watch only works with a local registry checkout, not the cached clone. " +
59
+ "Set NEWBIE_MODULES_PATH to a local newbie-modules working tree.");
60
+ }
61
+ const installed = await installedModuleKeys(projectRoot);
62
+ const watchKeys = options.all ? await listRegistryKeys(registry.root) : installed;
63
+ if (watchKeys.length === 0) {
64
+ console.info((0, colorette_1.yellow)(options.all
65
+ ? "No modules found in the registry."
66
+ : "No modules installed in this project. Run `newbie install` first, or use --all to watch every registry module."));
67
+ return;
68
+ }
69
+ console.info((0, colorette_1.cyan)(`Watching ${watchKeys.length} module(s) for changes in ${registry.root}…`));
70
+ console.info(` ${watchKeys.join(", ")}`);
71
+ console.info("Press Ctrl+C to stop.\n");
72
+ const watchers = [];
73
+ for (const key of watchKeys) {
74
+ const sourceDir = (0, registry_1.moduleRootInRegistry)(registry.root, key);
75
+ try {
76
+ await promises_1.default.access(sourceDir);
77
+ }
78
+ catch {
79
+ console.warn((0, colorette_1.yellow)(` ! ${key}: not found in registry, skipping`));
80
+ continue;
81
+ }
82
+ const sync = debounce(() => {
83
+ syncModule(projectRoot, registry, key)
84
+ .then(() => {
85
+ console.info(`${(0, colorette_1.green)("↻")} ${key} synced`);
86
+ })
87
+ .catch((err) => {
88
+ console.warn((0, colorette_1.yellow)(` ! ${key}: sync failed: ${err.message}`));
89
+ });
90
+ }, 150);
91
+ const watcher = node_fs_1.default.watch(sourceDir, { recursive: true }, (_event, filename) => {
92
+ if (filename)
93
+ sync();
94
+ });
95
+ watcher.on("error", (err) => {
96
+ console.warn((0, colorette_1.yellow)(` ! watcher for ${key} error: ${err.message}`));
97
+ });
98
+ watchers.push(watcher);
99
+ }
100
+ process.on("SIGINT", () => {
101
+ for (const w of watchers)
102
+ w.close();
103
+ console.info("\nStopped watch.");
104
+ process.exit(0);
105
+ });
106
+ }
107
+ async function listRegistryKeys(registryRoot) {
108
+ const dir = node_path_1.default.resolve(registryRoot, "packages", "modules");
109
+ try {
110
+ const entries = await promises_1.default.readdir(dir, { withFileTypes: true });
111
+ const keys = [];
112
+ for (const entry of entries) {
113
+ if (!entry.isDirectory())
114
+ continue;
115
+ const hasManifest = await promises_1.default
116
+ .access(node_path_1.default.join(dir, entry.name, paths_1.MODULE_MANIFEST_FILE))
117
+ .then(() => true)
118
+ .catch(() => false);
119
+ if (hasManifest)
120
+ keys.push(entry.name);
121
+ }
122
+ return keys.sort();
123
+ }
124
+ catch {
125
+ return [];
126
+ }
127
+ }
128
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,6 @@ export declare const PRISMA_SCHEMA_MODELS_DIR = "prisma/models";
8
8
  export declare const ENV_PATH = ".env";
9
9
  export declare const ENV_EXAMPLE_PATH = ".env.example";
10
10
  export declare const NEST_CLI_JSON = "nest-cli.json";
11
+ export declare const PACKAGE_JSON_PATH = "package.json";
11
12
  export declare const REGISTRY_MODULES_DIR = "packages/modules";
12
13
  export declare const ENV_TOOL_CONFIG_CANDIDATES: string[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENV_TOOL_CONFIG_CANDIDATES = exports.REGISTRY_MODULES_DIR = exports.NEST_CLI_JSON = exports.ENV_EXAMPLE_PATH = exports.ENV_PATH = exports.PRISMA_SCHEMA_MODELS_DIR = exports.PRISMA_SCHEMA_MAIN = exports.MODULE_MANIFEST_FILE = exports.MODULES_CONFIG_TS = exports.MODULES_MODULE_TS = exports.MODULES_DIR = exports.MODULES_JSON = void 0;
3
+ exports.ENV_TOOL_CONFIG_CANDIDATES = exports.REGISTRY_MODULES_DIR = exports.PACKAGE_JSON_PATH = exports.NEST_CLI_JSON = exports.ENV_EXAMPLE_PATH = exports.ENV_PATH = exports.PRISMA_SCHEMA_MODELS_DIR = exports.PRISMA_SCHEMA_MAIN = exports.MODULE_MANIFEST_FILE = exports.MODULES_CONFIG_TS = exports.MODULES_MODULE_TS = exports.MODULES_DIR = exports.MODULES_JSON = void 0;
4
4
  exports.MODULES_JSON = "modules.json";
5
5
  exports.MODULES_DIR = "src/modules";
6
6
  exports.MODULES_MODULE_TS = "src/modules/modules.module.ts";
@@ -11,9 +11,7 @@ exports.PRISMA_SCHEMA_MODELS_DIR = "prisma/models";
11
11
  exports.ENV_PATH = ".env";
12
12
  exports.ENV_EXAMPLE_PATH = ".env.example";
13
13
  exports.NEST_CLI_JSON = "nest-cli.json";
14
+ exports.PACKAGE_JSON_PATH = "package.json";
14
15
  exports.REGISTRY_MODULES_DIR = "packages/modules";
15
- exports.ENV_TOOL_CONFIG_CANDIDATES = [
16
- ".newbie/env.config.json",
17
- ".newbie-env-tool/.config/config.json",
18
- ];
16
+ exports.ENV_TOOL_CONFIG_CANDIDATES = [".newbie/env.config.json", ".newbie-env-tool/.config/config.json"];
19
17
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG,cAAc,CAAC;AAE9B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AACpD,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AAGpD,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAE5C,QAAA,kBAAkB,GAAG,sBAAsB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAE3C,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,eAAe,CAAC;AAGhC,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAG1C,QAAA,0BAA0B,GAAG;IACxC,yBAAyB;IACzB,sCAAsC;CACvC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":";;;AAOa,QAAA,YAAY,GAAG,cAAc,CAAC;AAE9B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AACpD,QAAA,iBAAiB,GAAG,+BAA+B,CAAC;AAGpD,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAE5C,QAAA,kBAAkB,GAAG,sBAAsB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAE3C,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AAGnC,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAG1C,QAAA,0BAA0B,GAAG,CAAC,yBAAyB,EAAE,sCAAsC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/core/assets.ts"],"names":[],"mappings":";;AAOA,kCAKC;AAGD,8BAWC;AAGD,oCAOC;AAGD,oCAOC;AAvCD,SAAgB,WAAW,CAAC,CAAY,EAAE,CAAY;IACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;AAC9E,CAAC;AAGD,SAAgB,SAAS,CACvB,QAAqB,EACrB,SAAsB;IAEtB,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,SAAgB,YAAY,CAC1B,QAAqB,EACrB,QAAqB;IAErB,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAGD,SAAgB,YAAY,CAAC,MAAmB;IAC9C,OAAO,MAAM;SACV,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CACL,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACpB,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAC9D,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/core/assets.ts"],"names":[],"mappings":";;AAOA,kCAKC;AAGD,8BAQC;AAGD,oCAEC;AAGD,oCAIC;AA5BD,SAAgB,WAAW,CAAC,CAAY,EAAE,CAAY;IACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;AAC9E,CAAC;AAGD,SAAgB,SAAS,CAAC,QAAqB,EAAE,SAAsB;IACrE,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,SAAgB,YAAY,CAAC,QAAqB,EAAE,QAAqB;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAGD,SAAgB,YAAY,CAAC,MAAmB;IAC9C,OAAO,MAAM;SACV,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAChG,CAAC"}
@@ -10,3 +10,12 @@ export declare function buildInstallSpecs(decls: DependencyDecls[]): {
10
10
  dependencies: string[];
11
11
  devDependencies: string[];
12
12
  };
13
+ export interface DependencyConflict {
14
+ name: string;
15
+ ranges: string[];
16
+ }
17
+ export declare function planDependencyInstalls(enabledDecls: DependencyDecls[], installed: DependencyDecls): {
18
+ dependencies: string[];
19
+ devDependencies: string[];
20
+ conflicts: DependencyConflict[];
21
+ };