@ldsg/cli 0.3.31 → 0.3.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/package-deps_build.json +27 -27
- package/.rush/temp/shrinkwrap-deps.json +58 -3
- package/.tsbuildinfo +1 -1
- package/CHANGELOG.json +26 -0
- package/CHANGELOG.md +16 -2
- package/README.md +3 -0
- package/dist/__tests__/commands.test.js +104 -104
- package/dist/__tests__/formatter.test.js +66 -63
- package/dist/__tests__/formatter.test.js.map +1 -1
- package/dist/__tests__/json-file-mutator.test.js +48 -45
- package/dist/__tests__/json-file-mutator.test.js.map +1 -1
- package/dist/__tests__/source-resolver.test.js +39 -39
- package/dist/cli.js +89 -89
- package/dist/cli.js.map +1 -1
- package/dist/commands/resource/convert.d.ts +1 -1
- package/dist/commands/resource/convert.js +9 -7
- package/dist/commands/resource/convert.js.map +1 -1
- package/dist/commands/resource/create.d.ts +2 -2
- package/dist/commands/resource/create.js +5 -5
- package/dist/commands/resource/delete.d.ts +2 -2
- package/dist/commands/resource/delete.js.map +1 -1
- package/dist/commands/resource/diff.d.ts +2 -2
- package/dist/commands/resource/diff.js +8 -8
- package/dist/commands/resource/get.d.ts +1 -1
- package/dist/commands/resource/list.d.ts +2 -2
- package/dist/commands/resource/list.js +11 -11
- package/dist/commands/resource/list.js.map +1 -1
- package/dist/commands/resource/tree.d.ts +1 -1
- package/dist/commands/resource/update.d.ts +2 -2
- package/dist/commands/resource/update.js +1 -1
- package/dist/constants.js +2 -2
- package/dist/types/get-extend-app-data-params.d.ts +2 -2
- package/dist/types/resource-record.d.ts +2 -2
- package/dist/utils/formatter.d.ts +1 -1
- package/dist/utils/formatter.js +25 -25
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.d.ts +1 -1
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js +12 -12
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js.map +1 -1
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.d.ts +1 -1
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js +20 -20
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js.map +1 -1
- package/dist/utils/json-file-mutator.d.ts +2 -2
- package/dist/utils/json-file-mutator.js +4 -4
- package/dist/utils/json-file-mutator.js.map +1 -1
- package/dist/utils/source-resolver.d.ts +1 -1
- package/dist/utils/source-resolver.js +15 -15
- package/dist/utils/source-resolver.js.map +1 -1
- package/jest.config.js +8 -8
- package/package.json +9 -6
- package/src/__tests__/commands.test.ts +116 -116
- package/src/__tests__/formatter.test.ts +68 -65
- package/src/__tests__/json-file-mutator.test.ts +57 -52
- package/src/__tests__/source-resolver.test.ts +43 -43
- package/src/cli.ts +132 -114
- package/src/commands/resource/convert.ts +13 -11
- package/src/commands/resource/create.ts +8 -8
- package/src/commands/resource/delete.ts +6 -4
- package/src/commands/resource/diff.ts +10 -10
- package/src/commands/resource/get.ts +2 -2
- package/src/commands/resource/list.ts +20 -18
- package/src/commands/resource/tree.ts +2 -2
- package/src/commands/resource/update.ts +4 -4
- package/src/constants.ts +2 -2
- package/src/types/get-extend-app-data-params.ts +5 -3
- package/src/types/resource-record.ts +2 -2
- package/src/utils/formatter.ts +27 -27
- package/src/utils/get-extend-app-data-params-using-npm-ldsg-module.ts +20 -16
- package/src/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.ts +28 -26
- package/src/utils/json-file-mutator.ts +18 -12
- package/src/utils/source-resolver.ts +26 -21
|
@@ -22,7 +22,7 @@ function filterByParentId(records, parentId) {
|
|
|
22
22
|
function getDescendantIds(allRecords, rootId) {
|
|
23
23
|
const childMap = new Map();
|
|
24
24
|
for (const r of allRecords) {
|
|
25
|
-
const pid = r.parentId ||
|
|
25
|
+
const pid = r.parentId || "null";
|
|
26
26
|
if (!childMap.has(pid))
|
|
27
27
|
childMap.set(pid, []);
|
|
28
28
|
childMap.get(pid).push(r.id);
|
|
@@ -50,7 +50,7 @@ function filterByRootId(records, rootId) {
|
|
|
50
50
|
function buildChildMap(records) {
|
|
51
51
|
const map = new Map();
|
|
52
52
|
for (const r of records) {
|
|
53
|
-
const pid = r.parentId ||
|
|
53
|
+
const pid = r.parentId || "null";
|
|
54
54
|
if (!map.has(pid))
|
|
55
55
|
map.set(pid, []);
|
|
56
56
|
map.get(pid).push(r);
|
|
@@ -58,7 +58,7 @@ function buildChildMap(records) {
|
|
|
58
58
|
return map;
|
|
59
59
|
}
|
|
60
60
|
function findRoots(records) {
|
|
61
|
-
const roots = records.filter((r) => r.parentId === null || r.parentId ===
|
|
61
|
+
const roots = records.filter((r) => r.parentId === null || r.parentId === "root");
|
|
62
62
|
if (roots.length > 0)
|
|
63
63
|
return roots;
|
|
64
64
|
const allParentIds = new Set(records.map((r) => r.parentId).filter(Boolean));
|
|
@@ -83,7 +83,7 @@ async function listResources(records, filter) {
|
|
|
83
83
|
result = filterByRootId(result, filter.rootId);
|
|
84
84
|
return {
|
|
85
85
|
total: result.length,
|
|
86
|
-
resources: result
|
|
86
|
+
resources: result,
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
async function getResource(records, id, options) {
|
|
@@ -105,18 +105,18 @@ async function getTree(records, rootId, showKind) {
|
|
|
105
105
|
if (!effectiveRootId) {
|
|
106
106
|
const roots = findRoots(records);
|
|
107
107
|
if (roots.length === 0) {
|
|
108
|
-
throw new Error(
|
|
108
|
+
throw new Error("No root resource found. Specify a root-id.");
|
|
109
109
|
}
|
|
110
110
|
if (roots.length === 1) {
|
|
111
111
|
effectiveRootId = roots[0].id;
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
|
-
effectiveRootId =
|
|
114
|
+
effectiveRootId = "__virtual_root__";
|
|
115
115
|
const virtualRoot = {
|
|
116
|
-
id:
|
|
117
|
-
kind:
|
|
116
|
+
id: "__virtual_root__",
|
|
117
|
+
kind: "virtual",
|
|
118
118
|
parentId: null,
|
|
119
|
-
settings: { title:
|
|
119
|
+
settings: { title: "Virtual Root" },
|
|
120
120
|
};
|
|
121
121
|
const childMap = buildChildMap(records);
|
|
122
122
|
const children = roots.map((r) => buildTree(records, r.id)).filter(Boolean);
|
|
@@ -124,8 +124,8 @@ async function getTree(records, rootId, showKind) {
|
|
|
124
124
|
rootId: effectiveRootId,
|
|
125
125
|
tree: {
|
|
126
126
|
resource: virtualRoot,
|
|
127
|
-
children: showKind ? children : children
|
|
128
|
-
}
|
|
127
|
+
children: showKind ? children : children,
|
|
128
|
+
},
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/resource/list.ts"],"names":[],"mappings":";;AA4EA,sCAiBC;AAED,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/resource/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { getTree } from
|
|
1
|
+
import { getTree } from "./list";
|
|
2
2
|
export { getTree };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ResourceRecord } from
|
|
2
|
-
import { SourceData } from
|
|
1
|
+
import { ResourceRecord } from "@ldsg/types";
|
|
2
|
+
import { SourceData } from "../../types/resource-record";
|
|
3
3
|
export interface UpdateOptions {
|
|
4
4
|
sourceData: SourceData;
|
|
5
5
|
id: string;
|
|
@@ -5,7 +5,7 @@ const json_file_mutator_1 = require("../../utils/json-file-mutator");
|
|
|
5
5
|
async function updateResource(options) {
|
|
6
6
|
const { sourceData, id, settings, dryRun } = options;
|
|
7
7
|
if (!settings || Object.keys(settings).length === 0) {
|
|
8
|
-
throw new Error(
|
|
8
|
+
throw new Error("Missing required option: --settings");
|
|
9
9
|
}
|
|
10
10
|
const result = await (0, json_file_mutator_1.updateRecord)(sourceData, id, settings, dryRun);
|
|
11
11
|
return { record: result.record };
|
package/dist/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_SOURCE_PATH = exports.DEFAULT_SOURCE_FILE = exports.DEFAULT_OUTPUT_PATH = void 0;
|
|
4
|
-
exports.DEFAULT_OUTPUT_PATH =
|
|
5
|
-
exports.DEFAULT_SOURCE_FILE =
|
|
4
|
+
exports.DEFAULT_OUTPUT_PATH = ".";
|
|
5
|
+
exports.DEFAULT_SOURCE_FILE = "resource-records.json";
|
|
6
6
|
exports.DEFAULT_SOURCE_PATH = `./${exports.DEFAULT_SOURCE_FILE}`;
|
|
7
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ResourceRecord, ResourceRecords } from
|
|
1
|
+
import { ResourceRecord, ResourceRecords } from "@ldsg/types";
|
|
2
2
|
export interface CliError {
|
|
3
3
|
code: string;
|
|
4
4
|
message: string;
|
|
@@ -34,7 +34,7 @@ export interface DiffResult {
|
|
|
34
34
|
sideA: ResourceRecord | null;
|
|
35
35
|
sideB: ResourceRecord | null;
|
|
36
36
|
}
|
|
37
|
-
export type SourceFormat =
|
|
37
|
+
export type SourceFormat = "array" | "object";
|
|
38
38
|
export interface SourceData {
|
|
39
39
|
resourceRecords: ResourceRecords;
|
|
40
40
|
format: SourceFormat;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CliResponse, TreeNode, DiffResult } from
|
|
1
|
+
import { CliResponse, TreeNode, DiffResult } from "../types/resource-record";
|
|
2
2
|
export declare function formatSuccess<T>(data: T): CliResponse<T>;
|
|
3
3
|
export declare function formatError(code: string, message: string): CliResponse<never>;
|
|
4
4
|
export declare function formatJson(data: unknown): string;
|
package/dist/utils/formatter.js
CHANGED
|
@@ -17,70 +17,70 @@ function formatJson(data) {
|
|
|
17
17
|
}
|
|
18
18
|
function formatValue(value) {
|
|
19
19
|
if (value === null || value === undefined) {
|
|
20
|
-
return
|
|
20
|
+
return "null";
|
|
21
21
|
}
|
|
22
|
-
if (typeof value ===
|
|
22
|
+
if (typeof value === "string") {
|
|
23
23
|
return value;
|
|
24
24
|
}
|
|
25
|
-
if (typeof value ===
|
|
25
|
+
if (typeof value === "object") {
|
|
26
26
|
return JSON.stringify(value);
|
|
27
27
|
}
|
|
28
28
|
return String(value);
|
|
29
29
|
}
|
|
30
30
|
function formatPrettyList(resources) {
|
|
31
31
|
if (resources.length === 0) {
|
|
32
|
-
return
|
|
32
|
+
return "No resources found.";
|
|
33
33
|
}
|
|
34
34
|
const lines = [];
|
|
35
|
-
lines.push(`${
|
|
36
|
-
lines.push(
|
|
35
|
+
lines.push(`${"ID".padEnd(30)} ${"KIND".padEnd(20)} PARENT ID`);
|
|
36
|
+
lines.push("-".repeat(70));
|
|
37
37
|
for (const r of resources) {
|
|
38
|
-
const title = r.title ||
|
|
38
|
+
const title = r.title || "";
|
|
39
39
|
const displayId = title ? `${r.id} (${title})` : r.id;
|
|
40
|
-
lines.push(`${displayId.padEnd(30)} ${r.kind.padEnd(20)} ${r.parentId ||
|
|
40
|
+
lines.push(`${displayId.padEnd(30)} ${r.kind.padEnd(20)} ${r.parentId || "-"}`);
|
|
41
41
|
}
|
|
42
|
-
lines.push(
|
|
42
|
+
lines.push("");
|
|
43
43
|
lines.push(`Total: ${resources.length} resource(s)`);
|
|
44
|
-
return lines.join(
|
|
44
|
+
return lines.join("\n");
|
|
45
45
|
}
|
|
46
|
-
function formatPrettyTree(node, showKind, indent =
|
|
47
|
-
const prefix = indent ? indent.slice(0, -4) + (indent.endsWith(
|
|
46
|
+
function formatPrettyTree(node, showKind, indent = "") {
|
|
47
|
+
const prefix = indent ? indent.slice(0, -4) + (indent.endsWith("└── ") ? " " : "│ ") : "";
|
|
48
48
|
const label = showKind ? `[${node.resource.kind}] ${node.resource.id}` : node.resource.id;
|
|
49
|
-
if (indent ===
|
|
49
|
+
if (indent === "") {
|
|
50
50
|
const lines = [label];
|
|
51
51
|
for (let i = 0; i < node.children.length; i++) {
|
|
52
52
|
const child = node.children[i];
|
|
53
|
-
const connector = i === node.children.length - 1 ?
|
|
53
|
+
const connector = i === node.children.length - 1 ? "└── " : "├── ";
|
|
54
54
|
lines.push(formatPrettyTree(child, showKind, connector));
|
|
55
55
|
}
|
|
56
|
-
return lines.join(
|
|
56
|
+
return lines.join("\n");
|
|
57
57
|
}
|
|
58
58
|
const result = `${indent}${label}`;
|
|
59
59
|
const childLines = [];
|
|
60
60
|
for (let i = 0; i < node.children.length; i++) {
|
|
61
61
|
const child = node.children[i];
|
|
62
|
-
const connector = i === node.children.length - 1 ?
|
|
62
|
+
const connector = i === node.children.length - 1 ? "└── " : "├── ";
|
|
63
63
|
childLines.push(formatPrettyTree(child, showKind, `${prefix}${connector}`));
|
|
64
64
|
}
|
|
65
|
-
return [result, ...childLines].join(
|
|
65
|
+
return [result, ...childLines].join("\n");
|
|
66
66
|
}
|
|
67
67
|
function formatPrettyDiff(diff) {
|
|
68
68
|
const lines = [];
|
|
69
69
|
lines.push(`Resource: ${diff.id} (${diff.kind})`);
|
|
70
70
|
lines.push(`Source A: ${diff.sourceA}`);
|
|
71
71
|
lines.push(`Source B: ${diff.sourceB}`);
|
|
72
|
-
lines.push(
|
|
72
|
+
lines.push("");
|
|
73
73
|
if (diff.sideA === null) {
|
|
74
|
-
lines.push(
|
|
75
|
-
return lines.join(
|
|
74
|
+
lines.push("⚠ Resource only exists in source B (new)");
|
|
75
|
+
return lines.join("\n");
|
|
76
76
|
}
|
|
77
77
|
if (diff.sideB === null) {
|
|
78
|
-
lines.push(
|
|
79
|
-
return lines.join(
|
|
78
|
+
lines.push("⚠ Resource only exists in source A (removed)");
|
|
79
|
+
return lines.join("\n");
|
|
80
80
|
}
|
|
81
81
|
if (diff.changed.length === 0 && diff.added.length === 0 && diff.removed.length === 0) {
|
|
82
|
-
lines.push(
|
|
83
|
-
return lines.join(
|
|
82
|
+
lines.push("No differences found.");
|
|
83
|
+
return lines.join("\n");
|
|
84
84
|
}
|
|
85
85
|
for (const field of diff.changed) {
|
|
86
86
|
lines.push(` ${field.path}: "${formatValue(field.from)}" → "${formatValue(field.to)}"`);
|
|
@@ -91,6 +91,6 @@ function formatPrettyDiff(diff) {
|
|
|
91
91
|
for (const field of diff.removed) {
|
|
92
92
|
lines.push(` ${field.path}: -"${formatValue(field.from)}"`);
|
|
93
93
|
}
|
|
94
|
-
return lines.join(
|
|
94
|
+
return lines.join("\n");
|
|
95
95
|
}
|
|
96
96
|
//# sourceMappingURL=formatter.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GetExtendAppDataParams } from
|
|
1
|
+
import { GetExtendAppDataParams } from "../types/get-extend-app-data-params";
|
|
2
2
|
export declare const getExtendAppDataParamsUsingNpmLdsgModule: GetExtendAppDataParams;
|
|
@@ -8,22 +8,22 @@ const constants_1 = require("@ldsg/constants");
|
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
9
|
const getExtendAppDataParamsUsingNpmLdsgModule = async (params) => {
|
|
10
10
|
const { appData } = params;
|
|
11
|
-
const packageJsonFile = constants_1.FILES_IN_APP_TEMPLATE_MODULE.find((file) => file.path ===
|
|
12
|
-
lodash_1.default.set(packageJsonFile, 'data.dependencies["@ldsg/create-app"]',
|
|
13
|
-
lodash_1.default.set(packageJsonFile, 'data.dependencies["@ldsg/opentelemetry-node"]',
|
|
14
|
-
lodash_1.default.set(packageJsonFile,
|
|
15
|
-
graphql:
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
const packageJsonFile = constants_1.FILES_IN_APP_TEMPLATE_MODULE.find((file) => file.path === "package.json");
|
|
12
|
+
lodash_1.default.set(packageJsonFile, 'data.dependencies["@ldsg/create-app"]', "latest");
|
|
13
|
+
lodash_1.default.set(packageJsonFile, 'data.dependencies["@ldsg/opentelemetry-node"]', "latest");
|
|
14
|
+
lodash_1.default.set(packageJsonFile, "data.overrides", {
|
|
15
|
+
graphql: "$graphql",
|
|
16
|
+
"graphql-middleware": "$graphql-middleware",
|
|
17
|
+
"graphql-shield": "$graphql-shield",
|
|
18
18
|
});
|
|
19
|
-
lodash_1.default.set(packageJsonFile,
|
|
20
|
-
lodash_1.default.set(packageJsonFile,
|
|
19
|
+
lodash_1.default.set(packageJsonFile, "data.workspaces", ["handlers/*"]);
|
|
20
|
+
lodash_1.default.set(packageJsonFile, "data.scripts.build", "npm run build --workspaces && tsc --project tsconfig.json");
|
|
21
21
|
let res = {
|
|
22
22
|
appData,
|
|
23
23
|
extraAppData: {
|
|
24
|
-
reuseMainAppDependencies: [
|
|
25
|
-
filesInAppModele: [...constants_1.FILES_IN_APP_TEMPLATE_MODULE, packageJsonFile]
|
|
26
|
-
}
|
|
24
|
+
reuseMainAppDependencies: ["graphql", "graphql-middleware", "graphql-shield"],
|
|
25
|
+
filesInAppModele: [...constants_1.FILES_IN_APP_TEMPLATE_MODULE, packageJsonFile],
|
|
26
|
+
},
|
|
27
27
|
};
|
|
28
28
|
return res;
|
|
29
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-extend-app-data-params-using-npm-ldsg-module.js","sourceRoot":"","sources":["../../src/utils/get-extend-app-data-params-using-npm-ldsg-module.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+D;AAE/D,oDAAuB;AAGhB,MAAM,wCAAwC,GAA2B,KAAK,EAAE,MAAM,EAAE,EAAE;IAC/F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,MAAM,eAAe,GAAG,wCAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAKlG,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAC;IAC1E,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,+CAA+C,EAAE,QAAQ,CAAC,CAAC;IAClF,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE;QACvC,OAAO,EAAE,UAAU;QACnB,oBAAoB,EAAE,qBAAqB;QAC3C,gBAAgB,EAAE,iBAAiB;KACpC,CAAC,CAAC;IACH,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,gBAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"get-extend-app-data-params-using-npm-ldsg-module.js","sourceRoot":"","sources":["../../src/utils/get-extend-app-data-params-using-npm-ldsg-module.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+D;AAE/D,oDAAuB;AAGhB,MAAM,wCAAwC,GAA2B,KAAK,EAAE,MAAM,EAAE,EAAE;IAC/F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,MAAM,eAAe,GAAG,wCAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAKlG,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,uCAAuC,EAAE,QAAQ,CAAC,CAAC;IAC1E,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,+CAA+C,EAAE,QAAQ,CAAC,CAAC;IAClF,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE;QACvC,OAAO,EAAE,UAAU;QACnB,oBAAoB,EAAE,qBAAqB;QAC3C,gBAAgB,EAAE,iBAAiB;KACpC,CAAC,CAAC;IACH,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,gBAAC,CAAC,GAAG,CACH,eAAe,EACf,oBAAoB,EACpB,2DAA2D,CAC5D,CAAC;IAEF,IAAI,GAAG,GAAwB;QAC7B,OAAO;QACP,YAAY,EAAE;YACZ,wBAAwB,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;YAC7E,gBAAgB,EAAE,CAAC,GAAG,wCAA4B,EAAE,eAAe,CAAC;SACrE;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA/BW,QAAA,wCAAwC,4CA+BnD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GetExtendAppDataParams } from
|
|
1
|
+
import { GetExtendAppDataParams } from "../../types/get-extend-app-data-params";
|
|
2
2
|
export declare const getExtendAppDataParamsUsingWorkspaceLdsgModule: GetExtendAppDataParams;
|
|
@@ -7,7 +7,7 @@ exports.getExtendAppDataParamsUsingWorkspaceLdsgModule = void 0;
|
|
|
7
7
|
const constants_1 = require("@ldsg/constants");
|
|
8
8
|
const utils_1 = require("@ldsg/utils");
|
|
9
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
-
const DEBUG_APP_PACKAGE_NAME =
|
|
10
|
+
const DEBUG_APP_PACKAGE_NAME = "@ldsg/app";
|
|
11
11
|
const getExtendAppDataParamsUsingWorkspaceLdsgModule = async (params) => {
|
|
12
12
|
const { appData: paramsAppData } = params;
|
|
13
13
|
let appData = paramsAppData;
|
|
@@ -16,65 +16,65 @@ const getExtendAppDataParamsUsingWorkspaceLdsgModule = async (params) => {
|
|
|
16
16
|
const subspaceProjects = [
|
|
17
17
|
{
|
|
18
18
|
packageName: DEBUG_APP_PACKAGE_NAME,
|
|
19
|
-
projectFolder:
|
|
20
|
-
}
|
|
19
|
+
projectFolder: "generated/app",
|
|
20
|
+
},
|
|
21
21
|
];
|
|
22
22
|
const resourceRecords = appDataResourceRecords.map((resourceRecord) => {
|
|
23
23
|
const { id, kind } = resourceRecord;
|
|
24
|
-
if (kind ===
|
|
24
|
+
if (kind === "handler") {
|
|
25
25
|
subspaceProjects.push({
|
|
26
26
|
packageName: `${id}`,
|
|
27
|
-
projectFolder: `generated/${id}
|
|
27
|
+
projectFolder: `generated/${id}`,
|
|
28
28
|
});
|
|
29
29
|
let dependencies = resourceRecord.settings.dependencies.map((dependency) => {
|
|
30
30
|
const res = dependency;
|
|
31
|
-
if (lodash_1.default.startsWith(dependency.name,
|
|
31
|
+
if (lodash_1.default.startsWith(dependency.name, "@ldsg/")) {
|
|
32
32
|
return {
|
|
33
33
|
...dependency,
|
|
34
|
-
version:
|
|
34
|
+
version: "workspace:*",
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
return res;
|
|
38
38
|
});
|
|
39
39
|
dependencies = dependencies.concat([
|
|
40
40
|
{
|
|
41
|
-
name:
|
|
42
|
-
version:
|
|
41
|
+
name: "@types/node",
|
|
42
|
+
version: "^24.1.0",
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
name:
|
|
46
|
-
version:
|
|
47
|
-
}
|
|
45
|
+
name: "typescript",
|
|
46
|
+
version: "^5.3.3",
|
|
47
|
+
},
|
|
48
48
|
]);
|
|
49
49
|
return {
|
|
50
50
|
...resourceRecord,
|
|
51
51
|
settings: {
|
|
52
52
|
...resourceRecord.settings,
|
|
53
|
-
dependencies
|
|
54
|
-
}
|
|
53
|
+
dependencies,
|
|
54
|
+
},
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
return resourceRecord;
|
|
58
58
|
});
|
|
59
59
|
appData = {
|
|
60
60
|
...appData,
|
|
61
|
-
resourceRecords
|
|
61
|
+
resourceRecords,
|
|
62
62
|
};
|
|
63
63
|
const debugProjects = subspaceProjects.map((item) => {
|
|
64
64
|
const res = {
|
|
65
|
-
...item
|
|
65
|
+
...item,
|
|
66
66
|
};
|
|
67
67
|
return res;
|
|
68
68
|
});
|
|
69
69
|
(0, utils_1.syncRushProjects)(utils_1.RUSH_JSON_PATH, debugProjects);
|
|
70
70
|
}
|
|
71
|
-
const packageJsonFile = constants_1.FILES_IN_APP_TEMPLATE_MODULE.find((file) => file.path ===
|
|
72
|
-
lodash_1.default.set(packageJsonFile,
|
|
71
|
+
const packageJsonFile = constants_1.FILES_IN_APP_TEMPLATE_MODULE.find((file) => file.path === "package.json");
|
|
72
|
+
lodash_1.default.set(packageJsonFile, "data.name", DEBUG_APP_PACKAGE_NAME);
|
|
73
73
|
const res = {
|
|
74
74
|
appData,
|
|
75
75
|
extraAppData: {
|
|
76
|
-
filesInAppModele: [...constants_1.FILES_IN_APP_TEMPLATE_MODULE, packageJsonFile]
|
|
77
|
-
}
|
|
76
|
+
filesInAppModele: [...constants_1.FILES_IN_APP_TEMPLATE_MODULE, packageJsonFile],
|
|
77
|
+
},
|
|
78
78
|
};
|
|
79
79
|
return res;
|
|
80
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+D;AAC/D,uCAAoF;AAEpF,oDAAuB;AAGvB,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAepC,MAAM,8CAA8C,GAA2B,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+D;AAC/D,uCAAoF;AAEpF,oDAAuB;AAGvB,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAepC,MAAM,8CAA8C,GAA2B,KAAK,EACzF,MAAM,EACN,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAE1C,IAAI,OAAO,GAAG,aAAa,CAAC;IAO5B,CAAC;QACC,MAAM,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,gBAAgB,GAGhB;YACJ;gBACE,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,eAAe;aAC/B;SACF,CAAC;QAKF,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;YACpE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;YAEpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,gBAAgB,CAAC,IAAI,CAAC;oBACpB,WAAW,EAAE,GAAG,EAAE,EAAE;oBACpB,aAAa,EAAE,aAAa,EAAE,EAAE;iBACjC,CAAC,CAAC;gBAEH,IAAI,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBACzE,MAAM,GAAG,GAAG,UAAU,CAAC;oBAEvB,IAAI,gBAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC5C,OAAO;4BACL,GAAG,UAAU;4BACb,OAAO,EAAE,aAAa;yBACvB,CAAC;oBACJ,CAAC;oBAED,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,CAAC;gBAEH,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;oBACjC;wBACE,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,SAAS;qBACnB;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,QAAQ;qBAClB;iBACF,CAAC,CAAC;gBAEH,OAAO;oBACL,GAAG,cAAc;oBACjB,QAAQ,EAAE;wBACR,GAAG,cAAc,CAAC,QAAQ;wBAC1B,YAAY;qBACb;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG;YACR,GAAG,OAAO;YACV,eAAe;SAChB,CAAC;QAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG;gBACV,GAAG,IAAI;aACR,CAAC;YAEF,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAA,wBAAgB,EAAC,sBAAc,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,eAAe,GAAG,wCAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAElG,gBAAC,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAE5D,MAAM,GAAG,GAAwB;QAC/B,OAAO;QACP,YAAY,EAAE;YACZ,gBAAgB,EAAE,CAAC,GAAG,wCAA4B,EAAE,eAAe,CAAC;SACrE;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AArGW,QAAA,8CAA8C,kDAqGzD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ResourceRecord, ResourceRecords } from
|
|
2
|
-
import { SourceData } from
|
|
1
|
+
import { ResourceRecord, ResourceRecords } from "@ldsg/types";
|
|
2
|
+
import { SourceData } from "../types/resource-record";
|
|
3
3
|
export declare function generateId(): string;
|
|
4
4
|
export declare function appendRecord(sourceData: SourceData, record: ResourceRecord, dryRun?: boolean): Promise<{
|
|
5
5
|
record: ResourceRecord;
|
|
@@ -11,7 +11,7 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
11
11
|
function buildChildMap(resourceRecords) {
|
|
12
12
|
const childMap = new Map();
|
|
13
13
|
for (const record of resourceRecords) {
|
|
14
|
-
const pid = record.parentId ||
|
|
14
|
+
const pid = record.parentId || "null";
|
|
15
15
|
const children = childMap.get(pid) || [];
|
|
16
16
|
children.push(record);
|
|
17
17
|
childMap.set(pid, children);
|
|
@@ -36,13 +36,13 @@ function extractSourceData(data) {
|
|
|
36
36
|
if (Array.isArray(data)) {
|
|
37
37
|
return { records: data, isArray: true };
|
|
38
38
|
}
|
|
39
|
-
if (data && typeof data ===
|
|
39
|
+
if (data && typeof data === "object") {
|
|
40
40
|
const obj = data;
|
|
41
41
|
if (Array.isArray(obj.resourceRecords)) {
|
|
42
42
|
return { records: obj.resourceRecords, isArray: false };
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
throw new Error(
|
|
45
|
+
throw new Error("Invalid resource records format");
|
|
46
46
|
}
|
|
47
47
|
function buildOutputData(records, isArray) {
|
|
48
48
|
if (isArray) {
|
|
@@ -83,7 +83,7 @@ async function updateRecord(sourceData, id, settings, dryRun = false) {
|
|
|
83
83
|
}
|
|
84
84
|
const updatedRecord = {
|
|
85
85
|
...records[index],
|
|
86
|
-
settings: { ...records[index].settings, ...settings }
|
|
86
|
+
settings: { ...records[index].settings, ...settings },
|
|
87
87
|
};
|
|
88
88
|
const allRecords = [...records];
|
|
89
89
|
allRecords[index] = updatedRecord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-file-mutator.js","sourceRoot":"","sources":["../../src/utils/json-file-mutator.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"json-file-mutator.js","sourceRoot":"","sources":["../../src/utils/json-file-mutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SourceData } from
|
|
1
|
+
import { SourceData } from "../types/resource-record";
|
|
2
2
|
export declare function resolveSource(source?: string): Promise<SourceData>;
|
|
3
3
|
export declare function isStdinSource(source?: string): boolean;
|
|
4
4
|
export declare function getSourceDescription(source?: string): string;
|
|
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
|
|
|
16
16
|
}
|
|
17
17
|
function parseResourceRecords(data) {
|
|
18
18
|
if (Array.isArray(data)) {
|
|
19
|
-
return { resourceRecords: data, format:
|
|
19
|
+
return { resourceRecords: data, format: "array" };
|
|
20
20
|
}
|
|
21
|
-
if (data && typeof data ===
|
|
21
|
+
if (data && typeof data === "object") {
|
|
22
22
|
const obj = data;
|
|
23
23
|
if (Array.isArray(obj.resourceRecords)) {
|
|
24
|
-
return { resourceRecords: obj.resourceRecords, format:
|
|
24
|
+
return { resourceRecords: obj.resourceRecords, format: "object" };
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
throw new Error(
|
|
27
|
+
throw new Error("Invalid resource records format: expected an array or { resourceRecords: [] }");
|
|
28
28
|
}
|
|
29
29
|
async function resolveFile(filePath) {
|
|
30
30
|
const data = await readJsonFile(filePath);
|
|
@@ -32,28 +32,28 @@ async function resolveFile(filePath) {
|
|
|
32
32
|
return { resourceRecords, format, filePath };
|
|
33
33
|
}
|
|
34
34
|
async function resolveDirectory(dirPath) {
|
|
35
|
-
const filePath = `${dirPath.replace(/\/$/,
|
|
35
|
+
const filePath = `${dirPath.replace(/\/$/, "")}/${constants_1.DEFAULT_SOURCE_FILE}`;
|
|
36
36
|
return resolveFile(filePath);
|
|
37
37
|
}
|
|
38
38
|
async function resolveStdin() {
|
|
39
39
|
return new Promise((resolve, reject) => {
|
|
40
40
|
const chunks = [];
|
|
41
|
-
process.stdin.setEncoding(
|
|
42
|
-
process.stdin.on(
|
|
41
|
+
process.stdin.setEncoding("utf-8");
|
|
42
|
+
process.stdin.on("data", (chunk) => {
|
|
43
43
|
chunks.push(Buffer.from(chunk));
|
|
44
44
|
});
|
|
45
|
-
process.stdin.on(
|
|
45
|
+
process.stdin.on("end", () => {
|
|
46
46
|
try {
|
|
47
|
-
const raw = Buffer.concat(chunks).toString(
|
|
47
|
+
const raw = Buffer.concat(chunks).toString("utf-8");
|
|
48
48
|
const data = JSON.parse(raw);
|
|
49
49
|
const { resourceRecords, format } = parseResourceRecords(data);
|
|
50
|
-
resolve({ resourceRecords, format, filePath:
|
|
50
|
+
resolve({ resourceRecords, format, filePath: "-stdin-" });
|
|
51
51
|
}
|
|
52
52
|
catch (error) {
|
|
53
53
|
reject(new Error(`Failed to parse stdin as JSON: ${error.message}`));
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
-
process.stdin.on(
|
|
56
|
+
process.stdin.on("error", (error) => {
|
|
57
57
|
reject(new Error(`Failed to read stdin: ${error.message}`));
|
|
58
58
|
});
|
|
59
59
|
});
|
|
@@ -66,7 +66,7 @@ async function resolveSource(source) {
|
|
|
66
66
|
}
|
|
67
67
|
throw new Error(`Default source file not found: ${defaultPath}. Use --source to specify a file.`);
|
|
68
68
|
}
|
|
69
|
-
if (source ===
|
|
69
|
+
if (source === "-") {
|
|
70
70
|
return resolveStdin();
|
|
71
71
|
}
|
|
72
72
|
const stats = await fs_extra_1.default.stat(source).catch(() => null);
|
|
@@ -79,14 +79,14 @@ async function resolveSource(source) {
|
|
|
79
79
|
return resolveFile(source);
|
|
80
80
|
}
|
|
81
81
|
function isStdinSource(source) {
|
|
82
|
-
return source ===
|
|
82
|
+
return source === "-";
|
|
83
83
|
}
|
|
84
84
|
function getSourceDescription(source) {
|
|
85
85
|
if (!source || source === constants_1.DEFAULT_SOURCE_FILE) {
|
|
86
86
|
return `./${constants_1.DEFAULT_SOURCE_FILE}`;
|
|
87
87
|
}
|
|
88
|
-
if (source ===
|
|
89
|
-
return
|
|
88
|
+
if (source === "-") {
|
|
89
|
+
return "stdin";
|
|
90
90
|
}
|
|
91
91
|
return source;
|
|
92
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../../src/utils/source-resolver.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../../src/utils/source-resolver.ts"],"names":[],"mappings":"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"}
|