@ldsg/cli 0.3.29 → 0.3.30

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 (77) hide show
  1. package/.rush/temp/package-deps_build.json +22 -5
  2. package/.tsbuildinfo +1 -1
  3. package/CHANGELOG.json +26 -0
  4. package/CHANGELOG.md +8 -1
  5. package/dist/__tests__/commands.test.d.ts +1 -0
  6. package/dist/__tests__/commands.test.js +219 -0
  7. package/dist/__tests__/commands.test.js.map +1 -0
  8. package/dist/__tests__/formatter.test.d.ts +1 -0
  9. package/dist/__tests__/formatter.test.js +114 -0
  10. package/dist/__tests__/formatter.test.js.map +1 -0
  11. package/dist/__tests__/json-file-mutator.test.d.ts +1 -0
  12. package/dist/__tests__/json-file-mutator.test.js +103 -0
  13. package/dist/__tests__/json-file-mutator.test.js.map +1 -0
  14. package/dist/__tests__/source-resolver.test.d.ts +1 -0
  15. package/dist/__tests__/source-resolver.test.js +101 -0
  16. package/dist/__tests__/source-resolver.test.js.map +1 -0
  17. package/dist/cli.js +304 -0
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/resource/convert.d.ts +11 -0
  20. package/dist/commands/resource/convert.js +42 -0
  21. package/dist/commands/resource/convert.js.map +1 -0
  22. package/dist/commands/resource/create.d.ts +14 -0
  23. package/dist/commands/resource/create.js +37 -0
  24. package/dist/commands/resource/create.js.map +1 -0
  25. package/dist/commands/resource/delete.d.ts +10 -0
  26. package/dist/commands/resource/delete.js +10 -0
  27. package/dist/commands/resource/delete.js.map +1 -0
  28. package/dist/commands/resource/diff.d.ts +10 -0
  29. package/dist/commands/resource/diff.js +72 -0
  30. package/dist/commands/resource/diff.js.map +1 -0
  31. package/dist/commands/resource/get.d.ts +6 -0
  32. package/dist/commands/resource/get.js +6 -0
  33. package/dist/commands/resource/get.js.map +1 -0
  34. package/dist/commands/resource/list.d.ts +30 -0
  35. package/dist/commands/resource/list.js +138 -0
  36. package/dist/commands/resource/list.js.map +1 -0
  37. package/dist/commands/resource/tree.d.ts +2 -0
  38. package/dist/commands/resource/tree.js +6 -0
  39. package/dist/commands/resource/tree.js.map +1 -0
  40. package/dist/commands/resource/update.d.ts +11 -0
  41. package/dist/commands/resource/update.js +13 -0
  42. package/dist/commands/resource/update.js.map +1 -0
  43. package/dist/constants.d.ts +2 -0
  44. package/dist/constants.js +3 -1
  45. package/dist/constants.js.map +1 -1
  46. package/dist/types/resource-record.d.ts +43 -0
  47. package/dist/types/resource-record.js +3 -0
  48. package/dist/types/resource-record.js.map +1 -0
  49. package/dist/utils/formatter.d.ts +12 -0
  50. package/dist/utils/formatter.js +96 -0
  51. package/dist/utils/formatter.js.map +1 -0
  52. package/dist/utils/json-file-mutator.d.ts +15 -0
  53. package/dist/utils/json-file-mutator.js +109 -0
  54. package/dist/utils/json-file-mutator.js.map +1 -0
  55. package/dist/utils/source-resolver.d.ts +4 -0
  56. package/dist/utils/source-resolver.js +93 -0
  57. package/dist/utils/source-resolver.js.map +1 -0
  58. package/jest.config.js +12 -0
  59. package/package.json +8 -6
  60. package/src/__tests__/commands.test.ts +262 -0
  61. package/src/__tests__/formatter.test.ts +133 -0
  62. package/src/__tests__/json-file-mutator.test.ts +136 -0
  63. package/src/__tests__/source-resolver.test.ts +125 -0
  64. package/src/cli.ts +309 -1
  65. package/src/commands/resource/convert.ts +52 -0
  66. package/src/commands/resource/create.ts +49 -0
  67. package/src/commands/resource/delete.ts +15 -0
  68. package/src/commands/resource/diff.ts +104 -0
  69. package/src/commands/resource/get.ts +5 -0
  70. package/src/commands/resource/list.ts +161 -0
  71. package/src/commands/resource/tree.ts +4 -0
  72. package/src/commands/resource/update.ts +21 -0
  73. package/src/constants.ts +3 -0
  74. package/src/types/resource-record.ts +52 -0
  75. package/src/utils/formatter.ts +106 -0
  76. package/src/utils/json-file-mutator.ts +137 -0
  77. package/src/utils/source-resolver.ts +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-resolver.test.js","sourceRoot":"","sources":["../../src/__tests__/source-resolver.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,5 +1,38 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  Object.defineProperty(exports, "__esModule", { value: true });
4
37
  const fs_1 = require("fs");
5
38
  const path_1 = require("path");
@@ -9,6 +42,15 @@ const commander_1 = require("commander");
9
42
  const constants_1 = require("./constants");
10
43
  const get_extend_app_data_params_using_npm_ldsg_module_1 = require("./utils/get-extend-app-data-params-using-npm-ldsg-module");
11
44
  const get_extend_app_data_params_using_workspace_ldsg_module_1 = require("./utils/get-extend-app-data-params-using-workspace-ldsg-module");
45
+ const source_resolver_1 = require("./utils/source-resolver");
46
+ const formatter_1 = require("./utils/formatter");
47
+ const create_1 = require("./commands/resource/create");
48
+ const update_1 = require("./commands/resource/update");
49
+ const delete_1 = require("./commands/resource/delete");
50
+ const list_1 = require("./commands/resource/list");
51
+ const get_1 = require("./commands/resource/get");
52
+ const convert_1 = require("./commands/resource/convert");
53
+ const diff_1 = require("./commands/resource/diff");
12
54
  const { version } = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf-8'));
13
55
  const program = new commander_1.Command();
14
56
  program.name('ldsg').description('LDSG CLI tools').version(version);
@@ -53,5 +95,267 @@ program
53
95
  ...(usingWorkspaceLdsgModule ? { layout: utils_1.ZipAppDataLayout.FLAT } : {})
54
96
  });
55
97
  });
98
+ const resource = program.command('resource').aliases(['r']).description('Manage resource records');
99
+ resource
100
+ .command('list')
101
+ .description('List resource records by filter')
102
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
103
+ .option('--kind <kind>', 'filter by resource kind')
104
+ .option('--parent-id <id>', 'filter by parent id')
105
+ .option('--root-id <id>', 'filter by root resource id')
106
+ .option('--pretty', 'human-readable output')
107
+ .action(async (options) => {
108
+ try {
109
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
110
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
111
+ const { total, resources } = await (0, list_1.listResources)(sourceData.resourceRecords, {
112
+ kind: options.kind,
113
+ parentId: options.parentId,
114
+ rootId: options.rootId
115
+ });
116
+ if (options.pretty) {
117
+ console.log((0, formatter_1.formatPrettyList)(resources.map((r) => ({
118
+ id: r.id,
119
+ kind: r.kind,
120
+ parentId: r.parentId,
121
+ title: r.settings?.title
122
+ }))));
123
+ }
124
+ else {
125
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, total, resources })));
126
+ }
127
+ }
128
+ catch (error) {
129
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('LIST_ERROR', error.message)));
130
+ process.exit(1);
131
+ }
132
+ });
133
+ resource
134
+ .command('get <id>')
135
+ .description('Get a resource record by id')
136
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
137
+ .option('--children', 'include direct children')
138
+ .option('--tree', 'include full subtree')
139
+ .option('--pretty', 'human-readable output')
140
+ .action(async (id, options) => {
141
+ try {
142
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
143
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
144
+ const record = await (0, get_1.getResource)(sourceData.resourceRecords, id, {
145
+ children: options.children,
146
+ tree: options.tree
147
+ });
148
+ if (!record) {
149
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('NOT_FOUND', `Resource with id "${id}" not found`)));
150
+ process.exit(1);
151
+ }
152
+ if (options.pretty) {
153
+ console.log((0, formatter_1.formatJson)(record));
154
+ }
155
+ else {
156
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, record })));
157
+ }
158
+ }
159
+ catch (error) {
160
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('GET_ERROR', error.message)));
161
+ process.exit(1);
162
+ }
163
+ });
164
+ resource
165
+ .command('tree [root-id]')
166
+ .description('Display resource tree')
167
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
168
+ .option('--show-kind', 'show resource kind prefix')
169
+ .option('--pretty', 'human-readable output')
170
+ .action(async (rootId, options) => {
171
+ try {
172
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
173
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
174
+ const result = await (0, list_1.getTree)(sourceData.resourceRecords, rootId, options.showKind);
175
+ if (options.pretty) {
176
+ console.log((0, formatter_1.formatPrettyTree)(result.tree, options.showKind ?? false));
177
+ }
178
+ else {
179
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, ...result })));
180
+ }
181
+ }
182
+ catch (error) {
183
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('TREE_ERROR', error.message)));
184
+ process.exit(1);
185
+ }
186
+ });
187
+ resource
188
+ .command('create')
189
+ .description('Create a new resource record')
190
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
191
+ .option('--kind <kind>', 'resource kind')
192
+ .option('--parent-id <id>', 'parent resource id')
193
+ .option('--settings <json>', 'resource settings as JSON string')
194
+ .option('--from-file <path>', 'read full resource record from JSON file')
195
+ .option('--from-stdin', 'read full resource record from stdin')
196
+ .option('--dry-run', 'preview without writing')
197
+ .action(async (options) => {
198
+ try {
199
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
200
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('STDIN_NOT_WRITABLE', 'stdin source does not support write operations')));
201
+ process.exit(1);
202
+ }
203
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
204
+ let fromFileRecord;
205
+ if (options.fromFile) {
206
+ const fs = await Promise.resolve().then(() => __importStar(require('fs-extra')));
207
+ fromFileRecord = await fs.readJson(options.fromFile);
208
+ }
209
+ else if (options.fromStdin) {
210
+ const chunks = [];
211
+ process.stdin.setEncoding('utf-8');
212
+ for await (const chunk of process.stdin) {
213
+ chunks.push(Buffer.from(chunk));
214
+ }
215
+ const raw = Buffer.concat(chunks).toString('utf-8');
216
+ fromFileRecord = JSON.parse(raw);
217
+ }
218
+ let settings;
219
+ if (options.settings) {
220
+ settings = JSON.parse(options.settings);
221
+ }
222
+ const { record } = await (0, create_1.createResource)({
223
+ sourceData,
224
+ kind: options.kind,
225
+ parentId: options.parentId,
226
+ settings,
227
+ fromFileRecord: fromFileRecord,
228
+ dryRun: options.dryRun
229
+ });
230
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ record, dryRun: options.dryRun ?? false })));
231
+ }
232
+ catch (error) {
233
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('CREATE_ERROR', error.message)));
234
+ process.exit(1);
235
+ }
236
+ });
237
+ resource
238
+ .command('update <id>')
239
+ .description('Update a resource record')
240
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
241
+ .option('--settings <json>', 'resource settings to merge (JSON string, required)')
242
+ .option('--dry-run', 'preview without writing')
243
+ .action(async (id, options) => {
244
+ try {
245
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
246
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('STDIN_NOT_WRITABLE', 'stdin source does not support write operations')));
247
+ process.exit(1);
248
+ }
249
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
250
+ if (!options.settings) {
251
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('MISSING_SETTINGS', 'Required option: --settings <json>')));
252
+ process.exit(1);
253
+ }
254
+ const settings = JSON.parse(options.settings);
255
+ const { record } = await (0, update_1.updateResource)({
256
+ sourceData,
257
+ id,
258
+ settings,
259
+ dryRun: options.dryRun
260
+ });
261
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ record, dryRun: options.dryRun ?? false })));
262
+ }
263
+ catch (error) {
264
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('UPDATE_ERROR', error.message)));
265
+ process.exit(1);
266
+ }
267
+ });
268
+ resource
269
+ .command('delete <id>')
270
+ .description('Delete a resource record and its children')
271
+ .option('--source <path>', `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
272
+ .option('--dry-run', 'preview deletion scope without writing')
273
+ .action(async (id, options) => {
274
+ try {
275
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
276
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('STDIN_NOT_WRITABLE', 'stdin source does not support write operations')));
277
+ process.exit(1);
278
+ }
279
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
280
+ const { removed } = await (0, delete_1.deleteResource)({
281
+ sourceData,
282
+ id,
283
+ dryRun: options.dryRun
284
+ });
285
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({
286
+ dryRun: options.dryRun ?? false,
287
+ removedCount: removed.length,
288
+ removed: removed.map((r) => ({ id: r.id, kind: r.kind }))
289
+ })));
290
+ }
291
+ catch (error) {
292
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('DELETE_ERROR', error.message)));
293
+ process.exit(1);
294
+ }
295
+ });
296
+ resource
297
+ .command('convert')
298
+ .description('Convert resource records between aPaaS and Runtime formats')
299
+ .option('--from <format>', 'source format (apaas or runtime)')
300
+ .option('--to <format>', 'target format (apaas or runtime)')
301
+ .option('--input <path>', 'input file path')
302
+ .option('--output <path>', 'output file path (omit for stdout)')
303
+ .action(async (options) => {
304
+ try {
305
+ if (!options.from || !options.to || !options.input) {
306
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('MISSING_ARGS', 'Required options: --from, --to, --input')));
307
+ process.exit(1);
308
+ }
309
+ const result = await (0, convert_1.convertResource)({
310
+ from: options.from,
311
+ to: options.to,
312
+ input: options.input,
313
+ output: options.output
314
+ });
315
+ if (result.outputPath) {
316
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ outputPath: result.outputPath })));
317
+ }
318
+ else {
319
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ data: result.data })));
320
+ }
321
+ }
322
+ catch (error) {
323
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('CONVERT_ERROR', error.message)));
324
+ process.exit(1);
325
+ }
326
+ });
327
+ resource
328
+ .command('diff <id>')
329
+ .description('Diff a resource between two sources')
330
+ .option('--source-a <path>', 'first source file (required)')
331
+ .option('--source-b <path>', 'second source file (required)')
332
+ .option('--pretty', 'human-readable output')
333
+ .action(async (id, options) => {
334
+ try {
335
+ if (!options.sourceA || !options.sourceB) {
336
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('MISSING_ARGS', 'Required options: --source-a, --source-b')));
337
+ process.exit(1);
338
+ }
339
+ const sourceDataA = await (0, source_resolver_1.resolveSource)(options.sourceA);
340
+ const sourceDataB = await (0, source_resolver_1.resolveSource)(options.sourceB);
341
+ const result = await (0, diff_1.diffResource)({
342
+ sourceA: (0, source_resolver_1.getSourceDescription)(options.sourceA),
343
+ sourceB: (0, source_resolver_1.getSourceDescription)(options.sourceB),
344
+ id,
345
+ recordsA: sourceDataA.resourceRecords,
346
+ recordsB: sourceDataB.resourceRecords
347
+ });
348
+ if (options.pretty) {
349
+ console.log((0, formatter_1.formatPrettyDiff)(result));
350
+ }
351
+ else {
352
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)(result)));
353
+ }
354
+ }
355
+ catch (error) {
356
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)('DIFF_ERROR', error.message)));
357
+ process.exit(1);
358
+ }
359
+ });
56
360
  program.parse(process.argv);
57
361
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,2BAAkC;AAClC,+BAA4B;AAC5B,6DAAsF;AAEtF,uCAMqB;AACrB,yCAAoC;AACpC,2CAAkD;AAClD,+HAAoH;AACpH,2IAAgI;AAEhI,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7F,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpE,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACrB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;KACtD,MAAM,CAAC,4BAA4B,EAAE,8BAA8B,CAAC;KACpE,MAAM,CAAC,0CAA0C,EAAE,8CAA8C,CAAC;KAClG,MAAM,CAAC,+BAA+B,EAAE,gCAAgC,CAAC;KACzE,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,+BAAmB,GAAG,CAAC;KACzG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,+BAAmB,CAAC;IAEzD,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAC;IAE3E,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8BAAsB,EAAC;QACnE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;KACvD,CAAC,CAAC;IAEH,IAAI,OAAgB,CAAC;IAErB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAA,+DAA4C,EAAC;YAC7E,eAAe;SAChB,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,EAAE,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,mBAAwC,CAAC;IAE7C,IAAI,wBAAwB,EAAE,CAAC;QAC7B,mBAAmB,GAAG,MAAM,IAAA,uGAA8C,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,mBAAmB,GAAG,MAAM,IAAA,2FAAwC,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,mBAAmB,CAAC,CAAC;IAE5D,MAAM,IAAA,eAAO,EAAC;QACZ,GAAG,gBAAgB;QACnB,UAAU;QACV,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,wBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ResourceRecords } from '@ldsg/types';
2
+ export interface ConvertOptions {
3
+ from: string;
4
+ to: string;
5
+ input: string;
6
+ output?: string;
7
+ }
8
+ export declare function convertResource(options: ConvertOptions): Promise<{
9
+ outputPath?: string;
10
+ data: ResourceRecords;
11
+ }>;
@@ -0,0 +1,42 @@
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.convertResource = convertResource;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const apaas_to_runtime_1 = require("@ldsg/apaas-to-runtime");
9
+ async function convertResource(options) {
10
+ const { from, to, input, output } = options;
11
+ if (from === 'runtime' && to === 'apaas') {
12
+ throw new Error('Runtime → aPaaS conversion is not supported yet');
13
+ }
14
+ if (from !== 'apaas' || to !== 'runtime') {
15
+ throw new Error(`Unsupported conversion: ${from} → ${to}`);
16
+ }
17
+ if (!(await fs_extra_1.default.pathExists(input))) {
18
+ throw new Error(`Input file not found: ${input}`);
19
+ }
20
+ const rawData = await fs_extra_1.default.readJson(input);
21
+ let resourceRecords;
22
+ if (Array.isArray(rawData)) {
23
+ resourceRecords = rawData;
24
+ }
25
+ else if (rawData && typeof rawData === 'object' && Array.isArray(rawData.resourceRecords)) {
26
+ resourceRecords = rawData.resourceRecords;
27
+ }
28
+ else {
29
+ throw new Error('Invalid input format: expected an array or { resourceRecords: [] }');
30
+ }
31
+ const { targetResourceRecords } = (0, apaas_to_runtime_1.convertApaasResourceRecordsToResourceRecords)({
32
+ resourceRecords
33
+ });
34
+ if (output) {
35
+ const isArrayInput = Array.isArray(rawData);
36
+ const outputData = isArrayInput ? targetResourceRecords : { resourceRecords: targetResourceRecords };
37
+ await fs_extra_1.default.writeJson(output, outputData, { spaces: 2 });
38
+ return { outputPath: output, data: targetResourceRecords };
39
+ }
40
+ return { data: targetResourceRecords };
41
+ }
42
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/resource/convert.ts"],"names":[],"mappings":";;;;;AAWA,0CAwCC;AAnDD,wDAA0B;AAC1B,6DAAsF;AAU/E,KAAK,UAAU,eAAe,CACnC,OAAuB;IAEvB,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE5C,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,eAAgC,CAAC;IAErC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,eAAe,GAAG,OAA0B,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5F,eAAe,GAAG,OAAO,CAAC,eAAkC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAA,+DAA4C,EAAC;QAC7E,eAAe;KAChB,CAAC,CAAC;IAEH,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;QACrG,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ResourceRecord } from '@ldsg/types';
2
+ import { SourceData } from '../../types/resource-record';
3
+ export interface CreateOptions {
4
+ sourceData: SourceData;
5
+ id?: string;
6
+ kind?: string;
7
+ parentId?: string;
8
+ settings?: Record<string, unknown>;
9
+ fromFileRecord?: Partial<ResourceRecord>;
10
+ dryRun?: boolean;
11
+ }
12
+ export declare function createResource(options: CreateOptions): Promise<{
13
+ record: ResourceRecord;
14
+ }>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createResource = createResource;
4
+ const json_file_mutator_1 = require("../../utils/json-file-mutator");
5
+ async function createResource(options) {
6
+ const { sourceData, dryRun } = options;
7
+ let record;
8
+ if (options.fromFileRecord) {
9
+ const partial = options.fromFileRecord;
10
+ if (!partial.kind) {
11
+ throw new Error('Missing required field: kind');
12
+ }
13
+ record = {
14
+ id: partial.id || (0, json_file_mutator_1.generateId)(),
15
+ kind: partial.kind,
16
+ parentId: partial.parentId ?? sourceData.resourceRecords[0]?.parentId ?? null,
17
+ settings: (partial.settings || {})
18
+ };
19
+ }
20
+ else {
21
+ if (!options.kind) {
22
+ throw new Error('Missing required option: --kind');
23
+ }
24
+ if (options.parentId === undefined) {
25
+ throw new Error('Missing required option: --parent-id');
26
+ }
27
+ record = {
28
+ id: options.id || (0, json_file_mutator_1.generateId)(),
29
+ kind: options.kind,
30
+ parentId: options.parentId ?? null,
31
+ settings: options.settings || {}
32
+ };
33
+ }
34
+ const result = await (0, json_file_mutator_1.appendRecord)(sourceData, record, dryRun);
35
+ return { record: result.record };
36
+ }
37
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/resource/create.ts"],"names":[],"mappings":";;AAcA,wCAkCC;AA9CD,qEAAyE;AAYlE,KAAK,UAAU,cAAc,CAAC,OAAsB;IACzD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,MAAsB,CAAC;IAE3B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,GAAG;YACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,IAAA,8BAAU,GAAE;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI;YAC7E,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAA4B;SAC9D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,GAAG;YACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,IAAA,8BAAU,GAAE;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAY,EAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ResourceRecord } from '@ldsg/types';
2
+ import { SourceData } from '../../types/resource-record';
3
+ export interface DeleteOptions {
4
+ sourceData: SourceData;
5
+ id: string;
6
+ dryRun?: boolean;
7
+ }
8
+ export declare function deleteResource(options: DeleteOptions): Promise<{
9
+ removed: ResourceRecord[];
10
+ }>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteResource = deleteResource;
4
+ const json_file_mutator_1 = require("../../utils/json-file-mutator");
5
+ async function deleteResource(options) {
6
+ const { sourceData, id, dryRun } = options;
7
+ const result = await (0, json_file_mutator_1.removeRecord)(sourceData, id, dryRun);
8
+ return { removed: result.removed };
9
+ }
10
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/resource/delete.ts"],"names":[],"mappings":";;AAUA,wCAIC;AAZD,qEAA6D;AAQtD,KAAK,UAAU,cAAc,CAAC,OAAsB;IACzD,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAY,EAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ResourceRecords } from '@ldsg/types';
2
+ import { DiffResult } from '../../types/resource-record';
3
+ export interface DiffOptions {
4
+ sourceA: string;
5
+ sourceB: string;
6
+ id: string;
7
+ recordsA: ResourceRecords;
8
+ recordsB: ResourceRecords;
9
+ }
10
+ export declare function diffResource(options: DiffOptions): Promise<DiffResult>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.diffResource = diffResource;
4
+ function isObject(value) {
5
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
6
+ }
7
+ function deepDiff(objA, objB, basePath = '') {
8
+ const changed = [];
9
+ const added = [];
10
+ const removed = [];
11
+ const allKeys = new Set([...Object.keys(objA), ...Object.keys(objB)]);
12
+ for (const key of allKeys) {
13
+ const path = basePath ? `${basePath}.${key}` : key;
14
+ const valA = objA[key];
15
+ const valB = objB[key];
16
+ if (key in objA && !(key in objB)) {
17
+ removed.push({ path, from: valA });
18
+ }
19
+ else if (!(key in objA) && key in objB) {
20
+ added.push({ path, value: valB });
21
+ }
22
+ else if (isObject(valA) && isObject(valB)) {
23
+ const nested = deepDiff(valA, valB, path);
24
+ changed.push(...nested.changed);
25
+ added.push(...nested.added);
26
+ removed.push(...nested.removed);
27
+ }
28
+ else if (valA !== valB) {
29
+ changed.push({ path, from: valA, to: valB });
30
+ }
31
+ }
32
+ return { changed, added, removed };
33
+ }
34
+ async function diffResource(options) {
35
+ const { sourceA, sourceB, id, recordsA, recordsB } = options;
36
+ const recordA = recordsA.find((r) => r.id === id) || null;
37
+ const recordB = recordsB.find((r) => r.id === id) || null;
38
+ const result = {
39
+ id,
40
+ kind: (recordA || recordB)?.kind || '',
41
+ sourceA,
42
+ sourceB,
43
+ changed: [],
44
+ added: [],
45
+ removed: [],
46
+ sideA: recordA,
47
+ sideB: recordB
48
+ };
49
+ if (!recordA || !recordB) {
50
+ return result;
51
+ }
52
+ if (recordA.kind !== recordB.kind) {
53
+ result.changed.push({
54
+ path: 'kind',
55
+ from: recordA.kind,
56
+ to: recordB.kind
57
+ });
58
+ }
59
+ if (recordA.parentId !== recordB.parentId) {
60
+ result.changed.push({
61
+ path: 'parentId',
62
+ from: recordA.parentId || null,
63
+ to: recordB.parentId || null
64
+ });
65
+ }
66
+ const settingsDiff = deepDiff(recordA.settings || {}, recordB.settings || {});
67
+ result.changed.push(...settingsDiff.changed);
68
+ result.added.push(...settingsDiff.added);
69
+ result.removed.push(...settingsDiff.removed);
70
+ return result;
71
+ }
72
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/commands/resource/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { getResource } from './list';
2
+ export { getResource };
3
+ export type GetOptions = {
4
+ children?: boolean;
5
+ tree?: boolean;
6
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getResource = void 0;
4
+ const list_1 = require("./list");
5
+ Object.defineProperty(exports, "getResource", { enumerable: true, get: function () { return list_1.getResource; } });
6
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/resource/get.ts"],"names":[],"mappings":";;;AACA,iCAAqC;AAE5B,4FAFA,kBAAW,OAEA"}