cdk-rds-sql 8.1.6 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/lint +7 -2
- package/.jsii +5942 -255
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +55 -7
- package/biome.jsonc +66 -0
- package/lib/database.d.ts +2 -2
- package/lib/database.js +4 -4
- package/lib/handler/index.js +4499 -2778
- 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 +9 -3
- package/lib/role.custom-resource.js +4 -1
- package/lib/role.d.ts +21 -4
- package/lib/role.js +62 -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
|
|
|
@@ -143,6 +145,31 @@ has been created.
|
|
|
143
145
|
If you want to make the role the owner of a new database, just specify
|
|
144
146
|
the `databaseName` here, and create the database later.
|
|
145
147
|
|
|
148
|
+
### Connection limit (MySQL/MariaDB)
|
|
149
|
+
|
|
150
|
+
Cap how many connections a MySQL or MariaDB user may open:
|
|
151
|
+
|
|
152
|
+
```ts
|
|
153
|
+
const role = new Role(this, "Role", {
|
|
154
|
+
provider: provider,
|
|
155
|
+
roleName: "myrole",
|
|
156
|
+
databaseName: "mydb",
|
|
157
|
+
maxUserConnections: 5,
|
|
158
|
+
})
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Create and update then run:
|
|
162
|
+
|
|
163
|
+
```sql
|
|
164
|
+
ALTER USER 'myrole'@'%' WITH MAX_USER_CONNECTIONS 5
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Omit `maxUserConnections` to leave the user unlimited, which is the
|
|
168
|
+
existing behaviour. Omitting it does not clear a limit that was already
|
|
169
|
+
applied; set `0` to restore the server default (unlimited unless the
|
|
170
|
+
global `max_user_connections` is set). PostgreSQL and DSQL throw if
|
|
171
|
+
this property is set.
|
|
172
|
+
|
|
146
173
|
### IAM Authentication
|
|
147
174
|
|
|
148
175
|
Instead of password-based authentication, you can create roles that
|
|
@@ -518,17 +545,35 @@ const provider = new Provider(this, "Provider", {
|
|
|
518
545
|
|
|
519
546
|
# Working on this code
|
|
520
547
|
|
|
521
|
-
This code is managed by
|
|
522
|
-
[
|
|
523
|
-
|
|
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.
|
|
524
551
|
|
|
525
|
-
|
|
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.
|
|
526
554
|
|
|
555
|
+
After cloning:
|
|
556
|
+
|
|
557
|
+
```sh
|
|
558
|
+
mise trust
|
|
559
|
+
mise install
|
|
560
|
+
mise run setup
|
|
527
561
|
```
|
|
528
|
-
pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
|
|
529
|
-
```
|
|
530
562
|
|
|
531
|
-
|
|
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.
|
|
532
577
|
|
|
533
578
|
## Testing
|
|
534
579
|
|
|
@@ -536,6 +581,9 @@ Test code via projen with:
|
|
|
536
581
|
|
|
537
582
|
pnpm exec projen test
|
|
538
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
|
+
|
|
539
587
|
You can run the PostgreSQL sample stack with:
|
|
540
588
|
|
|
541
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.0" };
|
|
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.1.6" };
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLGlDQUF1QztBQUN2Qyx5Q0FBc0Q7QUEwQnRELE1BQU0sZ0JBQWlCLFNBQVEsc0JBQVM7SUFHdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtJQUN4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFhLFFBQVMsU0FBUSw0QkFBYztJQUMxQzs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUFvQjtRQUN4RSxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNyQyxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUE7SUFDSixDQUFDO0lBSUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyx5QkFBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQ2IscUZBQXFGLENBQ3RGLENBQUE7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxRQUFRO2dCQUNqQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDaEYsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUTthQUM3QjtTQUNGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUE7UUFDdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLENBQUM7SUFDSCxDQUFDOztBQWxDSCw0QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBSZHNTcWxSZXNvdXJjZSB9IGZyb20gXCIuL2VudW1cIlxuaW1wb3J0IHsgSVByb3ZpZGVyLCBEYXRhYmFzZUVuZ2luZSB9IGZyb20gXCIuL3Byb3ZpZGVyXCJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi9yb2xlXCJcblxuaW50ZXJmYWNlIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIG93bmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBSb2xlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBQcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJUHJvdmlkZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2Uge1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xufVxuXG5jbGFzcyBJbXBvcnRlZERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlQXR0cmlidXRlcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIEN1c3RvbVJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIERhdGFiYXNlIGJhc2VkIHVwb24gbmFtZSBvbmx5LiBVc2UgZm9yIGltcG9ydGluZyBleGlzdGluZyBkYXRhYmFzZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbURhdGFiYXNlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZU5hbWU6IHN0cmluZyk6IElEYXRhYmFzZSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZERhdGFiYXNlKHNjb3BlLCBpZCwge1xuICAgICAgZGF0YWJhc2VOYW1lOiBkYXRhYmFzZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgLy8gQ2hlY2sgaWYgdXNpbmcgRFNRTCBwcm92aWRlciBhbmQgZm9yYmlkIGRhdGFiYXNlIGNyZWF0aW9uXG4gICAgaWYgKHByb3BzLnByb3ZpZGVyLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuRFNRTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkRhdGFiYXNlIGNyZWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEU1FMLiBEU1FMIGFsd2F5cyB1c2VzICdwb3N0Z3JlcycgZGF0YWJhc2UuXCJcbiAgICAgIClcbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBSZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UuREFUQUJBU0UsXG4gICAgICAgIFJlc291cmNlSWQ6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgLi4uKHByb3BzLnByb3ZpZGVyLnNlY3JldCA/IHsgU2VjcmV0QXJuOiBwcm9wcy5wcm92aWRlci5zZWNyZXQuc2VjcmV0QXJuIH0gOiB7fSksXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZDQUE0QztBQUM1QywyQ0FBc0M7QUFDdEMsaUNBQXVDO0FBQ3ZDLHlDQUEyRDtBQTBCM0QsTUFBTSxnQkFBaUIsU0FBUSxzQkFBUztJQUN0QixZQUFZLENBQVE7SUFFcEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtJQUN4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFhLFFBQVMsU0FBUSw0QkFBYzs7SUFDMUM7O09BRUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBb0I7UUFDeEUsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDckMsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVlLFlBQVksQ0FBUTtJQUVwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELDREQUE0RDtRQUM1RCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLHlCQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FDYixxRkFBcUYsQ0FDdEYsQ0FBQTtRQUNILENBQUM7UUFFRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDekMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxxQkFBYyxDQUFDLFFBQVE7Z0JBQ2pDLFVBQVUsRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDOUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO2FBQzdCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsQ0FBQztJQUNILENBQUM7O0FBbENILDRCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB7IFJkc1NxbFJlc291cmNlIH0gZnJvbSBcIi4vZW51bVwiXG5pbXBvcnQgeyBEYXRhYmFzZUVuZ2luZSwgdHlwZSBJUHJvdmlkZXIgfSBmcm9tIFwiLi9wcm92aWRlclwiXG5pbXBvcnQgdHlwZSB7IFJvbGUgfSBmcm9tIFwiLi9yb2xlXCJcblxuaW50ZXJmYWNlIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIG93bmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBSb2xlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIERhdGFiYXNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBQcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJUHJvdmlkZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2Uge1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xufVxuXG5jbGFzcyBJbXBvcnRlZERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlQXR0cmlidXRlcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIEN1c3RvbVJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIERhdGFiYXNlIGJhc2VkIHVwb24gbmFtZSBvbmx5LiBVc2UgZm9yIGltcG9ydGluZyBleGlzdGluZyBkYXRhYmFzZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbURhdGFiYXNlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZU5hbWU6IHN0cmluZyk6IElEYXRhYmFzZSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZERhdGFiYXNlKHNjb3BlLCBpZCwge1xuICAgICAgZGF0YWJhc2VOYW1lOiBkYXRhYmFzZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgLy8gQ2hlY2sgaWYgdXNpbmcgRFNRTCBwcm92aWRlciBhbmQgZm9yYmlkIGRhdGFiYXNlIGNyZWF0aW9uXG4gICAgaWYgKHByb3BzLnByb3ZpZGVyLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuRFNRTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkRhdGFiYXNlIGNyZWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEU1FMLiBEU1FMIGFsd2F5cyB1c2VzICdwb3N0Z3JlcycgZGF0YWJhc2UuXCJcbiAgICAgIClcbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBSZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UuREFUQUJBU0UsXG4gICAgICAgIFJlc291cmNlSWQ6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgLi4uKHByb3BzLnByb3ZpZGVyLnNlY3JldCA/IHsgU2VjcmV0QXJuOiBwcm9wcy5wcm92aWRlci5zZWNyZXQuc2VjcmV0QXJuIH0gOiB7fSksXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|