projalf 0.0.30 → 0.0.32

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
@@ -7,19 +7,25 @@
7
7
  },
8
8
  "scripts": {
9
9
  "build": "npx projen build",
10
+ "bump": "npx projen bump",
10
11
  "clobber": "npx projen clobber",
11
12
  "compat": "npx projen compat",
12
13
  "compile": "npx projen compile",
13
14
  "default": "npx projen default",
15
+ "docgen": "npx projen docgen",
14
16
  "eject": "npx projen eject",
15
17
  "eslint": "npx projen eslint",
16
18
  "package": "npx projen package",
17
19
  "package-all": "npx projen package-all",
18
20
  "package:js": "npx projen package:js",
19
21
  "post-compile": "npx projen post-compile",
22
+ "post-upgrade": "npx projen post-upgrade",
20
23
  "pre-compile": "npx projen pre-compile",
24
+ "release": "npx projen release",
21
25
  "test": "npx projen test",
22
26
  "test:watch": "npx projen test:watch",
27
+ "unbump": "npx projen unbump",
28
+ "upgrade": "npx projen upgrade",
23
29
  "watch": "npx projen watch",
24
30
  "projen": "npx projen"
25
31
  },
@@ -31,33 +37,35 @@
31
37
  "devDependencies": {
32
38
  "@stylistic/eslint-plugin": "^2",
33
39
  "@types/jest": "^30.0.0",
34
- "@types/node": "ts5.2",
40
+ "@types/node": "^12",
35
41
  "@typescript-eslint/eslint-plugin": "^8",
36
42
  "@typescript-eslint/parser": "^8",
43
+ "commit-and-tag-version": "^12",
37
44
  "constructs": "^10.0.0",
38
45
  "eslint": "^9",
39
46
  "eslint-import-resolver-typescript": "^4.4.4",
40
47
  "eslint-plugin-import": "^2.32.0",
41
48
  "jest": "^30.0.5",
42
49
  "jest-junit": "^16",
43
- "jsii": "latest",
50
+ "jsii": "~5.8.0",
44
51
  "jsii-diff": "^1.113.0",
45
- "jsii-pacmak": "^1.119.0",
46
- "jsii-rosetta": "latest",
47
- "projen": "0.98.10",
52
+ "jsii-docgen": "^10.5.0",
53
+ "jsii-pacmak": "^1.114.1",
54
+ "jsii-rosetta": "~5.8.0",
55
+ "projen": "^0.96.1",
48
56
  "ts-jest": "^29.4.1",
49
57
  "ts-node": "^9",
50
- "typescript": "^5.2.0"
58
+ "typescript": "^5.9.2"
51
59
  },
52
60
  "peerDependencies": {
53
- "projen": ">=0.96.5 <1"
61
+ "projen": "^0.96.1"
54
62
  },
55
63
  "main": "lib/index.js",
56
64
  "license": "Apache-2.0",
57
65
  "publishConfig": {
58
66
  "access": "public"
59
67
  },
60
- "version": "0.0.30",
68
+ "version": "0.0.32",
61
69
  "jest": {
62
70
  "coverageProvider": "v8",
63
71
  "testMatch": [
package/.jsii DELETED
@@ -1,162 +0,0 @@
1
- {
2
- "author": {
3
- "email": "alfgoto@gmail.com",
4
- "name": "Alf",
5
- "roles": [
6
- "author"
7
- ]
8
- },
9
- "dependencies": {
10
- "projen": ">=0.96.5 <1"
11
- },
12
- "dependencyClosure": {
13
- "constructs": {
14
- "targets": {
15
- "dotnet": {
16
- "namespace": "Constructs",
17
- "packageId": "Constructs"
18
- },
19
- "go": {
20
- "moduleName": "github.com/aws/constructs-go"
21
- },
22
- "java": {
23
- "maven": {
24
- "artifactId": "constructs",
25
- "groupId": "software.constructs"
26
- },
27
- "package": "software.constructs"
28
- },
29
- "js": {
30
- "npm": "constructs"
31
- },
32
- "python": {
33
- "distName": "constructs",
34
- "module": "constructs"
35
- }
36
- }
37
- },
38
- "projen": {
39
- "submodules": {
40
- "projen.awscdk": {},
41
- "projen.build": {},
42
- "projen.cdk": {},
43
- "projen.cdk8s": {},
44
- "projen.cdktf": {},
45
- "projen.circleci": {},
46
- "projen.github": {},
47
- "projen.github.workflows": {},
48
- "projen.gitlab": {},
49
- "projen.java": {},
50
- "projen.javascript": {},
51
- "projen.javascript.biome_config": {},
52
- "projen.python": {},
53
- "projen.release": {},
54
- "projen.typescript": {},
55
- "projen.vscode": {},
56
- "projen.web": {}
57
- },
58
- "targets": {
59
- "go": {
60
- "moduleName": "github.com/projen/projen-go"
61
- },
62
- "java": {
63
- "maven": {
64
- "artifactId": "projen",
65
- "groupId": "io.github.cdklabs"
66
- },
67
- "package": "io.github.cdklabs.projen"
68
- },
69
- "js": {
70
- "npm": "projen"
71
- },
72
- "python": {
73
- "distName": "projen",
74
- "module": "projen"
75
- }
76
- }
77
- }
78
- },
79
- "description": "A projen project made to help use the aws-cdk",
80
- "docs": {
81
- "stability": "stable"
82
- },
83
- "homepage": "git@github.com:AlfGoto/projalf.git",
84
- "jsiiVersion": "5.9.13 (build cc3e9a8)",
85
- "license": "Apache-2.0",
86
- "metadata": {
87
- "jsii": {
88
- "pacmak": {
89
- "hasDefaultInterfaces": true
90
- }
91
- },
92
- "tscRootDir": "src"
93
- },
94
- "name": "projalf",
95
- "readme": {
96
- "markdown": "This is a projen project made to help use the aws-cdk"
97
- },
98
- "repository": {
99
- "type": "git",
100
- "url": "git@github.com:AlfGoto/projalf.git"
101
- },
102
- "schema": "jsii/0.10.0",
103
- "targets": {
104
- "js": {
105
- "npm": "projalf"
106
- }
107
- },
108
- "types": {
109
- "projalf.Projalf": {
110
- "assembly": "projalf",
111
- "base": "projen.awscdk.AwsCdkTypeScriptApp",
112
- "docs": {
113
- "stability": "stable"
114
- },
115
- "fqn": "projalf.Projalf",
116
- "initializer": {
117
- "docs": {
118
- "stability": "stable"
119
- },
120
- "locationInModule": {
121
- "filename": "src/Projalf.ts",
122
- "line": 20
123
- },
124
- "parameters": [
125
- {
126
- "name": "options",
127
- "type": {
128
- "fqn": "projalf.ProjalfOptions"
129
- }
130
- }
131
- ]
132
- },
133
- "kind": "class",
134
- "locationInModule": {
135
- "filename": "src/Projalf.ts",
136
- "line": 19
137
- },
138
- "name": "Projalf",
139
- "symbolId": "src/Projalf:Projalf"
140
- },
141
- "projalf.ProjalfOptions": {
142
- "assembly": "projalf",
143
- "datatype": true,
144
- "docs": {
145
- "stability": "stable"
146
- },
147
- "fqn": "projalf.ProjalfOptions",
148
- "interfaces": [
149
- "projen.awscdk.AwsCdkTypeScriptAppOptions"
150
- ],
151
- "kind": "interface",
152
- "locationInModule": {
153
- "filename": "src/Projalf.ts",
154
- "line": 17
155
- },
156
- "name": "ProjalfOptions",
157
- "symbolId": "src/Projalf:ProjalfOptions"
158
- }
159
- },
160
- "version": "0.0.0",
161
- "fingerprint": "G2+Hdcu6AYQROF5MyopcA0uqM9zM9Yh3ve+qpSWRLyg="
162
- }
package/lib/Projalf.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { awscdk } from "projen";
2
- export interface ProjalfOptions extends awscdk.AwsCdkTypeScriptAppOptions {
3
- }
4
- export declare class Projalf extends awscdk.AwsCdkTypeScriptApp {
5
- constructor(options: ProjalfOptions);
6
- }
package/lib/Projalf.js DELETED
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Projalf = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const cp = require("child_process");
7
- const path = require("path");
8
- const projen_1 = require("projen");
9
- const files_1 = require("./files");
10
- const workflows_1 = require("./workflows");
11
- const defaultJestConfig = {
12
- preset: "ts-jest",
13
- transform: {
14
- "^.+\\.tsx?$": new projen_1.javascript.Transform("ts-jest", {
15
- tsconfig: "tsconfig.dev.json",
16
- }),
17
- },
18
- setupFilesAfterEnv: ["<rootDir>/test/setup.ts"],
19
- };
20
- class Projalf extends projen_1.awscdk.AwsCdkTypeScriptApp {
21
- constructor(options) {
22
- const inferredName = options.name ?? inferNameFromGit() ?? inferNameFromCwd();
23
- const className = toPascalCase(inferredName);
24
- const fileBase = inferredName.toLowerCase();
25
- const mergedContext = { ...(options.context ?? {}) };
26
- if (mergedContext.serviceName === undefined) {
27
- mergedContext.serviceName = inferredName;
28
- }
29
- super({
30
- ...options,
31
- name: inferredName,
32
- defaultReleaseBranch: options.defaultReleaseBranch ?? "main",
33
- packageManager: options.packageManager ?? projen_1.javascript.NodePackageManager.NPM,
34
- projenrcTs: options.projenrcTs ?? true,
35
- cdkVersion: options.cdkVersion ?? "^2.156.0",
36
- context: mergedContext,
37
- deps: options.deps ?? [],
38
- devDeps: options.devDeps ?? [],
39
- buildWorkflow: false,
40
- release: false,
41
- depsUpgrade: false,
42
- githubOptions: {
43
- pullRequestLint: false,
44
- },
45
- watchIncludes: ["src/**/*.ts", "src/**/*.tsx"],
46
- prettierOptions: {
47
- ...options.prettierOptions,
48
- settings: {
49
- semi: false,
50
- printWidth: 100,
51
- singleQuote: false,
52
- ...options.prettierOptions?.settings,
53
- },
54
- },
55
- jestOptions: {
56
- configFilePath: "jest.config.json",
57
- jestConfig: {
58
- testMatch: ["<rootDir>/(test/unit|src)/**/*(*.)@(spec|test).ts?(x)"],
59
- transform: {
60
- "^.+\\.tsx?$": new projen_1.javascript.Transform("ts-jest", {
61
- tsconfig: "tsconfig.dev.json",
62
- }),
63
- },
64
- },
65
- },
66
- });
67
- new files_1.Files(this, className, fileBase, inferredName);
68
- // Enforce ESLint style: double quotes and no semicolons
69
- this.eslint?.addRules({
70
- "@stylistic/quotes": ["error", "double", { avoidEscape: true }],
71
- "@stylistic/semi": ["error", "never"],
72
- "@stylistic/consistent-quotes": ["off"],
73
- "@stylistic/member-delimiter-style": ["off"],
74
- "@stylistic/comma-dangle": ["error", "always-multiline"],
75
- });
76
- (0, workflows_1.workflow)(this);
77
- this.addTask("deploy:watch", {
78
- exec: "cdk deploy --all --method=direct --outputs-file=test.output.json --watch --hotswap-fallback --require-approval=never",
79
- receiveArgs: true,
80
- });
81
- this.addTask("test:e2e", {
82
- exec: "jest --config jest.e2e.config.json --runInBand --passWithNoTests",
83
- });
84
- new projen_1.javascript.Jest(this, {
85
- configFilePath: "jest.integ.config.json",
86
- jestConfig: {
87
- collectCoverage: false,
88
- testMatch: [
89
- "<rootDir>/test/integ/**/*(*.)@(spec|test).ts?(x)",
90
- "<rootDir>/(test|src)/**/*(*.)@(integ).ts?(x)",
91
- ],
92
- ...defaultJestConfig,
93
- },
94
- });
95
- new projen_1.javascript.Jest(this, {
96
- configFilePath: "jest.e2e.config.json",
97
- jestConfig: {
98
- collectCoverage: false,
99
- testMatch: [
100
- "<rootDir>/test/e2e/**/*(*.)@(spec|test).ts?(x)",
101
- "<rootDir>/(test|src)/**/*(*.)@(e2e).ts?(x)",
102
- ],
103
- ...defaultJestConfig,
104
- },
105
- });
106
- new projen_1.SampleFile(this, "test/setup.ts", {
107
- contents: `jest.setTimeout(10000)
108
- `,
109
- });
110
- }
111
- }
112
- exports.Projalf = Projalf;
113
- _a = JSII_RTTI_SYMBOL_1;
114
- Projalf[_a] = { fqn: "projalf.Projalf", version: "0.0.0" };
115
- function inferNameFromGit() {
116
- try {
117
- const remote = cp
118
- .execSync("git config --get remote.origin.url", {
119
- stdio: ["ignore", "pipe", "ignore"],
120
- })
121
- .toString()
122
- .trim();
123
- if (!remote)
124
- return undefined;
125
- const match = remote.match(/\/([^\/]+?)(?:\.git)?$/);
126
- return match?.[1];
127
- }
128
- catch {
129
- return undefined;
130
- }
131
- }
132
- function inferNameFromCwd() {
133
- return path.basename(process.cwd());
134
- }
135
- function toPascalCase(input) {
136
- return input
137
- .replace(/[^a-zA-Z0-9]+/g, " ")
138
- .split(" ")
139
- .filter(Boolean)
140
- .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
141
- .join("");
142
- }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamFsZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9qYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0NBQW1DO0FBQ25DLDZCQUE0QjtBQUM1QixtQ0FBdUQ7QUFDdkQsbUNBQStCO0FBQy9CLDJDQUFzQztBQUV0QyxNQUFNLGlCQUFpQixHQUFpQztJQUN0RCxNQUFNLEVBQUUsU0FBUztJQUNqQixTQUFTLEVBQUU7UUFDVCxhQUFhLEVBQUUsSUFBSSxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDakQsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0tBQ0g7SUFDRCxrQkFBa0IsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0NBQ2hELENBQUE7QUFJRCxNQUFhLE9BQVEsU0FBUSxlQUFNLENBQUMsbUJBQW1CO0lBQ3JELFlBQVksT0FBdUI7UUFDakMsTUFBTSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxJQUFJLElBQUksZ0JBQWdCLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO1FBQzFELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFM0MsTUFBTSxhQUFhLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBeUIsQ0FBQTtRQUMzRSxJQUFJLGFBQWEsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUE7UUFDMUMsQ0FBQztRQUVELEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxZQUFZO1lBQ2xCLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxNQUFNO1lBQzVELGNBQWMsRUFDWixPQUFPLENBQUMsY0FBYyxJQUFJLG1CQUFVLENB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QVMsZ0JBQWdCO0lBQ3ZCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUU7YUFDZCxRQUFRLENBQUMsb0NBQW9DLEVBQUU7WUFDOUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7U0FDcEMsQ0FBQzthQUNELFFBQVEsRUFBRTthQUNWLElBQUksRUFBRSxDQUFBO1FBQ1QsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUM3QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDcEQsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDckMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsT0FBTyxLQUFLO1NBQ1QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztTQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcCBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IGF3c2NkaywgamF2YXNjcmlwdCwgU2FtcGxlRmlsZSB9IGZyb20gXCJwcm9qZW5cIlxuaW1wb3J0IHsgRmlsZXMgfSBmcm9tIFwiLi9maWxlc1wiXG5pbXBvcnQgeyB3b3JrZmxvdyB9IGZyb20gXCIuL3dvcmtmbG93c1wiXG5cbmNvbnN0IGRlZmF1bHRKZXN0Q29uZmlnOiBqYXZhc2NyaXB0Lkplc3RDb25maWdPcHRpb25zID0ge1xuICBwcmVzZXQ6IFwidHMtamVzdFwiLFxuICB0cmFuc2Zvcm06IHtcbiAgICBcIl4uK1xcXFwudHN4PyRcIjogbmV3IGphdmFzY3JpcHQuVHJhbnNmb3JtKFwidHMtamVzdFwiLCB7XG4gICAgICB0c2NvbmZpZzogXCJ0c2NvbmZpZy5kZXYuanNvblwiLFxuICAgIH0pLFxuICB9LFxuICBzZXR1cEZpbGVzQWZ0ZXJFbnY6IFtcIjxyb290RGlyPi90ZXN0L3NldHVwLnRzXCJdLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2phbGZPcHRpb25zIGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHt9XG5cbmV4cG9ydCBjbGFzcyBQcm9qYWxmIGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQcm9qYWxmT3B0aW9ucykge1xuICAgIGNvbnN0IGluZmVycmVkTmFtZSA9XG4gICAgICBvcHRpb25zLm5hbWUgPz8gaW5mZXJOYW1lRnJvbUdpdCgpID8/IGluZmVyTmFtZUZyb21Dd2QoKVxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRvUGFzY2FsQ2FzZShpbmZlcnJlZE5hbWUpXG4gICAgY29uc3QgZmlsZUJhc2UgPSBpbmZlcnJlZE5hbWUudG9Mb3dlckNhc2UoKVxuXG4gICAgY29uc3QgbWVyZ2VkQ29udGV4dCA9IHsgLi4uKG9wdGlvbnMuY29udGV4dCA/PyB7fSkgfSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgaWYgKG1lcmdlZENvbnRleHQuc2VydmljZU5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbWVyZ2VkQ29udGV4dC5zZXJ2aWNlTmFtZSA9IGluZmVycmVkTmFtZVxuICAgIH1cblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiBpbmZlcnJlZE5hbWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCA/PyBcIm1haW5cIixcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOlxuICAgICAgICBvcHRpb25zLnBhY2thZ2VNYW5hZ2VyID8/IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTSxcbiAgICAgIHByb2plbnJjVHM6IG9wdGlvbnMucHJvamVucmNUcyA/PyB0cnVlLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uID8/IFwiXjIuMTU2LjBcIixcbiAgICAgIGNvbnRleHQ6IG1lcmdlZENvbnRleHQsXG4gICAgICBkZXBzOiBvcHRpb25zLmRlcHMgPz8gW10sXG4gICAgICBkZXZEZXBzOiBvcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuICAgICAgZGVwc1VwZ3JhZGU6IGZhbHNlLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwdWxsUmVxdWVzdExpbnQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHdhdGNoSW5jbHVkZXM6IFtcInNyYy8qKi8qLnRzXCIsIFwic3JjLyoqLyoudHN4XCJdLFxuXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5wcmV0dGllck9wdGlvbnMsXG4gICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgc2VtaTogZmFsc2UsXG4gICAgICAgICAgcHJpbnRXaWR0aDogMTAwLFxuICAgICAgICAgIHNpbmdsZVF1b3RlOiBmYWxzZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnByZXR0aWVyT3B0aW9ucz8uc2V0dGluZ3MsXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICBqZXN0T3B0aW9uczoge1xuICAgICAgICBjb25maWdGaWxlUGF0aDogXCJqZXN0LmNvbmZpZy5qc29uXCIsXG4gICAgICAgIGplc3RDb25maWc6IHtcbiAgICAgICAgICB0ZXN0TWF0Y2g6IFtcIjxyb290RGlyPi8odGVzdC91bml0fHNyYykvKiovKigqLilAKHNwZWN8dGVzdCkudHM/KHgpXCJdLFxuICAgICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgICAgXCJeLitcXFxcLnRzeD8kXCI6IG5ldyBqYXZhc2NyaXB0LlRyYW5zZm9ybShcInRzLWplc3RcIiwge1xuICAgICAgICAgICAgICB0c2NvbmZpZzogXCJ0c2NvbmZpZy5kZXYuanNvblwiLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIG5ldyBGaWxlcyh0aGlzLCBjbGFzc05hbWUsIGZpbGVCYXNlLCBpbmZlcnJlZE5hbWUpXG5cbiAgICAvLyBFbmZvcmNlIEVTTGludCBzdHlsZTogZG91YmxlIHF1b3RlcyBhbmQgbm8gc2VtaWNvbG9uc1xuICAgIHRoaXMuZXNsaW50Py5hZGRSdWxlcyh7XG4gICAgICBcIkBzdHlsaXN0aWMvcXVvdGVzXCI6IFtcImVycm9yXCIsIFwiZG91YmxlXCIsIHsgYXZvaWRFc2NhcGU6IHRydWUgfV0sXG4gICAgICBcIkBzdHlsaXN0aWMvc2VtaVwiOiBbXCJlcnJvclwiLCBcIm5ldmVyXCJdLFxuICAgICAgXCJAc3R5bGlzdGljL2NvbnNpc3RlbnQtcXVvdGVzXCI6IFtcIm9mZlwiXSxcbiAgICAgIFwiQHN0eWxpc3RpYy9tZW1iZXItZGVsaW1pdGVyLXN0eWxlXCI6IFtcIm9mZlwiXSxcbiAgICAgIFwiQHN0eWxpc3RpYy9jb21tYS1kYW5nbGVcIjogW1wiZXJyb3JcIiwgXCJhbHdheXMtbXVsdGlsaW5lXCJdLFxuICAgIH0pXG5cbiAgICB3b3JrZmxvdyh0aGlzKVxuXG4gICAgdGhpcy5hZGRUYXNrKFwiZGVwbG95OndhdGNoXCIsIHtcbiAgICAgIGV4ZWM6IFwiY2RrIGRlcGxveSAtLWFsbCAtLW1ldGhvZD1kaXJlY3QgLS1vdXRwdXRzLWZpbGU9dGVzdC5vdXRwdXQuanNvbiAtLXdhdGNoIC0taG90c3dhcC1mYWxsYmFjayAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXJcIixcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pXG4gICAgdGhpcy5hZGRUYXNrKFwidGVzdDplMmVcIiwge1xuICAgICAgZXhlYzogXCJqZXN0IC0tY29uZmlnIGplc3QuZTJlLmNvbmZpZy5qc29uIC0tcnVuSW5CYW5kIC0tcGFzc1dpdGhOb1Rlc3RzXCIsXG4gICAgfSlcblxuICAgIG5ldyBqYXZhc2NyaXB0Lkplc3QodGhpcywge1xuICAgICAgY29uZmlnRmlsZVBhdGg6IFwiamVzdC5pbnRlZy5jb25maWcuanNvblwiLFxuICAgICAgamVzdENvbmZpZzoge1xuICAgICAgICBjb2xsZWN0Q292ZXJhZ2U6IGZhbHNlLFxuICAgICAgICB0ZXN0TWF0Y2g6IFtcbiAgICAgICAgICBcIjxyb290RGlyPi90ZXN0L2ludGVnLyoqLyooKi4pQChzcGVjfHRlc3QpLnRzPyh4KVwiLFxuICAgICAgICAgIFwiPHJvb3REaXI+Lyh0ZXN0fHNyYykvKiovKigqLilAKGludGVnKS50cz8oeClcIixcbiAgICAgICAgXSxcbiAgICAgICAgLi4uZGVmYXVsdEplc3RDb25maWcsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBuZXcgamF2YXNjcmlwdC5KZXN0KHRoaXMsIHtcbiAgICAgIGNvbmZpZ0ZpbGVQYXRoOiBcImplc3QuZTJlLmNvbmZpZy5qc29uXCIsXG4gICAgICBqZXN0Q29uZmlnOiB7XG4gICAgICAgIGNvbGxlY3RDb3ZlcmFnZTogZmFsc2UsXG4gICAgICAgIHRlc3RNYXRjaDogW1xuICAgICAgICAgIFwiPHJvb3REaXI+L3Rlc3QvZTJlLyoqLyooKi4pQChzcGVjfHRlc3QpLnRzPyh4KVwiLFxuICAgICAgICAgIFwiPHJvb3REaXI+Lyh0ZXN0fHNyYykvKiovKigqLilAKGUyZSkudHM/KHgpXCIsXG4gICAgICAgIF0sXG4gICAgICAgIC4uLmRlZmF1bHRKZXN0Q29uZmlnLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcywgXCJ0ZXN0L3NldHVwLnRzXCIsIHtcbiAgICAgIGNvbnRlbnRzOiBgamVzdC5zZXRUaW1lb3V0KDEwMDAwKVxuYCxcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGluZmVyTmFtZUZyb21HaXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZW1vdGUgPSBjcFxuICAgICAgLmV4ZWNTeW5jKFwiZ2l0IGNvbmZpZyAtLWdldCByZW1vdGUub3JpZ2luLnVybFwiLCB7XG4gICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwiaWdub3JlXCJdLFxuICAgICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgaWYgKCFyZW1vdGUpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBtYXRjaCA9IHJlbW90ZS5tYXRjaCgvXFwvKFteXFwvXSs/KSg/OlxcLmdpdCk/JC8pXG4gICAgcmV0dXJuIG1hdGNoPy5bMV1cbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG5cbmZ1bmN0aW9uIGluZmVyTmFtZUZyb21Dd2QoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSlcbn1cblxuZnVuY3Rpb24gdG9QYXNjYWxDYXNlKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXRcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCBcIiBcIilcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5tYXAoKHBhcnQpID0+IHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpXG4gICAgLmpvaW4oXCJcIilcbn1cbiJdfQ==
package/lib/files.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Component } from "projen";
2
- import { Projalf } from "./Projalf";
3
- export declare class Files extends Component {
4
- private appProject;
5
- constructor(appProject: Projalf, className: string, fileBase: string, inferredName: string);
6
- }
package/lib/files.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Files = void 0;
4
- const projen_1 = require("projen");
5
- class Files extends projen_1.Component {
6
- constructor(appProject, className, fileBase, inferredName) {
7
- super(appProject);
8
- this.appProject = appProject;
9
- this.appProject = appProject;
10
- new projen_1.SampleFile(this.appProject, `src/${fileBase}.ts`, {
11
- contents: `import * as cdk from 'aws-cdk-lib';
12
- import { Construct } from 'constructs';
13
-
14
- export interface ${className}Props extends cdk.StackProps {
15
- serviceName: string;
16
- stage: string;
17
- }
18
-
19
- export class ${className} extends cdk.Stack {
20
- constructor(scope: Construct, id: string, props: ${className}Props) {
21
- super(scope, id, props);
22
- // Add your infra here...
23
- }
24
- }
25
- `,
26
- });
27
- this.appProject.tryRemoveFile("src/main.ts");
28
- new projen_1.SampleFile(this.appProject, "src/main.ts", {
29
- contents: `
30
- import * as cdk from 'aws-cdk-lib';
31
- import { ${className} } from './${fileBase}';
32
- const env = {
33
- account: process.env.CDK_DEPLOY_ACCOUNT ?? process.env.CDK_DEFAULT_ACCOUNT,
34
- region: process.env.CDK_DEPLOY_REGION ?? process.env.CDK_DEFAULT_REGION,
35
- };
36
- const app = new cdk.App();
37
- const serviceName = '${inferredName}';
38
- new ${className}(app, serviceName, { env, serviceName });
39
- app.synth();
40
- `,
41
- });
42
- }
43
- }
44
- exports.Files = Files;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThDO0FBRzlDLE1BQWEsS0FBTSxTQUFRLGtCQUFTO0lBQ2xDLFlBQ1UsVUFBbUIsRUFDM0IsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsWUFBb0I7UUFFcEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBTFQsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQU0zQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUU1QixJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLFFBQVEsS0FBSyxFQUFFO1lBQ3BELFFBQVEsRUFBRTs7O21CQUdHLFNBQVM7Ozs7O2VBS2IsU0FBUztxREFDNkIsU0FBUzs7Ozs7Q0FLN0Q7U0FDSSxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1QyxJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUU7WUFDN0MsUUFBUSxFQUFFOztpQkFFQyxTQUFTLGNBQWMsUUFBUTs7Ozs7OzZCQU1uQixZQUFZO1lBQzdCLFNBQVM7O09BRWQ7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUE1Q0Qsc0JBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBTYW1wbGVGaWxlIH0gZnJvbSBcInByb2plblwiXG5pbXBvcnQgeyBQcm9qYWxmIH0gZnJvbSBcIi4vUHJvamFsZlwiXG5cbmV4cG9ydCBjbGFzcyBGaWxlcyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwUHJvamVjdDogUHJvamFsZixcbiAgICBjbGFzc05hbWU6IHN0cmluZyxcbiAgICBmaWxlQmFzZTogc3RyaW5nLFxuICAgIGluZmVycmVkTmFtZTogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihhcHBQcm9qZWN0KVxuICAgIHRoaXMuYXBwUHJvamVjdCA9IGFwcFByb2plY3RcblxuICAgIG5ldyBTYW1wbGVGaWxlKHRoaXMuYXBwUHJvamVjdCwgYHNyYy8ke2ZpbGVCYXNlfS50c2AsIHtcbiAgICAgIGNvbnRlbnRzOiBgaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlICR7Y2xhc3NOYW1lfVByb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgJHtjbGFzc05hbWV9IGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7Y2xhc3NOYW1lfVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gQWRkIHlvdXIgaW5mcmEgaGVyZS4uLlxuICB9XG59XG5gLFxuICAgIH0pXG5cbiAgICB0aGlzLmFwcFByb2plY3QudHJ5UmVtb3ZlRmlsZShcInNyYy9tYWluLnRzXCIpXG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcy5hcHBQcm9qZWN0LCBcInNyYy9tYWluLnRzXCIsIHtcbiAgICAgIGNvbnRlbnRzOiBgXG4gICAgICBpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuICAgICAgaW1wb3J0IHsgJHtjbGFzc05hbWV9IH0gZnJvbSAnLi8ke2ZpbGVCYXNlfSc7XG4gICAgICBjb25zdCBlbnYgPSB7XG4gICAgICAgIGFjY291bnQ6IHByb2Nlc3MuZW52LkNES19ERVBMT1lfQUNDT1VOVCA/PyBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICAgICAgICByZWdpb246IHByb2Nlc3MuZW52LkNES19ERVBMT1lfUkVHSU9OID8/IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTixcbiAgICAgIH07XG4gICAgICBjb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuICAgICAgY29uc3Qgc2VydmljZU5hbWUgPSAnJHtpbmZlcnJlZE5hbWV9JztcbiAgICAgIG5ldyAke2NsYXNzTmFtZX0oYXBwLCBzZXJ2aWNlTmFtZSwgeyBlbnYsIHNlcnZpY2VOYW1lIH0pO1xuICAgICAgYXBwLnN5bnRoKCk7XG4gICAgICBgLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
package/lib/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./Projalf";
package/lib/index.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Projalf"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL1Byb2phbGZcIlxuIl19
@@ -1,2 +0,0 @@
1
- import { Projalf } from "./Projalf";
2
- export declare function workflow(project: Projalf): void;
package/lib/workflows.js DELETED
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.workflow = workflow;
4
- const workflows_model_1 = require("projen/lib/github/workflows-model");
5
- function workflow(project) {
6
- const cicdWorkflow = project.github.addWorkflow("ci-cd");
7
- // Single workflow - triggers on PR and push to main
8
- cicdWorkflow.on({
9
- pullRequest: {},
10
- push: { branches: ["main"] },
11
- });
12
- // Reusable job template
13
- const jobDefaults = {
14
- runsOn: ["ubuntu-latest"],
15
- permissions: {
16
- contents: workflows_model_1.JobPermission.WRITE,
17
- idToken: workflows_model_1.JobPermission.WRITE,
18
- },
19
- steps: [
20
- { name: "Checkout", uses: "actions/checkout@v4" },
21
- {
22
- name: "Setup Node.js",
23
- uses: "actions/setup-node@v4",
24
- with: { "node-version": "20" },
25
- },
26
- { name: "Install dependencies", run: "npm ci" },
27
- ],
28
- };
29
- // All jobs in one workflow with proper dependencies
30
- cicdWorkflow.addJobs({
31
- test: {
32
- ...jobDefaults,
33
- steps: [
34
- ...jobDefaults.steps,
35
- {
36
- name: "Configure AWS credentials (test)",
37
- uses: "aws-actions/configure-aws-credentials@v4",
38
- with: {
39
- "aws-access-key-id": "${{ secrets.TEST_AWS_ACCESS_KEY_ID }}",
40
- "aws-secret-access-key": "${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }}",
41
- "aws-region": "${{ secrets.AWS_REGION || 'eu-central-1' }}",
42
- },
43
- },
44
- {
45
- name: "Generate random stage ID",
46
- id: "stage",
47
- run: 'echo "STAGE_ID=test-$(shuf -i 10000-99999 -n 1)" >> $GITHUB_OUTPUT',
48
- },
49
- {
50
- name: "Deploy Test Stack",
51
- run: "npm run deploy -- -c stage=${{ steps.stage.outputs.STAGE_ID }} --require-approval never --outputs-file=test.output.json",
52
- env: {
53
- CDK_DEPLOY_ACCOUNT: "${{ secrets.AWS_TEST_ACCOUNT }}",
54
- CDK_DEPLOY_REGION: "${{ secrets.AWS_REGION || 'eu-central-1' }}",
55
- },
56
- },
57
- {
58
- name: "Configure AWS credentials for test account",
59
- uses: "aws-actions/configure-aws-credentials@v1",
60
- with: {
61
- "role-to-assume": "arn:aws:iam::${{ secrets.AWS_TEST_ACCOUNT }}:role/github-actions-role",
62
- "aws-region": "${{ secrets.AWS_REGION || 'eu-central-1' }}",
63
- },
64
- },
65
- {
66
- name: "Verify identity (TEST)",
67
- run: "aws sts get-caller-identity",
68
- },
69
- {
70
- name: "Verify IoT endpoint (TEST)",
71
- run: "aws iot describe-endpoint --endpoint-type iot:Data-ATS",
72
- },
73
- {
74
- name: "Run E2E Tests",
75
- run: "npm run test:e2e",
76
- env: {
77
- STAGE: "${{ steps.stage.outputs.STAGE_ID }}",
78
- },
79
- },
80
- {
81
- name: "Destroy Test Stack",
82
- if: "always()",
83
- run: "npm run destroy -- -c stage=${{ steps.stage.outputs.STAGE_ID }} --force",
84
- env: {
85
- CDK_DEPLOY_ACCOUNT: "${{ secrets.AWS_TEST_ACCOUNT }}",
86
- CDK_DEPLOY_REGION: "${{ secrets.AWS_REGION || 'eu-central-1' }}",
87
- },
88
- },
89
- ],
90
- },
91
- deploy_dev: {
92
- ...jobDefaults,
93
- needs: ["test"],
94
- if: "github.event_name == 'pull_request'",
95
- steps: [
96
- ...jobDefaults.steps,
97
- {
98
- name: "Configure AWS credentials",
99
- uses: "aws-actions/configure-aws-credentials@v4",
100
- with: {
101
- "aws-access-key-id": "${{ secrets.AWS_ACCESS_KEY_ID }}",
102
- "aws-secret-access-key": "${{ secrets.AWS_SECRET_ACCESS_KEY }}",
103
- "aws-region": "${{ secrets.AWS_REGION || 'eu-central-1' }}",
104
- },
105
- },
106
- {
107
- name: "Deploy Dev",
108
- run: "npm run deploy -- -c stage=dev --require-approval never --outputs-file=test.output.json",
109
- env: {
110
- CDK_DEPLOY_ACCOUNT: "${{ secrets.AWS_DEV_ACCOUNT }}",
111
- CDK_DEPLOY_REGION: "${{ secrets.AWS_REGION || 'eu-central-1' }}",
112
- },
113
- },
114
- ],
115
- },
116
- deploy_prod: {
117
- ...jobDefaults,
118
- needs: ["test"],
119
- if: "github.ref == 'refs/heads/main' && github.event_name == 'push'",
120
- steps: [
121
- ...jobDefaults.steps,
122
- {
123
- name: "Configure AWS credentials",
124
- uses: "aws-actions/configure-aws-credentials@v4",
125
- with: {
126
- "aws-access-key-id": "${{ secrets.AWS_ACCESS_KEY_ID }}",
127
- "aws-secret-access-key": "${{ secrets.AWS_SECRET_ACCESS_KEY }}",
128
- "aws-region": "${{ secrets.AWS_REGION || 'eu-central-1' }}",
129
- },
130
- },
131
- {
132
- name: "Deploy Prod",
133
- run: "npm run deploy -- -c stage=prod --require-approval never --outputs-file=test.output.json",
134
- env: {
135
- CDK_DEPLOY_ACCOUNT: "${{ secrets.AWS_PROD_ACCOUNT }}",
136
- CDK_DEPLOY_REGION: "${{ secrets.AWS_REGION || 'eu-central-1' }}",
137
- },
138
- },
139
- ],
140
- },
141
- });
142
- }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dvcmtmbG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLDRCQThJQztBQWpKRCx1RUFBaUU7QUFHakUsU0FBZ0IsUUFBUSxDQUFDLE9BQWdCO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXpELG9EQUFvRDtJQUNwRCxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2QsV0FBVyxFQUFFLEVBQUU7UUFDZixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtLQUM3QixDQUFDLENBQUE7SUFFRix3QkFBd0I7SUFDeEIsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQ3pCLFdBQVcsRUFBRTtZQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7WUFDN0IsT0FBTyxFQUFFLCtCQUFhLENBQUMsS0FBSztTQUM3QjtRQUNELEtBQUssRUFBRTtZQUNMLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDakQ7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUU7YUFDL0I7WUFDRCxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO1NBQ2hEO0tBQ0YsQ0FBQTtJQUVELG9EQUFvRDtJQUNwRCxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ25CLElBQUksRUFBRTtZQUNKLEdBQUcsV0FBVztZQUNkLEtBQUssRUFBRTtnQkFDTCxHQUFHLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQjtvQkFDRSxJQUFJLEVBQUUsa0NBQWtDO29CQUN4QyxJQUFJLEVBQUUsMENBQTBDO29CQUNoRCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsdUNBQXVDO3dCQUM1RCx1QkFBdUIsRUFDckIsMkNBQTJDO3dCQUM3QyxZQUFZLEVBQUUsNkNBQTZDO3FCQUM1RDtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsMEJBQTBCO29CQUNoQyxFQUFFLEVBQUUsT0FBTztvQkFDWCxHQUFHLEVBQUUsb0VBQW9FO2lCQUMxRTtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixHQUFHLEVBQUUseUhBQXlIO29CQUM5SCxHQUFHLEVBQUU7d0JBQ0gsa0JBQWtCLEVBQUUsaUNBQWlDO3dCQUNyRCxpQkFBaUIsRUFBRSw2Q0FBNkM7cUJBQ2pFO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSw0Q0FBNEM7b0JBQ2xELElBQUksRUFBRSwwQ0FBMEM7b0JBQ2hELElBQUksRUFBRTt3QkFDSixnQkFBZ0IsRUFDZCx1RUFBdUU7d0JBQ3pFLFlBQVksRUFBRSw2Q0FBNkM7cUJBQzVEO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSx3QkFBd0I7b0JBQzlCLEdBQUcsRUFBRSw2QkFBNkI7aUJBQ25DO2dCQUNEO29CQUNFLElBQUksRUFBRSw0QkFBNEI7b0JBQ2xDLEdBQUcsRUFBRSx3REFBd0Q7aUJBQzlEO2dCQUNEO29CQUNFLElBQUksRUFBRSxlQUFlO29CQUNyQixHQUFHLEVBQUUsa0JBQWtCO29CQUN2QixHQUFHLEVBQUU7d0JBQ0gsS0FBSyxFQUFFLHFDQUFxQztxQkFDN0M7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtvQkFDMUIsRUFBRSxFQUFFLFVBQVU7b0JBQ2QsR0FBRyxFQUFFLHlFQUF5RTtvQkFDOUUsR0FBRyxFQUFFO3dCQUNILGtCQUFrQixFQUFFLGlDQUFpQzt3QkFDckQsaUJBQWlCLEVBQUUsNkNBQTZDO3FCQUNqRTtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxVQUFVLEVBQUU7WUFDVixHQUFHLFdBQVc7WUFDZCxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDZixFQUFFLEVBQUUscUNBQXFDO1lBQ3pDLEtBQUssRUFBRTtnQkFDTCxHQUFHLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQjtvQkFDRSxJQUFJLEVBQUUsMkJBQTJCO29CQUNqQyxJQUFJLEVBQUUsMENBQTBDO29CQUNoRCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsa0NBQWtDO3dCQUN2RCx1QkFBdUIsRUFBRSxzQ0FBc0M7d0JBQy9ELFlBQVksRUFBRSw2Q0FBNkM7cUJBQzVEO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixHQUFHLEVBQUUseUZBQXlGO29CQUM5RixHQUFHLEVBQUU7d0JBQ0gsa0JBQWtCLEVBQUUsZ0NBQWdDO3dCQUNwRCxpQkFBaUIsRUFBRSw2Q0FBNkM7cUJBQ2pFO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELFdBQVcsRUFBRTtZQUNYLEdBQUcsV0FBVztZQUNkLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNmLEVBQUUsRUFBRSxnRUFBZ0U7WUFDcEUsS0FBSyxFQUFFO2dCQUNMLEdBQUcsV0FBVyxDQUFDLEtBQUs7Z0JBQ3BCO29CQUNFLElBQUksRUFBRSwyQkFBMkI7b0JBQ2pDLElBQUksRUFBRSwwQ0FBMEM7b0JBQ2hELElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxrQ0FBa0M7d0JBQ3ZELHVCQUF1QixFQUFFLHNDQUFzQzt3QkFDL0QsWUFBWSxFQUFFLDZDQUE2QztxQkFDNUQ7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLEdBQUcsRUFBRSwwRkFBMEY7b0JBQy9GLEdBQUcsRUFBRTt3QkFDSCxrQkFBa0IsRUFBRSxpQ0FBaUM7d0JBQ3JELGlCQUFpQixFQUFFLDZDQUE2QztxQkFDakU7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCJcbmltcG9ydCB7IFByb2phbGYgfSBmcm9tIFwiLi9Qcm9qYWxmXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KHByb2plY3Q6IFByb2phbGYpIHtcbiAgY29uc3QgY2ljZFdvcmtmbG93ID0gcHJvamVjdC5naXRodWIhLmFkZFdvcmtmbG93KFwiY2ktY2RcIilcblxuICAvLyBTaW5nbGUgd29ya2Zsb3cgLSB0cmlnZ2VycyBvbiBQUiBhbmQgcHVzaCB0byBtYWluXG4gIGNpY2RXb3JrZmxvdy5vbih7XG4gICAgcHVsbFJlcXVlc3Q6IHt9LFxuICAgIHB1c2g6IHsgYnJhbmNoZXM6IFtcIm1haW5cIl0gfSxcbiAgfSlcblxuICAvLyBSZXVzYWJsZSBqb2IgdGVtcGxhdGVcbiAgY29uc3Qgam9iRGVmYXVsdHMgPSB7XG4gICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgfSxcbiAgICBzdGVwczogW1xuICAgICAgeyBuYW1lOiBcIkNoZWNrb3V0XCIsIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dEB2NFwiIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgTm9kZS5qc1wiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZUB2NFwiLFxuICAgICAgICB3aXRoOiB7IFwibm9kZS12ZXJzaW9uXCI6IFwiMjBcIiB9LFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogXCJJbnN0YWxsIGRlcGVuZGVuY2llc1wiLCBydW46IFwibnBtIGNpXCIgfSxcbiAgICBdLFxuICB9XG5cbiAgLy8gQWxsIGpvYnMgaW4gb25lIHdvcmtmbG93IHdpdGggcHJvcGVyIGRlcGVuZGVuY2llc1xuICBjaWNkV29ya2Zsb3cuYWRkSm9icyh7XG4gICAgdGVzdDoge1xuICAgICAgLi4uam9iRGVmYXVsdHMsXG4gICAgICBzdGVwczogW1xuICAgICAgICAuLi5qb2JEZWZhdWx0cy5zdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQ29uZmlndXJlIEFXUyBjcmVkZW50aWFscyAodGVzdClcIixcbiAgICAgICAgICB1c2VzOiBcImF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjRcIixcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBcImF3cy1hY2Nlc3Mta2V5LWlkXCI6IFwiJHt7IHNlY3JldHMuVEVTVF9BV1NfQUNDRVNTX0tFWV9JRCB9fVwiLFxuICAgICAgICAgICAgXCJhd3Mtc2VjcmV0LWFjY2Vzcy1rZXlcIjpcbiAgICAgICAgICAgICAgXCIke3sgc2VjcmV0cy5URVNUX0FXU19TRUNSRVRfQUNDRVNTX0tFWSB9fVwiLFxuICAgICAgICAgICAgXCJhd3MtcmVnaW9uXCI6IFwiJHt7IHNlY3JldHMuQVdTX1JFR0lPTiB8fCAnZXUtY2VudHJhbC0xJyB9fVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkdlbmVyYXRlIHJhbmRvbSBzdGFnZSBJRFwiLFxuICAgICAgICAgIGlkOiBcInN0YWdlXCIsXG4gICAgICAgICAgcnVuOiAnZWNobyBcIlNUQUdFX0lEPXRlc3QtJChzaHVmIC1pIDEwMDAwLTk5OTk5IC1uIDEpXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJEZXBsb3kgVGVzdCBTdGFja1wiLFxuICAgICAgICAgIHJ1bjogXCJucG0gcnVuIGRlcGxveSAtLSAtYyBzdGFnZT0ke3sgc3RlcHMuc3RhZ2Uub3V0cHV0cy5TVEFHRV9JRCB9fSAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1vdXRwdXRzLWZpbGU9dGVzdC5vdXRwdXQuanNvblwiLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgQ0RLX0RFUExPWV9BQ0NPVU5UOiBcIiR7eyBzZWNyZXRzLkFXU19URVNUX0FDQ09VTlQgfX1cIixcbiAgICAgICAgICAgIENES19ERVBMT1lfUkVHSU9OOiBcIiR7eyBzZWNyZXRzLkFXU19SRUdJT04gfHwgJ2V1LWNlbnRyYWwtMScgfX1cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJDb25maWd1cmUgQVdTIGNyZWRlbnRpYWxzIGZvciB0ZXN0IGFjY291bnRcIixcbiAgICAgICAgICB1c2VzOiBcImF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjFcIixcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBcInJvbGUtdG8tYXNzdW1lXCI6XG4gICAgICAgICAgICAgIFwiYXJuOmF3czppYW06OiR7eyBzZWNyZXRzLkFXU19URVNUX0FDQ09VTlQgfX06cm9sZS9naXRodWItYWN0aW9ucy1yb2xlXCIsXG4gICAgICAgICAgICBcImF3cy1yZWdpb25cIjogXCIke3sgc2VjcmV0cy5BV1NfUkVHSU9OIHx8ICdldS1jZW50cmFsLTEnIH19XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiVmVyaWZ5IGlkZW50aXR5IChURVNUKVwiLFxuICAgICAgICAgIHJ1bjogXCJhd3Mgc3RzIGdldC1jYWxsZXItaWRlbnRpdHlcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiVmVyaWZ5IElvVCBlbmRwb2ludCAoVEVTVClcIixcbiAgICAgICAgICBydW46IFwiYXdzIGlvdCBkZXNjcmliZS1lbmRwb2ludCAtLWVuZHBvaW50LXR5cGUgaW90OkRhdGEtQVRTXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIlJ1biBFMkUgVGVzdHNcIixcbiAgICAgICAgICBydW46IFwibnBtIHJ1biB0ZXN0OmUyZVwiLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgU1RBR0U6IFwiJHt7IHN0ZXBzLnN0YWdlLm91dHB1dHMuU1RBR0VfSUQgfX1cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJEZXN0cm95IFRlc3QgU3RhY2tcIixcbiAgICAgICAgICBpZjogXCJhbHdheXMoKVwiLFxuICAgICAgICAgIHJ1bjogXCJucG0gcnVuIGRlc3Ryb3kgLS0gLWMgc3RhZ2U9JHt7IHN0ZXBzLnN0YWdlLm91dHB1dHMuU1RBR0VfSUQgfX0gLS1mb3JjZVwiLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgQ0RLX0RFUExPWV9BQ0NPVU5UOiBcIiR7eyBzZWNyZXRzLkFXU19URVNUX0FDQ09VTlQgfX1cIixcbiAgICAgICAgICAgIENES19ERVBMT1lfUkVHSU9OOiBcIiR7eyBzZWNyZXRzLkFXU19SRUdJT04gfHwgJ2V1LWNlbnRyYWwtMScgfX1cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGRlcGxveV9kZXY6IHtcbiAgICAgIC4uLmpvYkRlZmF1bHRzLFxuICAgICAgbmVlZHM6IFtcInRlc3RcIl0sXG4gICAgICBpZjogXCJnaXRodWIuZXZlbnRfbmFtZSA9PSAncHVsbF9yZXF1ZXN0J1wiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgLi4uam9iRGVmYXVsdHMuc3RlcHMsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkNvbmZpZ3VyZSBBV1MgY3JlZGVudGlhbHNcIixcbiAgICAgICAgICB1c2VzOiBcImF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjRcIixcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBcImF3cy1hY2Nlc3Mta2V5LWlkXCI6IFwiJHt7IHNlY3JldHMuQVdTX0FDQ0VTU19LRVlfSUQgfX1cIixcbiAgICAgICAgICAgIFwiYXdzLXNlY3JldC1hY2Nlc3Mta2V5XCI6IFwiJHt7IHNlY3JldHMuQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZIH19XCIsXG4gICAgICAgICAgICBcImF3cy1yZWdpb25cIjogXCIke3sgc2VjcmV0cy5BV1NfUkVHSU9OIHx8ICdldS1jZW50cmFsLTEnIH19XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiRGVwbG95IERldlwiLFxuICAgICAgICAgIHJ1bjogXCJucG0gcnVuIGRlcGxveSAtLSAtYyBzdGFnZT1kZXYgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tb3V0cHV0cy1maWxlPXRlc3Qub3V0cHV0Lmpzb25cIixcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIENES19ERVBMT1lfQUNDT1VOVDogXCIke3sgc2VjcmV0cy5BV1NfREVWX0FDQ09VTlQgfX1cIixcbiAgICAgICAgICAgIENES19ERVBMT1lfUkVHSU9OOiBcIiR7eyBzZWNyZXRzLkFXU19SRUdJT04gfHwgJ2V1LWNlbnRyYWwtMScgfX1cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIGRlcGxveV9wcm9kOiB7XG4gICAgICAuLi5qb2JEZWZhdWx0cyxcbiAgICAgIG5lZWRzOiBbXCJ0ZXN0XCJdLFxuICAgICAgaWY6IFwiZ2l0aHViLnJlZiA9PSAncmVmcy9oZWFkcy9tYWluJyAmJiBnaXRodWIuZXZlbnRfbmFtZSA9PSAncHVzaCdcIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLmpvYkRlZmF1bHRzLnN0ZXBzLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJDb25maWd1cmUgQVdTIGNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgdXNlczogXCJhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0XCIsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgXCJhd3MtYWNjZXNzLWtleS1pZFwiOiBcIiR7eyBzZWNyZXRzLkFXU19BQ0NFU1NfS0VZX0lEIH19XCIsXG4gICAgICAgICAgICBcImF3cy1zZWNyZXQtYWNjZXNzLWtleVwiOiBcIiR7eyBzZWNyZXRzLkFXU19TRUNSRVRfQUNDRVNTX0tFWSB9fVwiLFxuICAgICAgICAgICAgXCJhd3MtcmVnaW9uXCI6IFwiJHt7IHNlY3JldHMuQVdTX1JFR0lPTiB8fCAnZXUtY2VudHJhbC0xJyB9fVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkRlcGxveSBQcm9kXCIsXG4gICAgICAgICAgcnVuOiBcIm5wbSBydW4gZGVwbG95IC0tIC1jIHN0YWdlPXByb2QgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tb3V0cHV0cy1maWxlPXRlc3Qub3V0cHV0Lmpzb25cIixcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIENES19ERVBMT1lfQUNDT1VOVDogXCIke3sgc2VjcmV0cy5BV1NfUFJPRF9BQ0NPVU5UIH19XCIsXG4gICAgICAgICAgICBDREtfREVQTE9ZX1JFR0lPTjogXCIke3sgc2VjcmV0cy5BV1NfUkVHSU9OIHx8ICdldS1jZW50cmFsLTEnIH19XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==