@aws/nx-plugin 1.0.0-rc.87 → 1.0.0-rc.88

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 (126) hide show
  1. package/LICENSE-THIRD-PARTY +9977 -16000
  2. package/migrations.json +119 -76
  3. package/package.json +7 -7
  4. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
  5. package/src/infra/app/__snapshots__/generator.spec.ts.snap +7 -7
  6. package/src/migrations/latest/python-version-drop-exact-patch/metadata.json +3 -0
  7. package/src/migrations/latest/python-version-drop-exact-patch/migration.js +43 -0
  8. package/src/migrations/latest/python-version-drop-exact-patch/migration.js.map +1 -0
  9. package/src/migrations/latest/react-website-nx-react-express-override/metadata.json +3 -0
  10. package/src/migrations/latest/react-website-nx-react-express-override/migration.d.ts +31 -0
  11. package/src/migrations/latest/react-website-nx-react-express-override/migration.js +74 -0
  12. package/src/migrations/latest/react-website-nx-react-express-override/migration.js.map +1 -0
  13. package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/migration.js.map +1 -0
  14. package/src/migrations/v1.0.0-rc.77/0002-user-identity-configurable-mfa/migration.js.map +1 -0
  15. package/src/migrations/v1.0.0-rc.78/0001-static-website-configurable-waf-encryption/migration.js.map +1 -0
  16. package/src/migrations/v1.0.0-rc.79/0001-py-agent-ag-ui-hooks/migration.js.map +1 -0
  17. package/src/migrations/v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path/migration.js.map +1 -0
  18. package/src/migrations/v1.0.0-rc.82/0002-runtime-config-namespace-defaults/migration.js.map +1 -0
  19. package/src/migrations/v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs/migration.js.map +1 -0
  20. package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/migration.js.map +1 -0
  21. package/src/migrations/v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs/migration.js.map +1 -0
  22. package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/migration.js.map +1 -0
  23. package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/migration.js.map +1 -0
  24. package/src/migrations/v1.0.0-rc.84/0003-terraform-declare-used-providers/migration.js.map +1 -0
  25. package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/migration.js.map +1 -0
  26. package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/migration.js.map +1 -0
  27. package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/migration.d.ts +6 -0
  28. package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/migration.js.map +1 -0
  29. package/src/preset/__snapshots__/generator.spec.ts.snap +3 -3
  30. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +2 -2
  31. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +5 -5
  32. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +4 -4
  33. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  34. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
  35. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  36. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
  37. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2 -2
  38. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +7 -7
  39. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -8
  40. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
  41. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +3 -3
  42. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
  43. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  44. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  45. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  46. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +5 -5
  47. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +59 -49
  48. package/src/ts/react-website/app/generator.d.ts +3 -0
  49. package/src/ts/react-website/app/generator.js +25 -1
  50. package/src/ts/react-website/app/generator.js.map +1 -1
  51. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
  52. package/src/utils/lambda-runtime-resolution.d.ts +0 -21
  53. package/src/utils/lambda-runtime-resolution.js +0 -14
  54. package/src/utils/lambda-runtime-resolution.js.map +1 -1
  55. package/src/utils/version-upgrade-migration/sync-python-language-version.d.ts +2 -2
  56. package/src/utils/version-upgrade-migration/sync-python-language-version.js +2 -2
  57. package/src/utils/version-upgrade-migration/sync-python-language-version.js.map +1 -1
  58. package/src/utils/versions.d.ts +58 -62
  59. package/src/utils/versions.js +57 -60
  60. package/src/utils/versions.js.map +1 -1
  61. package/src/migrations/latest/agentcore-harness-no-tools-by-default/migration.js.map +0 -1
  62. package/src/migrations/latest/dynamodb-configurable-encryption/migration.js.map +0 -1
  63. package/src/migrations/latest/dynamodb-terraform-app-module-outputs/migration.js.map +0 -1
  64. package/src/migrations/latest/py-agent-ag-ui-hooks/migration.js.map +0 -1
  65. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/migration.js.map +0 -1
  66. package/src/migrations/latest/runtime-config-namespace-defaults/migration.js.map +0 -1
  67. package/src/migrations/latest/static-website-configurable-waf-encryption/migration.js.map +0 -1
  68. package/src/migrations/latest/terraform-data-resource-destroy-protection/migration.js.map +0 -1
  69. package/src/migrations/latest/terraform-declare-used-providers/migration.js.map +0 -1
  70. package/src/migrations/latest/terraform-gateway-cedar-render-root-ejs/migration.js.map +0 -1
  71. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/migration.js.map +0 -1
  72. package/src/migrations/latest/terraform-load-runtime-config-src-path/migration.js.map +0 -1
  73. package/src/migrations/latest/terraform-project-checkov-target-and-bootstrap-destroy/migration.js.map +0 -1
  74. package/src/migrations/latest/user-identity-configurable-mfa/migration.js.map +0 -1
  75. package/src/migrations/latest/waf-log-group-cmk-encryption/migration.js.map +0 -1
  76. /package/src/migrations/latest/{agentcore-harness-no-tools-by-default → python-version-drop-exact-patch}/migration.d.ts +0 -0
  77. /package/src/migrations/{latest/dynamodb-configurable-encryption → v1.0.0-rc.77/0001-dynamodb-configurable-encryption}/__snapshots__/migration.spec.ts.snap +0 -0
  78. /package/src/migrations/{latest/dynamodb-configurable-encryption → v1.0.0-rc.77/0001-dynamodb-configurable-encryption}/metadata.json +0 -0
  79. /package/src/migrations/{latest/dynamodb-configurable-encryption → v1.0.0-rc.77/0001-dynamodb-configurable-encryption}/migration.d.ts +0 -0
  80. /package/src/migrations/{latest/dynamodb-configurable-encryption → v1.0.0-rc.77/0001-dynamodb-configurable-encryption}/migration.js +0 -0
  81. /package/src/migrations/{latest/user-identity-configurable-mfa → v1.0.0-rc.77/0002-user-identity-configurable-mfa}/metadata.json +0 -0
  82. /package/src/migrations/{latest/terraform-data-resource-destroy-protection → v1.0.0-rc.77/0002-user-identity-configurable-mfa}/migration.d.ts +0 -0
  83. /package/src/migrations/{latest/user-identity-configurable-mfa → v1.0.0-rc.77/0002-user-identity-configurable-mfa}/migration.js +0 -0
  84. /package/src/migrations/{latest/static-website-configurable-waf-encryption → v1.0.0-rc.78/0001-static-website-configurable-waf-encryption}/metadata.json +0 -0
  85. /package/src/migrations/{latest/dynamodb-terraform-app-module-outputs → v1.0.0-rc.78/0001-static-website-configurable-waf-encryption}/migration.d.ts +0 -0
  86. /package/src/migrations/{latest/static-website-configurable-waf-encryption → v1.0.0-rc.78/0001-static-website-configurable-waf-encryption}/migration.js +0 -0
  87. /package/src/migrations/{latest/py-agent-ag-ui-hooks → v1.0.0-rc.79/0001-py-agent-ag-ui-hooks}/metadata.json +0 -0
  88. /package/src/migrations/{latest/py-agent-ag-ui-hooks → v1.0.0-rc.79/0001-py-agent-ag-ui-hooks}/migration.d.ts +0 -0
  89. /package/src/migrations/{latest/py-agent-ag-ui-hooks → v1.0.0-rc.79/0001-py-agent-ag-ui-hooks}/migration.js +0 -0
  90. /package/src/migrations/{latest/terraform-load-runtime-config-src-path → v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path}/metadata.json +0 -0
  91. /package/src/migrations/{latest/rdb-terraform-aurora-app-module-defaults → v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path}/migration.d.ts +0 -0
  92. /package/src/migrations/{latest/terraform-load-runtime-config-src-path → v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path}/migration.js +0 -0
  93. /package/src/migrations/{latest/runtime-config-namespace-defaults → v1.0.0-rc.82/0002-runtime-config-namespace-defaults}/metadata.json +0 -0
  94. /package/src/migrations/{latest/runtime-config-namespace-defaults → v1.0.0-rc.82/0002-runtime-config-namespace-defaults}/migration.d.ts +0 -0
  95. /package/src/migrations/{latest/runtime-config-namespace-defaults → v1.0.0-rc.82/0002-runtime-config-namespace-defaults}/migration.js +0 -0
  96. /package/src/migrations/{latest/dynamodb-terraform-app-module-outputs → v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs}/metadata.json +0 -0
  97. /package/src/migrations/{latest/static-website-configurable-waf-encryption → v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs}/migration.d.ts +0 -0
  98. /package/src/migrations/{latest/dynamodb-terraform-app-module-outputs → v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs}/migration.js +0 -0
  99. /package/src/migrations/{latest/terraform-data-resource-destroy-protection → v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection}/__snapshots__/migration.spec.ts.snap +0 -0
  100. /package/src/migrations/{latest/terraform-data-resource-destroy-protection → v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection}/metadata.json +0 -0
  101. /package/src/migrations/{latest/user-identity-configurable-mfa → v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection}/migration.d.ts +0 -0
  102. /package/src/migrations/{latest/terraform-data-resource-destroy-protection → v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection}/migration.js +0 -0
  103. /package/src/migrations/{latest/terraform-gateway-cedar-render-root-ejs → v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs}/metadata.json +0 -0
  104. /package/src/migrations/{latest/terraform-declare-used-providers → v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs}/migration.d.ts +0 -0
  105. /package/src/migrations/{latest/terraform-gateway-cedar-render-root-ejs → v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs}/migration.js +0 -0
  106. /package/src/migrations/{latest/rdb-terraform-aurora-app-module-defaults → v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults}/__snapshots__/migration.spec.ts.snap +0 -0
  107. /package/src/migrations/{latest/rdb-terraform-aurora-app-module-defaults → v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults}/metadata.json +0 -0
  108. /package/src/migrations/{latest/terraform-gateway-cedar-render-root-ejs → v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults}/migration.d.ts +0 -0
  109. /package/src/migrations/{latest/rdb-terraform-aurora-app-module-defaults → v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults}/migration.js +0 -0
  110. /package/src/migrations/{latest/agentcore-harness-no-tools-by-default → v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default}/__snapshots__/migration.spec.ts.snap +0 -0
  111. /package/src/migrations/{latest/agentcore-harness-no-tools-by-default → v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default}/metadata.json +0 -0
  112. /package/src/migrations/{latest/terraform-harness-vpc-role-and-memory-grant → v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default}/migration.d.ts +0 -0
  113. /package/src/migrations/{latest/agentcore-harness-no-tools-by-default → v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default}/migration.js +0 -0
  114. /package/src/migrations/{latest/terraform-declare-used-providers → v1.0.0-rc.84/0003-terraform-declare-used-providers}/metadata.json +0 -0
  115. /package/src/migrations/{latest/terraform-load-runtime-config-src-path → v1.0.0-rc.84/0003-terraform-declare-used-providers}/migration.d.ts +0 -0
  116. /package/src/migrations/{latest/terraform-declare-used-providers → v1.0.0-rc.84/0003-terraform-declare-used-providers}/migration.js +0 -0
  117. /package/src/migrations/{latest/waf-log-group-cmk-encryption → v1.0.0-rc.84/0004-waf-log-group-cmk-encryption}/__snapshots__/migration.spec.ts.snap +0 -0
  118. /package/src/migrations/{latest/waf-log-group-cmk-encryption → v1.0.0-rc.84/0004-waf-log-group-cmk-encryption}/metadata.json +0 -0
  119. /package/src/migrations/{latest/terraform-project-checkov-target-and-bootstrap-destroy → v1.0.0-rc.84/0004-waf-log-group-cmk-encryption}/migration.d.ts +0 -0
  120. /package/src/migrations/{latest/waf-log-group-cmk-encryption → v1.0.0-rc.84/0004-waf-log-group-cmk-encryption}/migration.js +0 -0
  121. /package/src/migrations/{latest/terraform-harness-vpc-role-and-memory-grant → v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant}/__snapshots__/migration.spec.ts.snap +0 -0
  122. /package/src/migrations/{latest/terraform-harness-vpc-role-and-memory-grant → v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant}/metadata.json +0 -0
  123. /package/src/migrations/{latest/waf-log-group-cmk-encryption → v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant}/migration.d.ts +0 -0
  124. /package/src/migrations/{latest/terraform-harness-vpc-role-and-memory-grant → v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant}/migration.js +0 -0
  125. /package/src/migrations/{latest/terraform-project-checkov-target-and-bootstrap-destroy → v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy}/metadata.json +0 -0
  126. /package/src/migrations/{latest/terraform-project-checkov-target-and-bootstrap-destroy → v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy}/migration.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/lambda-runtime-resolution.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type ILambdaRuntime, LAMBDA_RUNTIME_VERSIONS } from './versions.js';\n\n/**\n * Resolution of the Lambda runtimes and the CPython patch the version update\n * pins.\n *\n * Lives here rather than beside the script so it is covered by the plugin's test\n * suite; the script supplies the runtime list and the uv output.\n */\n\n/** Compare two dotted numeric versions (`24`, `3.14`) ascending. */\nexport const compareRuntimeVersions = (a: string, b: string): number => {\n const left = a.split('.').map(Number);\n const right = b.split('.').map(Number);\n for (let i = 0; i < Math.max(left.length, right.length); i++) {\n const diff = (left[i] ?? 0) - (right[i] ?? 0);\n if (diff !== 0) {\n return diff;\n }\n }\n return 0;\n};\n\n/**\n * The version a managed runtime identifier names, or undefined for one that isn't\n * a versioned `nodejs`/`python` runtime.\n *\n * `nodejs24.x` -> `24`, `python3.14` -> `3.14`. The bare `nodejs` and\n * `nodejs4.3-edge` style identifiers carry no comparable version and are skipped.\n */\nexport const runtimeIdentifierVersion = (\n identifier: string,\n): { language: ILambdaRuntime; version: string } | undefined => {\n const node = /^nodejs(\\d+)\\.x$/.exec(identifier);\n if (node) {\n return { language: 'node', version: node[1] };\n }\n const python = /^python(\\d+\\.\\d+)$/.exec(identifier);\n return python ? { language: 'python', version: python[1] } : undefined;\n};\n\n/** Why a language's runtime could not be resolved. */\nexport type UnresolvedReason = 'no-runtimes-listed';\n\nexport interface RuntimeResolution {\n /** Runtime version per language, holding the current pin where unresolved. */\n readonly versions: Record<string, string>;\n /** Languages left on their current pin, and why. */\n readonly unresolved: {\n readonly language: string;\n readonly kept: string;\n readonly reason: UnresolvedReason;\n }[];\n}\n\n/**\n * The latest managed runtime for each language in {@link LAMBDA_RUNTIME_VERSIONS},\n * from the runtime identifiers `aws-cdk-lib` publishes.\n *\n * `Runtime.ALL` is a curated list of the runtimes CDK supports, so a runtime still\n * in public preview does not appear — which is what makes it a usable source for a\n * generally-available runtime. Never moves a runtime backwards: a pin ahead of\n * what CDK offers stays.\n *\n * A language the list says nothing about keeps its current pin and is reported\n * through `unresolved`, so a failure costs this bump alone rather than the whole\n * version update.\n */\nexport const resolveLambdaRuntimes = (\n identifiers: readonly string[],\n): RuntimeResolution => {\n const unresolved: RuntimeResolution['unresolved'][number][] = [];\n\n const versions = Object.fromEntries(\n (Object.keys(LAMBDA_RUNTIME_VERSIONS) as ILambdaRuntime[]).map(\n (language) => {\n const current = LAMBDA_RUNTIME_VERSIONS[language];\n const available = identifiers\n .map(runtimeIdentifierVersion)\n .filter((parsed) => parsed?.language === language)\n .map((parsed) => parsed!.version);\n\n if (available.length === 0) {\n unresolved.push({\n language,\n kept: current,\n reason: 'no-runtimes-listed',\n });\n return [language, current];\n }\n\n const latest = available.reduce((best, version) =>\n compareRuntimeVersions(version, best) > 0 ? version : best,\n );\n\n return [\n language,\n compareRuntimeVersions(latest, current) > 0 ? latest : current,\n ];\n },\n ),\n );\n\n return { versions, unresolved };\n};\n\n/** The warning a language's unresolved runtime reports. */\nexport const unresolvedRuntimeWarning = (\n entry: RuntimeResolution['unresolved'][number],\n): string =>\n `Found no ${entry.language} runtime in the aws-cdk-lib runtime list, so it keeps its pinned runtime (${entry.kept})`;\n\n/** A CPython build as `uv python list --output-format json` reports it. */\nexport interface UvPythonEntry {\n readonly version: string;\n readonly version_parts: {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n };\n readonly implementation: string;\n readonly variant?: string;\n}\n\n/**\n * The latest CPython patch uv can install for a `major.minor`, or undefined when\n * it lists none.\n *\n * Lambda names only `major.minor` and patches the interpreter itself, but uv pins\n * an exact `major.minor.patch`, so the patch is resolved from what uv can actually\n * install for the runtime's minor. Pre-releases and the free-threaded variant are\n * excluded: a generated project needs the default build of a final release.\n */\nexport const resolveLatestPythonPatch = (\n entries: readonly UvPythonEntry[],\n minor: string = LAMBDA_RUNTIME_VERSIONS.python,\n): string | undefined => {\n const [major, wanted] = minor.split('.').map(Number);\n const patches = entries\n .filter(\n (entry) =>\n entry.implementation === 'cpython' &&\n entry.variant !== 'freethreaded' &&\n entry.version_parts.major === major &&\n entry.version_parts.minor === wanted &&\n // A final release only; `3.15.0rc1` carries a suffix.\n /^\\d+\\.\\d+\\.\\d+$/.test(entry.version),\n )\n .map((entry) => entry.version_parts.patch);\n\n return patches.length > 0 ? String(Math.max(...patches)) : undefined;\n};\n"],"names":["LAMBDA_RUNTIME_VERSIONS","compareRuntimeVersions","a","b","left","split","map","Number","right","i","Math","max","length","diff","runtimeIdentifierVersion","identifier","node","exec","language","version","python","undefined","resolveLambdaRuntimes","identifiers","unresolved","versions","Object","fromEntries","keys","current","available","filter","parsed","push","kept","reason","latest","reduce","best","unresolvedRuntimeWarning","entry","resolveLatestPythonPatch","entries","minor","major","wanted","patches","implementation","variant","version_parts","test","patch","String"],"mappings":"AAAA;;;CAGC,GACD,SAA8BA,uBAAuB,QAAQ,gBAAgB;AAE7E;;;;;;CAMC,GAED,kEAAkE,GAClE,OAAO,MAAMC,yBAAyB,CAACC,GAAWC;IAChD,MAAMC,OAAOF,EAAEG,KAAK,CAAC,KAAKC,GAAG,CAACC;IAC9B,MAAMC,QAAQL,EAAEE,KAAK,CAAC,KAAKC,GAAG,CAACC;IAC/B,IAAK,IAAIE,IAAI,GAAGA,IAAIC,KAAKC,GAAG,CAACP,KAAKQ,MAAM,EAAEJ,MAAMI,MAAM,GAAGH,IAAK;QAC5D,MAAMI,OAAO,AAACT,CAAAA,IAAI,CAACK,EAAE,IAAI,CAAA,IAAMD,CAAAA,KAAK,CAACC,EAAE,IAAI,CAAA;QAC3C,IAAII,SAAS,GAAG;YACd,OAAOA;QACT;IACF;IACA,OAAO;AACT,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAMC,2BAA2B,CACtCC;IAEA,MAAMC,OAAO,mBAAmBC,IAAI,CAACF;IACrC,IAAIC,MAAM;QACR,OAAO;YAAEE,UAAU;YAAQC,SAASH,IAAI,CAAC,EAAE;QAAC;IAC9C;IACA,MAAMI,SAAS,qBAAqBH,IAAI,CAACF;IACzC,OAAOK,SAAS;QAAEF,UAAU;QAAUC,SAASC,MAAM,CAAC,EAAE;IAAC,IAAIC;AAC/D,EAAE;AAgBF;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC,wBAAwB,CACnCC;IAEA,MAAMC,aAAwD,EAAE;IAEhE,MAAMC,WAAWC,OAAOC,WAAW,CACjC,AAACD,OAAOE,IAAI,CAAC5B,yBAA8CM,GAAG,CAC5D,CAACY;QACC,MAAMW,UAAU7B,uBAAuB,CAACkB,SAAS;QACjD,MAAMY,YAAYP,YACfjB,GAAG,CAACQ,0BACJiB,MAAM,CAAC,CAACC,SAAWA,QAAQd,aAAaA,UACxCZ,GAAG,CAAC,CAAC0B,SAAWA,OAAQb,OAAO;QAElC,IAAIW,UAAUlB,MAAM,KAAK,GAAG;YAC1BY,WAAWS,IAAI,CAAC;gBACdf;gBACAgB,MAAML;gBACNM,QAAQ;YACV;YACA,OAAO;gBAACjB;gBAAUW;aAAQ;QAC5B;QAEA,MAAMO,SAASN,UAAUO,MAAM,CAAC,CAACC,MAAMnB,UACrClB,uBAAuBkB,SAASmB,QAAQ,IAAInB,UAAUmB;QAGxD,OAAO;YACLpB;YACAjB,uBAAuBmC,QAAQP,WAAW,IAAIO,SAASP;SACxD;IACH;IAIJ,OAAO;QAAEJ;QAAUD;IAAW;AAChC,EAAE;AAEF,yDAAyD,GACzD,OAAO,MAAMe,2BAA2B,CACtCC,QAEA,CAAC,SAAS,EAAEA,MAAMtB,QAAQ,CAAC,0EAA0E,EAAEsB,MAAMN,IAAI,CAAC,CAAC,CAAC,CAAC;AAcvH;;;;;;;;CAQC,GACD,OAAO,MAAMO,2BAA2B,CACtCC,SACAC,QAAgB3C,wBAAwBoB,MAAM;IAE9C,MAAM,CAACwB,OAAOC,OAAO,GAAGF,MAAMtC,KAAK,CAAC,KAAKC,GAAG,CAACC;IAC7C,MAAMuC,UAAUJ,QACbX,MAAM,CACL,CAACS,QACCA,MAAMO,cAAc,KAAK,aACzBP,MAAMQ,OAAO,KAAK,kBAClBR,MAAMS,aAAa,CAACL,KAAK,KAAKA,SAC9BJ,MAAMS,aAAa,CAACN,KAAK,KAAKE,UAC9B,sDAAsD;QACtD,kBAAkBK,IAAI,CAACV,MAAMrB,OAAO,GAEvCb,GAAG,CAAC,CAACkC,QAAUA,MAAMS,aAAa,CAACE,KAAK;IAE3C,OAAOL,QAAQlC,MAAM,GAAG,IAAIwC,OAAO1C,KAAKC,GAAG,IAAImC,YAAYzB;AAC7D,EAAE"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/lambda-runtime-resolution.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type ILambdaRuntime, LAMBDA_RUNTIME_VERSIONS } from './versions.js';\n\n/**\n * Resolution of the Lambda runtimes and the CPython patch the version update\n * pins.\n *\n * Lives here rather than beside the script so it is covered by the plugin's test\n * suite; the script supplies the runtime list and the uv output.\n */\n\n/** Compare two dotted numeric versions (`24`, `3.14`) ascending. */\nexport const compareRuntimeVersions = (a: string, b: string): number => {\n const left = a.split('.').map(Number);\n const right = b.split('.').map(Number);\n for (let i = 0; i < Math.max(left.length, right.length); i++) {\n const diff = (left[i] ?? 0) - (right[i] ?? 0);\n if (diff !== 0) {\n return diff;\n }\n }\n return 0;\n};\n\n/**\n * The version a managed runtime identifier names, or undefined for one that isn't\n * a versioned `nodejs`/`python` runtime.\n *\n * `nodejs24.x` -> `24`, `python3.14` -> `3.14`. The bare `nodejs` and\n * `nodejs4.3-edge` style identifiers carry no comparable version and are skipped.\n */\nexport const runtimeIdentifierVersion = (\n identifier: string,\n): { language: ILambdaRuntime; version: string } | undefined => {\n const node = /^nodejs(\\d+)\\.x$/.exec(identifier);\n if (node) {\n return { language: 'node', version: node[1] };\n }\n const python = /^python(\\d+\\.\\d+)$/.exec(identifier);\n return python ? { language: 'python', version: python[1] } : undefined;\n};\n\n/** Why a language's runtime could not be resolved. */\nexport type UnresolvedReason = 'no-runtimes-listed';\n\nexport interface RuntimeResolution {\n /** Runtime version per language, holding the current pin where unresolved. */\n readonly versions: Record<string, string>;\n /** Languages left on their current pin, and why. */\n readonly unresolved: {\n readonly language: string;\n readonly kept: string;\n readonly reason: UnresolvedReason;\n }[];\n}\n\n/**\n * The latest managed runtime for each language in {@link LAMBDA_RUNTIME_VERSIONS},\n * from the runtime identifiers `aws-cdk-lib` publishes.\n *\n * `Runtime.ALL` is a curated list of the runtimes CDK supports, so a runtime still\n * in public preview does not appear — which is what makes it a usable source for a\n * generally-available runtime. Never moves a runtime backwards: a pin ahead of\n * what CDK offers stays.\n *\n * A language the list says nothing about keeps its current pin and is reported\n * through `unresolved`, so a failure costs this bump alone rather than the whole\n * version update.\n */\nexport const resolveLambdaRuntimes = (\n identifiers: readonly string[],\n): RuntimeResolution => {\n const unresolved: RuntimeResolution['unresolved'][number][] = [];\n\n const versions = Object.fromEntries(\n (Object.keys(LAMBDA_RUNTIME_VERSIONS) as ILambdaRuntime[]).map(\n (language) => {\n const current = LAMBDA_RUNTIME_VERSIONS[language];\n const available = identifiers\n .map(runtimeIdentifierVersion)\n .filter((parsed) => parsed?.language === language)\n .map((parsed) => parsed!.version);\n\n if (available.length === 0) {\n unresolved.push({\n language,\n kept: current,\n reason: 'no-runtimes-listed',\n });\n return [language, current];\n }\n\n const latest = available.reduce((best, version) =>\n compareRuntimeVersions(version, best) > 0 ? version : best,\n );\n\n return [\n language,\n compareRuntimeVersions(latest, current) > 0 ? latest : current,\n ];\n },\n ),\n );\n\n return { versions, unresolved };\n};\n\n/** The warning a language's unresolved runtime reports. */\nexport const unresolvedRuntimeWarning = (\n entry: RuntimeResolution['unresolved'][number],\n): string =>\n `Found no ${entry.language} runtime in the aws-cdk-lib runtime list, so it keeps its pinned runtime (${entry.kept})`;\n"],"names":["LAMBDA_RUNTIME_VERSIONS","compareRuntimeVersions","a","b","left","split","map","Number","right","i","Math","max","length","diff","runtimeIdentifierVersion","identifier","node","exec","language","version","python","undefined","resolveLambdaRuntimes","identifiers","unresolved","versions","Object","fromEntries","keys","current","available","filter","parsed","push","kept","reason","latest","reduce","best","unresolvedRuntimeWarning","entry"],"mappings":"AAAA;;;CAGC,GACD,SAA8BA,uBAAuB,QAAQ,gBAAgB;AAE7E;;;;;;CAMC,GAED,kEAAkE,GAClE,OAAO,MAAMC,yBAAyB,CAACC,GAAWC;IAChD,MAAMC,OAAOF,EAAEG,KAAK,CAAC,KAAKC,GAAG,CAACC;IAC9B,MAAMC,QAAQL,EAAEE,KAAK,CAAC,KAAKC,GAAG,CAACC;IAC/B,IAAK,IAAIE,IAAI,GAAGA,IAAIC,KAAKC,GAAG,CAACP,KAAKQ,MAAM,EAAEJ,MAAMI,MAAM,GAAGH,IAAK;QAC5D,MAAMI,OAAO,AAACT,CAAAA,IAAI,CAACK,EAAE,IAAI,CAAA,IAAMD,CAAAA,KAAK,CAACC,EAAE,IAAI,CAAA;QAC3C,IAAII,SAAS,GAAG;YACd,OAAOA;QACT;IACF;IACA,OAAO;AACT,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAMC,2BAA2B,CACtCC;IAEA,MAAMC,OAAO,mBAAmBC,IAAI,CAACF;IACrC,IAAIC,MAAM;QACR,OAAO;YAAEE,UAAU;YAAQC,SAASH,IAAI,CAAC,EAAE;QAAC;IAC9C;IACA,MAAMI,SAAS,qBAAqBH,IAAI,CAACF;IACzC,OAAOK,SAAS;QAAEF,UAAU;QAAUC,SAASC,MAAM,CAAC,EAAE;IAAC,IAAIC;AAC/D,EAAE;AAgBF;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC,wBAAwB,CACnCC;IAEA,MAAMC,aAAwD,EAAE;IAEhE,MAAMC,WAAWC,OAAOC,WAAW,CACjC,AAACD,OAAOE,IAAI,CAAC5B,yBAA8CM,GAAG,CAC5D,CAACY;QACC,MAAMW,UAAU7B,uBAAuB,CAACkB,SAAS;QACjD,MAAMY,YAAYP,YACfjB,GAAG,CAACQ,0BACJiB,MAAM,CAAC,CAACC,SAAWA,QAAQd,aAAaA,UACxCZ,GAAG,CAAC,CAAC0B,SAAWA,OAAQb,OAAO;QAElC,IAAIW,UAAUlB,MAAM,KAAK,GAAG;YAC1BY,WAAWS,IAAI,CAAC;gBACdf;gBACAgB,MAAML;gBACNM,QAAQ;YACV;YACA,OAAO;gBAACjB;gBAAUW;aAAQ;QAC5B;QAEA,MAAMO,SAASN,UAAUO,MAAM,CAAC,CAACC,MAAMnB,UACrClB,uBAAuBkB,SAASmB,QAAQ,IAAInB,UAAUmB;QAGxD,OAAO;YACLpB;YACAjB,uBAAuBmC,QAAQP,WAAW,IAAIO,SAASP;SACxD;IACH;IAIJ,OAAO;QAAEJ;QAAUD;IAAW;AAChC,EAAE;AAEF,yDAAyD,GACzD,OAAO,MAAMe,2BAA2B,CACtCC,QAEA,CAAC,SAAS,EAAEA,MAAMtB,QAAQ,CAAC,0EAA0E,EAAEsB,MAAMN,IAAI,CAAC,CAAC,CAAC,CAAC"}
@@ -14,8 +14,8 @@ import { type Tree } from '@nx/devkit';
14
14
  /**
15
15
  * Sync the interpreter a uv project pins to the Lambda Python runtime.
16
16
  *
17
- * `.python-version` holds the exact interpreter and `[project].requires-python`
18
- * its lower bound; Ruff's `target-version` is derived from the latter, so leaving
17
+ * `.python-version` holds the interpreter and `[project].requires-python` its
18
+ * lower bound; Ruff's `target-version` is derived from the latter, so leaving
19
19
  * these behind lints against a different version than the function runs on. Only
20
20
  * moved forward, and only from a value this plugin vended.
21
21
  */
@@ -15,8 +15,8 @@ import { isVendedUpgrade } from "./vended-upgrade.js";
15
15
  */ /**
16
16
  * Sync the interpreter a uv project pins to the Lambda Python runtime.
17
17
  *
18
- * `.python-version` holds the exact interpreter and `[project].requires-python`
19
- * its lower bound; Ruff's `target-version` is derived from the latter, so leaving
18
+ * `.python-version` holds the interpreter and `[project].requires-python` its
19
+ * lower bound; Ruff's `target-version` is derived from the latter, so leaving
20
20
  * these behind lints against a different version than the function runs on. Only
21
21
  * moved forward, and only from a value this plugin vended.
22
22
  */ export const syncProjectPythonVersion = (tree)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-upgrade-migration/sync-python-language-version.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateJson, visitNotIgnoredFiles } from '@nx/devkit';\nimport { updateToml } from '../toml.js';\nimport {\n LAMBDA_RUNTIME_VERSIONS,\n pyenvPythonVersion,\n pyprojectPythonDependency,\n} from '../versions.js';\nimport { isVendedUpgrade } from './vended-upgrade.js';\n\n/**\n * Sync the Python language version a generated workspace builds and lints against\n * to the Lambda Python runtime it deploys onto.\n *\n * These are workspace-wide rather than scoped to the infrastructure projects: uv\n * writes a `.python-version` per Python project wherever it sits, and a bundle\n * target lives in the project it belongs to.\n */\n\n/**\n * Sync the interpreter a uv project pins to the Lambda Python runtime.\n *\n * `.python-version` holds the exact interpreter and `[project].requires-python`\n * its lower bound; Ruff's `target-version` is derived from the latter, so leaving\n * these behind lints against a different version than the function runs on. Only\n * moved forward, and only from a value this plugin vended.\n */\nexport const syncProjectPythonVersion = (tree: Tree): string[] => {\n const updated: string[] = [];\n const vendedInterpreter = pyenvPythonVersion();\n const vendedRequires = pyprojectPythonDependency();\n\n // Every `.python-version`, not just the root: uv writes one per project too,\n // and a project left behind resolves a different interpreter than it deploys on.\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (path !== '.python-version' && !path.endsWith('/.python-version')) {\n return;\n }\n const declared = (tree.read(path, 'utf-8') ?? '').trim();\n if (declared && isVendedUpgrade(vendedInterpreter, declared)) {\n tree.write(path, `${vendedInterpreter}\\n`);\n updated.push(path);\n }\n });\n\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (!path.endsWith('pyproject.toml')) {\n return;\n }\n let changed = false;\n updateToml(tree, path, (toml) => {\n const project = toml.project as Record<string, unknown> | undefined;\n const declared = project?.['requires-python'];\n if (typeof declared !== 'string') {\n return toml;\n }\n // Only the `>=<major>.<minor>` shape the generators write, so a specifier\n // the user tightened or widened is theirs to keep.\n const lower = /^>=\\s*(\\d+\\.\\d+)$/.exec(declared.trim());\n if (lower && isVendedUpgrade(LAMBDA_RUNTIME_VERSIONS.python, lower[1])) {\n project!['requires-python'] = vendedRequires;\n changed = true;\n }\n return toml;\n });\n if (changed) {\n updated.push(path);\n }\n });\n\n return updated;\n};\n\n/**\n * Sync the Python version a `bundle` target resolves wheels against.\n *\n * The target pins `--python-platform` but earlier releases pinned no\n * `--python-version`, so wheels resolved against whichever interpreter the build\n * machine had rather than the Lambda runtime. Both the missing flag and a stale\n * one are corrected, keyed on the `uv pip install` the generators write.\n */\nexport const syncPythonBundleVersion = (tree: Tree): string[] => {\n const updated: string[] = [];\n const vended = LAMBDA_RUNTIME_VERSIONS.python;\n\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (!path.endsWith('project.json')) {\n return;\n }\n let changed = false;\n updateJson(tree, path, (json) => {\n for (const target of Object.values(\n (json.targets ?? {}) as Record<string, { options?: unknown }>,\n )) {\n const options = target.options as { commands?: unknown[] } | undefined;\n if (!Array.isArray(options?.commands)) {\n continue;\n }\n options.commands = options.commands.map((command) => {\n if (\n typeof command !== 'string' ||\n !command.includes('uv pip install') ||\n !command.includes('--python-platform')\n ) {\n return command;\n }\n const declared = /--python-version (\\S+)/.exec(command);\n if (!declared) {\n changed = true;\n return command.replace(\n /(--python-platform \\S+)/,\n `$1 --python-version ${vended}`,\n );\n }\n if (isVendedUpgrade(vended, declared[1])) {\n changed = true;\n return command.replace(\n /--python-version \\S+/,\n `--python-version ${vended}`,\n );\n }\n return command;\n });\n }\n return json;\n });\n if (changed) {\n updated.push(path);\n }\n });\n\n return updated;\n};\n"],"names":["updateJson","visitNotIgnoredFiles","updateToml","LAMBDA_RUNTIME_VERSIONS","pyenvPythonVersion","pyprojectPythonDependency","isVendedUpgrade","syncProjectPythonVersion","tree","updated","vendedInterpreter","vendedRequires","path","endsWith","declared","read","trim","write","push","changed","toml","project","lower","exec","python","syncPythonBundleVersion","vended","json","target","Object","values","targets","options","Array","isArray","commands","map","command","includes","replace"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-upgrade-migration/sync-python-language-version.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateJson, visitNotIgnoredFiles } from '@nx/devkit';\nimport { updateToml } from '../toml.js';\nimport {\n LAMBDA_RUNTIME_VERSIONS,\n pyenvPythonVersion,\n pyprojectPythonDependency,\n} from '../versions.js';\nimport { isVendedUpgrade } from './vended-upgrade.js';\n\n/**\n * Sync the Python language version a generated workspace builds and lints against\n * to the Lambda Python runtime it deploys onto.\n *\n * These are workspace-wide rather than scoped to the infrastructure projects: uv\n * writes a `.python-version` per Python project wherever it sits, and a bundle\n * target lives in the project it belongs to.\n */\n\n/**\n * Sync the interpreter a uv project pins to the Lambda Python runtime.\n *\n * `.python-version` holds the interpreter and `[project].requires-python` its\n * lower bound; Ruff's `target-version` is derived from the latter, so leaving\n * these behind lints against a different version than the function runs on. Only\n * moved forward, and only from a value this plugin vended.\n */\nexport const syncProjectPythonVersion = (tree: Tree): string[] => {\n const updated: string[] = [];\n const vendedInterpreter = pyenvPythonVersion();\n const vendedRequires = pyprojectPythonDependency();\n\n // Every `.python-version`, not just the root: uv writes one per project too,\n // and a project left behind resolves a different interpreter than it deploys on.\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (path !== '.python-version' && !path.endsWith('/.python-version')) {\n return;\n }\n const declared = (tree.read(path, 'utf-8') ?? '').trim();\n if (declared && isVendedUpgrade(vendedInterpreter, declared)) {\n tree.write(path, `${vendedInterpreter}\\n`);\n updated.push(path);\n }\n });\n\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (!path.endsWith('pyproject.toml')) {\n return;\n }\n let changed = false;\n updateToml(tree, path, (toml) => {\n const project = toml.project as Record<string, unknown> | undefined;\n const declared = project?.['requires-python'];\n if (typeof declared !== 'string') {\n return toml;\n }\n // Only the `>=<major>.<minor>` shape the generators write, so a specifier\n // the user tightened or widened is theirs to keep.\n const lower = /^>=\\s*(\\d+\\.\\d+)$/.exec(declared.trim());\n if (lower && isVendedUpgrade(LAMBDA_RUNTIME_VERSIONS.python, lower[1])) {\n project!['requires-python'] = vendedRequires;\n changed = true;\n }\n return toml;\n });\n if (changed) {\n updated.push(path);\n }\n });\n\n return updated;\n};\n\n/**\n * Sync the Python version a `bundle` target resolves wheels against.\n *\n * The target pins `--python-platform` but earlier releases pinned no\n * `--python-version`, so wheels resolved against whichever interpreter the build\n * machine had rather than the Lambda runtime. Both the missing flag and a stale\n * one are corrected, keyed on the `uv pip install` the generators write.\n */\nexport const syncPythonBundleVersion = (tree: Tree): string[] => {\n const updated: string[] = [];\n const vended = LAMBDA_RUNTIME_VERSIONS.python;\n\n visitNotIgnoredFiles(tree, '.', (path) => {\n if (!path.endsWith('project.json')) {\n return;\n }\n let changed = false;\n updateJson(tree, path, (json) => {\n for (const target of Object.values(\n (json.targets ?? {}) as Record<string, { options?: unknown }>,\n )) {\n const options = target.options as { commands?: unknown[] } | undefined;\n if (!Array.isArray(options?.commands)) {\n continue;\n }\n options.commands = options.commands.map((command) => {\n if (\n typeof command !== 'string' ||\n !command.includes('uv pip install') ||\n !command.includes('--python-platform')\n ) {\n return command;\n }\n const declared = /--python-version (\\S+)/.exec(command);\n if (!declared) {\n changed = true;\n return command.replace(\n /(--python-platform \\S+)/,\n `$1 --python-version ${vended}`,\n );\n }\n if (isVendedUpgrade(vended, declared[1])) {\n changed = true;\n return command.replace(\n /--python-version \\S+/,\n `--python-version ${vended}`,\n );\n }\n return command;\n });\n }\n return json;\n });\n if (changed) {\n updated.push(path);\n }\n });\n\n return updated;\n};\n"],"names":["updateJson","visitNotIgnoredFiles","updateToml","LAMBDA_RUNTIME_VERSIONS","pyenvPythonVersion","pyprojectPythonDependency","isVendedUpgrade","syncProjectPythonVersion","tree","updated","vendedInterpreter","vendedRequires","path","endsWith","declared","read","trim","write","push","changed","toml","project","lower","exec","python","syncPythonBundleVersion","vended","json","target","Object","values","targets","options","Array","isArray","commands","map","command","includes","replace"],"mappings":"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"}
@@ -11,17 +11,17 @@ export declare const TS_VERSIONS: {
11
11
  readonly '@aws/aws-distro-opentelemetry-node-autoinstrumentation': "0.12.0";
12
12
  readonly '@opentelemetry/propagator-jaeger': "2.10.0";
13
13
  readonly minimatch: "10.2.6";
14
- readonly '@aws-sdk/client-dynamodb': "3.1116.0";
15
- readonly '@aws-sdk/client-api-gateway': "3.1116.0";
16
- readonly '@aws-sdk/client-iam': "3.1116.0";
17
- readonly '@aws-sdk/client-bedrock-agentcore': "3.1116.0";
18
- readonly '@aws-sdk/client-bedrock-runtime': "3.1116.0";
19
- readonly '@aws-sdk/client-s3': "3.1116.0";
20
- readonly '@aws-sdk/client-sts': "3.1116.0";
21
- readonly '@aws-sdk/credential-providers': "3.1116.0";
14
+ readonly '@aws-sdk/client-dynamodb': "3.1119.0";
15
+ readonly '@aws-sdk/client-api-gateway': "3.1119.0";
16
+ readonly '@aws-sdk/client-iam': "3.1119.0";
17
+ readonly '@aws-sdk/client-bedrock-agentcore': "3.1119.0";
18
+ readonly '@aws-sdk/client-bedrock-runtime': "3.1119.0";
19
+ readonly '@aws-sdk/client-s3': "3.1119.0";
20
+ readonly '@aws-sdk/client-sts': "3.1119.0";
21
+ readonly '@aws-sdk/credential-providers': "3.1119.0";
22
22
  readonly '@aws-sdk/credential-provider-cognito-identity': "3.972.69";
23
- readonly '@aws-sdk/client-secrets-manager': "3.1116.0";
24
- readonly '@aws-sdk/rds-signer': "3.1116.0";
23
+ readonly '@aws-sdk/client-secrets-manager': "3.1119.0";
24
+ readonly '@aws-sdk/rds-signer': "3.1119.0";
25
25
  readonly '@smithy/server-apigateway': "0.3.3";
26
26
  readonly '@smithy/server-node': "0.3.3";
27
27
  readonly '@aws-lambda-powertools/logger': "2.35.0";
@@ -29,46 +29,46 @@ export declare const TS_VERSIONS: {
29
29
  readonly '@aws-lambda-powertools/parameters': "2.35.0";
30
30
  readonly '@aws-lambda-powertools/tracer': "2.35.0";
31
31
  readonly '@aws-lambda-powertools/parser': "2.35.0";
32
- readonly '@aws-sdk/client-appconfigdata': "3.1116.0";
32
+ readonly '@aws-sdk/client-appconfigdata': "3.1119.0";
33
33
  readonly '@middy/core': "7.8.0";
34
34
  readonly '@nxlv/python': "23.0.0";
35
35
  readonly '@nx-extend/terraform': "10.4.1";
36
- readonly nx: "23.1.1";
37
- readonly '@nx/devkit': "23.1.1";
38
- readonly '@nx/js': "23.1.1";
39
- readonly '@nx/react': "23.1.1";
40
- readonly '@nx/vite': "23.1.1";
41
- readonly '@nx/vitest': "23.1.1";
42
- readonly '@nx/workspace': "23.1.1";
43
- readonly 'create-nx-workspace': "23.1.1";
36
+ readonly nx: "23.1.2";
37
+ readonly '@nx/devkit': "23.1.2";
38
+ readonly '@nx/js': "23.1.2";
39
+ readonly '@nx/react': "23.1.2";
40
+ readonly '@nx/vite': "23.1.2";
41
+ readonly '@nx/vitest': "23.1.2";
42
+ readonly '@nx/workspace': "23.1.2";
43
+ readonly 'create-nx-workspace': "23.1.2";
44
44
  readonly '@swc-node/register': "1.12.1";
45
45
  readonly '@swc/core': "1.16.1";
46
46
  readonly '@modelcontextprotocol/sdk': "1.30.0";
47
- readonly '@modelcontextprotocol/inspector': "2.3.0";
47
+ readonly '@modelcontextprotocol/inspector': "2.4.0";
48
48
  readonly '@ag-ui/a2ui-toolkit': "0.0.4";
49
49
  readonly '@ag-ui/aws-strands': "0.2.3";
50
50
  readonly '@ag-ui/client': "0.0.57";
51
51
  readonly '@ag-ui/core': "0.0.57";
52
52
  readonly '@ag-ui/encoder': "0.0.57";
53
53
  readonly 'agent-chat-cli': "0.3.0";
54
- readonly '@copilotkit/react-core': "1.69.0";
54
+ readonly '@copilotkit/react-core': "1.69.2";
55
55
  readonly rxjs: "7.8.2";
56
56
  readonly '@strands-agents/sdk': "1.14.0";
57
- readonly '@tanstack/react-router': "1.170.31";
58
- readonly '@tanstack/router-plugin': "1.168.34";
59
- readonly '@tanstack/router-generator': "1.167.32";
57
+ readonly '@tanstack/react-router': "1.170.32";
58
+ readonly '@tanstack/router-plugin': "1.168.35";
59
+ readonly '@tanstack/router-generator': "1.167.33";
60
60
  readonly '@tanstack/virtual-file-routes': "1.162.0";
61
61
  readonly '@tanstack/router-utils': "1.162.2";
62
62
  readonly '@cloudscape-design/board-components': "3.0.220";
63
63
  readonly '@cloudscape-design/chat-components': "1.0.164";
64
- readonly '@cloudscape-design/components': "3.0.1352";
64
+ readonly '@cloudscape-design/components': "3.0.1354";
65
65
  readonly '@cloudscape-design/global-styles': "1.0.67";
66
- readonly '@tanstack/react-query': "5.102.0";
67
- readonly '@tanstack/react-query-devtools': "5.102.0";
66
+ readonly '@tanstack/react-query': "5.102.6";
67
+ readonly '@tanstack/react-query-devtools': "5.102.6";
68
68
  readonly '@trpc/tanstack-react-query': "11.18.0";
69
69
  readonly '@trpc/client': "11.18.0";
70
70
  readonly '@trpc/server': "11.18.0";
71
- readonly '@types/node': "26.2.0";
71
+ readonly '@types/node': "26.4.0";
72
72
  readonly '@types/aws-lambda': "8.10.162";
73
73
  readonly '@types/cors': "2.8.19";
74
74
  readonly '@types/pg': "8.23.1";
@@ -81,11 +81,11 @@ export declare const TS_VERSIONS: {
81
81
  readonly '@vitest/coverage-v8': "4.1.11";
82
82
  readonly '@vitest/ui': "4.1.11";
83
83
  readonly '@astrojs/react': "6.0.4";
84
- readonly '@astrojs/starlight': "0.41.7";
85
- readonly astro: "7.2.4";
84
+ readonly '@astrojs/starlight': "0.41.9";
85
+ readonly astro: "7.2.8";
86
86
  readonly cookie: "2.0.1";
87
87
  readonly aws4fetch: "1.0.20";
88
- readonly 'aws-cdk': "2.1138.0";
88
+ readonly 'aws-cdk': "2.1139.0";
89
89
  readonly 'aws-cdk-lib': "2.266.0";
90
90
  readonly 'aws-xray-sdk-core': "3.12.0";
91
91
  readonly constructs: "10.8.1";
@@ -100,9 +100,9 @@ export declare const TS_VERSIONS: {
100
100
  readonly 'event-source-polyfill': "1.0.31";
101
101
  readonly '@types/event-source-polyfill': "1.0.5";
102
102
  readonly '@biomejs/biome': "2.5.10";
103
- readonly '@prisma/adapter-mariadb': "7.9.1";
104
- readonly '@prisma/adapter-pg': "7.9.1";
105
- readonly '@prisma/client': "7.9.1";
103
+ readonly '@prisma/adapter-mariadb': "7.10.0";
104
+ readonly '@prisma/adapter-pg': "7.10.0";
105
+ readonly '@prisma/client': "7.10.0";
106
106
  readonly ejs: "6.0.1";
107
107
  readonly '@types/ejs': "3.1.5";
108
108
  readonly express: "5.2.1";
@@ -112,18 +112,18 @@ export declare const TS_VERSIONS: {
112
112
  readonly '@types/fs-extra': "11.0.4";
113
113
  readonly 'make-dir-cli': "4.0.0";
114
114
  readonly mariadb: "3.5.3";
115
- readonly mise: "2026.8.10";
115
+ readonly mise: "2026.8.14";
116
116
  readonly ncp: "2.0.0";
117
117
  readonly npm: "12.0.2";
118
- readonly 'npm-check-updates': "23.0.2";
118
+ readonly 'npm-check-updates': "23.1.0";
119
119
  readonly 'oidc-client-ts': "3.5.0";
120
120
  readonly pg: "8.23.0";
121
- readonly prisma: "7.9.1";
121
+ readonly prisma: "7.10.0";
122
122
  readonly 'react-oidc-context': "3.3.1";
123
123
  readonly react: "19.2.8";
124
124
  readonly 'react-dom': "19.2.8";
125
125
  readonly rimraf: "6.1.3";
126
- readonly rolldown: "1.2.5";
126
+ readonly rolldown: "1.2.6";
127
127
  readonly 'rolldown-plugin-dts': "0.28.2";
128
128
  readonly 'simple-git': "3.36.0";
129
129
  readonly 'source-map-support': "0.5.21";
@@ -131,7 +131,7 @@ export declare const TS_VERSIONS: {
131
131
  readonly tailwindcss: "4.3.3";
132
132
  readonly '@tailwindcss/vite': "4.3.3";
133
133
  readonly tsx: "4.23.12";
134
- readonly 'lucide-react': "1.33.0";
134
+ readonly 'lucide-react': "1.34.0";
135
135
  readonly 'radix-ui': "1.6.7";
136
136
  readonly shadcn: "4.19.0";
137
137
  readonly 'tw-animate-css': "1.4.0";
@@ -162,14 +162,14 @@ export declare const NX_PACKAGES: readonly ["nx", "@nx/devkit", "@nx/js", "@nx/r
162
162
  * The nx version the plugin is built against, and the single source of truth
163
163
  * for every place a workspace's nx is pinned.
164
164
  */
165
- export declare const NX_VERSION: "23.1.1";
165
+ export declare const NX_VERSION: "23.1.2";
166
166
  /**
167
167
  * Versions for Python dependencies added by generators
168
168
  */
169
169
  export declare const PY_VERSIONS: {
170
170
  readonly 'a2a-sdk': "==0.3.26";
171
- readonly 'ag-ui-langgraph': "==0.0.43";
172
- readonly 'ag-ui-protocol': "==0.1.20";
171
+ readonly 'ag-ui-langgraph': "==0.0.44";
172
+ readonly 'ag-ui-protocol': "==0.1.21";
173
173
  readonly 'ag-ui-strands': "==0.3.0";
174
174
  readonly aiosqlite: "==0.22.1";
175
175
  readonly 'aws-lambda-powertools': "==3.34.0";
@@ -177,13 +177,13 @@ export declare const PY_VERSIONS: {
177
177
  readonly 'aws-lambda-powertools[parser]': "==3.34.0";
178
178
  readonly 'aws-opentelemetry-distro': "==0.19.0";
179
179
  readonly 'bedrock-agentcore': "==1.22.0";
180
- readonly boto3: "==1.43.78";
181
- readonly checkov: "==3.3.13";
180
+ readonly boto3: "==1.43.82";
181
+ readonly checkov: "==3.3.15";
182
182
  readonly fastapi: "==0.141.1";
183
183
  readonly 'fastapi[standard]': "==0.141.1";
184
184
  readonly httpx: "==0.28.1";
185
- readonly langchain: "==1.3.16";
186
- readonly 'langchain-aws': "==1.7.3";
185
+ readonly langchain: "==1.3.18";
186
+ readonly 'langchain-aws': "==1.7.4";
187
187
  readonly 'langchain-mcp-adapters': "==0.3.2";
188
188
  readonly langgraph: "==1.2.11";
189
189
  readonly 'langgraph-checkpoint-aws': "==1.2.2";
@@ -192,10 +192,10 @@ export declare const PY_VERSIONS: {
192
192
  readonly 'pip-check-updates': "==0.29.0";
193
193
  readonly 'pip-licenses': "==5.5.5";
194
194
  readonly ruff: "==0.16.4";
195
- readonly 'strands-agents': "==1.53.0";
196
- readonly 'strands-agents[a2a]': "==1.53.0";
195
+ readonly 'strands-agents': "==1.54.0";
196
+ readonly 'strands-agents[a2a]': "==1.54.0";
197
197
  readonly 'strands-agents-tools': "==0.8.6";
198
- readonly ty: "==0.0.74";
198
+ readonly ty: "==0.0.75";
199
199
  readonly pynamodb: "==6.1.0";
200
200
  readonly uvicorn: "==0.52.4";
201
201
  readonly sqlmodel: "==0.0.39";
@@ -226,7 +226,7 @@ export declare const JAVA_VERSIONS: {
226
226
  readonly 'software.amazon.smithy:smithy-aws-traits': "1.73.0";
227
227
  readonly 'software.amazon.smithy:smithy-validation-model': "1.73.0";
228
228
  readonly 'software.amazon.smithy:smithy-openapi': "1.73.0";
229
- readonly 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': "0.52.0";
229
+ readonly 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': "0.53.0";
230
230
  };
231
231
  export type IJavaVersion = keyof typeof JAVA_VERSIONS;
232
232
  /** The Maven coordinates the version update resolves, in declaration order. */
@@ -287,17 +287,13 @@ export declare const LAMBDA_RUNTIME_VERSIONS: {
287
287
  };
288
288
  export type ILambdaRuntime = keyof typeof LAMBDA_RUNTIME_VERSIONS;
289
289
  /**
290
- * Patch of the CPython release uv pins as the project interpreter.
290
+ * The interpreter uv pins for a generated Python project, as the Lambda runtime's
291
+ * `major.minor`.
291
292
  *
292
- * A Lambda runtime names only `major.minor`, but uv pins an exact
293
- * `major.minor.patch`, so only the patch lives here the `major.minor` comes from
294
- * {@link LAMBDA_RUNTIME_VERSIONS}. Resolved from uv by the version update
295
- * workflow.
296
- */
297
- export declare const PYTHON_RUNTIME_PATCH = "7";
298
- /**
299
- * The interpreter uv pins for a generated Python project, as `major.minor.patch`.
300
- * Matches the Lambda Python runtime by construction.
293
+ * No patch: uv reads this as a request for any patch of that minor, so it resolves
294
+ * whichever one the platform has a build for. Naming an exact patch pins one that
295
+ * may not exist everywhere, and Lambda patches the interpreter itself, so the minor
296
+ * is the whole of what a project needs to agree on.
301
297
  */
302
298
  export declare const pyenvPythonVersion: () => string;
303
299
  /**
@@ -338,7 +334,7 @@ export declare const terraformLambdaRuntimeVars: () => {
338
334
  * Pinned exactly (no range operator) so generated infrastructure is reproducible.
339
335
  */
340
336
  export declare const TERRAFORM_VERSIONS: {
341
- readonly aws: "6.61.0";
337
+ readonly aws: "6.62.0";
342
338
  readonly random: "3.9.0";
343
339
  readonly null: "3.3.1";
344
340
  readonly archive: "2.8.0";
@@ -352,7 +348,7 @@ export type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;
352
348
  * generated `.tf` templates (e.g. `version = "<%- awsProviderVersion %>"`)
353
349
  */
354
350
  export declare const terraformProviderVersions: () => {
355
- awsProviderVersion: "6.61.0";
351
+ awsProviderVersion: "6.62.0";
356
352
  randomProviderVersion: "3.9.0";
357
353
  nullProviderVersion: "3.3.1";
358
354
  archiveProviderVersion: "2.8.0";
@@ -16,17 +16,17 @@
16
16
  // as fixed. Overriding brace-expansion directly is not viable — 5.x drops the
17
17
  // CommonJS default export that minimatch 9 calls.
18
18
  minimatch: '10.2.6',
19
- '@aws-sdk/client-dynamodb': '3.1116.0',
20
- '@aws-sdk/client-api-gateway': '3.1116.0',
21
- '@aws-sdk/client-iam': '3.1116.0',
22
- '@aws-sdk/client-bedrock-agentcore': '3.1116.0',
23
- '@aws-sdk/client-bedrock-runtime': '3.1116.0',
24
- '@aws-sdk/client-s3': '3.1116.0',
25
- '@aws-sdk/client-sts': '3.1116.0',
26
- '@aws-sdk/credential-providers': '3.1116.0',
19
+ '@aws-sdk/client-dynamodb': '3.1119.0',
20
+ '@aws-sdk/client-api-gateway': '3.1119.0',
21
+ '@aws-sdk/client-iam': '3.1119.0',
22
+ '@aws-sdk/client-bedrock-agentcore': '3.1119.0',
23
+ '@aws-sdk/client-bedrock-runtime': '3.1119.0',
24
+ '@aws-sdk/client-s3': '3.1119.0',
25
+ '@aws-sdk/client-sts': '3.1119.0',
26
+ '@aws-sdk/credential-providers': '3.1119.0',
27
27
  '@aws-sdk/credential-provider-cognito-identity': '3.972.69',
28
- '@aws-sdk/client-secrets-manager': '3.1116.0',
29
- '@aws-sdk/rds-signer': '3.1116.0',
28
+ '@aws-sdk/client-secrets-manager': '3.1119.0',
29
+ '@aws-sdk/rds-signer': '3.1119.0',
30
30
  '@smithy/server-apigateway': '0.3.3',
31
31
  '@smithy/server-node': '0.3.3',
32
32
  '@aws-lambda-powertools/logger': '2.35.0',
@@ -34,47 +34,47 @@
34
34
  '@aws-lambda-powertools/parameters': '2.35.0',
35
35
  '@aws-lambda-powertools/tracer': '2.35.0',
36
36
  '@aws-lambda-powertools/parser': '2.35.0',
37
- '@aws-sdk/client-appconfigdata': '3.1116.0',
37
+ '@aws-sdk/client-appconfigdata': '3.1119.0',
38
38
  '@middy/core': '7.8.0',
39
39
  '@nxlv/python': '23.0.0',
40
40
  '@nx-extend/terraform': '10.4.1',
41
41
  // These must all hold the same version — see NX_PACKAGES.
42
- nx: '23.1.1',
43
- '@nx/devkit': '23.1.1',
44
- '@nx/js': '23.1.1',
45
- '@nx/react': '23.1.1',
46
- '@nx/vite': '23.1.1',
47
- '@nx/vitest': '23.1.1',
48
- '@nx/workspace': '23.1.1',
49
- 'create-nx-workspace': '23.1.1',
42
+ nx: '23.1.2',
43
+ '@nx/devkit': '23.1.2',
44
+ '@nx/js': '23.1.2',
45
+ '@nx/react': '23.1.2',
46
+ '@nx/vite': '23.1.2',
47
+ '@nx/vitest': '23.1.2',
48
+ '@nx/workspace': '23.1.2',
49
+ 'create-nx-workspace': '23.1.2',
50
50
  '@swc-node/register': '1.12.1',
51
51
  '@swc/core': '1.16.1',
52
52
  '@modelcontextprotocol/sdk': '1.30.0',
53
- '@modelcontextprotocol/inspector': '2.3.0',
53
+ '@modelcontextprotocol/inspector': '2.4.0',
54
54
  '@ag-ui/a2ui-toolkit': '0.0.4',
55
55
  '@ag-ui/aws-strands': '0.2.3',
56
56
  '@ag-ui/client': '0.0.57',
57
57
  '@ag-ui/core': '0.0.57',
58
58
  '@ag-ui/encoder': '0.0.57',
59
59
  'agent-chat-cli': '0.3.0',
60
- '@copilotkit/react-core': '1.69.0',
60
+ '@copilotkit/react-core': '1.69.2',
61
61
  rxjs: '7.8.2',
62
62
  '@strands-agents/sdk': '1.14.0',
63
- '@tanstack/react-router': '1.170.31',
64
- '@tanstack/router-plugin': '1.168.34',
65
- '@tanstack/router-generator': '1.167.32',
63
+ '@tanstack/react-router': '1.170.32',
64
+ '@tanstack/router-plugin': '1.168.35',
65
+ '@tanstack/router-generator': '1.167.33',
66
66
  '@tanstack/virtual-file-routes': '1.162.0',
67
67
  '@tanstack/router-utils': '1.162.2',
68
68
  '@cloudscape-design/board-components': '3.0.220',
69
69
  '@cloudscape-design/chat-components': '1.0.164',
70
- '@cloudscape-design/components': '3.0.1352',
70
+ '@cloudscape-design/components': '3.0.1354',
71
71
  '@cloudscape-design/global-styles': '1.0.67',
72
- '@tanstack/react-query': '5.102.0',
73
- '@tanstack/react-query-devtools': '5.102.0',
72
+ '@tanstack/react-query': '5.102.6',
73
+ '@tanstack/react-query-devtools': '5.102.6',
74
74
  '@trpc/tanstack-react-query': '11.18.0',
75
75
  '@trpc/client': '11.18.0',
76
76
  '@trpc/server': '11.18.0',
77
- '@types/node': '26.2.0',
77
+ '@types/node': '26.4.0',
78
78
  '@types/aws-lambda': '8.10.162',
79
79
  '@types/cors': '2.8.19',
80
80
  '@types/pg': '8.23.1',
@@ -87,11 +87,11 @@
87
87
  '@vitest/coverage-v8': '4.1.11',
88
88
  '@vitest/ui': '4.1.11',
89
89
  '@astrojs/react': '6.0.4',
90
- '@astrojs/starlight': '0.41.7',
91
- astro: '7.2.4',
90
+ '@astrojs/starlight': '0.41.9',
91
+ astro: '7.2.8',
92
92
  cookie: '2.0.1',
93
93
  aws4fetch: '1.0.20',
94
- 'aws-cdk': '2.1138.0',
94
+ 'aws-cdk': '2.1139.0',
95
95
  'aws-cdk-lib': '2.266.0',
96
96
  'aws-xray-sdk-core': '3.12.0',
97
97
  constructs: '10.8.1',
@@ -106,9 +106,9 @@
106
106
  'event-source-polyfill': '1.0.31',
107
107
  '@types/event-source-polyfill': '1.0.5',
108
108
  '@biomejs/biome': '2.5.10',
109
- '@prisma/adapter-mariadb': '7.9.1',
110
- '@prisma/adapter-pg': '7.9.1',
111
- '@prisma/client': '7.9.1',
109
+ '@prisma/adapter-mariadb': '7.10.0',
110
+ '@prisma/adapter-pg': '7.10.0',
111
+ '@prisma/client': '7.10.0',
112
112
  ejs: '6.0.1',
113
113
  '@types/ejs': '3.1.5',
114
114
  express: '5.2.1',
@@ -118,18 +118,18 @@
118
118
  '@types/fs-extra': '11.0.4',
119
119
  'make-dir-cli': '4.0.0',
120
120
  mariadb: '3.5.3',
121
- mise: '2026.8.10',
121
+ mise: '2026.8.14',
122
122
  ncp: '2.0.0',
123
123
  npm: '12.0.2',
124
- 'npm-check-updates': '23.0.2',
124
+ 'npm-check-updates': '23.1.0',
125
125
  'oidc-client-ts': '3.5.0',
126
126
  pg: '8.23.0',
127
- prisma: '7.9.1',
127
+ prisma: '7.10.0',
128
128
  'react-oidc-context': '3.3.1',
129
129
  react: '19.2.8',
130
130
  'react-dom': '19.2.8',
131
131
  rimraf: '6.1.3',
132
- rolldown: '1.2.5',
132
+ rolldown: '1.2.6',
133
133
  'rolldown-plugin-dts': '0.28.2',
134
134
  'simple-git': '3.36.0',
135
135
  'source-map-support': '0.5.21',
@@ -137,7 +137,7 @@
137
137
  tailwindcss: '4.3.3',
138
138
  '@tailwindcss/vite': '4.3.3',
139
139
  tsx: '4.23.12',
140
- 'lucide-react': '1.33.0',
140
+ 'lucide-react': '1.34.0',
141
141
  'radix-ui': '1.6.7',
142
142
  shadcn: '4.19.0',
143
143
  'tw-animate-css': '1.4.0',
@@ -183,8 +183,8 @@
183
183
  * Versions for Python dependencies added by generators
184
184
  */ export const PY_VERSIONS = {
185
185
  'a2a-sdk': '==0.3.26',
186
- 'ag-ui-langgraph': '==0.0.43',
187
- 'ag-ui-protocol': '==0.1.20',
186
+ 'ag-ui-langgraph': '==0.0.44',
187
+ 'ag-ui-protocol': '==0.1.21',
188
188
  'ag-ui-strands': '==0.3.0',
189
189
  aiosqlite: '==0.22.1',
190
190
  'aws-lambda-powertools': '==3.34.0',
@@ -192,13 +192,13 @@
192
192
  'aws-lambda-powertools[parser]': '==3.34.0',
193
193
  'aws-opentelemetry-distro': '==0.19.0',
194
194
  'bedrock-agentcore': '==1.22.0',
195
- boto3: '==1.43.78',
196
- checkov: '==3.3.13',
195
+ boto3: '==1.43.82',
196
+ checkov: '==3.3.15',
197
197
  fastapi: '==0.141.1',
198
198
  'fastapi[standard]': '==0.141.1',
199
199
  httpx: '==0.28.1',
200
- langchain: '==1.3.16',
201
- 'langchain-aws': '==1.7.3',
200
+ langchain: '==1.3.18',
201
+ 'langchain-aws': '==1.7.4',
202
202
  'langchain-mcp-adapters': '==0.3.2',
203
203
  langgraph: '==1.2.11',
204
204
  'langgraph-checkpoint-aws': '==1.2.2',
@@ -207,10 +207,10 @@
207
207
  'pip-check-updates': '==0.29.0',
208
208
  'pip-licenses': '==5.5.5',
209
209
  ruff: '==0.16.4',
210
- 'strands-agents': '==1.53.0',
211
- 'strands-agents[a2a]': '==1.53.0',
210
+ 'strands-agents': '==1.54.0',
211
+ 'strands-agents[a2a]': '==1.54.0',
212
212
  'strands-agents-tools': '==0.8.6',
213
- ty: '==0.0.74',
213
+ ty: '==0.0.75',
214
214
  pynamodb: '==6.1.0',
215
215
  uvicorn: '==0.52.4',
216
216
  sqlmodel: '==0.0.39',
@@ -250,7 +250,7 @@
250
250
  'software.amazon.smithy:smithy-aws-traits': '1.73.0',
251
251
  'software.amazon.smithy:smithy-validation-model': '1.73.0',
252
252
  'software.amazon.smithy:smithy-openapi': '1.73.0',
253
- 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': '0.52.0'
253
+ 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': '0.53.0'
254
254
  };
255
255
  /** The Maven coordinates the version update resolves, in declaration order. */ export const JAVA_ARTIFACTS = Object.keys(JAVA_VERSIONS);
256
256
  /** A Maven coordinate as a dependency names it: `<group>:<artifact>:<version>`. */ export const javaMavenDependency = (artifact)=>`${artifact}:${JAVA_VERSIONS[artifact]}`;
@@ -300,17 +300,14 @@
300
300
  python: '3.14'
301
301
  };
302
302
  /**
303
- * Patch of the CPython release uv pins as the project interpreter.
303
+ * The interpreter uv pins for a generated Python project, as the Lambda runtime's
304
+ * `major.minor`.
304
305
  *
305
- * A Lambda runtime names only `major.minor`, but uv pins an exact
306
- * `major.minor.patch`, so only the patch lives here the `major.minor` comes from
307
- * {@link LAMBDA_RUNTIME_VERSIONS}. Resolved from uv by the version update
308
- * workflow.
309
- */ export const PYTHON_RUNTIME_PATCH = '7';
310
- /**
311
- * The interpreter uv pins for a generated Python project, as `major.minor.patch`.
312
- * Matches the Lambda Python runtime by construction.
313
- */ export const pyenvPythonVersion = ()=>`${LAMBDA_RUNTIME_VERSIONS.python}.${PYTHON_RUNTIME_PATCH}`;
306
+ * No patch: uv reads this as a request for any patch of that minor, so it resolves
307
+ * whichever one the platform has a build for. Naming an exact patch pins one that
308
+ * may not exist everywhere, and Lambda patches the interpreter itself, so the minor
309
+ * is the whole of what a project needs to agree on.
310
+ */ export const pyenvPythonVersion = ()=>LAMBDA_RUNTIME_VERSIONS.python;
314
311
  /**
315
312
  * The `[project].requires-python` specifier for a generated Python project.
316
313
  *
@@ -343,7 +340,7 @@
343
340
  * Exact versions for Terraform providers used by generated `.tf` modules.
344
341
  * Pinned exactly (no range operator) so generated infrastructure is reproducible.
345
342
  */ export const TERRAFORM_VERSIONS = {
346
- aws: '6.61.0',
343
+ aws: '6.62.0',
347
344
  random: '3.9.0',
348
345
  null: '3.3.1',
349
346
  archive: '2.8.0',