@aws/nx-plugin 0.104.0 → 0.105.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +406 -436
- package/package.json +12 -12
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +21 -21
- package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +438 -0
- package/src/open-api/ts-client/files/client.gen.ts.template +20 -0
- package/src/open-api/utils/codegen-data/languages.js +7 -3
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/normalise.js +17 -0
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +9 -9
- package/src/py/strands-agent/react-connection/__snapshots__/generator.spec.ts.snap +129 -4
- package/src/py/strands-agent/react-connection/serve-local.js +1 -1
- package/src/py/strands-agent/react-connection/serve-local.js.map +1 -1
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -1
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +3 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/mcp-server/generator.js +1 -0
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/CloudscapeAssistantMessage.tsx.template +71 -0
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/CloudscapeChatInput.tsx.template +65 -0
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/CloudscapeCursor.tsx.template +10 -0
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/CloudscapeUserMessage.tsx.template +42 -0
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/copilot.css.template +128 -0
- package/src/ts/react-website/agui/files/cloudscape/src/components/copilot/index.tsx.template +46 -0
- package/src/ts/react-website/agui/files/{src → common/src}/components/AguiProvider.tsx.template +10 -2
- package/src/ts/react-website/agui/files/default/src/components/copilot/index.tsx.template +5 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/ShadcnAssistantMessage.tsx.template +71 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/ShadcnChatInput.tsx.template +117 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/ShadcnCursor.tsx.template +23 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/ShadcnUserMessage.tsx.template +49 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/copilot.css.template +116 -0
- package/src/ts/react-website/agui/files/shadcn/src/components/copilot/index.tsx.template +46 -0
- package/src/ts/react-website/agui/generator.d.ts +3 -0
- package/src/ts/react-website/agui/generator.js +28 -1
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +42 -38
- package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/strands-agent/generator.js +1 -0
- package/src/ts/strands-agent/generator.js.map +1 -1
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +1 -1
- package/src/utils/files/common/shadcn/src/components/ui/avatar.tsx.template +53 -0
- package/src/utils/files/common/shadcn/src/components/ui/textarea.tsx.template +18 -0
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +4 -1
- package/src/utils/py.js +20 -18
- package/src/utils/py.js.map +1 -1
- package/src/utils/versions.d.ts +59 -58
- package/src/utils/versions.js +58 -57
- package/src/utils/versions.js.map +1 -1
- /package/src/ts/react-website/agui/files/{src → common/src}/hooks/useAgui__agentNameClassName__.tsx.template +0 -0
|
@@ -11,6 +11,8 @@ const versions_1 = require("../../../utils/versions");
|
|
|
11
11
|
const ast_1 = require("../../../utils/ast");
|
|
12
12
|
const agent_runtime_config_1 = require("../../../connection/agent-runtime-config");
|
|
13
13
|
const names_1 = require("../../../utils/names");
|
|
14
|
+
const shared_shadcn_1 = require("../../../utils/shared-shadcn");
|
|
15
|
+
const npm_scope_1 = require("../../../utils/npm-scope");
|
|
14
16
|
/**
|
|
15
17
|
* Wires a React website up to an AG-UI agent using CopilotKit and
|
|
16
18
|
* @ag-ui/client's HttpAgent. Agent-server-language agnostic.
|
|
@@ -19,13 +21,23 @@ const names_1 = require("../../../utils/names");
|
|
|
19
21
|
* `selfManagedAgents` registry) and wraps `<App />` in it. Each invocation
|
|
20
22
|
* AST-patches `AguiProvider` to register one more agent hook — running the
|
|
21
23
|
* generator multiple times is idempotent and additive.
|
|
24
|
+
*
|
|
25
|
+
* Also vends a `src/components/copilot` theme module picked from the
|
|
26
|
+
* website's `metadata.uxProvider` (cloudscape / shadcn / default).
|
|
22
27
|
*/
|
|
23
28
|
const addAgUiReactConnection = async (tree, options) => {
|
|
24
29
|
const { frontendProjectConfig, agentName, agentNameClassName, auth } = options;
|
|
30
|
+
const theme = resolveAgUiTheme(frontendProjectConfig);
|
|
31
|
+
const scopeAlias = (0, npm_scope_1.toScopeAlias)((0, npm_scope_1.getNpmScopePrefix)(tree));
|
|
25
32
|
// Generates `src/components/AguiProvider.tsx` (if absent) and
|
|
26
33
|
// `src/hooks/useAgui<AgentName>.tsx`. Existing files are kept so re-running
|
|
27
34
|
// the generator is idempotent.
|
|
28
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, { agentName, agentNameClassName, auth }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
35
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common'), frontendProjectConfig.root, { agentName, agentNameClassName, auth }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
36
|
+
// Shadcn theme imports from the shared shadcn library, so it must exist.
|
|
37
|
+
if (theme === 'shadcn') {
|
|
38
|
+
await (0, shared_shadcn_1.sharedShadcnGenerator)(tree);
|
|
39
|
+
}
|
|
40
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', theme), frontendProjectConfig.root, { scopeAlias }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
29
41
|
if (auth === 'IAM') {
|
|
30
42
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
31
43
|
}
|
|
@@ -41,6 +53,10 @@ const addAgUiReactConnection = async (tree, options) => {
|
|
|
41
53
|
(0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
|
|
42
54
|
'@copilotkit/react-core',
|
|
43
55
|
'@ag-ui/client',
|
|
56
|
+
...(theme === 'cloudscape'
|
|
57
|
+
? ['@cloudscape-design/chat-components']
|
|
58
|
+
: []),
|
|
59
|
+
...(theme === 'shadcn' ? ['lucide-react'] : []),
|
|
44
60
|
...(auth === 'IAM'
|
|
45
61
|
? [
|
|
46
62
|
'oidc-client-ts',
|
|
@@ -62,6 +78,17 @@ const addAgUiReactConnection = async (tree, options) => {
|
|
|
62
78
|
});
|
|
63
79
|
};
|
|
64
80
|
exports.addAgUiReactConnection = addAgUiReactConnection;
|
|
81
|
+
const resolveAgUiTheme = (frontendProjectConfig) => {
|
|
82
|
+
const uxProvider = frontendProjectConfig.metadata?.uxProvider;
|
|
83
|
+
switch (uxProvider) {
|
|
84
|
+
case 'Cloudscape':
|
|
85
|
+
return 'cloudscape';
|
|
86
|
+
case 'Shadcn':
|
|
87
|
+
return 'shadcn';
|
|
88
|
+
default:
|
|
89
|
+
return 'default';
|
|
90
|
+
}
|
|
91
|
+
};
|
|
65
92
|
/**
|
|
66
93
|
* Register this agent's hook in the shared `AguiProvider` using GritQL AST
|
|
67
94
|
* patches. The provider starts out with an empty `selfManagedAgents` registry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/agui/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAOoB;AACpB,2DAAqE;AACrE,sDAAuD;AACvD,4CAI4B;AAC5B,mFAAgG;AAChG,gDAAiD;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/agui/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -973,9 +973,11 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
973
973
|
"cache": true,
|
|
974
974
|
"inputs": [
|
|
975
975
|
"default",
|
|
976
|
+
"^default",
|
|
976
977
|
"{workspaceRoot}/.eslintrc.json",
|
|
977
978
|
"{workspaceRoot}/.eslintignore",
|
|
978
|
-
"{workspaceRoot}/eslint.config.mjs"
|
|
979
|
+
"{workspaceRoot}/eslint.config.mjs",
|
|
980
|
+
"{workspaceRoot}/tools/eslint-rules/**/*"
|
|
979
981
|
]
|
|
980
982
|
},
|
|
981
983
|
"@nx/vite:build": {
|
|
@@ -1055,10 +1057,10 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
1055
1057
|
"{
|
|
1056
1058
|
"name": "@proj/source",
|
|
1057
1059
|
"dependencies": {
|
|
1058
|
-
"@cloudscape-design/board-components": "3.0.
|
|
1059
|
-
"@cloudscape-design/components": "3.0.
|
|
1060
|
+
"@cloudscape-design/board-components": "3.0.174",
|
|
1061
|
+
"@cloudscape-design/components": "3.0.1284",
|
|
1060
1062
|
"@cloudscape-design/global-styles": "1.0.57",
|
|
1061
|
-
"aws-cdk-lib": "2.
|
|
1063
|
+
"aws-cdk-lib": "2.251.0",
|
|
1062
1064
|
"constructs": "10.6.0",
|
|
1063
1065
|
"react": "19.2.5",
|
|
1064
1066
|
"react-dom": "19.2.5",
|
|
@@ -1066,13 +1068,13 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
1066
1068
|
},
|
|
1067
1069
|
"devDependencies": {
|
|
1068
1070
|
"@eslint/js": "^9.8.0",
|
|
1069
|
-
"@nx/eslint": "22.
|
|
1070
|
-
"@nx/eslint-plugin": "22.
|
|
1071
|
-
"@nx/js": "22.
|
|
1072
|
-
"@nx/react": "22.
|
|
1073
|
-
"@nx/vite": "22.
|
|
1074
|
-
"@nx/vitest": "22.
|
|
1075
|
-
"@nx/web": "22.
|
|
1071
|
+
"@nx/eslint": "22.7.0",
|
|
1072
|
+
"@nx/eslint-plugin": "22.7.0",
|
|
1073
|
+
"@nx/js": "22.7.0",
|
|
1074
|
+
"@nx/react": "22.7.0",
|
|
1075
|
+
"@nx/vite": "22.7.0",
|
|
1076
|
+
"@nx/vitest": "22.7.0",
|
|
1077
|
+
"@nx/web": "22.7.0",
|
|
1076
1078
|
"@swc-node/register": "~1.11.1",
|
|
1077
1079
|
"@swc/cli": "~0.8.0",
|
|
1078
1080
|
"@swc/core": "~1.15.5",
|
|
@@ -1084,8 +1086,8 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
1084
1086
|
"@types/react": "^19.0.0",
|
|
1085
1087
|
"@types/react-dom": "^19.0.0",
|
|
1086
1088
|
"@vitejs/plugin-react": "^6.0.0",
|
|
1087
|
-
"@vitest/coverage-v8": "4.1.
|
|
1088
|
-
"@vitest/ui": "4.1.
|
|
1089
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
1090
|
+
"@vitest/ui": "4.1.5",
|
|
1089
1091
|
"eslint": "^9.8.0",
|
|
1090
1092
|
"eslint-config-prettier": "^10.0.0",
|
|
1091
1093
|
"eslint-plugin-import": "2.31.0",
|
|
@@ -1096,11 +1098,11 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
1096
1098
|
"jiti": "2.4.2",
|
|
1097
1099
|
"jsdom": "~22.1.0",
|
|
1098
1100
|
"jsonc-eslint-parser": "3.1.0",
|
|
1099
|
-
"prettier": "3.8.
|
|
1101
|
+
"prettier": "3.8.3",
|
|
1100
1102
|
"typescript": "~5.9.2",
|
|
1101
1103
|
"typescript-eslint": "^8.40.0",
|
|
1102
1104
|
"vite": "8.0.8",
|
|
1103
|
-
"vitest": "4.1.
|
|
1105
|
+
"vitest": "4.1.5"
|
|
1104
1106
|
},
|
|
1105
1107
|
"type": "module"
|
|
1106
1108
|
}
|
|
@@ -2588,9 +2590,11 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2588
2590
|
"cache": true,
|
|
2589
2591
|
"inputs": [
|
|
2590
2592
|
"default",
|
|
2593
|
+
"^default",
|
|
2591
2594
|
"{workspaceRoot}/.eslintrc.json",
|
|
2592
2595
|
"{workspaceRoot}/.eslintignore",
|
|
2593
|
-
"{workspaceRoot}/eslint.config.mjs"
|
|
2596
|
+
"{workspaceRoot}/eslint.config.mjs",
|
|
2597
|
+
"{workspaceRoot}/tools/eslint-rules/**/*"
|
|
2594
2598
|
]
|
|
2595
2599
|
},
|
|
2596
2600
|
"@nx/vite:build": {
|
|
@@ -2670,11 +2674,11 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2670
2674
|
"{
|
|
2671
2675
|
"name": "@proj/source",
|
|
2672
2676
|
"dependencies": {
|
|
2673
|
-
"@cloudscape-design/board-components": "3.0.
|
|
2674
|
-
"@cloudscape-design/components": "3.0.
|
|
2677
|
+
"@cloudscape-design/board-components": "3.0.174",
|
|
2678
|
+
"@cloudscape-design/components": "3.0.1284",
|
|
2675
2679
|
"@cloudscape-design/global-styles": "1.0.57",
|
|
2676
|
-
"@tanstack/react-router": "1.168.
|
|
2677
|
-
"aws-cdk-lib": "2.
|
|
2680
|
+
"@tanstack/react-router": "1.168.24",
|
|
2681
|
+
"aws-cdk-lib": "2.251.0",
|
|
2678
2682
|
"constructs": "10.6.0",
|
|
2679
2683
|
"react": "19.2.5",
|
|
2680
2684
|
"react-dom": "19.2.5",
|
|
@@ -2682,21 +2686,21 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2682
2686
|
},
|
|
2683
2687
|
"devDependencies": {
|
|
2684
2688
|
"@eslint/js": "^9.8.0",
|
|
2685
|
-
"@nx/eslint": "22.
|
|
2686
|
-
"@nx/eslint-plugin": "22.
|
|
2687
|
-
"@nx/js": "22.
|
|
2688
|
-
"@nx/react": "22.
|
|
2689
|
-
"@nx/vite": "22.
|
|
2690
|
-
"@nx/vitest": "22.
|
|
2691
|
-
"@nx/web": "22.
|
|
2689
|
+
"@nx/eslint": "22.7.0",
|
|
2690
|
+
"@nx/eslint-plugin": "22.7.0",
|
|
2691
|
+
"@nx/js": "22.7.0",
|
|
2692
|
+
"@nx/react": "22.7.0",
|
|
2693
|
+
"@nx/vite": "22.7.0",
|
|
2694
|
+
"@nx/vitest": "22.7.0",
|
|
2695
|
+
"@nx/web": "22.7.0",
|
|
2692
2696
|
"@swc-node/register": "~1.11.1",
|
|
2693
2697
|
"@swc/cli": "~0.8.0",
|
|
2694
2698
|
"@swc/core": "~1.15.5",
|
|
2695
2699
|
"@swc/helpers": "~0.5.18",
|
|
2696
2700
|
"@tailwindcss/vite": "4.2.2",
|
|
2697
|
-
"@tanstack/router-generator": "1.166.
|
|
2698
|
-
"@tanstack/router-plugin": "1.167.
|
|
2699
|
-
"@tanstack/router-utils": "1.161.
|
|
2701
|
+
"@tanstack/router-generator": "1.166.35",
|
|
2702
|
+
"@tanstack/router-plugin": "1.167.27",
|
|
2703
|
+
"@tanstack/router-utils": "1.161.7",
|
|
2700
2704
|
"@tanstack/virtual-file-routes": "1.161.7",
|
|
2701
2705
|
"@testing-library/dom": "10.4.0",
|
|
2702
2706
|
"@testing-library/react": "16.3.0",
|
|
@@ -2704,8 +2708,8 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2704
2708
|
"@types/react": "^19.0.0",
|
|
2705
2709
|
"@types/react-dom": "^19.0.0",
|
|
2706
2710
|
"@vitejs/plugin-react": "^6.0.0",
|
|
2707
|
-
"@vitest/coverage-v8": "4.1.
|
|
2708
|
-
"@vitest/ui": "4.1.
|
|
2711
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
2712
|
+
"@vitest/ui": "4.1.5",
|
|
2709
2713
|
"eslint": "^9.8.0",
|
|
2710
2714
|
"eslint-config-prettier": "^10.0.0",
|
|
2711
2715
|
"eslint-plugin-import": "2.31.0",
|
|
@@ -2716,11 +2720,11 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2716
2720
|
"jiti": "2.4.2",
|
|
2717
2721
|
"jsdom": "~22.1.0",
|
|
2718
2722
|
"jsonc-eslint-parser": "3.1.0",
|
|
2719
|
-
"prettier": "3.8.
|
|
2723
|
+
"prettier": "3.8.3",
|
|
2720
2724
|
"typescript": "~5.9.2",
|
|
2721
2725
|
"typescript-eslint": "^8.40.0",
|
|
2722
2726
|
"vite": "8.0.8",
|
|
2723
|
-
"vitest": "4.1.
|
|
2727
|
+
"vitest": "4.1.5"
|
|
2724
2728
|
},
|
|
2725
2729
|
"type": "module"
|
|
2726
2730
|
}
|
|
@@ -4952,11 +4956,11 @@ root &&
|
|
|
4952
4956
|
|
|
4953
4957
|
exports[`react-website generator > should handle npm scope prefix correctly > scoped-dependencies 1`] = `
|
|
4954
4958
|
{
|
|
4955
|
-
"@cloudscape-design/board-components": "3.0.
|
|
4956
|
-
"@cloudscape-design/components": "3.0.
|
|
4959
|
+
"@cloudscape-design/board-components": "3.0.174",
|
|
4960
|
+
"@cloudscape-design/components": "3.0.1284",
|
|
4957
4961
|
"@cloudscape-design/global-styles": "1.0.57",
|
|
4958
|
-
"@tanstack/react-router": "1.168.
|
|
4959
|
-
"aws-cdk-lib": "2.
|
|
4962
|
+
"@tanstack/react-router": "1.168.24",
|
|
4963
|
+
"aws-cdk-lib": "2.251.0",
|
|
4960
4964
|
"constructs": "10.6.0",
|
|
4961
4965
|
"react": "19.2.5",
|
|
4962
4966
|
"react-dom": "19.2.5",
|
|
@@ -566,7 +566,7 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
|
|
|
566
566
|
environment_variables = length(var.env) > 0 ? var.env : null
|
|
567
567
|
|
|
568
568
|
dynamic "authorizer_configuration" {
|
|
569
|
-
for_each = var.authorizer_configuration != null && var.authorizer_configuration.custom_jwt_authorizer != null ? [var.authorizer_configuration.custom_jwt_authorizer] : []
|
|
569
|
+
for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [var.authorizer_configuration.custom_jwt_authorizer] : []
|
|
570
570
|
content {
|
|
571
571
|
custom_jwt_authorizer {
|
|
572
572
|
discovery_url = authorizer_configuration.value.discovery_url
|
|
@@ -68,6 +68,7 @@ const tsStrandsAgentGenerator = async (tree, options) => {
|
|
|
68
68
|
const fs = new fs_1.FsCommands(tree);
|
|
69
69
|
project.targets[dockerTargetName] = {
|
|
70
70
|
cache: true,
|
|
71
|
+
outputs: [`{workspaceRoot}/${dockerOutputDir}/Dockerfile`],
|
|
71
72
|
executor: 'nx:run-commands',
|
|
72
73
|
options: {
|
|
73
74
|
commands: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/strands-agent/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/strands-agent/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -309,7 +309,7 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
|
|
|
309
309
|
environment_variables = length(var.env) > 0 ? var.env : null
|
|
310
310
|
|
|
311
311
|
dynamic "authorizer_configuration" {
|
|
312
|
-
for_each = var.authorizer_configuration != null && var.authorizer_configuration.custom_jwt_authorizer != null ? [var.authorizer_configuration.custom_jwt_authorizer] : []
|
|
312
|
+
for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [var.authorizer_configuration.custom_jwt_authorizer] : []
|
|
313
313
|
content {
|
|
314
314
|
custom_jwt_authorizer {
|
|
315
315
|
discovery_url = authorizer_configuration.value.discovery_url
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import { Avatar as AvatarPrimitive } from "radix-ui"
|
|
5
|
+
|
|
6
|
+
import { cn } from "<%= scopeAlias %>common-shadcn/lib/utils"
|
|
7
|
+
|
|
8
|
+
function Avatar({
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Root>) {
|
|
12
|
+
return (
|
|
13
|
+
<AvatarPrimitive.Root
|
|
14
|
+
data-slot="avatar"
|
|
15
|
+
className={cn(
|
|
16
|
+
"relative flex size-8 shrink-0 overflow-hidden rounded-full",
|
|
17
|
+
className
|
|
18
|
+
)}
|
|
19
|
+
{...props}
|
|
20
|
+
/>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function AvatarImage({
|
|
25
|
+
className,
|
|
26
|
+
...props
|
|
27
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Image>) {
|
|
28
|
+
return (
|
|
29
|
+
<AvatarPrimitive.Image
|
|
30
|
+
data-slot="avatar-image"
|
|
31
|
+
className={cn("aspect-square size-full", className)}
|
|
32
|
+
{...props}
|
|
33
|
+
/>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function AvatarFallback({
|
|
38
|
+
className,
|
|
39
|
+
...props
|
|
40
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
|
|
41
|
+
return (
|
|
42
|
+
<AvatarPrimitive.Fallback
|
|
43
|
+
data-slot="avatar-fallback"
|
|
44
|
+
className={cn(
|
|
45
|
+
"bg-muted flex size-full items-center justify-center rounded-full",
|
|
46
|
+
className
|
|
47
|
+
)}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { Avatar, AvatarImage, AvatarFallback }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
|
|
3
|
+
import { cn } from "<%= scopeAlias %>common-shadcn/lib/utils"
|
|
4
|
+
|
|
5
|
+
function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
|
|
6
|
+
return (
|
|
7
|
+
<textarea
|
|
8
|
+
data-slot="textarea"
|
|
9
|
+
className={cn(
|
|
10
|
+
"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
11
|
+
className
|
|
12
|
+
)}
|
|
13
|
+
{...props}
|
|
14
|
+
/>
|
|
15
|
+
)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { Textarea }
|
|
@@ -8,6 +8,9 @@ import {
|
|
|
8
8
|
AwsCredentialIdentityProvider,
|
|
9
9
|
} from '@smithy/types';
|
|
10
10
|
|
|
11
|
+
// Capture the native fetch before any monkey-patching can occur.
|
|
12
|
+
const nativeFetch = globalThis.fetch.bind(globalThis);
|
|
13
|
+
|
|
11
14
|
// Credential expiration grace time before considering credentials as expired
|
|
12
15
|
const CREDENTIAL_EXPIRY_OFFSET_MILLIS = 30 * 1000;
|
|
13
16
|
|
|
@@ -81,7 +84,7 @@ export const useSigV4 = (): SigV4Client => {
|
|
|
81
84
|
const sigv4Fetch: typeof globalThis.fetch = useCallback(
|
|
82
85
|
async (input: RequestInfo | URL, init?: RequestInit | undefined) => {
|
|
83
86
|
if (skipSigning) {
|
|
84
|
-
return
|
|
87
|
+
return nativeFetch(input, init);
|
|
85
88
|
}
|
|
86
89
|
const awsClient = await getAwsClient();
|
|
87
90
|
return awsClient.fetch(input, init);
|
package/src/utils/py.js
CHANGED
|
@@ -10,36 +10,38 @@ const devkit_1 = require("@nx/devkit");
|
|
|
10
10
|
const versions_1 = require("./versions");
|
|
11
11
|
const pip_requirements_js_1 = require("pip-requirements-js");
|
|
12
12
|
const toml_2 = require("./toml");
|
|
13
|
+
// Dedup key that distinguishes bare packages from the same package with
|
|
14
|
+
// extras (e.g. `foo` vs `foo[bar]`), so adding a bare dep doesn't drop a
|
|
15
|
+
// previously-added variant with extras.
|
|
16
|
+
const depKey = (dep) => {
|
|
17
|
+
const parsed = (0, pip_requirements_js_1.parsePipRequirementsLine)(dep);
|
|
18
|
+
if (parsed?.type !== 'ProjectName') {
|
|
19
|
+
return dep;
|
|
20
|
+
}
|
|
21
|
+
const extras = [...(parsed.extras ?? [])].sort().join(',');
|
|
22
|
+
return extras ? `${parsed.name}[${extras}]` : parsed.name;
|
|
23
|
+
};
|
|
24
|
+
const mergeDeps = (existing, deps) => {
|
|
25
|
+
const incomingKeys = new Set(deps.map(depKey));
|
|
26
|
+
return [
|
|
27
|
+
...(existing ?? []).filter((dep) => !incomingKeys.has(depKey(dep))),
|
|
28
|
+
...(0, versions_1.withPyVersions)(deps),
|
|
29
|
+
];
|
|
30
|
+
};
|
|
13
31
|
/**
|
|
14
32
|
* Add dependencies to a pyproject.toml file
|
|
15
33
|
*/
|
|
16
34
|
const addDependenciesToPyProjectToml = (tree, projectRoot, deps) => {
|
|
17
35
|
const projectToml = (0, toml_1.parse)(tree.read((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), 'utf8'));
|
|
18
|
-
|
|
19
|
-
projectToml.project.dependencies = [
|
|
20
|
-
// Replace any dependencies that already exist
|
|
21
|
-
...(projectToml.project?.dependencies ?? []).filter((dep) => {
|
|
22
|
-
const parsedDep = (0, pip_requirements_js_1.parsePipRequirementsLine)(dep);
|
|
23
|
-
return parsedDep.type !== 'ProjectName' || !newDeps.has(parsedDep.name);
|
|
24
|
-
}),
|
|
25
|
-
...(0, versions_1.withPyVersions)(deps),
|
|
26
|
-
];
|
|
36
|
+
projectToml.project.dependencies = mergeDeps(projectToml.project?.dependencies, deps);
|
|
27
37
|
tree.write((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), (0, toml_1.stringify)(projectToml));
|
|
28
38
|
};
|
|
29
39
|
exports.addDependenciesToPyProjectToml = addDependenciesToPyProjectToml;
|
|
30
40
|
const addDependenciesToDependencyGroupInPyProjectToml = (tree, projectRoot, group, deps) => {
|
|
31
41
|
const projectToml = (0, toml_1.parse)(tree.read((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), 'utf8'));
|
|
32
|
-
const newDeps = new Set(deps);
|
|
33
42
|
projectToml['dependency-groups'] = {
|
|
34
43
|
...projectToml['dependency-groups'],
|
|
35
|
-
[group]: [
|
|
36
|
-
// Replace any dependencies that already exist
|
|
37
|
-
...(projectToml['dependency-groups']?.[group] ?? []).filter((dep) => {
|
|
38
|
-
const parsedDep = (0, pip_requirements_js_1.parsePipRequirementsLine)(dep);
|
|
39
|
-
return parsedDep.type !== 'ProjectName' || !newDeps.has(parsedDep.name);
|
|
40
|
-
}),
|
|
41
|
-
...(0, versions_1.withPyVersions)(deps),
|
|
42
|
-
],
|
|
44
|
+
[group]: mergeDeps(projectToml['dependency-groups']?.[group], deps),
|
|
43
45
|
};
|
|
44
46
|
tree.write((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), (0, toml_1.stringify)(projectToml));
|
|
45
47
|
};
|
package/src/utils/py.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,sCAA+C;AAC/C,uCAAqD;AAErD,yCAA2D;AAC3D,6DAA+D;AAC/D,iCAAoC;AAEpC
|
|
1
|
+
{"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"names":[],"mappings":"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"}
|