@gadmin2n/cli 0.0.91 → 0.0.92

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 (36) hide show
  1. package/actions/index.d.ts +1 -1
  2. package/actions/index.js +1 -1
  3. package/actions/self-update.action.d.ts +5 -0
  4. package/actions/self-update.action.js +93 -0
  5. package/actions/update.action.d.ts +2 -0
  6. package/actions/update.action.js +945 -6
  7. package/commands/command.loader.js +2 -2
  8. package/commands/{template.command.d.ts → self-update.command.d.ts} +1 -1
  9. package/commands/self-update.command.js +35 -0
  10. package/commands/update.command.js +25 -8
  11. package/lib/install-manager.d.ts +48 -0
  12. package/lib/install-manager.js +125 -0
  13. package/lib/template-merge/config-loader.d.ts +15 -0
  14. package/lib/template-merge/config-loader.js +38 -0
  15. package/lib/template-merge/env-merger.d.ts +5 -0
  16. package/lib/template-merge/env-merger.js +57 -0
  17. package/lib/template-merge/glob.d.ts +5 -0
  18. package/lib/template-merge/glob.js +78 -0
  19. package/lib/template-merge/index.d.ts +8 -0
  20. package/lib/template-merge/index.js +24 -0
  21. package/lib/template-merge/json-merger.d.ts +5 -0
  22. package/lib/template-merge/json-merger.js +252 -0
  23. package/lib/template-merge/merger.d.ts +30 -0
  24. package/lib/template-merge/merger.js +2 -0
  25. package/lib/template-merge/prisma-merger.d.ts +5 -0
  26. package/lib/template-merge/prisma-merger.js +112 -0
  27. package/lib/template-merge/registry.d.ts +25 -0
  28. package/lib/template-merge/registry.js +42 -0
  29. package/lib/template-merge/ts-module-merger.d.ts +16 -0
  30. package/lib/template-merge/ts-module-merger.js +193 -0
  31. package/lib/version-check.d.ts +39 -0
  32. package/lib/version-check.js +157 -0
  33. package/package.json +2 -2
  34. package/actions/template.action.d.ts +0 -7
  35. package/actions/template.action.js +0 -570
  36. package/commands/template.command.js +0 -42
@@ -3,7 +3,7 @@ export * from './build.action';
3
3
  export * from './generate.action';
4
4
  export * from './info.action';
5
5
  export * from './new.action';
6
- export * from './template.action';
7
6
  export * from './update.action';
7
+ export * from './self-update.action';
8
8
  export * from './start.action';
9
9
  export * from './add.action';
package/actions/index.js CHANGED
@@ -19,7 +19,7 @@ __exportStar(require("./build.action"), exports);
19
19
  __exportStar(require("./generate.action"), exports);
20
20
  __exportStar(require("./info.action"), exports);
21
21
  __exportStar(require("./new.action"), exports);
22
- __exportStar(require("./template.action"), exports);
23
22
  __exportStar(require("./update.action"), exports);
23
+ __exportStar(require("./self-update.action"), exports);
24
24
  __exportStar(require("./start.action"), exports);
25
25
  __exportStar(require("./add.action"), exports);
@@ -0,0 +1,5 @@
1
+ import { Input } from '../commands';
2
+ import { AbstractAction } from './abstract.action';
3
+ export declare class SelfUpdateAction extends AbstractAction {
4
+ handle(_inputs: Input[], options: Input[]): Promise<void>;
5
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SelfUpdateAction = void 0;
13
+ const chalk = require("chalk");
14
+ const child_process_1 = require("child_process");
15
+ const install_manager_1 = require("../lib/install-manager");
16
+ const version_check_1 = require("../lib/version-check");
17
+ const abstract_action_1 = require("./abstract.action");
18
+ class SelfUpdateAction extends abstract_action_1.AbstractAction {
19
+ handle(_inputs, options) {
20
+ var _a, _b, _c;
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const tag = ((_a = options.find((o) => o.name === 'tag')) === null || _a === void 0 ? void 0 : _a.value) || 'latest';
23
+ const checkOnly = !!((_b = options.find((o) => o.name === 'check')) === null || _b === void 0 ? void 0 : _b.value);
24
+ const managerFlagRaw = ((_c = options.find((o) => o.name === 'manager')) === null || _c === void 0 ? void 0 : _c.value) || '';
25
+ const managerOverride = (0, install_manager_1.parseManagerFlag)(managerFlagRaw);
26
+ if (managerFlagRaw && !managerOverride) {
27
+ console.error(chalk.red(`Invalid --manager value "${managerFlagRaw}". Expected one of: npm | yarn | pnpm`));
28
+ process.exit(1);
29
+ }
30
+ const installed = (0, version_check_1.getInstalledVersion)();
31
+ if (!installed) {
32
+ console.error(chalk.red('Cannot locate CLI package.json — unable to determine installed version. Aborting.'));
33
+ process.exit(1);
34
+ }
35
+ const detection = (0, install_manager_1.detectInstallManager)(managerOverride || undefined);
36
+ const cmd = (0, install_manager_1.buildUpgradeCommand)(detection.manager, installed.name, tag);
37
+ console.info(chalk.gray(`Package: ${installed.name}`));
38
+ console.info(chalk.gray(`Installed: ${installed.version}`));
39
+ console.info(chalk.gray(`Tag: ${tag}`));
40
+ console.info(chalk.gray(`Manager: ${detection.manager}` +
41
+ (detection.pathHint !== detection.manager
42
+ ? ` (path hint: ${detection.pathHint})`
43
+ : '') +
44
+ ` — ${detection.reason}`));
45
+ // Only fetch registry "latest" version when the tag is 'latest'; for
46
+ // arbitrary tags we trust the user and just run the install.
47
+ let registryVersion = null;
48
+ if (tag === 'latest') {
49
+ registryVersion = yield (0, version_check_1.fetchLatestVersion)(installed.name, 3000);
50
+ if (registryVersion) {
51
+ console.info(chalk.gray(`Latest: ${registryVersion}`));
52
+ }
53
+ else {
54
+ console.info(chalk.yellow(`Latest: (could not fetch from npm registry — proceed anyway)`));
55
+ }
56
+ }
57
+ if (registryVersion) {
58
+ const cmp = (0, version_check_1.compareVersions)(installed.version, registryVersion);
59
+ if (cmp >= 0) {
60
+ console.info(chalk.green(`\n✅ You are already on ${cmp === 0 ? 'the latest' : 'a newer'} version (${installed.version} ${cmp === 0 ? '==' : '>'} ${registryVersion}).`));
61
+ if (!checkOnly)
62
+ return;
63
+ }
64
+ }
65
+ if (checkOnly) {
66
+ if (registryVersion &&
67
+ (0, version_check_1.compareVersions)(installed.version, registryVersion) < 0) {
68
+ console.info(chalk.yellow(`\n⚠️ Update available: ${installed.version} → ${registryVersion}`));
69
+ console.info(chalk.gray(` Run: ${cmd}`));
70
+ }
71
+ return;
72
+ }
73
+ console.info();
74
+ console.info(chalk.bold(`Running: ${cmd}`));
75
+ console.info();
76
+ try {
77
+ (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
78
+ console.info(chalk.green(`\n✅ Upgrade complete. Re-run any gadmin2 command to use the new version.`));
79
+ }
80
+ catch (err) {
81
+ console.error(chalk.red(`\n❌ Upgrade failed: ${(err === null || err === void 0 ? void 0 : err.message) || err}`));
82
+ console.error(chalk.gray(` Common causes:\n` +
83
+ ` - Permission denied: try \`sudo ${cmd}\`,\n` +
84
+ ` or use a Node version manager (nvm/fnm) that owns the global prefix.\n` +
85
+ ` - Network / private registry: check the registry config of your manager.\n` +
86
+ ` - The dist-tag "${tag}" may not exist for this package.\n` +
87
+ ` - Wrong manager detected? Force one with --manager npm|yarn|pnpm.`));
88
+ process.exit(1);
89
+ }
90
+ });
91
+ }
92
+ }
93
+ exports.SelfUpdateAction = SelfUpdateAction;
@@ -2,4 +2,6 @@ import { Input } from '../commands';
2
2
  import { AbstractAction } from './abstract.action';
3
3
  export declare class UpdateAction extends AbstractAction {
4
4
  handle(inputs: Input[], options: Input[]): Promise<void>;
5
+ private handleDiff;
6
+ private handleUpdate;
5
7
  }