@aws/nx-plugin 0.88.1 → 0.89.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 +688 -54
- package/bin/aws-nx-mcp.js +3 -4
- package/bin/aws-nx-mcp.js.map +1 -1
- package/package.json +2 -2
- package/src/connection/generator.js +20 -26
- package/src/connection/generator.js.map +1 -1
- package/src/connection/serve-local.js +7 -9
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/generator.js +152 -143
- package/src/infra/app/generator.js.map +1 -1
- package/src/license/config.js +90 -79
- package/src/license/config.js.map +1 -1
- package/src/license/generator.js +20 -15
- package/src/license/generator.js.map +1 -1
- package/src/license/sync/generator.js +71 -77
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +13 -6
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +28 -34
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/index.js +3 -4
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +8 -11
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +3 -4
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/open-api/ts-client/generator.js +8 -8
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.js +4 -4
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-metadata/generator.js +4 -4
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/utils/codegen-data/languages.js +1 -2
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +90 -92
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +34 -34
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +3 -3
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +1 -1
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -1
- package/src/preset/generator.js +51 -24
- package/src/preset/generator.js.map +1 -1
- package/src/py/fast-api/generator.js +18 -13
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.js +8 -10
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +15 -7
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/lambda-function/generator.js +18 -16
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/mcp-server/generator.js +36 -24
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.js +36 -24
- package/src/py/project/generator.js.map +1 -1
- package/src/py/strands-agent/generator.js +21 -16
- package/src/py/strands-agent/generator.js.map +1 -1
- package/src/py/strands-agent/mcp-connection/generator.js +30 -32
- package/src/py/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/smithy/project/generator.js +6 -8
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.js +14 -17
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/generator.js +17 -11
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.js +191 -189
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/generator.js +95 -83
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +12 -9
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +1 -1
- package/src/trpc/react/files/src/hooks/use__apiNameClassName__.tsx.template +3 -3
- package/src/trpc/react/generator.js +75 -76
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/lambda-function/generator.js +15 -12
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/eslint.js +19 -8
- package/src/ts/lib/eslint.js.map +1 -1
- package/src/ts/lib/generator.js +44 -19
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.js +53 -30
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.js +13 -3
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.js +22 -17
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/generator.js +40 -22
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.js +14 -11
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.js +11 -10
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +4 -6
- package/src/ts/react-website/app/generator.js +291 -253
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/generator.js +86 -90
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/utils.js +14 -21
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.js +35 -34
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/strands-agent/generator.js +18 -13
- package/src/ts/strands-agent/generator.js.map +1 -1
- package/src/ts/strands-agent/mcp-connection/generator.js +15 -17
- package/src/ts/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/sync/generator.js +36 -14
- package/src/ts/sync/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.js +62 -68
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +14 -16
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.js +8 -10
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/open-api-metadata.js +1 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +3 -4
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.js +20 -23
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.js +14 -14
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/config/utils.js +9 -9
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.js +28 -23
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/format.js +50 -47
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.js +1 -0
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/function-constructs.js +16 -12
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/git.js +2 -3
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac.js +4 -6
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/identity-constructs.js +6 -7
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.js +7 -8
- package/src/utils/js.js.map +1 -1
- package/src/utils/metrics.js +12 -13
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +3 -6
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.js +8 -3
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +1 -1
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.js +42 -19
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +124 -5
- package/src/utils/nxlv-python.js +5 -14
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/pkg-manager.js +1 -1
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/port.js +4 -6
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.js +12 -12
- package/src/utils/py.js.map +1 -1
- package/src/utils/shared-constructs.js +67 -72
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-infra-config.js +24 -26
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-scripts.js +24 -26
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +64 -53
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/versions.d.ts +5 -1
- package/src/utils/versions.js +8 -4
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/website-constructs.js +9 -11
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAWoB;AAEpB,yDAKiC;AACjC,mDAAoD;AACpD,qDAAoD;AACpD,6CAAgD;AAChD,+CAAoD;AACpD,yCAAkD;AAClD,uCAIwB;AACxB,iDAAsE;AACtE,2CAA8C;AAGjC,QAAA,yBAAyB,GACpC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAiB/B;;GAEG;AACI,MAAM,mBAAmB,GAAG,CACjC,IAAU,EACV,MAKC,EACiB,EAAE;IACpB,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,MAAM,CAAC,UAAU,IAAI,GAAG,KAAK,IAAI,cAAc,EAAE,CAClD,CAAC;IACF,MAAM,kBAAkB,GAAG,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC;IACxD,yDAAyD;IACzD,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAC3B,MAAM,CAAC,SAAS,IAAI,GAAG,EACvB,MAAM,CAAC,YAAY,IAAI,cAAc,CACtC,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;AAC3D,CAAC,CAAC;AArBW,QAAA,mBAAmB,uBAqB9B;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,IAAU,EACV,MAAgC,EACJ,EAAE;IAC9B,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAmB,EAC3E,IAAI,EACJ,MAAM,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,uBAAY,EAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IACpD,IAAA,qCAA4B,EAAC,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAErD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACvD,IAAA,sBAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAC7B,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IACE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,OAAO,CAAC,KAAK,QAAQ;QACnB,CAAC,CAAC,CAAC,KAAK,cAAc;QACtB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAChC,EACD,CAAC;QACD,MAAM,CAAC,OAAO,GAAG;YACf,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACzB;gBACE,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE;oBACP,cAAc,EAAE,IAAI;iBACrB;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAA,0CAA4B,EAAC,IAAI,EAAE;YACvC,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,mBAAmB,EAAE,KAAK;YAC1B,kBAAkB,EAAE,QAAQ;YAC5B,yBAAyB,EAAE,QAAQ;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,gCAAkB,EAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,IAAI;QACzB,4BAA4B,EAAE,IAAI;QAClC,MAAM,EAAE,MAAM;QACd,4BAA4B,EAAE,MAAM;QACpC,kBAAkB,EAAE,QAAQ;QAC5B,yBAAyB,EAAE,QAAQ;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,wBAAwB,EAAE,aAAa;QACvC,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,IAAI;QAClB,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,IAAI;QAC3B,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,qEAAqE;IACrE;QACE,IAAA,0BAAiB,EAAC,GAAG,EAAE,oBAAoB,EAAE,UAAU,CAAC;QACxD,IAAA,0BAAiB,EAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC;KACjD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,0EAA0E;IAC1E,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,EAC/C,8BAA8B,CAC/B,CAAC;IAEF,MAAM,UAAU,GAAG,oCAAoC,CAAC;IACxD,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,kBAAkB,CACnB,CAAC;IACF,oBAAoB,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAC/C,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC;IACvD,oBAAoB,CAAC,OAAO,CAAC,OAAO,GAAG;QACrC,GAAG,WAAW;QACd,OAAO,EAAE,CAAC,eAAe,CAAC;QAC1B,OAAO,EAAE;YACP,GAAG,WAAW,CAAC,OAAO;YACtB,UAAU,EAAE,eAAe;SAC5B;KACF,CAAC;IACF,oBAAoB,CAAC,OAAO,CAAC,KAAK,GAAG;QACnC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,EAAE;YACP,UAAU;SACX;KACF,CAAC;IAEF,mEAAmE;IACnE,IAAA,iBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,GAAG,EAAE,gBAAgB,CAAC,EACxC,CAAC,aAA8B,EAAE,EAAE;QACjC,IAAK,aAAa,CAAC,IAAY,EAAE,IAAI,EAAE,CAAC;YACrC,aAAa,CAAC,IAAY,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;QACxD,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CACF,CAAC;IAEF,kFAAkF;IAClF,yCAAyC;IACzC,oBAAoB,CAAC,OAAO,CAAC,IAAI,GAAG;QAClC,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI;QACpC,KAAK,EAAE,IAAI;QACX,SAAS,EAAE;YACT,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CACtB;YACD,QAAQ;SACT;QACD,cAAc,EAAE;YACd,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc;YACpD,GAAG,EAAE;gBACH,GAAG,EAAE,IAAI;aACV;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE,IAAI;aACf;SACF;KACF,CAAC;IAEF,oBAAoB,CAAC,OAAO,GAAG,IAAA,uBAAc,EAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAA,mCAA0B,EAAC,IAAI,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAE3E,IAAA,yBAAoB,EAAC,IAAI,EAAE,kBAAkB,EAAE,iCAAyB,CAAC,CAAC;IAE1E,yBAAyB;IACzB,IAAA,qBAAe,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpE,kCAAkC;IAClC,IAAA,qBAAe,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvC,GAAG,QAAQ;QACX,gBAAgB;QAChB,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,iCAAyB,CAAC,CAAC,CAAC;IAEzE,OAAO,KAAK,IAAI,EAAE;QAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC,CAAC;AAjKW,QAAA,kBAAkB,sBAiK7B;AACF,kBAAe,0BAAkB,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pyStrandsAgentGenerator = exports.PY_STRANDS_AGENT_GENERATOR_INFO = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -21,8 +20,7 @@ const iac_1 = require("../../utils/iac");
|
|
|
21
20
|
const port_1 = require("../../utils/port");
|
|
22
21
|
const paths_1 = require("../../utils/paths");
|
|
23
22
|
exports.PY_STRANDS_AGENT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
24
|
-
const pyStrandsAgentGenerator = (tree, options) =>
|
|
25
|
-
var _a;
|
|
23
|
+
const pyStrandsAgentGenerator = async (tree, options) => {
|
|
26
24
|
const project = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.project);
|
|
27
25
|
const pyProjectPath = (0, devkit_1.joinPathFragments)(project.root, 'pyproject.toml');
|
|
28
26
|
// Check if the project has a pyproject.toml file
|
|
@@ -40,7 +38,7 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
|
|
|
40
38
|
const agentNameSnakeCase = (0, names_1.toSnakeCase)(options.name || 'agent');
|
|
41
39
|
const agentNameClassName = (0, names_1.toClassName)(name);
|
|
42
40
|
const targetSourceDir = (0, devkit_1.joinPathFragments)(project.sourceRoot, agentNameSnakeCase);
|
|
43
|
-
const computeType =
|
|
41
|
+
const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
|
|
44
42
|
// Generate example agent
|
|
45
43
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'app'), targetSourceDir, {
|
|
46
44
|
name,
|
|
@@ -90,10 +88,10 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
|
|
|
90
88
|
(0, nx_1.addDependencyToTargetIfNotPresent)(project, 'docker', dockerTargetName);
|
|
91
89
|
(0, nx_1.addDependencyToTargetIfNotPresent)(project, 'build', 'docker');
|
|
92
90
|
// Add shared constructs
|
|
93
|
-
const iacProvider =
|
|
94
|
-
|
|
91
|
+
const iacProvider = await (0, iac_1.resolveIacProvider)(tree, options.iacProvider);
|
|
92
|
+
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, { iacProvider });
|
|
95
93
|
// Add the construct to deploy the agent
|
|
96
|
-
|
|
94
|
+
await (0, agent_core_constructs_1.addAgentInfra)(tree, {
|
|
97
95
|
agentNameKebabCase: name,
|
|
98
96
|
agentNameClassName,
|
|
99
97
|
dockerImageTag,
|
|
@@ -105,7 +103,11 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
|
|
|
105
103
|
// for those working on remote dev envirionments. The deployed agent in agentcore still runs on
|
|
106
104
|
// 8080 as per the agentcore contract.
|
|
107
105
|
const localDevPort = (0, port_1.assignPort)(tree, project, 8081);
|
|
108
|
-
(0, devkit_1.updateProjectConfiguration)(tree, project.name,
|
|
106
|
+
(0, devkit_1.updateProjectConfiguration)(tree, project.name, {
|
|
107
|
+
...project,
|
|
108
|
+
targets: {
|
|
109
|
+
...project.targets,
|
|
110
|
+
[`${agentTargetPrefix}-serve`]: {
|
|
109
111
|
executor: 'nx:run-commands',
|
|
110
112
|
options: {
|
|
111
113
|
commands: [
|
|
@@ -114,7 +116,8 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
|
|
|
114
116
|
cwd: '{projectRoot}',
|
|
115
117
|
},
|
|
116
118
|
continuous: true,
|
|
117
|
-
},
|
|
119
|
+
},
|
|
120
|
+
[`${agentTargetPrefix}-serve-local`]: {
|
|
118
121
|
executor: 'nx:run-commands',
|
|
119
122
|
options: {
|
|
120
123
|
commands: [
|
|
@@ -126,20 +129,22 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
|
|
|
126
129
|
},
|
|
127
130
|
},
|
|
128
131
|
continuous: true,
|
|
129
|
-
}
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
});
|
|
130
135
|
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.PY_STRANDS_AGENT_GENERATOR_INFO, (0, paths_1.toProjectRelativePath)(project, targetSourceDir), agentTargetPrefix, {
|
|
131
136
|
port: localDevPort,
|
|
132
137
|
rc: agentNameClassName,
|
|
133
138
|
});
|
|
134
|
-
|
|
139
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
135
140
|
exports.PY_STRANDS_AGENT_GENERATOR_INFO,
|
|
136
141
|
]);
|
|
137
|
-
|
|
138
|
-
return () =>
|
|
142
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
143
|
+
return async () => {
|
|
139
144
|
(0, devkit_1.installPackagesTask)(tree);
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
}
|
|
145
|
+
await new nxlv_python_1.UVProvider(tree.root, new nxlv_python_1.Logger(), tree).install();
|
|
146
|
+
};
|
|
147
|
+
};
|
|
143
148
|
exports.pyStrandsAgentGenerator = pyStrandsAgentGenerator;
|
|
144
149
|
exports.default = exports.pyStrandsAgentGenerator;
|
|
145
150
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pyStrandsAgentMcpConnectionGenerator = exports.PY_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -17,8 +16,7 @@ const ast_1 = require("../../../utils/ast");
|
|
|
17
16
|
/** Prefix a GritQL pattern with `language python` */
|
|
18
17
|
const py = (pattern) => `language python\n${pattern}`;
|
|
19
18
|
exports.PY_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
20
|
-
const pyStrandsAgentMcpConnectionGenerator = (tree, options) =>
|
|
21
|
-
var _a, _b, _c, _d, _e, _f;
|
|
19
|
+
const pyStrandsAgentMcpConnectionGenerator = async (tree, options) => {
|
|
22
20
|
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
23
21
|
const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
|
|
24
22
|
const agentComponent = options.sourceComponent;
|
|
@@ -26,12 +24,12 @@ const pyStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
26
24
|
if (!agentComponent || !mcpComponent) {
|
|
27
25
|
throw new Error('Both sourceComponent and targetComponent must be provided for py#strands-agent -> mcp connections');
|
|
28
26
|
}
|
|
29
|
-
const mcpComponentName =
|
|
27
|
+
const mcpComponentName = mcpComponent.name ?? 'mcp-server';
|
|
30
28
|
const mcpServerClassName = mcpComponent.rc;
|
|
31
29
|
const mcpServerSnakeCase = (0, names_1.snakeCase)(mcpServerClassName);
|
|
32
|
-
const mcpServerPort =
|
|
30
|
+
const mcpServerPort = mcpComponent.port ?? 8000;
|
|
33
31
|
// 1. Ensure the shared Python agent-connection project exists
|
|
34
|
-
|
|
32
|
+
await (0, agent_connection_1.ensurePythonAgentConnectionProject)(tree);
|
|
35
33
|
const agentConnectionProjectDir = (0, agent_connection_1.getPythonAgentConnectionProjectDir)(tree);
|
|
36
34
|
const agentConnectionModuleName = (0, agent_connection_1.getPythonAgentConnectionModuleName)(tree);
|
|
37
35
|
const agentConnectionPackageName = (0, agent_connection_1.getPythonAgentConnectionPackageName)(tree);
|
|
@@ -50,31 +48,31 @@ const pyStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
50
48
|
}
|
|
51
49
|
// Add re-export to module __init__.py
|
|
52
50
|
const moduleInitPath = (0, devkit_1.joinPathFragments)(agentConnectionProjectDir, agentConnectionModuleName, '__init__.py');
|
|
53
|
-
|
|
51
|
+
await (0, agent_connection_1.addPythonReExport)(tree, moduleInitPath, `.app.${mcpServerSnakeCase}_client`, `${mcpServerClassName}Client`);
|
|
54
52
|
// Add aws-lambda-powertools dependency to the agent-connection project
|
|
55
53
|
(0, py_1.addDependenciesToPyProjectToml)(tree, agentConnectionProjectDir, [
|
|
56
54
|
'aws-lambda-powertools',
|
|
57
55
|
]);
|
|
58
56
|
// 3. Transform agent.py to add MCP client import and usage
|
|
59
|
-
const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root,
|
|
57
|
+
const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root, agentComponent.path ?? 'src');
|
|
60
58
|
const agentFilePath = (0, devkit_1.joinPathFragments)(agentSourceDir, 'agent.py');
|
|
61
59
|
if (tree.exists(agentFilePath)) {
|
|
62
60
|
const clientClassName = `${mcpServerClassName}Client`;
|
|
63
61
|
const clientVarName = mcpServerSnakeCase;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
await addImportToAgentFile(tree, agentFilePath, agentConnectionModuleName, clientClassName);
|
|
63
|
+
await addMcpToolsToAgent(tree, agentFilePath, clientVarName);
|
|
64
|
+
await addMcpClientToGetAgent(tree, agentFilePath, clientClassName, clientVarName);
|
|
67
65
|
}
|
|
68
66
|
// 4. Add workspace dependency from agent project to agent-connection project
|
|
69
67
|
(0, py_1.addWorkspaceDependencyToPyProject)(tree, sourceProject.root, agentConnectionPackageName);
|
|
70
68
|
// 5. Set up serve-local target dependencies
|
|
71
|
-
const agentName =
|
|
69
|
+
const agentName = agentComponent.name ?? 'agent';
|
|
72
70
|
const serveLocalTargetName = `${agentName}-serve-local`;
|
|
73
71
|
const mcpServeLocalTargetName = `${mcpComponentName}-serve-local`;
|
|
74
|
-
if (
|
|
72
|
+
if (sourceProject.targets?.[serveLocalTargetName]) {
|
|
75
73
|
const target = sourceProject.targets[serveLocalTargetName];
|
|
76
74
|
target.dependsOn = [
|
|
77
|
-
...(
|
|
75
|
+
...(target.dependsOn ?? []),
|
|
78
76
|
{
|
|
79
77
|
projects: [targetProject.name],
|
|
80
78
|
target: mcpServeLocalTargetName,
|
|
@@ -82,14 +80,14 @@ const pyStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
82
80
|
];
|
|
83
81
|
(0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
|
|
84
82
|
}
|
|
85
|
-
|
|
83
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
86
84
|
exports.PY_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO,
|
|
87
85
|
]);
|
|
88
|
-
|
|
86
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
89
87
|
return () => {
|
|
90
88
|
(0, devkit_1.installPackagesTask)(tree);
|
|
91
89
|
};
|
|
92
|
-
}
|
|
90
|
+
};
|
|
93
91
|
exports.pyStrandsAgentMcpConnectionGenerator = pyStrandsAgentMcpConnectionGenerator;
|
|
94
92
|
/**
|
|
95
93
|
* Add an import for the MCP client class to agent.py using GritQL.
|
|
@@ -98,28 +96,28 @@ exports.pyStrandsAgentMcpConnectionGenerator = pyStrandsAgentMcpConnectionGenera
|
|
|
98
96
|
* using +=. Otherwise adds a new import statement after contextlib.
|
|
99
97
|
* Ruff will sort imports correctly when formatFilesInSubtree runs.
|
|
100
98
|
*/
|
|
101
|
-
const addImportToAgentFile = (tree, filePath, agentConnectionModuleName, clientClassName) =>
|
|
102
|
-
if (
|
|
99
|
+
const addImportToAgentFile = async (tree, filePath, agentConnectionModuleName, clientClassName) => {
|
|
100
|
+
if (await (0, ast_1.hasGritQLMatch)(tree, filePath, `\`${clientClassName}\``)) {
|
|
103
101
|
return;
|
|
104
102
|
}
|
|
105
103
|
// Try to append to existing import from the same module using +=
|
|
106
|
-
const appended =
|
|
104
|
+
const appended = await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`from ${agentConnectionModuleName} import $names\` where { $names += \`, ${clientClassName}\` }`));
|
|
107
105
|
if (!appended) {
|
|
108
106
|
// No existing import — add a new one after the first import.
|
|
109
107
|
// Ruff will sort it into the correct position.
|
|
110
|
-
|
|
108
|
+
await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`from contextlib import contextmanager\` as $imp => \`$imp\nfrom ${agentConnectionModuleName} import ${clientClassName}\``));
|
|
111
109
|
}
|
|
112
|
-
}
|
|
110
|
+
};
|
|
113
111
|
/**
|
|
114
112
|
* Add MCP tools to the Agent's tools array using GritQL.
|
|
115
113
|
* Appends `*<clientVarName>.list_tools_sync()` to the tools list.
|
|
116
114
|
* Handles both empty and non-empty arrays using if/else.
|
|
117
115
|
*/
|
|
118
|
-
const addMcpToolsToAgent = (tree, filePath, clientVarName) =>
|
|
119
|
-
if (
|
|
116
|
+
const addMcpToolsToAgent = async (tree, filePath, clientVarName) => {
|
|
117
|
+
if (await (0, ast_1.hasGritQLMatch)(tree, filePath, `\`${clientVarName}.list_tools_sync()\``)) {
|
|
120
118
|
return;
|
|
121
119
|
}
|
|
122
|
-
|
|
120
|
+
await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`tools=$old\` where {
|
|
123
121
|
$old <: not contains \`${clientVarName}\`,
|
|
124
122
|
if ($old <: \`[]\`) {
|
|
125
123
|
$old => \`[*${clientVarName}.list_tools_sync()]\`
|
|
@@ -127,7 +125,7 @@ const addMcpToolsToAgent = (tree, filePath, clientVarName) => tslib_1.__awaiter(
|
|
|
127
125
|
$old <: \`[$items]\` where { $items += \`, *${clientVarName}.list_tools_sync()\` }
|
|
128
126
|
}
|
|
129
127
|
}`));
|
|
130
|
-
}
|
|
128
|
+
};
|
|
131
129
|
/**
|
|
132
130
|
* Add MCP client creation and with-block wrapping to the get_agent function
|
|
133
131
|
* using GritQL transforms.
|
|
@@ -135,19 +133,19 @@ const addMcpToolsToAgent = (tree, filePath, clientVarName) => tslib_1.__awaiter(
|
|
|
135
133
|
* First connection: Rewrites `def get_agent` to wrap $body in a with block.
|
|
136
134
|
* Subsequent connections: Uses += to add to existing with items and creation lines.
|
|
137
135
|
*/
|
|
138
|
-
const addMcpClientToGetAgent = (tree, filePath, clientClassName, clientVarName) =>
|
|
139
|
-
if (
|
|
136
|
+
const addMcpClientToGetAgent = async (tree, filePath, clientClassName, clientVarName) => {
|
|
137
|
+
if (await (0, ast_1.hasGritQLMatch)(tree, filePath, `\`${clientClassName}.create($_)\``)) {
|
|
140
138
|
return;
|
|
141
139
|
}
|
|
142
140
|
// Try the "add to existing with block" pattern first.
|
|
143
141
|
// If it succeeds, there was already a with block from a previous connection.
|
|
144
|
-
const addedToWith =
|
|
142
|
+
const addedToWith = await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`with ($items,): $body\` where {
|
|
145
143
|
$items <: not contains \`${clientVarName}\`,
|
|
146
144
|
$items += \`, ${clientVarName}\`
|
|
147
145
|
}`));
|
|
148
146
|
if (addedToWith) {
|
|
149
147
|
// Subsequent connection — also add creation line after the existing one
|
|
150
|
-
|
|
148
|
+
await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`$var = $cls.create(session_id=session_id)\` as $stmt where {
|
|
151
149
|
$program <: not contains \`${clientClassName}.create\`,
|
|
152
150
|
$stmt += \`\n${clientVarName} = ${clientClassName}.create(session_id=session_id)\`
|
|
153
151
|
}`));
|
|
@@ -156,7 +154,7 @@ const addMcpClientToGetAgent = (tree, filePath, clientClassName, clientVarName)
|
|
|
156
154
|
// First connection — rewrite the function body to include client creation
|
|
157
155
|
// and wrap $body in a with block. GritQL handles indentation correctly
|
|
158
156
|
// when the replacement is structured as a proper Python function body.
|
|
159
|
-
|
|
157
|
+
await (0, ast_1.applyGritQLTransform)(tree, filePath, py(`\`def get_agent($params):
|
|
160
158
|
$body\` where {
|
|
161
159
|
$body <: contains \`yield Agent($_)\`,
|
|
162
160
|
$body <: not contains \`with ($_, ): $_\`
|
|
@@ -166,6 +164,6 @@ const addMcpClientToGetAgent = (tree, filePath, clientClassName, clientVarName)
|
|
|
166
164
|
${clientVarName},
|
|
167
165
|
):
|
|
168
166
|
$body\``));
|
|
169
|
-
}
|
|
167
|
+
};
|
|
170
168
|
exports.default = exports.pyStrandsAgentMcpConnectionGenerator;
|
|
171
169
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.smithyProjectGenerator = exports.SMITHY_PROJECT_GENERATOR_INFO = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -15,8 +14,7 @@ const names_1 = require("../../utils/names");
|
|
|
15
14
|
const npm_scope_1 = require("../../utils/npm-scope");
|
|
16
15
|
const fs_1 = require("../../utils/fs");
|
|
17
16
|
exports.SMITHY_PROJECT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
18
|
-
const smithyProjectGenerator = (tree, options) =>
|
|
19
|
-
var _a, _b;
|
|
17
|
+
const smithyProjectGenerator = async (tree, options) => {
|
|
20
18
|
const cmd = new fs_1.FsCommands(tree);
|
|
21
19
|
// Create project.json
|
|
22
20
|
const { fullyQualifiedName, dir } = (0, generator_1.getTsLibDetails)(tree, options);
|
|
@@ -45,11 +43,11 @@ const smithyProjectGenerator = (tree, options) => tslib_1.__awaiter(void 0, void
|
|
|
45
43
|
},
|
|
46
44
|
},
|
|
47
45
|
});
|
|
48
|
-
const serviceName =
|
|
46
|
+
const serviceName = options.serviceName ?? options.name;
|
|
49
47
|
const serviceNameClassName = (0, names_1.toClassName)(serviceName);
|
|
50
48
|
const serviceNameKebabCase = (0, names_1.toKebabCase)(serviceName);
|
|
51
49
|
const scope = (0, npm_scope_1.getNpmScope)(tree);
|
|
52
|
-
const namespace =
|
|
50
|
+
const namespace = options.namespace ?? (0, names_1.toKebabCase)(scope).replace(/-/g, '.');
|
|
53
51
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), dir, {
|
|
54
52
|
namespace,
|
|
55
53
|
serviceNameClassName,
|
|
@@ -59,12 +57,12 @@ const smithyProjectGenerator = (tree, options) => tslib_1.__awaiter(void 0, void
|
|
|
59
57
|
(0, nx_1.addGeneratorMetadata)(tree, fullyQualifiedName, exports.SMITHY_PROJECT_GENERATOR_INFO, {
|
|
60
58
|
apiName: options.name,
|
|
61
59
|
});
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.SMITHY_PROJECT_GENERATOR_INFO]);
|
|
61
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
64
62
|
return () => {
|
|
65
63
|
(0, devkit_1.installPackagesTask)(tree);
|
|
66
64
|
};
|
|
67
|
-
}
|
|
65
|
+
};
|
|
68
66
|
exports.smithyProjectGenerator = smithyProjectGenerator;
|
|
69
67
|
exports.default = exports.smithyProjectGenerator;
|
|
70
68
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/smithy/project/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/smithy/project/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAOoB;AAEpB,uCAIwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,sDAAyD;AACzD,6CAA6D;AAC7D,qDAAoD;AACpD,uCAA4C;AAE/B,QAAA,6BAA6B,GACxC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,sBAAsB,GAAG,KAAK,EACzC,IAAU,EACV,OAAqC,EACT,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,eAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,sBAAsB;IACtB,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,IAAA,2BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,IAAA,gCAAuB,EAAC,IAAI,EAAE,kBAAkB,EAAE;QAChD,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,GAAG;QACT,UAAU,EAAE,IAAA,0BAAiB,EAAC,GAAG,EAAE,KAAK,CAAC;QACzC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,CAAC,0CAA0C,CAAC;gBACrD,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC;wBAClC,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC;wBACrC,gIAAgI;qBACjI;oBACD,QAAQ,EAAE,KAAK;oBACf,GAAG,EAAE,iBAAiB;iBACvB;aACF;SACF;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IACxD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;IACtD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7E,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;QAC9D,SAAS;QACT,oBAAoB;QACpB,oBAAoB;QACpB,KAAK;KACN,CAAC,CAAC;IAEH,IAAA,yBAAoB,EAClB,IAAI,EACJ,kBAAkB,EAClB,qCAA6B,EAC7B;QACE,OAAO,EAAE,OAAO,CAAC,IAAI;KACtB,CACF,CAAC;IAEF,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,qCAA6B,CAAC,CAAC,CAAC;IAE7E,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC,CAAC;AA9DW,QAAA,sBAAsB,0BA8DjC;AAEF,kBAAe,8BAAsB,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.smithyReactConnectionGenerator = exports.SMITHY_REACT_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -14,16 +13,15 @@ const generator_1 = require("../project/generator");
|
|
|
14
13
|
const generator_2 = require("../ts/api/generator");
|
|
15
14
|
const react_1 = require("../../utils/connection/open-api/react");
|
|
16
15
|
exports.SMITHY_REACT_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
17
|
-
const smithyReactConnectionGenerator = (tree, options) =>
|
|
18
|
-
var _a, _b, _c, _d;
|
|
16
|
+
const smithyReactConnectionGenerator = async (tree, options) => {
|
|
19
17
|
const frontendProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.frontendProjectName);
|
|
20
18
|
const targetConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.smithyModelOrBackendProjectName);
|
|
21
19
|
// Target could either be the model or backend project
|
|
22
20
|
const { modelProjectConfig, backendProjectConfig } = resolveProjectConfig(tree, targetConfig);
|
|
23
21
|
const backendMetadata = backendProjectConfig.metadata;
|
|
24
|
-
const apiName = backendMetadata
|
|
25
|
-
const auth =
|
|
26
|
-
const port =
|
|
22
|
+
const apiName = backendMetadata?.apiName;
|
|
23
|
+
const auth = backendMetadata?.auth ?? 'IAM';
|
|
24
|
+
const port = backendMetadata?.port ?? backendMetadata?.ports?.[0] ?? 3001;
|
|
27
25
|
const namespace = inferNamespace(tree, modelProjectConfig);
|
|
28
26
|
// Add extensions.smithy for customising the client
|
|
29
27
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'model'), modelProjectConfig.sourceRoot, {
|
|
@@ -31,7 +29,7 @@ const smithyReactConnectionGenerator = (tree, options) => tslib_1.__awaiter(void
|
|
|
31
29
|
}, {
|
|
32
30
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
33
31
|
});
|
|
34
|
-
|
|
32
|
+
await (0, react_1.addOpenApiReactClient)(tree, {
|
|
35
33
|
apiName,
|
|
36
34
|
frontendProjectConfig,
|
|
37
35
|
backendProjectConfig,
|
|
@@ -41,21 +39,20 @@ const smithyReactConnectionGenerator = (tree, options) => tslib_1.__awaiter(void
|
|
|
41
39
|
auth,
|
|
42
40
|
port,
|
|
43
41
|
});
|
|
44
|
-
|
|
42
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
45
43
|
exports.SMITHY_REACT_CONNECTION_GENERATOR_INFO,
|
|
46
44
|
]);
|
|
47
|
-
|
|
45
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
48
46
|
return () => {
|
|
49
47
|
(0, devkit_1.installPackagesTask)(tree);
|
|
50
48
|
};
|
|
51
|
-
}
|
|
49
|
+
};
|
|
52
50
|
exports.smithyReactConnectionGenerator = smithyReactConnectionGenerator;
|
|
53
51
|
const resolveProjectConfig = (tree, modelOrBackendConfig) => {
|
|
54
|
-
|
|
55
|
-
if (((_a = modelOrBackendConfig.metadata) !== null && _a !== void 0 ? _a : {}).generator ===
|
|
52
|
+
if ((modelOrBackendConfig.metadata ?? {}).generator ===
|
|
56
53
|
generator_1.SMITHY_PROJECT_GENERATOR_INFO.id) {
|
|
57
54
|
// It's the model project
|
|
58
|
-
const backendProjectName = (
|
|
55
|
+
const backendProjectName = (modelOrBackendConfig.metadata ?? {})
|
|
59
56
|
.backendProject;
|
|
60
57
|
if (!backendProjectName) {
|
|
61
58
|
throw new Error(`Could not find associated backend for Smithy model project ${modelOrBackendConfig.name}`);
|
|
@@ -65,16 +62,16 @@ const resolveProjectConfig = (tree, modelOrBackendConfig) => {
|
|
|
65
62
|
backendProjectConfig: (0, nx_1.readProjectConfigurationUnqualified)(tree, backendProjectName),
|
|
66
63
|
};
|
|
67
64
|
}
|
|
68
|
-
else if ((
|
|
65
|
+
else if ((modelOrBackendConfig.metadata ?? {}).generator ===
|
|
69
66
|
generator_2.TS_SMITHY_API_GENERATOR_INFO.id) {
|
|
70
67
|
// It's the backend project
|
|
71
|
-
const modelProjectName = (
|
|
68
|
+
const modelProjectName = (modelOrBackendConfig.metadata ?? {})
|
|
72
69
|
.modelProject;
|
|
73
70
|
if (!modelProjectName) {
|
|
74
71
|
throw new Error(`Could not find associated model for Smithy backend project ${modelOrBackendConfig.name}`);
|
|
75
72
|
}
|
|
76
73
|
return {
|
|
77
|
-
modelProjectConfig: (0, nx_1.readProjectConfigurationUnqualified)(tree, (
|
|
74
|
+
modelProjectConfig: (0, nx_1.readProjectConfigurationUnqualified)(tree, (modelOrBackendConfig.metadata ?? {}).modelProject),
|
|
78
75
|
backendProjectConfig: modelOrBackendConfig,
|
|
79
76
|
};
|
|
80
77
|
}
|
|
@@ -92,7 +89,7 @@ const inferNamespace = (tree, modelProject) => {
|
|
|
92
89
|
const smithyBuild = JSON.parse(tree.read(smithyBuildJsonPath, 'utf-8'));
|
|
93
90
|
return smithyBuild.plugins.openapi.service.split('#')[0];
|
|
94
91
|
}
|
|
95
|
-
catch
|
|
92
|
+
catch {
|
|
96
93
|
throw new Error(`Unable to determine namespace from ${smithyBuildJsonPath}. Expected plugins.openapi.service to be defined.`);
|
|
97
94
|
}
|
|
98
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/smithy/react-connection/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/smithy/react-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,14 +24,14 @@ const fs_1 = require("../../../utils/fs");
|
|
|
24
24
|
const api_constructs_1 = require("../../../utils/api-constructs/api-constructs");
|
|
25
25
|
const open_api_metadata_1 = require("../../../utils/api-constructs/open-api-metadata");
|
|
26
26
|
exports.TS_SMITHY_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
27
|
-
const tsSmithyApiGenerator = (tree, options) =>
|
|
27
|
+
const tsSmithyApiGenerator = async (tree, options) => {
|
|
28
28
|
const integrationPattern = getIntegrationPattern(options);
|
|
29
29
|
const apiNameClassName = (0, names_1.toClassName)(options.name);
|
|
30
30
|
const apiNameKebabCase = (0, names_1.toKebabCase)(options.name);
|
|
31
31
|
const { fullyQualifiedName: backendFullyQualifiedName, dir } = (0, generator_1.getTsLibDetails)(tree, options);
|
|
32
32
|
const modelProjectName = `${apiNameKebabCase}-model`;
|
|
33
33
|
// Generate the model project
|
|
34
|
-
|
|
34
|
+
await (0, generator_2.default)(tree, {
|
|
35
35
|
name: modelProjectName,
|
|
36
36
|
serviceName: apiNameClassName,
|
|
37
37
|
namespace: options.namespace,
|
|
@@ -40,9 +40,15 @@ const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
40
40
|
});
|
|
41
41
|
// Add metadata to associate backend project with model project
|
|
42
42
|
const modelProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, modelProjectName);
|
|
43
|
-
(0, devkit_1.updateProjectConfiguration)(tree, modelProjectConfig.name,
|
|
43
|
+
(0, devkit_1.updateProjectConfiguration)(tree, modelProjectConfig.name, {
|
|
44
|
+
...modelProjectConfig,
|
|
45
|
+
metadata: {
|
|
46
|
+
...modelProjectConfig.metadata,
|
|
47
|
+
backendProject: backendFullyQualifiedName,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
44
50
|
// Generate the backend project
|
|
45
|
-
|
|
51
|
+
await (0, generator_1.default)(tree, {
|
|
46
52
|
name: options.name,
|
|
47
53
|
directory: dir,
|
|
48
54
|
subDirectory: 'backend',
|
|
@@ -61,11 +67,11 @@ const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
61
67
|
port,
|
|
62
68
|
});
|
|
63
69
|
// Add infrastructure
|
|
64
|
-
const iacProvider =
|
|
65
|
-
|
|
70
|
+
const iacProvider = await (0, iac_1.resolveIacProvider)(tree, options.iacProvider);
|
|
71
|
+
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
66
72
|
iacProvider,
|
|
67
73
|
});
|
|
68
|
-
|
|
74
|
+
await (0, api_constructs_1.addApiGatewayInfra)(tree, {
|
|
69
75
|
iacProvider,
|
|
70
76
|
apiProjectName: backendFullyQualifiedName,
|
|
71
77
|
apiNameClassName,
|
|
@@ -148,13 +154,13 @@ const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
148
154
|
'@aws-lambda-powertools/metrics',
|
|
149
155
|
'@aws-sdk/client-appconfigdata',
|
|
150
156
|
]), (0, versions_1.withVersions)(['@types/aws-lambda']));
|
|
151
|
-
|
|
152
|
-
|
|
157
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_SMITHY_API_GENERATOR_INFO]);
|
|
158
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
153
159
|
return () => {
|
|
154
160
|
(0, devkit_1.installPackagesTask)(tree);
|
|
155
161
|
};
|
|
156
|
-
}
|
|
162
|
+
};
|
|
157
163
|
exports.tsSmithyApiGenerator = tsSmithyApiGenerator;
|
|
158
|
-
const getIntegrationPattern = (options) =>
|
|
164
|
+
const getIntegrationPattern = (options) => options.integrationPattern ?? 'isolated';
|
|
159
165
|
exports.default = exports.tsSmithyApiGenerator;
|
|
160
166
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAQoB;AAEpB,0CAM2B;AAC3B,oDAAyE;AACzE,kDAA6D;AAC7D,4CAAwD;AACxD,wEAA6E;AAC7E,gDAAgE;AAChE,+EAAgF;AAChF,8CAAiD;AACjD,sDAAuD;AACvD,gFAA6D;AAC7D,yDAAyE;AACzE,4CAAqD;AACrD,mDAAkE;AAClE,0CAA+C;AAC/C,iFAAkF;AAClF,uFAAmH;AAEtG,QAAA,4BAA4B,GACvC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
|