simplemdg-dev-cli 1.5.1 → 2.4.4

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 (140) hide show
  1. package/README.md +65 -243
  2. package/USER_GUIDE.md +55 -249
  3. package/dist/commands/cds.command.js +69 -60
  4. package/dist/commands/cds.command.js.map +1 -1
  5. package/dist/commands/cf-db.command.d.ts +2 -0
  6. package/dist/commands/cf-db.command.js +606 -0
  7. package/dist/commands/cf-db.command.js.map +1 -0
  8. package/dist/commands/cf.command.js +1625 -198
  9. package/dist/commands/cf.command.js.map +1 -1
  10. package/dist/commands/gitlab.command.d.ts +2 -0
  11. package/dist/commands/gitlab.command.js +351 -0
  12. package/dist/commands/gitlab.command.js.map +1 -0
  13. package/dist/commands/npmrc.command.js +50 -44
  14. package/dist/commands/npmrc.command.js.map +1 -1
  15. package/dist/core/cache.d.ts +1 -1
  16. package/dist/core/cache.js +58 -31
  17. package/dist/core/cache.js.map +1 -1
  18. package/dist/core/cds.js +32 -22
  19. package/dist/core/cds.js.map +1 -1
  20. package/dist/core/cf-env-parser.d.ts +1 -1
  21. package/dist/core/cf-env-parser.js +4 -1
  22. package/dist/core/cf-env-parser.js.map +1 -1
  23. package/dist/core/cf.d.ts +1 -1
  24. package/dist/core/cf.js +46 -31
  25. package/dist/core/cf.js.map +1 -1
  26. package/dist/core/db/db-btp.d.ts +48 -0
  27. package/dist/core/db/db-btp.js +162 -0
  28. package/dist/core/db/db-btp.js.map +1 -0
  29. package/dist/core/db/db-cache.d.ts +35 -0
  30. package/dist/core/db/db-cache.js +164 -0
  31. package/dist/core/db/db-cache.js.map +1 -0
  32. package/dist/core/db/db-connection.d.ts +22 -0
  33. package/dist/core/db/db-connection.js +73 -0
  34. package/dist/core/db/db-connection.js.map +1 -0
  35. package/dist/core/db/db-crypto.d.ts +3 -0
  36. package/dist/core/db/db-crypto.js +54 -0
  37. package/dist/core/db/db-crypto.js.map +1 -0
  38. package/dist/core/db/db-hana-adapter.d.ts +32 -0
  39. package/dist/core/db/db-hana-adapter.js +243 -0
  40. package/dist/core/db/db-hana-adapter.js.map +1 -0
  41. package/dist/core/db/db-metadata.d.ts +25 -0
  42. package/dist/core/db/db-metadata.js +150 -0
  43. package/dist/core/db/db-metadata.js.map +1 -0
  44. package/dist/core/db/db-postgres-adapter.d.ts +30 -0
  45. package/dist/core/db/db-postgres-adapter.js +245 -0
  46. package/dist/core/db/db-postgres-adapter.js.map +1 -0
  47. package/dist/core/db/db-query-files.d.ts +20 -0
  48. package/dist/core/db/db-query-files.js +106 -0
  49. package/dist/core/db/db-query-files.js.map +1 -0
  50. package/dist/core/db/db-query-history.d.ts +5 -0
  51. package/dist/core/db/db-query-history.js +49 -0
  52. package/dist/core/db/db-query-history.js.map +1 -0
  53. package/dist/core/db/db-row.d.ts +22 -0
  54. package/dist/core/db/db-row.js +70 -0
  55. package/dist/core/db/db-row.js.map +1 -0
  56. package/dist/core/db/db-studio-html.d.ts +4 -0
  57. package/dist/core/db/db-studio-html.js +437 -0
  58. package/dist/core/db/db-studio-html.js.map +1 -0
  59. package/dist/core/db/db-studio-server.d.ts +11 -0
  60. package/dist/core/db/db-studio-server.js +465 -0
  61. package/dist/core/db/db-studio-server.js.map +1 -0
  62. package/dist/core/db/db-types.d.ts +174 -0
  63. package/dist/core/db/db-types.js +3 -0
  64. package/dist/core/db/db-types.js.map +1 -0
  65. package/dist/core/db/db-vcap-parser.d.ts +7 -0
  66. package/dist/core/db/db-vcap-parser.js +137 -0
  67. package/dist/core/db/db-vcap-parser.js.map +1 -0
  68. package/dist/core/doctor.d.ts +1 -1
  69. package/dist/core/doctor.js +14 -8
  70. package/dist/core/doctor.js.map +1 -1
  71. package/dist/core/guide.js +31 -26
  72. package/dist/core/guide.js.map +1 -1
  73. package/dist/core/install.d.ts +1 -1
  74. package/dist/core/install.js +17 -11
  75. package/dist/core/install.js.map +1 -1
  76. package/dist/core/navigator.d.ts +17 -0
  77. package/dist/core/navigator.js +140 -0
  78. package/dist/core/navigator.js.map +1 -0
  79. package/dist/core/npmrc.js +29 -16
  80. package/dist/core/npmrc.js.map +1 -1
  81. package/dist/core/process.js +11 -6
  82. package/dist/core/process.js.map +1 -1
  83. package/dist/core/prompts.js +16 -8
  84. package/dist/core/prompts.js.map +1 -1
  85. package/dist/core/repository.d.ts +1 -1
  86. package/dist/core/repository.js +16 -9
  87. package/dist/core/repository.js.map +1 -1
  88. package/dist/core/scanner.d.ts +1 -1
  89. package/dist/core/scanner.js +13 -7
  90. package/dist/core/scanner.js.map +1 -1
  91. package/dist/core/tooling.d.ts +28 -0
  92. package/dist/core/tooling.js +168 -0
  93. package/dist/core/tooling.js.map +1 -0
  94. package/dist/core/types.js +2 -1
  95. package/dist/core/version-conflict.d.ts +2 -2
  96. package/dist/core/version-conflict.js +11 -6
  97. package/dist/core/version-conflict.js.map +1 -1
  98. package/dist/index.js +65 -48
  99. package/dist/index.js.map +1 -1
  100. package/dist/types-local.js +2 -1
  101. package/package.json +12 -6
  102. package/src/commands/cds.command.ts +529 -0
  103. package/src/commands/cf-db.command.ts +636 -0
  104. package/src/commands/cf.command.ts +3345 -0
  105. package/src/commands/gitlab.command.ts +373 -0
  106. package/src/commands/npmrc.command.ts +581 -0
  107. package/src/core/cache.ts +332 -0
  108. package/src/core/cds.ts +278 -0
  109. package/src/core/cf-env-parser.ts +131 -0
  110. package/src/core/cf.ts +271 -0
  111. package/src/core/db/db-btp.ts +207 -0
  112. package/src/core/db/db-cache.ts +215 -0
  113. package/src/core/db/db-connection.ts +79 -0
  114. package/src/core/db/db-crypto.ts +53 -0
  115. package/src/core/db/db-hana-adapter.ts +294 -0
  116. package/src/core/db/db-metadata.ts +174 -0
  117. package/src/core/db/db-postgres-adapter.ts +275 -0
  118. package/src/core/db/db-query-files.ts +130 -0
  119. package/src/core/db/db-query-history.ts +53 -0
  120. package/src/core/db/db-row.ts +93 -0
  121. package/src/core/db/db-studio-html.ts +439 -0
  122. package/src/core/db/db-studio-server.ts +559 -0
  123. package/src/core/db/db-types.ts +195 -0
  124. package/src/core/db/db-vcap-parser.ts +182 -0
  125. package/src/core/doctor.ts +70 -0
  126. package/src/core/guide.ts +261 -0
  127. package/src/core/install.ts +91 -0
  128. package/src/core/navigator.ts +164 -0
  129. package/src/core/npmrc.ts +171 -0
  130. package/src/core/process.ts +75 -0
  131. package/src/core/prompts.ts +225 -0
  132. package/src/core/repository.ts +36 -0
  133. package/src/core/scanner.ts +41 -0
  134. package/src/core/tooling.ts +207 -0
  135. package/src/core/types.ts +152 -0
  136. package/src/core/version-conflict.ts +46 -0
  137. package/src/index.ts +460 -0
  138. package/src/types/external.d.ts +3 -0
  139. package/src/types-local.ts +11 -0
  140. package/tsconfig.json +17 -0
@@ -0,0 +1,174 @@
1
+ export type TDatabaseType = "hana" | "postgresql";
2
+ export type TDatabaseConnectionProfile = {
3
+ id: string;
4
+ name: string;
5
+ type: TDatabaseType;
6
+ region?: string;
7
+ org?: string;
8
+ space?: string;
9
+ app?: string;
10
+ serviceName?: string;
11
+ servicePlan?: string;
12
+ host: string;
13
+ port: number;
14
+ database?: string;
15
+ schema?: string;
16
+ username: string;
17
+ encryptedPassword: string;
18
+ ssl?: boolean;
19
+ sslValidateCertificate?: boolean;
20
+ createdAt: string;
21
+ updatedAt: string;
22
+ lastUsedAt?: string;
23
+ tags?: string[];
24
+ };
25
+ /**
26
+ * A connection profile whose password has been decrypted for internal server
27
+ * use. This shape never leaves the local process boundary.
28
+ */
29
+ export type TResolvedDatabaseConnection = Omit<TDatabaseConnectionProfile, "encryptedPassword"> & {
30
+ password: string;
31
+ };
32
+ /**
33
+ * A connection profile safe to send to the browser: no password material.
34
+ */
35
+ export type TPublicDatabaseConnection = Omit<TDatabaseConnectionProfile, "encryptedPassword">;
36
+ export type TDatabaseColumn = {
37
+ name: string;
38
+ dataType: string;
39
+ length?: number;
40
+ scale?: number;
41
+ nullable: boolean;
42
+ defaultValue?: string;
43
+ isPrimaryKey?: boolean;
44
+ comment?: string;
45
+ position?: number;
46
+ };
47
+ export type TDatabaseObjectKind = "table" | "view" | "column-view" | "procedure" | "function" | "synonym" | "index";
48
+ export type TDatabaseObject = {
49
+ schema: string;
50
+ name: string;
51
+ kind: TDatabaseObjectKind;
52
+ type?: string;
53
+ comment?: string;
54
+ };
55
+ export type TDatabaseSchema = {
56
+ name: string;
57
+ isSystem: boolean;
58
+ };
59
+ export type TDatabaseIndex = {
60
+ name: string;
61
+ columns: string[];
62
+ isUnique: boolean;
63
+ isPrimaryKey: boolean;
64
+ };
65
+ export type TDatabaseQueryResult = {
66
+ fields: string[];
67
+ rows: Array<Record<string, unknown>>;
68
+ rowCount: number;
69
+ affectedRows?: number;
70
+ command?: string;
71
+ durationMs: number;
72
+ truncated?: boolean;
73
+ };
74
+ /**
75
+ * A database service candidate detected inside a parsed VCAP_SERVICES block.
76
+ * The password is kept here only transiently while importing from BTP.
77
+ */
78
+ export type TDatabaseServiceCandidate = {
79
+ type: TDatabaseType;
80
+ label: string;
81
+ serviceName: string;
82
+ servicePlan?: string;
83
+ host: string;
84
+ port: number;
85
+ database?: string;
86
+ schema?: string;
87
+ username: string;
88
+ password: string;
89
+ ssl: boolean;
90
+ sslValidateCertificate?: boolean;
91
+ };
92
+ export type TBtpAppDatabaseImportContext = {
93
+ region?: string;
94
+ org?: string;
95
+ space?: string;
96
+ app?: string;
97
+ };
98
+ export type TSavedQuery = {
99
+ id: string;
100
+ name: string;
101
+ connectionType?: TDatabaseType;
102
+ connectionId?: string;
103
+ sql: string;
104
+ tags?: string[];
105
+ createdAt: string;
106
+ updatedAt: string;
107
+ };
108
+ export type TQueryHistoryItem = {
109
+ id: string;
110
+ timestamp: string;
111
+ connectionId?: string;
112
+ connectionName?: string;
113
+ connectionType?: TDatabaseType;
114
+ sql: string;
115
+ durationMs: number;
116
+ success: boolean;
117
+ rowCount?: number;
118
+ error?: string;
119
+ };
120
+ export type TSqlSafetyAnalysis = {
121
+ isDestructive: boolean;
122
+ isReadOnly: boolean;
123
+ blockedByReadOnly: boolean;
124
+ matchedKeywords: string[];
125
+ reason?: string;
126
+ };
127
+ export type TConnectionTestResult = {
128
+ success: boolean;
129
+ message: string;
130
+ serverVersion?: string;
131
+ durationMs: number;
132
+ };
133
+ export type TListObjectsOptions = {
134
+ schema?: string;
135
+ kinds?: TDatabaseObjectKind[];
136
+ search?: string;
137
+ };
138
+ export type TTableDataOptions = {
139
+ schema: string;
140
+ table: string;
141
+ limit: number;
142
+ offset: number;
143
+ where?: string;
144
+ orderBy?: string;
145
+ orderDirection?: "asc" | "desc";
146
+ };
147
+ /**
148
+ * Common interface implemented by every database adapter. Adapters own dialect
149
+ * specifics (quoting, system catalog queries) so the rest of the studio is
150
+ * dialect-agnostic.
151
+ */
152
+ export interface IDatabaseAdapter {
153
+ readonly type: TDatabaseType;
154
+ connect(): Promise<void>;
155
+ disconnect(): Promise<void>;
156
+ testConnection(): Promise<TConnectionTestResult>;
157
+ runQuery(sql: string, options?: {
158
+ maxRows?: number;
159
+ }): Promise<TDatabaseQueryResult>;
160
+ /** Run a parameterized statement. Placeholders come from `placeholder()`. */
161
+ runParameterized(sql: string, params: unknown[], options?: {
162
+ maxRows?: number;
163
+ }): Promise<TDatabaseQueryResult>;
164
+ /** Dialect-specific bind placeholder for parameter N (1-based). */
165
+ placeholder(index: number): string;
166
+ listSchemas(): Promise<TDatabaseSchema[]>;
167
+ listObjects(options: TListObjectsOptions): Promise<TDatabaseObject[]>;
168
+ listColumns(schema: string, table: string): Promise<TDatabaseColumn[]>;
169
+ listIndexes(schema: string, table: string): Promise<TDatabaseIndex[]>;
170
+ countRows(schema: string, table: string): Promise<number>;
171
+ getTableData(options: TTableDataOptions): Promise<TDatabaseQueryResult>;
172
+ quoteIdentifier(identifier: string): string;
173
+ buildQualifiedName(schema: string, name: string): string;
174
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=db-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-types.js","sourceRoot":"","sources":["../../../src/core/db/db-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { TDatabaseServiceCandidate } from "./db-types";
2
+ /**
3
+ * Inspect a parsed VCAP_SERVICES object and return every HANA / PostgreSQL
4
+ * service whose credentials are complete enough to connect.
5
+ */
6
+ export declare function detectDatabaseServiceCandidates(vcapServices: unknown): TDatabaseServiceCandidate[];
7
+ export declare function describeServiceCandidate(candidate: TDatabaseServiceCandidate): string;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectDatabaseServiceCandidates = detectDatabaseServiceCandidates;
4
+ exports.describeServiceCandidate = describeServiceCandidate;
5
+ const HANA_HINTS = ["hana", "hana-cloud", "hanatrial", "hdi-shared", "hdi", "saphana"];
6
+ const POSTGRES_HINTS = ["postgres", "postgresql", "timescale", "postgresql-db", "postgres-db"];
7
+ function toStringValue(value) {
8
+ if (value === undefined || value === null) {
9
+ return "";
10
+ }
11
+ return String(value);
12
+ }
13
+ function toNumberValue(value, fallback) {
14
+ const parsed = Number(value);
15
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
16
+ }
17
+ function toBooleanValue(value, fallback) {
18
+ if (typeof value === "boolean") {
19
+ return value;
20
+ }
21
+ if (typeof value === "string") {
22
+ const normalized = value.trim().toLowerCase();
23
+ if (["true", "1", "yes", "on"].includes(normalized))
24
+ return true;
25
+ if (["false", "0", "no", "off"].includes(normalized))
26
+ return false;
27
+ }
28
+ return fallback;
29
+ }
30
+ function buildHaystack(label, entry, credentials) {
31
+ const tags = Array.isArray(entry.tags) ? entry.tags.map(toStringValue).join(" ") : "";
32
+ const credentialUrl = `${toStringValue(credentials.url)} ${toStringValue(credentials.uri)}`;
33
+ return `${label} ${toStringValue(entry.label)} ${toStringValue(entry.name)} ${tags} ${credentialUrl}`.toLowerCase();
34
+ }
35
+ function matchesAnyHint(haystack, hints) {
36
+ return hints.some((hint) => haystack.includes(hint));
37
+ }
38
+ function detectHanaCandidate(label, entry, credentials) {
39
+ const host = toStringValue(credentials.host ?? credentials.hostname);
40
+ const user = toStringValue(credentials.user ?? credentials.username ?? credentials.hdi_user);
41
+ const password = toStringValue(credentials.password ?? credentials.hdi_password);
42
+ if (!host || !user || !password) {
43
+ return undefined;
44
+ }
45
+ const schema = toStringValue(credentials.schema ?? credentials.currentSchema ?? credentials.hdi_user ?? credentials.user);
46
+ return {
47
+ type: "hana",
48
+ label,
49
+ serviceName: toStringValue(entry.name ?? entry.instance_name ?? label),
50
+ servicePlan: toStringValue(entry.plan) || undefined,
51
+ host,
52
+ port: toNumberValue(credentials.port, 443),
53
+ database: toStringValue(credentials.databaseName ?? credentials.dbname) || undefined,
54
+ schema: schema || undefined,
55
+ username: user,
56
+ password,
57
+ ssl: toBooleanValue(credentials.encrypt, true),
58
+ sslValidateCertificate: toBooleanValue(credentials.sslValidateCertificate ?? credentials.validate_certificate, false),
59
+ };
60
+ }
61
+ function detectPostgresCandidate(label, entry, credentials) {
62
+ const rawUri = toStringValue(credentials.uri ?? credentials.url);
63
+ let parsedUri;
64
+ if (rawUri && /^postg(res|resql)?:\/\//i.test(rawUri)) {
65
+ try {
66
+ parsedUri = new URL(rawUri);
67
+ }
68
+ catch {
69
+ parsedUri = undefined;
70
+ }
71
+ }
72
+ const host = toStringValue(credentials.hostname ?? credentials.host ?? parsedUri?.hostname);
73
+ const username = toStringValue(credentials.username ?? credentials.user ?? parsedUri?.username);
74
+ const password = toStringValue(credentials.password ?? (parsedUri?.password ? decodeURIComponent(parsedUri.password) : ""));
75
+ if (!host || !username || !password) {
76
+ return undefined;
77
+ }
78
+ const database = toStringValue(credentials.dbname ?? credentials.database ?? parsedUri?.pathname.replace(/^\//, ""));
79
+ return {
80
+ type: "postgresql",
81
+ label,
82
+ serviceName: toStringValue(entry.name ?? entry.instance_name ?? label),
83
+ servicePlan: toStringValue(entry.plan) || undefined,
84
+ host,
85
+ port: toNumberValue(credentials.port ?? parsedUri?.port, 5432),
86
+ database: database || undefined,
87
+ schema: toStringValue(credentials.schema) || "public",
88
+ username,
89
+ password,
90
+ ssl: toBooleanValue(credentials.sslrootcert ? true : credentials.ssl, true),
91
+ sslValidateCertificate: toBooleanValue(credentials.sslValidateCertificate, false),
92
+ };
93
+ }
94
+ /**
95
+ * Inspect a parsed VCAP_SERVICES object and return every HANA / PostgreSQL
96
+ * service whose credentials are complete enough to connect.
97
+ */
98
+ function detectDatabaseServiceCandidates(vcapServices) {
99
+ if (!vcapServices || typeof vcapServices !== "object") {
100
+ return [];
101
+ }
102
+ const candidates = [];
103
+ for (const [label, entries] of Object.entries(vcapServices)) {
104
+ if (!Array.isArray(entries)) {
105
+ continue;
106
+ }
107
+ for (const rawEntry of entries) {
108
+ const credentials = (rawEntry.credentials ?? {});
109
+ if (Object.keys(credentials).length === 0) {
110
+ continue;
111
+ }
112
+ const haystack = buildHaystack(label, rawEntry, credentials);
113
+ const isHanaShaped = matchesAnyHint(haystack, HANA_HINTS);
114
+ const isPostgresShaped = matchesAnyHint(haystack, POSTGRES_HINTS) || /^postg(res|resql)?:\/\//i.test(toStringValue(credentials.uri ?? credentials.url));
115
+ if (isPostgresShaped) {
116
+ const postgres = detectPostgresCandidate(label, rawEntry, credentials);
117
+ if (postgres) {
118
+ candidates.push(postgres);
119
+ continue;
120
+ }
121
+ }
122
+ if (isHanaShaped) {
123
+ const hana = detectHanaCandidate(label, rawEntry, credentials);
124
+ if (hana) {
125
+ candidates.push(hana);
126
+ }
127
+ }
128
+ }
129
+ }
130
+ return candidates;
131
+ }
132
+ function describeServiceCandidate(candidate) {
133
+ const databaseTypeLabel = { hana: "HANA", postgresql: "PostgreSQL" };
134
+ const target = candidate.database || candidate.schema || candidate.host;
135
+ return `${candidate.serviceName} · ${databaseTypeLabel[candidate.type]} · ${target}`;
136
+ }
137
+ //# sourceMappingURL=db-vcap-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-vcap-parser.js","sourceRoot":"","sources":["../../../src/core/db/db-vcap-parser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TDoctorPackageResult } from "./types.js";
1
+ import type { TDoctorPackageResult } from "./types";
2
2
  export declare function doctorPackage(options: {
3
3
  repositoryPath: string;
4
4
  packageName: string;
@@ -1,5 +1,11 @@
1
- import path from "node:path";
2
- import fs from "fs-extra";
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.doctorPackage = doctorPackage;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
3
9
  async function findPackageJsonFiles(startPath, packageName) {
4
10
  const packagePathParts = packageName.startsWith("@") ? packageName.split("/") : [packageName];
5
11
  const result = [];
@@ -7,7 +13,7 @@ async function findPackageJsonFiles(startPath, packageName) {
7
13
  if (depth > 8) {
8
14
  return;
9
15
  }
10
- const entries = await fs.readdir(directoryPath, { withFileTypes: true }).catch(() => []);
16
+ const entries = await fs_extra_1.default.readdir(directoryPath, { withFileTypes: true }).catch(() => []);
11
17
  for (const entry of entries) {
12
18
  if (!entry.isDirectory()) {
13
19
  continue;
@@ -15,10 +21,10 @@ async function findPackageJsonFiles(startPath, packageName) {
15
21
  if (entry.name === ".git") {
16
22
  continue;
17
23
  }
18
- const entryPath = path.join(directoryPath, entry.name);
24
+ const entryPath = node_path_1.default.join(directoryPath, entry.name);
19
25
  if (entry.name === "node_modules") {
20
- const packageJsonPath = path.join(entryPath, ...packagePathParts, "package.json");
21
- if (await fs.pathExists(packageJsonPath)) {
26
+ const packageJsonPath = node_path_1.default.join(entryPath, ...packagePathParts, "package.json");
27
+ if (await fs_extra_1.default.pathExists(packageJsonPath)) {
22
28
  result.push(packageJsonPath);
23
29
  }
24
30
  await walk(entryPath, depth + 1);
@@ -33,11 +39,11 @@ async function findPackageJsonFiles(startPath, packageName) {
33
39
  await walk(startPath, 0);
34
40
  return result;
35
41
  }
36
- export async function doctorPackage(options) {
42
+ async function doctorPackage(options) {
37
43
  const packageJsonFiles = await findPackageJsonFiles(options.repositoryPath, options.packageName);
38
44
  const occurrences = [];
39
45
  for (const packageJsonFile of packageJsonFiles) {
40
- const packageJson = await fs.readJson(packageJsonFile).catch(() => undefined);
46
+ const packageJson = await fs_extra_1.default.readJson(packageJsonFile).catch(() => undefined);
41
47
  occurrences.push({
42
48
  version: packageJson?.version,
43
49
  path: packageJsonFile,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,30 @@
1
- import http from "node:http";
2
- import path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { spawn } from "node:child_process";
5
- import fs from "fs-extra";
6
- import chalk from "chalk";
7
- import prompts from "prompts";
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.printUserGuide = printUserGuide;
7
+ exports.openUserGuideInBrowser = openUserGuideInBrowser;
8
+ exports.askRootHelpMode = askRootHelpMode;
9
+ const node_http_1 = __importDefault(require("node:http"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_child_process_1 = require("node:child_process");
12
+ const fs_extra_1 = __importDefault(require("fs-extra"));
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const prompts_1 = __importDefault(require("prompts"));
8
15
  const GUIDE_FILE_NAME = "USER_GUIDE.md";
9
16
  function getPackageRootPath() {
10
- const currentFilePath = fileURLToPath(import.meta.url);
11
- const distCorePath = path.dirname(currentFilePath);
12
- return path.resolve(distCorePath, "..", "..");
17
+ return node_path_1.default.resolve(__dirname, "..", "..");
13
18
  }
14
19
  async function readGuideMarkdown() {
15
20
  const packageRootPath = getPackageRootPath();
16
- const guidePath = path.join(packageRootPath, GUIDE_FILE_NAME);
17
- if (await fs.pathExists(guidePath)) {
18
- return fs.readFile(guidePath, "utf8");
21
+ const guidePath = node_path_1.default.join(packageRootPath, GUIDE_FILE_NAME);
22
+ if (await fs_extra_1.default.pathExists(guidePath)) {
23
+ return fs_extra_1.default.readFile(guidePath, "utf8");
19
24
  }
20
- const readmePath = path.join(packageRootPath, "README.md");
21
- if (await fs.pathExists(readmePath)) {
22
- return fs.readFile(readmePath, "utf8");
25
+ const readmePath = node_path_1.default.join(packageRootPath, "README.md");
26
+ if (await fs_extra_1.default.pathExists(readmePath)) {
27
+ return fs_extra_1.default.readFile(readmePath, "utf8");
23
28
  }
24
29
  return `# SimpleMDG Dev CLI\n\nGuide file was not found. Run smdg --help to see command help.`;
25
30
  }
@@ -171,27 +176,27 @@ function buildGuideHtml(markdown) {
171
176
  function openBrowser(url) {
172
177
  const platform = process.platform;
173
178
  if (platform === "win32") {
174
- spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
179
+ (0, node_child_process_1.spawn)("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
175
180
  return;
176
181
  }
177
182
  if (platform === "darwin") {
178
- spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
183
+ (0, node_child_process_1.spawn)("open", [url], { detached: true, stdio: "ignore" }).unref();
179
184
  return;
180
185
  }
181
- spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
186
+ (0, node_child_process_1.spawn)("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
182
187
  }
183
- export async function printUserGuide() {
188
+ async function printUserGuide() {
184
189
  const markdown = await readGuideMarkdown();
185
190
  console.log(markdown);
186
191
  }
187
- export async function openUserGuideInBrowser(port) {
192
+ async function openUserGuideInBrowser(port) {
188
193
  const markdown = await readGuideMarkdown();
189
194
  const html = buildGuideHtml(markdown);
190
195
  const requestedPort = port?.trim() ? Number(port.trim()) : 0;
191
196
  if (port?.trim() && (!Number.isInteger(requestedPort) || requestedPort < 1 || requestedPort > 65535)) {
192
197
  throw new Error("Guide port must be a number from 1 to 65535");
193
198
  }
194
- const server = http.createServer((request, response) => {
199
+ const server = node_http_1.default.createServer((request, response) => {
195
200
  if (request.url === "/" || request.url === "/index.html") {
196
201
  response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
197
202
  response.end(html);
@@ -207,12 +212,12 @@ export async function openUserGuideInBrowser(port) {
207
212
  const address = server.address();
208
213
  const actualPort = typeof address === "object" && address ? address.port : requestedPort;
209
214
  const url = `http://127.0.0.1:${actualPort}`;
210
- console.log(chalk.green(`SimpleMDG Dev CLI guide: ${url}`));
211
- console.log(chalk.gray("Press Ctrl + C to stop the guide server."));
215
+ console.log(chalk_1.default.green(`SimpleMDG Dev CLI guide: ${url}`));
216
+ console.log(chalk_1.default.gray("Press Ctrl + C to stop the guide server."));
212
217
  openBrowser(url);
213
218
  }
214
- export async function askRootHelpMode() {
215
- const response = await prompts({
219
+ async function askRootHelpMode() {
220
+ const response = await (0, prompts_1.default)({
216
221
  type: "select",
217
222
  name: "mode",
218
223
  message: "How do you want to view SimpleMDG CLI help?",
@@ -1 +1 @@
1
- {"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/core/guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/core/guide.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import type { TInstallRepositoryOptions, TInstallRepositoryResult } from "./types.js";
1
+ import type { TInstallRepositoryOptions, TInstallRepositoryResult } from "./types";
2
2
  export declare function installRepository(options: TInstallRepositoryOptions): Promise<TInstallRepositoryResult>;
@@ -1,7 +1,13 @@
1
- import fs from "fs-extra";
2
- import fastGlob from "fast-glob";
3
- import { execa } from "execa";
4
- import { splitCommand } from "./process.js";
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.installRepository = installRepository;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const fast_glob_1 = __importDefault(require("fast-glob"));
9
+ const execa_1 = require("execa");
10
+ const process_1 = require("./process");
5
11
  function replaceVariables(content, variableValues) {
6
12
  return content.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g, (fullMatch, variableName) => {
7
13
  return variableValues[variableName] ?? fullMatch;
@@ -22,8 +28,8 @@ function mergePackageOverrides(packageJson, temporaryOverrides) {
22
28
  },
23
29
  };
24
30
  }
25
- export async function installRepository(options) {
26
- const filePaths = await fastGlob(options.filePatterns, {
31
+ async function installRepository(options) {
32
+ const filePaths = await (0, fast_glob_1.default)(options.filePatterns, {
27
33
  cwd: options.repositoryPath,
28
34
  absolute: true,
29
35
  onlyFiles: true,
@@ -32,7 +38,7 @@ export async function installRepository(options) {
32
38
  const originalContents = new Map();
33
39
  try {
34
40
  for (const filePath of filePaths) {
35
- const originalContent = await fs.readFile(filePath, "utf8");
41
+ const originalContent = await fs_extra_1.default.readFile(filePath, "utf8");
36
42
  originalContents.set(filePath, originalContent);
37
43
  let nextContent = replaceVariables(originalContent, options.variableValues);
38
44
  if (filePath.endsWith("package.json")) {
@@ -40,11 +46,11 @@ export async function installRepository(options) {
40
46
  nextContent = `${JSON.stringify(mergePackageOverrides(packageJson, options.temporaryOverrides), null, 2)}\n`;
41
47
  }
42
48
  if (nextContent !== originalContent) {
43
- await fs.writeFile(filePath, nextContent, "utf8");
49
+ await fs_extra_1.default.writeFile(filePath, nextContent, "utf8");
44
50
  }
45
51
  }
46
- const { command, args } = splitCommand(options.installCommand);
47
- const childProcess = execa(command, args, {
52
+ const { command, args } = (0, process_1.splitCommand)(options.installCommand);
53
+ const childProcess = (0, execa_1.execa)(command, args, {
48
54
  cwd: options.repositoryPath,
49
55
  reject: false,
50
56
  all: false,
@@ -70,7 +76,7 @@ export async function installRepository(options) {
70
76
  }
71
77
  finally {
72
78
  for (const [filePath, content] of originalContents.entries()) {
73
- await fs.writeFile(filePath, content, "utf8");
79
+ await fs_extra_1.default.writeFile(filePath, content, "utf8");
74
80
  }
75
81
  }
76
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Drive interactive navigation starting from a group command. Shows the list of
4
+ * subcommands, lets the user descend into nested groups, and finally runs the
5
+ * selected leaf command (which collects its own options interactively).
6
+ */
7
+ export declare function runGroupNavigator(startGroup: Command): Promise<void>;
8
+ /**
9
+ * Attach the interactive navigator to every group command in the tree. After
10
+ * this, invoking a group without a subcommand (e.g. `smdg cf` or `smdg cf db`)
11
+ * opens a searchable menu of its subcommands instead of printing help.
12
+ *
13
+ * Leaf commands keep their own action handlers untouched. Existing default
14
+ * actions on group commands are replaced by the navigator so navigation stays
15
+ * consistent across the whole CLI.
16
+ */
17
+ export declare function enableInteractiveNavigation(program: Command): void;