@aws/nx-plugin 0.49.0 → 0.50.0

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 (137) hide show
  1. package/generators.json +22 -1
  2. package/package.json +1 -1
  3. package/sdk/ts.d.ts +2 -0
  4. package/sdk/ts.js +6 -3
  5. package/sdk/ts.js.map +1 -1
  6. package/src/api-connection/generator.d.ts +2 -2
  7. package/src/api-connection/generator.js +20 -0
  8. package/src/api-connection/generator.js.map +1 -1
  9. package/src/infra/app/__snapshots__/generator.spec.ts.snap +124 -14
  10. package/src/infra/app/files/app/README.md.template +5 -5
  11. package/src/infra/app/files/app/checkov.yml.template +12 -0
  12. package/src/infra/app/files/app/src/main.ts.template +2 -4
  13. package/src/infra/app/generator.js +13 -8
  14. package/src/infra/app/generator.js.map +1 -1
  15. package/src/infra/app/schema.d.ts +0 -8
  16. package/src/infra/app/schema.json +0 -16
  17. package/src/license/config.js +3 -3
  18. package/src/license/config.js.map +1 -1
  19. package/src/open-api/ts-hooks/__snapshots__/generator.spec.tsx.snap +114 -0
  20. package/src/open-api/ts-hooks/generator.spec.tsx +176 -0
  21. package/src/open-api/utils/codegen-data.js +42 -5
  22. package/src/open-api/utils/codegen-data.js.map +1 -1
  23. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
  24. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +55 -2
  25. package/src/py/fast-api/generator.js +8 -55
  26. package/src/py/fast-api/generator.js.map +1 -1
  27. package/src/py/fast-api/react/generator.js +9 -111
  28. package/src/py/fast-api/react/generator.js.map +1 -1
  29. package/src/py/lambda-function/generator.js +1 -1
  30. package/src/py/lambda-function/generator.js.map +1 -1
  31. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -2
  32. package/src/py/mcp-server/generator.js +1 -1
  33. package/src/py/mcp-server/generator.js.map +1 -1
  34. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +3 -2
  35. package/src/py/strands-agent/generator.js +1 -1
  36. package/src/py/strands-agent/generator.js.map +1 -1
  37. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +576 -0
  38. package/src/smithy/project/files/build.Dockerfile.template +97 -0
  39. package/src/smithy/project/files/smithy-build.json.template +25 -0
  40. package/src/smithy/project/files/src/main.smithy.template +19 -0
  41. package/src/smithy/project/files/src/operations/echo.smithy.template +18 -0
  42. package/src/smithy/project/generator.d.ts +10 -0
  43. package/src/smithy/project/generator.js +70 -0
  44. package/src/smithy/project/generator.js.map +1 -0
  45. package/src/smithy/project/schema.d.ts +11 -0
  46. package/src/smithy/project/schema.json +42 -0
  47. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +270 -0
  48. package/src/smithy/react-connection/files/model/extensions.smithy.template +33 -0
  49. package/src/smithy/react-connection/generator.d.ts +10 -0
  50. package/src/smithy/react-connection/generator.js +100 -0
  51. package/src/smithy/react-connection/generator.js.map +1 -0
  52. package/src/smithy/react-connection/schema.d.ts +8 -0
  53. package/src/smithy/react-connection/schema.json +26 -0
  54. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +3023 -0
  55. package/src/smithy/ts/api/files/context.ts.template +12 -0
  56. package/src/smithy/ts/api/files/handler.ts.template +50 -0
  57. package/src/smithy/ts/api/files/index.ts.template +0 -0
  58. package/src/smithy/ts/api/files/local-server.ts.template +41 -0
  59. package/src/smithy/ts/api/files/operations/echo.ts.template +7 -0
  60. package/src/smithy/ts/api/files/service.ts.template +8 -0
  61. package/src/smithy/ts/api/generator.d.ts +10 -0
  62. package/src/smithy/ts/api/generator.js +154 -0
  63. package/src/smithy/ts/api/generator.js.map +1 -0
  64. package/src/smithy/ts/api/schema.d.ts +14 -0
  65. package/src/smithy/ts/api/schema.json +56 -0
  66. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +61 -2
  67. package/src/trpc/backend/generator.js +6 -20
  68. package/src/trpc/backend/generator.js.map +1 -1
  69. package/src/trpc/backend/schema.d.ts +2 -1
  70. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +3 -3
  71. package/src/ts/lambda-function/generator.js +10 -10
  72. package/src/ts/lambda-function/generator.js.map +1 -1
  73. package/src/ts/lib/eslint.d.ts +7 -0
  74. package/src/ts/lib/eslint.js +37 -29
  75. package/src/ts/lib/eslint.js.map +1 -1
  76. package/src/ts/lib/generator.js +2 -2
  77. package/src/ts/lib/generator.js.map +1 -1
  78. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +3 -2
  79. package/src/ts/mcp-server/files/Dockerfile.template +1 -1
  80. package/src/ts/mcp-server/generator.js +20 -14
  81. package/src/ts/mcp-server/generator.js.map +1 -1
  82. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +6 -6
  83. package/src/ts/nx-generator/generator.js +3 -2
  84. package/src/ts/nx-generator/generator.js.map +1 -1
  85. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +264 -3
  86. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +10 -0
  87. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +49 -0
  88. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +1 -1
  89. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +1 -1
  90. package/src/utils/api-connection/open-api/react.d.ts +43 -0
  91. package/src/utils/api-connection/open-api/react.js +132 -0
  92. package/src/utils/api-connection/open-api/react.js.map +1 -0
  93. package/src/utils/api-constructs/api-constructs.d.ts +6 -2
  94. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  95. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +4 -4
  96. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +7 -4
  97. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +37 -2
  98. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +15 -0
  99. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -1
  100. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -1
  101. package/src/utils/api-constructs/open-api-metadata.d.ts +17 -0
  102. package/src/utils/api-constructs/open-api-metadata.js +68 -0
  103. package/src/utils/api-constructs/open-api-metadata.js.map +1 -0
  104. package/src/utils/bundle/bundle.d.ts +35 -0
  105. package/src/utils/bundle/bundle.js +107 -0
  106. package/src/utils/bundle/bundle.js.map +1 -0
  107. package/src/utils/bundle/files/ts/rolldown.config.ts.template +3 -0
  108. package/src/utils/files/common/constructs/src/core/checkov.ts.template +44 -0
  109. package/src/utils/files/common/constructs/src/core/index.ts.template +1 -0
  110. package/src/utils/fs.d.ts +16 -0
  111. package/src/utils/fs.js +32 -0
  112. package/src/utils/fs.js.map +1 -0
  113. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +8 -0
  114. package/src/utils/nx.d.ts +10 -3
  115. package/src/utils/nx.js +18 -3
  116. package/src/utils/nx.js.map +1 -1
  117. package/src/utils/versions.d.ts +6 -2
  118. package/src/utils/versions.js +5 -1
  119. package/src/utils/versions.js.map +1 -1
  120. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +56 -2
  121. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/aws-prototyping.guard +0 -1282
  122. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/cfn-nag.guard +0 -6839
  123. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/hipaa-security.guard +0 -2807
  124. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/nist-csf.guard +0 -2585
  125. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/pci-dss-3-2-1.guard +0 -2236
  126. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/wa-reliability-pillar.guard +0 -885
  127. package/src/infra/app/files/common/constructs/src/core/cfn-guard-rules/wa-security-pillar.guard +0 -2205
  128. package/src/infra/app/files/common/constructs/src/core/cfn-guard.ts.template +0 -67
  129. package/src/utils/bundle.d.ts +0 -16
  130. package/src/utils/bundle.js +0 -48
  131. package/src/utils/bundle.js.map +0 -1
  132. package/src/utils/esbuild.d.ts +0 -15
  133. package/src/utils/esbuild.js +0 -46
  134. package/src/utils/esbuild.js.map +0 -1
  135. /package/src/{py/fast-api/react/files/website → utils/api-connection/open-api/files}/components/__apiNameClassName__Provider.tsx.template +0 -0
  136. /package/src/{py/fast-api/react/files/website → utils/api-connection/open-api/files}/hooks/use__apiNameClassName__.tsx.template +0 -0
  137. /package/src/{py/fast-api/react/files/website → utils/api-connection/open-api/files}/hooks/use__apiNameClassName__Client.tsx.template +0 -0
@@ -1,67 +0,0 @@
1
- import * as url from 'url';
2
- import { CfnGuardValidator as _CfnGuardValidator } from '@cdklabs/cdk-validator-cfnguard';
3
- import { IConstruct } from 'constructs';
4
- import { CfnResource } from 'aws-cdk-lib';
5
-
6
- /**
7
- * Suppresses a rule for a construct tree.
8
- *
9
- * @param construct The root construct to suppress the rule for.
10
- * @param ruleName The name of the rule to suppress.
11
- * @param predicate A predicate function that determines whether the rule should be suppressed for the given construct or any of its descendants.
12
- *
13
- * @example
14
- * The following example suppresses the RULE_NAME for the given construct.
15
- * suppressRule(construct, 'RULE_NAME')
16
- *
17
- * @example
18
- * The following example suppresses the RULE_NAME for the construct or any of its descendants if it is an instance of Bucket:
19
- * suppressRule(construct, 'RULE_NAME', (construct) => construct instanceof Bucket)
20
- */
21
- export const suppressRule = (
22
- construct: IConstruct,
23
- ruleName: string,
24
- predicate?: (construct: IConstruct) => boolean,
25
- ) => {
26
- const resources = (
27
- predicate ? construct.node.findAll().filter(predicate) : [construct]
28
- )
29
- .map((resource) => {
30
- if (CfnResource.isCfnResource(resource)) {
31
- return resource;
32
- } else return resource.node.defaultChild;
33
- })
34
- .filter((resource) => CfnResource.isCfnResource(resource));
35
-
36
- resources.forEach((resource) => {
37
- const metadata = resource.getMetadata('guard') || {};
38
- metadata['SuppressedRules'] = [
39
- ...(metadata['SuppressedRules'] ?? []),
40
- ruleName,
41
- ];
42
- resource.addMetadata('guard', metadata);
43
- });
44
- };
45
-
46
- export enum RuleSet {
47
- AWS_PROTOTYPING = 'aws-prototyping.guard',
48
- CFN_NAG = 'cfn-nag.guard',
49
- HIPAA = 'hipaa-security.guard',
50
- NIST_CSF = 'nist-csf.guard',
51
- PCI_DSS_3_2_1 = 'pci-dss-3-2-1.guard',
52
- WELL_ARCHITECTED_RELIABILITY = 'wa-reliability-pillar.guard',
53
- WELL_ARCHITECTED_SECURITY = 'wa-security-pillar.guard',
54
- }
55
-
56
- export class CfnGuardValidator extends _CfnGuardValidator {
57
- constructor(guardRule: RuleSet) {
58
- super({
59
- controlTowerRulesEnabled: false,
60
- rules: [
61
- url.fileURLToPath(
62
- new URL(`./cfn-guard-rules/${guardRule}`, import.meta.url),
63
- ),
64
- ],
65
- });
66
- }
67
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
- import { ProjectConfiguration } from '@nx/devkit';
6
- export interface AddPythonBundleTargetOptions {
7
- /**
8
- * Python platform
9
- * @default x86_64-manylinux2014
10
- */
11
- pythonPlatform?: 'x86_64-manylinux2014' | 'aarch64-manylinux2014';
12
- }
13
- /**
14
- * Adds a bundle target to the given project if it does not exist, and updates the build target to depend on it
15
- */
16
- export declare const addPythonBundleTarget: (project: ProjectConfiguration, opts?: AddPythonBundleTargetOptions) => void;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.addPythonBundleTarget = void 0;
8
- /**
9
- * Create a target for bundling a python project
10
- */
11
- const createPythonBundleTarget = ({ projectDir, packageName, pythonPlatform, }) => {
12
- return {
13
- cache: true,
14
- executor: 'nx:run-commands',
15
- outputs: [`{workspaceRoot}/dist/${projectDir}/bundle`],
16
- options: {
17
- commands: [
18
- `uv export --frozen --no-dev --no-editable --project ${projectDir} --package ${packageName} -o dist/${projectDir}/bundle/requirements.txt`,
19
- `uv pip install -n --no-deps --no-installer-metadata --no-compile-bytecode --python-platform ${pythonPlatform} --target dist/${projectDir}/bundle -r dist/${projectDir}/bundle/requirements.txt`,
20
- ],
21
- parallel: false,
22
- },
23
- };
24
- };
25
- /**
26
- * Adds a bundle target to the given project if it does not exist, and updates the build target to depend on it
27
- */
28
- const addPythonBundleTarget = (project, opts) => {
29
- var _a, _b, _c, _d;
30
- if (!project.targets) {
31
- project.targets = {};
32
- }
33
- if (!((_a = project.targets) === null || _a === void 0 ? void 0 : _a.bundle)) {
34
- project.targets.bundle = Object.assign(Object.assign({}, createPythonBundleTarget({
35
- projectDir: project.root,
36
- packageName: project.name,
37
- pythonPlatform: (_b = opts === null || opts === void 0 ? void 0 : opts.pythonPlatform) !== null && _b !== void 0 ? _b : 'x86_64-manylinux2014',
38
- })), { dependsOn: ['compile'] });
39
- }
40
- if ((_c = project.targets) === null || _c === void 0 ? void 0 : _c.build) {
41
- project.targets.build.dependsOn = [
42
- ...((_d = project.targets.build.dependsOn) !== null && _d !== void 0 ? _d : []).filter((t) => t !== 'bundle'),
43
- 'bundle',
44
- ];
45
- }
46
- };
47
- exports.addPythonBundleTarget = addPythonBundleTarget;
48
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/bundle.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAyBH;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,EAChC,UAAU,EACV,WAAW,EACX,cAAc,GACkB,EAAuB,EAAE;IACzD,OAAO;QACL,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,wBAAwB,UAAU,SAAS,CAAC;QACtD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,uDAAuD,UAAU,cAAc,WAAW,YAAY,UAAU,0BAA0B;gBAC1I,+FAA+F,cAAc,kBAAkB,UAAU,mBAAmB,UAAU,0BAA0B;aACjM;YACD,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,OAA6B,EAC7B,IAAmC,EACnC,EAAE;;IACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,mCACjB,wBAAwB,CAAC;YAC1B,UAAU,EAAE,OAAO,CAAC,IAAI;YACxB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,cAAc,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,sBAAsB;SAC/D,CAAC,KACF,SAAS,EAAE,CAAC,SAAS,CAAC,GACvB,CAAC;IACJ,CAAC;IAED,IAAI,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG;YAChC,GAAG,CAAC,MAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC;YACxE,QAAQ;SACT,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAzBW,QAAA,qBAAqB,yBAyBhC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
- import { ProjectConfiguration } from '@nx/devkit';
6
- export interface AddEsbuildBundleTargetProps {
7
- bundleTargetName: string;
8
- targetFilePath: string;
9
- extraEsbuildArgs?: string;
10
- postBundleCommands?: string[];
11
- }
12
- /**
13
- * Mutates the given project with an esbuild bundle target, and hooks up dependencies
14
- */
15
- export declare const addEsbuildBundleTarget: (projectConfig: ProjectConfiguration, { bundleTargetName, targetFilePath, extraEsbuildArgs, postBundleCommands, }: AddEsbuildBundleTargetProps) => void;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addEsbuildBundleTarget = void 0;
4
- /**
5
- * Mutates the given project with an esbuild bundle target, and hooks up dependencies
6
- */
7
- const addEsbuildBundleTarget = (projectConfig, { bundleTargetName, targetFilePath, extraEsbuildArgs, postBundleCommands, }) => {
8
- var _a, _b, _c, _d;
9
- // Make sure the project has targets
10
- if (!projectConfig.targets) {
11
- projectConfig.targets = {};
12
- }
13
- // Add the bundle target
14
- projectConfig.targets[bundleTargetName] = {
15
- cache: true,
16
- executor: 'nx:run-commands',
17
- outputs: [`{workspaceRoot}/dist/${projectConfig.root}/${bundleTargetName}`],
18
- options: {
19
- commands: [
20
- `esbuild ${targetFilePath} --bundle --platform=node --target=node22 --format=cjs --outfile=dist/${projectConfig.root}/${bundleTargetName}/index.js${extraEsbuildArgs ? ` ${extraEsbuildArgs}` : ''}`,
21
- ...(postBundleCommands !== null && postBundleCommands !== void 0 ? postBundleCommands : []),
22
- ],
23
- parallel: false,
24
- },
25
- dependsOn: ['compile'],
26
- };
27
- // Add the bundle target if it doesn't exist
28
- projectConfig.targets.bundle = (_a = projectConfig.targets.bundle) !== null && _a !== void 0 ? _a : {
29
- cache: true,
30
- dependsOn: [],
31
- };
32
- // Add the esbuild bundle target to the main bundle target's dependsOn
33
- projectConfig.targets.bundle.dependsOn = [
34
- ...((_b = projectConfig.targets.bundle.dependsOn) !== null && _b !== void 0 ? _b : []).filter((d) => d !== bundleTargetName),
35
- bundleTargetName,
36
- ];
37
- if (!((_c = projectConfig.targets) === null || _c === void 0 ? void 0 : _c.build)) {
38
- projectConfig.targets.build = {};
39
- }
40
- projectConfig.targets.build.dependsOn = [
41
- ...((_d = projectConfig.targets.build.dependsOn) !== null && _d !== void 0 ? _d : []).filter((t) => t !== 'bundle'),
42
- 'bundle',
43
- ];
44
- };
45
- exports.addEsbuildBundleTarget = addEsbuildBundleTarget;
46
- //# sourceMappingURL=esbuild.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/esbuild.ts"],"names":[],"mappings":";;;AAaA;;GAEG;AACI,MAAM,sBAAsB,GAAG,CACpC,aAAmC,EACnC,EACE,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACU,EACxB,EAAE;;IACR,oCAAoC;IACpC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC3B,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,wBAAwB;IACxB,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG;QACxC,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,wBAAwB,aAAa,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC;QAC3E,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,WAAW,cAAc,yEAAyE,aAAa,CAAC,IAAI,IAAI,gBAAgB,YAAY,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpM,GAAG,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC;aAC9B;YACD,QAAQ,EAAE,KAAK;SAChB;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC;IAEF,4CAA4C;IAC5C,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,MAAA,aAAa,CAAC,OAAO,CAAC,MAAM,mCAAI;QAC7D,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,EAAE;KACd,CAAC;IACF,sEAAsE;IACtE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG;QACvC,GAAG,CAAC,MAAA,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAC9B;QACD,gBAAgB;KACjB,CAAC;IAEF,IAAI,CAAC,CAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,KAAK,CAAA,EAAE,CAAC;QAClC,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG;QACtC,GAAG,CAAC,MAAA,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CACtB;QACD,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AApDW,QAAA,sBAAsB,0BAoDjC"}