@ldsg/cli 0.3.42 → 0.3.44

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 (133) hide show
  1. package/.rush/temp/package-deps_build.json +15 -18
  2. package/.rush/temp/shrinkwrap-deps.json +1 -1
  3. package/.tsbuildinfo +1 -1
  4. package/CHANGELOG.json +46 -0
  5. package/CHANGELOG.md +15 -1
  6. package/README.md +3 -3
  7. package/dist/__tests__/bootstrap-generator.test.js +120 -0
  8. package/dist/__tests__/bootstrap-generator.test.js.map +1 -0
  9. package/dist/__tests__/generate-bootstrap.test.d.ts +1 -0
  10. package/dist/__tests__/generate-bootstrap.test.js +97 -0
  11. package/dist/__tests__/generate-bootstrap.test.js.map +1 -0
  12. package/dist/__tests__/resolve-module-builder.test.d.ts +1 -0
  13. package/dist/__tests__/resolve-module-builder.test.js +83 -0
  14. package/dist/__tests__/resolve-module-builder.test.js.map +1 -0
  15. package/dist/__tests__/resolve-root.test.d.ts +1 -0
  16. package/dist/__tests__/resolve-root.test.js +32 -0
  17. package/dist/__tests__/resolve-root.test.js.map +1 -0
  18. package/dist/cli.js +4 -431
  19. package/dist/cli.js.map +1 -1
  20. package/dist/commands/generate/index.d.ts +2 -0
  21. package/dist/commands/generate/index.js +35 -0
  22. package/dist/commands/generate/index.js.map +1 -0
  23. package/dist/commands/generate/types/generate.d.ts +12 -0
  24. package/dist/commands/generate/types/generate.js +3 -0
  25. package/dist/commands/generate/types/generate.js.map +1 -0
  26. package/dist/commands/generate/types/generator.d.ts +4 -0
  27. package/dist/commands/generate/types/generator.js +3 -0
  28. package/dist/commands/generate/types/generator.js.map +1 -0
  29. package/dist/commands/generate/types/index.d.ts +2 -0
  30. package/dist/commands/generate/types/index.js +19 -0
  31. package/dist/commands/generate/types/index.js.map +1 -0
  32. package/dist/commands/generate/types.d.ts +8 -0
  33. package/dist/{types/get-extend-app-data-params.js → commands/generate/types.js} +1 -1
  34. package/dist/commands/generate/types.js.map +1 -0
  35. package/dist/commands/generate/utils/generate-application/index.d.ts +6 -0
  36. package/dist/commands/generate/utils/generate-application/index.js +28 -0
  37. package/dist/commands/generate/utils/generate-application/index.js.map +1 -0
  38. package/dist/commands/generate/utils/generate-application/types/generator.d.ts +9 -0
  39. package/dist/commands/generate/utils/generate-application/types/generator.js +3 -0
  40. package/dist/commands/generate/utils/generate-application/types/generator.js.map +1 -0
  41. package/dist/commands/generate/utils/generate-application/types/index.d.ts +1 -0
  42. package/dist/commands/generate/utils/generate-application/types/index.js +18 -0
  43. package/dist/commands/generate/utils/generate-application/types/index.js.map +1 -0
  44. package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.d.ts +9 -0
  45. package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js +30 -0
  46. package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js.map +1 -0
  47. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.d.ts +13 -0
  48. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.js +125 -0
  49. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.js.map +1 -0
  50. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.d.ts +3 -0
  51. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.js +7 -0
  52. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.js.map +1 -0
  53. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.d.ts +4 -0
  54. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.js +69 -0
  55. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.js.map +1 -0
  56. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.d.ts +3 -0
  57. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.js +32 -0
  58. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.js.map +1 -0
  59. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.d.ts +2 -0
  60. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.js +62 -0
  61. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.js.map +1 -0
  62. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.d.ts +11 -0
  63. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.js +84 -0
  64. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.js.map +1 -0
  65. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.d.ts +2 -0
  66. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.js +15 -0
  67. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.js.map +1 -0
  68. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.d.ts +2 -0
  69. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.js +21 -0
  70. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.js.map +1 -0
  71. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.d.ts +2 -0
  72. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.js +18 -0
  73. package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.js.map +1 -0
  74. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.d.ts +8 -0
  75. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js +32 -0
  76. package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js.map +1 -0
  77. package/dist/commands/generate/utils/generate-application/utils/generate-app/index.d.ts +8 -0
  78. package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js +10 -0
  79. package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js.map +1 -0
  80. package/dist/commands/generate/utils/generate-application/utils/index.d.ts +3 -0
  81. package/dist/commands/generate/utils/generate-application/utils/index.js +20 -0
  82. package/dist/commands/generate/utils/generate-application/utils/index.js.map +1 -0
  83. package/dist/commands/generate/utils/parse-extra-options.d.ts +5 -0
  84. package/dist/commands/generate/utils/parse-extra-options.js +59 -0
  85. package/dist/commands/generate/utils/parse-extra-options.js.map +1 -0
  86. package/dist/commands/resource/index.d.ts +2 -0
  87. package/dist/commands/resource/index.js +392 -0
  88. package/dist/commands/resource/index.js.map +1 -0
  89. package/dist/generator/bootstrap-generator.d.ts +19 -0
  90. package/dist/generator/bootstrap-generator.js +59 -0
  91. package/dist/generator/bootstrap-generator.js.map +1 -0
  92. package/dist/generator/module-builder.d.ts +2 -0
  93. package/dist/generator/module-builder.js +284 -0
  94. package/dist/generator/module-builder.js.map +1 -0
  95. package/dist/generator/resolve-module-builder.d.ts +8 -0
  96. package/dist/generator/resolve-module-builder.js +41 -0
  97. package/dist/generator/resolve-module-builder.js.map +1 -0
  98. package/dist/generator/resolve-root.d.ts +5 -0
  99. package/dist/generator/resolve-root.js +48 -0
  100. package/dist/generator/resolve-root.js.map +1 -0
  101. package/jest.config.js +4 -1
  102. package/package.json +5 -5
  103. package/src/cli.ts +4 -510
  104. package/src/commands/generate/index.ts +54 -0
  105. package/src/commands/generate/utils/generate-application/index.ts +50 -0
  106. package/src/commands/generate/utils/generate-application/utils/build-app-generator/index.ts +39 -0
  107. package/src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts +45 -0
  108. package/src/commands/generate/utils/generate-application/utils/generate-app/index.ts +17 -0
  109. package/src/commands/generate/utils/generate-application/utils/index.ts +3 -0
  110. package/src/commands/generate/utils/parse-extra-options.ts +80 -0
  111. package/src/commands/resource/index.ts +455 -0
  112. package/dist/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.js +0 -81
  113. package/dist/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.js.map +0 -1
  114. package/dist/types/get-extend-app-data-params.d.ts +0 -10
  115. package/dist/types/get-extend-app-data-params.js.map +0 -1
  116. package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.d.ts +0 -2
  117. package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js +0 -27
  118. package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js.map +0 -1
  119. package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.d.ts +0 -2
  120. package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js +0 -98
  121. package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js.map +0 -1
  122. package/src/__tests__/add-pnpm-overrides.test.ts +0 -91
  123. package/src/__tests__/commands.test.ts +0 -318
  124. package/src/__tests__/formatter.test.ts +0 -151
  125. package/src/__tests__/generate-app-index-ts.test.ts +0 -141
  126. package/src/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.ts +0 -109
  127. package/src/__tests__/json-file-mutator.test.ts +0 -186
  128. package/src/__tests__/mutate.test.ts +0 -392
  129. package/src/__tests__/source-resolver.test.ts +0 -125
  130. package/src/types/get-extend-app-data-params.ts +0 -13
  131. package/src/utils/get-extend-app-data-params-using-npm-ldsg-module.ts +0 -34
  132. package/src/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.ts +0 -159
  133. /package/dist/__tests__/{get-extend-app-data-params-using-workspace-ldsg-module.test.d.ts → bootstrap-generator.test.d.ts} +0 -0
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveRootResourceRecord = void 0;
4
+ const isRootResource = (resourceRecord) => {
5
+ return !resourceRecord.parentId;
6
+ };
7
+ const resolveRootResourceRecord = (resourceRecords) => {
8
+ const rootResources = resourceRecords.filter(isRootResource);
9
+ if (rootResources.length === 0) {
10
+ throw new Error("root resource not found");
11
+ }
12
+ if (rootResources.length > 1) {
13
+ throw new Error(`multiple root resources: ${rootResources.map((resource) => resource.id).join(", ")}`);
14
+ }
15
+ return rootResources[0];
16
+ };
17
+ exports.resolveRootResourceRecord = resolveRootResourceRecord;
18
+ //# sourceMappingURL=resolve-root-resource-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-root-resource-record.js","sourceRoot":"","sources":["../../../../../../../../../src/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAW,EAAE;IACjE,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,CAAC,CAAC;AAKK,MAAM,yBAAyB,GAAG,CAAC,eAAiC,EAAkB,EAAE;IAC7F,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,4BAA4B,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AAdW,QAAA,yBAAyB,6BAcpC"}
@@ -0,0 +1,8 @@
1
+ import { GenerateParams, Generator } from "@ldsg/types";
2
+ export interface BuildMetaGeneratorParams extends GenerateParams {
3
+ }
4
+ export interface BuildMetaGeneratorRes {
5
+ metaGenerator: Generator;
6
+ }
7
+ export type BuildMetaGenerator = (params: BuildMetaGeneratorParams) => Promise<BuildMetaGeneratorRes>;
8
+ export declare const buildMetaGenerator: BuildMetaGenerator;
@@ -0,0 +1,32 @@
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.buildMetaGenerator = void 0;
7
+ const utils_1 = require("@ldsg/utils");
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const node_os_1 = __importDefault(require("node:os"));
10
+ const buildMetaGenerator = async (params) => {
11
+ const { archive } = await (0, utils_1.generateMetaGeneratorApp)(params);
12
+ {
13
+ const outputPath = node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "meta-generator");
14
+ (0, utils_1.extractZipToFolder)({
15
+ archive,
16
+ outputPath,
17
+ });
18
+ (0, utils_1.installDependencies)({ cwd: outputPath });
19
+ }
20
+ const res = {
21
+ metaGenerator: {
22
+ generate: async () => {
23
+ return {
24
+ archive,
25
+ };
26
+ },
27
+ },
28
+ };
29
+ return res;
30
+ };
31
+ exports.buildMetaGenerator = buildMetaGenerator;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAgG;AAEhG,0DAA6B;AAC7B,sDAAyB;AAalB,MAAM,kBAAkB,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gCAAwB,EAAC,MAAM,CAAC,CAAC;IAK3D,CAAC;QACC,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAEtE,IAAA,0BAAkB,EAAC;YACjB,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QAEH,IAAA,2BAAmB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,GAAG,GAA0B;QACjC,aAAa,EAAE;YACb,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA5BW,QAAA,kBAAkB,sBA4B7B"}
@@ -0,0 +1,8 @@
1
+ import { GenerateParams, GenerateRes, Generator } from "@ldsg/types";
2
+ export interface GenerateAppParams extends GenerateParams {
3
+ appGenerator: Generator;
4
+ }
5
+ export interface GenerateAppRes extends GenerateRes {
6
+ }
7
+ export type GenerateApp = (params: GenerateAppParams) => Promise<GenerateAppRes>;
8
+ export declare const generateApp: GenerateApp;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateApp = void 0;
4
+ const generateApp = async (params) => {
5
+ const { appGenerator, ...restParams } = params;
6
+ const res = await appGenerator.generate(restParams);
7
+ return res;
8
+ };
9
+ exports.generateApp = generateApp;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/generate-app/index.ts"],"names":[],"mappings":";;;AAUO,MAAM,WAAW,GAAgB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAE/C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEpD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB"}
@@ -0,0 +1,3 @@
1
+ export * from "./build-app-generator";
2
+ export * from "./build-meta-generator";
3
+ export * from "./generate-app";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./build-app-generator"), exports);
18
+ __exportStar(require("./build-meta-generator"), exports);
19
+ __exportStar(require("./generate-app"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/utils/generate-application/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC;AACvC,iDAA+B"}
@@ -0,0 +1,5 @@
1
+ export interface ParsedExtraArgs {
2
+ options: Record<string, string | number | boolean>;
3
+ positionals: string[];
4
+ }
5
+ export declare const parseExtraOptions: (args: string[]) => ParsedExtraArgs;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseExtraOptions = void 0;
4
+ const coerce = (value) => {
5
+ if (value === "true")
6
+ return true;
7
+ if (value === "false")
8
+ return false;
9
+ if (/^-?\d+(\.\d+)?$/.test(value))
10
+ return Number(value);
11
+ return value;
12
+ };
13
+ const parseExtraOptions = (args) => {
14
+ const options = {};
15
+ const positionals = [];
16
+ let currentKey = null;
17
+ for (let i = 0; i < args.length; i++) {
18
+ const token = args[i];
19
+ if (token === "--") {
20
+ break;
21
+ }
22
+ if (token.startsWith("--")) {
23
+ const eq = token.indexOf("=");
24
+ if (eq > -1) {
25
+ options[token.slice(2, eq)] = coerce(token.slice(eq + 1));
26
+ currentKey = null;
27
+ }
28
+ else {
29
+ currentKey = token.slice(2);
30
+ options[currentKey] = true;
31
+ }
32
+ continue;
33
+ }
34
+ if (token.startsWith("-") && token.length > 1) {
35
+ if (currentKey !== null) {
36
+ currentKey = null;
37
+ }
38
+ const eq = token.indexOf("=");
39
+ if (eq > -1) {
40
+ options[token.slice(1, eq)] = coerce(token.slice(eq + 1));
41
+ }
42
+ else {
43
+ currentKey = token.slice(1);
44
+ options[currentKey] = true;
45
+ }
46
+ continue;
47
+ }
48
+ if (currentKey !== null) {
49
+ options[currentKey] = coerce(token);
50
+ currentKey = null;
51
+ }
52
+ else {
53
+ positionals.push(token);
54
+ }
55
+ }
56
+ return { options, positionals };
57
+ };
58
+ exports.parseExtraOptions = parseExtraOptions;
59
+ //# sourceMappingURL=parse-extra-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-extra-options.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils/parse-extra-options.ts"],"names":[],"mappings":";;;AAgBA,MAAM,MAAM,GAAG,CAAC,KAAa,EAA6B,EAAE;IAC1D,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAmB,EAAE;IACnE,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QAGD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,SAAS;QACX,CAAC;QAGD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,SAAS;QACX,CAAC;QAGD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC,CAAC;AAxDW,QAAA,iBAAiB,qBAwD5B"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare function registerResourceCommand(program: Command): void;
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerResourceCommand = registerResourceCommand;
37
+ const constants_1 = require("../../constants");
38
+ const source_resolver_1 = require("../../utils/source-resolver");
39
+ const formatter_1 = require("../../utils/formatter");
40
+ const create_1 = require("./create");
41
+ const update_1 = require("./update");
42
+ const delete_1 = require("./delete");
43
+ const list_1 = require("./list");
44
+ const get_1 = require("./get");
45
+ const diff_1 = require("./diff");
46
+ const mutate_1 = require("./mutate");
47
+ async function parseExplicitRecords(value, file) {
48
+ if (value && file) {
49
+ throw new Error("Cannot use both an inline value and a file for the same record list");
50
+ }
51
+ let data;
52
+ if (file) {
53
+ const fs = await Promise.resolve().then(() => __importStar(require("fs-extra")));
54
+ data = await fs.readJson(file);
55
+ }
56
+ else if (value) {
57
+ data = JSON.parse(value);
58
+ }
59
+ else {
60
+ return undefined;
61
+ }
62
+ const list = Array.isArray(data) ? data : [data];
63
+ return list.map((record) => (0, mutate_1.purifyResourceRecord)(record));
64
+ }
65
+ function registerResourceCommand(program) {
66
+ const resource = program
67
+ .command("resource")
68
+ .aliases(["r"])
69
+ .description("Manage resource records");
70
+ resource
71
+ .command("list")
72
+ .description("List resource records by filter")
73
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
74
+ .option("--kind <kind>", "filter by resource kind")
75
+ .option("--parent-id <id>", "filter by parent id")
76
+ .option("--root-id <id>", "filter by root resource id")
77
+ .option("--pretty", "human-readable output")
78
+ .action(async (options) => {
79
+ try {
80
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
81
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
82
+ const { total, resources } = await (0, list_1.listResources)(sourceData.resourceRecords, {
83
+ kind: options.kind,
84
+ parentId: options.parentId,
85
+ rootId: options.rootId,
86
+ });
87
+ if (options.pretty) {
88
+ console.log((0, formatter_1.formatPrettyList)(resources.map((r) => ({
89
+ id: r.id,
90
+ kind: r.kind,
91
+ parentId: r.parentId,
92
+ title: r.settings?.title,
93
+ }))));
94
+ }
95
+ else {
96
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, total, resources })));
97
+ }
98
+ }
99
+ catch (error) {
100
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("LIST_ERROR", error.message)));
101
+ process.exit(1);
102
+ }
103
+ });
104
+ resource
105
+ .command("get <id>")
106
+ .description("Get a resource record by id")
107
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
108
+ .option("--children", "include direct children")
109
+ .option("--tree", "include full subtree")
110
+ .option("--pretty", "human-readable output")
111
+ .action(async (id, options) => {
112
+ try {
113
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
114
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
115
+ const record = await (0, get_1.getResource)(sourceData.resourceRecords, id, {
116
+ children: options.children,
117
+ tree: options.tree,
118
+ });
119
+ if (!record) {
120
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("NOT_FOUND", `Resource with id "${id}" not found`)));
121
+ process.exit(1);
122
+ }
123
+ if (options.pretty) {
124
+ console.log((0, formatter_1.formatJson)(record));
125
+ }
126
+ else {
127
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, record })));
128
+ }
129
+ }
130
+ catch (error) {
131
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("GET_ERROR", error.message)));
132
+ process.exit(1);
133
+ }
134
+ });
135
+ resource
136
+ .command("tree [root-id]")
137
+ .description("Display resource tree")
138
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
139
+ .option("--show-kind", "show resource kind prefix")
140
+ .option("--pretty", "human-readable output")
141
+ .action(async (rootId, options) => {
142
+ try {
143
+ const sourceDesc = (0, source_resolver_1.getSourceDescription)(options.source);
144
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
145
+ const result = await (0, list_1.getTree)(sourceData.resourceRecords, rootId, options.showKind);
146
+ if (options.pretty) {
147
+ console.log((0, formatter_1.formatPrettyTree)(result.tree, options.showKind ?? false));
148
+ }
149
+ else {
150
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ source: sourceDesc, ...result })));
151
+ }
152
+ }
153
+ catch (error) {
154
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("TREE_ERROR", error.message)));
155
+ process.exit(1);
156
+ }
157
+ });
158
+ resource
159
+ .command("create")
160
+ .description("Create a new resource record")
161
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
162
+ .option("--kind <kind>", "resource kind")
163
+ .option("--parent-id <id>", "parent resource id")
164
+ .option("--settings <json>", "resource settings as JSON string")
165
+ .option("--from-file <path>", "read full resource record from JSON file")
166
+ .option("--from-stdin", "read full resource record from stdin")
167
+ .option("--dry-run", "preview without writing")
168
+ .action(async (options) => {
169
+ try {
170
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
171
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("STDIN_NOT_WRITABLE", "stdin source does not support write operations")));
172
+ process.exit(1);
173
+ }
174
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
175
+ let fromFileRecord;
176
+ if (options.fromFile) {
177
+ const fs = await Promise.resolve().then(() => __importStar(require("fs-extra")));
178
+ fromFileRecord = await fs.readJson(options.fromFile);
179
+ }
180
+ else if (options.fromStdin) {
181
+ const chunks = [];
182
+ process.stdin.setEncoding("utf-8");
183
+ for await (const chunk of process.stdin) {
184
+ chunks.push(Buffer.from(chunk));
185
+ }
186
+ const raw = Buffer.concat(chunks).toString("utf-8");
187
+ fromFileRecord = JSON.parse(raw);
188
+ }
189
+ let settings;
190
+ if (options.settings) {
191
+ settings = JSON.parse(options.settings);
192
+ }
193
+ const { record } = await (0, create_1.createResource)({
194
+ sourceData,
195
+ kind: options.kind,
196
+ parentId: options.parentId,
197
+ settings,
198
+ fromFileRecord: fromFileRecord,
199
+ dryRun: options.dryRun,
200
+ });
201
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ record, dryRun: options.dryRun ?? false })));
202
+ }
203
+ catch (error) {
204
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("CREATE_ERROR", error.message)));
205
+ process.exit(1);
206
+ }
207
+ });
208
+ resource
209
+ .command("update <id>")
210
+ .description("Update a resource record")
211
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
212
+ .option("--settings <json>", "resource settings to merge (JSON string, required)")
213
+ .option("--dry-run", "preview without writing")
214
+ .action(async (id, options) => {
215
+ try {
216
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
217
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("STDIN_NOT_WRITABLE", "stdin source does not support write operations")));
218
+ process.exit(1);
219
+ }
220
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
221
+ if (!options.settings) {
222
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("MISSING_SETTINGS", "Required option: --settings <json>")));
223
+ process.exit(1);
224
+ }
225
+ const settings = JSON.parse(options.settings);
226
+ const { record } = await (0, update_1.updateResource)({
227
+ sourceData,
228
+ id,
229
+ settings,
230
+ dryRun: options.dryRun,
231
+ });
232
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({ record, dryRun: options.dryRun ?? false })));
233
+ }
234
+ catch (error) {
235
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("UPDATE_ERROR", error.message)));
236
+ process.exit(1);
237
+ }
238
+ });
239
+ resource
240
+ .command("delete <id>")
241
+ .description("Delete a resource record and its children")
242
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
243
+ .option("--dry-run", "preview deletion scope without writing")
244
+ .action(async (id, options) => {
245
+ try {
246
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
247
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("STDIN_NOT_WRITABLE", "stdin source does not support write operations")));
248
+ process.exit(1);
249
+ }
250
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
251
+ const { removed } = await (0, delete_1.deleteResource)({
252
+ sourceData,
253
+ id,
254
+ dryRun: options.dryRun,
255
+ });
256
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({
257
+ dryRun: options.dryRun ?? false,
258
+ removedCount: removed.length,
259
+ removed: removed.map((r) => ({ id: r.id, kind: r.kind })),
260
+ })));
261
+ }
262
+ catch (error) {
263
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("DELETE_ERROR", error.message)));
264
+ process.exit(1);
265
+ }
266
+ });
267
+ resource
268
+ .command("diff <id>")
269
+ .description("Diff a resource between two sources")
270
+ .option("--source-a <path>", "first source file (required)")
271
+ .option("--source-b <path>", "second source file (required)")
272
+ .option("--pretty", "human-readable output")
273
+ .action(async (id, options) => {
274
+ try {
275
+ if (!options.sourceA || !options.sourceB) {
276
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("MISSING_ARGS", "Required options: --source-a, --source-b")));
277
+ process.exit(1);
278
+ }
279
+ const sourceDataA = await (0, source_resolver_1.resolveSource)(options.sourceA);
280
+ const sourceDataB = await (0, source_resolver_1.resolveSource)(options.sourceB);
281
+ const result = await (0, diff_1.diffResource)({
282
+ sourceA: (0, source_resolver_1.getSourceDescription)(options.sourceA),
283
+ sourceB: (0, source_resolver_1.getSourceDescription)(options.sourceB),
284
+ id,
285
+ recordsA: sourceDataA.resourceRecords,
286
+ recordsB: sourceDataB.resourceRecords,
287
+ });
288
+ if (options.pretty) {
289
+ console.log((0, formatter_1.formatPrettyDiff)(result));
290
+ }
291
+ else {
292
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)(result)));
293
+ }
294
+ }
295
+ catch (error) {
296
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("DIFF_ERROR", error.message)));
297
+ process.exit(1);
298
+ }
299
+ });
300
+ resource
301
+ .command("pull")
302
+ .description("Pull resource records from RRM to a local file (read-only)")
303
+ .option("--endpoint <url>", "RRM GraphQL endpoint")
304
+ .option("--path <regex>", "scope remote records to a path regex (e.g. application id)")
305
+ .option("-o, --output <path>", `output file (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
306
+ .action(async (options) => {
307
+ try {
308
+ const result = await (0, mutate_1.pullRemoteResourceRecords)({
309
+ endpoint: options.endpoint,
310
+ path: options.path,
311
+ output: options.output,
312
+ });
313
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)(result)));
314
+ }
315
+ catch (error) {
316
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("PULL_ERROR", error.message)));
317
+ process.exit(1);
318
+ }
319
+ });
320
+ resource
321
+ .command("mutate")
322
+ .description("Mutate local resource records on RRM via mutateResourceRecords")
323
+ .option("--source <path>", `data source (default: ${constants_1.DEFAULT_SOURCE_PATH})`)
324
+ .option("--endpoint <url>", "RRM GraphQL endpoint")
325
+ .option("--token <token>", "RRM Bearer token (or RRM_ACCESS_TOKEN env)")
326
+ .option("--path <regex>", "scope remote records to a path regex (e.g. application id) before splitting")
327
+ .option("--no-delete-missing", "do not soft-delete remote-only records (default: soft-delete like console)")
328
+ .option("--no-write-back", "do not write server-assigned ids back to the local source file")
329
+ .option("--yes", "confirm soft-deletion without prompting")
330
+ .option("--dry-run", "preview the plan without sending")
331
+ .option("--create <json>", "explicit create records as JSON (skip auto split)")
332
+ .option("--update <json>", "explicit update records as JSON (skip auto split)")
333
+ .option("--create-file <path>", "explicit create records from JSON file (skip auto split)")
334
+ .option("--update-file <path>", "explicit update records from JSON file (skip auto split)")
335
+ .action(async (options) => {
336
+ try {
337
+ const explicitCreate = await parseExplicitRecords(options.create, options.createFile);
338
+ const explicitUpdate = await parseExplicitRecords(options.update, options.updateFile);
339
+ if (explicitCreate !== undefined || explicitUpdate !== undefined) {
340
+ const result = await (0, mutate_1.mutateRecordsDirect)({
341
+ endpoint: options.endpoint,
342
+ token: options.token,
343
+ createResourceRecords: explicitCreate ?? [],
344
+ updateResourceRecords: explicitUpdate ?? [],
345
+ dryRun: options.dryRun,
346
+ });
347
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({
348
+ mode: "explicit",
349
+ dryRun: result.dryRun,
350
+ createCount: result.createCount,
351
+ updateCount: result.updateCount,
352
+ createdResourceRecords: result.createdResourceRecords,
353
+ updatedResourceRecords: result.updatedResourceRecords,
354
+ })));
355
+ return;
356
+ }
357
+ if ((0, source_resolver_1.isStdinSource)(options.source)) {
358
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("STDIN_NOT_SUPPORTED", "stdin source is not supported for mutate; use a local JSON file")));
359
+ process.exit(1);
360
+ }
361
+ const sourceData = await (0, source_resolver_1.resolveSource)(options.source);
362
+ const result = await (0, mutate_1.mutateResources)({
363
+ sourceData,
364
+ endpoint: options.endpoint,
365
+ token: options.token,
366
+ path: options.path,
367
+ deleteMissing: options.deleteMissing,
368
+ writeBack: options.writeBack,
369
+ yes: options.yes,
370
+ dryRun: options.dryRun,
371
+ });
372
+ const { plan } = result;
373
+ console.log((0, formatter_1.formatJson)((0, formatter_1.formatSuccess)({
374
+ mode: "auto",
375
+ dryRun: result.dryRun,
376
+ source: (0, source_resolver_1.getSourceDescription)(options.source),
377
+ remoteCount: plan.remoteCount,
378
+ localCount: plan.localCount,
379
+ createCount: plan.createResourceRecords.length,
380
+ updateCount: plan.updateResourceRecords.length,
381
+ deleteCount: plan.deleteResourceRecords.length,
382
+ idMap: result.idMap,
383
+ writeBackPath: result.writeBackPath,
384
+ })));
385
+ }
386
+ catch (error) {
387
+ console.error((0, formatter_1.formatJson)((0, formatter_1.formatError)("MUTATE_ERROR", error.message)));
388
+ process.exit(1);
389
+ }
390
+ });
391
+ }
392
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/resource/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,0DAyYC;AArcD,+CAAsD;AACtD,iEAAiG;AACjG,qDAO+B;AAC/B,qCAA0C;AAC1C,qCAA0C;AAC1C,qCAA0C;AAC1C,iCAAgD;AAChD,+BAAoC;AACpC,iCAAsC;AACtC,qCAKkB;AAElB,KAAK,UAAU,oBAAoB,CACjC,KAAc,EACd,IAAa;IAUb,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,IAAa,CAAC;IAElB,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QACpC,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACjB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,6BAAoB,EAAC,MAAe,CAAC,CAAC,CAAC;AACrE,CAAC;AAQD,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;SACd,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE1C,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;SACtD,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,oBAAa,EAAC,UAAU,CAAC,eAAe,EAAE;gBAC3E,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CACT,IAAA,4BAAgB,EACd,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAG,CAAC,CAAC,QAAoC,EAAE,KAA2B;iBAC5E,CAAC,CAAC,CACJ,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAW,EAAC,UAAU,CAAC,eAAe,EAAE,EAAE,EAAE;gBAC/D,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,WAAW,EAAE,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,WAAW,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,sCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAA,cAAO,EAAC,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAgB,EAAC,MAAM,CAAC,IAAa,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC;SACxC,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;SAChD,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC;SACxE,MAAM,CAAC,cAAc,EAAE,sCAAsC,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EACR,IAAA,uBAAW,EAAC,oBAAoB,EAAE,gDAAgD,CAAC,CACpF,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEvD,IAAI,cAAmD,CAAC;YAExD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;gBACpC,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,QAA6C,CAAC;YAClD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAc,EAAC;gBACtC,UAAU;gBACV,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ;gBACR,cAAc,EAAE,cAAuB;gBACvC,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,cAAc,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EACR,IAAA,uBAAW,EAAC,oBAAoB,EAAE,gDAAgD,CAAC,CACpF,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEvD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,kBAAkB,EAAE,oCAAoC,CAAC,CAAC,CAClF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAc,EAAC;gBACtC,UAAU;gBACV,EAAE;gBACF,QAAQ;gBACR,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,cAAc,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EACR,IAAA,uBAAW,EAAC,oBAAoB,EAAE,gDAAgD,CAAC,CACpF,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,uBAAc,EAAC;gBACvC,UAAU;gBACV,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CACT,IAAA,sBAAU,EACR,IAAA,yBAAa,EAAC;gBACZ,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;gBAC/B,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC1D,CAAC,CACH,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,cAAc,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;SAC5D,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,cAAc,EAAE,0CAA0C,CAAC,CAAC,CACpF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAY,EAAC;gBAChC,OAAO,EAAE,IAAA,sCAAoB,EAAC,OAAO,CAAC,OAAO,CAAC;gBAC9C,OAAO,EAAE,IAAA,sCAAoB,EAAC,OAAO,CAAC,OAAO,CAAC;gBAC9C,EAAE;gBACF,QAAQ,EAAE,WAAW,CAAC,eAAe;gBACrC,QAAQ,EAAE,WAAW,CAAC,eAAe;aACtC,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,gBAAgB,EAAE,4DAA4D,CAAC;SACtF,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAyB,EAAC;gBAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAU,EAAC,IAAA,yBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,+BAAmB,GAAG,CAAC;SAC1E,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SACvE,MAAM,CACL,gBAAgB,EAChB,6EAA6E,CAC9E;SACA,MAAM,CACL,qBAAqB,EACrB,4EAA4E,CAC7E;SACA,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;SAC3F,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,sBAAsB,EAAE,0DAA0D,CAAC;SAC1F,MAAM,CAAC,sBAAsB,EAAE,0DAA0D,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACtF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAEtF,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAmB,EAAC;oBACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,qBAAqB,EAAE,cAAc,IAAI,EAAE;oBAC3C,qBAAqB,EAAE,cAAc,IAAI,EAAE;oBAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CACT,IAAA,sBAAU,EACR,IAAA,yBAAa,EAAC;oBACZ,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;oBACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;iBACtD,CAAC,CACH,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,IAAA,sBAAU,EACR,IAAA,uBAAW,EACT,qBAAqB,EACrB,iEAAiE,CAClE,CACF,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAe,EAAC;gBACnC,UAAU;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YAExB,OAAO,CAAC,GAAG,CACT,IAAA,sBAAU,EACR,IAAA,yBAAa,EAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,IAAA,sCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC;gBAC5C,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM;gBAC9C,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM;gBAC9C,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM;gBAC9C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC,CACH,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,sBAAU,EAAC,IAAA,uBAAW,EAAC,cAAc,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AppBuilder, AppGeneratorModuleRef, ModuleBuildMode, ModuleBuildRes } from "@ldsg/generator";
2
+ import type { ResourceRecord } from "@ldsg/types";
3
+ export interface ApplicationGenerator extends AppGeneratorModuleRef {
4
+ buildApp: AppBuilder;
5
+ }
6
+ export interface BootstrapGenerator {
7
+ generatorDefinitionHandlerModule: ModuleBuildRes;
8
+ handlerGeneratorHandlerModule: ModuleBuildRes;
9
+ buildApplicationGenerator: (params: {
10
+ rootGeneratorHandler: ResourceRecord;
11
+ }) => Promise<ApplicationGenerator>;
12
+ }
13
+ export interface CreateBootstrapGeneratorParams {
14
+ generatorDefinitionHandler: ResourceRecord;
15
+ handlerGeneratorHandler: ResourceRecord;
16
+ mode: ModuleBuildMode;
17
+ cwd: string;
18
+ }
19
+ export declare const createBootstrapGenerator: (params: CreateBootstrapGeneratorParams) => Promise<BootstrapGenerator>;