@cdktn/cli-core 0.23.0-pre.4 → 0.23.0-pre.41

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.
Files changed (169) hide show
  1. package/ambient.d.ts +0 -1
  2. package/build/lib/cdktf-config.d.ts.map +1 -0
  3. package/build/lib/cdktf-config.js +108 -0
  4. package/build/lib/cdktf-project-io-handler.d.ts.map +1 -0
  5. package/build/lib/cdktf-project-io-handler.js +84 -0
  6. package/build/lib/cdktf-project.d.ts.map +1 -0
  7. package/build/lib/cdktf-project.js +371 -0
  8. package/{src → build}/lib/cdktf-stack.d.ts +1 -0
  9. package/build/lib/cdktf-stack.d.ts.map +1 -0
  10. package/build/lib/cdktf-stack.js +386 -0
  11. package/build/lib/convert.d.ts.map +1 -0
  12. package/build/lib/convert.js +51 -0
  13. package/build/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
  14. package/build/lib/dependencies/cdktf-config-manager.js +36 -0
  15. package/build/lib/dependencies/dependency-manager.d.ts.map +1 -0
  16. package/build/lib/dependencies/dependency-manager.js +393 -0
  17. package/build/lib/dependencies/package-manager.d.ts.map +1 -0
  18. package/build/lib/dependencies/package-manager.js +581 -0
  19. package/build/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
  20. package/build/lib/dependencies/prebuilt-providers.js +221 -0
  21. package/build/lib/dependencies/registry-api.d.ts.map +1 -0
  22. package/build/lib/dependencies/registry-api.js +77 -0
  23. package/build/lib/dependencies/version-constraints.d.ts.map +1 -0
  24. package/build/lib/dependencies/version-constraints.js +95 -0
  25. package/build/lib/error-reporting.d.ts.map +1 -0
  26. package/build/lib/error-reporting.js +133 -0
  27. package/build/lib/errors.d.ts.map +1 -0
  28. package/build/lib/errors.js +10 -0
  29. package/build/lib/execution-logs.d.ts.map +1 -0
  30. package/build/lib/execution-logs.js +47 -0
  31. package/build/lib/get.d.ts.map +1 -0
  32. package/build/lib/get.js +90 -0
  33. package/build/lib/helpers/stack-helpers.d.ts.map +1 -0
  34. package/build/lib/helpers/stack-helpers.js +155 -0
  35. package/build/lib/index.d.ts.map +1 -0
  36. package/{src → build}/lib/index.js +1 -2
  37. package/build/lib/init.d.ts.map +1 -0
  38. package/build/lib/init.js +131 -0
  39. package/build/lib/local-provider-constraints.d.ts.map +1 -0
  40. package/build/lib/local-provider-constraints.js +95 -0
  41. package/build/lib/local-provider-versions.d.ts.map +1 -0
  42. package/build/lib/local-provider-versions.js +73 -0
  43. package/{src → build}/lib/models/deploy-machine.d.ts +3 -11
  44. package/build/lib/models/deploy-machine.d.ts.map +1 -0
  45. package/build/lib/models/deploy-machine.js +283 -0
  46. package/build/lib/models/interactive-process.d.ts +28 -0
  47. package/build/lib/models/interactive-process.d.ts.map +1 -0
  48. package/build/lib/models/interactive-process.js +59 -0
  49. package/{src → build}/lib/models/schema.d.ts.map +1 -1
  50. package/build/lib/models/schema.js +181 -0
  51. package/{src → build}/lib/models/terraform-cli.d.ts +1 -0
  52. package/build/lib/models/terraform-cli.d.ts.map +1 -0
  53. package/build/lib/models/terraform-cli.js +355 -0
  54. package/build/lib/models/terraform.d.ts.map +1 -0
  55. package/build/lib/models/terraform.js +72 -0
  56. package/build/lib/output.d.ts.map +1 -0
  57. package/build/lib/output.js +211 -0
  58. package/build/lib/provider-add.d.ts.map +1 -0
  59. package/build/lib/provider-add.js +30 -0
  60. package/build/lib/server/terraform-logs.d.ts.map +1 -0
  61. package/build/lib/server/terraform-logs.js +19 -0
  62. package/{src → build}/lib/synth-stack.d.ts +1 -0
  63. package/build/lib/synth-stack.d.ts.map +1 -0
  64. package/build/lib/synth-stack.js +251 -0
  65. package/build/lib/synth.d.ts.map +1 -0
  66. package/build/lib/synth.js +67 -0
  67. package/{src → build}/lib/terraform-json.d.ts.map +1 -1
  68. package/build/lib/terraform-json.js +82 -0
  69. package/build/lib/terraform-provider-lock.d.ts.map +1 -0
  70. package/build/lib/terraform-provider-lock.js +95 -0
  71. package/{src → build}/lib/watch.d.ts +1 -0
  72. package/build/lib/watch.d.ts.map +1 -0
  73. package/build/lib/watch.js +155 -0
  74. package/eslint.config.mjs +2 -66
  75. package/package.json +32 -44
  76. package/templates/go/go.mod +1 -1
  77. package/templates/python/Pipfile +1 -1
  78. package/templates/typescript/.hooks.sscaff.js +1 -1
  79. package/src/lib/cdktf-config.d.ts.map +0 -1
  80. package/src/lib/cdktf-config.js +0 -108
  81. package/src/lib/cdktf-project-io-handler.d.ts.map +0 -1
  82. package/src/lib/cdktf-project-io-handler.js +0 -84
  83. package/src/lib/cdktf-project.d.ts.map +0 -1
  84. package/src/lib/cdktf-project.js +0 -371
  85. package/src/lib/cdktf-stack.d.ts.map +0 -1
  86. package/src/lib/cdktf-stack.js +0 -386
  87. package/src/lib/convert.d.ts.map +0 -1
  88. package/src/lib/convert.js +0 -51
  89. package/src/lib/dependencies/cdktf-config-manager.d.ts.map +0 -1
  90. package/src/lib/dependencies/cdktf-config-manager.js +0 -36
  91. package/src/lib/dependencies/dependency-manager.d.ts.map +0 -1
  92. package/src/lib/dependencies/dependency-manager.js +0 -393
  93. package/src/lib/dependencies/package-manager.d.ts.map +0 -1
  94. package/src/lib/dependencies/package-manager.js +0 -581
  95. package/src/lib/dependencies/prebuilt-providers.d.ts.map +0 -1
  96. package/src/lib/dependencies/prebuilt-providers.js +0 -220
  97. package/src/lib/dependencies/registry-api.d.ts.map +0 -1
  98. package/src/lib/dependencies/registry-api.js +0 -77
  99. package/src/lib/dependencies/version-constraints.d.ts.map +0 -1
  100. package/src/lib/dependencies/version-constraints.js +0 -95
  101. package/src/lib/error-reporting.d.ts.map +0 -1
  102. package/src/lib/error-reporting.js +0 -133
  103. package/src/lib/errors.d.ts.map +0 -1
  104. package/src/lib/errors.js +0 -10
  105. package/src/lib/execution-logs.d.ts.map +0 -1
  106. package/src/lib/execution-logs.js +0 -47
  107. package/src/lib/get.d.ts.map +0 -1
  108. package/src/lib/get.js +0 -90
  109. package/src/lib/helpers/stack-helpers.d.ts.map +0 -1
  110. package/src/lib/helpers/stack-helpers.js +0 -155
  111. package/src/lib/index.d.ts.map +0 -1
  112. package/src/lib/init.d.ts.map +0 -1
  113. package/src/lib/init.js +0 -131
  114. package/src/lib/local-provider-constraints.d.ts.map +0 -1
  115. package/src/lib/local-provider-constraints.js +0 -95
  116. package/src/lib/local-provider-versions.d.ts.map +0 -1
  117. package/src/lib/local-provider-versions.js +0 -73
  118. package/src/lib/models/deploy-machine.d.ts.map +0 -1
  119. package/src/lib/models/deploy-machine.js +0 -280
  120. package/src/lib/models/pty-process.d.ts +0 -29
  121. package/src/lib/models/pty-process.d.ts.map +0 -1
  122. package/src/lib/models/pty-process.js +0 -132
  123. package/src/lib/models/schema.js +0 -181
  124. package/src/lib/models/terraform-cli.d.ts.map +0 -1
  125. package/src/lib/models/terraform-cli.js +0 -357
  126. package/src/lib/models/terraform.d.ts.map +0 -1
  127. package/src/lib/models/terraform.js +0 -72
  128. package/src/lib/output.d.ts.map +0 -1
  129. package/src/lib/output.js +0 -211
  130. package/src/lib/provider-add.d.ts.map +0 -1
  131. package/src/lib/provider-add.js +0 -30
  132. package/src/lib/server/terraform-logs.d.ts.map +0 -1
  133. package/src/lib/server/terraform-logs.js +0 -19
  134. package/src/lib/synth-stack.d.ts.map +0 -1
  135. package/src/lib/synth-stack.js +0 -251
  136. package/src/lib/synth.d.ts.map +0 -1
  137. package/src/lib/synth.js +0 -67
  138. package/src/lib/terraform-json.js +0 -82
  139. package/src/lib/terraform-provider-lock.d.ts.map +0 -1
  140. package/src/lib/terraform-provider-lock.js +0 -95
  141. package/src/lib/watch.d.ts.map +0 -1
  142. package/src/lib/watch.js +0 -155
  143. /package/{src → build}/lib/cdktf-config.d.ts +0 -0
  144. /package/{src → build}/lib/cdktf-project-io-handler.d.ts +0 -0
  145. /package/{src → build}/lib/cdktf-project.d.ts +0 -0
  146. /package/{src → build}/lib/convert.d.ts +0 -0
  147. /package/{src → build}/lib/dependencies/cdktf-config-manager.d.ts +0 -0
  148. /package/{src → build}/lib/dependencies/dependency-manager.d.ts +0 -0
  149. /package/{src → build}/lib/dependencies/package-manager.d.ts +0 -0
  150. /package/{src → build}/lib/dependencies/prebuilt-providers.d.ts +0 -0
  151. /package/{src → build}/lib/dependencies/registry-api.d.ts +0 -0
  152. /package/{src → build}/lib/dependencies/version-constraints.d.ts +0 -0
  153. /package/{src → build}/lib/error-reporting.d.ts +0 -0
  154. /package/{src → build}/lib/errors.d.ts +0 -0
  155. /package/{src → build}/lib/execution-logs.d.ts +0 -0
  156. /package/{src → build}/lib/get.d.ts +0 -0
  157. /package/{src → build}/lib/helpers/stack-helpers.d.ts +0 -0
  158. /package/{src → build}/lib/index.d.ts +0 -0
  159. /package/{src → build}/lib/init.d.ts +0 -0
  160. /package/{src → build}/lib/local-provider-constraints.d.ts +0 -0
  161. /package/{src → build}/lib/local-provider-versions.d.ts +0 -0
  162. /package/{src → build}/lib/models/schema.d.ts +0 -0
  163. /package/{src → build}/lib/models/terraform.d.ts +0 -0
  164. /package/{src → build}/lib/output.d.ts +0 -0
  165. /package/{src → build}/lib/provider-add.d.ts +0 -0
  166. /package/{src → build}/lib/server/terraform-logs.d.ts +0 -0
  167. /package/{src → build}/lib/synth.d.ts +0 -0
  168. /package/{src → build}/lib/terraform-json.d.ts +0 -0
  169. /package/{src → build}/lib/terraform-provider-lock.d.ts +0 -0
package/src/lib/watch.js DELETED
@@ -1,155 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.watch = void 0;
30
- // Copyright (c) HashiCorp, Inc
31
- // SPDX-License-Identifier: MPL-2.0
32
- const path_1 = __importDefault(require("path"));
33
- const cdktf_project_1 = require("./cdktf-project");
34
- const fs = __importStar(require("fs"));
35
- const chokidar = __importStar(require("chokidar"));
36
- const commons_1 = require("@cdktn/commons");
37
- // In this very first iteration we will find out which files to watch by asking the user to provide the files
38
- // We default to something reasonable per language and write it into the cdkt.json file
39
- // Mid-Term we might want to add a WatchFile / WatchDir construct that we can use (e.g. in assets) and that a user can use to specify their watch behaviour
40
- // See https://github.com/hashicorp/terraform-cdk/issues/1668
41
- function getOrWriteDefaultWatchConfig(projectPath = process.cwd()) {
42
- const cdktfJsonPath = path_1.default.resolve(projectPath, "cdktf.json");
43
- commons_1.logger.debug(`Getting files to watch from cdktf.json at ${cdktfJsonPath}`);
44
- let cdktfJson;
45
- try {
46
- cdktfJson = require(cdktfJsonPath);
47
- }
48
- catch (err) {
49
- throw commons_1.Errors.Internal(`Could not find cdktf.json file in ${projectPath}`, err);
50
- }
51
- if (cdktfJson.watchPattern) {
52
- commons_1.logger.debug(`Found watchPattern in cdktf.json: ${cdktfJson.watchPattern}`);
53
- return cdktfJson.watchPattern;
54
- }
55
- const language = cdktfJson.language;
56
- if (!language) {
57
- throw commons_1.Errors.Usage(`No language specified in cdktf.json, please either specify a language or watchPattern to use the watch command`);
58
- }
59
- const defaultWatchPattern = {
60
- typescript: ["./**/*.ts"],
61
- python: ["./**/*.py"],
62
- java: ["src/**/*.java"],
63
- csharp: ["./**/*.cs"],
64
- go: ["./**/*.go"],
65
- }[language];
66
- fs.writeFileSync(cdktfJsonPath, JSON.stringify({ ...cdktfJson, watchPattern: defaultWatchPattern }, null, 2));
67
- commons_1.logger.debug(`Write default watchPattern for ${language} in cdktf.json.`);
68
- return defaultWatchPattern;
69
- }
70
- const projectStatus = (project) => {
71
- if (!(project === null || project === void 0 ? void 0 : project.stacksToRun.length)) {
72
- return {
73
- inProgress: [],
74
- finished: [],
75
- pending: [],
76
- };
77
- }
78
- const inProgress = project.stacksToRun.filter((s) => s.isRunning);
79
- const finished = project.stacksToRun.filter((s) => s.isDone);
80
- const pending = project.stacksToRun.filter((s) => s.isPending);
81
- return { inProgress, finished, pending };
82
- };
83
- async function watch(projectOptions, mutationOptions, abortSignal, onStateChange) {
84
- const patterns = getOrWriteDefaultWatchConfig();
85
- const watcher = chokidar.watch(patterns, {
86
- ignoreInitial: true,
87
- });
88
- let state = { type: "waiting" };
89
- const changeState = (newState) => {
90
- state = newState;
91
- onStateChange(state);
92
- };
93
- async function run() {
94
- commons_1.logger.debug("Running cdktn deploy");
95
- const project = new cdktf_project_1.CdktfProject({
96
- synthOrigin: "watch",
97
- ...projectOptions,
98
- onLog: (log) => {
99
- if (projectOptions.onLog) {
100
- projectOptions.onLog(log);
101
- }
102
- if (state.type === "running") {
103
- changeState({ ...state, ...projectStatus(project) });
104
- }
105
- },
106
- });
107
- const abort = () => project.hardAbort();
108
- abortSignal.addEventListener("abort", abort);
109
- await project.deploy(mutationOptions);
110
- abortSignal.removeEventListener("abort", abort);
111
- commons_1.logger.debug("cdktn deploy finished");
112
- if (state.type !== "running") {
113
- throw commons_1.Errors.Internal("Watch was in a state where the state was not running in the run phase");
114
- }
115
- if (state.nextRunQueued) {
116
- commons_1.logger.debug("Next run was queued, starting it now");
117
- changeState({
118
- ...state,
119
- nextRunQueued: false,
120
- currentRun: run(),
121
- ...projectStatus(project),
122
- });
123
- }
124
- else {
125
- commons_1.logger.debug("Nothing queued, waiting for changes");
126
- changeState({ type: "waiting" });
127
- }
128
- }
129
- abortSignal.addEventListener("abort", () => {
130
- commons_1.logger.debug("Abort signal received, stopping watch");
131
- watcher.close();
132
- changeState({ type: "stopped" });
133
- });
134
- const onFileChange = () => {
135
- if (state.type === "stopped") {
136
- return;
137
- }
138
- if (state.type === "running") {
139
- changeState({ ...state, nextRunQueued: true });
140
- return;
141
- }
142
- changeState({
143
- type: "running",
144
- nextRunQueued: false,
145
- currentRun: run(),
146
- ...projectStatus(),
147
- });
148
- };
149
- watcher.on("all", onFileChange);
150
- // initially run once
151
- onFileChange();
152
- await (0, commons_1.sendTelemetry)("watch", { event: "start" });
153
- }
154
- exports.watch = watch;
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3YXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsZ0RBQXdCO0FBQ3hCLG1EQUl5QjtBQUN6Qix1Q0FBeUI7QUFDekIsbURBQXFDO0FBQ3JDLDRDQUErRDtBQUcvRCw2R0FBNkc7QUFDN0csdUZBQXVGO0FBQ3ZGLDJKQUEySjtBQUMzSiw2REFBNkQ7QUFDN0QsU0FBUyw0QkFBNEIsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUMvRCxNQUFNLGFBQWEsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUUzRSxJQUFJLFNBQVMsQ0FBQztJQUNkLElBQUksQ0FBQztRQUNILFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIscUNBQXFDLFdBQVcsRUFBRSxFQUNsRCxHQUFHLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDNUUsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FNRSxTQUFTLENBQUMsUUFBUSxDQUFDO0lBRW5DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLGdIQUFnSCxDQUNqSCxDQUFDO0lBQ0osQ0FB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TSxZQUFZLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QixXQUFXLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvQyxPQUFPO1FBQ1QsQ0FBQztRQUVELFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSxTQUFTO1lBQ2YsYUFBYSxFQUFFLEtBQUs7WUFDcEIsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNqQixHQUFHLGFBQWEsRUFBRTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoQyxxQkFBcUI7SUFDckIsWUFBWSxFQUFFLENBQUM7SUFFZixNQUFNLElBQUEsdUJBQWEsRUFBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBckZELHNCQXFGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgQ2RrdGZQcm9qZWN0LFxuICBDZGt0ZlByb2plY3RPcHRpb25zLFxuICBNdXRhdGlvbk9wdGlvbnMsXG59IGZyb20gXCIuL2Nka3RmLXByb2plY3RcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgY2hva2lkYXIgZnJvbSBcImNob2tpZGFyXCI7XG5pbXBvcnQgeyBsb2dnZXIsIEVycm9ycywgc2VuZFRlbGVtZXRyeSB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgQ2RrdGZTdGFjayB9IGZyb20gXCIuL2Nka3RmLXN0YWNrXCI7XG5cbi8vIEluIHRoaXMgdmVyeSBmaXJzdCBpdGVyYXRpb24gd2Ugd2lsbCBmaW5kIG91dCB3aGljaCBmaWxlcyB0byB3YXRjaCBieSBhc2tpbmcgdGhlIHVzZXIgdG8gcHJvdmlkZSB0aGUgZmlsZXNcbi8vIFdlIGRlZmF1bHQgdG8gc29tZXRoaW5nIHJlYXNvbmFibGUgcGVyIGxhbmd1YWdlIGFuZCB3cml0ZSBpdCBpbnRvIHRoZSBjZGt0Lmpzb24gZmlsZVxuLy8gTWlkLVRlcm0gd2UgbWlnaHQgd2FudCB0byBhZGQgYSBXYXRjaEZpbGUgLyBXYXRjaERpciBjb25zdHJ1Y3QgdGhhdCB3ZSBjYW4gdXNlIChlLmcuIGluIGFzc2V0cykgYW5kIHRoYXQgYSB1c2VyIGNhbiB1c2UgdG8gc3BlY2lmeSB0aGVpciB3YXRjaCBiZWhhdmlvdXJcbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvaXNzdWVzLzE2NjhcbmZ1bmN0aW9uIGdldE9yV3JpdGVEZWZhdWx0V2F0Y2hDb25maWcocHJvamVjdFBhdGggPSBwcm9jZXNzLmN3ZCgpKSB7XG4gIGNvbnN0IGNka3RmSnNvblBhdGggPSBwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKTtcbiAgbG9nZ2VyLmRlYnVnKGBHZXR0aW5nIGZpbGVzIHRvIHdhdGNoIGZyb20gY2RrdGYuanNvbiBhdCAke2Nka3RmSnNvblBhdGh9YCk7XG5cbiAgbGV0IGNka3RmSnNvbjtcbiAgdHJ5IHtcbiAgICBjZGt0Zkpzb24gPSByZXF1aXJlKGNka3RmSnNvblBhdGgpO1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgIGBDb3VsZCBub3QgZmluZCBjZGt0Zi5qc29uIGZpbGUgaW4gJHtwcm9qZWN0UGF0aH1gLFxuICAgICAgZXJyLFxuICAgICk7XG4gIH1cblxuICBpZiAoY2RrdGZKc29uLndhdGNoUGF0dGVybikge1xuICAgIGxvZ2dlci5kZWJ1ZyhgRm91bmQgd2F0Y2hQYXR0ZXJuIGluIGNka3RmLmpzb246ICR7Y2RrdGZKc29uLndhdGNoUGF0dGVybn1gKTtcbiAgICByZXR1cm4gY2RrdGZKc29uLndhdGNoUGF0dGVybjtcbiAgfVxuICBjb25zdCBsYW5ndWFnZTpcbiAgICB8IFwidHlwZXNjcmlwdFwiXG4gICAgfCBcInB5dGhvblwiXG4gICAgfCBcImphdmFcIlxuICAgIHwgXCJjc2hhcnBcIlxuICAgIHwgXCJnb1wiXG4gICAgfCB1bmRlZmluZWQgPSBjZGt0Zkpzb24ubGFuZ3VhZ2U7XG5cbiAgaWYgKCFsYW5ndWFnZSkge1xuICAgIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICAgIGBObyBsYW5ndWFnZSBzcGVjaWZpZWQgaW4gY2RrdGYuanNvbiwgcGxlYXNlIGVpdGhlciBzcGVjaWZ5IGEgbGFuZ3VhZ2Ugb3Igd2F0Y2hQYXR0ZXJuIHRvIHVzZSB0aGUgd2F0Y2ggY29tbWFuZGAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRXYXRjaFBhdHRlcm4gPSB7XG4gICAgdHlwZXNjcmlwdDogW1wiLi8qKi8qLnRzXCJdLFxuICAgIHB5dGhvbjogW1wiLi8qKi8qLnB5XCJdLFxuICAgIGphdmE6IFtcInNyYy8qKi8qLmphdmFcIl0sXG4gICAgY3NoYXJwOiBbXCIuLyoqLyouY3NcIl0sXG4gICAgZ286IFtcIi4vKiovKi5nb1wiXSxcbiAgfVtsYW5ndWFnZV07XG5cbiAgZnMud3JpdGVGaWxlU3luYyhcbiAgICBjZGt0Zkpzb25QYXRoLFxuICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgeyAuLi5jZGt0Zkpzb24sIHdhdGNoUGF0dGVybjogZGVmYXVsdFdhdGNoUGF0dGVybiB9LFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgKTtcbiAgbG9nZ2VyLmRlYnVnKGBXcml0ZSBkZWZhdWx0IHdhdGNoUGF0dGVybiBmb3IgJHtsYW5ndWFnZX0gaW4gY2RrdGYuanNvbi5gKTtcblxuICByZXR1cm4gZGVmYXVsdFdhdGNoUGF0dGVybjtcbn1cblxuY29uc3QgcHJvamVjdFN0YXR1cyA9IChwcm9qZWN0PzogQ2RrdGZQcm9qZWN0KSA9PiB7XG4gIGlmICghcHJvamVjdD8uc3RhY2tzVG9SdW4ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluUHJvZ3Jlc3M6IFtdLFxuICAgICAgZmluaXNoZWQ6IFtdLFxuICAgICAgcGVuZGluZzogW10sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGluUHJvZ3Jlc3MgPSBwcm9qZWN0LnN0YWNrc1RvUnVuLmZpbHRlcigocykgPT4gcy5pc1J1bm5pbmcpO1xuICBjb25zdCBmaW5pc2hlZCA9IHByb2plY3Quc3RhY2tzVG9SdW4uZmlsdGVyKChzKSA9PiBzLmlzRG9uZSk7XG4gIGNvbnN0IHBlbmRpbmcgPSBwcm9qZWN0LnN0YWNrc1RvUnVuLmZpbHRlcigocykgPT4gcy5pc1BlbmRpbmcpO1xuICByZXR1cm4geyBpblByb2dyZXNzLCBmaW5pc2hlZCwgcGVuZGluZyB9O1xufTtcblxuZXhwb3J0IHR5cGUgU3RhdGUgPVxuICB8IHtcbiAgICAgIHR5cGU6IFwid2FpdGluZ1wiO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBcInJ1bm5pbmdcIjtcbiAgICAgIG5leHRSdW5RdWV1ZWQ6IGJvb2xlYW47XG4gICAgICBjdXJyZW50UnVuOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgaW5Qcm9ncmVzczogQ2RrdGZTdGFja1tdO1xuICAgICAgZmluaXNoZWQ6IENka3RmU3RhY2tbXTtcbiAgICAgIHBlbmRpbmc6IENka3RmU3RhY2tbXTtcbiAgICB9XG4gIHwgeyB0eXBlOiBcInN0b3BwZWRcIiB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2F0Y2goXG4gIHByb2plY3RPcHRpb25zOiBDZGt0ZlByb2plY3RPcHRpb25zLFxuICBtdXRhdGlvbk9wdGlvbnM6IE11dGF0aW9uT3B0aW9ucyxcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLFxuICBvblN0YXRlQ2hhbmdlOiAobmV3U3RhdGU6IFN0YXRlKSA9PiB2b2lkLFxuKSB7XG4gIGNvbnN0IHBhdHRlcm5zID0gZ2V0T3JXcml0ZURlZmF1bHRXYXRjaENvbmZpZygpO1xuICBjb25zdCB3YXRjaGVyID0gY2hva2lkYXIud2F0Y2gocGF0dGVybnMsIHtcbiAgICBpZ25vcmVJbml0aWFsOiB0cnVlLFxuICB9KTtcbiAgbGV0IHN0YXRlOiBTdGF0ZSA9IHsgdHlwZTogXCJ3YWl0aW5nXCIgfTtcbiAgY29uc3QgY2hhbmdlU3RhdGUgPSAobmV3U3RhdGU6IFN0YXRlKSA9PiB7XG4gICAgc3RhdGUgPSBuZXdTdGF0ZTtcbiAgICBvblN0YXRlQ2hhbmdlKHN0YXRlKTtcbiAgfTtcblxuICBhc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiUnVubmluZyBjZGt0biBkZXBsb3lcIik7XG4gICAgY29uc3QgcHJvamVjdCA9IG5ldyBDZGt0ZlByb2plY3Qoe1xuICAgICAgc3ludGhPcmlnaW46IFwid2F0Y2hcIixcbiAgICAgIC4uLnByb2plY3RPcHRpb25zLFxuICAgICAgb25Mb2c6IChsb2cpID0+IHtcbiAgICAgICAgaWYgKHByb2plY3RPcHRpb25zLm9uTG9nKSB7XG4gICAgICAgICAgcHJvamVjdE9wdGlvbnMub25Mb2cobG9nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUudHlwZSA9PT0gXCJydW5uaW5nXCIpIHtcbiAgICAgICAgICBjaGFuZ2VTdGF0ZSh7IC4uLnN0YXRlLCAuLi5wcm9qZWN0U3RhdHVzKHByb2plY3QpIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFib3J0ID0gKCkgPT4gcHJvamVjdC5oYXJkQWJvcnQoKTtcbiAgICBhYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgYWJvcnQpO1xuICAgIGF3YWl0IHByb2plY3QuZGVwbG95KG11dGF0aW9uT3B0aW9ucyk7XG4gICAgYWJvcnRTaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGFib3J0KTtcbiAgICBsb2dnZXIuZGVidWcoXCJjZGt0biBkZXBsb3kgZmluaXNoZWRcIik7XG5cbiAgICBpZiAoc3RhdGUudHlwZSAhPT0gXCJydW5uaW5nXCIpIHtcbiAgICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgICAgXCJXYXRjaCB3YXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc3RhdGUgd2FzIG5vdCBydW5uaW5nIGluIHRoZSBydW4gcGhhc2VcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLm5leHRSdW5RdWV1ZWQpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIk5leHQgcnVuIHdhcyBxdWV1ZWQsIHN0YXJ0aW5nIGl0IG5vd1wiKTtcbiAgICAgIGNoYW5nZVN0YXRlKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG5leHRSdW5RdWV1ZWQ6IGZhbHNlLFxuICAgICAgICBjdXJyZW50UnVuOiBydW4oKSxcbiAgICAgICAgLi4ucHJvamVjdFN0YXR1cyhwcm9qZWN0KSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoXCJOb3RoaW5nIHF1ZXVlZCwgd2FpdGluZyBmb3IgY2hhbmdlc1wiKTtcbiAgICAgIGNoYW5nZVN0YXRlKHsgdHlwZTogXCJ3YWl0aW5nXCIgfSk7XG4gICAgfVxuICB9XG5cbiAgYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsICgpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoXCJBYm9ydCBzaWduYWwgcmVjZWl2ZWQsIHN0b3BwaW5nIHdhdGNoXCIpO1xuICAgIHdhdGNoZXIuY2xvc2UoKTtcbiAgICBjaGFuZ2VTdGF0ZSh7IHR5cGU6IFwic3RvcHBlZFwiIH0pO1xuICB9KTtcblxuICBjb25zdCBvbkZpbGVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHN0YXRlLnR5cGUgPT09IFwic3RvcHBlZFwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnR5cGUgPT09IFwicnVubmluZ1wiKSB7XG4gICAgICBjaGFuZ2VTdGF0ZSh7IC4uLnN0YXRlLCBuZXh0UnVuUXVldWVkOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNoYW5nZVN0YXRlKHtcbiAgICAgIHR5cGU6IFwicnVubmluZ1wiLFxuICAgICAgbmV4dFJ1blF1ZXVlZDogZmFsc2UsXG4gICAgICBjdXJyZW50UnVuOiBydW4oKSxcbiAgICAgIC4uLnByb2plY3RTdGF0dXMoKSxcbiAgICB9KTtcbiAgfTtcblxuICB3YXRjaGVyLm9uKFwiYWxsXCIsIG9uRmlsZUNoYW5nZSk7XG4gIC8vIGluaXRpYWxseSBydW4gb25jZVxuICBvbkZpbGVDaGFuZ2UoKTtcblxuICBhd2FpdCBzZW5kVGVsZW1ldHJ5KFwid2F0Y2hcIiwgeyBldmVudDogXCJzdGFydFwiIH0pO1xufVxuIl19
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes