projen-cdktf-hybrid-construct 0.1.7 → 0.1.10

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/.projenrc.ts CHANGED
@@ -25,6 +25,7 @@ const project = new typescript.TypeScriptProject({
25
25
  label: "auto-approve",
26
26
  allowedUsernames: ["DanielMSchmidt", "github-bot"],
27
27
  },
28
+ gitignore: [".idea/"],
28
29
  });
29
30
  project.tsconfig?.exclude?.push("src/exampleCode/**");
30
31
  project.tsconfig?.exclude?.push("example/**");
package/README.md CHANGED
@@ -11,7 +11,7 @@ npx projen typescript
11
11
  npm install projen-cdktf-hybrid-construct
12
12
  ```
13
13
 
14
- Edit the `.projenrc.js`:
14
+ Edit the `.projenrc.ts`:
15
15
 
16
16
  ```js
17
17
  const { HybridModule } = require("projen-cdktf-hybrid-construct");
@@ -33,7 +33,7 @@ project.synth();
33
33
 
34
34
  - [x] Add dedicated file for HCL templates
35
35
  - [x] Add example folder
36
- - [ ] Add `terraform` example folder
36
+ - [x] Add `terraform` example folder
37
37
  - [ ] [Auto-generate parts of the docs](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/e90c877a741ab3cc4215376a70f7bcc360b6a3d2/.github/workflows/pre-commit.yml)
38
38
  - [ ] Add testing strategy
39
39
  - [ ] Add deployment scripts to Artifactory
@@ -1,6 +1,7 @@
1
1
  # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
2
 
3
3
  *.snap linguist-generated
4
+ /./scripts/tf-module-test.sh linguist-generated
4
5
  /.eslintrc.json linguist-generated
5
6
  /.gitattributes linguist-generated
6
7
  /.github/pull_request_template.md linguist-generated
@@ -0,0 +1,18 @@
1
+ import { HybridModule } from "../lib";
2
+
3
+ const project = new HybridModule({
4
+ name: "my-module",
5
+ author: "Daniel Schmidt",
6
+ repository: "github.com/DanielMSchmidt/my-module",
7
+ defaultReleaseBranch: "main",
8
+ authorAddress: "danielmschmidt92@gmail.com",
9
+ repositoryUrl: "github.com/DanielMSchmidt/my-module",
10
+ outdir: ".",
11
+ terraformExamplesFolder: "terraform",
12
+ terraformProvider: "aws",
13
+ terraformProviderAwsConfig: {
14
+ region: "eu-central-1",
15
+ requiredProviderVersion: "3.74",
16
+ },
17
+ });
18
+ project.synth();
@@ -28,7 +28,8 @@
28
28
  "upgrade": "npx projen upgrade",
29
29
  "upgrade-projen": "npx projen upgrade-projen",
30
30
  "watch": "npx projen watch",
31
- "projen": "npx projen"
31
+ "projen": "npx projen",
32
+ "terraform:test": "./scripts/tf-module-test.sh"
32
33
  },
33
34
  "author": {
34
35
  "name": "Daniel Schmidt",
@@ -96,11 +97,13 @@
96
97
  "coverageDirectory": "coverage",
97
98
  "coveragePathIgnorePatterns": [
98
99
  "/node_modules/",
99
- "dist"
100
+ "dist",
101
+ "terraform"
100
102
  ],
101
103
  "testPathIgnorePatterns": [
102
104
  "/node_modules/",
103
- "dist"
105
+ "dist",
106
+ "terraform"
104
107
  ],
105
108
  "watchPathIgnorePatterns": [
106
109
  "/node_modules/"
@@ -0,0 +1,10 @@
1
+
2
+ #!/bin/bash
3
+ # This script is created by projen, do not edit it directly.
4
+ set -e
5
+
6
+ terraform -chdir=terraform init --upgrade
7
+ terraform -chdir=terraform fmt
8
+ terraform -chdir=terraform validate
9
+ terraform -chdir=terraform plan
10
+
@@ -0,0 +1,8 @@
1
+ # Please add here some pure HCL tests for your modules in order to test HCL Interoperability
2
+
3
+ Examples:
4
+
5
+ module "my_awesome_test" {
6
+ source = "../modules/my-awesome-modules"
7
+ ...variables...
8
+ }
@@ -0,0 +1,16 @@
1
+ terraform {
2
+ # Limit provider version (some modules are not compatible with aws 4.x)
3
+ required_providers {
4
+ aws = {
5
+ source = "hashicorp/aws"
6
+ version = "~> 3.74"
7
+ }
8
+ }
9
+ # Terraform binary version constraint
10
+ required_version = "~> 1.1.0"
11
+ }
12
+
13
+
14
+ provider "aws" {
15
+ region = "eu-central-1"
16
+ }
package/lib/index.d.ts CHANGED
@@ -1,9 +1,22 @@
1
1
  import { ConstructLibrary, ConstructLibraryOptions } from "projen/lib/cdk";
2
+ declare type TerraformProviderAwsConfig = {
3
+ region: string;
4
+ requiredProviderVersion: string;
5
+ };
6
+ declare type TerraformProviderAzureConfig = {
7
+ location: string;
8
+ requiredProviderVersion: string;
9
+ resourceGroupName: string;
10
+ };
2
11
  declare type HybridModuleOptions = ConstructLibraryOptions & {
3
12
  cdktfVersion?: string;
4
13
  constructVersion?: string;
5
14
  repository: string;
6
15
  author: string;
16
+ terraformExamplesFolder: string;
17
+ terraformProvider: string;
18
+ terraformProviderAwsConfig?: TerraformProviderAwsConfig;
19
+ terraformProviderAzureConfig?: TerraformProviderAzureConfig;
7
20
  };
8
21
  export declare class HybridModule extends ConstructLibrary {
9
22
  constructor(config: HybridModuleOptions);
package/lib/index.js CHANGED
@@ -44,6 +44,64 @@ const app = new App();
44
44
  new MyAwesomeModule(app, "my-awesome-module");
45
45
  app.synth();
46
46
  `;
47
+ const terraformAwsMainSrcCode = `
48
+ terraform {
49
+ # Limit provider version (some modules are not compatible with aws 4.x)
50
+ required_providers {
51
+ aws = {
52
+ source = "hashicorp/aws"
53
+ version = "~> __requiredProviderVersion__"
54
+ }
55
+ }
56
+ # Terraform binary version constraint
57
+ required_version = "~> 1.1.0"
58
+ }
59
+
60
+
61
+ provider "aws" {
62
+ region = "__region__"
63
+ }
64
+ `;
65
+ const terraformAzureMainSrcCode = `
66
+ # Configure the Azure provider
67
+ terraform {
68
+ required_providers {
69
+ azurerm = {
70
+ source = "hashicorp/azurerm"
71
+ version = "~> __requiredProviderVersion__"
72
+ }
73
+ }
74
+
75
+ required_version = ">= 1.1.0"
76
+ }
77
+
78
+ provider "azurerm" {
79
+ features {}
80
+ }
81
+
82
+ resource "azurerm_resource_group" "rg" {
83
+ name = "__resourceGroupName__"
84
+ location = "__location__"
85
+ }
86
+ `;
87
+ const terraformMainSrcCodeMap = {
88
+ aws: {
89
+ srcCode: terraformAwsMainSrcCode,
90
+ },
91
+ azure: {
92
+ srcCode: terraformAzureMainSrcCode,
93
+ },
94
+ };
95
+ const terraformReadmeDocs = `
96
+ # Please add here some pure HCL tests for your modules in order to test HCL Interoperability
97
+
98
+ Examples:
99
+
100
+ module "my_awesome_test" {
101
+ source = "../modules/my-awesome-modules"
102
+ ...variables...
103
+ }
104
+ `;
47
105
  class ScriptFile extends projen_1.FileBase {
48
106
  constructor(project, path, content) {
49
107
  super(project, path, {
@@ -57,13 +115,14 @@ class ScriptFile extends projen_1.FileBase {
57
115
  }
58
116
  class HybridModule extends cdk_1.ConstructLibrary {
59
117
  constructor(config) {
60
- var _a, _b;
118
+ var _a, _b, _c;
61
119
  super({ ...defaults, ...config, sampleCode: false });
62
120
  const constructVersion = config.constructVersion || "^10.0.25";
63
121
  const cdktfVersion = config.cdktfVersion || "^0.9.4";
64
122
  this.addPeerDeps(`constructs@${constructVersion}`, `cdktf@${cdktfVersion}`);
65
123
  this.addDevDeps(`cdktf-cli@${cdktfVersion}`, "ts-node");
66
124
  this.addKeywords("cdktf", "cdktf-hybrid");
125
+ this.setScript("terraform:test", "./scripts/tf-module-test.sh");
67
126
  // Module Entrypoint
68
127
  this.addDeps("cdktf-tf-module-stack");
69
128
  const moduleDocs = `
@@ -92,7 +151,33 @@ module "eks_managed_node_group" {
92
151
  }, null, 2),
93
152
  },
94
153
  });
154
+ // Retrieve correct TF main stuff
155
+ let mainTfFile = terraformMainSrcCodeMap[config.terraformProvider].srcCode.trim();
156
+ let configProperty = {};
157
+ switch (config.terraformProvider) {
158
+ case "aws": {
159
+ configProperty = config.terraformProviderAwsConfig;
160
+ break;
161
+ }
162
+ case "azure": {
163
+ configProperty = config.terraformProviderAzureConfig;
164
+ break;
165
+ }
166
+ default: {
167
+ throw new Error("Need to define correctly a Provider, only [aws,azure,gcp] allowed");
168
+ }
169
+ }
170
+ Object.keys(configProperty).forEach((key) => {
171
+ mainTfFile = mainTfFile.replace(`__${key}__`, configProperty[key]);
172
+ });
173
+ new projen_1.SampleDir(this, config.terraformExamplesFolder, {
174
+ files: {
175
+ "main.tf": mainTfFile,
176
+ "README.md": terraformReadmeDocs.trim(),
177
+ },
178
+ });
95
179
  this.gitignore.addPatterns("src/.gen", "src/cdktf.out", "src/modules");
180
+ this.gitignore.addPatterns(`${config.terraformExamplesFolder}/.terraform`, `${config.terraformExamplesFolder}/.terraform.lock.hcl`);
96
181
  this.compileTask.prependExec("cdktf get", {
97
182
  cwd: this.srcdir,
98
183
  });
@@ -148,7 +233,19 @@ done
148
233
  });
149
234
  // ignore dist in tests
150
235
  (_b = this.jest) === null || _b === void 0 ? void 0 : _b.addIgnorePattern("dist");
236
+ new ScriptFile(this, "./scripts/tf-module-test.sh", `
237
+ #!/bin/bash
238
+ # This script is created by projen, do not edit it directly.
239
+ set -e
240
+
241
+ terraform -chdir=terraform init --upgrade
242
+ terraform -chdir=terraform fmt
243
+ terraform -chdir=terraform validate
244
+ terraform -chdir=terraform plan
245
+ `);
246
+ this.testTask.exec("./scripts/tf-module-test.sh");
247
+ (_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern("terraform");
151
248
  }
152
249
  }
153
250
  exports.HybridModule = HybridModule;
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWlFO0FBQ2pFLHdDQUEyRTtBQVMzRSxNQUFNLFFBQVEsR0FBRztJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsb0JBQW9CLEVBQUUsTUFBTTtDQUM3QixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7O0NBWXhCLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCckIsQ0FBQztBQUVGLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxJQUFZLEVBQVUsT0FBZTtRQUNqRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNuQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFIK0MsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUluRSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBYSxZQUFhLFNBQVEsc0JBQWdCO0lBQ2hELFlBQVksTUFBMkI7O1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLFVBQVUsQ0FBQztRQUMvRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQztRQUVyRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsZ0JBQWdCLEVBQUUsRUFBRSxTQUFTLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLFlBQVksRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUc7Ozs7Ozs7Y0FRbkIsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxVQUFVLDBDQUNiLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEVBQ2xDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQ2hDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUksZ0JBQ25DOzs7O0tBSUcsQ0FBQztRQUVGLElBQUksa0JBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRTtnQkFDbkMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3BDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUMxQjtvQkFDRSxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsR0FBRyxFQUFFLDBCQUEwQjtvQkFDL0Isa0JBQWtCLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDNUMsZ0JBQWdCLEVBQUUsRUFBRTtvQkFDcEIsTUFBTSxFQUFFLFNBQVM7aUJBQ2xCLEVBQ0QsSUFBSSxFQUNKLENBQUMsQ0FDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDeEMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDaEIsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FDWixJQUFJLEVBQ0oseUJBQXlCLEVBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwQ0wsQ0FBQyxJQUFJLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDakQsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQUM7UUFFSCx1QkFBdUI7UUFDdkIsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFoSEQsb0NBZ0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0TGlicmFyeSwgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9jZGtcIjtcblxudHlwZSBIeWJyaWRNb2R1bGVPcHRpb25zID0gQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgJiB7XG4gIGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcbiAgcmVwb3NpdG9yeTogc3RyaW5nO1xuICBhdXRob3I6IHN0cmluZztcbn07XG5cbmNvbnN0IGRlZmF1bHRzID0ge1xuICBwcmV0dGllcjogdHJ1ZSxcbiAgcHJvamVucmNUczogdHJ1ZSxcbiAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxufTtcblxuY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXlDb25zdHJ1Y3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlBOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHB1YmxpYyBjb25maWc6IE15Q29uc3RydWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gIH1cbn1cbmA7XG5cbmNvbnN0IG1vZHVsZVNyY0NvZGUgPSBgXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBURk1vZHVsZVN0YWNrIH0gZnJvbSBcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5jbGFzcyBNeUF3ZXNvbWVNb2R1bGUgZXh0ZW5kcyBURk1vZHVsZVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgTXlDb25zdHJ1Y3QodGhpcywgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbi8vIFRoaXMgaXMgdGhlIG5hbWUgdGhlIG1vZHVsZSBjYW4gYmUgZm91bmQgdW5kZXIuIFxuLy8gV2UgZXhwZWN0IGEgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkuXG4vLyBUaGUgUkVBRE1FLm1kIGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUuXG5uZXcgTXlBd2Vzb21lTW9kdWxlKGFwcCwgXCJteS1hd2Vzb21lLW1vZHVsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuY2xhc3MgU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcGF0aDogc3RyaW5nLCBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QsIHBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIeWJyaWRNb2R1bGUgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoeyAuLi5kZWZhdWx0cywgLi4uY29uZmlnLCBzYW1wbGVDb2RlOiBmYWxzZSB9KTtcbiAgICBjb25zdCBjb25zdHJ1Y3RWZXJzaW9uID0gY29uZmlnLmNvbnN0cnVjdFZlcnNpb24gfHwgXCJeMTAuMC4yNVwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IGNvbmZpZy5jZGt0ZlZlcnNpb24gfHwgXCJeMC45LjRcIjtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuXG4gICAgLy8gTW9kdWxlIEVudHJ5cG9pbnRcbiAgICB0aGlzLmFkZERlcHMoXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIik7XG4gICAgY29uc3QgbW9kdWxlRG9jcyA9IGBcbiMgTXkgQXdlc29tZSBNb2R1bGVcblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgaGNsXG5tb2R1bGUgXCJla3NfbWFuYWdlZF9ub2RlX2dyb3VwXCIge1xuICBzb3VyY2UgPSBcIiR7XG4gICAgY29uZmlnLnJlcG9zaXRvcnlcbiAgICAgID8ucmVwbGFjZShcImh0dHBzOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiaHR0cDovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImdpdGh1Yi5jb20vXCIsIFwiXCIpIHx8IFwibXktZ2l0aHViLXJlcG9cIlxuICB9Ly9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlXCJcblxufVxuXFxgXFxgXFxgXG4gICAgYDtcblxuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgdGhpcy5zcmNkaXIsIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiaW5kZXgudHNcIjogY29uc3RydWN0U3JjQ29kZS50cmltKCksXG4gICAgICAgIFwidGZNb2R1bGVzLnRzXCI6IG1vZHVsZVNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCI6IG1vZHVsZURvY3MudHJpbSgpLFxuICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgYXBwOiBcIm5weCB0cy1ub2RlIHRmTW9kdWxlcy50c1wiLFxuICAgICAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvbnVsbEAzLjEuMVwiXSwgLy8gV2UgbmVlZCBhdCBsZWFzdCBhIHByb3ZpZGVyIGZvciBnZXQgdG8gc3VjY2VlZFxuICAgICAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW10sXG4gICAgICAgICAgICBvdXRwdXQ6IFwibW9kdWxlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXCJzcmMvLmdlblwiLCBcInNyYy9jZGt0Zi5vdXRcIiwgXCJzcmMvbW9kdWxlc1wiKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnByZXBlbmRFeGVjKFwiY2RrdGYgZ2V0XCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgfSk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiY2RrdGYgc3ludGhcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICAgIG5hbWU6IFwiU3ludGhlc2l6ZSBtb2R1bGUgSENMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxuU0NSSVBUUEFUSD1cIiQoIGNkIC0tIFwiJChkaXJuYW1lIFwiJDBcIilcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVwiXG5cbiMgY2hlY2sgaWYgdGhlIG1vZHVsZSBmb2xkZXIgaGFzIGJlZW4gZ2VuZXJhdGVkIGFzIGV4cGVjdGVkXG5NT0RVTEVTX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9tb2R1bGVzL3N0YWNrc1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5TUkNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5UQVJHRVRfRk9MREVSPVwiJFNDUklQVFBBVEgvLi4vbW9kdWxlc1wiXG5cbmlmIFsgISAtZCBcIiRNT0RVTEVTX0ZPTERFUlwiIF07IHRoZW5cbiAgZWNobyBcIkV4cGVjdGVkIG1vZHVsZSBmb2xkZXIgdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSXCJcbiAgZXhpdCAxXG5maVxuXG5jZCBcIiRNT0RVTEVTX0ZPTERFUlwiXG5mb3IgZCBpbiAqLyA7IGRvXG4gICAgWyAtTCBcIlxcJHtkJS99XCIgXSAmJiBjb250aW51ZVxuXG4gICAgZGlybmFtZT1cIlxcJHtkJS99XCJcblxuXG4gICAgIyBDaGVjayBpZiBldmVyeXRoaW5nIGlzIGluIHBsYWNlXG4gICAgaWYgWyAhIC1mIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIGNvZGUgZm9yICRkaXJuYW1lIGF0IGNkay50Zi5qc29uIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgaWYgWyAhIC1mIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgRG9jdW1lbnRhdGlvbiBmb3IgJGRpcm5hbWUgYXQgJGRpcm5hbWUubWQgdG8gZXhpc3QgYXQgJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgICMgQ29weSBtb2R1bGUgYW5kIHJlYWRtZSB0b2dldGhlclxuICAgIGVjaG8gXCJDb3B5aW5nIENvZGUgYW5kIFJFQURNRSBmb3IgbW9kdWxlICRkaXJuYW1lXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCJcbiAgICBjcCBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIlxuICAgIGNwIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiXG5kb25lXG5gLnRyaW0oKVxuICAgICk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiLi9zY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLCB7XG4gICAgICBuYW1lOiBcIkNvcHkgSENMIE1vZHVsZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGlnbm9yZSBkaXN0IGluIHRlc3RzXG4gICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKFwiZGlzdFwiKTtcbiAgfVxufVxuIl19
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWlFO0FBQ2pFLHdDQUEyRTtBQXdCM0UsTUFBTSxRQUFRLEdBQUc7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLG9CQUFvQixFQUFFLE1BQU07Q0FDN0IsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7Ozs7Ozs7Ozs7OztDQVl4QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCL0IsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCakMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQTJDO0lBQ3RFLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSx1QkFBdUI7S0FDakM7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUseUJBQXlCO0tBQ25DO0NBQ0YsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7OztLQVN2QixDQUFDO0FBRU4sTUFBTSxVQUFXLFNBQVEsaUJBQVE7SUFDL0IsWUFBWSxPQUFnQixFQUFFLElBQVksRUFBVSxPQUFlO1FBQ2pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUgrQyxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBSW5FLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFhLFlBQWEsU0FBUSxzQkFBZ0I7SUFDaEQsWUFBWSxNQUEyQjs7UUFDckMsS0FBSyxDQUFDLEVBQUUsR0FBRyxR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VSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FDeEIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLGFBQWEsRUFDOUMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLHNCQUFzQixDQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQ3hDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2hCLElBQUksRUFBRSx1QkFBdUI7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLHlCQUF5QixFQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMENMLENBQUMsSUFBSSxFQUFFLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ2pELElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLDZCQUE2QixFQUM3Qjs7Ozs7Ozs7O1NBU0csQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNsRCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXZLRCxvQ0F1S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlQmFzZSwgSVJlc29sdmVyLCBQcm9qZWN0LCBTYW1wbGVEaXIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuXG50eXBlIFRlcnJhZm9ybVByb3ZpZGVyQXdzQ29uZmlnID0ge1xuICByZWdpb246IHN0cmluZztcbiAgcmVxdWlyZWRQcm92aWRlclZlcnNpb246IHN0cmluZztcbn07XG5cbnR5cGUgVGVycmFmb3JtUHJvdmlkZXJBenVyZUNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZztcbiAgcmVxdWlyZWRQcm92aWRlclZlcnNpb246IHN0cmluZztcbiAgcmVzb3VyY2VHcm91cE5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgSHlicmlkTW9kdWxlT3B0aW9ucyA9IENvbnN0cnVjdExpYnJhcnlPcHRpb25zICYge1xuICBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIHJlcG9zaXRvcnk6IHN0cmluZztcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIHRlcnJhZm9ybUV4YW1wbGVzRm9sZGVyOiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyOiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyQXdzQ29uZmlnPzogVGVycmFmb3JtUHJvdmlkZXJBd3NDb25maWc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyQXp1cmVDb25maWc/OiBUZXJyYWZvcm1Qcm92aWRlckF6dXJlQ29uZmlnO1xufTtcblxuY29uc3QgZGVmYXVsdHMgPSB7XG4gIHByZXR0aWVyOiB0cnVlLFxuICBwcm9qZW5yY1RzOiB0cnVlLFxuICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogXCJtYWluXCIsXG59O1xuXG5jb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNeUNvbnN0cnVjdE9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eUE6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHVibGljIGNvbmZpZzogTXlDb25zdHJ1Y3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuYDtcblxuY29uc3QgbW9kdWxlU3JjQ29kZSA9IGBcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRGTW9kdWxlU3RhY2sgfSBmcm9tIFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1Bd3NNYWluU3JjQ29kZSA9IGBcbnRlcnJhZm9ybSB7XG4gICMgTGltaXQgcHJvdmlkZXIgdmVyc2lvbiAoc29tZSBtb2R1bGVzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIGF3cyA0LngpXG4gIHJlcXVpcmVkX3Byb3ZpZGVycyB7XG4gICAgYXdzID0ge1xuICAgICAgc291cmNlICA9IFwiaGFzaGljb3JwL2F3c1wiXG4gICAgICB2ZXJzaW9uID0gXCJ+PiBfX3JlcXVpcmVkUHJvdmlkZXJWZXJzaW9uX19cIlxuICAgIH1cbiAgfVxuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIn4+IDEuMS4wXCJcbn1cblxuXG5wcm92aWRlciBcImF3c1wiIHtcbiAgcmVnaW9uID0gXCJfX3JlZ2lvbl9fXCJcbn1cbmA7XG5cbmNvbnN0IHRlcnJhZm9ybUF6dXJlTWFpblNyY0NvZGUgPSBgXG4jIENvbmZpZ3VyZSB0aGUgQXp1cmUgcHJvdmlkZXJcbnRlcnJhZm9ybSB7XG4gIHJlcXVpcmVkX3Byb3ZpZGVycyB7XG4gICAgYXp1cmVybSA9IHtcbiAgICAgIHNvdXJjZSAgPSBcImhhc2hpY29ycC9henVyZXJtXCJcbiAgICAgIHZlcnNpb24gPSBcIn4+IF9fcmVxdWlyZWRQcm92aWRlclZlcnNpb25fX1wiXG4gICAgfVxuICB9XG5cbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwiPj0gMS4xLjBcIlxufVxuXG5wcm92aWRlciBcImF6dXJlcm1cIiB7XG4gIGZlYXR1cmVzIHt9XG59XG5cbnJlc291cmNlIFwiYXp1cmVybV9yZXNvdXJjZV9ncm91cFwiIFwicmdcIiB7XG4gIG5hbWUgICAgID0gXCJfX3Jlc291cmNlR3JvdXBOYW1lX19cIlxuICBsb2NhdGlvbiA9IFwiX19sb2NhdGlvbl9fXCJcbn1cbmA7XG5cbmNvbnN0IHRlcnJhZm9ybU1haW5TcmNDb2RlTWFwOiB7IFtrZXk6IHN0cmluZ106IHsgc3JjQ29kZTogc3RyaW5nIH0gfSA9IHtcbiAgYXdzOiB7XG4gICAgc3JjQ29kZTogdGVycmFmb3JtQXdzTWFpblNyY0NvZGUsXG4gIH0sXG4gIGF6dXJlOiB7XG4gICAgc3JjQ29kZTogdGVycmFmb3JtQXp1cmVNYWluU3JjQ29kZSxcbiAgfSxcbn07XG5cbmNvbnN0IHRlcnJhZm9ybVJlYWRtZURvY3MgPSBgXG4jIFBsZWFzZSBhZGQgaGVyZSBzb21lIHB1cmUgSENMIHRlc3RzIGZvciB5b3VyIG1vZHVsZXMgaW4gb3JkZXIgdG8gdGVzdCBIQ0wgSW50ZXJvcGVyYWJpbGl0eVxuXG5FeGFtcGxlczpcblxubW9kdWxlIFwibXlfYXdlc29tZV90ZXN0XCIge1xuICBzb3VyY2UgPSBcIi4uL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVzXCJcbiAgLi4udmFyaWFibGVzLi4uXG59XG4gICAgYDtcblxuY2xhc3MgU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcGF0aDogc3RyaW5nLCBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QsIHBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIeWJyaWRNb2R1bGUgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoeyAuLi5kZWZhdWx0cywgLi4uY29uZmlnLCBzYW1wbGVDb2RlOiBmYWxzZSB9KTtcbiAgICBjb25zdCBjb25zdHJ1Y3RWZXJzaW9uID0gY29uZmlnLmNvbnN0cnVjdFZlcnNpb24gfHwgXCJeMTAuMC4yNVwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IGNvbmZpZy5jZGt0ZlZlcnNpb24gfHwgXCJeMC45LjRcIjtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuICAgIHRoaXMuc2V0U2NyaXB0KFwidGVycmFmb3JtOnRlc3RcIiwgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG5cbiAgICAvLyBNb2R1bGUgRW50cnlwb2ludFxuICAgIHRoaXMuYWRkRGVwcyhcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiKTtcbiAgICBjb25zdCBtb2R1bGVEb2NzID0gYFxuIyBNeSBBd2Vzb21lIE1vZHVsZVxuXG4jIyBVc2FnZVxuXG5cXGBcXGBcXGBoY2xcbm1vZHVsZSBcImVrc19tYW5hZ2VkX25vZGVfZ3JvdXBcIiB7XG4gIHNvdXJjZSA9IFwiJHtcbiAgICBjb25maWcucmVwb3NpdG9yeVxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDJcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBSZXRyaWV2ZSBjb3JyZWN0IFRGIG1haW4gc3R1ZmZcbiAgICBsZXQgbWFpblRmRmlsZSA9XG4gICAgICB0ZXJyYWZvcm1NYWluU3JjQ29kZU1hcFtjb25maWcudGVycmFmb3JtUHJvdmlkZXJdLnNyY0NvZGUudHJpbSgpO1xuXG4gICAgbGV0IGNvbmZpZ1Byb3BlcnR5OiBhbnkgPSB7fTtcbiAgICBzd2l0Y2ggKGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgY2FzZSBcImF3c1wiOiB7XG4gICAgICAgIGNvbmZpZ1Byb3BlcnR5ID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVyQXdzQ29uZmlnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJhenVyZVwiOiB7XG4gICAgICAgIGNvbmZpZ1Byb3BlcnR5ID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVyQXp1cmVDb25maWc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJOZWVkIHRvIGRlZmluZSBjb3JyZWN0bHkgYSBQcm92aWRlciwgb25seSBbYXdzLGF6dXJlLGdjcF0gYWxsb3dlZFwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXMoY29uZmlnUHJvcGVydHkpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBtYWluVGZGaWxlID0gbWFpblRmRmlsZS5yZXBsYWNlKGBfXyR7a2V5fV9fYCwgY29uZmlnUHJvcGVydHlba2V5XSk7XG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIGNvbmZpZy50ZXJyYWZvcm1FeGFtcGxlc0ZvbGRlciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJtYWluLnRmXCI6IG1haW5UZkZpbGUsXG4gICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXG4gICAgICBgJHtjb25maWcudGVycmFmb3JtRXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgYCR7Y29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtLmxvY2suaGNsYFxuICAgICk7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcImNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuZG9uZVxuYC50cmltKClcbiAgICApO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcIi4vc2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIiwge1xuICAgICAgbmFtZTogXCJDb3B5IEhDTCBNb2R1bGVzXCIsXG4gICAgfSk7XG5cbiAgICAvLyBpZ25vcmUgZGlzdCBpbiB0ZXN0c1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcImRpc3RcIik7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cbnRlcnJhZm9ybSAtY2hkaXI9dGVycmFmb3JtIGluaXQgLS11cGdyYWRlXG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSBmbXRcbnRlcnJhZm9ybSAtY2hkaXI9dGVycmFmb3JtIHZhbGlkYXRlXG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSBwbGFuICAgICBcbiAgICAgICAgYFxuICAgICk7XG5cbiAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG4gICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKFwidGVycmFmb3JtXCIpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -35,7 +35,7 @@
35
35
  "eslint-config-prettier": "^8.5.0",
36
36
  "eslint-import-resolver-node": "^0.3.6",
37
37
  "eslint-import-resolver-typescript": "^2.7.1",
38
- "eslint-plugin-import": "^2.25.4",
38
+ "eslint-plugin-import": "^2.26.0",
39
39
  "eslint-plugin-prettier": "^4.0.0",
40
40
  "fs-extra": "^10.0.1",
41
41
  "glob": "^7.2.0",
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "main": "lib/index.js",
57
57
  "license": "MIT",
58
- "version": "0.1.7",
58
+ "version": "0.1.10",
59
59
  "jest": {
60
60
  "testMatch": [
61
61
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",