@aligent/nx-cdk 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligent/nx-cdk",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
@@ -0,0 +1,89 @@
1
+ {
2
+ "author": "Aligent",
3
+ "private": true,
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "scripts": {
7
+ "test": "nx affected -t test --coverage",
8
+ "test:all": "nx run-many -t test --coverage",
9
+ "lint": "nx affected -t lint",
10
+ "lint:all": "nx run-many -t lint",
11
+ "typecheck": "nx affected -t typecheck",
12
+ "typecheck:all": "nx run-many -t typecheck",
13
+ "audit": "nx run-many -t lint typecheck test --configuration coverage --skip-nx-cache",
14
+ "pg:synth": "nx run application:pg:synth --bundle-mode=dev --profile playground",
15
+ "pg:deploy": "nx run application:pg:deploy --bundle-mode=dev --method=direct --require-approval never --profile playground",
16
+ "pg:diff": "nx run application:pg:diff --profile playground",
17
+ "pg:destroy": "nx run application:pg:destroy --profile playground",
18
+ "postinstall": "[ -d .git ] && git config core.hooksPath '.git-hooks' && chmod +x .git-hooks/* || true"
19
+ },
20
+ "dependencies": {
21
+ "@aligent/microservice-util-lib": "^1.2.0"
22
+ },
23
+ "devDependencies": {
24
+ "@aligent/cdk-aspects": "^0.5.0",
25
+ "@aligent/cdk-step-function-from-file": "^0.3.2",
26
+ "@aligent/nx-openapi": "^1.0.0",
27
+ "@aligent/ts-code-standards": "^4.1.0",
28
+ "@nx/eslint": "22.1.3",
29
+ "@nx/eslint-plugin": "22.1.3",
30
+ "@nx/js": "22.1.3",
31
+ "@nx/vitest": "22.1.3",
32
+ "@nx/workspace": "22.1.3",
33
+ "@swc-node/register": "^1.10.10",
34
+ "@swc/core": "^1.13.3",
35
+ "@swc/helpers": "^0.5.17",
36
+ "@types/aws-lambda": "^8.10.152",
37
+ "@types/node": "^22.17.0",
38
+ "@typescript-eslint/eslint-plugin": "8.44.0",
39
+ "@typescript-eslint/parser": "8.44.0",
40
+ "@vitest/coverage-v8": "^3.2.4",
41
+ "@vitest/ui": "^3.2.4",
42
+ "aws-cdk": "^2.1033.0",
43
+ "aws-cdk-lib": "^2.235.1",
44
+ "cdk-nag": "^2.37.55",
45
+ "constructs": "^10.4.3",
46
+ "eslint": "^9.32.0",
47
+ "eslint-config-prettier": "^10.1.8",
48
+ "eslint-plugin-import": "^2.32.0",
49
+ "fast-glob": "^3.3.3",
50
+ "jiti": "2.5.1",
51
+ "jsonc-eslint-parser": "^2.4.0",
52
+ "nx": "22.1.3",
53
+ "prettier": "^3.6.2",
54
+ "rolldown": "1.0.0-rc.1",
55
+ "store-parameters": "^1.1.3",
56
+ "tslib": "^2.8.1",
57
+ "tsx": "^4.21.0",
58
+ "typescript": "~5.9.2",
59
+ "vite": "^7.2.6",
60
+ "vitest": "^3.2.4"
61
+ },
62
+ "nx": {
63
+ "includedScripts": [],
64
+ "targets": {
65
+ "parameters": {
66
+ "executor": "nx:run-commands",
67
+ "options": {
68
+ "color": true,
69
+ "cwd": "parameters"
70
+ },
71
+ "configurations": {
72
+ "import": {
73
+ "command": "store-parameters import {args.file} --delimiter=|"
74
+ },
75
+ "export": {
76
+ "command": "store-parameters export {args.file} --path={args.path} --delimiter=|"
77
+ }
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "workspaces": [
83
+ "application",
84
+ "clients",
85
+ "libs/*",
86
+ "services/*"
87
+ ],
88
+ "packageManager": "yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8"
89
+ }
@@ -11,44 +11,11 @@ interface Service {
11
11
  stack: string;
12
12
  }
13
13
  export declare function constructPackageJsonFile(input: PackageJsonInput): {
14
- [k: string]: string | true | readonly ["application", "clients", "libs/*", "services/*"] | {
15
- readonly test: "nx affected -t test --coverage";
16
- readonly 'test:all': "nx run-many -t test --coverage";
17
- readonly lint: "nx affected -t lint";
18
- readonly 'lint:all': "nx run-many -t lint";
19
- readonly typecheck: "nx affected -t typecheck";
20
- readonly 'typecheck:all': "nx run-many -t typecheck";
21
- readonly audit: "nx run-many -t lint typecheck test --configuration coverage --skip-nx-cache";
22
- readonly 'pg:synth': "nx run application:pg:synth --bundle-mode=dev --profile playground";
23
- readonly 'pg:deploy': "nx run application:pg:deploy --bundle-mode=dev --method=direct --require-approval never --profile playground";
24
- readonly 'pg:diff': "nx run application:pg:diff --profile playground";
25
- readonly 'pg:destroy': "nx run application:pg:destroy --profile playground";
26
- readonly postinstall: "[ -d .git ] && git config core.hooksPath '.git-hooks' && chmod +x .git-hooks/* || true";
27
- } | {
28
- readonly '@aligent/microservice-util-lib': "^1.2.0";
29
- } | {
14
+ [k: string]: string | boolean | string[] | Record<string, string> | {
30
15
  [k: string]: string;
31
16
  } | {
32
17
  node: string;
33
18
  } | {
34
- includedScripts: readonly [];
35
- targets: {
36
- readonly parameters: {
37
- readonly executor: "nx:run-commands";
38
- readonly options: {
39
- readonly color: true;
40
- readonly cwd: "parameters";
41
- };
42
- readonly configurations: {
43
- readonly import: {
44
- readonly command: "store-parameters import {args.file} --delimiter=|";
45
- };
46
- readonly export: {
47
- readonly command: "store-parameters export {args.file} --path={args.path} --delimiter=|";
48
- };
49
- };
50
- };
51
- };
52
19
  name: string;
53
20
  node?: never;
54
21
  };
@@ -93,7 +60,7 @@ export declare function getGeneratorVersion(): string;
93
60
  *
94
61
  * @throws {Error} If the ApplicationStage constructor cannot be found in service-stacks.ts
95
62
  */
96
- export declare function addServiceStackToMainApplication(tree: Tree, service: Service, projectName: string): Promise<void>;
63
+ export declare function addServiceStackToMainApplication(tree: Tree, service: Service, projectName: string): void;
97
64
  /**
98
65
  * Splits a kebab-case name into an array of capitalized parts.
99
66
  *
@@ -7,24 +7,35 @@ exports.addServiceStackToMainApplication = addServiceStackToMainApplication;
7
7
  exports.splitInputName = splitInputName;
8
8
  /* v8 ignore start */
9
9
  const devkit_1 = require("@nx/devkit");
10
- const fs_1 = require("fs");
11
10
  const path_1 = require("path");
12
11
  const ts_morph_1 = require("ts-morph");
13
- const packageJson_1 = require("./configs/packageJson");
14
12
  const tsConfigs_1 = require("./configs/tsConfigs");
13
+ /**
14
+ * Reads the base package.json configuration from a JSON file.
15
+ *
16
+ * The configuration is stored as a standalone JSON file rather than a TypeScript constant
17
+ * so that Dependabot can automatically detect and upgrade the dependency versions within it.
18
+ *
19
+ * @returns The parsed package.json configuration.
20
+ */
21
+ function readPackageJsonConfig() {
22
+ const configPath = (0, path_1.join)(__dirname, './configs/base-package/package.json');
23
+ return (0, devkit_1.readJsonFile)(configPath);
24
+ }
15
25
  function constructPackageJsonFile(input) {
26
+ const config = readPackageJsonConfig();
16
27
  const devDependencies = Object.fromEntries(Object.entries({
17
28
  '@aligent/nx-cdk': input.version,
18
- ...packageJson_1.PACKAGE_JSON.devDependencies,
29
+ ...config.devDependencies,
19
30
  }).sort());
20
31
  const packageJson = Object.fromEntries(Object.entries({
21
32
  name: `@${input.name}/integrations`,
22
33
  description: `${input.projectName} integrations mono-repository`,
23
34
  version: input.version,
24
- ...packageJson_1.PACKAGE_JSON,
35
+ ...config,
25
36
  devDependencies,
26
37
  engines: { node: `^${input.nodeVersion}` },
27
- nx: { name: `${input.name}-int`, ...packageJson_1.PACKAGE_JSON.nx },
38
+ nx: { name: `${input.name}-int`, ...config.nx },
28
39
  }));
29
40
  return packageJson;
30
41
  }
@@ -66,18 +77,24 @@ function getGeneratorVersion() {
66
77
  *
67
78
  * @throws {Error} If the ApplicationStage constructor cannot be found in service-stacks.ts
68
79
  */
69
- async function addServiceStackToMainApplication(tree, service, projectName) {
80
+ function addServiceStackToMainApplication(tree, service, projectName) {
70
81
  const application = (0, devkit_1.readProjectConfiguration)(tree, projectName);
71
82
  if (application.root.includes('..')) {
72
83
  throw new Error('Invalid application root path');
73
84
  }
74
- const stacksPath = (0, path_1.join)(tree.root, application.root, 'lib/service-stacks.ts');
75
- if (!(0, fs_1.existsSync)(stacksPath)) {
85
+ const stacksRelativePath = (0, path_1.join)(application.root, 'lib/service-stacks.ts');
86
+ if (!tree.exists(stacksRelativePath)) {
76
87
  console.log('Service Stacks does not exist, skipping service stacks registration.');
77
88
  return;
78
89
  }
79
- const project = new ts_morph_1.Project();
80
- const stackSource = project.addSourceFileAtPath(stacksPath);
90
+ const content = tree.read(stacksRelativePath, 'utf-8');
91
+ if (content === null) {
92
+ throw new Error(`Failed to read file: ${stacksRelativePath}`);
93
+ }
94
+ const fs = new ts_morph_1.InMemoryFileSystemHost();
95
+ fs.writeFileSync(stacksRelativePath, content);
96
+ const project = new ts_morph_1.Project({ fileSystem: fs });
97
+ const stackSource = project.addSourceFileAtPath(stacksRelativePath);
81
98
  const applicationStage = stackSource.getClassOrThrow('ApplicationStage');
82
99
  const stageConstructor = applicationStage.getConstructors()[0];
83
100
  if (!stageConstructor) {
@@ -90,7 +107,7 @@ async function addServiceStackToMainApplication(tree, service, projectName) {
90
107
  const sharedInfra = stageConstructor.getVariableStatement('sharedInfra');
91
108
  const sharedPropsStatement = sharedInfra ? `...sharedInfra.getProps(),` : '';
92
109
  stageConstructor.addStatements(`new ${service.stack}(this, ${service.constant}.NAME, { ...props, ${sharedPropsStatement} description: ${service.constant}.DESCRIPTION });`);
93
- await stackSource.save();
110
+ tree.write(stacksRelativePath, stackSource.getFullText());
94
111
  }
95
112
  /**
96
113
  * Splits a kebab-case name into an array of capitalized parts.
@@ -1,8 +1,7 @@
1
1
  #!/bin/bash
2
2
  # Script adapted from https://github.com/kaczor6418/git-hooks-example/blob/master/git-hooks/pre-commit
3
3
 
4
- # Support using VSCode to commit
5
- # This loads nvm.sh and sets the correct PATH before running hook
4
+ # Support using VSCode to commit. This loads nvm.sh and sets the correct PATH before running hook
6
5
  export NVM_DIR="$HOME/.nvm"
7
6
  [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
8
7
 
@@ -1,13 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ DynamoDbDefaultsAspect,
3
4
  LambdaAndStepFunctionVersioningAspect,
4
5
  LogGroupDefaultsAspect,
5
6
  MicroserviceChecks,
6
7
  NodeJsFunctionDefaultsAspect,
7
8
  ResourcePrefixAspect,
9
+ S3DefaultsAspect,
8
10
  StepFunctionsDefaultsAspect,
9
11
  } from '@aligent/cdk-aspects';
10
- import { App, AspectOptions, AspectPriority, Aspects, IAspect, Runtime, Tags } from 'aws-cdk-lib';
12
+ import { App, AspectOptions, AspectPriority, Aspects, IAspect, Tags } from 'aws-cdk-lib';
13
+ import { Runtime } from 'aws-cdk-lib/aws-lambda';
11
14
  import { ApplicationStage } from '../lib/service-stacks.js';
12
15
 
13
16
  const APPLICATION_CONTEXT = { NAME: '<%= name %>-int', OWNER: 'Aligent' } as const;
@@ -76,22 +79,21 @@ commonAspectsWithOptions.forEach(({ aspect, options }) => {
76
79
  Aspects.of(stage).add(aspect, options);
77
80
  });
78
81
 
82
+ const defaultAspectsOptions: AspectOptions = { priority: AspectPriority.MUTATING };
83
+ let duration: 'SHORT' | 'MEDIUM' | 'LONG' = 'SHORT';
84
+
79
85
  switch (stageName) {
80
86
  case 'prd':
81
- Aspects.of(stage).add(new LogGroupDefaultsAspect({ duration: 'LONG' }), {
82
- priority: AspectPriority.MUTATING,
83
- });
84
- Aspects.of(stage).add(new LambdaAndStepFunctionVersioningAspect(), {
85
- priority: AspectPriority.MUTATING,
86
- });
87
+ Aspects.of(stage).add(new LambdaAndStepFunctionVersioningAspect(), defaultAspectsOptions);
88
+ duration = 'LONG';
87
89
  break;
88
90
  case 'stg':
89
- Aspects.of(stage).add(new LogGroupDefaultsAspect({ duration: 'MEDIUM' }), {
90
- priority: AspectPriority.MUTATING,
91
- });
91
+ duration = 'MEDIUM';
92
92
  break;
93
93
  default:
94
- Aspects.of(stage).add(new LogGroupDefaultsAspect({ duration: 'SHORT' }), {
95
- priority: AspectPriority.MUTATING,
96
- });
94
+ duration = 'SHORT';
97
95
  }
96
+
97
+ Aspects.of(stage).add(new LogGroupDefaultsAspect({ duration }), defaultAspectsOptions);
98
+ Aspects.of(stage).add(new DynamoDbDefaultsAspect({ duration }), defaultAspectsOptions);
99
+ Aspects.of(stage).add(new S3DefaultsAspect({ duration }), defaultAspectsOptions);
@@ -1,5 +1,5 @@
1
1
  {
2
- "app": "yarn tsx bin/main.ts",
2
+ "app": "npx tsx bin/main.ts",
3
3
  "watch": {
4
4
  "include": ["**"],
5
5
  "exclude": [
@@ -24,7 +24,6 @@ const eslintBaseConfig = [
24
24
  'error',
25
25
  {
26
26
  allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?[jt]s$'],
27
- enforceBuildableLibDependency: true,
28
27
  depConstraints: [
29
28
  {
30
29
  sourceTag: 'scope:application',
@@ -1,16 +1,20 @@
1
- import { Stack, Stage, type StackProps } from 'aws-cdk-lib';
1
+ import { Stack, Stage, StackProps, Tags } from 'aws-cdk-lib';
2
2
  import { Secret } from 'aws-cdk-lib/aws-secretsmanager';
3
3
  import { IStringParameter, StringParameter } from 'aws-cdk-lib/aws-ssm';
4
- import type { Construct } from 'constructs';
4
+ import { Construct } from 'constructs';
5
5
 
6
+ // EXAMPLE ONLY: The following interface, class, and all related resource references
7
+ // (eCommerceBaseUrl, eCommerceCredentials, etc.) are illustrative examples.
8
+ // Replace them with your own resources and props that match your actual infrastructure.
6
9
  export interface SharedInfraProps {
7
- eCommerceBaseUrl: IStringParameter;
8
- eCommerceCredentials: Secret;
10
+ // eCommerceBaseUrl: IStringParameter;
11
+ // eCommerceCredentials: Secret;
9
12
  }
10
13
 
11
14
  export class SharedInfraStack extends Stack {
12
- readonly eCommerceBaseUrl: IStringParameter;
13
- readonly eCommerceCredentials: Secret;
15
+ // EXAMPLE: Replace these properties with your own shared resources
16
+ // readonly eCommerceBaseUrl: IStringParameter;
17
+ // readonly eCommerceCredentials: Secret;
14
18
 
15
19
  constructor(scope: Construct, id: string, props?: StackProps) {
16
20
  super(scope, id, props);
@@ -19,22 +23,26 @@ export class SharedInfraStack extends Stack {
19
23
  throw new Error('This construct must be used within a CDK Stage');
20
24
  }
21
25
 
22
- this.eCommerceBaseUrl = StringParameter.fromStringParameterName(
23
- this,
24
- 'ECommerceBaseUrl',
25
- `/e-commerce/base-url`
26
- );
26
+ Tags.of(this).add('SERVICE', id);
27
27
 
28
- // Create secrets once in the shared stack
29
- this.eCommerceCredentials = new Secret(this, 'ECommerceCredentials', {
30
- description: 'E-Commerce API credentials shared across services',
31
- });
28
+ // EXAMPLE: Replace with your own SSM parameter lookup
29
+ // this.eCommerceBaseUrl = StringParameter.fromStringParameterName(
30
+ // this,
31
+ // 'ECommerceBaseUrl',
32
+ // `/e-commerce/base-url`
33
+ // );
34
+
35
+ // EXAMPLE: Replace with your own secrets/resources
36
+ // this.eCommerceCredentials = new Secret(this, 'ECommerceCredentials', {
37
+ // description: 'E-Commerce API credentials shared across services',
38
+ // });
32
39
  }
33
40
 
41
+ // EXAMPLE: Update getProps() to return your own resource props
34
42
  getProps(): SharedInfraProps {
35
43
  return {
36
- eCommerceBaseUrl: this.eCommerceBaseUrl,
37
- eCommerceCredentials: this.eCommerceCredentials,
44
+ // eCommerceBaseUrl: this.eCommerceBaseUrl,
45
+ // eCommerceCredentials: this.eCommerceCredentials,
38
46
  };
39
47
  }
40
48
  }
@@ -27,11 +27,10 @@ interface Props extends StackProps, SharedInfraProps {
27
27
  * Use 'resolve' helpers below when referencing lambda handlers, step function files etc.
28
28
  */
29
29
  export class <%= stack %> extends Stack {
30
- constructor(scope: Construct, id: Id, props?: Props) {
30
+ constructor(scope: Construct, id: Id, props: Props) {
31
31
  super(scope, id, props);
32
32
 
33
- const STAGE = Stage.of(this)?.stageName;
34
- if (!STAGE) {
33
+ if (!Stage.of(this)?.stageName) {
35
34
  throw new Error('This construct must be used within a CDK Stage');
36
35
  }
37
36
 
@@ -1,84 +0,0 @@
1
- export declare const PACKAGE_JSON: {
2
- readonly author: "Aligent";
3
- readonly private: true;
4
- readonly license: "MIT";
5
- readonly type: "module";
6
- readonly scripts: {
7
- readonly test: "nx affected -t test --coverage";
8
- readonly 'test:all': "nx run-many -t test --coverage";
9
- readonly lint: "nx affected -t lint";
10
- readonly 'lint:all': "nx run-many -t lint";
11
- readonly typecheck: "nx affected -t typecheck";
12
- readonly 'typecheck:all': "nx run-many -t typecheck";
13
- readonly audit: "nx run-many -t lint typecheck test --configuration coverage --skip-nx-cache";
14
- readonly 'pg:synth': "nx run application:pg:synth --bundle-mode=dev --profile playground";
15
- readonly 'pg:deploy': "nx run application:pg:deploy --bundle-mode=dev --method=direct --require-approval never --profile playground";
16
- readonly 'pg:diff': "nx run application:pg:diff --profile playground";
17
- readonly 'pg:destroy': "nx run application:pg:destroy --profile playground";
18
- readonly postinstall: "[ -d .git ] && git config core.hooksPath '.git-hooks' && chmod +x .git-hooks/* || true";
19
- };
20
- readonly dependencies: {
21
- readonly '@aligent/microservice-util-lib': "^1.2.0";
22
- };
23
- readonly devDependencies: {
24
- readonly '@aligent/cdk-aspects': "^0.4.0";
25
- readonly '@aligent/cdk-step-function-from-file': "^0.3.2";
26
- readonly '@aligent/nx-openapi': "^1.0.0";
27
- readonly '@aligent/ts-code-standards': "^4.1.0";
28
- readonly '@nx/eslint': "22.1.3";
29
- readonly '@nx/eslint-plugin': "22.1.3";
30
- readonly '@nx/js': "22.1.3";
31
- readonly '@nx/vitest': "22.1.3";
32
- readonly '@nx/workspace': "22.1.3";
33
- readonly '@swc-node/register': "^1.10.10";
34
- readonly '@swc/core': "^1.13.3";
35
- readonly '@swc/helpers': "^0.5.17";
36
- readonly '@types/aws-lambda': "^8.10.152";
37
- readonly '@types/node': "^22.17.0";
38
- readonly '@typescript-eslint/eslint-plugin': "8.44.0";
39
- readonly '@typescript-eslint/parser': "8.44.0";
40
- readonly '@vitest/coverage-v8': "^3.2.4";
41
- readonly '@vitest/ui': "^3.2.4";
42
- readonly 'aws-cdk': "^2.1033.0";
43
- readonly 'aws-cdk-lib': "^2.235.1";
44
- readonly 'cdk-nag': "^2.37.55";
45
- readonly constructs: "^10.4.3";
46
- readonly eslint: "^9.32.0";
47
- readonly 'eslint-config-prettier': "^10.1.8";
48
- readonly 'eslint-plugin-import': "^2.32.0";
49
- readonly 'fast-glob': "^3.3.3";
50
- readonly jiti: "2.5.1";
51
- readonly 'jsonc-eslint-parser': "^2.4.0";
52
- readonly nx: "22.1.3";
53
- readonly prettier: "^3.6.2";
54
- readonly rolldown: "1.0.0-rc.1";
55
- readonly 'store-parameters': "^1.1.3";
56
- readonly tslib: "^2.8.1";
57
- readonly tsx: "^4.21.0";
58
- readonly typescript: "~5.9.2";
59
- readonly vite: "^7.2.6";
60
- readonly vitest: "^3.2.4";
61
- };
62
- readonly nx: {
63
- readonly includedScripts: readonly [];
64
- readonly targets: {
65
- readonly parameters: {
66
- readonly executor: "nx:run-commands";
67
- readonly options: {
68
- readonly color: true;
69
- readonly cwd: "parameters";
70
- };
71
- readonly configurations: {
72
- readonly import: {
73
- readonly command: "store-parameters import {args.file} --delimiter=|";
74
- };
75
- readonly export: {
76
- readonly command: "store-parameters export {args.file} --path={args.path} --delimiter=|";
77
- };
78
- };
79
- };
80
- };
81
- };
82
- readonly workspaces: readonly ["application", "clients", "libs/*", "services/*"];
83
- readonly packageManager: "yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8";
84
- };
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PACKAGE_JSON = void 0;
4
- exports.PACKAGE_JSON = {
5
- author: 'Aligent',
6
- private: true,
7
- license: 'MIT',
8
- type: 'module',
9
- scripts: {
10
- test: 'nx affected -t test --coverage',
11
- 'test:all': 'nx run-many -t test --coverage',
12
- lint: 'nx affected -t lint',
13
- 'lint:all': 'nx run-many -t lint',
14
- typecheck: 'nx affected -t typecheck',
15
- 'typecheck:all': 'nx run-many -t typecheck',
16
- audit: 'nx run-many -t lint typecheck test --configuration coverage --skip-nx-cache',
17
- 'pg:synth': 'nx run application:pg:synth --bundle-mode=dev --profile playground',
18
- 'pg:deploy': 'nx run application:pg:deploy --bundle-mode=dev --method=direct --require-approval never --profile playground',
19
- 'pg:diff': 'nx run application:pg:diff --profile playground',
20
- 'pg:destroy': 'nx run application:pg:destroy --profile playground',
21
- postinstall: `[ -d .git ] && git config core.hooksPath '.git-hooks' && chmod +x .git-hooks/* || true`,
22
- },
23
- dependencies: {
24
- '@aligent/microservice-util-lib': '^1.2.0',
25
- },
26
- devDependencies: {
27
- '@aligent/cdk-aspects': '^0.4.0',
28
- '@aligent/cdk-step-function-from-file': '^0.3.2',
29
- '@aligent/nx-openapi': '^1.0.0',
30
- '@aligent/ts-code-standards': '^4.1.0',
31
- '@nx/eslint': '22.1.3',
32
- '@nx/eslint-plugin': '22.1.3',
33
- '@nx/js': '22.1.3',
34
- '@nx/vitest': '22.1.3',
35
- '@nx/workspace': '22.1.3',
36
- '@swc-node/register': '^1.10.10',
37
- '@swc/core': '^1.13.3',
38
- '@swc/helpers': '^0.5.17',
39
- '@types/aws-lambda': '^8.10.152',
40
- '@types/node': '^22.17.0',
41
- '@typescript-eslint/eslint-plugin': '8.44.0',
42
- '@typescript-eslint/parser': '8.44.0',
43
- '@vitest/coverage-v8': '^3.2.4',
44
- '@vitest/ui': '^3.2.4',
45
- 'aws-cdk': '^2.1033.0',
46
- 'aws-cdk-lib': '^2.235.1',
47
- 'cdk-nag': '^2.37.55',
48
- constructs: '^10.4.3',
49
- eslint: '^9.32.0',
50
- 'eslint-config-prettier': '^10.1.8',
51
- 'eslint-plugin-import': '^2.32.0',
52
- 'fast-glob': '^3.3.3',
53
- jiti: '2.5.1',
54
- 'jsonc-eslint-parser': '^2.4.0',
55
- nx: '22.1.3',
56
- prettier: '^3.6.2',
57
- // FIXME: [MI-251] Rolldown is still in RC. We pin the version and can upgrade with precaution.
58
- rolldown: '1.0.0-rc.1',
59
- 'store-parameters': '^1.1.3',
60
- tslib: '^2.8.1',
61
- tsx: '^4.21.0',
62
- typescript: '~5.9.2',
63
- vite: '^7.2.6',
64
- vitest: '^3.2.4',
65
- },
66
- nx: {
67
- includedScripts: [],
68
- targets: {
69
- parameters: {
70
- executor: 'nx:run-commands',
71
- options: { color: true, cwd: 'parameters' },
72
- configurations: {
73
- import: { command: 'store-parameters import {args.file} --delimiter=|' },
74
- export: {
75
- command: 'store-parameters export {args.file} --path={args.path} --delimiter=|',
76
- },
77
- },
78
- },
79
- },
80
- },
81
- workspaces: ['application', 'clients', 'libs/*', 'services/*'],
82
- packageManager: 'yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8',
83
- };