cdk-rds-sql 2.1.2 → 2.3.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/.gitattributes +0 -1
- package/.jsii +153 -16
- package/.projenrc.ts +6 -1
- package/README.md +12 -4
- package/lib/database.js +1 -1
- package/lib/handler.js +12 -5
- package/lib/provider.d.ts +12 -1
- package/lib/provider.js +17 -5
- package/lib/role.js +1 -1
- package/lib/schema.js +3 -3
- package/lib/sql.js +3 -3
- package/package.json +3 -3
package/.gitattributes
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
/.github/workflows/build.yml linguist-generated
|
|
8
8
|
/.github/workflows/pull-request-lint.yml linguist-generated
|
|
9
9
|
/.github/workflows/release.yml linguist-generated
|
|
10
|
-
/.github/workflows/upgrade-main.yml linguist-generated
|
|
11
10
|
/.gitignore linguist-generated
|
|
12
11
|
/.mergify.yml linguist-generated
|
|
13
12
|
/.npmignore linguist-generated
|
package/.jsii
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"source-map-support": "^0.5.21"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"aws-cdk-lib": "^2.
|
|
18
|
+
"aws-cdk-lib": "^2.64.0",
|
|
19
19
|
"constructs": "^10.1.168"
|
|
20
20
|
},
|
|
21
21
|
"dependencyClosure": {
|
|
@@ -932,6 +932,19 @@
|
|
|
932
932
|
}
|
|
933
933
|
}
|
|
934
934
|
},
|
|
935
|
+
"aws-cdk-lib.aws_devicefarm": {
|
|
936
|
+
"targets": {
|
|
937
|
+
"dotnet": {
|
|
938
|
+
"namespace": "Amazon.CDK.AWS.DeviceFarm"
|
|
939
|
+
},
|
|
940
|
+
"java": {
|
|
941
|
+
"package": "software.amazon.awscdk.services.devicefarm"
|
|
942
|
+
},
|
|
943
|
+
"python": {
|
|
944
|
+
"module": "aws_cdk.aws_devicefarm"
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
},
|
|
935
948
|
"aws-cdk-lib.aws_devopsguru": {
|
|
936
949
|
"targets": {
|
|
937
950
|
"dotnet": {
|
|
@@ -997,6 +1010,19 @@
|
|
|
997
1010
|
}
|
|
998
1011
|
}
|
|
999
1012
|
},
|
|
1013
|
+
"aws-cdk-lib.aws_docdbelastic": {
|
|
1014
|
+
"targets": {
|
|
1015
|
+
"dotnet": {
|
|
1016
|
+
"namespace": "Amazon.CDK.AWS.DocDBElastic"
|
|
1017
|
+
},
|
|
1018
|
+
"java": {
|
|
1019
|
+
"package": "software.amazon.awscdk.services.docdbelastic"
|
|
1020
|
+
},
|
|
1021
|
+
"python": {
|
|
1022
|
+
"module": "aws_cdk.aws_docdbelastic"
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1000
1026
|
"aws-cdk-lib.aws_dynamodb": {
|
|
1001
1027
|
"targets": {
|
|
1002
1028
|
"dotnet": {
|
|
@@ -1413,6 +1439,19 @@
|
|
|
1413
1439
|
}
|
|
1414
1440
|
}
|
|
1415
1441
|
},
|
|
1442
|
+
"aws-cdk-lib.aws_grafana": {
|
|
1443
|
+
"targets": {
|
|
1444
|
+
"dotnet": {
|
|
1445
|
+
"namespace": "Amazon.CDK.AWS.Grafana"
|
|
1446
|
+
},
|
|
1447
|
+
"java": {
|
|
1448
|
+
"package": "software.amazon.awscdk.services.grafana"
|
|
1449
|
+
},
|
|
1450
|
+
"python": {
|
|
1451
|
+
"module": "aws_cdk.aws_grafana"
|
|
1452
|
+
}
|
|
1453
|
+
}
|
|
1454
|
+
},
|
|
1416
1455
|
"aws-cdk-lib.aws_greengrass": {
|
|
1417
1456
|
"targets": {
|
|
1418
1457
|
"dotnet": {
|
|
@@ -1725,6 +1764,19 @@
|
|
|
1725
1764
|
}
|
|
1726
1765
|
}
|
|
1727
1766
|
},
|
|
1767
|
+
"aws-cdk-lib.aws_kendraranking": {
|
|
1768
|
+
"targets": {
|
|
1769
|
+
"dotnet": {
|
|
1770
|
+
"namespace": "Amazon.CDK.AWS.KendraRanking"
|
|
1771
|
+
},
|
|
1772
|
+
"java": {
|
|
1773
|
+
"package": "software.amazon.awscdk.services.kendraranking"
|
|
1774
|
+
},
|
|
1775
|
+
"python": {
|
|
1776
|
+
"module": "aws_cdk.aws_kendraranking"
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
},
|
|
1728
1780
|
"aws-cdk-lib.aws_kinesis": {
|
|
1729
1781
|
"targets": {
|
|
1730
1782
|
"dotnet": {
|
|
@@ -2193,6 +2245,45 @@
|
|
|
2193
2245
|
}
|
|
2194
2246
|
}
|
|
2195
2247
|
},
|
|
2248
|
+
"aws-cdk-lib.aws_oam": {
|
|
2249
|
+
"targets": {
|
|
2250
|
+
"dotnet": {
|
|
2251
|
+
"namespace": "Amazon.CDK.AWS.Oam"
|
|
2252
|
+
},
|
|
2253
|
+
"java": {
|
|
2254
|
+
"package": "software.amazon.awscdk.services.oam"
|
|
2255
|
+
},
|
|
2256
|
+
"python": {
|
|
2257
|
+
"module": "aws_cdk.aws_oam"
|
|
2258
|
+
}
|
|
2259
|
+
}
|
|
2260
|
+
},
|
|
2261
|
+
"aws-cdk-lib.aws_omics": {
|
|
2262
|
+
"targets": {
|
|
2263
|
+
"dotnet": {
|
|
2264
|
+
"namespace": "Amazon.CDK.AWS.Omics"
|
|
2265
|
+
},
|
|
2266
|
+
"java": {
|
|
2267
|
+
"package": "software.amazon.awscdk.services.omics"
|
|
2268
|
+
},
|
|
2269
|
+
"python": {
|
|
2270
|
+
"module": "aws_cdk.aws_omics"
|
|
2271
|
+
}
|
|
2272
|
+
}
|
|
2273
|
+
},
|
|
2274
|
+
"aws-cdk-lib.aws_opensearchserverless": {
|
|
2275
|
+
"targets": {
|
|
2276
|
+
"dotnet": {
|
|
2277
|
+
"namespace": "Amazon.CDK.AWS.OpenSearchServerless"
|
|
2278
|
+
},
|
|
2279
|
+
"java": {
|
|
2280
|
+
"package": "software.amazon.awscdk.services.opensearchserverless"
|
|
2281
|
+
},
|
|
2282
|
+
"python": {
|
|
2283
|
+
"module": "aws_cdk.aws_opensearchserverless"
|
|
2284
|
+
}
|
|
2285
|
+
}
|
|
2286
|
+
},
|
|
2196
2287
|
"aws-cdk-lib.aws_opensearchservice": {
|
|
2197
2288
|
"targets": {
|
|
2198
2289
|
"dotnet": {
|
|
@@ -2297,6 +2388,19 @@
|
|
|
2297
2388
|
}
|
|
2298
2389
|
}
|
|
2299
2390
|
},
|
|
2391
|
+
"aws-cdk-lib.aws_pipes": {
|
|
2392
|
+
"targets": {
|
|
2393
|
+
"dotnet": {
|
|
2394
|
+
"namespace": "Amazon.CDK.AWS.Pipes"
|
|
2395
|
+
},
|
|
2396
|
+
"java": {
|
|
2397
|
+
"package": "software.amazon.awscdk.services.pipes"
|
|
2398
|
+
},
|
|
2399
|
+
"python": {
|
|
2400
|
+
"module": "aws_cdk.aws_pipes"
|
|
2401
|
+
}
|
|
2402
|
+
}
|
|
2403
|
+
},
|
|
2300
2404
|
"aws-cdk-lib.aws_qldb": {
|
|
2301
2405
|
"targets": {
|
|
2302
2406
|
"dotnet": {
|
|
@@ -2791,6 +2895,19 @@
|
|
|
2791
2895
|
}
|
|
2792
2896
|
}
|
|
2793
2897
|
},
|
|
2898
|
+
"aws-cdk-lib.aws_simspaceweaver": {
|
|
2899
|
+
"targets": {
|
|
2900
|
+
"dotnet": {
|
|
2901
|
+
"namespace": "Amazon.CDK.AWS.SimSpaceWeaver"
|
|
2902
|
+
},
|
|
2903
|
+
"java": {
|
|
2904
|
+
"package": "software.amazon.awscdk.services.simspaceweaver"
|
|
2905
|
+
},
|
|
2906
|
+
"python": {
|
|
2907
|
+
"module": "aws_cdk.aws_simspaceweaver"
|
|
2908
|
+
}
|
|
2909
|
+
}
|
|
2910
|
+
},
|
|
2794
2911
|
"aws-cdk-lib.aws_sns": {
|
|
2795
2912
|
"targets": {
|
|
2796
2913
|
"dotnet": {
|
|
@@ -3258,7 +3375,7 @@
|
|
|
3258
3375
|
},
|
|
3259
3376
|
"name": "cdk-rds-sql",
|
|
3260
3377
|
"readme": {
|
|
3261
|
-
"markdown": "# About\n\nThis CDK construct library makes it possible create databases,\nschemas, and roles
|
|
3378
|
+
"markdown": "# About\n\nThis CDK construct library makes it possible to create databases,\nschemas, and roles in an Aurora Serverless or database cluster created\nin that stack. Both Aurora Serverless v1 and v2 are supported.\n\nThis construct library is intended to be used in enterprise\nenvironments, and works in isolated subnets.\n\n<p align=\"left\">\n <a href=\"https://github.com/semantic-release/semantic-release\"><img src=\"https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release\" alt=semantic-release: angular\"></a>\n <a href=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml\"><img src=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml/badge.svg\" alt=\"Release badge\"></a>\n</p>\n\n# Requirements\n\n- CDK v2.\n\n# Installation\n\n npm i cdk-rds-sql\n\n# Usage\n\n## Provider\n\nFirst setup your VPC and create your cluster:\n\n```ts\nimport { Duration, RemovalPolicy } from \"aws-cdk-lib\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\nimport * as rds from \"aws-cdk-lib/aws-rds\"\n\nconst vpc = ec2.Vpc.fromLookup(this, \"Vpc\", {\n vpcId: this.node.tryGetContext(\"vpc-id\"),\n})\n\nconst cluster = new rds.ServerlessCluster(this, \"Cluster\", {\n vpc: vpc,\n vpcSubnets: {\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n },\n engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,\n parameterGroup: rds.ParameterGroup.fromParameterGroupName(\n this,\n \"ParameterGroup\",\n \"default.aurora-postgresql11\"\n ),\n removalPolicy: RemovalPolicy.DESTROY,\n scaling: {\n autoPause: Duration.minutes(60),\n minCapacity: rds.AuroraCapacityUnit.ACU_2,\n maxCapacity: rds.AuroraCapacityUnit.ACU_2,\n },\n})\n```\n\nThen create a provider which will connect to your database:\n\n```ts\nimport { Provider } from \"cdk-rds-sql\"\n\nconst provider = new Provider(this, \"Provider\", {\n vpc: vpc,\n cluster: cluster,\n secret: cluster.secret!,\n})\n```\n\nThe provider will setup a lambda, which will live in the same VPC, or\nat minimum in a VPC that can get access to the database. The provider\nwill automatically setup a connection to the given cluster.\n\n## Roles\n\nCreate a postgres role (user) as follows:\n\n```ts\nimport { Role } from \"cdk-rds-sql\"\n\nconst role = new Role(this, \"Role\", {\n provider: provider,\n roleName: \"myrole\",\n databaseName: \"mydb\",\n})\n```\n\nThis will automatically create a secret just like `ServerlessCluster`\ndoes, with all the connection info needed for this user. It's secret value is a JSON like:\n\n```json\n{\n \"dbClusterIdentifier\": \"teststack-clustereb1186t9-sh4wpqfdyfvu\",\n \"password\": \"very-long-and-boring\",\n \"dbname\": \"mydb\",\n \"engine\": \"postgres\",\n \"port\": 5432,\n \"host\": \"teststack-clustereb1186t9-sh4wpqfdyfvu.cluster-cgudolabssna.us-east-1.rds.amazonaws.com\",\n \"username\": \"myrole\"\n}\n```\n\nYou can access the secret via `role.secret`.\n\nInstead of `databaseName` you can also specify `database` to reference\nan existing database. The role will not be created until the database\nhas been created.\n\n## Database\n\nCreate a database as follows:\n\n```ts\nimport { Database } from \"cdk-rds-sql\"\n\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n```\n\nYou can provide an owner, which makes it easy to create database owned\nby a new user:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n owner: role,\n})\n```\n\n## Schema\n\nCreate a schema in the default database as follows:\n\n```ts\nimport { Schema } from \"cdk-rds-sql\"\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n})\n```\n\nOr in another database:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n databaseName: database.databaseName,\n})\n```\n\n## Sql\n\nYou can insert arbitrary SQL into your database with the `Sql` construct:\n\n```ts\nimport { Sql } from \"cdk-rds-sql\"\n\nconst sql = new Sql(this, \"Sql\", {\n provider: provider,\n database: database,\n statement: \"create table t (i int)\",\n})\n```\n\nCreate a table if it does not exist, and grant a role privileges:\n\n```ts\nconst sql = new Sql(this, \"Sql\", {\n provider: provider,\n database: database,\n statement: `\ncreate table if not exists t (i int);\ngrant select on t to myrole;\n`,\n})\n```\n\nNote that there is no synchronisation between various `Sql`\nconstructs, in particular the order in your code does not determine\nthe order in which your SQL is executed. This happens in parallel,\nunless you specify an explicit dependency via `sql.node.addDepency()`.\n\nThere are a lot of concerns when using `Sql`:\n\n- When you update your Sql, your previous Sql is not \"rolled back\",\n the new Sql is simply executed again.\n- The same when you delete your `Sql` construct: nothing is rolled\n back in the database.\n- Currently the `Sql` constructs has less than 5 minutes to execute\n its work.\n- It is unknown how large your SQL can be.\n\n## Dependencies\n\nThis library manages dependencies, there is no need to specify\ndependencies except possibly for `Sql` constructs.\n\n# Working on this code\n\nThis code is managed by\n[projen](https://github.com/projen/projen/blob/main/README.md). In\naddition [pre-commit](https://pre-commit.com/) is used.\n\nSo after git clone and `npm ci` you would do:\n\n```\npre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit\n```\n\nto install the pre-commit hooks.\n\n## Testing\n\nTest code via projen with:\n\n npx projen test\n\nYou can run the sample stack with:\n\n npx cdk deploy --context vpc-id=vpc-0123456789 TestServerlessV1Stack\n\nOr for v2:\n\n npx cdk deploy TestServerlessV2Stack\n\nIf you want to use an existing vpc:\n\n npx cdk deploy --context vpc-id=vpc-0123456789 TestServerlessV2Stack\n\n# To do\n\n- Update role: will not revoke connect to previous database if database name has changed.\n- If the cluster is configured for autopausing, wake cluster up before doing any SQL operations.\n- We rename roles and database on update: is that actually the best\n thing? More change to get us into an irrecoverable situation??\n"
|
|
3262
3379
|
},
|
|
3263
3380
|
"repository": {
|
|
3264
3381
|
"type": "git",
|
|
@@ -3485,7 +3602,7 @@
|
|
|
3485
3602
|
},
|
|
3486
3603
|
"locationInModule": {
|
|
3487
3604
|
"filename": "src/provider.ts",
|
|
3488
|
-
"line":
|
|
3605
|
+
"line": 48
|
|
3489
3606
|
},
|
|
3490
3607
|
"parameters": [
|
|
3491
3608
|
{
|
|
@@ -3511,7 +3628,7 @@
|
|
|
3511
3628
|
"kind": "class",
|
|
3512
3629
|
"locationInModule": {
|
|
3513
3630
|
"filename": "src/provider.ts",
|
|
3514
|
-
"line":
|
|
3631
|
+
"line": 42
|
|
3515
3632
|
},
|
|
3516
3633
|
"methods": [
|
|
3517
3634
|
{
|
|
@@ -3520,7 +3637,7 @@
|
|
|
3520
3637
|
},
|
|
3521
3638
|
"locationInModule": {
|
|
3522
3639
|
"filename": "src/provider.ts",
|
|
3523
|
-
"line":
|
|
3640
|
+
"line": 67
|
|
3524
3641
|
},
|
|
3525
3642
|
"name": "newCustomResourceHandler",
|
|
3526
3643
|
"parameters": [
|
|
@@ -3560,7 +3677,7 @@
|
|
|
3560
3677
|
"immutable": true,
|
|
3561
3678
|
"locationInModule": {
|
|
3562
3679
|
"filename": "src/provider.ts",
|
|
3563
|
-
"line":
|
|
3680
|
+
"line": 46
|
|
3564
3681
|
},
|
|
3565
3682
|
"name": "cluster",
|
|
3566
3683
|
"type": {
|
|
@@ -3583,7 +3700,7 @@
|
|
|
3583
3700
|
"immutable": true,
|
|
3584
3701
|
"locationInModule": {
|
|
3585
3702
|
"filename": "src/provider.ts",
|
|
3586
|
-
"line":
|
|
3703
|
+
"line": 45
|
|
3587
3704
|
},
|
|
3588
3705
|
"name": "handler",
|
|
3589
3706
|
"type": {
|
|
@@ -3597,7 +3714,7 @@
|
|
|
3597
3714
|
"immutable": true,
|
|
3598
3715
|
"locationInModule": {
|
|
3599
3716
|
"filename": "src/provider.ts",
|
|
3600
|
-
"line":
|
|
3717
|
+
"line": 44
|
|
3601
3718
|
},
|
|
3602
3719
|
"name": "secret",
|
|
3603
3720
|
"type": {
|
|
@@ -3611,7 +3728,7 @@
|
|
|
3611
3728
|
"immutable": true,
|
|
3612
3729
|
"locationInModule": {
|
|
3613
3730
|
"filename": "src/provider.ts",
|
|
3614
|
-
"line":
|
|
3731
|
+
"line": 43
|
|
3615
3732
|
},
|
|
3616
3733
|
"name": "serviceToken",
|
|
3617
3734
|
"type": {
|
|
@@ -3631,7 +3748,7 @@
|
|
|
3631
3748
|
"kind": "interface",
|
|
3632
3749
|
"locationInModule": {
|
|
3633
3750
|
"filename": "src/provider.ts",
|
|
3634
|
-
"line":
|
|
3751
|
+
"line": 12
|
|
3635
3752
|
},
|
|
3636
3753
|
"name": "RdsSqlProps",
|
|
3637
3754
|
"properties": [
|
|
@@ -3644,7 +3761,7 @@
|
|
|
3644
3761
|
"immutable": true,
|
|
3645
3762
|
"locationInModule": {
|
|
3646
3763
|
"filename": "src/provider.ts",
|
|
3647
|
-
"line":
|
|
3764
|
+
"line": 25
|
|
3648
3765
|
},
|
|
3649
3766
|
"name": "cluster",
|
|
3650
3767
|
"type": {
|
|
@@ -3670,7 +3787,7 @@
|
|
|
3670
3787
|
"immutable": true,
|
|
3671
3788
|
"locationInModule": {
|
|
3672
3789
|
"filename": "src/provider.ts",
|
|
3673
|
-
"line":
|
|
3790
|
+
"line": 32
|
|
3674
3791
|
},
|
|
3675
3792
|
"name": "secret",
|
|
3676
3793
|
"type": {
|
|
@@ -3680,18 +3797,38 @@
|
|
|
3680
3797
|
{
|
|
3681
3798
|
"abstract": true,
|
|
3682
3799
|
"docs": {
|
|
3800
|
+
"default": "- Function is not placed within a VPC.",
|
|
3801
|
+
"remarks": "Normally this is the VPC of your database.",
|
|
3683
3802
|
"stability": "stable",
|
|
3684
|
-
"summary": "VPC
|
|
3803
|
+
"summary": "VPC network to place the provider lambda."
|
|
3685
3804
|
},
|
|
3686
3805
|
"immutable": true,
|
|
3687
3806
|
"locationInModule": {
|
|
3688
3807
|
"filename": "src/provider.ts",
|
|
3689
|
-
"line":
|
|
3808
|
+
"line": 20
|
|
3690
3809
|
},
|
|
3691
3810
|
"name": "vpc",
|
|
3692
3811
|
"type": {
|
|
3693
3812
|
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
3694
3813
|
}
|
|
3814
|
+
},
|
|
3815
|
+
{
|
|
3816
|
+
"abstract": true,
|
|
3817
|
+
"docs": {
|
|
3818
|
+
"default": "- 5 minutes",
|
|
3819
|
+
"stability": "stable",
|
|
3820
|
+
"summary": "Timeout for lambda to do its work."
|
|
3821
|
+
},
|
|
3822
|
+
"immutable": true,
|
|
3823
|
+
"locationInModule": {
|
|
3824
|
+
"filename": "src/provider.ts",
|
|
3825
|
+
"line": 39
|
|
3826
|
+
},
|
|
3827
|
+
"name": "timeout",
|
|
3828
|
+
"optional": true,
|
|
3829
|
+
"type": {
|
|
3830
|
+
"fqn": "aws-cdk-lib.Duration"
|
|
3831
|
+
}
|
|
3695
3832
|
}
|
|
3696
3833
|
],
|
|
3697
3834
|
"symbolId": "src/provider:RdsSqlProps"
|
|
@@ -4175,6 +4312,6 @@
|
|
|
4175
4312
|
"symbolId": "src/sql:SqlProps"
|
|
4176
4313
|
}
|
|
4177
4314
|
},
|
|
4178
|
-
"version": "2.
|
|
4179
|
-
"fingerprint": "/
|
|
4315
|
+
"version": "2.3.0",
|
|
4316
|
+
"fingerprint": "5qeaBZuHFU/FC2toc1lOtfDvYyc5GYpKXWW2zh8aW1k="
|
|
4180
4317
|
}
|
package/.projenrc.ts
CHANGED
|
@@ -14,12 +14,17 @@ const project = new awscdk.AwsCdkConstructLibrary({
|
|
|
14
14
|
repositoryUrl: "https://github.com/berenddeboer/cdk-rds-sql.git",
|
|
15
15
|
projenrcTs: true,
|
|
16
16
|
packageManager: NodePackageManager.NPM,
|
|
17
|
+
depsUpgrade: true,
|
|
18
|
+
depsUpgradeOptions: {
|
|
19
|
+
workflow: false,
|
|
20
|
+
},
|
|
17
21
|
constructsVersion: "10.1.168",
|
|
18
|
-
cdkVersion: "2.
|
|
22
|
+
cdkVersion: "2.64.0",
|
|
19
23
|
disableTsconfig: true,
|
|
20
24
|
tsconfigDev: {
|
|
21
25
|
compilerOptions: {
|
|
22
26
|
esModuleInterop: true,
|
|
27
|
+
noUnusedLocals: false,
|
|
23
28
|
},
|
|
24
29
|
},
|
|
25
30
|
eslint: true,
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# About
|
|
2
2
|
|
|
3
|
-
This CDK construct library makes it possible create databases,
|
|
4
|
-
schemas, and roles
|
|
3
|
+
This CDK construct library makes it possible to create databases,
|
|
4
|
+
schemas, and roles in an Aurora Serverless or database cluster created
|
|
5
5
|
in that stack. Both Aurora Serverless v1 and v2 are supported.
|
|
6
6
|
|
|
7
7
|
This construct library is intended to be used in enterprise
|
|
@@ -44,7 +44,7 @@ const cluster = new rds.ServerlessCluster(this, "Cluster", {
|
|
|
44
44
|
parameterGroup: rds.ParameterGroup.fromParameterGroupName(
|
|
45
45
|
this,
|
|
46
46
|
"ParameterGroup",
|
|
47
|
-
"default.aurora-
|
|
47
|
+
"default.aurora-postgresql11"
|
|
48
48
|
),
|
|
49
49
|
removalPolicy: RemovalPolicy.DESTROY,
|
|
50
50
|
scaling: {
|
|
@@ -108,7 +108,7 @@ has been created.
|
|
|
108
108
|
|
|
109
109
|
## Database
|
|
110
110
|
|
|
111
|
-
Create a
|
|
111
|
+
Create a database as follows:
|
|
112
112
|
|
|
113
113
|
```ts
|
|
114
114
|
import { Database } from "cdk-rds-sql"
|
|
@@ -227,6 +227,14 @@ Test code via projen with:
|
|
|
227
227
|
|
|
228
228
|
You can run the sample stack with:
|
|
229
229
|
|
|
230
|
+
npx cdk deploy --context vpc-id=vpc-0123456789 TestServerlessV1Stack
|
|
231
|
+
|
|
232
|
+
Or for v2:
|
|
233
|
+
|
|
234
|
+
npx cdk deploy TestServerlessV2Stack
|
|
235
|
+
|
|
236
|
+
If you want to use an existing vpc:
|
|
237
|
+
|
|
230
238
|
npx cdk deploy --context vpc-id=vpc-0123456789 TestServerlessV2Stack
|
|
231
239
|
|
|
232
240
|
# To do
|
package/lib/database.js
CHANGED
|
@@ -40,5 +40,5 @@ class Database extends aws_cdk_lib_1.CustomResource {
|
|
|
40
40
|
}
|
|
41
41
|
exports.Database = Database;
|
|
42
42
|
_a = JSII_RTTI_SYMBOL_1;
|
|
43
|
-
Database[_a] = { fqn: "cdk-rds-sql.Database", version: "2.
|
|
43
|
+
Database[_a] = { fqn: "cdk-rds-sql.Database", version: "2.3.0" };
|
|
44
44
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLGlDQUF1QztBQTJCdkMsTUFBTSxnQkFBaUIsU0FBUSxzQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFBO0lBQ3hDLENBQUM7Q0FDRjtBQUVELE1BQWEsUUFBUyxTQUFRLDRCQUFjO0lBWTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxRQUFRO2dCQUNqQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMxQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO2FBQzdCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDckM7SUFDSCxDQUFDO0lBMUJEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFlBQW9CO1FBQ3hFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3JDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQTtJQUNKLENBQUM7O0FBUkgsNEJBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgUmRzU3FsUmVzb3VyY2UgfSBmcm9tIFwiLi9lbnVtXCJcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJcIlxuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuL3JvbGVcIlxuXG5pbnRlcmZhY2UgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgZGF0YWJhc2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGF0YWJhc2Ugb3duZXIuXG4gICAqL1xuICByZWFkb25seSBvd25lcj86IFJvbGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIGV4dGVuZHMgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFByb3ZpZGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFiYXNlIHtcbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcbn1cblxuY2xhc3MgSW1wb3J0ZWREYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZUF0dHJpYnV0ZXMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDdXN0b21SZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEYXRhYmFzZSBiYXNlZCB1cG9uIG5hbWUgb25seS4gVXNlIGZvciBpbXBvcnRpbmcgZXhpc3RpbmcgZGF0YWJhc2VzLlxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRhYmFzZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZGF0YWJhc2VOYW1lOiBzdHJpbmcpOiBJRGF0YWJhc2Uge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWREYXRhYmFzZShzY29wZSwgaWQsIHtcbiAgICAgIGRhdGFiYXNlTmFtZTogZGF0YWJhc2VOYW1lLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFJlc291cmNlOiBSZHNTcWxSZXNvdXJjZS5EQVRBQkFTRSxcbiAgICAgICAgUmVzb3VyY2VJZDogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgICBTZWNyZXRBcm46IHByb3BzLnByb3ZpZGVyLnNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/handler.js
CHANGED
|
@@ -123,11 +123,11 @@ const jumpTable = {
|
|
|
123
123
|
},
|
|
124
124
|
};
|
|
125
125
|
exports.handler = async (event) => {
|
|
126
|
-
|
|
126
|
+
console.log("event", event);
|
|
127
127
|
const requestType = event.RequestType;
|
|
128
128
|
const resource = event.ResourceProperties.Resource;
|
|
129
129
|
const resourceId = event.ResourceProperties.ResourceId;
|
|
130
|
-
const
|
|
130
|
+
const databaseName = event.ResourceProperties.DatabaseName;
|
|
131
131
|
if (!Object.keys(jumpTable).includes(event.ResourceProperties.Resource)) {
|
|
132
132
|
throw `Resource type '${resource}' not recognised.`;
|
|
133
133
|
}
|
|
@@ -162,8 +162,13 @@ exports.handler = async (event) => {
|
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
if (sql) {
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
let database;
|
|
166
|
+
if (resource === enum_1.RdsSqlResource.ROLE) {
|
|
167
|
+
database = secretValues.dbname;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
database = databaseName ?? secretValues.dbname; // connect to given database if possible, else to database mentioned in secret
|
|
171
|
+
}
|
|
167
172
|
const params = {
|
|
168
173
|
host: secretValues.host,
|
|
169
174
|
port: secretValues.port,
|
|
@@ -173,6 +178,8 @@ exports.handler = async (event) => {
|
|
|
173
178
|
connectionTimeoutMillis: 2000,
|
|
174
179
|
};
|
|
175
180
|
//console.debug ("PARAMS", params)
|
|
181
|
+
console.debug(`Connecting to host ${params.host}:${params.port}, database ${params.database} as ${params.user}`);
|
|
182
|
+
console.debug("Executing SQL", sql);
|
|
176
183
|
const pg_client = new pg_1.Client(params);
|
|
177
184
|
await pg_client.connect();
|
|
178
185
|
try {
|
|
@@ -211,4 +218,4 @@ const getPassword = async (arn) => {
|
|
|
211
218
|
return json.password;
|
|
212
219
|
}
|
|
213
220
|
};
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRFQUd3QztBQU14QyxtREFBdUM7QUFDdkMsMkJBQTJCO0FBQzNCLGlDQUF1QztBQStDdkMsTUFBTSxTQUFTLEdBQWM7SUFDM0IsR0FBRyxFQUFFO1FBQ0gsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEtBQVcsRUFBRSxFQUFFO1lBQ2pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQTtRQUN4QixDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQVUsRUFBRSxLQUFXLEVBQUUsRUFBRTtZQUM3QyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEIsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLENBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQztLQUMxQjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBa0IsRUFBRSxFQUFFO1lBQ25DLE9BQU8sdUJBQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFrQixFQUFFLGFBQXFCLEVBQUUsRUFBRTtZQUMxRCxPQUFPLHVCQUFNLENBQUMsOEJBQThCLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzFFLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDN0IsT0FBTyx1QkFBTSxDQUFDLGtDQUFrQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQy9ELENBQUM7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBa0IsRUFBRSxLQUFnQixFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2dCQUFFLE1BQU0seUJBQXlCLENBQUE7WUFDdkQsTUFB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UyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUMzQjtpQkFBTTtnQkFDTCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUU7b0JBQzFCLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTthQUNGO1NBQ0Y7Z0JBQVM7WUFDUixNQUFNLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUN0QjtLQUNGO0lBRUQsSUFBSSxRQUFRLEdBQTJCLEVBQUUsQ0FBQTtJQUN6QyxnRUFBZ0U7SUFDaEUsdURBQXVEO0lBQ3ZELElBQUksUUFBUSxLQUFLLHFCQUFjLENBQUMsR0FBRyxFQUFFO1FBQ25DLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUE7S0FDekM7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQTBCLEVBQUU7SUFDaEUsTUFBTSxjQUFjLEdBQUcsSUFBSSw2Q0FBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLDhDQUFxQixDQUFDO1FBQ3hDLFFBQVEsRUFBRSxHQUFHO0tBQ2QsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7S0FDckI7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTZWNyZXRzTWFuYWdlckNsaWVudCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlclwiXG5pbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlQ3JlYXRlRXZlbnQsXG4gIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VVcGRhdGVFdmVudCxcbiAgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZURlbGV0ZUV2ZW50LFxufSBmcm9tIFwiYXdzLWxhbWJkYVwiXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwibm9kZS1wZy1mb3JtYXRcIlxuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcInBnXCJcbmltcG9ydCB7IFJkc1NxbFJlc291cmNlIH0gZnJvbSBcIi4vZW51bVwiXG5cbmludGVyZmFjZSBDdXN0b21SZXNvdXJjZVJlc3BvbnNlIHtcbiAgUGh5c2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nXG4gIERhdGE/OiBhbnlcbiAgTm9FY2hvPzogYm9vbGVhblxufVxuXG50eXBlIENyZWF0ZVJlc291cmNlSGFuZGxlciA9IChcbiAgcmVzb3VyY2VJZDogc3RyaW5nLFxuICBwcm9wcz86IGFueVxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdPlxudHlwZSBVcGRhdGVSZXNvdXJjZUhhbmRsZXIgPSAoXG4gIHJlc291cmNlSWQ6IHN0cmluZyxcbiAgb2xkUmVzb3VyY2VJZDogc3RyaW5nLFxuICBwcm9wcz86IGFueVxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZD5cbnR5cGUgRGVsZXRlUmVzb3VyY2VIYW5kbGVyID0gKHJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM/OiBhbnkpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZFxuXG50eXBlIEp1bXBUYWJsZSA9IHtcbiAgW2tleSBpbiBSZHNTcWxSZXNvdXJjZV06IHtcbiAgICBDcmVhdGU6IENyZWF0ZVJlc291cmNlSGFuZGxlclxuICAgIFVwZGF0ZTogVXBkYXRlUmVzb3VyY2VIYW5kbGVyXG4gICAgRGVsZXRlOiBEZWxldGVSZXNvdXJjZUhhbmRsZXJcbiAgfVxufVxuXG5pbnRlcmZhY2UgUm9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFNlY3JldCBBUk4uXG4gICAqL1xuICBQYXNzd29yZEFybjogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIHRvIHdoaWNoIHJvbGUgaXMgZ3JhbnRlZCBjb25uZWN0IHBlcm1pc3Npb25zLlxuICAgKi9cbiAgRGF0YWJhc2VOYW1lPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgT3duZXI6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRGF0YWJhc2VVcGRhdGVQcm9wcyBleHRlbmRzIERhdGFiYXNlUHJvcHMge1xuICBNYXN0ZXJPd25lcjogc3RyaW5nXG59XG5cbmNvbnN0IGp1bXBUYWJsZTogSnVtcFRhYmxlID0ge1xuICBzcWw6IHtcbiAgICBDcmVhdGU6IChfOiBzdHJpbmcsIHByb3BzPzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcHMuU3RhdGVtZW50XG4gICAgfSxcbiAgICBVcGRhdGU6IChfOiBzdHJpbmcsIF9fOiBzdHJpbmcsIHByb3BzPzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcHMuU3RhdGVtZW50XG4gICAgfSxcbiAgICBEZWxldGU6IChfOiBzdHJpbmcpID0+IHt9LFxuICB9LFxuICBzY2hlbWE6IHtcbiAgICBDcmVhdGU6IGFzeW5jIChyZXNvdXJjZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBmb3JtYXQoXCJjcmVhdGUgc2NoZW1hIGlmIG5vdCBleGlzdHMgJUlcIiwgcmVzb3VyY2VJZClcbiAgICB9LFxuICAgIFVwZGF0ZTogYXN5bmMgKHJlc291cmNlSWQ6IHN0cmluZywgb2xkUmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZm9ybWF0KFwiYWx0ZXIgc2NoZW1hICVJIHJlbmFtZSB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCByZXNvdXJjZUlkKVxuICAgIH0sXG4gICAgRGVsZXRlOiAocmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZm9ybWF0KFwiZHJvcCBzY2hlbWEgaWYgZXhpc3RzICVJIGNhc2NhZGVcIiwgcmVzb3VyY2VJZClcbiAgICB9LFxuICB9LFxuICByb2xlOiB7XG4gICAgQ3JlYXRlOiBhc3luYyAocmVzb3VyY2VJZDogc3RyaW5nLCBwcm9wczogUm9sZVByb3BzKSA9PiB7XG4gICAgICBpZiAoIXByb3BzLlBhc3N3b3JkQXJuKSB0aHJvdyBcIk5vIFBhc3N3b3JkQXJuIHByb3ZpZGVkXCJcbiAgICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgZ2V0UGFzc3dvcmQocHJvcHMuUGFzc3dvcmRBcm4pXG4gICAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgICAgY29uc3Qgc3FsID0gW1xuICAgICAgICAgIFwic3RhcnQgdHJhbnNhY3Rpb25cIixcbiAgICAgICAgICBmb3JtYXQoXCJjcmVhdGUgcm9sZSAlSSB3aXRoIGxvZ2luIHBhc3N3b3JkICVMXCIsIHJlc291cmNlSWQsIHBhc3N3b3JkKSxcbiAgICAgICAgXVxuICAgICAgICBpZiAocHJvcHMuRGF0YWJhc2VOYW1lKSB7XG4gICAgICAgICAgLy8gZ3JhbnQgY29ubmVjdCB0byBkYXRhYmFzZSBpZiBkYXRhYmFzZSBhbHJlYWR5IGV4aXN0c1xuICAgICAgICAgIHNxbC5wdXNoKFxuICAgICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgICBcIkRPICQkQkVHSU5cXG5JRiBFWElTVFMgKHNlbGVjdCBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIGRhdG5hbWUgPSAnJXMnIGFuZCBkYXRpc3RlbXBsYXRlID0gZmFsc2UpIFRIRU4gZ3JhbnQgY29ubmVjdCBvbiBkYXRhYmFzZSAlSSB0byAlSTsgRU5EIElGO1xcbkVORCQkO1wiLFxuICAgICAgICAgICAgICBwcm9wcy5EYXRhYmFzZU5hbWUsXG4gICAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VJZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBzcWwucHVzaChcImNvbW1pdFwiKVxuICAgICAgICByZXR1cm4gc3FsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBgQ2Fubm90IHBhcnNlIHBhc3N3b3JkIGZyb20gJHtwcm9wcy5QYXNzd29yZEFybn1gXG4gICAgICB9XG4gICAgfSxcbiAgICBVcGRhdGU6IGFzeW5jIChyZXNvdXJjZUlkOiBzdHJpbmcsIG9sZFJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM6IFJvbGVQcm9wcykgPT4ge1xuICAgICAgLy8gVE9ETzogaWYgZGF0YWJhc2UgbmFtZSBoYXMgY2hhbmdlZCBpbiBPbGRSZXNvdXJjZVByb3BlcnRpZXMsIHJldm9rZSBjb25uZWN0XG4gICAgICBpZiAocHJvcHMgJiYgcHJvcHMuUGFzc3dvcmRBcm4pIHtcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSBhd2FpdCBnZXRQYXNzd29yZChwcm9wcy5QYXNzd29yZEFybilcbiAgICAgICAgaWYgKHBhc3N3b3JkKSB7XG4gICAgICAgICAgY29uc3Qgc3FsID0gW1wic3RhcnQgdHJhbnNhY3Rpb25cIl1cbiAgICAgICAgICBpZiAob2xkUmVzb3VyY2VJZCAhPT0gcmVzb3VyY2VJZCkge1xuICAgICAgICAgICAgc3FsLnB1c2goZm9ybWF0KFwiYWx0ZXIgcm9sZSAlSSByZW5hbWUgdG8gJUlcIiwgb2xkUmVzb3VyY2VJZCwgcmVzb3VyY2VJZCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNxbC5wdXNoKGZvcm1hdChcImFsdGVyIHJvbGUgJUkgd2l0aCBwYXNzd29yZCAlTFwiLCByZXNvdXJjZUlkLCBwYXNzd29yZCkpXG4gICAgICAgICAgaWYgKHByb3BzLkRhdGFiYXNlTmFtZSkge1xuICAgICAgICAgICAgc3FsLnB1c2goXG4gICAgICAgICAgICAgIGZvcm1hdChcImdyYW50IGNvbm5lY3Qgb24gZGF0YWJhc2UgJUkgdG8gJUlcIiwgcHJvcHMuRGF0YWJhc2VOYW1lLCByZXNvdXJjZUlkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBzcWwucHVzaChcImNvbW1pdFwiKVxuICAgICAgICAgIHJldHVybiBzcWxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBgQ2Fubm90IHBhcnNlIHBhc3N3b3JkIGZyb20gJHtwcm9wcy5QYXNzd29yZEFybn1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNxbCA9IFtcInN0YXJ0IHRyYW5zYWN0aW9uXCJdXG4gICAgICAgIGlmIChvbGRSZXNvdXJjZUlkICE9PSByZXNvdXJjZUlkKSB7XG4gICAgICAgICAgc3FsLnB1c2goZm9ybWF0KFwiYWx0ZXIgcm9sZSAlSSByZW5hbWUgdG8gJUlcIiwgb2xkUmVzb3VyY2VJZCwgcmVzb3VyY2VJZCkpXG4gICAgICAgIH1cbiAgICAgICAgc3FsLnB1c2goXG4gICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgXCJETyAkJEJFR0lOXFxuSUYgRVhJU1RTIChzZWxlY3QgZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBkYXRuYW1lID0gJyVzJyBhbmQgZGF0aXN0ZW1wbGF0ZSA9IGZhbHNlKSBUSEVOIGdyYW50IGNvbm5lY3Qgb24gZGF0YWJhc2UgJUkgdG8gJUk7IEVORCBJRjtcXG5FTkQkJDtcIixcbiAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgc3FsLnB1c2goXCJjb21taXRcIilcbiAgICAgICAgcmV0dXJuIHNxbFxuICAgICAgfVxuICAgIH0sXG4gICAgRGVsZXRlOiAocmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBUT0RPOiBpZiB1c2VyIGlzIG93bmVyIG9mIGEgZGF0YWJhc2UsIGFzc2lnbiBvd25lcnNoaXAgdG8gbWFzdGVyIHVzZXI/XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcInN0YXJ0IHRyYW5zYWN0aW9uXCIsXG4gICAgICAgIGZvcm1hdChcbiAgICAgICAgICBcIkRPICQkQkVHSU5cXG5JRiBFWElTVFMgKHNlbGVjdCBmcm9tIHBnX2NhdGFsb2cucGdfcm9sZXMgV0hFUkUgcm9sbmFtZSA9ICclcycpIFRIRU4gcmV2b2tlIGFsbCBwcml2aWxlZ2VzIG9uIGRhdGFiYXNlIHBvc3RncmVzIGZyb20gJUk7IEVORCBJRjtcXG5FTkQkJDtcIixcbiAgICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgKSxcbiAgICAgICAgZm9ybWF0KFwiZHJvcCByb2xlIGlmIGV4aXN0cyAlSVwiLCByZXNvdXJjZUlkKSxcbiAgICAgICAgXCJjb21taXRcIixcbiAgICAgIF1cbiAgICB9LFxuICB9LFxuICBkYXRhYmFzZToge1xuICAgIENyZWF0ZTogYXN5bmMgKHJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IG93bmVyID0gcHJvcHMuT3duZXJcbiAgICAgIGlmIChvd25lcikge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGZvcm1hdChcImNyZWF0ZSBkYXRhYmFzZSAlSVwiLCByZXNvdXJjZUlkKSxcbiAgICAgICAgICBmb3JtYXQoXCJhbHRlciBkYXRhYmFzZSAlSSBvd25lciB0byAlSVwiLCByZXNvdXJjZUlkLCBvd25lciksXG4gICAgICAgIF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQoXCJjcmVhdGUgZGF0YWJhc2UgJUlcIiwgcmVzb3VyY2VJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFVwZGF0ZTogYXN5bmMgKFxuICAgICAgcmVzb3VyY2VJZDogc3RyaW5nLFxuICAgICAgb2xkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgICAgcHJvcHM6IERhdGFiYXNlVXBkYXRlUHJvcHNcbiAgICApOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRzOiBzdHJpbmdbXSA9IFtdXG4gICAgICBpZiAocmVzb3VyY2VJZCAhPT0gb2xkUmVzb3VyY2VJZCkge1xuICAgICAgICBpZiAocHJvcHMuTWFzdGVyT3duZXIpIHtcbiAgICAgICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgICBmb3JtYXQoXCJhbHRlciBkYXRhYmFzZSAlSSBvd25lciB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCBwcm9wcy5NYXN0ZXJPd25lcilcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKFxuICAgICAgICAgIGZvcm1hdChcImFsdGVyIGRhdGFiYXNlICVJIHJlbmFtZSB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCByZXNvdXJjZUlkKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb25zdCBvd25lciA9IHByb3BzLk93bmVyXG4gICAgICBpZiAob3duZXIpIHtcbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKGZvcm1hdChcImFsdGVyIGRhdGFiYXNlICVJIG93bmVyIHRvICVJXCIsIHJlc291cmNlSWQsIHByb3BzLk93bmVyKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZW1lbnRzXG4gICAgfSxcbiAgICBEZWxldGU6IChyZXNvdXJjZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGZvcm1hdChcbiAgICAgICAgICBcInNlbGVjdCBwZ190ZXJtaW5hdGVfYmFja2VuZChwZ19zdGF0X2FjdGl2aXR5LnBpZCkgZnJvbSBwZ19zdGF0X2FjdGl2aXR5IHdoZXJlIGRhdG5hbWUgPSAlTFwiLFxuICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgKSxcbiAgICAgICAgZm9ybWF0KFwiZHJvcCBkYXRhYmFzZSBpZiBleGlzdHMgJUlcIiwgcmVzb3VyY2VJZCksXG4gICAgICBdXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoXG4gIGV2ZW50OlxuICAgIHwgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUNyZWF0ZUV2ZW50XG4gICAgfCBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlVXBkYXRlRXZlbnRcbiAgICB8IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VEZWxldGVFdmVudFxuKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgLy9jb25zb2xlLmRlYnVnKFwiRVZFTlRcIiwgZXZlbnQpXG5cbiAgY29uc3QgcmVxdWVzdFR5cGUgPSBldmVudC5SZXF1ZXN0VHlwZVxuICBjb25zdCByZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUmVzb3VyY2VcbiAgY29uc3QgcmVzb3VyY2VJZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5SZXNvdXJjZUlkXG4gIGNvbnN0IGRhdGFiYXNlID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkRhdGFiYXNlXG5cbiAgaWYgKCFPYmplY3Qua2V5cyhqdW1wVGFibGUpLmluY2x1ZGVzKGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5SZXNvdXJjZSkpIHtcbiAgICB0aHJvdyBgUmVzb3VyY2UgdHlwZSAnJHtyZXNvdXJjZX0nIG5vdCByZWNvZ25pc2VkLmBcbiAgfVxuXG4gIGNvbnN0IHNlY3JldHNfY2xpZW50ID0gbmV3IFNlY3JldHNNYW5hZ2VyQ2xpZW50KHt9KVxuICBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7XG4gICAgU2VjcmV0SWQ6IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5TZWNyZXRBcm4sXG4gIH0pXG4gIGNvbnN0IHNlY3JldCA9IGF3YWl0IHNlY3JldHNfY2xpZW50LnNlbmQoY29tbWFuZClcbiAgaWYgKCFzZWNyZXQuU2VjcmV0U3RyaW5nKSB0aHJvdyBcIk5vIHNlY3JldCBzdHJpbmdcIlxuXG4gIGNvbnN0IHNlY3JldFZhbHVlcyA9IEpTT04ucGFyc2Uoc2VjcmV0LlNlY3JldFN0cmluZylcblxuICBsZXQgc3FsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHZvaWRcbiAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgIGNhc2UgXCJDcmVhdGVcIjoge1xuICAgICAgc3FsID0gYXdhaXQganVtcFRhYmxlW3Jlc291cmNlXVtyZXF1ZXN0VHlwZV0ocmVzb3VyY2VJZCwgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzKVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSBcIlVwZGF0ZVwiOiB7XG4gICAgICBjb25zdCBvbGRSZXNvdXJjZUlkID0gKGV2ZW50IGFzIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VVcGRhdGVFdmVudClcbiAgICAgICAgLlBoeXNpY2FsUmVzb3VyY2VJZFxuICAgICAgc3FsID0gYXdhaXQganVtcFRhYmxlW3Jlc291cmNlXVtyZXF1ZXN0VHlwZV0ocmVzb3VyY2VJZCwgb2xkUmVzb3VyY2VJZCwge1xuICAgICAgICAuLi5ldmVudC5SZXNvdXJjZVByb3BlcnRpZXMsXG4gICAgICAgIE1hc3Rlck93bmVyOiBzZWNyZXRWYWx1ZXMudXNlcm5hbWUsXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSBcIkRlbGV0ZVwiOiB7XG4gICAgICBjb25zdCBvbGRSZXNvdXJjZUlkID0gKGV2ZW50IGFzIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VEZWxldGVFdmVudClcbiAgICAgICAgLlBoeXNpY2FsUmVzb3VyY2VJZFxuICAgICAgc3FsID0ganVtcFRhYmxlW3Jlc291cmNlXVtyZXF1ZXN0VHlwZV0ocmVzb3VyY2VJZCwgb2xkUmVzb3VyY2VJZClcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHNxbCkge1xuICAgIC8vY29uc29sZS5kZWJ1ZyhcIkRBVEFCQVNFXCIsIGRhdGFiYXNlKVxuICAgIGNvbnNvbGUuZGVidWcoXCJTUUxcIiwgc3FsKVxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGhvc3Q6IHNlY3JldFZhbHVlcy5ob3N0LFxuICAgICAgcG9ydDogc2VjcmV0VmFsdWVzLnBvcnQsXG4gICAgICB1c2VyOiBzZWNyZXRWYWx1ZXMudXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogc2VjcmV0VmFsdWVzLnBhc3N3b3JkLFxuICAgICAgZGF0YWJhc2U6IGRhdGFiYXNlLFxuICAgICAgY29ubmVjdGlvblRpbWVvdXRNaWxsaXM6IDIwMDAsIC8vIHJldHVybiBhbiBlcnJvciBpZiBhIGNvbm5lY3Rpb24gY291bGQgbm90IGJlIGVzdGFibGlzaGVkIHdpdGhpbiAyIHNlY29uZHNcbiAgICB9XG4gICAgLy9jb25zb2xlLmRlYnVnIChcIlBBUkFNU1wiLCBwYXJhbXMpXG4gICAgY29uc3QgcGdfY2xpZW50ID0gbmV3IENsaWVudChwYXJhbXMpXG4gICAgYXdhaXQgcGdfY2xpZW50LmNvbm5lY3QoKVxuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIHNxbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBhd2FpdCBwZ19jbGllbnQucXVlcnkoc3FsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgc3FsLm1hcChhc3luYyAoc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBwZ19jbGllbnQucXVlcnkoc3RhdGVtZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcGdfY2xpZW50LmVuZCgpXG4gICAgfVxuICB9XG5cbiAgbGV0IHJlc3BvbnNlOiBDdXN0b21SZXNvdXJjZVJlc3BvbnNlID0ge31cbiAgLy8gRXhjZXB0IGZvciB0aGUgU1FMIHJlc291cmNlLCByZXR1cm4gdGhlIG5ldyByZXNvdXJjZSBpZC4gVGhpc1xuICAvLyB3aWxsIGNhdXNlIGEgZGVsZXRlIHRvIGJlIHNlbmQgZm9yIHRoZSBvbGQgcmVzb3VyY2UuXG4gIGlmIChyZXNvdXJjZSAhPT0gUmRzU3FsUmVzb3VyY2UuU1FMKSB7XG4gICAgcmVzcG9uc2UuUGh5c2ljYWxSZXNvdXJjZUlkID0gcmVzb3VyY2VJZFxuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlXG59XG5cbi8qKlxuICogUGFyc2UgcGFzc3dvcmQgZmllbGQgZnJvbSBzZWNyZXQuIFJldHVybnMgdm9pZCBvbiBlcnJvci5cbiAqL1xuY29uc3QgZ2V0UGFzc3dvcmQgPSBhc3luYyAoYXJuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHZvaWQ+ID0+IHtcbiAgY29uc3Qgc2VjcmV0c19jbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoe30pXG4gIGNvbnN0IGNvbW1hbmQgPSBuZXcgR2V0U2VjcmV0VmFsdWVDb21tYW5kKHtcbiAgICBTZWNyZXRJZDogYXJuLFxuICB9KVxuICBjb25zdCBzZWNyZXQgPSBhd2FpdCBzZWNyZXRzX2NsaWVudC5zZW5kKGNvbW1hbmQpXG4gIGlmIChzZWNyZXQuU2VjcmV0U3RyaW5nKSB7XG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2Uoc2VjcmV0LlNlY3JldFN0cmluZylcbiAgICByZXR1cm4ganNvbi5wYXNzd29yZFxuICB9XG59XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRFQUd3QztBQU14QyxtREFBdUM7QUFDdkMsMkJBQTJCO0FBQzNCLGlDQUF1QztBQStDdkMsTUFBTSxTQUFTLEdBQWM7SUFDM0IsR0FBRyxFQUFFO1FBQ0gsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEtBQVcsRUFBRSxFQUFFO1lBQ2pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQTtRQUN4QixDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQVUsRUFBRSxLQUFXLEVBQUUsRUFBRTtZQUM3QyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEIsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLENBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQztLQUMxQjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBa0IsRUFBRSxFQUFFO1lBQ25DLE9BQU8sdUJBQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFrQixFQUFFLGFBQXFCLEVBQUUsRUFBRTtZQUMxRCxPQUFPLHVCQUFNLENBQUMsOEJBQThCLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzFFLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDN0IsT0FBTyx1QkFBTSxDQUFDLGtDQUFrQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQy9ELENBQUM7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBa0IsRUFBRSxLQUFnQixFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2dCQUFFLE1BQU0seUJBQXlCLENBQUE7WUFDdkQsTUFB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QUFDO1FBQ3hDLFFBQVEsRUFBRSxHQUFHO0tBQ2QsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7S0FDckI7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTZWNyZXRzTWFuYWdlckNsaWVudCxcbiAgR2V0U2VjcmV0VmFsdWVDb21tYW5kLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlclwiXG5pbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlQ3JlYXRlRXZlbnQsXG4gIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VVcGRhdGVFdmVudCxcbiAgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZURlbGV0ZUV2ZW50LFxufSBmcm9tIFwiYXdzLWxhbWJkYVwiXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwibm9kZS1wZy1mb3JtYXRcIlxuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcInBnXCJcbmltcG9ydCB7IFJkc1NxbFJlc291cmNlIH0gZnJvbSBcIi4vZW51bVwiXG5cbmludGVyZmFjZSBDdXN0b21SZXNvdXJjZVJlc3BvbnNlIHtcbiAgUGh5c2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nXG4gIERhdGE/OiBhbnlcbiAgTm9FY2hvPzogYm9vbGVhblxufVxuXG50eXBlIENyZWF0ZVJlc291cmNlSGFuZGxlciA9IChcbiAgcmVzb3VyY2VJZDogc3RyaW5nLFxuICBwcm9wcz86IGFueVxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdPlxudHlwZSBVcGRhdGVSZXNvdXJjZUhhbmRsZXIgPSAoXG4gIHJlc291cmNlSWQ6IHN0cmluZyxcbiAgb2xkUmVzb3VyY2VJZDogc3RyaW5nLFxuICBwcm9wcz86IGFueVxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZD5cbnR5cGUgRGVsZXRlUmVzb3VyY2VIYW5kbGVyID0gKHJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM/OiBhbnkpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZFxuXG50eXBlIEp1bXBUYWJsZSA9IHtcbiAgW2tleSBpbiBSZHNTcWxSZXNvdXJjZV06IHtcbiAgICBDcmVhdGU6IENyZWF0ZVJlc291cmNlSGFuZGxlclxuICAgIFVwZGF0ZTogVXBkYXRlUmVzb3VyY2VIYW5kbGVyXG4gICAgRGVsZXRlOiBEZWxldGVSZXNvdXJjZUhhbmRsZXJcbiAgfVxufVxuXG5pbnRlcmZhY2UgUm9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFNlY3JldCBBUk4uXG4gICAqL1xuICBQYXNzd29yZEFybjogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIHRvIHdoaWNoIHJvbGUgaXMgZ3JhbnRlZCBjb25uZWN0IHBlcm1pc3Npb25zLlxuICAgKi9cbiAgRGF0YWJhc2VOYW1lPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgT3duZXI6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRGF0YWJhc2VVcGRhdGVQcm9wcyBleHRlbmRzIERhdGFiYXNlUHJvcHMge1xuICBNYXN0ZXJPd25lcjogc3RyaW5nXG59XG5cbmNvbnN0IGp1bXBUYWJsZTogSnVtcFRhYmxlID0ge1xuICBzcWw6IHtcbiAgICBDcmVhdGU6IChfOiBzdHJpbmcsIHByb3BzPzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcHMuU3RhdGVtZW50XG4gICAgfSxcbiAgICBVcGRhdGU6IChfOiBzdHJpbmcsIF9fOiBzdHJpbmcsIHByb3BzPzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcHJvcHMuU3RhdGVtZW50XG4gICAgfSxcbiAgICBEZWxldGU6IChfOiBzdHJpbmcpID0+IHt9LFxuICB9LFxuICBzY2hlbWE6IHtcbiAgICBDcmVhdGU6IGFzeW5jIChyZXNvdXJjZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBmb3JtYXQoXCJjcmVhdGUgc2NoZW1hIGlmIG5vdCBleGlzdHMgJUlcIiwgcmVzb3VyY2VJZClcbiAgICB9LFxuICAgIFVwZGF0ZTogYXN5bmMgKHJlc291cmNlSWQ6IHN0cmluZywgb2xkUmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZm9ybWF0KFwiYWx0ZXIgc2NoZW1hICVJIHJlbmFtZSB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCByZXNvdXJjZUlkKVxuICAgIH0sXG4gICAgRGVsZXRlOiAocmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZm9ybWF0KFwiZHJvcCBzY2hlbWEgaWYgZXhpc3RzICVJIGNhc2NhZGVcIiwgcmVzb3VyY2VJZClcbiAgICB9LFxuICB9LFxuICByb2xlOiB7XG4gICAgQ3JlYXRlOiBhc3luYyAocmVzb3VyY2VJZDogc3RyaW5nLCBwcm9wczogUm9sZVByb3BzKSA9PiB7XG4gICAgICBpZiAoIXByb3BzLlBhc3N3b3JkQXJuKSB0aHJvdyBcIk5vIFBhc3N3b3JkQXJuIHByb3ZpZGVkXCJcbiAgICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgZ2V0UGFzc3dvcmQocHJvcHMuUGFzc3dvcmRBcm4pXG4gICAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgICAgY29uc3Qgc3FsID0gW1xuICAgICAgICAgIFwic3RhcnQgdHJhbnNhY3Rpb25cIixcbiAgICAgICAgICBmb3JtYXQoXCJjcmVhdGUgcm9sZSAlSSB3aXRoIGxvZ2luIHBhc3N3b3JkICVMXCIsIHJlc291cmNlSWQsIHBhc3N3b3JkKSxcbiAgICAgICAgXVxuICAgICAgICBpZiAocHJvcHMuRGF0YWJhc2VOYW1lKSB7XG4gICAgICAgICAgLy8gZ3JhbnQgY29ubmVjdCB0byBkYXRhYmFzZSBpZiBkYXRhYmFzZSBhbHJlYWR5IGV4aXN0c1xuICAgICAgICAgIHNxbC5wdXNoKFxuICAgICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgICBcIkRPICQkQkVHSU5cXG5JRiBFWElTVFMgKHNlbGVjdCBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIGRhdG5hbWUgPSAnJXMnIGFuZCBkYXRpc3RlbXBsYXRlID0gZmFsc2UpIFRIRU4gZ3JhbnQgY29ubmVjdCBvbiBkYXRhYmFzZSAlSSB0byAlSTsgRU5EIElGO1xcbkVORCQkO1wiLFxuICAgICAgICAgICAgICBwcm9wcy5EYXRhYmFzZU5hbWUsXG4gICAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VJZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBzcWwucHVzaChcImNvbW1pdFwiKVxuICAgICAgICByZXR1cm4gc3FsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBgQ2Fubm90IHBhcnNlIHBhc3N3b3JkIGZyb20gJHtwcm9wcy5QYXNzd29yZEFybn1gXG4gICAgICB9XG4gICAgfSxcbiAgICBVcGRhdGU6IGFzeW5jIChyZXNvdXJjZUlkOiBzdHJpbmcsIG9sZFJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM6IFJvbGVQcm9wcykgPT4ge1xuICAgICAgLy8gVE9ETzogaWYgZGF0YWJhc2UgbmFtZSBoYXMgY2hhbmdlZCBpbiBPbGRSZXNvdXJjZVByb3BlcnRpZXMsIHJldm9rZSBjb25uZWN0XG4gICAgICBpZiAocHJvcHMgJiYgcHJvcHMuUGFzc3dvcmRBcm4pIHtcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSBhd2FpdCBnZXRQYXNzd29yZChwcm9wcy5QYXNzd29yZEFybilcbiAgICAgICAgaWYgKHBhc3N3b3JkKSB7XG4gICAgICAgICAgY29uc3Qgc3FsID0gW1wic3RhcnQgdHJhbnNhY3Rpb25cIl1cbiAgICAgICAgICBpZiAob2xkUmVzb3VyY2VJZCAhPT0gcmVzb3VyY2VJZCkge1xuICAgICAgICAgICAgc3FsLnB1c2goZm9ybWF0KFwiYWx0ZXIgcm9sZSAlSSByZW5hbWUgdG8gJUlcIiwgb2xkUmVzb3VyY2VJZCwgcmVzb3VyY2VJZCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNxbC5wdXNoKGZvcm1hdChcImFsdGVyIHJvbGUgJUkgd2l0aCBwYXNzd29yZCAlTFwiLCByZXNvdXJjZUlkLCBwYXNzd29yZCkpXG4gICAgICAgICAgaWYgKHByb3BzLkRhdGFiYXNlTmFtZSkge1xuICAgICAgICAgICAgc3FsLnB1c2goXG4gICAgICAgICAgICAgIGZvcm1hdChcImdyYW50IGNvbm5lY3Qgb24gZGF0YWJhc2UgJUkgdG8gJUlcIiwgcHJvcHMuRGF0YWJhc2VOYW1lLCByZXNvdXJjZUlkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBzcWwucHVzaChcImNvbW1pdFwiKVxuICAgICAgICAgIHJldHVybiBzcWxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBgQ2Fubm90IHBhcnNlIHBhc3N3b3JkIGZyb20gJHtwcm9wcy5QYXNzd29yZEFybn1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNxbCA9IFtcInN0YXJ0IHRyYW5zYWN0aW9uXCJdXG4gICAgICAgIGlmIChvbGRSZXNvdXJjZUlkICE9PSByZXNvdXJjZUlkKSB7XG4gICAgICAgICAgc3FsLnB1c2goZm9ybWF0KFwiYWx0ZXIgcm9sZSAlSSByZW5hbWUgdG8gJUlcIiwgb2xkUmVzb3VyY2VJZCwgcmVzb3VyY2VJZCkpXG4gICAgICAgIH1cbiAgICAgICAgc3FsLnB1c2goXG4gICAgICAgICAgZm9ybWF0KFxuICAgICAgICAgICAgXCJETyAkJEJFR0lOXFxuSUYgRVhJU1RTIChzZWxlY3QgZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBkYXRuYW1lID0gJyVzJyBhbmQgZGF0aXN0ZW1wbGF0ZSA9IGZhbHNlKSBUSEVOIGdyYW50IGNvbm5lY3Qgb24gZGF0YWJhc2UgJUkgdG8gJUk7IEVORCBJRjtcXG5FTkQkJDtcIixcbiAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgIHByb3BzLkRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgc3FsLnB1c2goXCJjb21taXRcIilcbiAgICAgICAgcmV0dXJuIHNxbFxuICAgICAgfVxuICAgIH0sXG4gICAgRGVsZXRlOiAocmVzb3VyY2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBUT0RPOiBpZiB1c2VyIGlzIG93bmVyIG9mIGEgZGF0YWJhc2UsIGFzc2lnbiBvd25lcnNoaXAgdG8gbWFzdGVyIHVzZXI/XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcInN0YXJ0IHRyYW5zYWN0aW9uXCIsXG4gICAgICAgIGZvcm1hdChcbiAgICAgICAgICBcIkRPICQkQkVHSU5cXG5JRiBFWElTVFMgKHNlbGVjdCBmcm9tIHBnX2NhdGFsb2cucGdfcm9sZXMgV0hFUkUgcm9sbmFtZSA9ICclcycpIFRIRU4gcmV2b2tlIGFsbCBwcml2aWxlZ2VzIG9uIGRhdGFiYXNlIHBvc3RncmVzIGZyb20gJUk7IEVORCBJRjtcXG5FTkQkJDtcIixcbiAgICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgKSxcbiAgICAgICAgZm9ybWF0KFwiZHJvcCByb2xlIGlmIGV4aXN0cyAlSVwiLCByZXNvdXJjZUlkKSxcbiAgICAgICAgXCJjb21taXRcIixcbiAgICAgIF1cbiAgICB9LFxuICB9LFxuICBkYXRhYmFzZToge1xuICAgIENyZWF0ZTogYXN5bmMgKHJlc291cmNlSWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IG93bmVyID0gcHJvcHMuT3duZXJcbiAgICAgIGlmIChvd25lcikge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGZvcm1hdChcImNyZWF0ZSBkYXRhYmFzZSAlSVwiLCByZXNvdXJjZUlkKSxcbiAgICAgICAgICBmb3JtYXQoXCJhbHRlciBkYXRhYmFzZSAlSSBvd25lciB0byAlSVwiLCByZXNvdXJjZUlkLCBvd25lciksXG4gICAgICAgIF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQoXCJjcmVhdGUgZGF0YWJhc2UgJUlcIiwgcmVzb3VyY2VJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFVwZGF0ZTogYXN5bmMgKFxuICAgICAgcmVzb3VyY2VJZDogc3RyaW5nLFxuICAgICAgb2xkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgICAgcHJvcHM6IERhdGFiYXNlVXBkYXRlUHJvcHNcbiAgICApOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRzOiBzdHJpbmdbXSA9IFtdXG4gICAgICBpZiAocmVzb3VyY2VJZCAhPT0gb2xkUmVzb3VyY2VJZCkge1xuICAgICAgICBpZiAocHJvcHMuTWFzdGVyT3duZXIpIHtcbiAgICAgICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgICBmb3JtYXQoXCJhbHRlciBkYXRhYmFzZSAlSSBvd25lciB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCBwcm9wcy5NYXN0ZXJPd25lcilcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKFxuICAgICAgICAgIGZvcm1hdChcImFsdGVyIGRhdGFiYXNlICVJIHJlbmFtZSB0byAlSVwiLCBvbGRSZXNvdXJjZUlkLCByZXNvdXJjZUlkKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb25zdCBvd25lciA9IHByb3BzLk93bmVyXG4gICAgICBpZiAob3duZXIpIHtcbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKGZvcm1hdChcImFsdGVyIGRhdGFiYXNlICVJIG93bmVyIHRvICVJXCIsIHJlc291cmNlSWQsIHByb3BzLk93bmVyKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZW1lbnRzXG4gICAgfSxcbiAgICBEZWxldGU6IChyZXNvdXJjZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGZvcm1hdChcbiAgICAgICAgICBcInNlbGVjdCBwZ190ZXJtaW5hdGVfYmFja2VuZChwZ19zdGF0X2FjdGl2aXR5LnBpZCkgZnJvbSBwZ19zdGF0X2FjdGl2aXR5IHdoZXJlIGRhdG5hbWUgPSAlTFwiLFxuICAgICAgICAgIHJlc291cmNlSWRcbiAgICAgICAgKSxcbiAgICAgICAgZm9ybWF0KFwiZHJvcCBkYXRhYmFzZSBpZiBleGlzdHMgJUlcIiwgcmVzb3VyY2VJZCksXG4gICAgICBdXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoXG4gIGV2ZW50OlxuICAgIHwgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUNyZWF0ZUV2ZW50XG4gICAgfCBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlVXBkYXRlRXZlbnRcbiAgICB8IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VEZWxldGVFdmVudFxuKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc29sZS5sb2coXCJldmVudFwiLCBldmVudClcblxuICBjb25zdCByZXF1ZXN0VHlwZSA9IGV2ZW50LlJlcXVlc3RUeXBlXG4gIGNvbnN0IHJlc291cmNlOiBSZHNTcWxSZXNvdXJjZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZUlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlJlc291cmNlSWRcbiAgY29uc3QgZGF0YWJhc2VOYW1lID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkRhdGFiYXNlTmFtZVxuXG4gIGlmICghT2JqZWN0LmtleXMoanVtcFRhYmxlKS5pbmNsdWRlcyhldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUmVzb3VyY2UpKSB7XG4gICAgdGhyb3cgYFJlc291cmNlIHR5cGUgJyR7cmVzb3VyY2V9JyBub3QgcmVjb2duaXNlZC5gXG4gIH1cblxuICBjb25zdCBzZWNyZXRzX2NsaWVudCA9IG5ldyBTZWNyZXRzTWFuYWdlckNsaWVudCh7fSlcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQoe1xuICAgIFNlY3JldElkOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuU2VjcmV0QXJuLFxuICB9KVxuICBjb25zdCBzZWNyZXQgPSBhd2FpdCBzZWNyZXRzX2NsaWVudC5zZW5kKGNvbW1hbmQpXG4gIGlmICghc2VjcmV0LlNlY3JldFN0cmluZykgdGhyb3cgXCJObyBzZWNyZXQgc3RyaW5nXCJcblxuICBjb25zdCBzZWNyZXRWYWx1ZXMgPSBKU09OLnBhcnNlKHNlY3JldC5TZWNyZXRTdHJpbmcpXG5cbiAgbGV0IHNxbDogc3RyaW5nIHwgc3RyaW5nW10gfCB2b2lkXG4gIHN3aXRjaCAocmVxdWVzdFR5cGUpIHtcbiAgICBjYXNlIFwiQ3JlYXRlXCI6IHtcbiAgICAgIHNxbCA9IGF3YWl0IGp1bXBUYWJsZVtyZXNvdXJjZV1bcmVxdWVzdFR5cGVdKHJlc291cmNlSWQsIGV2ZW50LlJlc291cmNlUHJvcGVydGllcylcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgXCJVcGRhdGVcIjoge1xuICAgICAgY29uc3Qgb2xkUmVzb3VyY2VJZCA9IChldmVudCBhcyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlVXBkYXRlRXZlbnQpXG4gICAgICAgIC5QaHlzaWNhbFJlc291cmNlSWRcbiAgICAgIHNxbCA9IGF3YWl0IGp1bXBUYWJsZVtyZXNvdXJjZV1bcmVxdWVzdFR5cGVdKHJlc291cmNlSWQsIG9sZFJlc291cmNlSWQsIHtcbiAgICAgICAgLi4uZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLFxuICAgICAgICBNYXN0ZXJPd25lcjogc2VjcmV0VmFsdWVzLnVzZXJuYW1lLFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgXCJEZWxldGVcIjoge1xuICAgICAgY29uc3Qgb2xkUmVzb3VyY2VJZCA9IChldmVudCBhcyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRGVsZXRlRXZlbnQpXG4gICAgICAgIC5QaHlzaWNhbFJlc291cmNlSWRcbiAgICAgIHNxbCA9IGp1bXBUYWJsZVtyZXNvdXJjZV1bcmVxdWVzdFR5cGVdKHJlc291cmNlSWQsIG9sZFJlc291cmNlSWQpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmIChzcWwpIHtcbiAgICBsZXQgZGF0YWJhc2U6IHN0cmluZ1xuICAgIGlmIChyZXNvdXJjZSA9PT0gUmRzU3FsUmVzb3VyY2UuUk9MRSkge1xuICAgICAgZGF0YWJhc2UgPSBzZWNyZXRWYWx1ZXMuZGJuYW1lXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFiYXNlID0gZGF0YWJhc2VOYW1lID8/IHNlY3JldFZhbHVlcy5kYm5hbWUgLy8gY29ubmVjdCB0byBnaXZlbiBkYXRhYmFzZSBpZiBwb3NzaWJsZSwgZWxzZSB0byBkYXRhYmFzZSBtZW50aW9uZWQgaW4gc2VjcmV0XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGhvc3Q6IHNlY3JldFZhbHVlcy5ob3N0LFxuICAgICAgcG9ydDogc2VjcmV0VmFsdWVzLnBvcnQsXG4gICAgICB1c2VyOiBzZWNyZXRWYWx1ZXMudXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogc2VjcmV0VmFsdWVzLnBhc3N3b3JkLFxuICAgICAgZGF0YWJhc2U6IGRhdGFiYXNlLFxuICAgICAgY29ubmVjdGlvblRpbWVvdXRNaWxsaXM6IDIwMDAsIC8vIHJldHVybiBhbiBlcnJvciBpZiBhIGNvbm5lY3Rpb24gY291bGQgbm90IGJlIGVzdGFibGlzaGVkIHdpdGhpbiAyIHNlY29uZHNcbiAgICB9XG4gICAgLy9jb25zb2xlLmRlYnVnIChcIlBBUkFNU1wiLCBwYXJhbXMpXG4gICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgIGBDb25uZWN0aW5nIHRvIGhvc3QgJHtwYXJhbXMuaG9zdH06JHtwYXJhbXMucG9ydH0sIGRhdGFiYXNlICR7cGFyYW1zLmRhdGFiYXNlfSBhcyAke3BhcmFtcy51c2VyfWBcbiAgICApXG4gICAgY29uc29sZS5kZWJ1ZyhcIkV4ZWN1dGluZyBTUUxcIiwgc3FsKVxuICAgIGNvbnN0IHBnX2NsaWVudCA9IG5ldyBDbGllbnQocGFyYW1zKVxuICAgIGF3YWl0IHBnX2NsaWVudC5jb25uZWN0KClcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGVvZiBzcWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgYXdhaXQgcGdfY2xpZW50LnF1ZXJ5KHNxbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIHNxbC5tYXAoYXN5bmMgKHN0YXRlbWVudCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgcGdfY2xpZW50LnF1ZXJ5KHN0YXRlbWVudClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHBnX2NsaWVudC5lbmQoKVxuICAgIH1cbiAgfVxuXG4gIGxldCByZXNwb25zZTogQ3VzdG9tUmVzb3VyY2VSZXNwb25zZSA9IHt9XG4gIC8vIEV4Y2VwdCBmb3IgdGhlIFNRTCByZXNvdXJjZSwgcmV0dXJuIHRoZSBuZXcgcmVzb3VyY2UgaWQuIFRoaXNcbiAgLy8gd2lsbCBjYXVzZSBhIGRlbGV0ZSB0byBiZSBzZW5kIGZvciB0aGUgb2xkIHJlc291cmNlLlxuICBpZiAocmVzb3VyY2UgIT09IFJkc1NxbFJlc291cmNlLlNRTCkge1xuICAgIHJlc3BvbnNlLlBoeXNpY2FsUmVzb3VyY2VJZCA9IHJlc291cmNlSWRcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZVxufVxuXG4vKipcbiAqIFBhcnNlIHBhc3N3b3JkIGZpZWxkIGZyb20gc2VjcmV0LiBSZXR1cm5zIHZvaWQgb24gZXJyb3IuXG4gKi9cbmNvbnN0IGdldFBhc3N3b3JkID0gYXN5bmMgKGFybjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB2b2lkPiA9PiB7XG4gIGNvbnN0IHNlY3JldHNfY2xpZW50ID0gbmV3IFNlY3JldHNNYW5hZ2VyQ2xpZW50KHt9KVxuICBjb25zdCBjb21tYW5kID0gbmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7XG4gICAgU2VjcmV0SWQ6IGFybixcbiAgfSlcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgc2VjcmV0c19jbGllbnQuc2VuZChjb21tYW5kKVxuICBpZiAoc2VjcmV0LlNlY3JldFN0cmluZykge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHNlY3JldC5TZWNyZXRTdHJpbmcpXG4gICAgcmV0dXJuIGpzb24ucGFzc3dvcmRcbiAgfVxufVxuIl19
|
package/lib/provider.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
1
2
|
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
|
2
3
|
import { IFunction } from "aws-cdk-lib/aws-lambda";
|
|
3
4
|
import * as lambda from "aws-cdk-lib/aws-lambda-nodejs";
|
|
@@ -6,7 +7,11 @@ import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
|
|
6
7
|
import { Construct } from "constructs";
|
|
7
8
|
export interface RdsSqlProps {
|
|
8
9
|
/**
|
|
9
|
-
* VPC
|
|
10
|
+
* VPC network to place the provider lambda.
|
|
11
|
+
*
|
|
12
|
+
* Normally this is the VPC of your database.
|
|
13
|
+
*
|
|
14
|
+
* @default - Function is not placed within a VPC.
|
|
10
15
|
*/
|
|
11
16
|
readonly vpc: IVpc;
|
|
12
17
|
/**
|
|
@@ -19,6 +24,12 @@ export interface RdsSqlProps {
|
|
|
19
24
|
* Usually this is your cluster's master secret.
|
|
20
25
|
*/
|
|
21
26
|
readonly secret: ISecret;
|
|
27
|
+
/**
|
|
28
|
+
* Timeout for lambda to do its work.
|
|
29
|
+
*
|
|
30
|
+
* @default - 5 minutes
|
|
31
|
+
*/
|
|
32
|
+
readonly timeout?: Duration;
|
|
22
33
|
}
|
|
23
34
|
export declare class Provider extends Construct {
|
|
24
35
|
readonly serviceToken: string;
|
package/lib/provider.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Provider = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
|
+
const path = require("path");
|
|
7
8
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
9
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
9
10
|
const lambda = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
@@ -28,12 +29,23 @@ class Provider extends constructs_1.Construct {
|
|
|
28
29
|
}
|
|
29
30
|
newCustomResourceHandler(scope, id, props) {
|
|
30
31
|
const ts_filename = `${__dirname}/handler.ts`;
|
|
31
|
-
const
|
|
32
|
+
const js_filename = `${__dirname}/handler.js`;
|
|
33
|
+
let entry;
|
|
34
|
+
if (fs_1.existsSync(ts_filename)) {
|
|
35
|
+
entry = ts_filename;
|
|
36
|
+
}
|
|
37
|
+
else if (fs_1.existsSync(js_filename)) {
|
|
38
|
+
entry = js_filename;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// Ugly hack to support SST (possibly caused by my hack to make SST work with CommonJS libraries)
|
|
42
|
+
entry = path.join(path.dirname(process.env.npm_package_json || process.cwd()), "node_modules/cdk-rds-sql/lib/handler.js");
|
|
43
|
+
}
|
|
32
44
|
const fn = new lambda.NodejsFunction(scope, id, {
|
|
33
45
|
vpc: props.vpc,
|
|
34
46
|
entry: entry,
|
|
35
|
-
runtime: aws_lambda_1.Runtime.
|
|
36
|
-
timeout: aws_cdk_lib_1.Duration.seconds(300),
|
|
47
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
48
|
+
timeout: props.timeout ?? aws_cdk_lib_1.Duration.seconds(300),
|
|
37
49
|
bundling: {
|
|
38
50
|
sourceMap: true,
|
|
39
51
|
externalModules: ["pg-native"],
|
|
@@ -44,8 +56,8 @@ class Provider extends constructs_1.Construct {
|
|
|
44
56
|
}
|
|
45
57
|
exports.Provider = Provider;
|
|
46
58
|
_a = JSII_RTTI_SYMBOL_1;
|
|
47
|
-
Provider[_a] = { fqn: "cdk-rds-sql.Provider", version: "2.
|
|
59
|
+
Provider[_a] = { fqn: "cdk-rds-sql.Provider", version: "2.3.0" };
|
|
48
60
|
function slugify(x) {
|
|
49
61
|
return x.replace(/[^a-zA-Z0-9]/g, "");
|
|
50
62
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQkFBK0I7QUFDL0IsNkJBQTRCO0FBQzVCLDZDQUE2QztBQUU3Qyx1REFBMkQ7QUFDM0Qsd0RBQXVEO0FBR3ZELGdFQUErRDtBQUMvRCwyQ0FBc0M7QUFnQ3RDLE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBTXJDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBRTVCLE1BQU0sWUFBWSxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtRQUMvRSxJQUFJLENBQUMsT0FBTztZQUNULG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFlO2dCQUM3RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUUzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM1RCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDN0IsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFUyx3QkFBd0IsQ0FDaEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtCO1FBRWxCLE1BQU0sV0FBVyxHQUFHLEdBQUcsU0FBUyxhQUFhLENBQUE7UUFDN0MsTUFBTSxXQUFXLEdBQUcsR0FBRyxTQUFTLGFBQWEsQ0FBQTtRQUM3QyxJQUFJLEtBQWEsQ0FBQTtRQUNqQixJQUFJLGVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQixLQUFLLEdBQUcsV0FBVyxDQUFBO1NBQ3BCO2FBQU0sSUFBSSxlQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEMsS0FBSyxHQUFHLFdBQVcsQ0FBQTtTQUNwQjthQUFNO1lBQ0wsaUdBQWlHO1lBQ2pHLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsRUFDM0QseUNBQXlDLENBQzFDLENBQUE7U0FDRjtRQUNELE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzlDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDL0MsUUFBUSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxJQUFJO2dCQUNmLGVBQWUsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUMvQjtTQUNGLENBQUMsQ0FBQTtRQUNGLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQzs7QUF2REgsNEJBd0RDOzs7QUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwiZnNcIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgSVZwYyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCB7IElGdW5jdGlvbiwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIlxuaW1wb3J0IHsgSURhdGFiYXNlQ2x1c3RlciwgSVNlcnZlcmxlc3NDbHVzdGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yZHNcIlxuaW1wb3J0IHsgSVNlY3JldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2VzIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcblxuZXhwb3J0IGludGVyZmFjZSBSZHNTcWxQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgbmV0d29yayB0byBwbGFjZSB0aGUgcHJvdmlkZXIgbGFtYmRhLlxuICAgKlxuICAgKiBOb3JtYWxseSB0aGlzIGlzIHRoZSBWUEMgb2YgeW91ciBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBGdW5jdGlvbiBpcyBub3QgcGxhY2VkIHdpdGhpbiBhIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwY1xuXG4gIC8qKlxuICAgKiBZb3VyIGRhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlcjogSVNlcnZlcmxlc3NDbHVzdGVyIHwgSURhdGFiYXNlQ2x1c3RlclxuXG4gIC8qKlxuICAgKiBTZWNyZXQgdGhhdCBncmFudHMgYWNjZXNzIHRvIHlvdXIgZGF0YWJhc2UuXG4gICAqXG4gICAqIFVzdWFsbHkgdGhpcyBpcyB5b3VyIGNsdXN0ZXIncyBtYXN0ZXIgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBJU2VjcmV0XG5cbiAgLyoqXG4gICAqIFRpbWVvdXQgZm9yIGxhbWJkYSB0byBkbyBpdHMgd29yay5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA1IG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvblxufVxuXG5leHBvcnQgY2xhc3MgUHJvdmlkZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZVRva2VuOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldDogSVNlY3JldFxuICBwdWJsaWMgcmVhZG9ubHkgaGFuZGxlcjogSUZ1bmN0aW9uXG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVyOiBJU2VydmVybGVzc0NsdXN0ZXIgfCBJRGF0YWJhc2VDbHVzdGVyXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJkc1NxbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuICAgIHRoaXMuc2VjcmV0ID0gcHJvcHMuc2VjcmV0XG4gICAgdGhpcy5jbHVzdGVyID0gcHJvcHMuY2x1c3RlclxuXG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gXCJSZHNTcWxcIiArIHNsdWdpZnkoXCIyOGI5ZTc5MS1hZjYwLTRhMzMtYmNhOC1mZmI2ZjMwZWY4YzVcIilcbiAgICB0aGlzLmhhbmRsZXIgPVxuICAgICAgKFN0YWNrLm9mKHRoaXMpLm5vZGUudHJ5RmluZENoaWxkKGZ1bmN0aW9uTmFtZSkgYXMgSUZ1bmN0aW9uKSA/P1xuICAgICAgdGhpcy5uZXdDdXN0b21SZXNvdXJjZUhhbmRsZXIoc2NvcGUsIGZ1bmN0aW9uTmFtZSwgcHJvcHMpXG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBjdXN0b21SZXNvdXJjZXMuUHJvdmlkZXIodGhpcywgXCJSZHNTcWxcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHRoaXMuaGFuZGxlcixcbiAgICB9KVxuICAgIHRoaXMuc2VydmljZVRva2VuID0gcHJvdmlkZXIuc2VydmljZVRva2VuXG4gICAgdGhpcy5zZWNyZXQuZ3JhbnRSZWFkKHRoaXMuaGFuZGxlcilcbiAgICBwcm9wcy5jbHVzdGVyLmNvbm5lY3Rpb25zLmFsbG93RGVmYXVsdFBvcnRGcm9tKHRoaXMuaGFuZGxlcilcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5jbHVzdGVyKVxuICB9XG5cbiAgcHJvdGVjdGVkIG5ld0N1c3RvbVJlc291cmNlSGFuZGxlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJkc1NxbFByb3BzXG4gICk6IGxhbWJkYS5Ob2RlanNGdW5jdGlvbiB7XG4gICAgY29uc3QgdHNfZmlsZW5hbWUgPSBgJHtfX2Rpcm5hbWV9L2hhbmRsZXIudHNgXG4gICAgY29uc3QganNfZmlsZW5hbWUgPSBgJHtfX2Rpcm5hbWV9L2hhbmRsZXIuanNgXG4gICAgbGV0IGVudHJ5OiBzdHJpbmdcbiAgICBpZiAoZXhpc3RzU3luYyh0c19maWxlbmFtZSkpIHtcbiAgICAgIGVudHJ5ID0gdHNfZmlsZW5hbWVcbiAgICB9IGVsc2UgaWYgKGV4aXN0c1N5bmMoanNfZmlsZW5hbWUpKSB7XG4gICAgICBlbnRyeSA9IGpzX2ZpbGVuYW1lXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVnbHkgaGFjayB0byBzdXBwb3J0IFNTVCAocG9zc2libHkgY2F1c2VkIGJ5IG15IGhhY2sgdG8gbWFrZSBTU1Qgd29yayB3aXRoIENvbW1vbkpTIGxpYnJhcmllcylcbiAgICAgIGVudHJ5ID0gcGF0aC5qb2luKFxuICAgICAgICBwYXRoLmRpcm5hbWUocHJvY2Vzcy5lbnYubnBtX3BhY2thZ2VfanNvbiB8fCBwcm9jZXNzLmN3ZCgpKSxcbiAgICAgICAgXCJub2RlX21vZHVsZXMvY2RrLXJkcy1zcWwvbGliL2hhbmRsZXIuanNcIlxuICAgICAgKVxuICAgIH1cbiAgICBjb25zdCBmbiA9IG5ldyBsYW1iZGEuTm9kZWpzRnVuY3Rpb24oc2NvcGUsIGlkLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIGVudHJ5OiBlbnRyeSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0ID8/IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVzOiBbXCJwZy1uYXRpdmVcIl0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcmV0dXJuIGZuXG4gIH1cbn1cblxuZnVuY3Rpb24gc2x1Z2lmeSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4geC5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgXCJcIilcbn1cbiJdfQ==
|
package/lib/role.js
CHANGED
|
@@ -46,5 +46,5 @@ class Role extends constructs_1.Construct {
|
|
|
46
46
|
}
|
|
47
47
|
exports.Role = Role;
|
|
48
48
|
_a = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
Role[_a] = { fqn: "cdk-rds-sql.Role", version: "2.
|
|
49
|
+
Role[_a] = { fqn: "cdk-rds-sql.Role", version: "2.3.0" };
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTJDO0FBRTNDLHVFQUFnRTtBQUNoRSwyQ0FBc0M7QUFHdEMsaUVBQW1FO0FBa0RuRSxNQUFhLElBQUssU0FBUSxzQkFBUztJQVdqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdCO1FBQ3hELElBQ0UsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDdEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBRXhDLE1BQU0seUNBQXlDLENBQUE7UUFDakQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMkJBQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3ZDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsV0FBVyxFQUFFLHNDQUFzQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ25FLG9CQUFvQixFQUFFO2dCQUNwQixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDbkMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCO29CQUM3RCxNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRO29CQUNyRCxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUk7b0JBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtvQkFDeEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWTtpQkFDMUUsQ0FBQztnQkFDRixpQkFBaUIsRUFBRSxVQUFVO2dCQUM3QixpQkFBaUIsRUFBRSwrQkFBK0I7YUFDbkQ7WUFDRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQTtRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksMkJBQWtCLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN4RCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDbEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtTQUNqQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0MsQ0FBQzs7QUEvQ0gsb0JBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIlxuaW1wb3J0IHsgSVNlY3JldCwgU2VjcmV0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBJRGF0YWJhc2UgfSBmcm9tIFwiLi9kYXRhYmFzZVwiXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCIuL3Byb3ZpZGVyXCJcbmltcG9ydCB7IFJvbGUgYXMgQ3VzdG9tUmVzb3VyY2VSb2xlIH0gZnJvbSBcIi4vcm9sZS5jdXN0b20tcmVzb3VyY2VcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVQcm9wcyB7XG4gIC8qKlxuICAgKiBQcm92aWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBQcm92aWRlclxuXG4gIC8qKlxuICAgKiBTUUwuXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlIHRoaXMgdXNlciBpcyBleHBlY3RlZCB0byB1c2UuXG4gICAqXG4gICAqIElmIHRoZSBkYXRhYmFzZSBleGlzdHMsIGNvbm5lY3QgcHJpdmlsZWdlcyBhcmUgZ3JhbnRlZC5cbiAgICpcbiAgICogU3BlY2lmeSBub25lIG9mIGBkYXRhYmFzZWAgb3IgYGRhdGFiYXNlTmFtZWAgb3Igb25seSBvbmUgb2YgdGhlbS5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gY29ubmVjdGlvbiB0byBhbnkgZGF0YWJhc2UgaXMgZ3JhbnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2U/OiBJRGF0YWJhc2VcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGF0YWJhc2UgbmFtZSB0aGlzIHVzZXIgaXMgZXhwZWN0ZWQgdG8gdXNlLlxuICAgKlxuICAgKiBJZiB0aGUgZGF0YWJhc2UgZXhpc3RzLCBjb25uZWN0IHByaXZpbGVnZXMgYXJlIGdyYW50ZWQuXG4gICAqXG4gICAqIFNwZWNpZnkgbm9uZSBvZiBgZGF0YWJhc2VgIG9yIGBkYXRhYmFzZU5hbWVgIG9yIG9ubHkgb25lIG9mIHRoZW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGNvbm5lY3Rpb24gdG8gYW55IGRhdGFiYXNlIGlzIGdyYW50ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBBIG5ldyBzZWNyZXQgaXMgY3JlYXRlZCBmb3IgdGhpcyB1c2VyLlxuICAgKlxuICAgKiBPcHRpb25hbGx5IGVuY3J5cHQgaXQgd2l0aCB0aGUgZ2l2ZW4ga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5XG5cbiAgLyoqXG4gICAqIEEgbmV3IHNlY3JldCBpcyBjcmVhdGVkIGZvciB0aGlzIHVzZXIuXG4gICAqXG4gICAqIE9wdGlvbmFsbHkgYWRkIHNlY3JldCBuYW1lIHRvIHRoZSBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXROYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBSb2xlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZ2VuZXJhdGVkIHNlY3JldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXQ6IElTZWNyZXRcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUm9sZVByb3BzKSB7XG4gICAgaWYgKFxuICAgICAgKHByb3BzLmRhdGFiYXNlICYmIHByb3BzLmRhdGFiYXNlTmFtZSkgfHxcbiAgICAgICghcHJvcHMuZGF0YWJhc2UgJiYgIXByb3BzLmRhdGFiYXNlTmFtZSlcbiAgICApXG4gICAgICB0aHJvdyBcIlNwZWNpZnkgZWl0aGVyIGRhdGFiYXNlIG9yIGRhdGFiYXNlTmFtZVwiXG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuICAgIHRoaXMuc2VjcmV0ID0gbmV3IFNlY3JldCh0aGlzLCBcIlNlY3JldFwiLCB7XG4gICAgICBzZWNyZXROYW1lOiBwcm9wcy5zZWNyZXROYW1lLFxuICAgICAgZW5jcnlwdGlvbktleTogcHJvcHMuZW5jcnlwdGlvbktleSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgR2VuZXJhdGVkIHNlY3JldCBmb3IgcG9zdGdyZXMgcm9sZSAke3Byb3BzLnJvbGVOYW1lfWAsXG4gICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICBwYXNzd29yZExlbmd0aDogMzAsIC8vIE9yYWNsZSBwYXNzd29yZCBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gMzAgY2hhcmFjdGVyc1xuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRiQ2x1c3RlcklkZW50aWZpZXI6IHByb3BzLnByb3ZpZGVyLmNsdXN0ZXIuY2x1c3RlcklkZW50aWZpZXIsXG4gICAgICAgICAgZW5naW5lOiBcInBvc3RncmVzXCIsXG4gICAgICAgICAgaG9zdDogcHJvcHMucHJvdmlkZXIuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQuaG9zdG5hbWUsXG4gICAgICAgICAgcG9ydDogcHJvcHMucHJvdmlkZXIuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQucG9ydCxcbiAgICAgICAgICB1c2VybmFtZTogcHJvcHMucm9sZU5hbWUsXG4gICAgICAgICAgZGJuYW1lOiBwcm9wcy5kYXRhYmFzZSA/IHByb3BzLmRhdGFiYXNlLmRhdGFiYXNlTmFtZSA6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiBcInBhc3N3b3JkXCIsXG4gICAgICAgIGV4Y2x1ZGVDaGFyYWN0ZXJzOiBcIiAlK35gIyQmKigpfFtde306Ozw+PyEnL0BcXFwiXFxcXFwiLFxuICAgICAgfSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KVxuICAgIGNvbnN0IHJvbGUgPSBuZXcgQ3VzdG9tUmVzb3VyY2VSb2xlKHRoaXMsIFwiUG9zdGdyZXNSb2xlXCIsIHtcbiAgICAgIHByb3ZpZGVyOiBwcm9wcy5wcm92aWRlcixcbiAgICAgIHJvbGVOYW1lOiBwcm9wcy5yb2xlTmFtZSxcbiAgICAgIHBhc3N3b3JkQXJuOiB0aGlzLnNlY3JldC5zZWNyZXRBcm4sXG4gICAgICBkYXRhYmFzZTogcHJvcHMuZGF0YWJhc2UsXG4gICAgICBkYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICB9KVxuICAgIHJvbGUubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuc2VjcmV0KVxuICAgIHRoaXMucm9sZU5hbWUgPSBwcm9wcy5yb2xlTmFtZVxuICAgIHRoaXMuc2VjcmV0LmdyYW50UmVhZChwcm9wcy5wcm92aWRlci5oYW5kbGVyKVxuICB9XG59XG4iXX0=
|
package/lib/schema.js
CHANGED
|
@@ -13,7 +13,7 @@ class Schema extends aws_cdk_lib_1.CustomResource {
|
|
|
13
13
|
Resource: enum_1.RdsSqlResource.SCHEMA,
|
|
14
14
|
ResourceId: props.schemaName,
|
|
15
15
|
SecretArn: props.provider.secret.secretArn,
|
|
16
|
-
|
|
16
|
+
DatabaseName: props.database ? props.database.databaseName : undefined,
|
|
17
17
|
},
|
|
18
18
|
});
|
|
19
19
|
this.node.addDependency(props.provider);
|
|
@@ -24,5 +24,5 @@ class Schema extends aws_cdk_lib_1.CustomResource {
|
|
|
24
24
|
}
|
|
25
25
|
exports.Schema = Schema;
|
|
26
26
|
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
Schema[_a] = { fqn: "cdk-rds-sql.Schema", version: "2.
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
Schema[_a] = { fqn: "cdk-rds-sql.Schema", version: "2.3.0" };
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUc1QyxpQ0FBdUM7QUFzQnZDLE1BQWEsTUFBTyxTQUFRLDRCQUFjO0lBR3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxNQUFNO2dCQUMvQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMxQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDdkU7U0FDRixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQ2xDLElBQUksS0FBSyxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDN0QsQ0FBQzs7QUFoQkgsd0JBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgSURhdGFiYXNlIH0gZnJvbSBcIi4vZGF0YWJhc2VcIlxuaW1wb3J0IHsgUmRzU3FsUmVzb3VyY2UgfSBmcm9tIFwiLi9lbnVtXCJcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYVByb3BzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFByb3ZpZGVyXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBkZWZhdWx0IGRhdGFiYXNlXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZT86IElEYXRhYmFzZVxuXG4gIC8qKlxuICAgKiBTUUwuXG4gICAqL1xuICByZWFkb25seSBzY2hlbWFOYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFNjaGVtYSBleHRlbmRzIEN1c3RvbVJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHNjaGVtYU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTY2hlbWFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFJlc291cmNlOiBSZHNTcWxSZXNvdXJjZS5TQ0hFTUEsXG4gICAgICAgIFJlc291cmNlSWQ6IHByb3BzLnNjaGVtYU5hbWUsXG4gICAgICAgIFNlY3JldEFybjogcHJvcHMucHJvdmlkZXIuc2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgRGF0YWJhc2VOYW1lOiBwcm9wcy5kYXRhYmFzZSA/IHByb3BzLmRhdGFiYXNlLmRhdGFiYXNlTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5wcm92aWRlcilcbiAgICB0aGlzLnNjaGVtYU5hbWUgPSBwcm9wcy5zY2hlbWFOYW1lXG4gICAgaWYgKHByb3BzLmRhdGFiYXNlKSB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5kYXRhYmFzZSlcbiAgfVxufVxuIl19
|
package/lib/sql.js
CHANGED
|
@@ -12,7 +12,7 @@ class Sql extends aws_cdk_lib_1.CustomResource {
|
|
|
12
12
|
properties: {
|
|
13
13
|
Resource: enum_1.RdsSqlResource.SQL,
|
|
14
14
|
SecretArn: props.provider.secret.secretArn,
|
|
15
|
-
|
|
15
|
+
DatabaseName: props.database ? props.database.databaseName : undefined,
|
|
16
16
|
Statement: props.statement,
|
|
17
17
|
},
|
|
18
18
|
});
|
|
@@ -23,5 +23,5 @@ class Sql extends aws_cdk_lib_1.CustomResource {
|
|
|
23
23
|
}
|
|
24
24
|
exports.Sql = Sql;
|
|
25
25
|
_a = JSII_RTTI_SYMBOL_1;
|
|
26
|
-
Sql[_a] = { fqn: "cdk-rds-sql.Sql", version: "2.
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
Sql[_a] = { fqn: "cdk-rds-sql.Sql", version: "2.3.0" };
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUc1QyxpQ0FBdUM7QUFzQnZDLE1BQWEsR0FBSSxTQUFRLDRCQUFjO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZTtRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDekMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxxQkFBYyxDQUFDLEdBQUc7Z0JBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMxQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3RFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUzthQUMzQjtTQUNGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLEtBQUssQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdELENBQUM7O0FBYkgsa0JBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBJRGF0YWJhc2UgfSBmcm9tIFwiLi9kYXRhYmFzZVwiXG5pbXBvcnQgeyBSZHNTcWxSZXNvdXJjZSB9IGZyb20gXCIuL2VudW1cIlxuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiLi9wcm92aWRlclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3FsUHJvcHMge1xuICAvKipcbiAgICogUHJvdmlkZXIuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogUHJvdmlkZXJcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIGRlZmF1bHQgZGF0YWJhc2VcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlPzogSURhdGFiYXNlXG5cbiAgLyoqXG4gICAqIFNRTC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlbWVudD86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgU3FsIGV4dGVuZHMgQ3VzdG9tUmVzb3VyY2Uge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3FsUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBSZXNvdXJjZTogUmRzU3FsUmVzb3VyY2UuU1FMLFxuICAgICAgICBTZWNyZXRBcm46IHByb3BzLnByb3ZpZGVyLnNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIERhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2UgPyBwcm9wcy5kYXRhYmFzZS5kYXRhYmFzZU5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgIFN0YXRlbWVudDogcHJvcHMuc3RhdGVtZW50LFxuICAgICAgfSxcbiAgICB9KVxuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLnByb3ZpZGVyKVxuICAgIGlmIChwcm9wcy5kYXRhYmFzZSkgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMuZGF0YWJhc2UpXG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/pg": "^8.6.6",
|
|
42
42
|
"@typescript-eslint/eslint-plugin": "^5",
|
|
43
43
|
"@typescript-eslint/parser": "^5",
|
|
44
|
-
"aws-cdk-lib": "2.
|
|
44
|
+
"aws-cdk-lib": "2.64.0",
|
|
45
45
|
"constructs": "10.1.168",
|
|
46
46
|
"esbuild": "^0.16.12",
|
|
47
47
|
"eslint": "^8",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"typescript": "^4.9.4"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"aws-cdk-lib": "^2.
|
|
69
|
+
"aws-cdk-lib": "^2.64.0",
|
|
70
70
|
"constructs": "^10.1.168"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
],
|
|
95
95
|
"main": "lib/index.js",
|
|
96
96
|
"license": "Apache-2.0",
|
|
97
|
-
"version": "2.
|
|
97
|
+
"version": "2.3.0",
|
|
98
98
|
"jest": {
|
|
99
99
|
"testMatch": [
|
|
100
100
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|