cdk-rds-sql 8.2.0 → 9.0.1
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/.claude/hooks/lint +7 -2
- package/.jsii +5730 -62
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +30 -7
- package/biome.jsonc +66 -0
- package/lib/database.d.ts +2 -2
- package/lib/database.js +4 -4
- package/lib/handler/index.js +4433 -2742
- package/lib/iam-grant.d.ts +2 -2
- package/lib/iam-grant.js +2 -4
- package/lib/index.d.ts +4 -4
- package/lib/index.js +5 -5
- package/lib/provider.d.ts +5 -5
- package/lib/provider.js +58 -17
- package/lib/role.custom-resource.d.ts +3 -3
- package/lib/role.custom-resource.js +1 -1
- package/lib/role.d.ts +4 -4
- package/lib/role.js +53 -9
- package/lib/schema.d.ts +4 -4
- package/lib/schema.js +3 -4
- package/lib/sql.d.ts +3 -3
- package/lib/sql.js +2 -4
- package/node_modules/@types/aws-lambda/README.md +1 -1
- package/node_modules/@types/aws-lambda/package.json +3 -3
- package/node_modules/@types/aws-lambda/trigger/api-gateway-proxy.d.ts +5 -3
- package/package.json +29 -36
- package/.conform.yaml +0 -47
- package/.pre-commit-config.yaml +0 -75
- package/.prettierignore +0 -18
- package/.prettierrc.yaml +0 -8
package/AGENTS.md
CHANGED
|
@@ -46,7 +46,7 @@ pnpm exec projen test:watch
|
|
|
46
46
|
pnpm exec projen typecheck
|
|
47
47
|
|
|
48
48
|
# Run linting
|
|
49
|
-
pnpm exec projen
|
|
49
|
+
pnpm exec projen biome
|
|
50
50
|
|
|
51
51
|
# Build only the Lambda handler
|
|
52
52
|
pnpm exec projen build:handler
|
|
@@ -102,7 +102,7 @@ Projen tasks:
|
|
|
102
102
|
1. `pre-compile`: Transpiles Lambda handler using esbuild
|
|
103
103
|
2. `compile`: TypeScript compilation
|
|
104
104
|
3. `post-compile`: Copies handler to lib directory
|
|
105
|
-
4. `
|
|
105
|
+
4. `biome`: Runs formatting and linting
|
|
106
106
|
5. `typecheck`: Runs typecheck
|
|
107
107
|
|
|
108
108
|
## SSL/TLS Configuration
|
package/CLAUDE.md
CHANGED
|
@@ -46,7 +46,7 @@ pnpm exec projen test:watch
|
|
|
46
46
|
pnpm exec projen typecheck
|
|
47
47
|
|
|
48
48
|
# Run linting
|
|
49
|
-
pnpm exec projen
|
|
49
|
+
pnpm exec projen biome
|
|
50
50
|
|
|
51
51
|
# Build only the Lambda handler
|
|
52
52
|
pnpm exec projen build:handler
|
|
@@ -102,7 +102,7 @@ Projen tasks:
|
|
|
102
102
|
1. `pre-compile`: Transpiles Lambda handler using esbuild
|
|
103
103
|
2. `compile`: TypeScript compilation
|
|
104
104
|
3. `post-compile`: Copies handler to lib directory
|
|
105
|
-
4. `
|
|
105
|
+
4. `biome`: Runs formatting and linting
|
|
106
106
|
5. `typecheck`: Runs typecheck
|
|
107
107
|
|
|
108
108
|
## SSL/TLS Configuration
|
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@ environments, and works in isolated subnets.
|
|
|
16
16
|
# Requirements
|
|
17
17
|
|
|
18
18
|
- CDK v2.
|
|
19
|
+
- Node.js 22.14 or newer for consumers, as declared in `package.json`'s `engines`.
|
|
20
|
+
This is the library's supported minimum, independent of its development tools.
|
|
19
21
|
|
|
20
22
|
# Installation
|
|
21
23
|
|
|
@@ -543,17 +545,35 @@ const provider = new Provider(this, "Provider", {
|
|
|
543
545
|
|
|
544
546
|
# Working on this code
|
|
545
547
|
|
|
546
|
-
This code is managed by
|
|
547
|
-
[
|
|
548
|
-
|
|
548
|
+
This code is managed by [projen](https://github.com/projen/projen).
|
|
549
|
+
[mise](https://mise.jdx.dev/) installs Node 24, pnpm 12, and
|
|
550
|
+
[hk](https://hk.jdx.dev/) for Git hooks. Biome handles formatting and linting.
|
|
549
551
|
|
|
550
|
-
|
|
552
|
+
Development and CI use Node 24. Testcontainers is a development-only dependency;
|
|
553
|
+
its dependency tree requires newer APIs than the consumer minimum of Node 22.14.
|
|
551
554
|
|
|
555
|
+
After cloning:
|
|
556
|
+
|
|
557
|
+
```sh
|
|
558
|
+
mise trust
|
|
559
|
+
mise install
|
|
560
|
+
mise run setup
|
|
552
561
|
```
|
|
553
|
-
pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
|
|
554
|
-
```
|
|
555
562
|
|
|
556
|
-
|
|
563
|
+
When migrating an existing clone, replace the old pre-commit hooks with
|
|
564
|
+
`mise exec -- hk install --mise --force`.
|
|
565
|
+
|
|
566
|
+
Run all checks with `mise run check`, or format and lint with
|
|
567
|
+
`pnpm exec projen biome`. Tests require Docker. TypeScript stays on the
|
|
568
|
+
6.0 release line supported by jsii 6.0.
|
|
569
|
+
|
|
570
|
+
The pre-commit hook runs the full build, tests, and packaging, so Docker must
|
|
571
|
+
be running. When `VPC_ID` is set, changes under `src/` also run CDK synthesis
|
|
572
|
+
against that VPC; this requires AWS credentials. Unset `VPC_ID` to skip synthesis.
|
|
573
|
+
|
|
574
|
+
The development tsconfig uses `node16` module resolution, including package
|
|
575
|
+
exports. Jest tasks enable Node's VM module support for native dynamic imports
|
|
576
|
+
such as the MySQL driver import.
|
|
557
577
|
|
|
558
578
|
## Testing
|
|
559
579
|
|
|
@@ -561,6 +581,9 @@ Test code via projen with:
|
|
|
561
581
|
|
|
562
582
|
pnpm exec projen test
|
|
563
583
|
|
|
584
|
+
Tests do not update snapshots automatically. To intentionally refresh them, run
|
|
585
|
+
`pnpm exec projen test:update` and review the snapshot diff.
|
|
586
|
+
|
|
564
587
|
You can run the PostgreSQL sample stack with:
|
|
565
588
|
|
|
566
589
|
pnpm exec projen integ:deploy:postgresql:serverless
|
package/biome.jsonc
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// biome-ignore-all format: ~~ Generated by projen. To modify, edit .projenrc.ts and run "pnpm exec projen".
|
|
2
|
+
{
|
|
3
|
+
"assist": {
|
|
4
|
+
"actions": {
|
|
5
|
+
"preset": "recommended"
|
|
6
|
+
},
|
|
7
|
+
"enabled": true
|
|
8
|
+
},
|
|
9
|
+
"files": {
|
|
10
|
+
"ignoreUnknown": false,
|
|
11
|
+
"includes": [
|
|
12
|
+
"src/**",
|
|
13
|
+
"test/**",
|
|
14
|
+
"lambda/**",
|
|
15
|
+
".projenrc.ts",
|
|
16
|
+
"projenrc/**",
|
|
17
|
+
"!.gitattributes",
|
|
18
|
+
"!.github/dependabot.yml",
|
|
19
|
+
"!.github/workflows/build.yml",
|
|
20
|
+
"!.github/workflows/pull-request-lint.yml",
|
|
21
|
+
"!.github/workflows/release.yml",
|
|
22
|
+
"!.gitignore",
|
|
23
|
+
"!.mergify.yml",
|
|
24
|
+
"!.projen/deps.json",
|
|
25
|
+
"!.projen/files.json",
|
|
26
|
+
"!.projen/tasks.json",
|
|
27
|
+
"!projenrc/tsconfig.json",
|
|
28
|
+
"!tsconfig.dev.json",
|
|
29
|
+
"!tsconfig.json"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"formatter": {
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"indentStyle": "space",
|
|
35
|
+
"indentWidth": 2,
|
|
36
|
+
"lineWidth": 100
|
|
37
|
+
},
|
|
38
|
+
"javascript": {
|
|
39
|
+
"formatter": {
|
|
40
|
+
"quoteStyle": "double",
|
|
41
|
+
"semicolons": "asNeeded",
|
|
42
|
+
"trailingCommas": "es5"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"linter": {
|
|
46
|
+
"enabled": true,
|
|
47
|
+
"rules": {
|
|
48
|
+
"preset": "recommended",
|
|
49
|
+
"nursery": {
|
|
50
|
+
"noFloatingPromises": "error"
|
|
51
|
+
},
|
|
52
|
+
"suspicious": {
|
|
53
|
+
"noShadow": "error"
|
|
54
|
+
},
|
|
55
|
+
"correctness": {
|
|
56
|
+
"noUndeclaredDependencies": "error"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"vcs": {
|
|
61
|
+
"clientKind": "git",
|
|
62
|
+
"enabled": true,
|
|
63
|
+
"useIgnoreFile": true
|
|
64
|
+
},
|
|
65
|
+
"$schema": "node_modules/@biomejs/biome/configuration_schema.json"
|
|
66
|
+
}
|
package/lib/database.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CustomResource } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
|
-
import { IProvider } from "./provider";
|
|
4
|
-
import { Role } from "./role";
|
|
3
|
+
import { type IProvider } from "./provider";
|
|
4
|
+
import type { Role } from "./role";
|
|
5
5
|
interface DatabaseAttributes {
|
|
6
6
|
/**
|
|
7
7
|
* Name of database to create.
|
package/lib/database.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.Database = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -8,12 +7,14 @@ const constructs_1 = require("constructs");
|
|
|
8
7
|
const enum_1 = require("./enum");
|
|
9
8
|
const provider_1 = require("./provider");
|
|
10
9
|
class ImportedDatabase extends constructs_1.Construct {
|
|
10
|
+
databaseName;
|
|
11
11
|
constructor(scope, id, props) {
|
|
12
12
|
super(scope, id);
|
|
13
13
|
this.databaseName = props.databaseName;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
class Database extends aws_cdk_lib_1.CustomResource {
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-rds-sql.Database", version: "9.0.1" };
|
|
17
18
|
/**
|
|
18
19
|
* Return a Database based upon name only. Use for importing existing databases.
|
|
19
20
|
*/
|
|
@@ -22,6 +23,7 @@ class Database extends aws_cdk_lib_1.CustomResource {
|
|
|
22
23
|
databaseName: databaseName,
|
|
23
24
|
});
|
|
24
25
|
}
|
|
26
|
+
databaseName;
|
|
25
27
|
constructor(scope, id, props) {
|
|
26
28
|
// Check if using DSQL provider and forbid database creation
|
|
27
29
|
if (props.provider.engine === provider_1.DatabaseEngine.DSQL) {
|
|
@@ -44,6 +46,4 @@ class Database extends aws_cdk_lib_1.CustomResource {
|
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
exports.Database = Database;
|
|
47
|
-
|
|
48
|
-
Database[_a] = { fqn: "cdk-rds-sql.Database", version: "8.2.0" };
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLGlDQUF1QztBQUN2Qyx5Q0FBc0Q7QUEwQnRELE1BQU0sZ0JBQWlCLFNBQVEsc0JBQVM7SUFHdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtJQUN4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFhLFFBQVMsU0FBUSw0QkFBYztJQUMxQzs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUFvQjtRQUN4RSxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNyQyxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUE7SUFDSixDQUFDO0lBSUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyx5QkFBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQ2IscUZBQXFGLENBQ3RGLENBQUE7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxRQUFRO2dCQUNqQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDaEYsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUTthQUM3QjtTQUNGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUE7UUFDdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLENBQUM7SUFDSCxDQUFDOztBQWxDSCw0QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBSZHNTcWxSZXNvdXJjZSB9IGZyb20gXCIuL2VudW1cIlxuaW1wb3J0IHsgSVByb3ZpZGVyLCBEYXRhYmFzZUVuZ2luZSB9IGZyb20gXCIuL3Byb3ZpZGVyXCJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi9yb2xlXCJcblxuaW50ZXJmYWNlIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIG93bmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBSb2xlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBQcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJUHJvdmlkZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2Uge1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xufVxuXG5jbGFzcyBJbXBvcnRlZERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlQXR0cmlidXRlcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIEN1c3RvbVJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIERhdGFiYXNlIGJhc2VkIHVwb24gbmFtZSBvbmx5LiBVc2UgZm9yIGltcG9ydGluZyBleGlzdGluZyBkYXRhYmFzZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbURhdGFiYXNlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZU5hbWU6IHN0cmluZyk6IElEYXRhYmFzZSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZERhdGFiYXNlKHNjb3BlLCBpZCwge1xuICAgICAgZGF0YWJhc2VOYW1lOiBkYXRhYmFzZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgLy8gQ2hlY2sgaWYgdXNpbmcgRFNRTCBwcm92aWRlciBhbmQgZm9yYmlkIGRhdGFiYXNlIGNyZWF0aW9uXG4gICAgaWYgKHByb3BzLnByb3ZpZGVyLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuRFNRTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkRhdGFiYXNlIGNyZWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEU1FMLiBEU1FMIGFsd2F5cyB1c2VzICdwb3N0Z3JlcycgZGF0YWJhc2UuXCJcbiAgICAgIClcbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBSZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UuREFUQUJBU0UsXG4gICAgICAgIFJlc291cmNlSWQ6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgLi4uKHByb3BzLnByb3ZpZGVyLnNlY3JldCA/IHsgU2VjcmV0QXJuOiBwcm9wcy5wcm92aWRlci5zZWNyZXQuc2VjcmV0QXJuIH0gOiB7fSksXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZDQUE0QztBQUM1QywyQ0FBc0M7QUFDdEMsaUNBQXVDO0FBQ3ZDLHlDQUEyRDtBQTBCM0QsTUFBTSxnQkFBaUIsU0FBUSxzQkFBUztJQUN0QixZQUFZLENBQVE7SUFFcEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtJQUN4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFhLFFBQVMsU0FBUSw0QkFBYzs7SUFDMUM7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBb0I7UUFDeEUsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDckMsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVlLFlBQVksQ0FBUTtJQUVwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELDREQUE0RDtRQUM1RCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLHlCQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FDYixxRkFBcUYsQ0FDdEYsQ0FBQTtRQUNILENBQUM7UUFFRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDekMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxxQkFBYyxDQUFDLFFBQVE7Z0JBQ2pDLFVBQVUsRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDOUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO2FBQzdCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsQ0FBQztJQUNILENBQUM7O0FBbENILDRCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB7IFJkc1NxbFJlc291cmNlIH0gZnJvbSBcIi4vZW51bVwiXG5pbXBvcnQgeyBEYXRhYmFzZUVuZ2luZSwgdHlwZSBJUHJvdmlkZXIgfSBmcm9tIFwiLi9wcm92aWRlclwiXG5pbXBvcnQgdHlwZSB7IFJvbGUgfSBmcm9tIFwiLi9yb2xlXCJcblxuaW50ZXJmYWNlIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIG93bmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBSb2xlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBQcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJUHJvdmlkZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2Uge1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xufVxuXG5jbGFzcyBJbXBvcnRlZERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlQXR0cmlidXRlcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIEN1c3RvbVJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIERhdGFiYXNlIGJhc2VkIHVwb24gbmFtZSBvbmx5LiBVc2UgZm9yIGltcG9ydGluZyBleGlzdGluZyBkYXRhYmFzZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbURhdGFiYXNlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZU5hbWU6IHN0cmluZyk6IElEYXRhYmFzZSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZERhdGFiYXNlKHNjb3BlLCBpZCwge1xuICAgICAgZGF0YWJhc2VOYW1lOiBkYXRhYmFzZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgLy8gQ2hlY2sgaWYgdXNpbmcgRFNRTCBwcm92aWRlciBhbmQgZm9yYmlkIGRhdGFiYXNlIGNyZWF0aW9uXG4gICAgaWYgKHByb3BzLnByb3ZpZGVyLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuRFNRTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkRhdGFiYXNlIGNyZWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEU1FMLiBEU1FMIGFsd2F5cyB1c2VzICdwb3N0Z3JlcycgZGF0YWJhc2UuXCJcbiAgICAgIClcbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBSZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UuREFUQUJBU0UsXG4gICAgICAgIFJlc291cmNlSWQ6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgLi4uKHByb3BzLnByb3ZpZGVyLnNlY3JldCA/IHsgU2VjcmV0QXJuOiBwcm9wcy5wcm92aWRlci5zZWNyZXQuc2VjcmV0QXJuIH0gOiB7fSksXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|