@rocketleap/rocketleap-projen 0.0.4 → 0.0.6

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/.jsii CHANGED
@@ -95,13 +95,50 @@
95
95
  },
96
96
  "name": "@rocketleap/rocketleap-projen",
97
97
  "readme": {
98
- "markdown": "# replace this"
98
+ "markdown": "# replace this\n"
99
99
  },
100
100
  "repository": {
101
101
  "type": "git",
102
102
  "url": "https://github.com/rocketleap/rocketleap-projen"
103
103
  },
104
104
  "schema": "jsii/0.10.0",
105
+ "submodules": {
106
+ "@rocketleap/rocketleap-projen.actions": {
107
+ "locationInModule": {
108
+ "filename": "src/index.ts",
109
+ "line": 6
110
+ },
111
+ "symbolId": "src/common/actions:"
112
+ },
113
+ "@rocketleap/rocketleap-projen.format": {
114
+ "locationInModule": {
115
+ "filename": "src/index.ts",
116
+ "line": 2
117
+ },
118
+ "symbolId": "src/common/prettier:"
119
+ },
120
+ "@rocketleap/rocketleap-projen.git": {
121
+ "locationInModule": {
122
+ "filename": "src/index.ts",
123
+ "line": 5
124
+ },
125
+ "symbolId": "src/common/git:"
126
+ },
127
+ "@rocketleap/rocketleap-projen.lint": {
128
+ "locationInModule": {
129
+ "filename": "src/index.ts",
130
+ "line": 3
131
+ },
132
+ "symbolId": "src/common/eslint:"
133
+ },
134
+ "@rocketleap/rocketleap-projen.packages": {
135
+ "locationInModule": {
136
+ "filename": "src/index.ts",
137
+ "line": 4
138
+ },
139
+ "symbolId": "src/common/yarn:"
140
+ }
141
+ },
105
142
  "targets": {
106
143
  "js": {
107
144
  "npm": "@rocketleap/rocketleap-projen"
@@ -123,7 +160,7 @@
123
160
  },
124
161
  "locationInModule": {
125
162
  "filename": "src/cdk-project.ts",
126
- "line": 56
163
+ "line": 53
127
164
  },
128
165
  "parameters": [
129
166
  {
@@ -137,41 +174,9 @@
137
174
  "kind": "class",
138
175
  "locationInModule": {
139
176
  "filename": "src/cdk-project.ts",
140
- "line": 45
177
+ "line": 52
141
178
  },
142
179
  "name": "RocketleapCdkProject",
143
- "properties": [
144
- {
145
- "docs": {
146
- "stability": "stable",
147
- "summary": "The company identifier."
148
- },
149
- "immutable": true,
150
- "locationInModule": {
151
- "filename": "src/cdk-project.ts",
152
- "line": 49
153
- },
154
- "name": "company",
155
- "type": {
156
- "primitive": "string"
157
- }
158
- },
159
- {
160
- "docs": {
161
- "stability": "stable",
162
- "summary": "The project name."
163
- },
164
- "immutable": true,
165
- "locationInModule": {
166
- "filename": "src/cdk-project.ts",
167
- "line": 54
168
- },
169
- "name": "projectName",
170
- "type": {
171
- "primitive": "string"
172
- }
173
- }
174
- ],
175
180
  "symbolId": "src/cdk-project:RocketleapCdkProject"
176
181
  },
177
182
  "@rocketleap/rocketleap-projen.RocketleapCdkProjectOptions": {
@@ -185,7 +190,7 @@
185
190
  "kind": "interface",
186
191
  "locationInModule": {
187
192
  "filename": "src/cdk-project.ts",
188
- "line": 6
193
+ "line": 13
189
194
  },
190
195
  "name": "RocketleapCdkProjectOptions",
191
196
  "properties": [
@@ -199,7 +204,7 @@
199
204
  "immutable": true,
200
205
  "locationInModule": {
201
206
  "filename": "src/cdk-project.ts",
202
- "line": 11
207
+ "line": 18
203
208
  },
204
209
  "name": "company",
205
210
  "type": {
@@ -216,7 +221,7 @@
216
221
  "immutable": true,
217
222
  "locationInModule": {
218
223
  "filename": "src/cdk-project.ts",
219
- "line": 17
224
+ "line": 24
220
225
  },
221
226
  "name": "project",
222
227
  "type": {
@@ -233,7 +238,7 @@
233
238
  "immutable": true,
234
239
  "locationInModule": {
235
240
  "filename": "src/cdk-project.ts",
236
- "line": 35
241
+ "line": 42
237
242
  },
238
243
  "name": "buildingBlocksVersion",
239
244
  "optional": true,
@@ -251,7 +256,7 @@
251
256
  "immutable": true,
252
257
  "locationInModule": {
253
258
  "filename": "src/cdk-project.ts",
254
- "line": 23
259
+ "line": 30
255
260
  },
256
261
  "name": "cdkVersion",
257
262
  "optional": true,
@@ -269,7 +274,7 @@
269
274
  "immutable": true,
270
275
  "locationInModule": {
271
276
  "filename": "src/cdk-project.ts",
272
- "line": 29
277
+ "line": 36
273
278
  },
274
279
  "name": "constructVersion",
275
280
  "optional": true,
@@ -281,6 +286,6 @@
281
286
  "symbolId": "src/cdk-project:RocketleapCdkProjectOptions"
282
287
  }
283
288
  },
284
- "version": "0.0.4",
285
- "fingerprint": "b1TlA3yCbOJByzrZNFUM19y/r89Kb48LGwICaYvzQnQ="
289
+ "version": "0.0.6",
290
+ "fingerprint": "XXwx8EbvQg0nWKXH0vzWgxfMqFk5KLXjPDIB3IFkuio="
286
291
  }
@@ -0,0 +1,28 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: yarn-eslint
5
+ name: ESLint
6
+ entry: sh -c "CI=true yarn eslint --max-warnings=0 ."
7
+ language: system
8
+ pass_filenames: false
9
+ - id: yarn-prettier
10
+ name: Prettier
11
+ entry: sh -c "CI=true yarn prettier --check ."
12
+ language: system
13
+ pass_filenames: false
14
+ - id: yarn-compile
15
+ name: Compile
16
+ entry: sh -c "CI=true yarn compile"
17
+ language: system
18
+ pass_filenames: false
19
+ - id: yarn-test
20
+ name: Test
21
+ entry: sh -c "CI=true yarn test"
22
+ language: system
23
+ pass_filenames: false
24
+ - id: yarn-package
25
+ name: Package
26
+ entry: sh -c "CI=true yarn package"
27
+ language: system
28
+ pass_filenames: false
Binary file
package/API.md CHANGED
@@ -735,8 +735,6 @@ When given a project, this it the project itself.
735
735
  | <code><a href="#@rocketleap/rocketleap-projen.RocketleapCdkProject.property.cdkDeps">cdkDeps</a></code> | <code>projen.awscdk.AwsCdkDeps</code> | *No description.* |
736
736
  | <code><a href="#@rocketleap/rocketleap-projen.RocketleapCdkProject.property.cdkTasks">cdkTasks</a></code> | <code>projen.awscdk.CdkTasks</code> | Common CDK tasks. |
737
737
  | <code><a href="#@rocketleap/rocketleap-projen.RocketleapCdkProject.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | The CDK version this app is using. |
738
- | <code><a href="#@rocketleap/rocketleap-projen.RocketleapCdkProject.property.company">company</a></code> | <code>string</code> | The company identifier. |
739
- | <code><a href="#@rocketleap/rocketleap-projen.RocketleapCdkProject.property.projectName">projectName</a></code> | <code>string</code> | The project name. |
740
738
 
741
739
  ---
742
740
 
@@ -1558,30 +1556,6 @@ The CDK version this app is using.
1558
1556
 
1559
1557
  ---
1560
1558
 
1561
- ##### `company`<sup>Required</sup> <a name="company" id="@rocketleap/rocketleap-projen.RocketleapCdkProject.property.company"></a>
1562
-
1563
- ```typescript
1564
- public readonly company: string;
1565
- ```
1566
-
1567
- - *Type:* string
1568
-
1569
- The company identifier.
1570
-
1571
- ---
1572
-
1573
- ##### `projectName`<sup>Required</sup> <a name="projectName" id="@rocketleap/rocketleap-projen.RocketleapCdkProject.property.projectName"></a>
1574
-
1575
- ```typescript
1576
- public readonly projectName: string;
1577
- ```
1578
-
1579
- - *Type:* string
1580
-
1581
- The project name.
1582
-
1583
- ---
1584
-
1585
1559
  #### Constants <a name="Constants" id="Constants"></a>
1586
1560
 
1587
1561
  | **Name** | **Type** | **Description** |
package/README.md CHANGED
@@ -1 +1 @@
1
- # replace this
1
+ # replace this
@@ -37,17 +37,6 @@ export interface RocketleapCdkProjectOptions {
37
37
  * and pre-commit hooks.
38
38
  */
39
39
  export declare class RocketleapCdkProject extends awscdk.AwsCdkTypeScriptApp {
40
- /**
41
- * The company identifier.
42
- */
43
- readonly company: string;
44
- /**
45
- * The project name.
46
- */
47
- readonly projectName: string;
48
40
  constructor(options: RocketleapCdkProjectOptions);
49
- private configurePackageJson;
50
- private configureEslint;
51
- private createPreCommitConfig;
52
41
  private configureCdkJson;
53
42
  }
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.RocketleapCdkProject = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const projen_1 = require("projen");
7
+ const compile_1 = require("./common/compile");
8
+ const eslint_1 = require("./common/eslint");
9
+ const git_1 = require("./common/git");
10
+ const package_json_1 = require("./common/package-json");
11
+ const pre_commit_1 = require("./common/pre-commit");
12
+ const prettier_1 = require("./common/prettier");
13
+ const yarn_1 = require("./common/yarn");
7
14
  /**
8
15
  * A projen project for Rocketleap CDK projects.
9
16
  *
@@ -15,7 +22,7 @@ class RocketleapCdkProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
15
22
  constructor(options) {
16
23
  const company = options.company;
17
24
  const project = options.project;
18
- const cdkVersion = options.cdkVersion ?? '2.233.0';
25
+ const cdkVersion = options.cdkVersion ?? '2.232.1';
19
26
  const constructVersion = options.constructVersion ?? '10.4.4';
20
27
  const buildingBlocksVersion = options.buildingBlocksVersion ?? '0.104.1';
21
28
  super({
@@ -32,178 +39,28 @@ class RocketleapCdkProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
32
39
  workflows: false,
33
40
  },
34
41
  pullRequestTemplate: false,
35
- packageManager: projen_1.javascript.NodePackageManager.YARN_BERRY,
36
42
  licensed: false,
37
- yarnBerryOptions: {
38
- version: '4.9.2',
39
- yarnRcOptions: {
40
- compressionLevel: 'mixed',
41
- enableGlobalCache: true,
42
- nodeLinker: projen_1.javascript.YarnNodeLinker.NODE_MODULES,
43
- npmRegistries: {
44
- 'https://npm.pkg.github.com/': {
45
- npmAuthToken: '${GITHUB_TOKEN}',
46
- },
47
- },
48
- npmScopes: {
49
- [company]: {
50
- npmRegistryServer: 'https://npm.pkg.github.com/',
51
- npmAlwaysAuth: true,
52
- },
53
- },
54
- },
55
- },
56
- tsconfig: {
57
- compilerOptions: {
58
- rootDir: '.',
59
- outDir: 'dist',
60
- },
61
- include: ['bin/**/*ts', 'src/**/*.ts'],
62
- exclude: ['cdk.out', 'node_modules'],
63
- },
64
- eslint: true,
65
- eslintOptions: {
66
- dirs: [],
67
- ignorePatterns: [
68
- '*.js',
69
- '*.d.ts',
70
- 'node_modules/',
71
- '*.generated.ts',
72
- 'src/**/*-handler/index.ts', // ignore handler files.
73
- ],
74
- prettier: true,
75
- },
76
- prettier: true,
77
- prettierOptions: {
78
- settings: {
79
- printWidth: 120,
80
- singleQuote: true,
81
- trailingComma: projen_1.javascript.TrailingComma.ALL,
82
- semi: true,
83
- quoteProps: projen_1.javascript.QuoteProps.CONSISTENT,
84
- },
85
- ignoreFileOptions: {
86
- ignorePatterns: [
87
- 'dist',
88
- 'node_modules',
89
- 'coverage',
90
- 'cdk.out',
91
- '.claude',
92
- '.yarn',
93
- '.pnp.cjs',
94
- '.eslintrc.json',
95
- '.pre-commit-config.yaml',
96
- 'cdk.json',
97
- 'tsconfig.dev.json',
98
- 'tsconfig.json',
99
- ],
100
- },
101
- },
102
- gitignore: [
103
- // IDE
104
- '.code',
105
- '.idea',
106
- // Typescript files
107
- '*.d.ts',
108
- '*.js',
109
- '*.js.map',
110
- 'dist',
111
- // Python
112
- 'venv',
113
- '__pycache__/',
114
- // CDK asset staging directory
115
- '.cdk.staging',
116
- 'cdk.out',
117
- // Yarn
118
- '.pnp.*',
119
- '.yarn/*',
120
- '!.yarn/patches',
121
- '!.yarn/plugins',
122
- '!.yarn/releases',
123
- '!.yarn/sdks',
124
- // Rocketleap release files
125
- 'release.diff',
126
- // AI
127
- '.claude',
128
- ],
43
+ ...yarn_1.YARN_CONFIGURATION,
44
+ ...compile_1.COMPILE_CONFIGURATION,
45
+ ...eslint_1.ESLINT_CONFIGURATION,
46
+ ...prettier_1.PRETTIER_CONFIGURATION,
47
+ ...git_1.GIT_CONFIGURATION,
129
48
  });
130
- this.company = company;
131
- this.projectName = project;
132
- this.configurePackageJson();
133
- this.configureEslint();
134
- this.createPreCommitConfig();
135
- this.configureCdkJson();
136
- }
137
- configurePackageJson() {
138
- this.addScripts({
139
- format: "prettier --write . '!**/*.{js,d.ts}'",
140
- 'format:ci': "prettier -c . '!**/*.{js,d.ts}'",
141
- lint: 'eslint --fix .',
142
- 'lint:ci': 'eslint --max-warnings=0 .',
143
- build: 'tsc',
144
- clean: 'find bin src test -type f \\( -name "*.js" -o -name "*.d.ts" \\) -delete',
145
- watch: 'tsc -w',
146
- test: 'jest',
147
- 'test:ci': 'jest --ci --maxWorkers=2',
148
- 'test:update-snapshots': 'jest --updateSnapshot',
149
- synth: 'cdk synth --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
150
- bootstrap: 'cdk bootstrap --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
151
- list: 'cdk list --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
152
- diff: 'cdk diff --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
49
+ (0, eslint_1.configureEsLint)(this.eslint);
50
+ (0, pre_commit_1.createPreCommitConfig)(this, pre_commit_1.CDK_PRE_COMMIT_HOOKS);
51
+ (0, package_json_1.configurePackageJson)(this, {
52
+ 'synth': 'cdk synth --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
53
+ 'bootstrap': 'cdk bootstrap --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
54
+ 'list': 'cdk list --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts";',
55
+ 'diff': 'cdk diff --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
153
56
  'diff:ci': 'cdk diff --ci --app "yarn ts-node --prefer-ts-exts $0";',
154
- deploy: 'cdk deploy --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
57
+ 'deploy': 'cdk deploy --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
155
58
  'deploy:ci': 'cdk deploy --ci --all --require-approval never --app "yarn ts-node --prefer-ts-exts $0";',
156
- destroy: 'cdk destroy --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
59
+ 'destroy': 'cdk destroy --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts bin/$0.ts" ${1:---all};',
157
60
  'destroy:ci': 'cdk destroy --ci -f --all --output cdk.out/$0/ --app "yarn ts-node --prefer-ts-exts $0";',
158
61
  });
159
- this.package.addDevDeps(...['eslint@^8', 'eslint-plugin-jest@^28.x.x']);
160
- }
161
- configureEslint() {
162
- this.eslint.addExtends(...[
163
- 'eslint:recommended',
164
- 'plugin:@typescript-eslint/recommended',
165
- 'plugin:import/typescript',
166
- 'plugin:jest/recommended',
167
- 'prettier',
168
- 'plugin:prettier/recommended',
169
- ]);
170
- this.eslint.addPlugins(...['@typescript-eslint', 'import', 'jest', 'prettier']);
171
- this.eslint.addOverride({
172
- files: ['*.test.ts'],
173
- rules: {
174
- 'jest/expect-expect': 'off',
175
- },
176
- });
177
- }
178
- createPreCommitConfig() {
179
- new projen_1.TextFile(this, '.pre-commit-config.yaml', {
180
- lines: [
181
- `repos:
182
- - repo: local
183
- hooks:
184
- - id: yarn-package
185
- name: Packages
186
- entry: sh -c "CI=true yarn"
187
- language: system
188
- - id: yarn-format
189
- name: Format
190
- entry: sh -c "CI=true yarn format:ci"
191
- language: system
192
- - id: yarn-lint
193
- name: Lint
194
- entry: sh -c "CI=true yarn lint:ci"
195
- language: system
196
- - id: yarn-build
197
- name: Build
198
- entry: sh -c "CI=true yarn build"
199
- language: system
200
- - id: yarn-test
201
- name: Tests
202
- entry: sh -c "CI=true yarn test:ci"
203
- language: system
204
- `,
205
- ],
206
- });
62
+ this.configureCdkJson();
63
+ this.package.addDeps(`Construct@=${constructVersion}`);
207
64
  }
208
65
  configureCdkJson() {
209
66
  this.cdkConfig.json.patch(projen_1.JsonPatch.add('/versionReporting', false));
@@ -211,5 +68,5 @@ class RocketleapCdkProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
211
68
  }
212
69
  exports.RocketleapCdkProject = RocketleapCdkProject;
213
70
  _a = JSII_RTTI_SYMBOL_1;
214
- RocketleapCdkProject[_a] = { fqn: "@rocketleap/rocketleap-projen.RocketleapCdkProject", version: "0.0.4" };
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBaUU7QUFxQ2pFOzs7Ozs7R0FNRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjtJQVdsRSxZQUFZLE9BQW9DO1FBQzlDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQztRQUNuRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUM7UUFDOUQsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLElBQUksU0FBUyxDQUFDO1FBRXpFLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRTtZQUVyQyxJQUFJLEVBQUUsQ0FBQyx3Q0FBd0MsT0FBTyx3QkFBd0IscUJBQXFCLEVBQUUsQ0FBQztZQUV0RyxVQUFVLEVBQUUsVUFBVTtZQUN0QixpQkFBaUIsRUFBRSxnQkFBZ0I7WUFDbkMsaUJBQWlCLEVBQUUsSUFBSTtZQUV2QixvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsS0FBSzthQUNqQjtZQUNELG1CQUFtQixFQUFFLEtBQUs7WUFFMUIsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVTtZQUV4RCxRQUFRLEVBQUUsS0FBSztZQUNmLGdCQUFnQixFQUFFO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsYUFBYSxFQUFFO29C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a0JBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOztBQWhPSCxvREFpT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQsIEpzb25QYXRjaCwgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIFJvY2tldGxlYXBDZGtQcm9qZWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9ja2V0bGVhcENka1Byb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21wYW55IGlkZW50aWZpZXIgdXNlZCBmb3IgcGFja2FnZSBzY29waW5nLlxuICAgKiBAZXhhbXBsZSAncm9ja2V0bGVhcCdcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhbnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb2plY3QgbmFtZS5cbiAgICogQGV4YW1wbGUgJ3Jvb3QtY2RrJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIENESyB2ZXJzaW9uIHRvIHVzZS5cbiAgICogQGRlZmF1bHQgJzIuMjMzLjAnXG4gICAqL1xuICByZWFkb25seSBjZGtWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0cyBsaWJyYXJ5IHZlcnNpb24gdG8gdXNlLlxuICAgKiBAZGVmYXVsdCAnMTAuNC40J1xuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFJvY2tldGxlYXAgYnVpbGRpbmcgYmxvY2tzIENESyB2ZXJzaW9uIHRvIHVzZS5cbiAgICogQGRlZmF1bHQgJzAuMTA0LjEnXG4gICAqL1xuICByZWFkb25seSBidWlsZGluZ0Jsb2Nrc1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBwcm9qZW4gcHJvamVjdCBmb3IgUm9ja2V0bGVhcCBDREsgcHJvamVjdHMuXG4gKlxuICogVGhpcyBwcm9qZWN0IHR5cGUgZ2VuZXJhdGVzIGEgZnVsbHkgY29uZmlndXJlZCBBV1MgQ0RLIFR5cGVTY3JpcHQgYXBwbGljYXRpb25cbiAqIHdpdGggUm9ja2V0bGVhcCdzIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIEVTTGludCwgUHJldHRpZXIsIFlhcm4gQmVycnksXG4gKiBhbmQgcHJlLWNvbW1pdCBob29rcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvY2tldGxlYXBDZGtQcm9qZWN0IGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICAvKipcbiAgICogVGhlIGNvbXBhbnkgaWRlbnRpZmllci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb21wYW55OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0IG5hbWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBSb2NrZXRsZWFwQ2RrUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBjb21wYW55ID0gb3B0aW9ucy5jb21wYW55O1xuICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb25zLnByb2plY3Q7XG4gICAgY29uc3QgY2RrVmVyc2lvbiA9IG9wdGlvbnMuY2RrVmVyc2lvbiA/PyAnMi4yMzMuMCc7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiA/PyAnMTAuNC40JztcbiAgICBjb25zdCBidWlsZGluZ0Jsb2Nrc1ZlcnNpb24gPSBvcHRpb25zLmJ1aWxkaW5nQmxvY2tzVmVyc2lvbiA/PyAnMC4xMDQuMSc7XG5cbiAgICBzdXBlcih7XG4gICAgICBuYW1lOiBwcm9qZWN0LFxuICAgICAgcGFja2FnZU5hbWU6IGBAJHtjb21wYW55fS8ke3Byb2plY3R9YCxcblxuICAgICAgZGVwczogW2BAcm9ja2V0bGVhcC9idWlsZGluZy1ibG9ja3MtY2RrQG5wbTpAJHtjb21wYW55fS9idWlsZGluZy1ibG9ja3MtY2RrQCR7YnVpbGRpbmdCbG9ja3NWZXJzaW9ufWBdLFxuXG4gICAgICBjZGtWZXJzaW9uOiBjZGtWZXJzaW9uLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb246IGNvbnN0cnVjdFZlcnNpb24sXG4gICAgICBjZGtWZXJzaW9uUGlubmluZzogdHJ1ZSxcblxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgICB3b3JrZmxvd3M6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGU6IGZhbHNlLFxuXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWSxcblxuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuICAgICAgeWFybkJlcnJ5T3B0aW9uczoge1xuICAgICAgICB2ZXJzaW9uOiAnNC45LjInLFxuICAgICAgICB5YXJuUmNPcHRpb25zOiB7XG4gICAgICAgICAgY29tcHJlc3Npb25MZXZlbDogJ21peGVkJyxcbiAgICAgICAgICBlbmFibGVHbG9iYWxDYWNoZTogdHJ1ZSxcbiAgICAgICAgICBub2RlTGlua2VyOiBqYXZhc2NyaXB0Lllhcm5Ob2RlTGlua2VyLk5PREVfTU9EVUxFUyxcbiAgICAgICAgICBucG1SZWdpc3RyaWVzOiB7XG4gICAgICAgICAgICAnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20vJzoge1xuICAgICAgICAgICAgICBucG1BdXRoVG9rZW46ICcke0dJVEhVQl9UT0tFTn0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5wbVNjb3Blczoge1xuICAgICAgICAgICAgW2NvbXBhbnldOiB7XG4gICAgICAgICAgICAgIG5wbVJlZ2lzdHJ5U2VydmVyOiAnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20vJyxcbiAgICAgICAgICAgICAgbnBtQWx3YXlzQXV0aDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIHJvb3REaXI6ICcuJyxcbiAgICAgICAgICBvdXREaXI6ICdkaXN0JyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5jbHVkZTogWydiaW4vKiovKnRzJywgJ3NyYy8qKi8qLnRzJ10sXG4gICAgICAgIGV4Y2x1ZGU6IFsnY2RrLm91dCcsICdub2RlX21vZHVsZXMnXSxcbiAgICAgIH0sXG5cbiAgICAgIGVzbGludDogdHJ1ZSxcbiAgICAgIGVzbGludE9wdGlvbnM6IHtcbiAgICAgICAgZGlyczogW10sXG4gICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbXG4gICAgICAgICAgJyouanMnLFxuICAgICAgICAgICcqLmQudHMnLFxuICAgICAgICAgICdub2RlX21vZHVsZXMvJyxcbiAgICAgICAgICAnKi5nZW5lcmF0ZWQudHMnLFxuICAgICAgICAgICdzcmMvKiovKi1oYW5kbGVyL2luZGV4LnRzJywgLy8gaWdub3JlIGhhbmRsZXIgZmlsZXMuXG4gICAgICAgIF0sXG4gICAgICAgIHByZXR0aWVyOiB0cnVlLFxuICAgICAgfSxcblxuICAgICAgcHJldHRpZXI6IHRydWUsXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICBwcmludFdpZHRoOiAxMjAsXG4gICAgICAgICAgc2luZ2xlUXVvdGU6IHRydWUsXG4gICAgICAgICAgdHJhaWxpbmdDb21tYTogamF2YXNjcmlwdC5UcmFpbGluZ0NvbW1hLkFMTCxcbiAgICAgICAgICBzZW1pOiB0cnVlLFxuICAgICAgICAgIHF1b3RlUHJvcHM6IGphdmFzY3JpcHQuUXVvdGVQcm9wcy5DT05TSVNURU5ULFxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmVGaWxlT3B0aW9uczoge1xuICAgICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbXG4gICAgICAgICAgICAnZGlzdCcsXG4gICAgICAgICAgICAnbm9kZV9tb2R1bGVzJyxcbiAgICAgICAgICAgICdjb3ZlcmFnZScsXG4gICAgICAgICAgICAnY2RrLm91dCcsXG4gICAgICAgICAgICAnLmNsYXVkZScsXG4gICAgICAgICAgICAnLnlhcm4nLFxuICAgICAgICAgICAgJy5wbnAuY2pzJyxcbiAgICAgICAgICAgICcuZXNsaW50cmMuanNvbicsXG4gICAgICAgICAgICAnLnByZS1jb21taXQtY29uZmlnLnlhbWwnLFxuICAgICAgICAgICAgJ2Nkay5qc29uJyxcbiAgICAgICAgICAgICd0c2NvbmZpZy5kZXYuanNvbicsXG4gICAgICAgICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBnaXRpZ25vcmU6IFtcbiAgICAgICAgLy8gSURFXG4gICAgICAgICcuY29kZScsXG4gICAgICAgICcuaWRlYScsXG4gICAgICAgIC8vIFR5cGVzY3JpcHQgZmlsZXNcbiAgICAgICAgJyouZC50cycsXG4gICAgICAgICcqLmpzJyxcbiAgICAgICAgJyouanMubWFwJyxcbiAgICAgICAgJ2Rpc3QnLFxuICAgICAgICAvLyBQeXRob25cbiAgICAgICAgJ3ZlbnYnLFxuICAgICAgICAnX19weWNhY2hlX18vJyxcbiAgICAgICAgLy8gQ0RLIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5XG4gICAgICAgICcuY2RrLnN0YWdpbmcnLFxuICAgICAgICAnY2RrLm91dCcsXG4gICAgICAgIC8vIFlhcm5cbiAgICAgICAgJy5wbnAuKicsXG4gICAgICAgICcueWFybi8qJyxcbiAgICAgICAgJyEueWFybi9wYXRjaGVzJyxcbiAgICAgICAgJyEueWFybi9wbHVnaW5zJyxcbiAgICAgICAgJyEueWFybi9yZWxlYXNlcycsXG4gICAgICAgICchLnlhcm4vc2RrcycsXG4gICAgICAgIC8vIFJvY2tldGxlYXAgcmVsZWFzZSBmaWxlc1xuICAgICAgICAncmVsZWFzZS5kaWZmJyxcbiAgICAgICAgLy8gQUlcbiAgICAgICAgJy5jbGF1ZGUnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29tcGFueSA9IGNvbXBhbnk7XG4gICAgdGhpcy5wcm9qZWN0TmFtZSA9IHByb2plY3Q7XG5cbiAgICB0aGlzLmNvbmZpZ3VyZVBhY2thZ2VKc29uKCk7XG4gICAgdGhpcy5jb25maWd1cmVFc2xpbnQoKTtcbiAgICB0aGlzLmNyZWF0ZVByZUNvbW1pdENvbmZpZygpO1xuICAgIHRoaXMuY29uZmlndXJlQ2RrSnNvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVQYWNrYWdlSnNvbigpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFNjcmlwdHMoe1xuICAgICAgZm9ybWF0OiBcInByZXR0aWVyIC0td3JpdGUgLiAnISoqLyoue2pzLGQudHN9J1wiLFxuICAgICAgJ2Zvcm1hdDpjaSc6IFwicHJldHRpZXIgLWMgLiAnISoqLyoue2pzLGQudHN9J1wiLFxuICAgICAgbGludDogJ2VzbGludCAtLWZpeCAuJyxcbiAgICAgICdsaW50OmNpJzogJ2VzbGludCAtLW1heC13YXJuaW5ncz0wIC4nLFxuICAgICAgYnVpbGQ6ICd0c2MnLFxuICAgICAgY2xlYW46ICdmaW5kIGJpbiBzcmMgdGVzdCAtdHlwZSBmIFxcXFwoIC1uYW1lIFwiKi5qc1wiIC1vIC1uYW1lIFwiKi5kLnRzXCIgXFxcXCkgLWRlbGV0ZScsXG4gICAgICB3YXRjaDogJ3RzYyAtdycsXG4gICAgICB0ZXN0OiAnamVzdCcsXG4gICAgICAndGVzdDpjaSc6ICdqZXN0IC0tY2kgLS1tYXhXb3JrZXJzPTInLFxuICAgICAgJ3Rlc3Q6dXBkYXRlLXNuYXBzaG90cyc6ICdqZXN0IC0tdXBkYXRlU25hcHNob3QnLFxuICAgICAgc3ludGg6ICdjZGsgc3ludGggLS1vdXRwdXQgY2RrLm91dC8kMC8gLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyBiaW4vJDAudHNcIjsnLFxuICAgICAgYm9vdHN0cmFwOiAnY2RrIGJvb3RzdHJhcCAtLW91dHB1dCBjZGsub3V0LyQwLyAtLWFwcCBcInlhcm4gdHMtbm9kZSAtLXByZWZlci10cy1leHRzIGJpbi8kMC50c1wiOycsXG4gICAgICBsaXN0OiAnY2RrIGxpc3QgLS1vdXRwdXQgY2RrLm91dC8kMC8gLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyBiaW4vJDAudHNcIjsnLFxuICAgICAgZGlmZjogJ2NkayBkaWZmIC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgYmluLyQwLnRzXCIgJHsxOi0tLWFsbH07JyxcbiAgICAgICdkaWZmOmNpJzogJ2NkayBkaWZmIC0tY2kgLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyAkMFwiOycsXG4gICAgICBkZXBsb3k6ICdjZGsgZGVwbG95IC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgYmluLyQwLnRzXCIgJHsxOi0tLWFsbH07JyxcbiAgICAgICdkZXBsb3k6Y2knOiAnY2RrIGRlcGxveSAtLWNpIC0tYWxsIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciAtLWFwcCBcInlhcm4gdHMtbm9kZSAtLXByZWZlci10cy1leHRzICQwXCI7JyxcbiAgICAgIGRlc3Ryb3k6ICdjZGsgZGVzdHJveSAtLW91dHB1dCBjZGsub3V0LyQwLyAtLWFwcCBcInlhcm4gdHMtbm9kZSAtLXByZWZlci10cy1leHRzIGJpbi8kMC50c1wiICR7MTotLS1hbGx9OycsXG4gICAgICAnZGVzdHJveTpjaSc6ICdjZGsgZGVzdHJveSAtLWNpIC1mIC0tYWxsIC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwICBcInlhcm4gIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyAkMFwiOycsXG4gICAgfSk7XG5cbiAgICB0aGlzLnBhY2thZ2UuYWRkRGV2RGVwcyguLi5bJ2VzbGludEBeOCcsICdlc2xpbnQtcGx1Z2luLWplc3RAXjI4LngueCddKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlRXNsaW50KCk6IHZvaWQge1xuICAgIHRoaXMuZXNsaW50IS5hZGRFeHRlbmRzKFxuICAgICAgLi4uW1xuICAgICAgICAnZXNsaW50OnJlY29tbWVuZGVkJyxcbiAgICAgICAgJ3BsdWdpbjpAdHlwZXNjcmlwdC1lc2xpbnQvcmVjb21tZW5kZWQnLFxuICAgICAgICAncGx1Z2luOmltcG9ydC90eXBlc2NyaXB0JyxcbiAgICAgICAgJ3BsdWdpbjpqZXN0L3JlY29tbWVuZGVkJyxcbiAgICAgICAgJ3ByZXR0aWVyJyxcbiAgICAgICAgJ3BsdWdpbjpwcmV0dGllci9yZWNvbW1lbmRlZCcsXG4gICAgICBdLFxuICAgICk7XG4gICAgdGhpcy5lc2xpbnQhLmFkZFBsdWdpbnMoLi4uWydAdHlwZXNjcmlwdC1lc2xpbnQnLCAnaW1wb3J0JywgJ2plc3QnLCAncHJldHRpZXInXSk7XG4gICAgdGhpcy5lc2xpbnQhLmFkZE92ZXJyaWRlKHtcbiAgICAgIGZpbGVzOiBbJyoudGVzdC50cyddLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2plc3QvZXhwZWN0LWV4cGVjdCc6ICdvZmYnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJlQ29tbWl0Q29uZmlnKCk6IHZvaWQge1xuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCAnLnByZS1jb21taXQtY29uZmlnLnlhbWwnLCB7XG4gICAgICBsaW5lczogW1xuICAgICAgICBgcmVwb3M6XG4gIC0gcmVwbzogbG9jYWxcbiAgICBob29rczpcbiAgICAgIC0gaWQ6IHlhcm4tcGFja2FnZVxuICAgICAgICBuYW1lOiBQYWNrYWdlc1xuICAgICAgICBlbnRyeTogc2ggLWMgXCJDST10cnVlIHlhcm5cIlxuICAgICAgICBsYW5ndWFnZTogc3lzdGVtXG4gICAgICAtIGlkOiB5YXJuLWZvcm1hdFxuICAgICAgICBuYW1lOiBGb3JtYXRcbiAgICAgICAgZW50cnk6IHNoIC1jIFwiQ0k9dHJ1ZSB5YXJuIGZvcm1hdDpjaVwiXG4gICAgICAgIGxhbmd1YWdlOiBzeXN0ZW1cbiAgICAgIC0gaWQ6IHlhcm4tbGludFxuICAgICAgICBuYW1lOiBMaW50XG4gICAgICAgIGVudHJ5OiBzaCAtYyBcIkNJPXRydWUgeWFybiBsaW50OmNpXCJcbiAgICAgICAgbGFuZ3VhZ2U6IHN5c3RlbVxuICAgICAgLSBpZDogeWFybi1idWlsZFxuICAgICAgICBuYW1lOiBCdWlsZFxuICAgICAgICBlbnRyeTogc2ggLWMgXCJDST10cnVlIHlhcm4gYnVpbGRcIlxuICAgICAgICBsYW5ndWFnZTogc3lzdGVtXG4gICAgICAtIGlkOiB5YXJuLXRlc3RcbiAgICAgICAgbmFtZTogVGVzdHNcbiAgICAgICAgZW50cnk6IHNoIC1jIFwiQ0k9dHJ1ZSB5YXJuIHRlc3Q6Y2lcIlxuICAgICAgICBsYW5ndWFnZTogc3lzdGVtXG4gIGAsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVDZGtKc29uKCk6IHZvaWQge1xuICAgIHRoaXMuY2RrQ29uZmlnLmpzb24ucGF0Y2goSnNvblBhdGNoLmFkZCgnL3ZlcnNpb25SZXBvcnRpbmcnLCBmYWxzZSkpO1xuICB9XG59XG4iXX0=
71
+ RocketleapCdkProject[_a] = { fqn: "@rocketleap/rocketleap-projen.RocketleapCdkProject", version: "0.0.6" };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBMkM7QUFDM0MsOENBQXlEO0FBQ3pELDRDQUF3RTtBQUN4RSxzQ0FBaUQ7QUFDakQsd0RBQTZEO0FBQzdELG9EQUFrRjtBQUNsRixnREFBMkQ7QUFDM0Qsd0NBQW1EO0FBcUNuRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7SUFDbEUsWUFBWSxPQUFvQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUM7UUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDO1FBQzlELE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLFNBQVMsQ0FBQztRQUV6RSxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxJQUFJLE9BQU8sSUFBSSxPQUFPLEVBQUU7WUFFckMsSUFBSSxFQUFFLENBQUMsd0NBQXdDLE9BQU8sd0JBQXdCLHFCQUFxQixFQUFFLENBQUM7WUFFdEcsVUFBVSxFQUFFLFVBQVU7WUFDdEIsaUJBQWlCLEVBQUUsZ0JBQWdCO1lBQ25DLGlCQUFpQixFQUFFLElBQUk7WUFFdkIsb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsU0FBUyxFQUFFLEtBQUs7YUFDakI7WUFDRCxtQkFBbUIsRUFBRSxLQUFLO1lBRTFCLFFBQVEsRUFBRSxLQUFLO1lBRWYsR0FBRyx5QkFBa0I7WUFDckIsR0FBRywrQkFBcUI7WUFDeEIsR0FBRyw2QkFBb0I7WUFDdkIsR0FBRyxpQ0FBc0I7WUFDekIsR0FBRyx1QkFBaUI7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsQ0FBQztRQUM5QixJQUFBLGtDQUFxQixFQUFDLElBQUksRUFBRSxpQ0FBb0IsQ0FBQyxDQUFDO1FBQ2xELElBQUEsbUNBQW9CLEVBQUMsSUFBSSxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxpRkFBaUY7WUFDMUYsV0FBVyxFQUFFLHFGQUFxRjtZQUNsRyxNQUFNLEVBQUUsZ0ZBQWdGO1lBQ3hGLE1BQU0sRUFBRSw0RkFBNEY7WUFDcEcsU0FBUyxFQUFFLHlEQUF5RDtZQUNwRSxRQUFRLEVBQUUsOEZBQThGO1lBQ3hHLFdBQVcsRUFBRSwwRkFBMEY7WUFDdkcsU0FBUyxFQUFFLCtGQUErRjtZQUMxRyxZQUFZLEVBQUUsNEZBQTRGO1NBQzNHLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7QUFyREgsb0RBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBKc29uUGF0Y2ggfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ09NUElMRV9DT05GSUdVUkFUSU9OIH0gZnJvbSAnLi9jb21tb24vY29tcGlsZSc7XG5pbXBvcnQgeyBjb25maWd1cmVFc0xpbnQsIEVTTElOVF9DT05GSUdVUkFUSU9OIH0gZnJvbSAnLi9jb21tb24vZXNsaW50JztcbmltcG9ydCB7IEdJVF9DT05GSUdVUkFUSU9OIH0gZnJvbSAnLi9jb21tb24vZ2l0JztcbmltcG9ydCB7IGNvbmZpZ3VyZVBhY2thZ2VKc29uIH0gZnJvbSAnLi9jb21tb24vcGFja2FnZS1qc29uJztcbmltcG9ydCB7IENES19QUkVfQ09NTUlUX0hPT0tTLCBjcmVhdGVQcmVDb21taXRDb25maWcgfSBmcm9tICcuL2NvbW1vbi9wcmUtY29tbWl0JztcbmltcG9ydCB7IFBSRVRUSUVSX0NPTkZJR1VSQVRJT04gfSBmcm9tICcuL2NvbW1vbi9wcmV0dGllcic7XG5pbXBvcnQgeyBZQVJOX0NPTkZJR1VSQVRJT04gfSBmcm9tICcuL2NvbW1vbi95YXJuJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBSb2NrZXRsZWFwQ2RrUHJvamVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvY2tldGxlYXBDZGtQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSBpZGVudGlmaWVyIHVzZWQgZm9yIHBhY2thZ2Ugc2NvcGluZy5cbiAgICogQGV4YW1wbGUgJ3JvY2tldGxlYXAnXG4gICAqL1xuICByZWFkb25seSBjb21wYW55OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0IG5hbWUuXG4gICAqIEBleGFtcGxlICdyb290LWNkaydcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBDREsgdmVyc2lvbiB0byB1c2UuXG4gICAqIEBkZWZhdWx0ICcyLjIzMy4wJ1xuICAgKi9cbiAgcmVhZG9ubHkgY2RrVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdHMgbGlicmFyeSB2ZXJzaW9uIHRvIHVzZS5cbiAgICogQGRlZmF1bHQgJzEwLjQuNCdcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBSb2NrZXRsZWFwIGJ1aWxkaW5nIGJsb2NrcyBDREsgdmVyc2lvbiB0byB1c2UuXG4gICAqIEBkZWZhdWx0ICcwLjEwNC4xJ1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRpbmdCbG9ja3NWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcHJvamVuIHByb2plY3QgZm9yIFJvY2tldGxlYXAgQ0RLIHByb2plY3RzLlxuICpcbiAqIFRoaXMgcHJvamVjdCB0eXBlIGdlbmVyYXRlcyBhIGZ1bGx5IGNvbmZpZ3VyZWQgQVdTIENESyBUeXBlU2NyaXB0IGFwcGxpY2F0aW9uXG4gKiB3aXRoIFJvY2tldGxlYXAncyBzdGFuZGFyZCBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBFU0xpbnQsIFByZXR0aWVyLCBZYXJuIEJlcnJ5LFxuICogYW5kIHByZS1jb21taXQgaG9va3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBSb2NrZXRsZWFwQ2RrUHJvamVjdCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogUm9ja2V0bGVhcENka1Byb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IG9wdGlvbnMuY29tcGFueTtcbiAgICBjb25zdCBwcm9qZWN0ID0gb3B0aW9ucy5wcm9qZWN0O1xuICAgIGNvbnN0IGNka1ZlcnNpb24gPSBvcHRpb25zLmNka1ZlcnNpb24gPz8gJzIuMjMyLjEnO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdFZlcnNpb24gPz8gJzEwLjQuNCc7XG4gICAgY29uc3QgYnVpbGRpbmdCbG9ja3NWZXJzaW9uID0gb3B0aW9ucy5idWlsZGluZ0Jsb2Nrc1ZlcnNpb24gPz8gJzAuMTA0LjEnO1xuXG4gICAgc3VwZXIoe1xuICAgICAgbmFtZTogcHJvamVjdCxcbiAgICAgIHBhY2thZ2VOYW1lOiBgQCR7Y29tcGFueX0vJHtwcm9qZWN0fWAsXG5cbiAgICAgIGRlcHM6IFtgQHJvY2tldGxlYXAvYnVpbGRpbmctYmxvY2tzLWNka0BucG06QCR7Y29tcGFueX0vYnVpbGRpbmctYmxvY2tzLWNka0Ake2J1aWxkaW5nQmxvY2tzVmVyc2lvbn1gXSxcblxuICAgICAgY2RrVmVyc2lvbjogY2RrVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uOiBjb25zdHJ1Y3RWZXJzaW9uLFxuICAgICAgY2RrVmVyc2lvblBpbm5pbmc6IHRydWUsXG5cbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgd29ya2Zsb3dzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlOiBmYWxzZSxcblxuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuXG4gICAgICAuLi5ZQVJOX0NPTkZJR1VSQVRJT04sXG4gICAgICAuLi5DT01QSUxFX0NPTkZJR1VSQVRJT04sXG4gICAgICAuLi5FU0xJTlRfQ09ORklHVVJBVElPTixcbiAgICAgIC4uLlBSRVRUSUVSX0NPTkZJR1VSQVRJT04sXG4gICAgICAuLi5HSVRfQ09ORklHVVJBVElPTixcbiAgICB9KTtcbiAgICBjb25maWd1cmVFc0xpbnQodGhpcy5lc2xpbnQhKTtcbiAgICBjcmVhdGVQcmVDb21taXRDb25maWcodGhpcywgQ0RLX1BSRV9DT01NSVRfSE9PS1MpO1xuICAgIGNvbmZpZ3VyZVBhY2thZ2VKc29uKHRoaXMsIHtcbiAgICAgICdzeW50aCc6ICdjZGsgc3ludGggLS1vdXRwdXQgY2RrLm91dC8kMC8gLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyBiaW4vJDAudHNcIjsnLFxuICAgICAgJ2Jvb3RzdHJhcCc6ICdjZGsgYm9vdHN0cmFwIC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgYmluLyQwLnRzXCI7JyxcbiAgICAgICdsaXN0JzogJ2NkayBsaXN0IC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgYmluLyQwLnRzXCI7JyxcbiAgICAgICdkaWZmJzogJ2NkayBkaWZmIC0tb3V0cHV0IGNkay5vdXQvJDAvIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgYmluLyQwLnRzXCIgJHsxOi0tLWFsbH07JyxcbiAgICAgICdkaWZmOmNpJzogJ2NkayBkaWZmIC0tY2kgLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyAkMFwiOycsXG4gICAgICAnZGVwbG95JzogJ2NkayBkZXBsb3kgLS1vdXRwdXQgY2RrLm91dC8kMC8gLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyBiaW4vJDAudHNcIiAkezE6LS0tYWxsfTsnLFxuICAgICAgJ2RlcGxveTpjaSc6ICdjZGsgZGVwbG95IC0tY2kgLS1hbGwgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tYXBwIFwieWFybiB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgJDBcIjsnLFxuICAgICAgJ2Rlc3Ryb3knOiAnY2RrIGRlc3Ryb3kgLS1vdXRwdXQgY2RrLm91dC8kMC8gLS1hcHAgXCJ5YXJuIHRzLW5vZGUgLS1wcmVmZXItdHMtZXh0cyBiaW4vJDAudHNcIiAkezE6LS0tYWxsfTsnLFxuICAgICAgJ2Rlc3Ryb3k6Y2knOiAnY2RrIGRlc3Ryb3kgLS1jaSAtZiAtLWFsbCAtLW91dHB1dCBjZGsub3V0LyQwLyAtLWFwcCAgXCJ5YXJuICB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgJDBcIjsnLFxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlndXJlQ2RrSnNvbigpO1xuICAgIHRoaXMucGFja2FnZS5hZGREZXBzKGBDb25zdHJ1Y3RAPSR7Y29uc3RydWN0VmVyc2lvbn1gKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQ2RrSnNvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNka0NvbmZpZy5qc29uLnBhdGNoKEpzb25QYXRjaC5hZGQoJy92ZXJzaW9uUmVwb3J0aW5nJywgZmFsc2UpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ /**
2
+ * GitHub Actions configuration for Rocketleap projects
3
+ */
4
+ export declare const ACTIONS_CONFIGURATION: {
5
+ /**
6
+ * Common workflow bootstrap steps for GitHub Actions
7
+ */
8
+ workflowBootstrapSteps: {
9
+ name: string;
10
+ run: string;
11
+ }[];
12
+ /**
13
+ * Pre-publish steps for npm releases
14
+ */
15
+ npmPrePublishSteps: ({
16
+ name: string;
17
+ run: string;
18
+ uses?: undefined;
19
+ with?: undefined;
20
+ } | {
21
+ name: string;
22
+ uses: string;
23
+ with: {
24
+ path: string;
25
+ };
26
+ run?: undefined;
27
+ })[];
28
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACTIONS_CONFIGURATION = void 0;
4
+ /**
5
+ * GitHub Actions configuration for Rocketleap projects
6
+ */
7
+ exports.ACTIONS_CONFIGURATION = {
8
+ /**
9
+ * Common workflow bootstrap steps for GitHub Actions
10
+ */
11
+ workflowBootstrapSteps: [
12
+ {
13
+ name: 'Enable Corepack',
14
+ run: 'corepack enable',
15
+ },
16
+ ],
17
+ /**
18
+ * Pre-publish steps for npm releases
19
+ */
20
+ npmPrePublishSteps: [
21
+ {
22
+ name: 'Enable Corepack',
23
+ run: 'corepack enable',
24
+ },
25
+ {
26
+ name: 'Checkout',
27
+ uses: 'actions/checkout@v5',
28
+ with: {
29
+ path: '.repo',
30
+ },
31
+ },
32
+ {
33
+ name: 'Install Dependencies',
34
+ run: 'cd .repo && yarn install --immutable',
35
+ },
36
+ {
37
+ name: 'Extract build artifact',
38
+ run: 'tar --strip-components=1 -xzvf dist/js/*.tgz -C .repo',
39
+ },
40
+ {
41
+ name: 'Move build artifact out of the way',
42
+ run: 'mv dist dist.old',
43
+ },
44
+ {
45
+ name: 'Create js artifact',
46
+ run: 'cd .repo && npx projen package:js',
47
+ },
48
+ {
49
+ name: 'Collect js artifact',
50
+ run: 'mv .repo/dist dist',
51
+ },
52
+ ],
53
+ };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUc7SUFDbkM7O09BRUc7SUFDSCxzQkFBc0IsRUFBRTtRQUN0QjtZQUNFLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsR0FBRyxFQUFFLGlCQUFpQjtTQUN2QjtLQUNGO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsRUFBRTtRQUNsQjtZQUNFLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsR0FBRyxFQUFFLGlCQUFpQjtTQUN2QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLEdBQUcsRUFBRSxzQ0FBc0M7U0FDNUM7UUFDRDtZQUNFLElBQUksRUFBRSx3QkFBd0I7WUFDOUIsR0FBRyxFQUFFLHVEQUF1RDtTQUM3RDtRQUNEO1lBQ0UsSUFBSSxFQUFFLG9DQUFvQztZQUMxQyxHQUFHLEVBQUUsa0JBQWtCO1NBQ3hCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLEdBQUcsRUFBRSxtQ0FBbUM7U0FDekM7UUFDRDtZQUNFLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsR0FBRyxFQUFFLG9CQUFvQjtTQUMxQjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l0SHViIEFjdGlvbnMgY29uZmlndXJhdGlvbiBmb3IgUm9ja2V0bGVhcCBwcm9qZWN0c1xuICovXG5leHBvcnQgY29uc3QgQUNUSU9OU19DT05GSUdVUkFUSU9OID0ge1xuICAvKipcbiAgICogQ29tbW9uIHdvcmtmbG93IGJvb3RzdHJhcCBzdGVwcyBmb3IgR2l0SHViIEFjdGlvbnNcbiAgICovXG4gIHdvcmtmbG93Qm9vdHN0cmFwU3RlcHM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAnRW5hYmxlIENvcmVwYWNrJyxcbiAgICAgIHJ1bjogJ2NvcmVwYWNrIGVuYWJsZScsXG4gICAgfSxcbiAgXSxcblxuICAvKipcbiAgICogUHJlLXB1Ymxpc2ggc3RlcHMgZm9yIG5wbSByZWxlYXNlc1xuICAgKi9cbiAgbnBtUHJlUHVibGlzaFN0ZXBzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0VuYWJsZSBDb3JlcGFjaycsXG4gICAgICBydW46ICdjb3JlcGFjayBlbmFibGUnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY1JyxcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgcGF0aDogJy5yZXBvJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnSW5zdGFsbCBEZXBlbmRlbmNpZXMnLFxuICAgICAgcnVuOiAnY2QgLnJlcG8gJiYgeWFybiBpbnN0YWxsIC0taW1tdXRhYmxlJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdFeHRyYWN0IGJ1aWxkIGFydGlmYWN0JyxcbiAgICAgIHJ1bjogJ3RhciAtLXN0cmlwLWNvbXBvbmVudHM9MSAteHp2ZiBkaXN0L2pzLyoudGd6IC1DIC5yZXBvJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5JyxcbiAgICAgIHJ1bjogJ212IGRpc3QgZGlzdC5vbGQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0NyZWF0ZSBqcyBhcnRpZmFjdCcsXG4gICAgICBydW46ICdjZCAucmVwbyAmJiBucHggcHJvamVuIHBhY2thZ2U6anMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0NvbGxlY3QganMgYXJ0aWZhY3QnLFxuICAgICAgcnVuOiAnbXYgLnJlcG8vZGlzdCBkaXN0JyxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export declare const COMPILE_CONFIGURATION: {
2
+ tsconfig: {
3
+ compilerOptions: {
4
+ rootDir: string;
5
+ outDir: string;
6
+ };
7
+ include: string[];
8
+ exclude: string[];
9
+ };
10
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMPILE_CONFIGURATION = void 0;
4
+ exports.COMPILE_CONFIGURATION = {
5
+ tsconfig: {
6
+ compilerOptions: {
7
+ rootDir: '.',
8
+ outDir: 'dist',
9
+ },
10
+ include: ['bin/**/*ts', 'src/**/*.ts'],
11
+ exclude: ['cdk.out', 'node_modules'],
12
+ },
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vY29tcGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHFCQUFxQixHQUFHO0lBQ25DLFFBQVEsRUFBRTtRQUNSLGVBQWUsRUFBRTtZQUNmLE9BQU8sRUFBRSxHQUFHO1lBQ1osTUFBTSxFQUFFLE1BQU07U0FDZjtRQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7UUFDdEMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQztLQUNyQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09NUElMRV9DT05GSUdVUkFUSU9OID0ge1xuICB0c2NvbmZpZzoge1xuICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgcm9vdERpcjogJy4nLFxuICAgICAgb3V0RGlyOiAnZGlzdCcsXG4gICAgfSxcbiAgICBpbmNsdWRlOiBbJ2Jpbi8qKi8qdHMnLCAnc3JjLyoqLyoudHMnXSxcbiAgICBleGNsdWRlOiBbJ2Nkay5vdXQnLCAnbm9kZV9tb2R1bGVzJ10sXG4gIH0sXG59O1xuIl19
@@ -0,0 +1,15 @@
1
+ import { javascript } from 'projen';
2
+ import { EslintOptions } from 'projen/lib/javascript';
3
+ interface EsLintConfiguration {
4
+ eslint: boolean;
5
+ eslintOptions: EslintOptions;
6
+ }
7
+ /**
8
+ * ESLint/Lint configuration for Rocketleap projects
9
+ */
10
+ export declare const ESLINT_CONFIGURATION: EsLintConfiguration;
11
+ /**
12
+ * Configures ESLint with Rocketleap's standard extends, plugins, and overrides
13
+ */
14
+ export declare function configureEsLint(eslint: javascript.Eslint): void;
15
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESLINT_CONFIGURATION = void 0;
4
+ exports.configureEsLint = configureEsLint;
5
+ /**
6
+ * ESLint/Lint configuration for Rocketleap projects
7
+ */
8
+ exports.ESLINT_CONFIGURATION = {
9
+ eslint: true,
10
+ eslintOptions: {
11
+ dirs: ['src'],
12
+ ignorePatterns: [
13
+ // Build artifacts and generated files
14
+ '*.js',
15
+ '*.d.ts',
16
+ 'node_modules/',
17
+ 'dist/',
18
+ 'lib/',
19
+ 'coverage/',
20
+ '*.generated.ts',
21
+ // Projen-generated files
22
+ 'package.json',
23
+ 'tsconfig.json',
24
+ 'tsconfig.dev.json',
25
+ '.eslintrc.json',
26
+ 'jest.config.json',
27
+ // CDK-specific files
28
+ 'cdk.out/',
29
+ 'cdk.json',
30
+ // Handler files
31
+ 'src/**/*-handler/index.ts',
32
+ ],
33
+ prettier: true,
34
+ },
35
+ };
36
+ /**
37
+ * Configures ESLint with Rocketleap's standard extends, plugins, and overrides
38
+ */
39
+ function configureEsLint(eslint) {
40
+ eslint.addExtends(...[
41
+ 'eslint:recommended',
42
+ 'plugin:@typescript-eslint/recommended',
43
+ 'plugin:import/typescript',
44
+ 'plugin:jest/recommended',
45
+ 'prettier',
46
+ 'plugin:prettier/recommended',
47
+ ]);
48
+ eslint.addPlugins(...['@typescript-eslint', 'import', 'jest', 'prettier']);
49
+ eslint.addOverride({
50
+ files: ['*.test.ts'],
51
+ rules: {
52
+ 'jest/expect-expect': 'off',
53
+ },
54
+ });
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9lc2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkNBLDBDQWtCQztBQXJERDs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQXdCO0lBQ3ZELE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2IsY0FBYyxFQUFFO1lBQ2Qsc0NBQXNDO1lBQ3RDLE1BQU07WUFDTixRQUFRO1lBQ1IsZUFBZTtZQUNmLE9BQU87WUFDUCxNQUFNO1lBQ04sV0FBVztZQUNYLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsY0FBYztZQUNkLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDckIsVUFBVTtZQUNWLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsMkJBQTJCO1NBQzVCO1FBQ0QsUUFBUSxFQUFFLElBQUk7S0FDZjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUF5QjtJQUN2RCxNQUFNLENBQUMsVUFBVSxDQUNmLEdBQUc7UUFDRCxvQkFBb0I7UUFDcEIsdUNBQXVDO1FBQ3ZDLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsVUFBVTtRQUNWLDZCQUE2QjtLQUM5QixDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUNqQixLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDcEIsS0FBSyxFQUFFO1lBQ0wsb0JBQW9CLEVBQUUsS0FBSztTQUM1QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEVzbGludE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuXG5pbnRlcmZhY2UgRXNMaW50Q29uZmlndXJhdGlvbiB7XG4gIGVzbGludDogYm9vbGVhbjtcbiAgZXNsaW50T3B0aW9uczogRXNsaW50T3B0aW9ucztcbn1cblxuLyoqXG4gKiBFU0xpbnQvTGludCBjb25maWd1cmF0aW9uIGZvciBSb2NrZXRsZWFwIHByb2plY3RzXG4gKi9cbmV4cG9ydCBjb25zdCBFU0xJTlRfQ09ORklHVVJBVElPTjogRXNMaW50Q29uZmlndXJhdGlvbiA9IHtcbiAgZXNsaW50OiB0cnVlLFxuICBlc2xpbnRPcHRpb25zOiB7XG4gICAgZGlyczogWydzcmMnXSxcbiAgICBpZ25vcmVQYXR0ZXJuczogW1xuICAgICAgLy8gQnVpbGQgYXJ0aWZhY3RzIGFuZCBnZW5lcmF0ZWQgZmlsZXNcbiAgICAgICcqLmpzJyxcbiAgICAgICcqLmQudHMnLFxuICAgICAgJ25vZGVfbW9kdWxlcy8nLFxuICAgICAgJ2Rpc3QvJyxcbiAgICAgICdsaWIvJyxcbiAgICAgICdjb3ZlcmFnZS8nLFxuICAgICAgJyouZ2VuZXJhdGVkLnRzJyxcbiAgICAgIC8vIFByb2plbi1nZW5lcmF0ZWQgZmlsZXNcbiAgICAgICdwYWNrYWdlLmpzb24nLFxuICAgICAgJ3RzY29uZmlnLmpzb24nLFxuICAgICAgJ3RzY29uZmlnLmRldi5qc29uJyxcbiAgICAgICcuZXNsaW50cmMuanNvbicsXG4gICAgICAnamVzdC5jb25maWcuanNvbicsXG4gICAgICAvLyBDREstc3BlY2lmaWMgZmlsZXNcbiAgICAgICdjZGsub3V0LycsXG4gICAgICAnY2RrLmpzb24nLFxuICAgICAgLy8gSGFuZGxlciBmaWxlc1xuICAgICAgJ3NyYy8qKi8qLWhhbmRsZXIvaW5kZXgudHMnLFxuICAgIF0sXG4gICAgcHJldHRpZXI6IHRydWUsXG4gIH0sXG59O1xuXG4vKipcbiAqIENvbmZpZ3VyZXMgRVNMaW50IHdpdGggUm9ja2V0bGVhcCdzIHN0YW5kYXJkIGV4dGVuZHMsIHBsdWdpbnMsIGFuZCBvdmVycmlkZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUVzTGludChlc2xpbnQ6IGphdmFzY3JpcHQuRXNsaW50KTogdm9pZCB7XG4gIGVzbGludC5hZGRFeHRlbmRzKFxuICAgIC4uLltcbiAgICAgICdlc2xpbnQ6cmVjb21tZW5kZWQnLFxuICAgICAgJ3BsdWdpbjpAdHlwZXNjcmlwdC1lc2xpbnQvcmVjb21tZW5kZWQnLFxuICAgICAgJ3BsdWdpbjppbXBvcnQvdHlwZXNjcmlwdCcsXG4gICAgICAncGx1Z2luOmplc3QvcmVjb21tZW5kZWQnLFxuICAgICAgJ3ByZXR0aWVyJyxcbiAgICAgICdwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWQnLFxuICAgIF0sXG4gICk7XG4gIGVzbGludC5hZGRQbHVnaW5zKC4uLlsnQHR5cGVzY3JpcHQtZXNsaW50JywgJ2ltcG9ydCcsICdqZXN0JywgJ3ByZXR0aWVyJ10pO1xuICBlc2xpbnQuYWRkT3ZlcnJpZGUoe1xuICAgIGZpbGVzOiBbJyoudGVzdC50cyddLFxuICAgIHJ1bGVzOiB7XG4gICAgICAnamVzdC9leHBlY3QtZXhwZWN0JzogJ29mZicsXG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Git configuration for Rocketleap projects
3
+ */
4
+ export declare const GIT_CONFIGURATION: {
5
+ gitignore: string[];
6
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GIT_CONFIGURATION = void 0;
4
+ /**
5
+ * Git configuration for Rocketleap projects
6
+ */
7
+ exports.GIT_CONFIGURATION = {
8
+ gitignore: [
9
+ // IDE files
10
+ '.code',
11
+ '.idea',
12
+ '.vscode',
13
+ // TypeScript build artifacts
14
+ '*.d.ts',
15
+ '*.js',
16
+ '*.js.map',
17
+ 'dist/',
18
+ // Yarn
19
+ '.pnp.*',
20
+ '.yarn/*',
21
+ '!.yarn/patches',
22
+ '!.yarn/plugins',
23
+ '!.yarn/releases',
24
+ '!.yarn/sdks',
25
+ // Other
26
+ '.claude/',
27
+ 'coverage/',
28
+ // Python
29
+ 'venv',
30
+ '__pycache__/',
31
+ // CDK asset staging directory
32
+ '.cdk.staging',
33
+ 'cdk.out',
34
+ // Rocketleap release files
35
+ 'release.diff',
36
+ ],
37
+ };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9naXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLFNBQVMsRUFBRTtRQUNULFlBQVk7UUFDWixPQUFPO1FBQ1AsT0FBTztRQUNQLFNBQVM7UUFDVCw2QkFBNkI7UUFDN0IsUUFBUTtRQUNSLE1BQU07UUFDTixVQUFVO1FBQ1YsT0FBTztRQUNQLE9BQU87UUFDUCxRQUFRO1FBQ1IsU0FBUztRQUNULGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixRQUFRO1FBQ1IsVUFBVTtRQUNWLFdBQVc7UUFDWCxTQUFTO1FBQ1QsTUFBTTtRQUNOLGNBQWM7UUFDZCw4QkFBOEI7UUFDOUIsY0FBYztRQUNkLFNBQVM7UUFDVCwyQkFBMkI7UUFDM0IsY0FBYztLQUNmO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l0IGNvbmZpZ3VyYXRpb24gZm9yIFJvY2tldGxlYXAgcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IEdJVF9DT05GSUdVUkFUSU9OID0ge1xuICBnaXRpZ25vcmU6IFtcbiAgICAvLyBJREUgZmlsZXNcbiAgICAnLmNvZGUnLFxuICAgICcuaWRlYScsXG4gICAgJy52c2NvZGUnLFxuICAgIC8vIFR5cGVTY3JpcHQgYnVpbGQgYXJ0aWZhY3RzXG4gICAgJyouZC50cycsXG4gICAgJyouanMnLFxuICAgICcqLmpzLm1hcCcsXG4gICAgJ2Rpc3QvJyxcbiAgICAvLyBZYXJuXG4gICAgJy5wbnAuKicsXG4gICAgJy55YXJuLyonLFxuICAgICchLnlhcm4vcGF0Y2hlcycsXG4gICAgJyEueWFybi9wbHVnaW5zJyxcbiAgICAnIS55YXJuL3JlbGVhc2VzJyxcbiAgICAnIS55YXJuL3Nka3MnLFxuICAgIC8vIE90aGVyXG4gICAgJy5jbGF1ZGUvJyxcbiAgICAnY292ZXJhZ2UvJyxcbiAgICAvLyBQeXRob25cbiAgICAndmVudicsXG4gICAgJ19fcHljYWNoZV9fLycsXG4gICAgLy8gQ0RLIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5XG4gICAgJy5jZGsuc3RhZ2luZycsXG4gICAgJ2Nkay5vdXQnLFxuICAgIC8vIFJvY2tldGxlYXAgcmVsZWFzZSBmaWxlc1xuICAgICdyZWxlYXNlLmRpZmYnLFxuICBdLFxufTtcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { NodeProject } from 'projen/lib/javascript/node-project';
2
+ export declare function configurePackageJson(project: NodeProject, additionalScripts: {
3
+ [name: string]: string;
4
+ }): void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configurePackageJson = configurePackageJson;
4
+ const DEFAULT_PACKAGE_COMMANDS = {
5
+ 'lint': 'eslint --fix .',
6
+ 'lint:ci': 'eslint --max-warnings=0 .',
7
+ 'clean': 'find bin src test -type f \\( -name "*.js" -o -name "*.d.ts" \\) -delete',
8
+ };
9
+ function configurePackageJson(project, additionalScripts) {
10
+ project.addScripts({
11
+ ...DEFAULT_PACKAGE_COMMANDS,
12
+ ...additionalScripts,
13
+ });
14
+ project.package.addDevDeps(...['eslint@^8', 'eslint-plugin-jest@^28.x.x']);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9wYWNrYWdlLWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvREFXQztBQWpCRCxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsU0FBUyxFQUFFLDJCQUEyQjtJQUN0QyxPQUFPLEVBQUUsMEVBQTBFO0NBQ3BGLENBQUM7QUFFRixTQUFnQixvQkFBb0IsQ0FDbEMsT0FBb0IsRUFDcEIsaUJBRUM7SUFFRCxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2pCLEdBQUcsd0JBQXdCO1FBQzNCLEdBQUcsaUJBQWlCO0tBQ3JCLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdC9ub2RlLXByb2plY3QnO1xuXG5jb25zdCBERUZBVUxUX1BBQ0tBR0VfQ09NTUFORFMgPSB7XG4gICdsaW50JzogJ2VzbGludCAtLWZpeCAuJyxcbiAgJ2xpbnQ6Y2knOiAnZXNsaW50IC0tbWF4LXdhcm5pbmdzPTAgLicsXG4gICdjbGVhbic6ICdmaW5kIGJpbiBzcmMgdGVzdCAtdHlwZSBmIFxcXFwoIC1uYW1lIFwiKi5qc1wiIC1vIC1uYW1lIFwiKi5kLnRzXCIgXFxcXCkgLWRlbGV0ZScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlUGFja2FnZUpzb24oXG4gIHByb2plY3Q6IE5vZGVQcm9qZWN0LFxuICBhZGRpdGlvbmFsU2NyaXB0czoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7XG4gIH0sXG4pOiB2b2lkIHtcbiAgcHJvamVjdC5hZGRTY3JpcHRzKHtcbiAgICAuLi5ERUZBVUxUX1BBQ0tBR0VfQ09NTUFORFMsXG4gICAgLi4uYWRkaXRpb25hbFNjcmlwdHMsXG4gIH0pO1xuICBwcm9qZWN0LnBhY2thZ2UuYWRkRGV2RGVwcyguLi5bJ2VzbGludEBeOCcsICdlc2xpbnQtcGx1Z2luLWplc3RAXjI4LngueCddKTtcbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Project } from 'projen';
2
+ /**
3
+ * Configuration for a pre-commit hook
4
+ */
5
+ export interface PreCommitHook {
6
+ /**
7
+ * The hook identifier
8
+ */
9
+ readonly id: string;
10
+ /**
11
+ * The display name for the hook
12
+ */
13
+ readonly name: string;
14
+ /**
15
+ * The command to execute
16
+ */
17
+ readonly entry: string;
18
+ /**
19
+ * Whether to pass filenames to the hook
20
+ * @default true
21
+ */
22
+ readonly passFilenames?: boolean;
23
+ }
24
+ /**
25
+ * Pre-commit hooks for CDK projects
26
+ */
27
+ export declare const CDK_PRE_COMMIT_HOOKS: PreCommitHook[];
28
+ /**
29
+ * Pre-commit hooks for JSII library projects
30
+ */
31
+ export declare const JSII_PRE_COMMIT_HOOKS: PreCommitHook[];
32
+ /**
33
+ * Creates a .pre-commit-config.yaml file with the specified hooks
34
+ */
35
+ export declare function createPreCommitConfig(project: Project, hooks: PreCommitHook[]): void;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSII_PRE_COMMIT_HOOKS = exports.CDK_PRE_COMMIT_HOOKS = void 0;
4
+ exports.createPreCommitConfig = createPreCommitConfig;
5
+ const projen_1 = require("projen");
6
+ /**
7
+ * Pre-commit hooks for CDK projects
8
+ */
9
+ exports.CDK_PRE_COMMIT_HOOKS = [
10
+ { id: 'yarn-package', name: 'Packages', entry: 'sh -c "CI=true yarn"' },
11
+ { id: 'yarn-format', name: 'Format', entry: 'sh -c "CI=true yarn format:ci"' },
12
+ { id: 'yarn-lint', name: 'Lint', entry: 'sh -c "CI=true yarn lint:ci"' },
13
+ { id: 'yarn-build', name: 'Build', entry: 'sh -c "CI=true yarn build"' },
14
+ { id: 'yarn-test', name: 'Tests', entry: 'sh -c "CI=true yarn test:ci"' },
15
+ ];
16
+ /**
17
+ * Pre-commit hooks for JSII library projects
18
+ */
19
+ exports.JSII_PRE_COMMIT_HOOKS = [
20
+ { id: 'yarn-eslint', name: 'ESLint', entry: 'sh -c "CI=true yarn eslint --max-warnings=0 ."', passFilenames: false },
21
+ { id: 'yarn-prettier', name: 'Prettier', entry: 'sh -c "CI=true yarn prettier --check ."', passFilenames: false },
22
+ { id: 'yarn-compile', name: 'Compile', entry: 'sh -c "CI=true yarn compile"', passFilenames: false },
23
+ { id: 'yarn-test', name: 'Test', entry: 'sh -c "CI=true yarn test"', passFilenames: false },
24
+ { id: 'yarn-package', name: 'Package', entry: 'sh -c "CI=true yarn package"', passFilenames: false },
25
+ ];
26
+ /**
27
+ * Creates a .pre-commit-config.yaml file with the specified hooks
28
+ */
29
+ function createPreCommitConfig(project, hooks) {
30
+ const hooksYaml = hooks
31
+ .map((hook) => {
32
+ const lines = [
33
+ ` - id: ${hook.id}`,
34
+ ` name: ${hook.name}`,
35
+ ` entry: ${hook.entry}`,
36
+ ` language: system`,
37
+ ];
38
+ if (hook.passFilenames === false) {
39
+ lines.push(' pass_filenames: false');
40
+ }
41
+ return lines.join('\n');
42
+ })
43
+ .join('\n');
44
+ new projen_1.TextFile(project, '.pre-commit-config.yaml', {
45
+ lines: [
46
+ `repos:
47
+ - repo: local
48
+ hooks:
49
+ ${hooksYaml}
50
+ `,
51
+ ],
52
+ });
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlLWNvbW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcHJlLWNvbW1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxREEsc0RBeUJDO0FBOUVELG1DQUEyQztBQTRCM0M7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFvQjtJQUNuRCxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7SUFDdkUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdDQUFnQyxFQUFFO0lBQzlFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRTtJQUN4RSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsNEJBQTRCLEVBQUU7SUFDeEUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLDhCQUE4QixFQUFFO0NBQzFFLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQW9CO0lBQ3BELEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxnREFBZ0QsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0lBQ3BILEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSx5Q0FBeUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0lBQ2pILEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0lBQ3BHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0lBQzNGLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO0NBQ3JHLENBQUM7QUFFRjs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLE9BQWdCLEVBQUUsS0FBc0I7SUFDNUUsTUFBTSxTQUFTLEdBQUcsS0FBSztTQUNwQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNaLE1BQU0sS0FBSyxHQUFHO1lBQ1osZUFBZSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ3hCLGlCQUFpQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzVCLGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzlCLDBCQUEwQjtTQUMzQixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVkLElBQUksaUJBQVEsQ0FBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUU7UUFDL0MsS0FBSyxFQUFFO1lBQ0w7OztFQUdKLFNBQVM7Q0FDVjtTQUNJO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QsIFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHByZS1jb21taXQgaG9va1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZUNvbW1pdEhvb2sge1xuICAvKipcbiAgICogVGhlIGhvb2sgaWRlbnRpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGhvb2tcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnk6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBwYXNzIGZpbGVuYW1lcyB0byB0aGUgaG9va1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXNzRmlsZW5hbWVzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcmUtY29tbWl0IGhvb2tzIGZvciBDREsgcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IENES19QUkVfQ09NTUlUX0hPT0tTOiBQcmVDb21taXRIb29rW10gPSBbXG4gIHsgaWQ6ICd5YXJuLXBhY2thZ2UnLCBuYW1lOiAnUGFja2FnZXMnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuXCInIH0sXG4gIHsgaWQ6ICd5YXJuLWZvcm1hdCcsIG5hbWU6ICdGb3JtYXQnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIGZvcm1hdDpjaVwiJyB9LFxuICB7IGlkOiAneWFybi1saW50JywgbmFtZTogJ0xpbnQnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIGxpbnQ6Y2lcIicgfSxcbiAgeyBpZDogJ3lhcm4tYnVpbGQnLCBuYW1lOiAnQnVpbGQnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIGJ1aWxkXCInIH0sXG4gIHsgaWQ6ICd5YXJuLXRlc3QnLCBuYW1lOiAnVGVzdHMnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIHRlc3Q6Y2lcIicgfSxcbl07XG5cbi8qKlxuICogUHJlLWNvbW1pdCBob29rcyBmb3IgSlNJSSBsaWJyYXJ5IHByb2plY3RzXG4gKi9cbmV4cG9ydCBjb25zdCBKU0lJX1BSRV9DT01NSVRfSE9PS1M6IFByZUNvbW1pdEhvb2tbXSA9IFtcbiAgeyBpZDogJ3lhcm4tZXNsaW50JywgbmFtZTogJ0VTTGludCcsIGVudHJ5OiAnc2ggLWMgXCJDST10cnVlIHlhcm4gZXNsaW50IC0tbWF4LXdhcm5pbmdzPTAgLlwiJywgcGFzc0ZpbGVuYW1lczogZmFsc2UgfSxcbiAgeyBpZDogJ3lhcm4tcHJldHRpZXInLCBuYW1lOiAnUHJldHRpZXInLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIHByZXR0aWVyIC0tY2hlY2sgLlwiJywgcGFzc0ZpbGVuYW1lczogZmFsc2UgfSxcbiAgeyBpZDogJ3lhcm4tY29tcGlsZScsIG5hbWU6ICdDb21waWxlJywgZW50cnk6ICdzaCAtYyBcIkNJPXRydWUgeWFybiBjb21waWxlXCInLCBwYXNzRmlsZW5hbWVzOiBmYWxzZSB9LFxuICB7IGlkOiAneWFybi10ZXN0JywgbmFtZTogJ1Rlc3QnLCBlbnRyeTogJ3NoIC1jIFwiQ0k9dHJ1ZSB5YXJuIHRlc3RcIicsIHBhc3NGaWxlbmFtZXM6IGZhbHNlIH0sXG4gIHsgaWQ6ICd5YXJuLXBhY2thZ2UnLCBuYW1lOiAnUGFja2FnZScsIGVudHJ5OiAnc2ggLWMgXCJDST10cnVlIHlhcm4gcGFja2FnZVwiJywgcGFzc0ZpbGVuYW1lczogZmFsc2UgfSxcbl07XG5cbi8qKlxuICogQ3JlYXRlcyBhIC5wcmUtY29tbWl0LWNvbmZpZy55YW1sIGZpbGUgd2l0aCB0aGUgc3BlY2lmaWVkIGhvb2tzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcmVDb21taXRDb25maWcocHJvamVjdDogUHJvamVjdCwgaG9va3M6IFByZUNvbW1pdEhvb2tbXSk6IHZvaWQge1xuICBjb25zdCBob29rc1lhbWwgPSBob29rc1xuICAgIC5tYXAoKGhvb2spID0+IHtcbiAgICAgIGNvbnN0IGxpbmVzID0gW1xuICAgICAgICBgICAgICAgLSBpZDogJHtob29rLmlkfWAsXG4gICAgICAgIGAgICAgICAgIG5hbWU6ICR7aG9vay5uYW1lfWAsXG4gICAgICAgIGAgICAgICAgIGVudHJ5OiAke2hvb2suZW50cnl9YCxcbiAgICAgICAgYCAgICAgICAgbGFuZ3VhZ2U6IHN5c3RlbWAsXG4gICAgICBdO1xuICAgICAgaWYgKGhvb2sucGFzc0ZpbGVuYW1lcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgbGluZXMucHVzaCgnICAgICAgICBwYXNzX2ZpbGVuYW1lczogZmFsc2UnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbiAgICB9KVxuICAgIC5qb2luKCdcXG4nKTtcblxuICBuZXcgVGV4dEZpbGUocHJvamVjdCwgJy5wcmUtY29tbWl0LWNvbmZpZy55YW1sJywge1xuICAgIGxpbmVzOiBbXG4gICAgICBgcmVwb3M6XG4gIC0gcmVwbzogbG9jYWxcbiAgICBob29rczpcbiR7aG9va3NZYW1sfVxuYCxcbiAgICBdLFxuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { javascript } from 'projen';
2
+ /**
3
+ * Prettier/Format configuration for Rocketleap projects
4
+ */
5
+ export declare const PRETTIER_CONFIGURATION: {
6
+ prettier: boolean;
7
+ prettierOptions: {
8
+ settings: {
9
+ printWidth: number;
10
+ singleQuote: boolean;
11
+ trailingComma: javascript.TrailingComma;
12
+ semi: boolean;
13
+ quoteProps: javascript.QuoteProps;
14
+ };
15
+ ignoreFileOptions: {
16
+ ignorePatterns: string[];
17
+ };
18
+ };
19
+ };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PRETTIER_CONFIGURATION = void 0;
4
+ const projen_1 = require("projen");
5
+ /**
6
+ * Prettier/Format configuration for Rocketleap projects
7
+ */
8
+ exports.PRETTIER_CONFIGURATION = {
9
+ prettier: true,
10
+ prettierOptions: {
11
+ settings: {
12
+ printWidth: 120,
13
+ singleQuote: true,
14
+ trailingComma: projen_1.javascript.TrailingComma.ALL,
15
+ semi: true,
16
+ quoteProps: projen_1.javascript.QuoteProps.CONSISTENT,
17
+ },
18
+ ignoreFileOptions: {
19
+ ignorePatterns: [
20
+ // Build artifacts
21
+ 'dist/',
22
+ 'lib/',
23
+ 'node_modules/',
24
+ 'coverage/',
25
+ '.yarn/',
26
+ // Projen-generated files
27
+ 'package.json',
28
+ 'tsconfig.json',
29
+ 'tsconfig.dev.json',
30
+ '.eslintrc.json',
31
+ '.prettierrc.json',
32
+ 'jest.config.json',
33
+ '.gitignore',
34
+ '.npmignore',
35
+ '.yarnrc.yml',
36
+ '.pre-commit-config.yaml',
37
+ '.github/',
38
+ '.mergify.yml',
39
+ // CDK-specific files
40
+ 'cdk.json',
41
+ 'cdk.out/',
42
+ '.cdk.staging/',
43
+ // Other
44
+ '.claude/',
45
+ '.pnp.cjs',
46
+ 'API.md',
47
+ ],
48
+ },
49
+ },
50
+ };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3ByZXR0aWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUVwQzs7R0FFRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsUUFBUSxFQUFFLElBQUk7SUFDZCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUU7WUFDUixVQUFVLEVBQUUsR0FBRztZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxtQkFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHO1lBQzNDLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLG1CQUFVLENBQUMsVUFBVSxDQUFDLFVBQVU7U0FDN0M7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQixjQUFjLEVBQUU7Z0JBQ2Qsa0JBQWtCO2dCQUNsQixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sZUFBZTtnQkFDZixXQUFXO2dCQUNYLFFBQVE7Z0JBQ1IseUJBQXlCO2dCQUN6QixjQUFjO2dCQUNkLGVBQWU7Z0JBQ2YsbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsa0JBQWtCO2dCQUNsQixZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYix5QkFBeUI7Z0JBQ3pCLFVBQVU7Z0JBQ1YsY0FBYztnQkFDZCxxQkFBcUI7Z0JBQ3JCLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixlQUFlO2dCQUNmLFFBQVE7Z0JBQ1IsVUFBVTtnQkFDVixVQUFVO2dCQUNWLFFBQVE7YUFDVDtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbi8qKlxuICogUHJldHRpZXIvRm9ybWF0IGNvbmZpZ3VyYXRpb24gZm9yIFJvY2tldGxlYXAgcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IFBSRVRUSUVSX0NPTkZJR1VSQVRJT04gPSB7XG4gIHByZXR0aWVyOiB0cnVlLFxuICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICBzZXR0aW5nczoge1xuICAgICAgcHJpbnRXaWR0aDogMTIwLFxuICAgICAgc2luZ2xlUXVvdGU6IHRydWUsXG4gICAgICB0cmFpbGluZ0NvbW1hOiBqYXZhc2NyaXB0LlRyYWlsaW5nQ29tbWEuQUxMLFxuICAgICAgc2VtaTogdHJ1ZSxcbiAgICAgIHF1b3RlUHJvcHM6IGphdmFzY3JpcHQuUXVvdGVQcm9wcy5DT05TSVNURU5ULFxuICAgIH0sXG4gICAgaWdub3JlRmlsZU9wdGlvbnM6IHtcbiAgICAgIGlnbm9yZVBhdHRlcm5zOiBbXG4gICAgICAgIC8vIEJ1aWxkIGFydGlmYWN0c1xuICAgICAgICAnZGlzdC8nLFxuICAgICAgICAnbGliLycsXG4gICAgICAgICdub2RlX21vZHVsZXMvJyxcbiAgICAgICAgJ2NvdmVyYWdlLycsXG4gICAgICAgICcueWFybi8nLFxuICAgICAgICAvLyBQcm9qZW4tZ2VuZXJhdGVkIGZpbGVzXG4gICAgICAgICdwYWNrYWdlLmpzb24nLFxuICAgICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAgICd0c2NvbmZpZy5kZXYuanNvbicsXG4gICAgICAgICcuZXNsaW50cmMuanNvbicsXG4gICAgICAgICcucHJldHRpZXJyYy5qc29uJyxcbiAgICAgICAgJ2plc3QuY29uZmlnLmpzb24nLFxuICAgICAgICAnLmdpdGlnbm9yZScsXG4gICAgICAgICcubnBtaWdub3JlJyxcbiAgICAgICAgJy55YXJucmMueW1sJyxcbiAgICAgICAgJy5wcmUtY29tbWl0LWNvbmZpZy55YW1sJyxcbiAgICAgICAgJy5naXRodWIvJyxcbiAgICAgICAgJy5tZXJnaWZ5LnltbCcsXG4gICAgICAgIC8vIENESy1zcGVjaWZpYyBmaWxlc1xuICAgICAgICAnY2RrLmpzb24nLFxuICAgICAgICAnY2RrLm91dC8nLFxuICAgICAgICAnLmNkay5zdGFnaW5nLycsXG4gICAgICAgIC8vIE90aGVyXG4gICAgICAgICcuY2xhdWRlLycsXG4gICAgICAgICcucG5wLmNqcycsXG4gICAgICAgICdBUEkubWQnLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { javascript } from 'projen';
2
+ /**
3
+ * Package manager configuration for Rocketleap projects
4
+ */
5
+ export declare const YARN_CONFIGURATION: {
6
+ packageManager: javascript.NodePackageManager;
7
+ yarnBerryOptions: {
8
+ version: string;
9
+ yarnRcOptions: javascript.YarnrcOptions;
10
+ };
11
+ };
12
+ /**
13
+ * Creates package manager configuration with company-specific npm scopes
14
+ */
15
+ export declare function createYarnConfiguration(company: string): {
16
+ packageManager: javascript.NodePackageManager;
17
+ yarnBerryOptions: {
18
+ version: string;
19
+ yarnRcOptions: javascript.YarnrcOptions;
20
+ };
21
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YARN_CONFIGURATION = void 0;
4
+ exports.createYarnConfiguration = createYarnConfiguration;
5
+ const projen_1 = require("projen");
6
+ /**
7
+ * Package manager configuration for Rocketleap projects
8
+ */
9
+ exports.YARN_CONFIGURATION = {
10
+ packageManager: projen_1.javascript.NodePackageManager.YARN_BERRY,
11
+ yarnBerryOptions: {
12
+ version: '4.9.2',
13
+ yarnRcOptions: {
14
+ compressionLevel: 'mixed',
15
+ enableGlobalCache: true,
16
+ nodeLinker: projen_1.javascript.YarnNodeLinker.NODE_MODULES,
17
+ },
18
+ },
19
+ };
20
+ /**
21
+ * Creates package manager configuration with company-specific npm scopes
22
+ */
23
+ function createYarnConfiguration(company) {
24
+ return {
25
+ packageManager: projen_1.javascript.NodePackageManager.YARN_BERRY,
26
+ yarnBerryOptions: {
27
+ version: '4.9.2',
28
+ yarnRcOptions: {
29
+ compressionLevel: 'mixed',
30
+ enableGlobalCache: true,
31
+ nodeLinker: projen_1.javascript.YarnNodeLinker.NODE_MODULES,
32
+ npmRegistries: {
33
+ 'https://npm.pkg.github.com/': {
34
+ npmAuthToken: '${GITHUB_TOKEN}',
35
+ },
36
+ },
37
+ npmScopes: {
38
+ [company]: {
39
+ npmRegistryServer: 'https://npm.pkg.github.com/',
40
+ npmAlwaysAuth: true,
41
+ },
42
+ },
43
+ },
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24veWFybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQkEsMERBdUJDO0FBM0NELG1DQUFvQztBQUVwQzs7R0FFRztBQUNVLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVTtJQUN4RCxnQkFBZ0IsRUFBRTtRQUNoQixPQUFPLEVBQUUsT0FBTztRQUNoQixhQUFhLEVBQUU7WUFDYixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsVUFBVSxFQUFFLG1CQUFVLENBQUMsY0FBYyxDQUFDLFlBQVk7U0FDdkI7S0FDOUI7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxPQUFlO0lBQ3JELE9BQU87UUFDTCxjQUFjLEVBQUUsbUJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVO1FBQ3hELGdCQUFnQixFQUFFO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixVQUFVLEVBQUUsbUJBQVUsQ0FBQyxjQUFjLENBQUMsWUFBWTtnQkFDbEQsYUFBYSxFQUFFO29CQUNiLDZCQUE2QixFQUFFO3dCQUM3QixZQUFZLEVBQUUsaUJBQWlCO3FCQUNoQztpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDVCxpQkFBaUIsRUFBRSw2QkFBNkI7d0JBQ2hELGFBQWEsRUFBRSxJQUFJO3FCQUNwQjtpQkFDRjthQUMwQjtTQUM5QjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbi8qKlxuICogUGFja2FnZSBtYW5hZ2VyIGNvbmZpZ3VyYXRpb24gZm9yIFJvY2tldGxlYXAgcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IFlBUk5fQ09ORklHVVJBVElPTiA9IHtcbiAgcGFja2FnZU1hbmFnZXI6IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQkVSUlksXG4gIHlhcm5CZXJyeU9wdGlvbnM6IHtcbiAgICB2ZXJzaW9uOiAnNC45LjInLFxuICAgIHlhcm5SY09wdGlvbnM6IHtcbiAgICAgIGNvbXByZXNzaW9uTGV2ZWw6ICdtaXhlZCcsXG4gICAgICBlbmFibGVHbG9iYWxDYWNoZTogdHJ1ZSxcbiAgICAgIG5vZGVMaW5rZXI6IGphdmFzY3JpcHQuWWFybk5vZGVMaW5rZXIuTk9ERV9NT0RVTEVTLFxuICAgIH0gYXMgamF2YXNjcmlwdC5ZYXJucmNPcHRpb25zLFxuICB9LFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIHBhY2thZ2UgbWFuYWdlciBjb25maWd1cmF0aW9uIHdpdGggY29tcGFueS1zcGVjaWZpYyBucG0gc2NvcGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVZYXJuQ29uZmlndXJhdGlvbihjb21wYW55OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWSxcbiAgICB5YXJuQmVycnlPcHRpb25zOiB7XG4gICAgICB2ZXJzaW9uOiAnNC45LjInLFxuICAgICAgeWFyblJjT3B0aW9uczoge1xuICAgICAgICBjb21wcmVzc2lvbkxldmVsOiAnbWl4ZWQnLFxuICAgICAgICBlbmFibGVHbG9iYWxDYWNoZTogdHJ1ZSxcbiAgICAgICAgbm9kZUxpbmtlcjogamF2YXNjcmlwdC5ZYXJuTm9kZUxpbmtlci5OT0RFX01PRFVMRVMsXG4gICAgICAgIG5wbVJlZ2lzdHJpZXM6IHtcbiAgICAgICAgICAnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20vJzoge1xuICAgICAgICAgICAgbnBtQXV0aFRva2VuOiAnJHtHSVRIVUJfVE9LRU59JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBucG1TY29wZXM6IHtcbiAgICAgICAgICBbY29tcGFueV06IHtcbiAgICAgICAgICAgIG5wbVJlZ2lzdHJ5U2VydmVyOiAnaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb20vJyxcbiAgICAgICAgICAgIG5wbUFsd2F5c0F1dGg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgamF2YXNjcmlwdC5ZYXJucmNPcHRpb25zLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1 +1,6 @@
1
1
  export * from './cdk-project';
2
+ export * as format from './common/prettier';
3
+ export * as lint from './common/eslint';
4
+ export * as packages from './common/yarn';
5
+ export * as git from './common/git';
6
+ export * as actions from './common/actions';
package/lib/index.js CHANGED
@@ -14,5 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.actions = exports.git = exports.packages = exports.lint = exports.format = void 0;
17
18
  __exportStar(require("./cdk-project"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2RrLXByb2plY3QnO1xuIl19
19
+ exports.format = require("./common/prettier");
20
+ exports.lint = require("./common/eslint");
21
+ exports.packages = require("./common/yarn");
22
+ exports.git = require("./common/git");
23
+ exports.actions = require("./common/actions");
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBOEI7QUFDOUIsOENBQTRDO0FBQzVDLDBDQUF3QztBQUN4Qyw0Q0FBMEM7QUFDMUMsc0NBQW9DO0FBQ3BDLDhDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2RrLXByb2plY3QnO1xuZXhwb3J0ICogYXMgZm9ybWF0IGZyb20gJy4vY29tbW9uL3ByZXR0aWVyJztcbmV4cG9ydCAqIGFzIGxpbnQgZnJvbSAnLi9jb21tb24vZXNsaW50JztcbmV4cG9ydCAqIGFzIHBhY2thZ2VzIGZyb20gJy4vY29tbW9uL3lhcm4nO1xuZXhwb3J0ICogYXMgZ2l0IGZyb20gJy4vY29tbW9uL2dpdCc7XG5leHBvcnQgKiBhcyBhY3Rpb25zIGZyb20gJy4vY29tbW9uL2FjdGlvbnMnO1xuIl19
package/package.json CHANGED
@@ -26,7 +26,10 @@
26
26
  "unbump": "npx projen unbump",
27
27
  "upgrade": "npx projen upgrade",
28
28
  "watch": "npx projen watch",
29
- "projen": "npx projen"
29
+ "projen": "npx projen",
30
+ "lint": "eslint --fix .",
31
+ "lint:ci": "eslint --max-warnings=0 .",
32
+ "clean": "find bin src test -type f \\( -name \"*.js\" -o -name \"*.d.ts\" \\) -delete"
30
33
  },
31
34
  "author": {
32
35
  "name": "Rocketleap",
@@ -40,10 +43,11 @@
40
43
  "@typescript-eslint/parser": "^8",
41
44
  "commit-and-tag-version": "^12",
42
45
  "constructs": "10.0.0",
43
- "eslint": "^9",
46
+ "eslint": "^8",
44
47
  "eslint-config-prettier": "^10.1.8",
45
48
  "eslint-import-resolver-typescript": "^4.4.4",
46
49
  "eslint-plugin-import": "^2.32.0",
50
+ "eslint-plugin-jest": "^28.x.x",
47
51
  "eslint-plugin-prettier": "^5.5.5",
48
52
  "jest": "^30.2.0",
49
53
  "jest-junit": "^16",
@@ -67,7 +71,7 @@
67
71
  "publishConfig": {
68
72
  "access": "public"
69
73
  },
70
- "version": "0.0.4",
74
+ "version": "0.0.6",
71
75
  "packageManager": "yarn@4.9.2",
72
76
  "jest": {
73
77
  "coverageProvider": "v8",