@aws/nx-plugin 0.77.0 → 0.79.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 +36 -8
- package/package.json +2 -2
- package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +401 -0
- package/src/open-api/ts-client/files/client.gen.ts.template +27 -4
- package/src/open-api/utils/codegen-data/types.d.ts +4 -0
- package/src/open-api/utils/codegen-data/types.js +8 -1
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +21 -1
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +42 -30
- package/src/py/fast-api/files/app/__name__/init.py.template +23 -17
- package/src/py/fast-api/files/app/__name__/main.py.template +2 -0
- package/src/py/fast-api/files/app/tests/test_main.py +1 -0
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +16 -9
- package/src/py/strands-agent/files/app/agentcore_mcp_client.py.template +4 -12
- package/src/py/strands-agent/files/app/init.py.template +51 -1
- package/src/py/strands-agent/files/app/main.py.template +16 -9
- package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +23 -17
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +60 -34
- package/src/trpc/backend/files/src/handler.ts.template +48 -0
- package/src/trpc/backend/files/src/index.ts.template +1 -1
- package/src/trpc/backend/files/src/router.ts.template +0 -38
- package/src/trpc/backend/files/src/schema/z-async-iterable.ts.template +115 -0
- package/src/trpc/backend/generator.js +6 -2
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +274 -27
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +57 -1
- package/src/trpc/react/generator.js +11 -1
- package/src/trpc/react/generator.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +13 -1
- package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +3 -3
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +8 -3
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +81 -33
- package/src/utils/versions.d.ts +3 -1
- package/src/utils/versions.js +2 -0
- package/src/utils/versions.js.map +1 -1
|
@@ -4,54 +4,102 @@ import { fromCognitoIdentityPool } from '@aws-sdk/credential-provider-cognito-id
|
|
|
4
4
|
import { useCallback, useRef } from 'react';
|
|
5
5
|
import { useAuth } from 'react-oidc-context';
|
|
6
6
|
import { useRuntimeConfig } from './useRuntimeConfig';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
AwsCredentialIdentity,
|
|
9
|
+
AwsCredentialIdentityProvider,
|
|
10
|
+
} from '@smithy/types';
|
|
8
11
|
|
|
9
12
|
// Credential expiration grace time before considering credentials as expired
|
|
10
13
|
const CREDENTIAL_EXPIRY_OFFSET_MILLIS = 30 * 1000;
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
type AwsSignInput = Parameters<AwsClient['sign']>[0];
|
|
16
|
+
type AwsSignInit = Parameters<AwsClient['sign']>[1];
|
|
17
|
+
|
|
18
|
+
export interface SigV4Client {
|
|
19
|
+
/** A SigV4-signing fetch drop-in replacement. */
|
|
20
|
+
fetch: typeof globalThis.fetch;
|
|
21
|
+
/** Signs a request. Same parameters as AwsClient.sign(). Returns an unsigned Request when signing is skipped. */
|
|
22
|
+
sign: AwsClient['sign'];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const useSigV4 = (): SigV4Client => {
|
|
13
26
|
const { cognitoProps } = useRuntimeConfig();
|
|
14
27
|
const auth = useAuth();
|
|
15
28
|
const user = auth?.user;
|
|
16
29
|
|
|
17
|
-
const cachedCredentials = useRef<{ [key: string]: AwsCredentialIdentity }>(
|
|
30
|
+
const cachedCredentials = useRef<{ [key: string]: AwsCredentialIdentity }>(
|
|
31
|
+
{},
|
|
32
|
+
);
|
|
18
33
|
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
const skipSigning = !cognitoProps && import.meta.env.MODE === 'serve-local';
|
|
35
|
+
|
|
36
|
+
const withCachedCredentials = useCallback(
|
|
37
|
+
async (
|
|
38
|
+
provider: AwsCredentialIdentityProvider,
|
|
39
|
+
...cacheKeys: string[]
|
|
40
|
+
): Promise<AwsCredentialIdentity> => {
|
|
41
|
+
const key = `sigv4/${cacheKeys.join('/')}`;
|
|
42
|
+
const cachedCreds = cachedCredentials.current[key];
|
|
43
|
+
if (
|
|
44
|
+
cachedCreds &&
|
|
45
|
+
cachedCreds.expiration &&
|
|
46
|
+
cachedCreds.expiration.getTime() >
|
|
47
|
+
Date.now() + CREDENTIAL_EXPIRY_OFFSET_MILLIS
|
|
48
|
+
) {
|
|
49
|
+
return cachedCreds;
|
|
50
|
+
}
|
|
51
|
+
const credentials = await provider();
|
|
52
|
+
cachedCredentials.current[key] = credentials;
|
|
53
|
+
return credentials;
|
|
54
|
+
},
|
|
55
|
+
[],
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const getAwsClient = useCallback(async (): Promise<AwsClient> => {
|
|
59
|
+
if (!cognitoProps) {
|
|
60
|
+
throw new Error('cognitoProps is undefined!');
|
|
61
|
+
}
|
|
62
|
+
if (!user?.id_token) {
|
|
63
|
+
throw new Error('user.id_token is undefined!');
|
|
24
64
|
}
|
|
25
|
-
const credentials = await provider();
|
|
26
|
-
cachedCredentials.current[key] = credentials;
|
|
27
|
-
return credentials;
|
|
28
|
-
}, []);
|
|
29
65
|
|
|
30
|
-
|
|
66
|
+
const credentialsFromCognitoIdentityPool = fromCognitoIdentityPool({
|
|
67
|
+
client: new CognitoIdentityClient({ region: cognitoProps.region }),
|
|
68
|
+
identityPoolId: cognitoProps.identityPoolId,
|
|
69
|
+
logins: {
|
|
70
|
+
[`cognito-idp.${cognitoProps.region}.amazonaws.com/${cognitoProps.userPoolId}`]:
|
|
71
|
+
user.id_token,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const credential = await withCachedCredentials(
|
|
75
|
+
credentialsFromCognitoIdentityPool,
|
|
76
|
+
cognitoProps.identityPoolId,
|
|
77
|
+
user.profile.sub,
|
|
78
|
+
);
|
|
79
|
+
return new AwsClient(credential);
|
|
80
|
+
}, [cognitoProps, user?.id_token, user?.profile.sub, withCachedCredentials]);
|
|
81
|
+
|
|
82
|
+
const sigv4Fetch: typeof globalThis.fetch = useCallback(
|
|
31
83
|
async (input: RequestInfo | URL, init?: RequestInit | undefined) => {
|
|
32
|
-
if (
|
|
33
|
-
// Skip request signing in serve-local mode when cognitoProps are not set
|
|
84
|
+
if (skipSigning) {
|
|
34
85
|
return fetch(input, init);
|
|
35
86
|
}
|
|
36
|
-
|
|
37
|
-
throw new Error('cognitoProps is undefined!');
|
|
38
|
-
}
|
|
39
|
-
if (!user?.id_token) {
|
|
40
|
-
throw new Error('user.id_token is undefined!');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const credentialsFromCognitoIdentityPool = fromCognitoIdentityPool({
|
|
44
|
-
client: new CognitoIdentityClient({ region: cognitoProps.region }),
|
|
45
|
-
identityPoolId: cognitoProps.identityPoolId,
|
|
46
|
-
logins: {
|
|
47
|
-
[`cognito-idp.${cognitoProps.region}.amazonaws.com/${cognitoProps.userPoolId}`]:
|
|
48
|
-
user.id_token,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
const credential = await withCachedCredentials(credentialsFromCognitoIdentityPool, cognitoProps.identityPoolId, user.profile.sub);
|
|
52
|
-
const awsClient = new AwsClient(credential);
|
|
87
|
+
const awsClient = await getAwsClient();
|
|
53
88
|
return awsClient.fetch(input, init);
|
|
54
89
|
},
|
|
55
|
-
[
|
|
90
|
+
[skipSigning, getAwsClient],
|
|
56
91
|
);
|
|
92
|
+
|
|
93
|
+
const sign = useCallback(
|
|
94
|
+
async (input: AwsSignInput, init?: AwsSignInit): Promise<Request> => {
|
|
95
|
+
if (skipSigning) {
|
|
96
|
+
return new Request(input.toString(), init ?? undefined);
|
|
97
|
+
}
|
|
98
|
+
const awsClient = await getAwsClient();
|
|
99
|
+
return awsClient.sign(input, init);
|
|
100
|
+
},
|
|
101
|
+
[skipSigning, getAwsClient],
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
return { fetch: sigv4Fetch, sign };
|
|
57
105
|
};
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -56,6 +56,8 @@ export declare const TS_VERSIONS: {
|
|
|
56
56
|
readonly clsx: "2.1.1";
|
|
57
57
|
readonly electrodb: "3.5.3";
|
|
58
58
|
readonly esbuild: "0.27.3";
|
|
59
|
+
readonly 'event-source-polyfill': "1.0.31";
|
|
60
|
+
readonly '@types/event-source-polyfill': "1.0.5";
|
|
59
61
|
readonly 'eslint-plugin-prettier': "5.5.5";
|
|
60
62
|
readonly express: "5.2.1";
|
|
61
63
|
readonly 'jsonc-eslint-parser': "2.4.2";
|
|
@@ -87,7 +89,7 @@ export type ITsDepVersion = keyof typeof TS_VERSIONS;
|
|
|
87
89
|
* Add versions to the given dependencies
|
|
88
90
|
*/
|
|
89
91
|
export declare const withVersions: (deps: ITsDepVersion[]) => {
|
|
90
|
-
[k: string]: "3.992.0" | "3.972.3" | "1.0.0-alpha.10" | "2.31.0" | "6.4.5" | "22.1.0" | "9.0.1" | "22.5.1" | "1.27.0" | "0.19.0" | "0.2.2" | "1.160.2" | "1.160.1" | "1.154.7" | "1.158.0" | "3.0.149" | "3.0.1204" | "1.0.50" | "5.90.21" | "5.91.3" | "11.10.0" | "22.19.11" | "8.10.160" | "2.8.19" | "8.18.1" | "5.0.6" | "4.12.0" | "1.0.20" | "2.1106.0" | "2.238.0" | "2.238.0-alpha.0" | "3.12.0" | "10.5.0" | "2.8.6" | "0.7.1" | "2.1.1" | "3.5.3" | "0.27.3" | "5.5.5" | "5.2.1" | "2.4.2" | "4.0.0" | "2.0.0" | "19.3.2" | "3.4.1" | "3.8.1" | "3.3.0" | "19.2.4" | "6.1.3" | "1.0.0-rc.1" | "0.5.21" | "4.1.18" | "4.21.0" | "0.574.0" | "1.4.3" | "3.8.5" | "1.4.0" | "5.1.4" | "4.3.6" | "8.19.0";
|
|
92
|
+
[k: string]: "3.992.0" | "3.972.3" | "1.0.0-alpha.10" | "2.31.0" | "6.4.5" | "22.1.0" | "9.0.1" | "22.5.1" | "1.27.0" | "0.19.0" | "0.2.2" | "1.160.2" | "1.160.1" | "1.154.7" | "1.158.0" | "3.0.149" | "3.0.1204" | "1.0.50" | "5.90.21" | "5.91.3" | "11.10.0" | "22.19.11" | "8.10.160" | "2.8.19" | "8.18.1" | "5.0.6" | "4.12.0" | "1.0.20" | "2.1106.0" | "2.238.0" | "2.238.0-alpha.0" | "3.12.0" | "10.5.0" | "2.8.6" | "0.7.1" | "2.1.1" | "3.5.3" | "0.27.3" | "1.0.31" | "1.0.5" | "5.5.5" | "5.2.1" | "2.4.2" | "4.0.0" | "2.0.0" | "19.3.2" | "3.4.1" | "3.8.1" | "3.3.0" | "19.2.4" | "6.1.3" | "1.0.0-rc.1" | "0.5.21" | "4.1.18" | "4.21.0" | "0.574.0" | "1.4.3" | "3.8.5" | "1.4.0" | "5.1.4" | "4.3.6" | "8.19.0";
|
|
91
93
|
};
|
|
92
94
|
/**
|
|
93
95
|
* Versions for Python dependencies added by generators
|
package/src/utils/versions.js
CHANGED
|
@@ -59,6 +59,8 @@ exports.TS_VERSIONS = {
|
|
|
59
59
|
clsx: '2.1.1',
|
|
60
60
|
electrodb: '3.5.3',
|
|
61
61
|
esbuild: '0.27.3',
|
|
62
|
+
'event-source-polyfill': '1.0.31',
|
|
63
|
+
'@types/event-source-polyfill': '1.0.5',
|
|
62
64
|
'eslint-plugin-prettier': '5.5.5',
|
|
63
65
|
express: '5.2.1',
|
|
64
66
|
'jsonc-eslint-parser': '2.4.2',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":"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"}
|