@aws/nx-plugin 1.0.0-rc.31 → 1.0.0-rc.33

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 (198) hide show
  1. package/LICENSE-THIRD-PARTY +72 -70
  2. package/package.json +5 -5
  3. package/src/infra/app/__snapshots__/generator.spec.ts.snap +15 -15
  4. package/src/infra/app/files/app/src/main.ts.template +1 -1
  5. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  6. package/src/infra/app/generator.js +3 -1
  7. package/src/infra/app/generator.js.map +1 -1
  8. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +64 -3
  9. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +280 -0
  10. package/src/open-api/ts-client/files/client.gen.ts.template +37 -2
  11. package/src/open-api/ts-client/generator.js +5 -1
  12. package/src/open-api/ts-client/generator.js.map +1 -1
  13. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +2 -2
  14. package/src/open-api/ts-hooks/generator.js +5 -1
  15. package/src/open-api/ts-hooks/generator.js.map +1 -1
  16. package/src/open-api/utils/normalise.js +13 -6
  17. package/src/open-api/utils/normalise.js.map +1 -1
  18. package/src/open-api/utils/parser.js +12 -1
  19. package/src/open-api/utils/parser.js.map +1 -1
  20. package/src/open-api/utils/types.d.ts +4 -1
  21. package/src/open-api/utils/types.js.map +1 -1
  22. package/src/preset/__snapshots__/generator.spec.ts.snap +1 -1
  23. package/src/preset/generator.d.ts +1 -1
  24. package/src/preset/generator.js +5 -2
  25. package/src/preset/generator.js.map +1 -1
  26. package/src/preset/schema.d.js.map +1 -1
  27. package/src/preset/schema.d.ts +2 -0
  28. package/src/preset/schema.json +6 -0
  29. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +7 -7
  30. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +8 -8
  31. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +89 -3
  32. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  33. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +426 -18
  34. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  35. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +91 -5
  36. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +283 -11
  37. package/src/smithy/ts/api/files/handler.ts.template +2 -2
  38. package/src/smithy/ts/api/files/local-server.ts.template +2 -2
  39. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  40. package/src/smithy/ts/api/files/service.ts.template +3 -3
  41. package/src/smithy/ts/api/generator.js +3 -1
  42. package/src/smithy/ts/api/generator.js.map +1 -1
  43. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +426 -18
  44. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  45. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  46. package/src/trpc/backend/files/src/index.ts.template +5 -5
  47. package/src/trpc/backend/files/src/init.ts.template +1 -1
  48. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  49. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  50. package/src/trpc/backend/files/src/procedures/echo.ts.template +2 -2
  51. package/src/trpc/backend/files/src/router.ts.template +2 -2
  52. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  53. package/src/trpc/backend/generator.js +3 -1
  54. package/src/trpc/backend/generator.js.map +1 -1
  55. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +89 -3
  56. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +2 -2
  57. package/src/ts/agent/a2a-connection/generator.js +3 -1
  58. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  59. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  60. package/src/ts/agent/files/ag-ui/index.ts.template +1 -1
  61. package/src/ts/agent/files/http/client.ts.template +2 -2
  62. package/src/ts/agent/files/http/index.ts.template +2 -2
  63. package/src/ts/agent/files/http/router.ts.template +3 -3
  64. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +2 -2
  65. package/src/ts/agent/gateway-connection/generator.js +3 -1
  66. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  67. package/src/ts/agent/generator.js +5 -2
  68. package/src/ts/agent/generator.js.map +1 -1
  69. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +2 -2
  70. package/src/ts/agent/mcp-connection/generator.js +3 -1
  71. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  72. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +3 -2
  73. package/src/ts/astro-docs/generator.js +2 -0
  74. package/src/ts/astro-docs/generator.js.map +1 -1
  75. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  76. package/src/ts/dynamodb/files/src/client.ts.template +5 -2
  77. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  78. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  79. package/src/ts/dynamodb/files/src/index.ts.template +2 -2
  80. package/src/ts/dynamodb/generator.js +3 -1
  81. package/src/ts/dynamodb/generator.js.map +1 -1
  82. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  83. package/src/ts/lib/generator.js +7 -1
  84. package/src/ts/lib/generator.js.map +1 -1
  85. package/src/ts/lib/ts-project-utils.js +19 -4
  86. package/src/ts/lib/ts-project-utils.js.map +1 -1
  87. package/src/ts/lib/types.d.ts +6 -0
  88. package/src/ts/lib/types.js.map +1 -1
  89. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +94 -31
  90. package/src/ts/mcp-server/generator.js +11 -22
  91. package/src/ts/mcp-server/generator.js.map +1 -1
  92. package/src/ts/nx-generator/files/local/generator.ts.template +2 -2
  93. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +2 -2
  94. package/src/ts/nx-generator/generator.js +5 -2
  95. package/src/ts/nx-generator/generator.js.map +1 -1
  96. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  97. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  98. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  99. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  100. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  101. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
  102. package/src/ts/nx-plugin/generator.js +3 -1
  103. package/src/ts/nx-plugin/generator.js.map +1 -1
  104. package/src/ts/nx-plugin/utils.js +7 -4
  105. package/src/ts/nx-plugin/utils.js.map +1 -1
  106. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
  107. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +2 -2
  108. package/src/ts/rdb/files/src/index.ts.template +1 -1
  109. package/src/ts/rdb/files/src/migration-handler.ts.template +1 -1
  110. package/src/ts/rdb/files/src/prisma.ts.template +7 -4
  111. package/src/ts/rdb/generator.js +3 -1
  112. package/src/ts/rdb/generator.js.map +1 -1
  113. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +35 -35
  114. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
  115. package/src/utils/agent-chat/agent-chat.js +3 -1
  116. package/src/utils/agent-chat/agent-chat.js.map +1 -1
  117. package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
  118. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
  119. package/src/utils/agent-chat/files/http-py/chat.ts.template +2 -2
  120. package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
  121. package/src/utils/agent-connection/agent-connection.js +4 -1
  122. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  123. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +2 -2
  124. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +1 -1
  125. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +2 -2
  126. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +2 -2
  127. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +1 -1
  128. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +1 -1
  129. package/src/utils/agent-connection/files/core-strands/base/with-session-id-strands.ts.template +1 -1
  130. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
  131. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +1 -1
  132. package/src/utils/agent-core-constructs/agent-core-constructs.js +10 -3
  133. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  134. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +3 -3
  135. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +4 -4
  136. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +1 -1
  137. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +27 -0
  138. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +60 -1
  139. package/src/utils/api-constructs/api-constructs.js +8 -2
  140. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  141. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +8 -8
  142. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +8 -8
  143. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +3 -3
  144. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +32 -20
  145. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +1 -1
  146. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +4 -4
  147. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  148. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +69 -1
  149. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +69 -1
  150. package/src/utils/ast.js +16 -0
  151. package/src/utils/ast.js.map +1 -1
  152. package/src/utils/commands.d.ts +1 -1
  153. package/src/utils/commands.js +4 -1
  154. package/src/utils/commands.js.map +1 -1
  155. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +9 -2
  156. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  157. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +3 -3
  158. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  159. package/src/utils/files/common/constructs/src/core/index.ts.template +4 -4
  160. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  161. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  162. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  163. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  164. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +1 -1
  165. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +1 -1
  166. package/src/utils/files/common/scripts/src/infra/stage-credentials/run.ts.template +3 -3
  167. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  168. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  169. package/src/utils/function-constructs/function-constructs.js +3 -1
  170. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  171. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +2 -2
  172. package/src/utils/identity-constructs/identity-constructs.js +5 -1
  173. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  174. package/src/utils/module-format.d.ts +28 -0
  175. package/src/utils/module-format.js +28 -0
  176. package/src/utils/module-format.js.map +1 -0
  177. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +5 -5
  178. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +1 -1
  179. package/src/utils/rdb-constructs/rdb-constructs.js +9 -2
  180. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  181. package/src/utils/shared-constructs.js +3 -1
  182. package/src/utils/shared-constructs.js.map +1 -1
  183. package/src/utils/shared-infra-config.js +3 -1
  184. package/src/utils/shared-infra-config.js.map +1 -1
  185. package/src/utils/shared-infra-scripts.js +3 -1
  186. package/src/utils/shared-infra-scripts.js.map +1 -1
  187. package/src/utils/shared-shadcn.js +3 -1
  188. package/src/utils/shared-shadcn.js.map +1 -1
  189. package/src/utils/test.d.ts +2 -0
  190. package/src/utils/test.js +7 -1
  191. package/src/utils/test.js.map +1 -1
  192. package/src/utils/versions.d.ts +61 -61
  193. package/src/utils/versions.js +59 -59
  194. package/src/utils/versions.js.map +1 -1
  195. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  196. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +2 -2
  197. package/src/utils/website-constructs/website-constructs.js +9 -2
  198. package/src/utils/website-constructs/website-constructs.js.map +1 -1
@@ -6,13 +6,13 @@ import {
6
6
  AuroraDatabase,
7
7
  AuroraDatabaseEngines,
8
8
  AuroraDatabaseProps,
9
- } from '../../core/rdb/aurora.js';
10
- import { findWorkspaceRoot } from '../../core/workspace.js';
9
+ } from '../../core/rdb/aurora<% if (esm) { %>.js<% } %>';
10
+ import { findWorkspaceRoot } from '../../core/workspace<% if (esm) { %>.js<% } %>';
11
11
 
12
12
  const { runtimeConfigKey } = JSON.parse(
13
13
  readFileSync(
14
14
  path.join(
15
- findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
15
+ findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
16
16
  '<%= projectRoot %>/config.json',
17
17
  ),
18
18
  'utf-8',
@@ -40,11 +40,11 @@ export class <%= nameClassName %> extends AuroraDatabase {
40
40
  adminUser: '<%= adminUser %>',
41
41
  runtimeConfigKey,
42
42
  migrationBundleDir: path.join(
43
- findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
43
+ findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
44
44
  '<%- migrationBundleDir %>',
45
45
  ),
46
46
  createDbUserBundleDir: path.join(
47
- findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
47
+ findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
48
48
  '<%- createDbUserBundleDir %>',
49
49
  ),
50
50
  engine: AuroraDatabaseEngines.<%= engine %>({}),
@@ -28,7 +28,7 @@ import {
28
28
  import { Provider } from 'aws-cdk-lib/custom-resources';
29
29
  import { Trigger } from 'aws-cdk-lib/triggers';
30
30
  import { Construct } from 'constructs';
31
- import { RuntimeConfig } from '../runtime-config.js';
31
+ import { RuntimeConfig } from '../runtime-config<% if (esm) { %>.js<% } %>';
32
32
 
33
33
  export type AuroraDatabaseEngineVersion =
34
34
  | AuroraMysqlEngineVersion
@@ -3,6 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */ import { generateFiles, joinPathFragments, OverwriteStrategy, updateJson } from "@nx/devkit";
5
5
  import { addStarExport } from "../ast.js";
6
+ import { esmVars } from "../module-format.js";
6
7
  import { addDependencyToTargetIfNotPresent } from "../nx.js";
7
8
  import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../shared-constructs-constants.js";
8
9
  import { terraformProviderVersions } from "../versions.js";
@@ -20,10 +21,16 @@ export const addRdbInfra = async (tree, options)=>{
20
21
  });
21
22
  };
22
23
  export const addRdbCdkConstructs = async (tree, options)=>{
23
- generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'rdb'), options, {
24
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'rdb'), {
25
+ ...options,
26
+ ...esmVars(tree)
27
+ }, {
24
28
  overwriteStrategy: OverwriteStrategy.KeepExisting
25
29
  });
26
- generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'), options, {
30
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'), {
31
+ ...options,
32
+ ...esmVars(tree)
33
+ }, {
27
34
  overwriteStrategy: OverwriteStrategy.KeepExisting
28
35
  });
29
36
  await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'index.ts'), './rdb/aurora.js');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/rdb-constructs/rdb-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Containers } from '../containers';\nimport type { Iac } from '../iac';\nimport { addDependencyToTargetIfNotPresent } from '../nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { terraformProviderVersions } from '../versions';\n\nexport interface AddRdbConstructOptions {\n projectName: string;\n projectRoot: string;\n nameClassName: string;\n nameKebabCase: string;\n databasePackageAlias: string;\n databaseName: string;\n adminUser: string;\n engine: 'postgres' | 'mysql';\n migrationBundleDir: string;\n createDbUserBundleDir: string;\n dockerImageTag: string;\n containerEngine: Containers;\n}\n\nexport const addRdbInfra = async (\n tree: Tree,\n options: AddRdbConstructOptions & { iac: Iac },\n) => {\n if (options.iac === 'cdk') {\n await addRdbCdkConstructs(tree, options);\n } else if (options.iac === 'terraform') {\n addRdbTerraformModules(tree, options);\n } else {\n throw new Error(`Unsupported iac ${options.iac}`);\n }\n\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nexport const addRdbCdkConstructs = async (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'rdb',\n ),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './rdb/aurora.js',\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'dbs',\n 'index.ts',\n ),\n `./${options.nameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n './dbs/index.js',\n );\n};\n\nexport const addRdbTerraformModules = (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'rdb'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'rdb'),\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'dbs'),\n { ...options, ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","addStarExport","addDependencyToTargetIfNotPresent","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","terraformProviderVersions","addRdbInfra","tree","options","iac","addRdbCdkConstructs","addRdbTerraformModules","Error","config","projectName","dirname","overwriteStrategy","KeepExisting","nameKebabCase"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,SAASC,aAAa,QAAQ,YAAS;AAGvC,SAASC,iCAAiC,QAAQ,WAAQ;AAC1D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,oCAAiC;AACxC,SAASC,yBAAyB,QAAQ,iBAAc;AAiBxD,OAAO,MAAMC,cAAc,OACzBC,MACAC;IAEA,IAAIA,QAAQC,GAAG,KAAK,OAAO;QACzB,MAAMC,oBAAoBH,MAAMC;IAClC,OAAO,IAAIA,QAAQC,GAAG,KAAK,aAAa;QACtCE,uBAAuBJ,MAAMC;IAC/B,OAAO;QACL,MAAM,IAAII,MAAM,CAAC,gBAAgB,EAAEJ,QAAQC,GAAG,EAAE;IAClD;IAEAV,WACEQ,MACAV,kBACEK,cACAM,QAAQC,GAAG,KAAK,QAAQN,wBAAwBC,sBAChD,iBAEF,CAACS;QACCZ,kCACEY,QACA,SACA,GAAGL,QAAQM,WAAW,CAAC,MAAM,CAAC;QAEhC,OAAOD;IACT;AAEJ,EAAE;AAEF,OAAO,MAAMH,sBAAsB,OACjCH,MACAC;IAEAZ,cACEW,MACAV,kBAAkB,YAAYkB,OAAO,EAAE,SAAS,OAAO,QAAQ,QAC/DlB,kBACEK,cACAC,uBACA,OACA,QACA,QAEFK,SACA;QACEQ,mBAAmBlB,kBAAkBmB,YAAY;IACnD;IAGFrB,cACEW,MACAV,kBAAkB,YAAYkB,OAAO,EAAE,SAAS,OAAO,OAAO,QAC9DlB,kBAAkBK,cAAcC,uBAAuB,OAAO,OAAO,QACrEK,SACA;QACEQ,mBAAmBlB,kBAAkBmB,YAAY;IACnD;IAGF,MAAMjB,cACJO,MACAV,kBACEK,cACAC,uBACA,OACA,QACA,aAEF;IAEF,MAAMH,cACJO,MACAV,kBACEK,cACAC,uBACA,OACA,OACA,OACA,aAEF,CAAC,EAAE,EAAEK,QAAQU,aAAa,CAAC,GAAG,CAAC;IAEjC,MAAMlB,cACJO,MACAV,kBACEK,cACAC,uBACA,OACA,OACA,aAEF;AAEJ,EAAE;AAEF,OAAO,MAAMQ,yBAAyB,CACpCJ,MACAC;IAEAZ,cACEW,MACAV,kBAAkB,YAAYkB,OAAO,EAAE,SAAS,aAAa,QAAQ,QACrElB,kBAAkBK,cAAcE,sBAAsB,OAAO,QAAQ,QACrE;QAAE,GAAGC,2BAA2B;IAAC,GACjC;QACEW,mBAAmBlB,kBAAkBmB,YAAY;IACnD;IAGFrB,cACEW,MACAV,kBAAkB,YAAYkB,OAAO,EAAE,SAAS,aAAa,OAAO,QACpElB,kBAAkBK,cAAcE,sBAAsB,OAAO,OAAO,QACpE;QAAE,GAAGI,OAAO;QAAE,GAAGH,2BAA2B;IAAC,GAC7C;QACEW,mBAAmBlB,kBAAkBmB,YAAY;IACnD;AAEJ,EAAE"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/rdb-constructs/rdb-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Containers } from '../containers';\nimport type { Iac } from '../iac';\nimport { esmVars } from '../module-format';\nimport { addDependencyToTargetIfNotPresent } from '../nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { terraformProviderVersions } from '../versions';\n\nexport interface AddRdbConstructOptions {\n projectName: string;\n projectRoot: string;\n nameClassName: string;\n nameKebabCase: string;\n databasePackageAlias: string;\n databaseName: string;\n adminUser: string;\n engine: 'postgres' | 'mysql';\n migrationBundleDir: string;\n createDbUserBundleDir: string;\n dockerImageTag: string;\n containerEngine: Containers;\n}\n\nexport const addRdbInfra = async (\n tree: Tree,\n options: AddRdbConstructOptions & { iac: Iac },\n) => {\n if (options.iac === 'cdk') {\n await addRdbCdkConstructs(tree, options);\n } else if (options.iac === 'terraform') {\n addRdbTerraformModules(tree, options);\n } else {\n throw new Error(`Unsupported iac ${options.iac}`);\n }\n\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nexport const addRdbCdkConstructs = async (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'rdb',\n ),\n { ...options, ...esmVars(tree) },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'),\n { ...options, ...esmVars(tree) },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './rdb/aurora.js',\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'dbs',\n 'index.ts',\n ),\n `./${options.nameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n './dbs/index.js',\n );\n};\n\nexport const addRdbTerraformModules = (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'rdb'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'rdb'),\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'dbs'),\n { ...options, ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","addStarExport","esmVars","addDependencyToTargetIfNotPresent","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","terraformProviderVersions","addRdbInfra","tree","options","iac","addRdbCdkConstructs","addRdbTerraformModules","Error","config","projectName","dirname","overwriteStrategy","KeepExisting","nameKebabCase"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,SAASC,aAAa,QAAQ,YAAS;AAGvC,SAASC,OAAO,QAAQ,sBAAmB;AAC3C,SAASC,iCAAiC,QAAQ,WAAQ;AAC1D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,oCAAiC;AACxC,SAASC,yBAAyB,QAAQ,iBAAc;AAiBxD,OAAO,MAAMC,cAAc,OACzBC,MACAC;IAEA,IAAIA,QAAQC,GAAG,KAAK,OAAO;QACzB,MAAMC,oBAAoBH,MAAMC;IAClC,OAAO,IAAIA,QAAQC,GAAG,KAAK,aAAa;QACtCE,uBAAuBJ,MAAMC;IAC/B,OAAO;QACL,MAAM,IAAII,MAAM,CAAC,gBAAgB,EAAEJ,QAAQC,GAAG,EAAE;IAClD;IAEAX,WACES,MACAX,kBACEM,cACAM,QAAQC,GAAG,KAAK,QAAQN,wBAAwBC,sBAChD,iBAEF,CAACS;QACCZ,kCACEY,QACA,SACA,GAAGL,QAAQM,WAAW,CAAC,MAAM,CAAC;QAEhC,OAAOD;IACT;AAEJ,EAAE;AAEF,OAAO,MAAMH,sBAAsB,OACjCH,MACAC;IAEAb,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,OAAO,QAAQ,QAC/DnB,kBACEM,cACAC,uBACA,OACA,QACA,QAEF;QAAE,GAAGK,OAAO;QAAE,GAAGR,QAAQO,KAAK;IAAC,GAC/B;QACES,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGFtB,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,OAAO,OAAO,QAC9DnB,kBAAkBM,cAAcC,uBAAuB,OAAO,OAAO,QACrE;QAAE,GAAGK,OAAO;QAAE,GAAGR,QAAQO,KAAK;IAAC,GAC/B;QACES,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGF,MAAMlB,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,QACA,aAEF;IAEF,MAAMJ,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,OACA,OACA,aAEF,CAAC,EAAE,EAAEK,QAAQU,aAAa,CAAC,GAAG,CAAC;IAEjC,MAAMnB,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,OACA,aAEF;AAEJ,EAAE;AAEF,OAAO,MAAMQ,yBAAyB,CACpCJ,MACAC;IAEAb,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,aAAa,QAAQ,QACrEnB,kBAAkBM,cAAcE,sBAAsB,OAAO,QAAQ,QACrE;QAAE,GAAGC,2BAA2B;IAAC,GACjC;QACEW,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGFtB,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,aAAa,OAAO,QACpEnB,kBAAkBM,cAAcE,sBAAsB,OAAO,OAAO,QACpE;QAAE,GAAGI,OAAO;QAAE,GAAGH,2BAA2B;IAAC,GAC7C;QACEW,mBAAmBnB,kBAAkBoB,YAAY;IACnD;AAEJ,EAAE"}
@@ -6,6 +6,7 @@ import terraformProjectGenerator from "../terraform/project/generator.js";
6
6
  import tsProjectGenerator from "../ts/lib/generator.js";
7
7
  import { readAwsNxPluginConfig } from "./config/utils.js";
8
8
  import { formatFilesInSubtree } from "./format.js";
9
+ import { esmVars } from "./module-format.js";
9
10
  import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
10
11
  import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
11
12
  import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_CONSTRUCTS_NAME, SHARED_TERRAFORM_DIR, SHARED_TERRAFORM_NAME } from "./shared-constructs-constants.js";
@@ -25,7 +26,8 @@ export async function sharedConstructsGenerator(tree, options) {
25
26
  generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_CONSTRUCTS_DIR, 'src'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'), {
26
27
  npmScopePrefix,
27
28
  scopeAlias: toScopeAlias(npmScopePrefix),
28
- tags: (await readAwsNxPluginConfig(tree))?.tags ?? []
29
+ tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],
30
+ ...esmVars(tree)
29
31
  }, {
30
32
  overwriteStrategy: OverwriteStrategy.KeepExisting
31
33
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { readAwsNxPluginConfig } from './config/utils';\nimport { formatFilesInSubtree } from './format';\nimport type { Iac } from './iac';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants';\nimport { terraformProviderVersions, withVersions } from './versions';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n updateGitignore(tree);\n\n if (iac === 'cdk') {\n if (\n !tree.exists(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'),\n )\n ) {\n await tsProjectGenerator(tree, {\n name: SHARED_CONSTRUCTS_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_CONSTRUCTS_DIR,\n });\n tree.delete(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n );\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_CONSTRUCTS_DIR,\n 'src',\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n {\n npmScopePrefix,\n scopeAlias: toScopeAlias(npmScopePrefix),\n tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_CONSTRUCTS_NAME}`,\n name: SHARED_CONSTRUCTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n addDependenciesToPackageJson(\n tree,\n withVersions(['constructs', 'aws-cdk-lib']),\n withVersions(['@types/node']),\n );\n await formatFilesInSubtree(tree);\n }\n }\n\n // Handle Terraform provider\n if (iac === 'terraform') {\n const terraformLibPath = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n );\n if (!tree.exists(joinPathFragments(terraformLibPath, 'project.json'))) {\n await terraformProjectGenerator(tree, {\n name: SHARED_TERRAFORM_NAME,\n directory: joinPathFragments(PACKAGES_DIR, 'common'),\n type: 'library',\n });\n\n // Add target to reset runtime config as part of the build, ensuring any plan/apply target\n // which depends on shared terraform will build runtime-config.json from scratch, meaning no old\n // values will remain when resources are removed.\n // NB: runtime-config.json starts as an empty object to keep the reader terraform module simple\n updateJson(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'project.json'),\n (projectConfig: ProjectConfiguration) => {\n projectConfig.targets ??= {};\n projectConfig.targets['reset-runtime-config'] = {\n executor: 'nx:run-commands',\n options: {\n command: 'tsx scripts/reset-runtime-config.ts',\n cwd: '{projectRoot}',\n env: {\n DIST_DIR: '{workspaceRoot}/dist/{projectRoot}',\n },\n },\n };\n projectConfig.targets.build ??= {};\n projectConfig.targets.build.dependsOn = [\n ...(projectConfig.targets.build.dependsOn ?? []).filter(\n (t) => t !== 'reset-runtime-config',\n ),\n 'reset-runtime-config',\n ];\n return projectConfig;\n },\n );\n\n tree.delete(joinPathFragments(terraformLibPath, 'src', 'main.tf'));\n\n // Create the metrics.tf file with empty initial values\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform'),\n terraformLibPath,\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n await formatFilesInSubtree(tree);\n }\n }\n}\n\nconst updateGitignore = (tree: Tree) => {\n const gitignore = tree.exists('.gitignore')\n ? tree.read('.gitignore', 'utf-8')\n : '';\n const regex = /runtime-config.json/gm;\n const hasRuntimeConfig = regex.test(gitignore ?? '');\n if (hasRuntimeConfig) {\n return;\n }\n tree.write('.gitignore', `${gitignore}\\n\\nruntime-config.json`);\n};\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","terraformProjectGenerator","tsProjectGenerator","readAwsNxPluginConfig","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_CONSTRUCTS_NAME","SHARED_TERRAFORM_DIR","SHARED_TERRAFORM_NAME","terraformProviderVersions","withVersions","sharedConstructsGenerator","tree","options","iac","npmScopePrefix","updateGitignore","exists","name","directory","subDirectory","delete","dirname","scopeAlias","tags","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite","terraformLibPath","type","projectConfig","targets","executor","command","cwd","env","DIST_DIR","build","dependsOn","filter","t","gitignore","read","regex","hasRuntimeConfig","test","write"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { readAwsNxPluginConfig } from './config/utils';\nimport { formatFilesInSubtree } from './format';\nimport type { Iac } from './iac';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants';\nimport { terraformProviderVersions, withVersions } from './versions';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n updateGitignore(tree);\n\n if (iac === 'cdk') {\n if (\n !tree.exists(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'),\n )\n ) {\n await tsProjectGenerator(tree, {\n name: SHARED_CONSTRUCTS_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_CONSTRUCTS_DIR,\n });\n tree.delete(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n );\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_CONSTRUCTS_DIR,\n 'src',\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n {\n npmScopePrefix,\n scopeAlias: toScopeAlias(npmScopePrefix),\n tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_CONSTRUCTS_NAME}`,\n name: SHARED_CONSTRUCTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n addDependenciesToPackageJson(\n tree,\n withVersions(['constructs', 'aws-cdk-lib']),\n withVersions(['@types/node']),\n );\n await formatFilesInSubtree(tree);\n }\n }\n\n // Handle Terraform provider\n if (iac === 'terraform') {\n const terraformLibPath = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n );\n if (!tree.exists(joinPathFragments(terraformLibPath, 'project.json'))) {\n await terraformProjectGenerator(tree, {\n name: SHARED_TERRAFORM_NAME,\n directory: joinPathFragments(PACKAGES_DIR, 'common'),\n type: 'library',\n });\n\n // Add target to reset runtime config as part of the build, ensuring any plan/apply target\n // which depends on shared terraform will build runtime-config.json from scratch, meaning no old\n // values will remain when resources are removed.\n // NB: runtime-config.json starts as an empty object to keep the reader terraform module simple\n updateJson(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'project.json'),\n (projectConfig: ProjectConfiguration) => {\n projectConfig.targets ??= {};\n projectConfig.targets['reset-runtime-config'] = {\n executor: 'nx:run-commands',\n options: {\n command: 'tsx scripts/reset-runtime-config.ts',\n cwd: '{projectRoot}',\n env: {\n DIST_DIR: '{workspaceRoot}/dist/{projectRoot}',\n },\n },\n };\n projectConfig.targets.build ??= {};\n projectConfig.targets.build.dependsOn = [\n ...(projectConfig.targets.build.dependsOn ?? []).filter(\n (t) => t !== 'reset-runtime-config',\n ),\n 'reset-runtime-config',\n ];\n return projectConfig;\n },\n );\n\n tree.delete(joinPathFragments(terraformLibPath, 'src', 'main.tf'));\n\n // Create the metrics.tf file with empty initial values\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform'),\n terraformLibPath,\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n await formatFilesInSubtree(tree);\n }\n }\n}\n\nconst updateGitignore = (tree: Tree) => {\n const gitignore = tree.exists('.gitignore')\n ? tree.read('.gitignore', 'utf-8')\n : '';\n const regex = /runtime-config.json/gm;\n const hasRuntimeConfig = regex.test(gitignore ?? '');\n if (hasRuntimeConfig) {\n return;\n }\n tree.write('.gitignore', `${gitignore}\\n\\nruntime-config.json`);\n};\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","terraformProjectGenerator","tsProjectGenerator","readAwsNxPluginConfig","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_CONSTRUCTS_NAME","SHARED_TERRAFORM_DIR","SHARED_TERRAFORM_NAME","terraformProviderVersions","withVersions","sharedConstructsGenerator","tree","options","iac","npmScopePrefix","updateGitignore","exists","name","directory","subDirectory","delete","dirname","scopeAlias","tags","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite","terraformLibPath","type","projectConfig","targets","executor","command","cwd","env","DIST_DIR","build","dependsOn","filter","t","gitignore","read","regex","hasRuntimeConfig","test","write"],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */ import { generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
5
5
  import tsProjectGenerator from "../ts/lib/generator.js";
6
6
  import { formatFilesInSubtree } from "./format.js";
7
+ import { esmVars } from "./module-format.js";
7
8
  import { getNpmScopePrefix } from "./npm-scope.js";
8
9
  import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
9
10
  import { PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR, SHARED_INFRA_CONFIG_NAME } from "./shared-constructs-constants.js";
@@ -27,7 +28,8 @@ import { PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR, SHARED_INFRA_CONFIG_NAME } from
27
28
  // Replace default src/ with our templates
28
29
  tree.delete(joinPathFragments(configDir, 'src'));
29
30
  generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_INFRA_CONFIG_DIR, 'src'), joinPathFragments(configDir, 'src'), {
30
- pkgMgrRunNx: `${displayCmds.exec} nx`
31
+ pkgMgrRunNx: `${displayCmds.exec} nx`,
32
+ ...esmVars(tree)
31
33
  }, {
32
34
  overwriteStrategy: OverwriteStrategy.KeepExisting
33
35
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-config.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_INFRA_CONFIG_DIR,\n SHARED_INFRA_CONFIG_NAME,\n} from './shared-constructs-constants';\n\n/**\n * Lazily creates the shared infra-config package at packages/common/infra-config/.\n * Contains stage configuration types and the user's stage-to-credential mappings.\n * Importable from any package via ts project references.\n */\nexport async function sharedInfraConfigGenerator(tree: Tree): Promise<void> {\n const configDir = joinPathFragments(PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR);\n\n // Don't recreate if it already exists\n if (tree.exists(joinPathFragments(configDir, 'project.json'))) {\n return;\n }\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const displayCmds = getPackageManagerDisplayCommands();\n\n await tsProjectGenerator(tree, {\n name: SHARED_INFRA_CONFIG_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_INFRA_CONFIG_DIR,\n });\n\n // Replace default src/ with our templates\n tree.delete(joinPathFragments(configDir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_INFRA_CONFIG_DIR,\n 'src',\n ),\n joinPathFragments(configDir, 'src'),\n {\n pkgMgrRunNx: `${displayCmds.exec} nx`,\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate README\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n configDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_INFRA_CONFIG_NAME}`,\n name: SHARED_INFRA_CONFIG_NAME,\n pkgMgrCmd: displayCmds.exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","tsProjectGenerator","formatFilesInSubtree","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_INFRA_CONFIG_DIR","SHARED_INFRA_CONFIG_NAME","sharedInfraConfigGenerator","tree","configDir","exists","npmScopePrefix","displayCmds","name","directory","subDirectory","delete","dirname","pkgMgrRunNx","exec","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,uBAAuB,EACvBC,wBAAwB,QACnB,mCAAgC;AAEvC;;;;CAIC,GACD,OAAO,eAAeC,2BAA2BC,IAAU;IACzD,MAAMC,YAAYX,kBAAkBM,cAAcC;IAElD,sCAAsC;IACtC,IAAIG,KAAKE,MAAM,CAACZ,kBAAkBW,WAAW,kBAAkB;QAC7D;IACF;IAEA,MAAME,iBAAiBT,kBAAkBM;IACzC,MAAMI,cAAcT;IAEpB,MAAMH,mBAAmBQ,MAAM;QAC7BK,MAAMP;QACNQ,WAAWV;QACXW,cAAcV;IAChB;IAEA,0CAA0C;IAC1CG,KAAKQ,MAAM,CAAClB,kBAAkBW,WAAW;IACzCZ,cACEW,MACAV,kBACE,YAAYmB,OAAO,EACnB,SACAZ,yBACA,QAEFP,kBAAkBW,WAAW,QAC7B;QACES,aAAa,GAAGN,YAAYO,IAAI,CAAC,GAAG,CAAC;IACvC,GACA;QAAEC,mBAAmBrB,kBAAkBsB,YAAY;IAAC;IAGtD,kBAAkB;IAClBxB,cACEW,MACAV,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,UAAU,WAC1DR,WACA;QACEa,oBAAoB,GAAGX,iBAAiBL,0BAA0B;QAClEO,MAAMP;QACNiB,WAAWX,YAAYO,IAAI;IAC7B,GACA;QAAEC,mBAAmBrB,kBAAkByB,SAAS;IAAC;IAGnD,MAAMvB,qBAAqBO;AAC7B"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-config.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_INFRA_CONFIG_DIR,\n SHARED_INFRA_CONFIG_NAME,\n} from './shared-constructs-constants';\n\n/**\n * Lazily creates the shared infra-config package at packages/common/infra-config/.\n * Contains stage configuration types and the user's stage-to-credential mappings.\n * Importable from any package via ts project references.\n */\nexport async function sharedInfraConfigGenerator(tree: Tree): Promise<void> {\n const configDir = joinPathFragments(PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR);\n\n // Don't recreate if it already exists\n if (tree.exists(joinPathFragments(configDir, 'project.json'))) {\n return;\n }\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const displayCmds = getPackageManagerDisplayCommands();\n\n await tsProjectGenerator(tree, {\n name: SHARED_INFRA_CONFIG_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_INFRA_CONFIG_DIR,\n });\n\n // Replace default src/ with our templates\n tree.delete(joinPathFragments(configDir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_INFRA_CONFIG_DIR,\n 'src',\n ),\n joinPathFragments(configDir, 'src'),\n {\n pkgMgrRunNx: `${displayCmds.exec} nx`,\n ...esmVars(tree),\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate README\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n configDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_INFRA_CONFIG_NAME}`,\n name: SHARED_INFRA_CONFIG_NAME,\n pkgMgrCmd: displayCmds.exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","tsProjectGenerator","formatFilesInSubtree","esmVars","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_INFRA_CONFIG_DIR","SHARED_INFRA_CONFIG_NAME","sharedInfraConfigGenerator","tree","configDir","exists","npmScopePrefix","displayCmds","name","directory","subDirectory","delete","dirname","pkgMgrRunNx","exec","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,uBAAuB,EACvBC,wBAAwB,QACnB,mCAAgC;AAEvC;;;;CAIC,GACD,OAAO,eAAeC,2BAA2BC,IAAU;IACzD,MAAMC,YAAYZ,kBAAkBO,cAAcC;IAElD,sCAAsC;IACtC,IAAIG,KAAKE,MAAM,CAACb,kBAAkBY,WAAW,kBAAkB;QAC7D;IACF;IAEA,MAAME,iBAAiBT,kBAAkBM;IACzC,MAAMI,cAAcT;IAEpB,MAAMJ,mBAAmBS,MAAM;QAC7BK,MAAMP;QACNQ,WAAWV;QACXW,cAAcV;IAChB;IAEA,0CAA0C;IAC1CG,KAAKQ,MAAM,CAACnB,kBAAkBY,WAAW;IACzCb,cACEY,MACAX,kBACE,YAAYoB,OAAO,EACnB,SACAZ,yBACA,QAEFR,kBAAkBY,WAAW,QAC7B;QACES,aAAa,GAAGN,YAAYO,IAAI,CAAC,GAAG,CAAC;QACrC,GAAGlB,QAAQO,KAAK;IAClB,GACA;QAAEY,mBAAmBtB,kBAAkBuB,YAAY;IAAC;IAGtD,kBAAkB;IAClBzB,cACEY,MACAX,kBAAkB,YAAYoB,OAAO,EAAE,SAAS,UAAU,WAC1DR,WACA;QACEa,oBAAoB,GAAGX,iBAAiBL,0BAA0B;QAClEO,MAAMP;QACNiB,WAAWX,YAAYO,IAAI;IAC7B,GACA;QAAEC,mBAAmBtB,kBAAkB0B,SAAS;IAAC;IAGnD,MAAMxB,qBAAqBQ;AAC7B"}
@@ -3,6 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */ import { addDependenciesToPackageJson, generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
5
5
  import { formatFilesInSubtree } from "./format.js";
6
+ import { esmVars } from "./module-format.js";
6
7
  import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
7
8
  import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
8
9
  import { PACKAGES_DIR, SHARED_SCRIPTS_DIR, SHARED_SCRIPTS_NAME } from "./shared-constructs-constants.js";
@@ -18,7 +19,8 @@ import { withVersions } from "./versions.js";
18
19
  const npmScopePrefix = getNpmScopePrefix(tree);
19
20
  const scopeAlias = toScopeAlias(npmScopePrefix);
20
21
  generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_SCRIPTS_DIR, 'src', 'infra'), joinPathFragments(scriptsDir, 'src', 'infra'), {
21
- scopeAlias
22
+ scopeAlias,
23
+ ...esmVars(tree)
22
24
  }, {
23
25
  overwriteStrategy: OverwriteStrategy.KeepExisting
24
26
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator(tree: Tree): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['@aws-sdk/client-sts', '@aws-sdk/credential-providers']),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","sharedInfraScriptsGenerator","tree","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","name","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,4BAA4BC,IAAU;IAC1D,MAAMC,aAAab,kBAAkBM,cAAcC;IAEnD,MAAME,2BAA2BG;IAEjC,MAAME,iBAAiBX,kBAAkBS;IACzC,MAAMG,aAAaX,aAAaU;IAEhCf,cACEa,MACAZ,kBACE,YAAYgB,OAAO,EACnB,SACAT,oBACA,OACA,UAEFP,kBAAkBa,YAAY,OAAO,UACrC;QAAEE;IAAW,GACb;QAAEE,mBAAmBhB,kBAAkBiB,YAAY;IAAC;IAGtD,6CAA6C;IAC7CpB,6BACEc,MACA,CAAC,GACDF,aAAa;QAAC;QAAuB;KAAgC;IAGvEX,cACEa,MACAZ,kBAAkB,YAAYgB,OAAO,EAAE,SAAS,UAAU,WAC1DH,YACA;QACEM,oBAAoB,GAAGL,iBAAiBN,qBAAqB;QAC7DY,MAAMZ;QACNa,WAAWhB,mCAAmCiB,IAAI;IACpD,GACA;QAAEL,mBAAmBhB,kBAAkBsB,SAAS;IAAC;IAGnD,MAAMrB,qBAAqBU;AAC7B"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator(tree: Tree): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias, ...esmVars(tree) },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['@aws-sdk/client-sts', '@aws-sdk/credential-providers']),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","sharedInfraScriptsGenerator","tree","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","name","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,4BAA4BC,IAAU;IAC1D,MAAMC,aAAad,kBAAkBO,cAAcC;IAEnD,MAAME,2BAA2BG;IAEjC,MAAME,iBAAiBX,kBAAkBS;IACzC,MAAMG,aAAaX,aAAaU;IAEhChB,cACEc,MACAb,kBACE,YAAYiB,OAAO,EACnB,SACAT,oBACA,OACA,UAEFR,kBAAkBc,YAAY,OAAO,UACrC;QAAEE;QAAY,GAAGb,QAAQU,KAAK;IAAC,GAC/B;QAAEK,mBAAmBjB,kBAAkBkB,YAAY;IAAC;IAGtD,6CAA6C;IAC7CrB,6BACEe,MACA,CAAC,GACDF,aAAa;QAAC;QAAuB;KAAgC;IAGvEZ,cACEc,MACAb,kBAAkB,YAAYiB,OAAO,EAAE,SAAS,UAAU,WAC1DH,YACA;QACEM,oBAAoB,GAAGL,iBAAiBN,qBAAqB;QAC7DY,MAAMZ;QACNa,WAAWhB,mCAAmCiB,IAAI;IACpD,GACA;QAAEL,mBAAmBjB,kBAAkBuB,SAAS;IAAC;IAGnD,MAAMtB,qBAAqBW;AAC7B"}
@@ -5,6 +5,7 @@
5
5
  import tsProjectGenerator from "../ts/lib/generator.js";
6
6
  import { configureTsProject } from "../ts/lib/ts-project-utils.js";
7
7
  import { formatFilesInSubtree } from "./format.js";
8
+ import { esmVars } from "./module-format.js";
8
9
  import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
9
10
  import { ensurePnpmIgnoresWorkspaceRootCheck } from "./pnpm-workspace.js";
10
11
  import { PACKAGES_DIR, SHARED_SHADCN_DIR, SHARED_SHADCN_NAME } from "./shared-constructs-constants.js";
@@ -33,7 +34,8 @@ export async function sharedShadcnGenerator(tree) {
33
34
  });
34
35
  tree.delete(shadcnSrcRoot);
35
36
  generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'), shadcnSrcRoot, {
36
- scopeAlias
37
+ scopeAlias,
38
+ ...esmVars(tree)
37
39
  }, {
38
40
  overwriteStrategy: OverwriteStrategy.KeepExisting
39
41
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { ensurePnpmIgnoresWorkspaceRootCheck } from './pnpm-workspace';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\nconst SHADCN_DEPS = [\n 'class-variance-authority',\n 'clsx',\n 'tailwind-merge',\n 'lucide-react',\n 'tw-animate-css',\n 'radix-ui',\n] as const satisfies ITsDepVersion[];\n\nexport async function sharedShadcnGenerator(tree: Tree) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n ensurePnpmIgnoresWorkspaceRootCheck(tree);\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(tree, {\n dir: libraryRoot,\n fullyQualifiedName,\n });\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(tree, withVersions([...SHADCN_DEPS]), {});\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n if (!tree.exists('components.json')) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n '.',\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","ensurePnpmIgnoresWorkspaceRootCheck","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPS","sharedShadcnGenerator","tree","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","name","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,mCAAmC,QAAQ,sBAAmB;AACvE,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,MAAMC,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,eAAeC,sBAAsBC,IAAU;IACpD,MAAMC,iBAAiBV,kBAAkBS;IACzC,MAAME,aAAaV,aAAaS;IAChC,MAAME,oBAAoB,GAAGD,aAAaN,oBAAoB;IAC9D,MAAMQ,qBAAqB,GAAGH,iBAAiBL,oBAAoB;IACnE,MAAMS,cAAcpB,kBAAkBS,cAAcC;IACpD,MAAMW,gBAAgBrB,kBAAkBoB,aAAa;IACrDZ,oCAAoCO;IAEpC,IAAI,CAACA,KAAKO,MAAM,CAACtB,kBAAkBoB,aAAa,kBAAkB;QAChE,MAAMjB,mBAAmBY,MAAM;YAC7BQ,MAAMZ;YACNa,WAAWf;YACXgB,cAAcf;QAChB;QAEAK,KAAKW,MAAM,CAACL;QAEZtB,cACEgB,MACAf,kBAAkB,YAAY2B,OAAO,EAAE,SAASjB,mBAAmB,QACnEW,eACA;YACEJ;QACF,GACA;YACEW,mBAAmB3B,kBAAkB4B,YAAY;QACnD;QAGF9B,cACEgB,MACAf,kBACE,YAAY2B,OAAO,EACnB,SACAjB,mBACA,WAEFU,aACA;YACED;YACAF;QACF,GACA;YACEW,mBAAmB3B,kBAAkB6B,SAAS;QAChD;QAGF,MAAM1B,mBAAmBW,MAAM;YAC7BgB,KAAKX;YACLD;QACF;QAEAjB,WACEa,MACAf,kBAAkBoB,aAAa,sBAC/B,CAACY,OAAU,CAAA;gBACT,GAAGA,IAAI;gBACPC,iBAAiB;oBACf,GAAGD,KAAKC,eAAe;oBACvBC,KAAK;oBACLC,QAAQ;oBACRC,kBAAkB;oBAClBC,KAAKC,MAAMC,IAAI,CACb,IAAIC,IAAI;2BAAKR,KAAKC,eAAe,EAAEI,OAAO,EAAE;wBAAG;qBAAM;gBAEzD;gBACAI,SAASH,MAAMC,IAAI,CAAC,IAAIC,IAAI;uBAAKR,KAAKS,OAAO,IAAI,EAAE;oBAAG;iBAAe;YACvE,CAAA;QAGF3C,6BAA6BiB,MAAMH,aAAa;eAAIC;SAAY,GAAG,CAAC;IACtE;IAEAX,WAAWa,MAAM,sBAAsB,CAACiB,OAAU,CAAA;YAChD,GAAGA,IAAI;YACPC,iBAAiB;gBACf,GAAGD,KAAKC,eAAe;gBACvBS,OAAO;oBACL,GAAIV,KAAKC,eAAe,EAAES,SAAS,CAAC,CAAC;oBACrC,CAAC,GAAGxB,kBAAkB,EAAE,CAAC,CAAC,EAAE;wBAC1B,CAAC,EAAE,EAAElB,kBAAkBoB,aAAa,OAAO,MAAM;qBAClD;gBACH;YACF;QACF,CAAA;IAEA,IAAI,CAACL,KAAKO,MAAM,CAAC,oBAAoB;QACnCvB,cACEgB,MACAf,kBAAkB,YAAY2B,OAAO,EAAE,SAAS,WAChD,KACA;YACET;QACF,GACA;YACEU,mBAAmB3B,kBAAkB4B,YAAY;QACnD;IAEJ;IAEA,MAAMxB,qBAAqBU;AAC7B"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { ensurePnpmIgnoresWorkspaceRootCheck } from './pnpm-workspace';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\nconst SHADCN_DEPS = [\n 'class-variance-authority',\n 'clsx',\n 'tailwind-merge',\n 'lucide-react',\n 'tw-animate-css',\n 'radix-ui',\n] as const satisfies ITsDepVersion[];\n\nexport async function sharedShadcnGenerator(tree: Tree) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n ensurePnpmIgnoresWorkspaceRootCheck(tree);\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(tree, {\n dir: libraryRoot,\n fullyQualifiedName,\n });\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(tree, withVersions([...SHADCN_DEPS]), {});\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n if (!tree.exists('components.json')) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n '.',\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","ensurePnpmIgnoresWorkspaceRootCheck","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPS","sharedShadcnGenerator","tree","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","name","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,mCAAmC,QAAQ,sBAAmB;AACvE,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,MAAMC,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,eAAeC,sBAAsBC,IAAU;IACpD,MAAMC,iBAAiBV,kBAAkBS;IACzC,MAAME,aAAaV,aAAaS;IAChC,MAAME,oBAAoB,GAAGD,aAAaN,oBAAoB;IAC9D,MAAMQ,qBAAqB,GAAGH,iBAAiBL,oBAAoB;IACnE,MAAMS,cAAcrB,kBAAkBU,cAAcC;IACpD,MAAMW,gBAAgBtB,kBAAkBqB,aAAa;IACrDZ,oCAAoCO;IAEpC,IAAI,CAACA,KAAKO,MAAM,CAACvB,kBAAkBqB,aAAa,kBAAkB;QAChE,MAAMlB,mBAAmBa,MAAM;YAC7BQ,MAAMZ;YACNa,WAAWf;YACXgB,cAAcf;QAChB;QAEAK,KAAKW,MAAM,CAACL;QAEZvB,cACEiB,MACAhB,kBAAkB,YAAY4B,OAAO,EAAE,SAASjB,mBAAmB,QACnEW,eACA;YACEJ;YACA,GAAGZ,QAAQU,KAAK;QAClB,GACA;YACEa,mBAAmB5B,kBAAkB6B,YAAY;QACnD;QAGF/B,cACEiB,MACAhB,kBACE,YAAY4B,OAAO,EACnB,SACAjB,mBACA,WAEFU,aACA;YACED;YACAF;QACF,GACA;YACEW,mBAAmB5B,kBAAkB8B,SAAS;QAChD;QAGF,MAAM3B,mBAAmBY,MAAM;YAC7BgB,KAAKX;YACLD;QACF;QAEAlB,WACEc,MACAhB,kBAAkBqB,aAAa,sBAC/B,CAACY,OAAU,CAAA;gBACT,GAAGA,IAAI;gBACPC,iBAAiB;oBACf,GAAGD,KAAKC,eAAe;oBACvBC,KAAK;oBACLC,QAAQ;oBACRC,kBAAkB;oBAClBC,KAAKC,MAAMC,IAAI,CACb,IAAIC,IAAI;2BAAKR,KAAKC,eAAe,EAAEI,OAAO,EAAE;wBAAG;qBAAM;gBAEzD;gBACAI,SAASH,MAAMC,IAAI,CAAC,IAAIC,IAAI;uBAAKR,KAAKS,OAAO,IAAI,EAAE;oBAAG;iBAAe;YACvE,CAAA;QAGF5C,6BAA6BkB,MAAMH,aAAa;eAAIC;SAAY,GAAG,CAAC;IACtE;IAEAZ,WAAWc,MAAM,sBAAsB,CAACiB,OAAU,CAAA;YAChD,GAAGA,IAAI;YACPC,iBAAiB;gBACf,GAAGD,KAAKC,eAAe;gBACvBS,OAAO;oBACL,GAAIV,KAAKC,eAAe,EAAES,SAAS,CAAC,CAAC;oBACrC,CAAC,GAAGxB,kBAAkB,EAAE,CAAC,CAAC,EAAE;wBAC1B,CAAC,EAAE,EAAEnB,kBAAkBqB,aAAa,OAAO,MAAM;qBAClD;gBACH;YACF;QACF,CAAA;IAEA,IAAI,CAACL,KAAKO,MAAM,CAAC,oBAAoB;QACnCxB,cACEiB,MACAhB,kBAAkB,YAAY4B,OAAO,EAAE,SAAS,WAChD,KACA;YACET;QACF,GACA;YACEU,mBAAmB5B,kBAAkB6B,YAAY;QACnD;IAEJ;IAEA,MAAMzB,qBAAqBW;AAC7B"}
@@ -10,6 +10,8 @@ import { type Tree } from '@nx/devkit';
10
10
  * - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)
11
11
  * - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`
12
12
  * - `composite: true` in `tsconfig.base.json`
13
+ * - a root `package.json` with `type: module`, matching the ESM default the
14
+ * preset establishes
13
15
  */
14
16
  export declare const createTreeUsingTsSolutionSetup: () => Tree;
15
17
  /**
package/src/utils/test.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
- */ import { joinPathFragments, readJson, writeJson } from "@nx/devkit";
4
+ */ import { joinPathFragments, readJson, updateJson, writeJson } from "@nx/devkit";
5
5
  import { createTreeWithEmptyWorkspace } from "@nx/devkit/testing";
6
6
  import { expect } from "vitest";
7
7
  import { DEFAULT_BIOME_CONFIG } from "./format.js";
@@ -12,9 +12,15 @@ import { DEFAULT_BIOME_CONFIG } from "./format.js";
12
12
  * - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)
13
13
  * - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`
14
14
  * - `composite: true` in `tsconfig.base.json`
15
+ * - a root `package.json` with `type: module`, matching the ESM default the
16
+ * preset establishes
15
17
  */ export const createTreeUsingTsSolutionSetup = ()=>{
16
18
  const tree = createTreeWithEmptyWorkspace();
17
19
  tree.write('pnpm-workspace.yaml', `packages:\n - packages/*`);
20
+ updateJson(tree, 'package.json', (json)=>({
21
+ ...json,
22
+ type: 'module'
23
+ }));
18
24
  const baseTsConfig = readJson(tree, 'tsconfig.base.json');
19
25
  writeJson(tree, 'tsconfig.base.json', {
20
26
  ...baseTsConfig,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { joinPathFragments, readJson, type Tree, writeJson } from '@nx/devkit';\nimport { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';\nimport { expect } from 'vitest';\nimport { DEFAULT_BIOME_CONFIG } from './format';\n\n/**\n * Create a workspace tree configured so that nx's `isUsingTsSolutionSetup`\n * reports `true`, matching the workspaces our preset generates. Rather than\n * mocking nx internals, we set up the real markers it checks for:\n * - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)\n * - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`\n * - `composite: true` in `tsconfig.base.json`\n */\nexport const createTreeUsingTsSolutionSetup = (): Tree => {\n const tree = createTreeWithEmptyWorkspace();\n\n tree.write('pnpm-workspace.yaml', `packages:\\n - packages/*`);\n\n const baseTsConfig = readJson(tree, 'tsconfig.base.json');\n writeJson(tree, 'tsconfig.base.json', {\n ...baseTsConfig,\n compilerOptions: { ...baseTsConfig.compilerOptions, composite: true },\n });\n writeJson(tree, 'tsconfig.json', {\n extends: './tsconfig.base.json',\n files: [],\n include: [],\n references: [],\n });\n\n // The preset always writes biome.json at the workspace root, so mirror that\n // here for realistic lint-target configuration.\n tree.write('biome.json', JSON.stringify(DEFAULT_BIOME_CONFIG, null, 2));\n return tree;\n};\n\n/**\n * Snapshot all files within a directory in the given tree\n */\nexport const snapshotTreeDir = (tree: Tree, dir: string) => {\n if (tree.isFile(dir)) {\n expect(tree.read(dir, 'utf-8')).toMatchSnapshot(dir);\n } else {\n tree\n .children(dir)\n .forEach((subDir) =>\n snapshotTreeDir(tree, joinPathFragments(dir, subDir)),\n );\n }\n};\n"],"names":["joinPathFragments","readJson","writeJson","createTreeWithEmptyWorkspace","expect","DEFAULT_BIOME_CONFIG","createTreeUsingTsSolutionSetup","tree","write","baseTsConfig","compilerOptions","composite","extends","files","include","references","JSON","stringify","snapshotTreeDir","dir","isFile","read","toMatchSnapshot","children","forEach","subDir"],"mappings":"AAAA;;;CAGC,GAED,SAASA,iBAAiB,EAAEC,QAAQ,EAAaC,SAAS,QAAQ,aAAa;AAC/E,SAASC,4BAA4B,QAAQ,qBAAqB;AAClE,SAASC,MAAM,QAAQ,SAAS;AAChC,SAASC,oBAAoB,QAAQ,cAAW;AAEhD;;;;;;;CAOC,GACD,OAAO,MAAMC,iCAAiC;IAC5C,MAAMC,OAAOJ;IAEbI,KAAKC,KAAK,CAAC,uBAAuB,CAAC,yBAAyB,CAAC;IAE7D,MAAMC,eAAeR,SAASM,MAAM;IACpCL,UAAUK,MAAM,sBAAsB;QACpC,GAAGE,YAAY;QACfC,iBAAiB;YAAE,GAAGD,aAAaC,eAAe;YAAEC,WAAW;QAAK;IACtE;IACAT,UAAUK,MAAM,iBAAiB;QAC/BK,SAAS;QACTC,OAAO,EAAE;QACTC,SAAS,EAAE;QACXC,YAAY,EAAE;IAChB;IAEA,4EAA4E;IAC5E,gDAAgD;IAChDR,KAAKC,KAAK,CAAC,cAAcQ,KAAKC,SAAS,CAACZ,sBAAsB,MAAM;IACpE,OAAOE;AACT,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMW,kBAAkB,CAACX,MAAYY;IAC1C,IAAIZ,KAAKa,MAAM,CAACD,MAAM;QACpBf,OAAOG,KAAKc,IAAI,CAACF,KAAK,UAAUG,eAAe,CAACH;IAClD,OAAO;QACLZ,KACGgB,QAAQ,CAACJ,KACTK,OAAO,CAAC,CAACC,SACRP,gBAAgBX,MAAMP,kBAAkBmB,KAAKM;IAEnD;AACF,EAAE"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n joinPathFragments,\n readJson,\n type Tree,\n updateJson,\n writeJson,\n} from '@nx/devkit';\nimport { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';\nimport { expect } from 'vitest';\nimport { DEFAULT_BIOME_CONFIG } from './format';\n\n/**\n * Create a workspace tree configured so that nx's `isUsingTsSolutionSetup`\n * reports `true`, matching the workspaces our preset generates. Rather than\n * mocking nx internals, we set up the real markers it checks for:\n * - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)\n * - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`\n * - `composite: true` in `tsconfig.base.json`\n * - a root `package.json` with `type: module`, matching the ESM default the\n * preset establishes\n */\nexport const createTreeUsingTsSolutionSetup = (): Tree => {\n const tree = createTreeWithEmptyWorkspace();\n\n tree.write('pnpm-workspace.yaml', `packages:\\n - packages/*`);\n\n updateJson(tree, 'package.json', (json) => ({ ...json, type: 'module' }));\n\n const baseTsConfig = readJson(tree, 'tsconfig.base.json');\n writeJson(tree, 'tsconfig.base.json', {\n ...baseTsConfig,\n compilerOptions: { ...baseTsConfig.compilerOptions, composite: true },\n });\n writeJson(tree, 'tsconfig.json', {\n extends: './tsconfig.base.json',\n files: [],\n include: [],\n references: [],\n });\n\n // The preset always writes biome.json at the workspace root, so mirror that\n // here for realistic lint-target configuration.\n tree.write('biome.json', JSON.stringify(DEFAULT_BIOME_CONFIG, null, 2));\n return tree;\n};\n\n/**\n * Snapshot all files within a directory in the given tree\n */\nexport const snapshotTreeDir = (tree: Tree, dir: string) => {\n if (tree.isFile(dir)) {\n expect(tree.read(dir, 'utf-8')).toMatchSnapshot(dir);\n } else {\n tree\n .children(dir)\n .forEach((subDir) =>\n snapshotTreeDir(tree, joinPathFragments(dir, subDir)),\n );\n }\n};\n"],"names":["joinPathFragments","readJson","updateJson","writeJson","createTreeWithEmptyWorkspace","expect","DEFAULT_BIOME_CONFIG","createTreeUsingTsSolutionSetup","tree","write","json","type","baseTsConfig","compilerOptions","composite","extends","files","include","references","JSON","stringify","snapshotTreeDir","dir","isFile","read","toMatchSnapshot","children","forEach","subDir"],"mappings":"AAAA;;;CAGC,GAED,SACEA,iBAAiB,EACjBC,QAAQ,EAERC,UAAU,EACVC,SAAS,QACJ,aAAa;AACpB,SAASC,4BAA4B,QAAQ,qBAAqB;AAClE,SAASC,MAAM,QAAQ,SAAS;AAChC,SAASC,oBAAoB,QAAQ,cAAW;AAEhD;;;;;;;;;CASC,GACD,OAAO,MAAMC,iCAAiC;IAC5C,MAAMC,OAAOJ;IAEbI,KAAKC,KAAK,CAAC,uBAAuB,CAAC,yBAAyB,CAAC;IAE7DP,WAAWM,MAAM,gBAAgB,CAACE,OAAU,CAAA;YAAE,GAAGA,IAAI;YAAEC,MAAM;QAAS,CAAA;IAEtE,MAAMC,eAAeX,SAASO,MAAM;IACpCL,UAAUK,MAAM,sBAAsB;QACpC,GAAGI,YAAY;QACfC,iBAAiB;YAAE,GAAGD,aAAaC,eAAe;YAAEC,WAAW;QAAK;IACtE;IACAX,UAAUK,MAAM,iBAAiB;QAC/BO,SAAS;QACTC,OAAO,EAAE;QACTC,SAAS,EAAE;QACXC,YAAY,EAAE;IAChB;IAEA,4EAA4E;IAC5E,gDAAgD;IAChDV,KAAKC,KAAK,CAAC,cAAcU,KAAKC,SAAS,CAACd,sBAAsB,MAAM;IACpE,OAAOE;AACT,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMa,kBAAkB,CAACb,MAAYc;IAC1C,IAAId,KAAKe,MAAM,CAACD,MAAM;QACpBjB,OAAOG,KAAKgB,IAAI,CAACF,KAAK,UAAUG,eAAe,CAACH;IAClD,OAAO;QACLd,KACGkB,QAAQ,CAACJ,KACTK,OAAO,CAAC,CAACC,SACRP,gBAAgBb,MAAMR,kBAAkBsB,KAAKM;IAEnD;AACF,EAAE"}