@rio-cloud/cdk-v2-constructs 7.13.2 → 7.13.4

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/docs/changelog.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [7.13.4](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.13.3&sourceBranch=refs%2Ftags%2Fv7.13.4) (2025-12-09)
6
+
7
+ ## [7.13.3](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.13.2&sourceBranch=refs%2Ftags%2Fv7.13.3) (2025-12-02)
8
+
5
9
  ## [7.13.2](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.13.1&sourceBranch=refs%2Ftags%2Fv7.13.2) (2025-11-25)
6
10
 
7
11
 
@@ -2,4 +2,5 @@ import { IGrantable } from 'aws-cdk-lib/aws-iam';
2
2
  import { Construct } from 'constructs';
3
3
  export declare class SonatypeOssIndexCredentials {
4
4
  static allowAccessTo(scope: Construct, target: IGrantable): void;
5
+ private static importedSecret;
5
6
  }
@@ -7,7 +7,7 @@ const iam = require("aws-cdk-lib/aws-iam");
7
7
  const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
8
8
  class SonatypeOssIndexCredentials {
9
9
  static allowAccessTo(scope, target) {
10
- const sonatypeSecret = secretsmanager.Secret.fromSecretPartialArn(scope, 'SonatypeOssIndexCredentialsSecret', 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials');
10
+ const sonatypeSecret = SonatypeOssIndexCredentials.importedSecret(scope);
11
11
  sonatypeSecret.grantRead(target);
12
12
  target.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({
13
13
  actions: [
@@ -27,8 +27,15 @@ class SonatypeOssIndexCredentials {
27
27
  },
28
28
  }));
29
29
  }
30
+ static importedSecret(scope) {
31
+ const existing = scope.node.tryFindChild('SonatypeOssIndexCredentialsSecret');
32
+ if (existing) {
33
+ return existing;
34
+ }
35
+ return secretsmanager.Secret.fromSecretPartialArn(scope, 'SonatypeOssIndexCredentialsSecret', 'arn:aws:secretsmanager:eu-west-1:577146897785:secret:/rio/config/sonatype-oss-index/credentials');
36
+ }
30
37
  }
31
38
  exports.SonatypeOssIndexCredentials = SonatypeOssIndexCredentials;
32
39
  _a = JSII_RTTI_SYMBOL_1;
33
40
  SonatypeOssIndexCredentials[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.SonatypeOssIndexCredentials", version: "0.0.0" };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXR5cGUtb3NzLWluZGV4LWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lhbS9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQ0FBMkM7QUFDM0MsaUVBQWlFO0FBR2pFLE1BQWEsMkJBQTJCO0lBRXRDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxNQUFrQjtRQUN2RCxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUMvRCxLQUFLLEVBQ0wsbUNBQW1DLEVBQ25DLGlHQUFpRyxDQUNsRyxDQUFDO1FBQ0YsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN4QyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsaUJBQWlCO2FBQ2xCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULDBDQUEwQzthQUMzQztZQUNELFVBQVUsRUFBRTtnQkFDVixjQUFjLEVBQUU7b0JBQ2QsZ0JBQWdCLEVBQUUsd0NBQXdDO2lCQUMzRDtnQkFDRCx3QkFBd0IsRUFBRTtvQkFDeEIscUJBQXFCLEVBQUUsMENBQTBDO2lCQUNsRTthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQTVCSCxrRUE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJR3JhbnRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBjbGFzcyBTb25hdHlwZU9zc0luZGV4Q3JlZGVudGlhbHMge1xuXG4gIHN0YXRpYyBhbGxvd0FjY2Vzc1RvKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogSUdyYW50YWJsZSkge1xuICAgIGNvbnN0IHNvbmF0eXBlU2VjcmV0ID0gc2VjcmV0c21hbmFnZXIuU2VjcmV0LmZyb21TZWNyZXRQYXJ0aWFsQXJuKFxuICAgICAgc2NvcGUsXG4gICAgICAnU29uYXR5cGVPc3NJbmRleENyZWRlbnRpYWxzU2VjcmV0JyxcbiAgICAgICdhcm46YXdzOnNlY3JldHNtYW5hZ2VyOmV1LXdlc3QtMTo1NzcxNDY4OTc3ODU6c2VjcmV0Oi9yaW8vY29uZmlnL3NvbmF0eXBlLW9zcy1pbmRleC9jcmVkZW50aWFscycsXG4gICAgKTtcbiAgICBzb25hdHlwZVNlY3JldC5ncmFudFJlYWQodGFyZ2V0KTtcbiAgICB0YXJnZXQuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAna21zOkRlY3J5cHQnLFxuICAgICAgICAgICdrbXM6RGVzY3JpYmVLZXknLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAnYXJuOmF3czprbXM6ZXUtd2VzdC0xOjU3NzE0Njg5Nzc4NTprZXkvKicsXG4gICAgICAgIF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAnU3RyaW5nRXF1YWxzJzoge1xuICAgICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogJ3NlY3JldHNtYW5hZ2VyLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAgICAgJ2ttczpSZXNvdXJjZUFsaWFzZXMnOiAnYWxpYXMvc29uYXR5cGUtb3NzLWluZGV4LWNyZWRlbnRpYWxzLWtleScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXR5cGUtb3NzLWluZGV4LWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lhbS9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQ0FBMkM7QUFDM0MsaUVBQWlFO0FBR2pFLE1BQWEsMkJBQTJCO0lBRXRDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxNQUFrQjtRQUN2RCxNQUFNLGNBQWMsR0FBRywyQkFBMkIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN4QyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsaUJBQWlCO2FBQ2xCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULDBDQUEwQzthQUMzQztZQUNELFVBQVUsRUFBRTtnQkFDVixjQUFjLEVBQUU7b0JBQ2QsZ0JBQWdCLEVBQUUsd0NBQXdDO2lCQUMzRDtnQkFDRCx3QkFBd0IsRUFBRTtvQkFDeEIscUJBQXFCLEVBQUUsMENBQTBDO2lCQUNsRTthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUM1QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPLFFBQWtDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDL0MsS0FBSyxFQUNMLG1DQUFtQyxFQUNuQyxpR0FBaUcsQ0FDbEcsQ0FBQztJQUNKLENBQUM7O0FBcENILGtFQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElHcmFudGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGNsYXNzIFNvbmF0eXBlT3NzSW5kZXhDcmVkZW50aWFscyB7XG5cbiAgc3RhdGljIGFsbG93QWNjZXNzVG8oc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0OiBJR3JhbnRhYmxlKSB7XG4gICAgY29uc3Qgc29uYXR5cGVTZWNyZXQgPSBTb25hdHlwZU9zc0luZGV4Q3JlZGVudGlhbHMuaW1wb3J0ZWRTZWNyZXQoc2NvcGUpO1xuICAgIHNvbmF0eXBlU2VjcmV0LmdyYW50UmVhZCh0YXJnZXQpO1xuICAgIHRhcmdldC5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdrbXM6RGVjcnlwdCcsXG4gICAgICAgICAgJ2ttczpEZXNjcmliZUtleScsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICdhcm46YXdzOmttczpldS13ZXN0LTE6NTc3MTQ2ODk3Nzg1OmtleS8qJyxcbiAgICAgICAgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICdTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiAnc2VjcmV0c21hbmFnZXIuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ0ZvckFueVZhbHVlOlN0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgICAna21zOlJlc291cmNlQWxpYXNlcyc6ICdhbGlhcy9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMta2V5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGltcG9ydGVkU2VjcmV0KHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHNjb3BlLm5vZGUudHJ5RmluZENoaWxkKCdTb25hdHlwZU9zc0luZGV4Q3JlZGVudGlhbHNTZWNyZXQnKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZyBhcyBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICAgIH1cbiAgICByZXR1cm4gc2VjcmV0c21hbmFnZXIuU2VjcmV0LmZyb21TZWNyZXRQYXJ0aWFsQXJuKFxuICAgICAgc2NvcGUsXG4gICAgICAnU29uYXR5cGVPc3NJbmRleENyZWRlbnRpYWxzU2VjcmV0JyxcbiAgICAgICdhcm46YXdzOnNlY3JldHNtYW5hZ2VyOmV1LXdlc3QtMTo1NzcxNDY4OTc3ODU6c2VjcmV0Oi9yaW8vY29uZmlnL3NvbmF0eXBlLW9zcy1pbmRleC9jcmVkZW50aWFscycsXG4gICAgKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "7.13.2",
18
+ "version": "7.13.4",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
@@ -69,7 +69,9 @@
69
69
  "release:push": "echo '✅ pushing release' && git push origin master --follow-tags",
70
70
  "release": "npm run release:check && npm run release:build",
71
71
  "release:alpha": "npm run release:check && npm run release:build:alpha",
72
- "release:dry-run": "npm run build && npm run docgen && npm run release:check && commit-and-tag-version -i docs/changelog.md -a --dry-run"
72
+ "release:dry-run": "npm run build && npm run docgen && npm run release:check && commit-and-tag-version -i docs/changelog.md -a --dry-run",
73
+ "set-package-version": "ts-node --project tsconfig.scripts.json scripts/set-package-version.ts",
74
+ "publish": "ts-node --project tsconfig.scripts.json scripts/publish.ts"
73
75
  },
74
76
  "devDependencies": {
75
77
  "@types/jest": "29.5.13",
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ts-node
2
+ import { spawnSync } from 'child_process';
3
+ import { readFileSync } from 'fs';
4
+ import path from 'path';
5
+
6
+ const PACKAGE_NAME = '@rio-cloud/cdk-v2-constructs';
7
+ const PACKAGE_JSON_PATH = path.resolve(__dirname, '..', 'package.json');
8
+
9
+ function run(command: string, args: string[], inheritOutput = true): number {
10
+ const result = spawnSync(command, args, { stdio: inheritOutput ? 'inherit' : 'ignore' });
11
+ if (result.error) {
12
+ throw result.error;
13
+ }
14
+ return result.status ?? 1;
15
+ }
16
+
17
+ function ensureTaggedCommit(): void {
18
+ const status = run('git', ['describe', '--tags', '--exact-match', 'HEAD'], false);
19
+ if (status !== 0) {
20
+ console.log('No tag found; skipping publish');
21
+ process.exit(0);
22
+ }
23
+ }
24
+
25
+ function getPackageVersion(): string {
26
+ const pkg = JSON.parse(readFileSync(PACKAGE_JSON_PATH, 'utf8')) as { version?: string };
27
+ if (!pkg.version) {
28
+ throw new Error('package.json must contain a version');
29
+ }
30
+ return pkg.version;
31
+ }
32
+
33
+ function ensureVersionNotPublished(version: string): void {
34
+ const status = run('npm', ['view', `${PACKAGE_NAME}@${version}`, 'version'], false);
35
+ if (status === 0) {
36
+ console.log(`✅ Version ${version} already exists, skipping publish`);
37
+ process.exit(0);
38
+ }
39
+ }
40
+
41
+ function publish(version: string): void {
42
+ console.log(`🚀 Publishing ${PACKAGE_NAME}@${version}`);
43
+ const status = run('npm', ['publish', '--access', 'public']);
44
+ if (status !== 0) {
45
+ console.error('npm publish failed. You might need to create a new token on npmjs.com');
46
+ process.exit(status);
47
+ }
48
+ }
49
+
50
+ function main(): void {
51
+ ensureTaggedCommit();
52
+ const version = getPackageVersion();
53
+ ensureVersionNotPublished(version);
54
+ publish(version);
55
+ }
56
+
57
+ main();
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ts-node
2
+ import { readFileSync, writeFileSync } from 'fs';
3
+ import path from 'path';
4
+
5
+ const rootDir = path.resolve(__dirname, '..');
6
+ const versionFile = path.join(rootDir, 'version.json');
7
+ const packageFile = path.join(rootDir, 'package.json');
8
+
9
+ type VersionFile = {
10
+ version?: string;
11
+ };
12
+
13
+ function main(): void {
14
+ const { version } = JSON.parse(readFileSync(versionFile, 'utf8')) as VersionFile;
15
+ if (!version) {
16
+ throw new Error('version.json must contain a version field');
17
+ }
18
+
19
+ const pkg = JSON.parse(readFileSync(packageFile, 'utf8')) as Record<string, unknown>;
20
+ const updated = { ...pkg, version };
21
+ writeFileSync(packageFile, `${JSON.stringify(updated, null, 2)}\n`, 'utf8');
22
+ }
23
+
24
+ main();
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "./tsconfig.dev.json",
3
+ "compilerOptions": {
4
+ "rootDir": ".",
5
+ "noEmit": true,
6
+ "esModuleInterop": true
7
+ },
8
+ "include": [
9
+ "scripts/**/*.ts"
10
+ ]
11
+ }
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "7.13.2"
2
+ "version": "7.13.4"
3
3
  }