@rxap/plugin-nestjs 16.1.0-dev.4 → 16.1.0-dev.40

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 (112) hide show
  1. package/CHANGELOG.md +355 -0
  2. package/README.md +155 -1
  3. package/generators.json +112 -0
  4. package/package.json +59 -41
  5. package/src/generators/feature-microservice/generator.d.ts +4 -0
  6. package/src/generators/feature-microservice/generator.js +17 -0
  7. package/src/generators/feature-microservice/generator.js.map +1 -0
  8. package/src/generators/feature-microservice/index.d.ts +2 -0
  9. package/src/generators/feature-microservice/index.js +7 -0
  10. package/src/generators/feature-microservice/index.js.map +1 -0
  11. package/src/generators/feature-microservice/schema.d.ts +5 -0
  12. package/src/generators/feature-microservice/schema.json +23 -0
  13. package/src/generators/frontend-microservice/generator.d.ts +4 -0
  14. package/src/generators/frontend-microservice/generator.js +17 -0
  15. package/src/generators/frontend-microservice/generator.js.map +1 -0
  16. package/src/generators/frontend-microservice/index.d.ts +2 -0
  17. package/src/generators/frontend-microservice/index.js +7 -0
  18. package/src/generators/frontend-microservice/index.js.map +1 -0
  19. package/src/generators/frontend-microservice/schema.d.ts +6 -0
  20. package/src/generators/frontend-microservice/schema.json +29 -0
  21. package/src/generators/health-indicator/generator.d.ts +4 -0
  22. package/src/generators/health-indicator/generator.js +31 -0
  23. package/src/generators/health-indicator/generator.js.map +1 -0
  24. package/src/generators/health-indicator/index.d.ts +2 -0
  25. package/src/generators/health-indicator/index.js +7 -0
  26. package/src/generators/health-indicator/index.js.map +1 -0
  27. package/src/generators/health-indicator/schema.d.ts +5 -0
  28. package/src/generators/health-indicator/schema.json +32 -0
  29. package/src/generators/health-indicator-init/generator.d.ts +4 -0
  30. package/src/generators/health-indicator-init/generator.js +35 -0
  31. package/src/generators/health-indicator-init/generator.js.map +1 -0
  32. package/src/generators/health-indicator-init/index.d.ts +2 -0
  33. package/src/generators/health-indicator-init/index.js +7 -0
  34. package/src/generators/health-indicator-init/index.js.map +1 -0
  35. package/src/generators/health-indicator-init/schema.d.ts +4 -0
  36. package/src/generators/health-indicator-init/schema.json +22 -0
  37. package/src/generators/init/generator.js +8 -5
  38. package/src/generators/init/generator.js.map +1 -1
  39. package/src/generators/init/index.d.ts +2 -0
  40. package/src/generators/init/index.js +7 -0
  41. package/src/generators/init/index.js.map +1 -0
  42. package/src/generators/init/schema.d.ts +2 -0
  43. package/src/generators/init/schema.json +10 -0
  44. package/src/generators/init-application/extract-existing-config-validation.d.ts +3 -0
  45. package/src/generators/init-application/extract-existing-config-validation.js +47 -0
  46. package/src/generators/init-application/extract-existing-config-validation.js.map +1 -0
  47. package/src/generators/init-application/files/shared/Dockerfile +33 -0
  48. package/src/generators/init-application/generator.js +554 -29
  49. package/src/generators/init-application/generator.js.map +1 -1
  50. package/src/generators/init-application/index.d.ts +2 -0
  51. package/src/generators/init-application/index.js +7 -0
  52. package/src/generators/init-application/index.js.map +1 -0
  53. package/src/generators/init-application/schema.d.ts +5 -2
  54. package/src/generators/init-application/schema.json +36 -21
  55. package/src/generators/init-library/generator.js +36 -7
  56. package/src/generators/init-library/generator.js.map +1 -1
  57. package/src/generators/init-library/index.d.ts +2 -0
  58. package/src/generators/init-library/index.js +7 -0
  59. package/src/generators/init-library/index.js.map +1 -0
  60. package/src/generators/init-library/schema.d.ts +2 -0
  61. package/src/generators/init-library/schema.json +10 -0
  62. package/src/generators/jwt/generator.d.ts +4 -0
  63. package/src/generators/jwt/generator.js +76 -0
  64. package/src/generators/jwt/generator.js.map +1 -0
  65. package/src/generators/jwt/index.d.ts +2 -0
  66. package/src/generators/jwt/index.js +7 -0
  67. package/src/generators/jwt/index.js.map +1 -0
  68. package/src/generators/jwt/schema.d.ts +4 -0
  69. package/src/generators/jwt/schema.json +18 -0
  70. package/src/generators/microservice/generator.d.ts +4 -0
  71. package/src/generators/microservice/generator.js +26 -0
  72. package/src/generators/microservice/generator.js.map +1 -0
  73. package/src/generators/microservice/index.d.ts +2 -0
  74. package/src/generators/microservice/index.js +7 -0
  75. package/src/generators/microservice/index.js.map +1 -0
  76. package/src/generators/microservice/schema.d.ts +6 -0
  77. package/src/generators/microservice/schema.json +27 -0
  78. package/src/generators/open-api/generator.d.ts +4 -0
  79. package/src/generators/open-api/generator.js +74 -0
  80. package/src/generators/open-api/generator.js.map +1 -0
  81. package/src/generators/open-api/index.d.ts +2 -0
  82. package/src/generators/open-api/index.js +7 -0
  83. package/src/generators/open-api/index.js.map +1 -0
  84. package/src/generators/open-api/schema.d.ts +4 -0
  85. package/src/generators/open-api/schema.json +18 -0
  86. package/src/generators/sentry/generator.d.ts +4 -0
  87. package/src/generators/sentry/generator.js +152 -0
  88. package/src/generators/sentry/generator.js.map +1 -0
  89. package/src/generators/sentry/index.d.ts +2 -0
  90. package/src/generators/sentry/index.js +7 -0
  91. package/src/generators/sentry/index.js.map +1 -0
  92. package/src/generators/sentry/schema.d.ts +6 -0
  93. package/src/generators/sentry/schema.json +32 -0
  94. package/src/generators/swagger/files/environments/environment.swagger.ts__tmpl__ +1 -0
  95. package/src/generators/swagger/files/swagger.ts__tmpl__ +17 -15
  96. package/src/generators/swagger/generator.js +10 -17
  97. package/src/generators/swagger/generator.js.map +1 -1
  98. package/src/generators/swagger/index.d.ts +2 -0
  99. package/src/generators/swagger/index.js +7 -0
  100. package/src/generators/swagger/index.js.map +1 -0
  101. package/src/generators/swagger/schema.d.ts +1 -0
  102. package/src/generators/swagger/schema.json +3 -0
  103. package/src/generators/validator/generator.d.ts +4 -0
  104. package/src/generators/validator/generator.js +14 -0
  105. package/src/generators/validator/generator.js.map +1 -0
  106. package/src/generators/validator/index.d.ts +2 -0
  107. package/src/generators/validator/index.js +7 -0
  108. package/src/generators/validator/index.js.map +1 -0
  109. package/src/generators/validator/schema.d.ts +4 -0
  110. package/src/generators/validator/schema.json +22 -0
  111. package/src/lib/skip-non-nest-project.js +3 -3
  112. package/src/lib/skip-non-nest-project.js.map +1 -1
package/package.json CHANGED
@@ -1,69 +1,87 @@
1
1
  {
2
+ "version": "16.1.0-dev.40",
2
3
  "name": "@rxap/plugin-nestjs",
3
- "version": "16.1.0-dev.4",
4
- "type": "commonjs",
5
- "generators": "./generators.json",
6
- "publishConfig": {
7
- "access": "public",
8
- "directory": "../../../dist/packages/plugin/nestjs"
9
- },
10
- "keywords": [
11
- "rxap",
12
- "plugin",
13
- "nx",
14
- "nx-plugin",
15
- "packages",
16
- "nestjs"
17
- ],
18
- "homepage": "https:/gitlab.com/rxap/packages/packages/plugin/nestjs",
19
- "bugs": {
20
- "url": "https://gitlab.com/rxap/packages/-/issues",
21
- "email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
22
- },
23
4
  "license": "GPL-3.0-or-later",
24
- "repository": {
25
- "type": "git",
26
- "url": "https://gitlab.com/rxap/packages.git",
27
- "directory": "packages/plugin/nestjs"
28
- },
29
- "author": {
30
- "name": "Merzough Münker",
31
- "email": "mmuenker@digitaix.com"
32
- },
33
5
  "dependencies": {
34
6
  "ignore": "^5.2.4",
35
7
  "process": "0.11.10",
36
8
  "semver": "^7.3.5",
37
- "tslib": "2.6.1"
9
+ "tslib": "2.6.2"
38
10
  },
39
11
  "peerDependencies": {
40
12
  "@nx/devkit": "^16.5.0",
41
13
  "@nx/js": "^16.5.0",
42
- "@rxap/generator-utilities": "^1.1.0-dev.1",
43
- "@rxap/plugin-utilities": "^16.1.0-dev.3",
44
- "@rxap/workspace-utilities": "^0.1.0-dev.1",
45
- "nx": "^16.5.0",
46
- "@rxap/node-utilities": "1.1.0-dev.1",
47
- "@rxap/utilities": "16.0.0-dev.6"
14
+ "@nx/nest": "^16.5.0",
15
+ "@rxap/generator-utilities": "^1.1.0-dev.17",
16
+ "@rxap/plugin-utilities": "^16.1.0-dev.18",
17
+ "@rxap/ts-morph": "^0.1.0-dev.14",
18
+ "@rxap/utilities": "^16.0.0-dev.21",
19
+ "@rxap/workspace-ts-morph": "^0.1.0-dev.9",
20
+ "@rxap/workspace-utilities": "^0.1.0-dev.21",
21
+ "ts-morph": "^18.0.0",
22
+ "tslib": "2.6.2",
23
+ "@rxap/node-utilities": "1.1.0-dev.14"
24
+ },
25
+ "author": {
26
+ "name": "Merzough Münker",
27
+ "email": "mmuenker@digitaix.com"
48
28
  },
29
+ "bugs": {
30
+ "url": "https://gitlab.com/rxap/packages/-/issues",
31
+ "email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
32
+ },
33
+ "executors": "./executors.json",
34
+ "generators": "./generators.json",
35
+ "homepage": "https:/gitlab.com/rxap/packages/packages/plugin/nestjs",
36
+ "keywords": [
37
+ "nestjs",
38
+ "nx",
39
+ "nx-plugin",
40
+ "packages",
41
+ "plugin",
42
+ "plugin-nestjs",
43
+ "rxap"
44
+ ],
49
45
  "nx-migrations": {
50
46
  "packageGroup": [
51
47
  {
52
48
  "package": "@rxap/generator-utilities",
53
- "version": "1.1.0-dev.1"
49
+ "version": "1.1.0-dev.17"
54
50
  },
55
51
  {
56
52
  "package": "@rxap/plugin-utilities",
57
- "version": "16.1.0-dev.3"
53
+ "version": "16.1.0-dev.18"
54
+ },
55
+ {
56
+ "package": "@rxap/ts-morph",
57
+ "version": "0.1.0-dev.14"
58
+ },
59
+ {
60
+ "package": "@rxap/utilities",
61
+ "version": "16.0.0-dev.21"
62
+ },
63
+ {
64
+ "package": "@rxap/workspace-ts-morph",
65
+ "version": "0.1.0-dev.9"
58
66
  },
59
67
  {
60
68
  "package": "@rxap/workspace-utilities",
61
- "version": "0.1.0-dev.1"
69
+ "version": "0.1.0-dev.21"
62
70
  }
63
71
  ]
64
72
  },
65
- "executors": "./executors.json",
66
- "gitHead": "20620e6fe09d85f69aedad8c9193f03a12e58951",
73
+ "publishConfig": {
74
+ "access": "public",
75
+ "directory": "../../../dist/packages/plugin/nestjs"
76
+ },
77
+ "repository": {
78
+ "type": "git",
79
+ "url": "https://gitlab.com/rxap/packages.git",
80
+ "directory": "packages/plugin/nestjs"
81
+ },
82
+ "schematics": "./generators.json",
83
+ "type": "commonjs",
84
+ "gitHead": "cc79abe8b76799cf9e91a91b92e8172b23a74b13",
67
85
  "main": "./src/index.js",
68
86
  "types": "./src/index.d.ts"
69
87
  }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { FeatureMicroserviceGeneratorSchema } from './schema';
3
+ export declare function featureMicroserviceGenerator(tree: Tree, options: FeatureMicroserviceGeneratorSchema): Promise<void>;
4
+ export default featureMicroserviceGenerator;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.featureMicroserviceGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const generator_1 = require("../microservice/generator");
7
+ function featureMicroserviceGenerator(tree, options) {
8
+ var _a, _b;
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ const nxJson = (0, devkit_1.readNxJson)(tree);
11
+ const presetOptions = (_b = (_a = nxJson.generators) === null || _a === void 0 ? void 0 : _a['@rxap/plugin-nestjs:microservice']) !== null && _b !== void 0 ? _b : {};
12
+ yield (0, generator_1.default)(tree, Object.assign(Object.assign(Object.assign(Object.assign({}, presetOptions), { apiPrefix: ['api', 'feature', options.feature].join('/') }), options), { name: options.feature, directory: ['service', 'feature'].join('/') }));
13
+ });
14
+ }
15
+ exports.featureMicroserviceGenerator = featureMicroserviceGenerator;
16
+ exports.default = featureMicroserviceGenerator;
17
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/feature-microservice/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAGoB;AACpB,yDAA8D;AAG9D,SAAsB,4BAA4B,CAChD,IAAU,EACV,OAA2C;;;QAG3C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,MAAA,MAAA,MAAM,CAAC,UAAU,0CAAG,kCAAkC,CAAC,mCAAI,EAAE,CAAC;QAEpF,MAAM,IAAA,mBAAqB,EAAC,IAAI,8DAC3B,aAAa,KAChB,SAAS,EAAE,CAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KACvD,OAAO,KACV,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,SAAS,EAAE,CAAE,SAAS,EAAE,SAAS,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAC7C,CAAC;;CAEJ;AAhBD,oEAgBC;AAED,kBAAe,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").FeatureMicroserviceGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/feature-microservice/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { InitApplicationGeneratorSchema } from '../init-application/schema';
2
+
3
+ export interface FeatureMicroserviceGeneratorSchema extends InitApplicationGeneratorSchema {
4
+ feature: string;
5
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "FeatureMicroservice",
4
+ "title": "",
5
+ "allOf": [
6
+ {
7
+ "type": "object",
8
+ "properties": {
9
+ "feature": {
10
+ "type": "string",
11
+ "description": "The feature of the frontend project",
12
+ "x-prompt": "For which feature of the frontend should the microservice be created?"
13
+ }
14
+ },
15
+ "required": [
16
+ "feature"
17
+ ]
18
+ },
19
+ {
20
+ "$ref": "../init-application/schema.json"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { FrontendMicroserviceGeneratorSchema } from './schema';
3
+ export declare function frontendMicroserviceGenerator(tree: Tree, options: FrontendMicroserviceGeneratorSchema): Promise<void>;
4
+ export default frontendMicroserviceGenerator;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.frontendMicroserviceGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const generator_1 = require("../microservice/generator");
7
+ function frontendMicroserviceGenerator(tree, options) {
8
+ var _a, _b;
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ const nxJson = (0, devkit_1.readNxJson)(tree);
11
+ const presetOptions = (_b = (_a = nxJson.generators) === null || _a === void 0 ? void 0 : _a['@rxap/plugin-nestjs:microservice']) !== null && _b !== void 0 ? _b : {};
12
+ yield (0, generator_1.default)(tree, Object.assign(Object.assign(Object.assign(Object.assign({}, presetOptions), { apiPrefix: ['api', 'app', options.frontend, options.feature].join('/') }), options), { name: options.feature, directory: ['service', 'app', options.frontend].join('/') }));
13
+ });
14
+ }
15
+ exports.frontendMicroserviceGenerator = frontendMicroserviceGenerator;
16
+ exports.default = frontendMicroserviceGenerator;
17
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/frontend-microservice/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAGoB;AACpB,yDAA8D;AAG9D,SAAsB,6BAA6B,CACjD,IAAU,EACV,OAA4C;;;QAG5C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,MAAA,MAAA,MAAM,CAAC,UAAU,0CAAG,kCAAkC,CAAC,mCAAI,EAAE,CAAC;QAEpF,MAAM,IAAA,mBAAqB,EAAC,IAAI,8DAC3B,aAAa,KAChB,SAAS,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KACrE,OAAO,KACV,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,SAAS,EAAE,CAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAC3D,CAAC;;CAEJ;AAhBD,sEAgBC;AAED,kBAAe,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").FrontendMicroserviceGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/frontend-microservice/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { InitApplicationGeneratorSchema } from '../init-application/schema';
2
+
3
+ export interface FrontendMicroserviceGeneratorSchema extends InitApplicationGeneratorSchema {
4
+ frontend: string;
5
+ feature: string;
6
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "FrontendMicroservice",
4
+ "title": "",
5
+ "allOf": [
6
+ {
7
+ "type": "object",
8
+ "properties": {
9
+ "frontend": {
10
+ "type": "string",
11
+ "description": "The name of frontend project",
12
+ "x-prompt": "For which frontend project should the microservice be created?"
13
+ },
14
+ "feature": {
15
+ "type": "string",
16
+ "description": "The feature of the frontend project",
17
+ "x-prompt": "For which feature of the frontend should the microservice be created?"
18
+ }
19
+ },
20
+ "required": [
21
+ "frontend",
22
+ "feature"
23
+ ]
24
+ },
25
+ {
26
+ "$ref": "../init-application/schema.json"
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { HealthIndicatorGeneratorSchema } from './schema';
3
+ export declare function healthIndicatorGenerator(tree: Tree, options: HealthIndicatorGeneratorSchema): Promise<void>;
4
+ export default healthIndicatorGenerator;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.healthIndicatorGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("@rxap/ts-morph");
6
+ const utilities_1 = require("@rxap/utilities");
7
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
8
+ const generator_1 = require("../health-indicator-init/generator");
9
+ function healthIndicatorGenerator(tree, options) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ yield (0, generator_1.default)(tree, options);
12
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
13
+ project: options.project,
14
+ }, (project, [moduleSourceFile, controllerSourceFile, healthIndiectorSourceFile]) => {
15
+ (0, ts_morph_1.AddHealthIndicator)(healthIndiectorSourceFile, options.name);
16
+ (0, ts_morph_1.CoerceNestModuleProvider)(moduleSourceFile, {
17
+ providerObject: (0, utilities_1.dasherize)(options.name) + 'HealthIndicator',
18
+ moduleSpecifier: `./${(0, utilities_1.dasherize)(options.name)}.health-indicator`,
19
+ });
20
+ (0, ts_morph_1.AddHealthEndpoint)(controllerSourceFile, options.name);
21
+ (0, ts_morph_1.AddToGlobalHealthEndpoint)(controllerSourceFile, options.name);
22
+ }, [
23
+ '/app/health/health.module.ts',
24
+ '/app/health/health.controller.ts',
25
+ `/app/health/${(0, utilities_1.dasherize)(options.name)}.health-indicator.ts`,
26
+ ]);
27
+ });
28
+ }
29
+ exports.healthIndicatorGenerator = healthIndicatorGenerator;
30
+ exports.default = healthIndicatorGenerator;
31
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/health-indicator/generator.ts"],"names":[],"mappings":";;;;AACA,6CAKwB;AACxB,+CAA4C;AAC5C,iEAAuE;AACvE,kEAA8E;AAG9E,SAAsB,wBAAwB,CAC5C,IAAU,EACV,OAAuC;;QAEvC,MAAM,IAAA,mBAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAA,gDAA2B,EAAC,IAAI,EAAE;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EAAE,CAAC,OAAO,EAAE,CAAE,gBAAgB,EAAE,oBAAoB,EAAE,yBAAyB,CAAE,EAAE,EAAE;YACpF,IAAA,6BAAkB,EAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAA,mCAAwB,EAAC,gBAAgB,EAAE;gBACzC,cAAc,EAAE,IAAA,qBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB;gBAC3D,eAAe,EAAE,KAAM,IAAA,qBAAS,EAAC,OAAO,CAAC,IAAI,CAAE,mBAAmB;aACnE,CAAC,CAAC;YACH,IAAA,4BAAiB,EAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,IAAA,oCAAyB,EAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,EAAE;YACD,8BAA8B;YAC9B,kCAAkC;YAClC,eAAgB,IAAA,qBAAS,EAAC,OAAO,CAAC,IAAI,CAAE,sBAAsB;SAC/D,CAAC,CAAC;IACL,CAAC;CAAA;AApBD,4DAoBC;AAED,kBAAe,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").HealthIndicatorGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/health-indicator/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface HealthIndicatorGeneratorSchema {
2
+ name: string;
3
+ project: string;
4
+ overwrite?: boolean;
5
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "HealthIndicator",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "The name of the health indicator class",
10
+ "$default": {
11
+ "$source": "argv",
12
+ "index": 0
13
+ },
14
+ "x-prompt": "What name would you like to use for the health indicator?"
15
+ },
16
+ "project": {
17
+ "type": "string",
18
+ "description": "The name of the project.",
19
+ "$default": {
20
+ "$source": "projectName"
21
+ },
22
+ "x-prompt": "For which project should the health indicator be added?"
23
+ },
24
+ "overwrite": {
25
+ "type": "boolean"
26
+ }
27
+ },
28
+ "required": [
29
+ "name",
30
+ "project"
31
+ ]
32
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { HealthIndicatorInitGeneratorSchema } from './schema';
3
+ export declare function healthIndicatorInitGenerator(tree: Tree, options: HealthIndicatorInitGeneratorSchema): Promise<void>;
4
+ export default healthIndicatorInitGenerator;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.healthIndicatorInitGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("@rxap/ts-morph");
6
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
7
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
8
+ function healthIndicatorInitGenerator(tree, options) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
11
+ project: options.project,
12
+ }, (project, [appModuleSourceFile, moduleSourceFile, controllerSourceFile]) => {
13
+ (0, ts_morph_1.CoerceHealthModule)(moduleSourceFile);
14
+ // import HealthModule into AppModule
15
+ (0, ts_morph_1.CoerceNestModuleImport)(appModuleSourceFile, {
16
+ moduleName: 'HealthModule',
17
+ moduleSpecifier: './health/health.module',
18
+ });
19
+ (0, ts_morph_1.CoerceHealthController)(controllerSourceFile);
20
+ // import HealthController into HealthModule
21
+ (0, ts_morph_1.CoerceNestModuleController)(moduleSourceFile, {
22
+ name: 'HealthController',
23
+ moduleSpecifier: './health.controller',
24
+ });
25
+ }, [
26
+ '/app/app.module.ts',
27
+ '/app/health/health.module.ts?',
28
+ '/app/health/health.controller.ts?',
29
+ ]);
30
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@nestjs/terminus', 'latest', { soft: true });
31
+ });
32
+ }
33
+ exports.healthIndicatorInitGenerator = healthIndicatorInitGenerator;
34
+ exports.default = healthIndicatorInitGenerator;
35
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/health-indicator-init/generator.ts"],"names":[],"mappings":";;;;AACA,6CAKwB;AACxB,iEAAuE;AACvE,mEAAqE;AAGrE,SAAsB,4BAA4B,CAChD,IAAU,EACV,OAA2C;;QAE3C,IAAA,gDAA2B,EAAC,IAAI,EAAE;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EAAE,CAAC,OAAO,EAAE,CAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,CAAE,EAAE,EAAE;YAC9E,IAAA,6BAAkB,EAAC,gBAAgB,CAAC,CAAC;YACrC,qCAAqC;YACrC,IAAA,iCAAsB,EAAC,mBAAmB,EAAE;gBAC1C,UAAU,EAAE,cAAc;gBAC1B,eAAe,EAAE,wBAAwB;aAC1C,CAAC,CAAC;YACH,IAAA,iCAAsB,EAAC,oBAAoB,CAAC,CAAC;YAC7C,4CAA4C;YAC5C,IAAA,qCAA0B,EAAC,gBAAgB,EAAE;gBAC3C,IAAI,EAAE,kBAAkB;gBACxB,eAAe,EAAE,qBAAqB;aACvC,CAAC,CAAC;QACL,CAAC,EAAE;YACD,oBAAoB;YACpB,+BAA+B;YAC/B,mCAAmC;SACpC,CAAC,CAAC;QACH,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;CAAA;AAzBD,oEAyBC;AAED,kBAAe,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").HealthIndicatorInitGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/health-indicator-init/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface HealthIndicatorInitGeneratorSchema {
2
+ project: string;
3
+ overwrite?: boolean;
4
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "HealthIndicatorInit",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "The name of the project.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ },
13
+ "x-prompt": "For which project should the health indicator module be initialized?"
14
+ },
15
+ "overwrite": {
16
+ "type": "boolean"
17
+ }
18
+ },
19
+ "required": [
20
+ "project"
21
+ ]
22
+ }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
6
7
  const skip_non_nest_project_1 = require("../../lib/skip-non-nest-project");
7
8
  const generator_1 = require("../init-application/generator");
8
9
  const generator_2 = require("../init-library/generator");
@@ -19,12 +20,14 @@ function initGenerator(tree, options) {
19
20
  if (skipProject(tree, options, project, projectName)) {
20
21
  continue;
21
22
  }
22
- console.log(`init project: ${projectName}`);
23
- if (project.projectType === 'library') {
24
- yield (0, generator_2.default)(tree, Object.assign(Object.assign({}, options), { projects: [projectName] }));
23
+ if (!options.skipProjects) {
24
+ console.log(`init project: ${projectName}`);
25
25
  }
26
- if (project.projectType === 'application') {
27
- yield (0, generator_1.default)(tree, Object.assign(Object.assign({}, options), { projects: [projectName] }));
26
+ if ((0, workspace_utilities_1.IsLibraryProject)(project)) {
27
+ yield (0, generator_2.default)(tree, Object.assign(Object.assign({}, options), { projects: [projectName], skipProjects: options.skipProjects }));
28
+ }
29
+ if ((0, workspace_utilities_1.IsApplicationProject)(project)) {
30
+ yield (0, generator_1.default)(tree, Object.assign(Object.assign({}, options), { projects: [projectName], skipProjects: options.skipProjects }));
28
31
  }
29
32
  }
30
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAIoB;AACpB,2EAAqE;AACrE,6DAAqE;AACrE,yDAA6D;AAG7D,SAAS,WAAW,CAAC,IAAU,EAAE,OAA4B,EAAE,OAA6B,EAAE,WAAmB;IAE/G,IAAI,IAAA,0CAAkB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC3D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AAEf,CAAC;AAED,SAAsB,aAAa,CAAC,IAAU,EAAE,OAA4B;;QAC1E,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAE/C,KAAK,MAAM,CAAE,WAAW,EAAE,OAAO,CAAE,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAElE,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACpD,SAAS;aACV;YAED,OAAO,CAAC,GAAG,CAAC,iBAAkB,WAAY,EAAE,CAAC,CAAC;YAE9C,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;gBACrC,MAAM,IAAA,mBAAoB,EAAC,IAAI,kCAExB,OAAO,KACV,QAAQ,EAAE,CAAE,WAAW,CAAE,IAE5B,CAAC;aACH;YAED,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,EAAE;gBACzC,MAAM,IAAA,mBAAwB,EAAC,IAAI,kCAE5B,OAAO,KACV,QAAQ,EAAE,CAAE,WAAW,CAAE,IAE5B,CAAC;aACH;SAEF;IAEH,CAAC;CAAA;AA/BD,sCA+BC;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAIoB;AACpB,mEAGmC;AACnC,2EAAqE;AACrE,6DAAqE;AACrE,yDAA6D;AAG7D,SAAS,WAAW,CAAC,IAAU,EAAE,OAA4B,EAAE,OAA6B,EAAE,WAAmB;IAE/G,IAAI,IAAA,0CAAkB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC3D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AAEf,CAAC;AAED,SAAsB,aAAa,CAAC,IAAU,EAAE,OAA4B;;QAC1E,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAE/C,KAAK,MAAM,CAAE,WAAW,EAAE,OAAO,CAAE,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAElE,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACpD,SAAS;aACV;YAED,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBAEzB,OAAO,CAAC,GAAG,CAAC,iBAAkB,WAAY,EAAE,CAAC,CAAC;aAE/C;YAED,IAAI,IAAA,sCAAgB,EAAC,OAAO,CAAC,EAAE;gBAC7B,MAAM,IAAA,mBAAoB,EAAC,IAAI,kCAExB,OAAO,KACV,QAAQ,EAAE,CAAE,WAAW,CAAE,EACzB,YAAY,EAAE,OAAO,CAAC,YAAY,IAErC,CAAC;aACH;YAED,IAAI,IAAA,0CAAoB,EAAC,OAAO,CAAC,EAAE;gBACjC,MAAM,IAAA,mBAAwB,EAAC,IAAI,kCAE5B,OAAO,KACV,QAAQ,EAAE,CAAE,WAAW,CAAE,EACzB,YAAY,EAAE,OAAO,CAAC,YAAY,IAErC,CAAC;aACH;SAEF;IAEH,CAAC;CAAA;AArCD,sCAqCC;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").InitGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export interface InitGeneratorSchema {
2
2
  projects?: string[];
3
+ overwrite?: boolean;
4
+ skipProjects?: boolean;
3
5
  }
@@ -10,6 +10,16 @@
10
10
  "items": {
11
11
  "type": "string"
12
12
  }
13
+ },
14
+ "overwrite": {
15
+ "type": "boolean",
16
+ "default": false,
17
+ "description": "Whether to overwrite existing files"
18
+ },
19
+ "skipProjects": {
20
+ "type": "boolean",
21
+ "default": false,
22
+ "description": "Whether to skip executing project specific initialization"
13
23
  }
14
24
  },
15
25
  "required": []
@@ -0,0 +1,3 @@
1
+ import { CoerceNestAppConfigOptionsItem } from '@rxap/ts-morph';
2
+ import { SourceFile } from 'ts-morph';
3
+ export declare function ExtractExistingConfigValidation(sourceFile: SourceFile): CoerceNestAppConfigOptionsItem[];
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtractExistingConfigValidation = void 0;
4
+ const ts_morph_1 = require("@rxap/ts-morph");
5
+ const ts_morph_2 = require("ts-morph");
6
+ function ExtractExistingConfigValidation(sourceFile) {
7
+ const metadata = (0, ts_morph_1.GetNestModuleMetadata)(sourceFile);
8
+ const imports = metadata.getProperty('imports');
9
+ if (!imports) {
10
+ return [];
11
+ }
12
+ const arrayLiteralExpressionProperty = imports.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment);
13
+ const arrayLiteralExpression = arrayLiteralExpressionProperty.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
14
+ for (const item of arrayLiteralExpression.getElements()) {
15
+ if (item.getText().trim().startsWith('ConfigModule')) {
16
+ const configModule = item.asKindOrThrow(ts_morph_2.SyntaxKind.CallExpression);
17
+ const configModuleArguments = configModule.getArguments();
18
+ if (configModuleArguments.length === 1) {
19
+ const configModuleArgument = configModuleArguments[0];
20
+ const objectLiteralExpression = configModuleArgument.asKindOrThrow(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
21
+ const validateLiteralElement = objectLiteralExpression.getProperty('validationSchema')
22
+ .asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment);
23
+ const joiObject = validateLiteralElement === null || validateLiteralElement === void 0 ? void 0 : validateLiteralElement.getInitializer();
24
+ if ((joiObject === null || joiObject === void 0 ? void 0 : joiObject.getKind()) === ts_morph_2.SyntaxKind.CallExpression) {
25
+ const joiObjectArgument = joiObject.asKindOrThrow(ts_morph_2.SyntaxKind.CallExpression).getArguments()[0];
26
+ const objectLiteralExpression2 = joiObjectArgument === null || joiObjectArgument === void 0 ? void 0 : joiObjectArgument.asKindOrThrow(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
27
+ const items = [];
28
+ for (const property of objectLiteralExpression2.getProperties()) {
29
+ const propertyAssignment = property.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment);
30
+ const initializer = propertyAssignment.getInitializer();
31
+ const text = initializer.getText();
32
+ const item = {
33
+ name: propertyAssignment.getName(),
34
+ builder: () => text,
35
+ text,
36
+ };
37
+ items.push(item);
38
+ }
39
+ return items;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ return [];
45
+ }
46
+ exports.ExtractExistingConfigValidation = ExtractExistingConfigValidation;
47
+ //# sourceMappingURL=extract-existing-config-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-existing-config-validation.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/extract-existing-config-validation.ts"],"names":[],"mappings":";;;AAAA,6CAGwB;AACxB,uCAGkB;AAElB,SAAgB,+BAA+B,CAAC,UAAsB;IAEpE,MAAM,QAAQ,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;IACD,MAAM,8BAA8B,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5F,MAAM,sBAAsB,GAAG,8BAA8B,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IAC7H,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,WAAW,EAAE,EAAE;QACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAU,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,qBAAqB,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;YAC1D,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;gBACvG,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,WAAW,CAAC,kBAAkB,CAAC;qBAC/B,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC;gBACpG,MAAM,SAAS,GAAG,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,cAAc,EAAE,CAAC;gBAC3D,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,MAAK,qBAAU,CAAC,cAAc,EAAE;oBACtD,MAAM,iBAAiB,GAAG,SAAS,CAAC,aAAa,CAAC,qBAAU,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/F,MAAM,wBAAwB,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;oBACtG,MAAM,KAAK,GAAqC,EAAE,CAAC;oBACnD,KAAK,MAAM,QAAQ,IAAI,wBAAwB,CAAC,aAAa,EAAE,EAAE;wBAC/D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC;wBACjF,MAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,EAAE,CAAC;wBACxD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;wBACnC,MAAM,IAAI,GAAmC;4BAC3C,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE;4BAClC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;4BACnB,IAAI;yBACE,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClB;oBACD,OAAO,KAAK,CAAC;iBACd;aACF;SACF;KACF;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAzCD,0EAyCC"}