@cdktn/provider-schema 0.25.0-pre.3 → 0.25.0-pre.30

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.
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  Object.defineProperty(exports, "__esModule", { value: true });
28
38
  const fs = __importStar(require("fs-extra"));
29
39
  const os = __importStar(require("os"));
@@ -74,4 +84,4 @@ describe("cachedAccess", () => {
74
84
  expect(files[0]).not.toContain("undefined");
75
85
  });
76
86
  });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2FjaGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixvQ0FBd0M7QUFFeEMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsSUFBSSxRQUFnQixDQUFDO0lBRXJCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFZLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVqRSxNQUFNLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFTLENBQUMsQ0FBQztRQUVqRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMs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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGNhY2hlZEFjY2VzcyB9IGZyb20gXCIuLi9jYWNoZVwiO1xuXG5kZXNjcmliZShcImNhY2hlZEFjY2Vzc1wiLCAoKSA9PiB7XG4gIGxldCBjYWNoZURpcjogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNhY2hlRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInByb3ZpZGVyLXNjaGVtYS1jYWNoZS1cIikpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZzLnJlbW92ZVN5bmMoY2FjaGVEaXIpO1xuICB9KTtcblxuICBpdChcIndyaXRlcyB0byBhIHN1ZmZpeC1xdWFsaWZpZWQgY2FjaGUgZmlsZSB3aGVuIGEga2V5U3VmZml4IGlzIGdpdmVuXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlciA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSh7IGhlbGxvOiBcIndvcmxkXCIgfSk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLnRvQ29udGFpbihcInRlcnJhZm9ybS0xLjdcIik7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgZGlzdGluY3QgY2FjaGUgZmlsZXMgZm9yIGRpc3RpbmN0IHN1ZmZpeGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlckEgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImFcIiB9KTtcbiAgICBjb25zdCBwcm9kdWNlckIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImJcIiB9KTtcblxuICAgIGNvbnN0IGlucHV0ID0geyBmcW46IFwiaGFzaGljb3JwL251bGxcIiwgdmVyc2lvbjogXCIzLjEuMFwiIH0gYXMgYW55O1xuXG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQSwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKShpbnB1dCk7XG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQiwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuMTVcIikoaW5wdXQpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMik7XG4gICAgZXhwZWN0KHByb2R1Y2VyQSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChwcm9kdWNlckIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJoaXRzIHRoZSBzYW1lIGNhY2hlIGZpbGUgb24gcmVwZWF0ZWQgY2FsbHMgd2l0aCB0aGUgc2FtZSBzdWZmaXhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y2VyID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJhXCIgfSk7XG4gICAgY29uc3QgaW5wdXQgPSB7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKGlucHV0KTtcbiAgICBhd2FpdCBhY2Nlc3MoaW5wdXQpO1xuXG4gICAgZXhwZWN0KHByb2R1Y2VyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKSkudG9IYXZlTGVuZ3RoKDEpO1xuICB9KTtcblxuICBpdChcInN0YXlzIGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aG91dCBhIGtleVN1ZmZpeFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyBoZWxsbzogXCJ3b3JsZFwiIH0pO1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLm5vdC50b0NvbnRhaW4oXCJ1bmRlZmluZWRcIik7XG4gIH0pO1xufSk7XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2FjaGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isb0NBQXdDO0FBRXhDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksUUFBZ0IsQ0FBQztJQUVyQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBWSxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFakUsTUFBTSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBUyxDQUFDLENBQUM7UUFFakUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMs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QUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBjYWNoZWRBY2Nlc3MgfSBmcm9tIFwiLi4vY2FjaGVcIjtcblxuZGVzY3JpYmUoXCJjYWNoZWRBY2Nlc3NcIiwgKCkgPT4ge1xuICBsZXQgY2FjaGVEaXI6IHN0cmluZztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjYWNoZURpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJwcm92aWRlci1zY2hlbWEtY2FjaGUtXCIpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBmcy5yZW1vdmVTeW5jKGNhY2hlRGlyKTtcbiAgfSk7XG5cbiAgaXQoXCJ3cml0ZXMgdG8gYSBzdWZmaXgtcXVhbGlmaWVkIGNhY2hlIGZpbGUgd2hlbiBhIGtleVN1ZmZpeCBpcyBnaXZlblwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyBoZWxsbzogXCJ3b3JsZFwiIH0pO1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKTtcblxuICAgIGF3YWl0IGFjY2Vzcyh7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnkpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgZXhwZWN0KGZpbGVzWzBdKS50b0NvbnRhaW4oXCJ0ZXJyYWZvcm0tMS43XCIpO1xuICB9KTtcblxuICBpdChcImtlZXBzIGRpc3RpbmN0IGNhY2hlIGZpbGVzIGZvciBkaXN0aW5jdCBzdWZmaXhlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXJBID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJhXCIgfSk7XG4gICAgY29uc3QgcHJvZHVjZXJCID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJiXCIgfSk7XG5cbiAgICBjb25zdCBpbnB1dCA9IHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueTtcblxuICAgIGF3YWl0IGNhY2hlZEFjY2Vzcyhwcm9kdWNlckEsIGNhY2hlRGlyLCBcInRlcnJhZm9ybS0xLjdcIikoaW5wdXQpO1xuICAgIGF3YWl0IGNhY2hlZEFjY2Vzcyhwcm9kdWNlckIsIGNhY2hlRGlyLCBcInRlcnJhZm9ybS0xLjE1XCIpKGlucHV0KTtcblxuICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmMoY2FjaGVEaXIpO1xuICAgIGV4cGVjdChmaWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIGV4cGVjdChwcm9kdWNlckEpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QocHJvZHVjZXJCKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwiaGl0cyB0aGUgc2FtZSBjYWNoZSBmaWxlIG9uIHJlcGVhdGVkIGNhbGxzIHdpdGggdGhlIHNhbWUgc3VmZml4XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlciA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSh7IHY6IFwiYVwiIH0pO1xuICAgIGNvbnN0IGlucHV0ID0geyBmcW46IFwiaGFzaGljb3JwL251bGxcIiwgdmVyc2lvbjogXCIzLjEuMFwiIH0gYXMgYW55O1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKTtcblxuICAgIGF3YWl0IGFjY2VzcyhpbnB1dCk7XG4gICAgYXdhaXQgYWNjZXNzKGlucHV0KTtcblxuICAgIGV4cGVjdChwcm9kdWNlcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChmcy5yZWFkZGlyU3luYyhjYWNoZURpcikpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgfSk7XG5cbiAgaXQoXCJzdGF5cyBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGhvdXQgYSBrZXlTdWZmaXhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y2VyID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgaGVsbG86IFwid29ybGRcIiB9KTtcbiAgICBjb25zdCBhY2Nlc3MgPSBjYWNoZWRBY2Nlc3MocHJvZHVjZXIsIGNhY2hlRGlyKTtcblxuICAgIGF3YWl0IGFjY2Vzcyh7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnkpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgZXhwZWN0KGZpbGVzWzBdKS5ub3QudG9Db250YWluKFwidW5kZWZpbmVkXCIpO1xuICB9KTtcbn0pO1xuIl19
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  var __importDefault = (this && this.__importDefault) || function (mod) {
28
38
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
39
  };
@@ -81,6 +91,27 @@ describe("readSchema", () => {
81
91
  const result = await (0, provider_schema_1.readModuleSchema)(target);
82
92
  expect(sanitizeJson(result)).toMatchSnapshot();
83
93
  }, 120000);
94
+ it("generates a local module that requires provider configuration aliases", async () => {
95
+ const module = new commons_1.TerraformModuleConstraint({
96
+ name: "local_module",
97
+ fqn: "local_module",
98
+ source: path.resolve(__dirname, "fixtures", "local-module-provider-aliases"),
99
+ });
100
+ const target = new commons_1.ConstructsMakerModuleTarget(module, commons_1.Language.TYPESCRIPT);
101
+ const result = await (0, provider_schema_1.readModuleSchema)(target);
102
+ expect(sanitizeJson(result)).toMatchSnapshot();
103
+ }, 120000);
104
+ it("surfaces the terraform failure when a module cannot be fetched", async () => {
105
+ const module = new commons_1.TerraformModuleConstraint({
106
+ name: "local_module",
107
+ fqn: "local_module",
108
+ source: "./this-module-does-not-exist",
109
+ });
110
+ const target = new commons_1.ConstructsMakerModuleTarget(module, commons_1.Language.TYPESCRIPT);
111
+ // the fetch is run tolerantly so a module declaring configuration_aliases
112
+ // gets a second chance - everything else has to keep failing loudly
113
+ await expect((0, provider_schema_1.readModuleSchema)(target)).rejects.toThrow(/get exited with code/);
114
+ }, 120000);
84
115
  it("generates a local json module", async () => {
85
116
  const module = new commons_1.TerraformModuleConstraint({
86
117
  name: "local_module",
@@ -91,6 +122,26 @@ describe("readSchema", () => {
91
122
  const result = await (0, provider_schema_1.readModuleSchema)(target);
92
123
  expect(sanitizeJson(result)).toMatchSnapshot();
93
124
  }, 120000);
125
+ it("generates a local json module that requires provider configuration aliases", async () => {
126
+ const module = new commons_1.TerraformModuleConstraint({
127
+ name: "local_module",
128
+ fqn: "local_module",
129
+ source: path.resolve(__dirname, "fixtures", "local-json-module-provider-aliases"),
130
+ });
131
+ const target = new commons_1.ConstructsMakerModuleTarget(module, commons_1.Language.TYPESCRIPT);
132
+ const result = await (0, provider_schema_1.readModuleSchema)(target);
133
+ expect(sanitizeJson(result)).toMatchSnapshot();
134
+ }, 120000);
135
+ it("generates a local module that declares provider configuration aliases across .tf and .tf.json files", async () => {
136
+ const module = new commons_1.TerraformModuleConstraint({
137
+ name: "local_module",
138
+ fqn: "local_module",
139
+ source: path.resolve(__dirname, "fixtures", "local-mixed-module-provider-aliases"),
140
+ });
141
+ const target = new commons_1.ConstructsMakerModuleTarget(module, commons_1.Language.TYPESCRIPT);
142
+ const result = await (0, provider_schema_1.readModuleSchema)(target);
143
+ expect(sanitizeJson(result)).toMatchSnapshot();
144
+ }, 120000);
94
145
  });
95
146
  describe("sanitizeProviderSchema", () => {
96
147
  it("sanitizes a provider schema", () => {
@@ -197,4 +248,4 @@ describe("sanitizeProviderSchema", () => {
197
248
  expect(result).toMatchSnapshot();
198
249
  });
199
250
  });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLDJDQUE2QjtBQUM3QixrRkFBb0Q7QUFDcEQsNENBT3dCO0FBQ3hCLHdEQUk0QjtBQUU1QixTQUFTLFlBQVksQ0FBQyxLQUFVO0lBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLHlFQUF5RTtJQUN6RSxpQkFBaUI7SUFDakIsSUFBSSxVQUFVLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDM0QsSUFBSSxhQUFhLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRSxPQUFPLElBQUEsK0JBQWUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQ0FBMkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksdUNBQTZCLENBQzlDLFFBQVEsRUFDUixrQkFBUSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQ0FBa0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDakQsQ0FBQyxFQUFFLE1BQU0s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RTt3Q0FDVCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQVE7cUNBQ2xEO2lDQUNGO2dDQUNELFdBQVcsRUFBRSxFQUFFOzZCQUNoQjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQXNCLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgc3RhYmxlU3RyaW5naWZ5IGZyb20gXCJzYWZlLXN0YWJsZS1zdHJpbmdpZnlcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbiAgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0LFxuICBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldCxcbiAgTGFuZ3VhZ2UsXG4gIFByb3ZpZGVyU2NoZW1hLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIHJlYWRNb2R1bGVTY2hlbWEsXG4gIHJlYWRQcm92aWRlclNjaGVtYSxcbiAgc2FuaXRpemVQcm92aWRlclNjaGVtYSxcbn0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5mdW5jdGlvbiBzYW5pdGl6ZUpzb24odmFsdWU6IGFueSkge1xuICB2YWx1ZVtcImZvcm1hdF92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgLy8gY2xpX25hbWUvY2xpX3ZlcnNpb24gc3RhbXAgd2hhdGV2ZXIgYmluYXJ5IGZldGNoZWQgdGhlIHNjaGVtYSBhbmQgdmFyeVxuICAvLyBieSBlbnZpcm9ubWVudFxuICBpZiAoXCJjbGlfbmFtZVwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV9uYW1lXCJdID0gXCJTVFVCQkVEIENMSVwiO1xuICBpZiAoXCJjbGlfdmVyc2lvblwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgcmV0dXJuIHN0YWJsZVN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMik7XG59XG5cbmRlc2NyaWJlKFwicmVhZFNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwiZ2VuZXJhdGVzIGEgc2luZ2xlIHByb3ZpZGVyIHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KFwiaGFzaGljb3JwL251bGxAMy4xLjBcIik7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0KFxuICAgICAgcHJvdmlkZXIsXG4gICAgICBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZFByb3ZpZGVyU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIHNpbmdsZSBtb2R1bGUgc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvL21vZHVsZXMvaWFtLWFjY291bnRAMy4xMi4wXCIsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBtb3JlIGNvbXBsZXggc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2Vrcy9hd3NANy4wLjFcIixcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImxvY2FsLW1vZHVsZVwiKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgd2l0aCBpbmxpbmUgY29tbWVudHMgaW4gdHlwZSBjb25zdHJhaW50c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJsb2NhbC1tb2R1bGUtaW5saW5lLWNvbW1lbnRzXCIsXG4gICAgICApLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIGpzb24gbW9kdWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIFwibG9jYWwtanNvbi1tb2R1bGVcIiksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xufSk7XG5cbmRlc2NyaWJlKFwic2FuaXRpemVQcm92aWRlclNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwic2FuaXRpemVzIGEgcHJvdmlkZXIgc2NoZW1hXCIsICgpID0+IHtcbiAgICBjb25zdCBzY2hlbWE6IFByb3ZpZGVyU2NoZW1hID0ge1xuICAgICAgZm9ybWF0X3ZlcnNpb246IFwiMC4xXCIgYXMgY29uc3QsXG4gICAgICBwcm92aWRlcl92ZXJzaW9uczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiBcIjMuMS4wXCIsXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXJfc2NoZW1hczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiB7XG4gICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlX3NjaGVtYXM6IHtcbiAgICAgICAgICAgIG51bGxfcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBjb21wdXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhX3NvdXJjZV9zY2hlbWFzOiB7fSxcbiAgICAgICAgICBlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hczoge1xuICAgICAgICAgICAgbnVsbF9lcGhlbWVyYWw6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQgPSBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHNjaGVtYSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG4iXX0=
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQywyQ0FBNkI7QUFDN0Isa0ZBQW9EO0FBQ3BELDRDQU93QjtBQUN4Qix3REFJNEI7QUFFNUIsU0FBUyxZQUFZLENBQUMsS0FBVTtJQUM5QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUM1Qyx5RUFBeUU7SUFDekUsaUJBQWlCO0lBQ2pCLElBQUksVUFBVSxJQUFJLEtBQUs7UUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksYUFBYSxJQUFJLEtBQUs7UUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFDckUsT0FBTyxJQUFBLCtCQUFlLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUkscUNBQTJCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLHVDQUE2QixDQUM5QyxRQUFRLEVBQ1Isa0JBQVEsQ0FBQyxVQUFVLENBQ3BCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsb0NBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pELENBQUMs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Q0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxJQUFBLHdDQUFzQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHN0YWJsZVN0cmluZ2lmeSBmcm9tIFwic2FmZS1zdGFibGUtc3RyaW5naWZ5XCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50LFxuICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQsXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIExhbmd1YWdlLFxuICBQcm92aWRlclNjaGVtYSxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICByZWFkTW9kdWxlU2NoZW1hLFxuICByZWFkUHJvdmlkZXJTY2hlbWEsXG4gIHNhbml0aXplUHJvdmlkZXJTY2hlbWEsXG59IGZyb20gXCIuLi9wcm92aWRlci1zY2hlbWFcIjtcblxuZnVuY3Rpb24gc2FuaXRpemVKc29uKHZhbHVlOiBhbnkpIHtcbiAgdmFsdWVbXCJmb3JtYXRfdmVyc2lvblwiXSA9IFwiU1RVQkJFRCBWRVJTSU9OXCI7XG4gIC8vIGNsaV9uYW1lL2NsaV92ZXJzaW9uIHN0YW1wIHdoYXRldmVyIGJpbmFyeSBmZXRjaGVkIHRoZSBzY2hlbWEgYW5kIHZhcnlcbiAgLy8gYnkgZW52aXJvbm1lbnRcbiAgaWYgKFwiY2xpX25hbWVcIiBpbiB2YWx1ZSkgdmFsdWVbXCJjbGlfbmFtZVwiXSA9IFwiU1RVQkJFRCBDTElcIjtcbiAgaWYgKFwiY2xpX3ZlcnNpb25cIiBpbiB2YWx1ZSkgdmFsdWVbXCJjbGlfdmVyc2lvblwiXSA9IFwiU1RVQkJFRCBWRVJTSU9OXCI7XG4gIHJldHVybiBzdGFibGVTdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpO1xufVxuXG5kZXNjcmliZShcInJlYWRTY2hlbWFcIiwgKCkgPT4ge1xuICBpdChcImdlbmVyYXRlcyBhIHNpbmdsZSBwcm92aWRlciBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludChcImhhc2hpY29ycC9udWxsQDMuMS4wXCIpO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldChcbiAgICAgIHByb3ZpZGVyLFxuICAgICAgTGFuZ3VhZ2UuVFlQRVNDUklQVCxcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRQcm92aWRlclNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBzaW5nbGUgbW9kdWxlIHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzLy9tb2R1bGVzL2lhbS1hY2NvdW50QDMuMTIuMFwiLFxuICAgICk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbW9yZSBjb21wbGV4IHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9la3MvYXdzQDcuMC4xXCIsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJsb2NhbC1tb2R1bGVcIiksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwgbW9kdWxlIHdpdGggaW5saW5lIGNvbW1lbnRzIGluIHR5cGUgY29uc3RyYWludHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtbW9kdWxlLWlubGluZS1jb21tZW50c1wiLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgdGhhdCByZXF1aXJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIGFsaWFzZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtbW9kdWxlLXByb3ZpZGVyLWFsaWFzZXNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwic3VyZmFjZXMgdGhlIHRlcnJhZm9ybSBmYWlsdXJlIHdoZW4gYSBtb2R1bGUgY2Fubm90IGJlIGZldGNoZWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IFwiLi90aGlzLW1vZHVsZS1kb2VzLW5vdC1leGlzdFwiLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcblxuICAgIC8vIHRoZSBmZXRjaCBpcyBydW4gdG9sZXJhbnRseSBzbyBhIG1vZHVsZSBkZWNsYXJpbmcgY29uZmlndXJhdGlvbl9hbGlhc2VzXG4gICAgLy8gZ2V0cyBhIHNlY29uZCBjaGFuY2UgLSBldmVyeXRoaW5nIGVsc2UgaGFzIHRvIGtlZXAgZmFpbGluZyBsb3VkbHlcbiAgICBhd2FpdCBleHBlY3QocmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpKS5yZWplY3RzLnRvVGhyb3coXG4gICAgICAvZ2V0IGV4aXRlZCB3aXRoIGNvZGUvLFxuICAgICk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBqc29uIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImxvY2FsLWpzb24tbW9kdWxlXCIpLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIGpzb24gbW9kdWxlIHRoYXQgcmVxdWlyZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBhbGlhc2VzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcImxvY2FsLWpzb24tbW9kdWxlLXByb3ZpZGVyLWFsaWFzZXNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwgbW9kdWxlIHRoYXQgZGVjbGFyZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBhbGlhc2VzIGFjcm9zcyAudGYgYW5kIC50Zi5qc29uIGZpbGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcImxvY2FsLW1peGVkLW1vZHVsZS1wcm92aWRlci1hbGlhc2VzXCIsXG4gICAgICApLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcbn0pO1xuXG5kZXNjcmliZShcInNhbml0aXplUHJvdmlkZXJTY2hlbWFcIiwgKCkgPT4ge1xuICBpdChcInNhbml0aXplcyBhIHByb3ZpZGVyIHNjaGVtYVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hOiBQcm92aWRlclNjaGVtYSA9IHtcbiAgICAgIGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiIGFzIGNvbnN0LFxuICAgICAgcHJvdmlkZXJfdmVyc2lvbnM6IHtcbiAgICAgICAgXCJyZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL251bGxcIjogXCIzLjEuMFwiLFxuICAgICAgfSxcbiAgICAgIHByb3ZpZGVyX3NjaGVtYXM6IHtcbiAgICAgICAgXCJyZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL251bGxcIjoge1xuICAgICAgICAgIHByb3ZpZGVyOiB7XG4gICAgICAgICAgICB2ZXJzaW9uOiAwLFxuICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBibG9ja190eXBlczoge1xuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICBuZXN0aW5nX21vZGU6IFwic2luZ2xlXCIsXG4gICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvdXJjZV9zY2hlbWFzOiB7XG4gICAgICAgICAgICBudWxsX3Jlc291cmNlOiB7XG4gICAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YV9zb3VyY2Vfc2NoZW1hczoge30sXG4gICAgICAgICAgZXBoZW1lcmFsX3Jlc291cmNlX3NjaGVtYXM6IHtcbiAgICAgICAgICAgIG51bGxfZXBoZW1lcmFsOiB7XG4gICAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gc2FuaXRpemVQcm92aWRlclNjaGVtYShzY2hlbWEpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19
@@ -1,11 +1,47 @@
1
1
  "use strict";
2
2
  // Copyright (c) HashiCorp, Inc
3
3
  // SPDX-License-Identifier: MPL-2.0
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
4
37
  Object.defineProperty(exports, "__esModule", { value: true });
5
38
  jest.mock("@cdktn/commons", () => ({
6
39
  ...jest.requireActual("@cdktn/commons"),
7
40
  exec: jest.fn(),
8
41
  }));
42
+ const fs = __importStar(require("fs"));
43
+ const os = __importStar(require("os"));
44
+ const path = __importStar(require("path"));
9
45
  const commons_1 = require("@cdktn/commons");
10
46
  const provider_schema_1 = require("../provider-schema");
11
47
  const execMock = commons_1.exec;
@@ -67,4 +103,209 @@ describe("getFetchingCliVersion", () => {
67
103
  expect(execMock).toHaveBeenCalledTimes(1);
68
104
  });
69
105
  });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNoQixDQUFDLENBQUMsQ0FBQztBQUVKLDRDQUFzQztBQUN0Qyx3REFHNEI7QUFFNUIsTUFBTSxRQUFRLEdBQUcsY0FBNEIsQ0FBQztBQUU5QyxTQUFTLGNBQWMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQ2pFLE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsT0FBTyxHQUFHLGlDQUFpQztJQUM3RCxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsSUFBSSxlQUFpQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsZUFBZSxHQUFHLElBQUk7YUFDbkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7YUFDdkIsa0JBQWtCLENBQUMs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LElBQUEsdUNBQXFCLEdBQUUsQ0FBQztRQUU3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuamVzdC5tb2NrKFwiQGNka3RuL2NvbW1vbnNcIiwgKCkgPT4gKHtcbiAgLi4uamVzdC5yZXF1aXJlQWN0dWFsKFwiQGNka3RuL2NvbW1vbnNcIiksXG4gIGV4ZWM6IGplc3QuZm4oKSxcbn0pKTtcblxuaW1wb3J0IHsgZXhlYyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uLFxuICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5LFxufSBmcm9tIFwiLi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmNvbnN0IGV4ZWNNb2NrID0gZXhlYyBhcyB1bmtub3duIGFzIGplc3QuTW9jaztcblxuZnVuY3Rpb24gdHJhbnNpZW50RXJyb3IobWVzc2FnZSA9IFwiNTAyIEJhZCBHYXRld2F5IGZyb20gZ2l0aHViLmNvbVwiKSB7XG4gIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKFwibm9uLXplcm8gZXhpdCBjb2RlIDFcIik7XG4gIGVyci5zdGRlcnIgPSBtZXNzYWdlO1xuICByZXR1cm4gZXJyO1xufVxuXG5mdW5jdGlvbiBmYXRhbEVycm9yKG1lc3NhZ2UgPSBcIkVycm9yOiBJbnZhbGlkIHByb3ZpZGVyIHZlcnNpb25cIikge1xuICBjb25zdCBlcnI6IGFueSA9IG5ldyBFcnJvcihcIm5vbi16ZXJvIGV4aXQgY29kZSAxXCIpO1xuICBlcnIuc3RkZXJyID0gbWVzc2FnZTtcbiAgcmV0dXJuIGVycjtcbn1cblxuZGVzY3JpYmUoXCJ0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5XCIsICgpID0+IHtcbiAgbGV0IGNvbnNvbGVFcnJvclNweTogamVzdC5TcHlJbnN0YW5jZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVzZXQoKTtcbiAgICBjb25zb2xlRXJyb3JTcHkgPSBqZXN0XG4gICAgICAuc3B5T24oY29uc29sZSwgXCJlcnJvclwiKVxuICAgICAgLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB1bmRlZmluZWQpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGNvbnNvbGVFcnJvclNweS5tb2NrUmVzdG9yZSgpO1xuICB9KTtcblxuICBpdChcInJldHVybnMgaW1tZWRpYXRlbHkgb24gZmlyc3QtYXR0ZW1wdCBzdWNjZXNzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoXCJva1wiKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFwib2tcIik7XG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwicmV0cmllcyBvbiB0cmFuc2llbnQgc3RkZXJyIGFuZCBldmVudHVhbGx5IHN1Y2NlZWRzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9ja1xuICAgICAgLm1vY2tSZWplY3RlZFZhbHVlT25jZSh0cmFuc2llbnRFcnJvcigpKVxuICAgICAgLm1vY2tSZWplY3RlZFZhbHVlT25jZSh0cmFuc2llbnRFcnJvcihcIkVDT05OUkVTRVRcIikpXG4gICAgICAubW9ja1Jlc29sdmVkVmFsdWVPbmNlKFwib2tcIik7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApO1xuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZShcIm9rXCIpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDMpO1xuICB9KTtcblxuICBpdChcImRvZXMgbm90IHJldHJ5IG9uIG5vbi10cmFuc2llbnQgZXJyb3JzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UoZmF0YWxFcnJvcigpKTtcblxuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCksXG4gICAgKS5yZWplY3RzLnRvTWF0Y2hPYmplY3QoeyBzdGRlcnI6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFwiSW52YWxpZFwiKSB9KTtcblxuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcblxuICBpdChcInRocm93cyBhZnRlciBleGhhdXN0aW5nIHJldHJpZXMgb24gcGVyc2lzdGVudCB0cmFuc2llbnQgZXJyb3JzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVqZWN0ZWRWYWx1ZSh0cmFuc2llbnRFcnJvcihcIjUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlXCIpKTtcblxuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCksXG4gICAgKS5yZWplY3RzLnRvTWF0Y2hPYmplY3QoeyBzdGRlcnI6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFwiNTAzXCIpIH0pO1xuXG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uXCIsICgpID0+IHtcbiAgaXQoXCJleGVjcyBgdGVycmFmb3JtIHZlcnNpb25gIG9uY2UgYW5kIG1lbW9pemVzIHRoZSByZXN1bHRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNldCgpO1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKFwiVGVycmFmb3JtIHYxLjcuNVxcbm9uIGxpbnV4X2FtZDY0XFxuXCIpO1xuXG4gICAgY29uc3QgZmlyc3QgPSBhd2FpdCBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTtcbiAgICBjb25zdCBzZWNvbmQgPSBhd2FpdCBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTtcblxuICAgIGV4cGVjdChmaXJzdCkudG9FcXVhbCh7IG5hbWU6IFwidGVycmFmb3JtXCIsIHZlcnNpb246IFwiMS43LjVcIiB9KTtcbiAgICBleHBlY3Qoc2Vjb25kKS50b0JlKGZpcnN0KTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG59KTtcbiJdfQ==
106
+ describe("collectModuleProviderAliases", () => {
107
+ it("returns nothing for a module without required_providers", () => {
108
+ expect((0, provider_schema_1.collectModuleProviderAliases)({ variable: { foo: [{}] } })).toEqual([]);
109
+ });
110
+ it("returns nothing for required providers without configuration aliases", () => {
111
+ const parsed = {
112
+ terraform: [
113
+ { required_providers: [{ aws: { source: "hashicorp/aws" } }] },
114
+ ],
115
+ };
116
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([]);
117
+ });
118
+ it("collects every alias declared across terraform blocks", () => {
119
+ const parsed = {
120
+ terraform: [
121
+ {
122
+ required_providers: [
123
+ {
124
+ aws: {
125
+ source: "hashicorp/aws",
126
+ configuration_aliases: [
127
+ "${aws.global_region}",
128
+ "${aws.secondary}",
129
+ ],
130
+ },
131
+ random: { source: "hashicorp/random" },
132
+ },
133
+ ],
134
+ },
135
+ {
136
+ required_providers: [
137
+ {
138
+ awsx: {
139
+ source: "hashicorp/aws",
140
+ configuration_aliases: ["${awsx.tertiary}"],
141
+ },
142
+ },
143
+ ],
144
+ },
145
+ ],
146
+ };
147
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([
148
+ { localName: "aws", alias: "global_region", source: "hashicorp/aws" },
149
+ { localName: "aws", alias: "secondary", source: "hashicorp/aws" },
150
+ { localName: "awsx", alias: "tertiary", source: "hashicorp/aws" },
151
+ ]);
152
+ });
153
+ it("deduplicates aliases declared in more than one file", () => {
154
+ const declaration = {
155
+ aws: {
156
+ source: "hashicorp/aws",
157
+ configuration_aliases: ["${aws.global_region}"],
158
+ },
159
+ };
160
+ const parsed = {
161
+ terraform: [{ required_providers: [declaration, declaration] }],
162
+ };
163
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([
164
+ { localName: "aws", alias: "global_region", source: "hashicorp/aws" },
165
+ ]);
166
+ });
167
+ it("keeps aliases of providers declared without a source", () => {
168
+ const parsed = {
169
+ terraform: {
170
+ required_providers: {
171
+ aws: { configuration_aliases: ["${aws.other}"] },
172
+ },
173
+ },
174
+ };
175
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([
176
+ { localName: "aws", alias: "other", source: undefined },
177
+ ]);
178
+ });
179
+ it("reads the plain references a .tf.json module declares", () => {
180
+ // hcl2json only wraps HCL expressions in an interpolation; JSON syntax
181
+ // carries the reference as-is, and its blocks come through unwrapped
182
+ const parsed = {
183
+ terraform: {
184
+ required_providers: {
185
+ null: {
186
+ source: "hashicorp/null",
187
+ configuration_aliases: ["null.extra"],
188
+ },
189
+ },
190
+ },
191
+ };
192
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([
193
+ { localName: "null", alias: "extra", source: "hashicorp/null" },
194
+ ]);
195
+ });
196
+ it("reads aliases a module spread across .tf and .tf.json files", () => {
197
+ // hcl2json merges a .tf.json file into the parsed HCL by recursing into
198
+ // the HCL block array, so the JSON half ends up as a named property on
199
+ // that array rather than another entry in it
200
+ const parsed = {
201
+ terraform: [
202
+ { required_providers: [{ aws: { source: "hashicorp/aws" } }] },
203
+ ],
204
+ };
205
+ parsed.terraform.required_providers = {
206
+ null: {
207
+ source: "hashicorp/null",
208
+ configuration_aliases: ["null.extra"],
209
+ },
210
+ };
211
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([
212
+ { localName: "null", alias: "extra", source: "hashicorp/null" },
213
+ ]);
214
+ });
215
+ it("ignores entries that are not provider configuration references", () => {
216
+ const parsed = {
217
+ terraform: {
218
+ required_providers: {
219
+ aws: { configuration_aliases: ["${aws}", "${var.not_an_alias.x}"] },
220
+ },
221
+ },
222
+ };
223
+ expect((0, provider_schema_1.collectModuleProviderAliases)(parsed)).toEqual([]);
224
+ });
225
+ });
226
+ describe("applyModuleProviderAliases", () => {
227
+ const configWithModule = () => ({
228
+ terraform: {},
229
+ module: { my_module: { source: "./mod" } },
230
+ });
231
+ it("declares the aliased providers and passes them to the module", () => {
232
+ const config = (0, provider_schema_1.applyModuleProviderAliases)(configWithModule(), "my_module", [
233
+ { localName: "aws", alias: "global_region", source: "hashicorp/aws" },
234
+ { localName: "aws", alias: "secondary", source: "hashicorp/aws" },
235
+ ]);
236
+ expect(config).toEqual({
237
+ terraform: { required_providers: { aws: { source: "hashicorp/aws" } } },
238
+ provider: { aws: [{ alias: "global_region" }, { alias: "secondary" }] },
239
+ module: {
240
+ my_module: {
241
+ source: "./mod",
242
+ providers: {
243
+ "aws.global_region": "aws.global_region",
244
+ "aws.secondary": "aws.secondary",
245
+ },
246
+ },
247
+ },
248
+ });
249
+ });
250
+ it("omits required_providers for aliases without a declared source", () => {
251
+ const config = (0, provider_schema_1.applyModuleProviderAliases)(configWithModule(), "my_module", [
252
+ { localName: "aws", alias: "other" },
253
+ ]);
254
+ expect(config.terraform.required_providers).toBeUndefined();
255
+ expect(config.provider).toEqual({ aws: [{ alias: "other" }] });
256
+ });
257
+ it("leaves the config untouched when there are no aliases", () => {
258
+ expect((0, provider_schema_1.applyModuleProviderAliases)(configWithModule(), "my_module", [])).toEqual(configWithModule());
259
+ });
260
+ it("leaves the config untouched when the module call is unknown", () => {
261
+ expect((0, provider_schema_1.applyModuleProviderAliases)(configWithModule(), "other_module", [
262
+ { localName: "aws", alias: "global_region" },
263
+ ])).toEqual(configWithModule());
264
+ });
265
+ });
266
+ describe("packageSubdir", () => {
267
+ it.each([
268
+ ["terraform-aws-modules/iam/aws", undefined],
269
+ [
270
+ "terraform-aws-modules/iam/aws//modules/iam-account",
271
+ "modules/iam-account",
272
+ ],
273
+ ["git::https://github.com/org/repo.git//sub?ref=v1.2.3", "sub"],
274
+ ["git::ssh://git@github.com/org/repo.git", undefined],
275
+ ["./local/module", undefined],
276
+ ])("splits %s", (source, expected) => {
277
+ expect((0, provider_schema_1.packageSubdir)(source)).toEqual(expected);
278
+ });
279
+ });
280
+ describe("fetchedModuleDir", () => {
281
+ let workdir;
282
+ beforeEach(() => {
283
+ workdir = fs.mkdtempSync(path.join(os.tmpdir(), "fetched-module-dir-"));
284
+ });
285
+ afterEach(() => {
286
+ fs.rmSync(workdir, { recursive: true, force: true });
287
+ });
288
+ function writeManifest(modules) {
289
+ const dir = path.join(workdir, ".terraform", "modules");
290
+ fs.mkdirSync(dir, { recursive: true });
291
+ fs.writeFileSync(path.join(dir, "modules.json"), JSON.stringify({ Modules: modules }));
292
+ }
293
+ it("prefers the directory recorded in the module manifest", () => {
294
+ writeManifest([
295
+ { Key: "", Dir: "." },
296
+ { Key: "my_module", Dir: ".terraform/modules/my_module/modules/sub" },
297
+ ]);
298
+ expect((0, provider_schema_1.fetchedModuleDir)(workdir, "my_module", "org/name/aws//modules/sub")).toEqual(path.join(workdir, ".terraform", "modules", "my_module", "modules", "sub"));
299
+ });
300
+ it("falls back to the install path when the manifest was not written", () => {
301
+ expect((0, provider_schema_1.fetchedModuleDir)(workdir, "my_module", "org/name/aws//modules/sub")).toEqual(path.join(workdir, ".terraform", "modules", "my_module", "modules", "sub"));
302
+ });
303
+ it("falls back to the install path when the manifest lacks the module", () => {
304
+ writeManifest([{ Key: "", Dir: "." }]);
305
+ expect((0, provider_schema_1.fetchedModuleDir)(workdir, "my_module", "org/name/aws")).toEqual(path.join(workdir, ".terraform", "modules", "my_module"));
306
+ });
307
+ it("reads local modules where they are", () => {
308
+ expect((0, provider_schema_1.fetchedModuleDir)(workdir, "my_module", "../mod", "/abs/path/to/mod")).toEqual("/abs/path/to/mod");
309
+ });
310
+ });
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNoQixDQUFDLENBQUMsQ0FBQztBQUVKLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLDRDQUFzQztBQUN0Qyx3REFRNEI7QUFFNUIsTUFBTSxRQUFRLEdBQUcsY0FBNEIsQ0FBQztBQUU5QyxTQUFTLGNBQWMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQ2pFLE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsT0FBTyxHQUFHLGlDQUFpQztJQUM3RCxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsSUFBSSxlQUFpQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFD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QUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5qZXN0Lm1vY2soXCJAY2RrdG4vY29tbW9uc1wiLCAoKSA9PiAoe1xuICAuLi5qZXN0LnJlcXVpcmVBY3R1YWwoXCJAY2RrdG4vY29tbW9uc1wiKSxcbiAgZXhlYzogamVzdC5mbigpLFxufSkpO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1Db25maWcsXG4gIGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzLFxuICBjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzLFxuICBmZXRjaGVkTW9kdWxlRGlyLFxuICBnZXRGZXRjaGluZ0NsaVZlcnNpb24sXG4gIHBhY2thZ2VTdWJkaXIsXG4gIHRlcnJhZm9ybUluaXRXaXRoUmV0cnksXG59IGZyb20gXCIuLi9wcm92aWRlci1zY2hlbWFcIjtcblxuY29uc3QgZXhlY01vY2sgPSBleGVjIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuXG5mdW5jdGlvbiB0cmFuc2llbnRFcnJvcihtZXNzYWdlID0gXCI1MDIgQmFkIEdhdGV3YXkgZnJvbSBnaXRodWIuY29tXCIpIHtcbiAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoXCJub24temVybyBleGl0IGNvZGUgMVwiKTtcbiAgZXJyLnN0ZGVyciA9IG1lc3NhZ2U7XG4gIHJldHVybiBlcnI7XG59XG5cbmZ1bmN0aW9uIGZhdGFsRXJyb3IobWVzc2FnZSA9IFwiRXJyb3I6IEludmFsaWQgcHJvdmlkZXIgdmVyc2lvblwiKSB7XG4gIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKFwibm9uLXplcm8gZXhpdCBjb2RlIDFcIik7XG4gIGVyci5zdGRlcnIgPSBtZXNzYWdlO1xuICByZXR1cm4gZXJyO1xufVxuXG5kZXNjcmliZShcInRlcnJhZm9ybUluaXRXaXRoUmV0cnlcIiwgKCkgPT4ge1xuICBsZXQgY29uc29sZUVycm9yU3B5OiBqZXN0LlNweUluc3RhbmNlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNldCgpO1xuICAgIGNvbnNvbGVFcnJvclNweSA9IGplc3RcbiAgICAgIC5zcHlPbihjb25zb2xlLCBcImVycm9yXCIpXG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgY29uc29sZUVycm9yU3B5Lm1vY2tSZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KFwicmV0dXJucyBpbW1lZGlhdGVseSBvbiBmaXJzdC1hdHRlbXB0IHN1Y2Nlc3NcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlT25jZShcIm9rXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoXCJva1wiKTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXRyaWVzIG9uIHRyYW5zaWVudCBzdGRlcnIgYW5kIGV2ZW50dWFsbHkgc3VjY2VlZHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrXG4gICAgICAubW9ja1JlamVjdGVkVmFsdWVPbmNlKHRyYW5zaWVudEVycm9yKCkpXG4gICAgICAubW9ja1JlamVjdGVkVmFsdWVPbmNlKHRyYW5zaWVudEVycm9yKFwiRUNPTk5SRVNFVFwiKSlcbiAgICAgIC5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoXCJva1wiKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFwib2tcIik7XG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG4gIH0pO1xuXG4gIGl0KFwiZG9lcyBub3QgcmV0cnkgb24gbm9uLXRyYW5zaWVudCBlcnJvcnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZWplY3RlZFZhbHVlT25jZShmYXRhbEVycm9yKCkpO1xuXG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKSxcbiAgICApLnJlamVjdHMudG9NYXRjaE9iamVjdCh7IHN0ZGVycjogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoXCJJbnZhbGlkXCIpIH0pO1xuXG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwidGhyb3dzIGFmdGVyIGV4aGF1c3RpbmcgcmV0cmllcyBvbiBwZXJzaXN0ZW50IHRyYW5zaWVudCBlcnJvcnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZWplY3RlZFZhbHVlKHRyYW5zaWVudEVycm9yKFwiNTAzIFNlcnZpY2UgVW5hdmFpbGFibGVcIikpO1xuXG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKSxcbiAgICApLnJlamVjdHMudG9NYXRjaE9iamVjdCh7IHN0ZGVycjogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoXCI1MDNcIikgfSk7XG5cbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygzKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJnZXRGZXRjaGluZ0NsaVZlcnNpb25cIiwgKCkgPT4ge1xuICBpdChcImV4ZWNzIGB0ZXJyYWZvcm0gdmVyc2lvbmAgb25jZSBhbmQgbWVtb2l6ZXMgdGhlIHJlc3VsdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc2V0KCk7XG4gICAgZXhlY01vY2subW9ja1Jlc29sdmVkVmFsdWUoXCJUZXJyYWZvcm0gdjEuNy41XFxub24gbGludXhfYW1kNjRcXG5cIik7XG5cbiAgICBjb25zdCBmaXJzdCA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuICAgIGNvbnN0IHNlY29uZCA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuXG4gICAgZXhwZWN0KGZpcnN0KS50b0VxdWFsKHsgbmFtZTogXCJ0ZXJyYWZvcm1cIiwgdmVyc2lvbjogXCIxLjcuNVwiIH0pO1xuICAgIGV4cGVjdChzZWNvbmQpLnRvQmUoZmlyc3QpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcImNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXNcIiwgKCkgPT4ge1xuICBpdChcInJldHVybnMgbm90aGluZyBmb3IgYSBtb2R1bGUgd2l0aG91dCByZXF1aXJlZF9wcm92aWRlcnNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHsgdmFyaWFibGU6IHsgZm9vOiBbe31dIH0gfSkpLnRvRXF1YWwoXG4gICAgICBbXSxcbiAgICApO1xuICB9KTtcblxuICBpdChcInJldHVybnMgbm90aGluZyBmb3IgcmVxdWlyZWQgcHJvdmlkZXJzIHdpdGhvdXQgY29uZmlndXJhdGlvbiBhbGlhc2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IFtcbiAgICAgICAgeyByZXF1aXJlZF9wcm92aWRlcnM6IFt7IGF3czogeyBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0gfV0gfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdChcImNvbGxlY3RzIGV2ZXJ5IGFsaWFzIGRlY2xhcmVkIGFjcm9zcyB0ZXJyYWZvcm0gYmxvY2tzXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhd3M6IHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1xuICAgICAgICAgICAgICAgICAgXCIke2F3cy5nbG9iYWxfcmVnaW9ufVwiLFxuICAgICAgICAgICAgICAgICAgXCIke2F3cy5zZWNvbmRhcnl9XCIsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmFuZG9tOiB7IHNvdXJjZTogXCJoYXNoaWNvcnAvcmFuZG9tXCIgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhd3N4OiB7XG4gICAgICAgICAgICAgICAgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzeC50ZXJ0aWFyeX1cIl0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJzZWNvbmRhcnlcIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzeFwiLCBhbGlhczogXCJ0ZXJ0aWFyeVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KFwiZGVkdXBsaWNhdGVzIGFsaWFzZXMgZGVjbGFyZWQgaW4gbW9yZSB0aGFuIG9uZSBmaWxlXCIsICgpID0+IHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IHtcbiAgICAgIGF3czoge1xuICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzLmdsb2JhbF9yZWdpb259XCJdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHBhcnNlZCA9IHtcbiAgICAgIHRlcnJhZm9ybTogW3sgcmVxdWlyZWRfcHJvdmlkZXJzOiBbZGVjbGFyYXRpb24sIGRlY2xhcmF0aW9uXSB9XSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwiZ2xvYmFsX3JlZ2lvblwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgYWxpYXNlcyBvZiBwcm92aWRlcnMgZGVjbGFyZWQgd2l0aG91dCBhIHNvdXJjZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0ge1xuICAgICAgdGVycmFmb3JtOiB7XG4gICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge1xuICAgICAgICAgIGF3czogeyBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzLm90aGVyfVwiXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwib3RoZXJcIiwgc291cmNlOiB1bmRlZmluZWQgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZWFkcyB0aGUgcGxhaW4gcmVmZXJlbmNlcyBhIC50Zi5qc29uIG1vZHVsZSBkZWNsYXJlc1wiLCAoKSA9PiB7XG4gICAgLy8gaGNsMmpzb24gb25seSB3cmFwcyBIQ0wgZXhwcmVzc2lvbnMgaW4gYW4gaW50ZXJwb2xhdGlvbjsgSlNPTiBzeW50YXhcbiAgICAvLyBjYXJyaWVzIHRoZSByZWZlcmVuY2UgYXMtaXMsIGFuZCBpdHMgYmxvY2tzIGNvbWUgdGhyb3VnaCB1bndyYXBwZWRcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7XG4gICAgICAgICAgbnVsbDoge1xuICAgICAgICAgICAgc291cmNlOiBcImhhc2hpY29ycC9udWxsXCIsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIm51bGwuZXh0cmFcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW1xuICAgICAgeyBsb2NhbE5hbWU6IFwibnVsbFwiLCBhbGlhczogXCJleHRyYVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL251bGxcIiB9LFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcInJlYWRzIGFsaWFzZXMgYSBtb2R1bGUgc3ByZWFkIGFjcm9zcyAudGYgYW5kIC50Zi5qc29uIGZpbGVzXCIsICgpID0+IHtcbiAgICAvLyBoY2wyanNvbiBtZXJnZXMgYSAudGYuanNvbiBmaWxlIGludG8gdGhlIHBhcnNlZCBIQ0wgYnkgcmVjdXJzaW5nIGludG9cbiAgICAvLyB0aGUgSENMIGJsb2NrIGFycmF5LCBzbyB0aGUgSlNPTiBoYWxmIGVuZHMgdXAgYXMgYSBuYW1lZCBwcm9wZXJ0eSBvblxuICAgIC8vIHRoYXQgYXJyYXkgcmF0aGVyIHRoYW4gYW5vdGhlciBlbnRyeSBpbiBpdFxuICAgIGNvbnN0IHBhcnNlZDogYW55ID0ge1xuICAgICAgdGVycmFmb3JtOiBbXG4gICAgICAgIHsgcmVxdWlyZWRfcHJvdmlkZXJzOiBbeyBhd3M6IHsgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9IH1dIH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgcGFyc2VkLnRlcnJhZm9ybS5yZXF1aXJlZF9wcm92aWRlcnMgPSB7XG4gICAgICBudWxsOiB7XG4gICAgICAgIHNvdXJjZTogXCJoYXNoaWNvcnAvbnVsbFwiLFxuICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIm51bGwuZXh0cmFcIl0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcIm51bGxcIiwgYWxpYXM6IFwiZXh0cmFcIiwgc291cmNlOiBcImhhc2hpY29ycC9udWxsXCIgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJpZ25vcmVzIGVudHJpZXMgdGhhdCBhcmUgbm90IHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gcmVmZXJlbmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0ge1xuICAgICAgdGVycmFmb3JtOiB7XG4gICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge1xuICAgICAgICAgIGF3czogeyBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzfVwiLCBcIiR7dmFyLm5vdF9hbl9hbGlhcy54fVwiXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXNcIiwgKCkgPT4ge1xuICBjb25zdCBjb25maWdXaXRoTW9kdWxlID0gKCk6IFRlcnJhZm9ybUNvbmZpZyA9PiAoe1xuICAgIHRlcnJhZm9ybToge30sXG4gICAgbW9kdWxlOiB7IG15X21vZHVsZTogeyBzb3VyY2U6IFwiLi9tb2RcIiB9IH0sXG4gIH0pO1xuXG4gIGl0KFwiZGVjbGFyZXMgdGhlIGFsaWFzZWQgcHJvdmlkZXJzIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgbW9kdWxlXCIsICgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhjb25maWdXaXRoTW9kdWxlKCksIFwibXlfbW9kdWxlXCIsIFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJzZWNvbmRhcnlcIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgIF0pO1xuXG4gICAgZXhwZWN0KGNvbmZpZykudG9FcXVhbCh7XG4gICAgICB0ZXJyYWZvcm06IHsgcmVxdWlyZWRfcHJvdmlkZXJzOiB7IGF3czogeyBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0gfSB9LFxuICAgICAgcHJvdmlkZXI6IHsgYXdzOiBbeyBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIgfSwgeyBhbGlhczogXCJzZWNvbmRhcnlcIiB9XSB9LFxuICAgICAgbW9kdWxlOiB7XG4gICAgICAgIG15X21vZHVsZToge1xuICAgICAgICAgIHNvdXJjZTogXCIuL21vZFwiLFxuICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgXCJhd3MuZ2xvYmFsX3JlZ2lvblwiOiBcImF3cy5nbG9iYWxfcmVnaW9uXCIsXG4gICAgICAgICAgICBcImF3cy5zZWNvbmRhcnlcIjogXCJhd3Muc2Vjb25kYXJ5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwib21pdHMgcmVxdWlyZWRfcHJvdmlkZXJzIGZvciBhbGlhc2VzIHdpdGhvdXQgYSBkZWNsYXJlZCBzb3VyY2VcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJteV9tb2R1bGVcIiwgW1xuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcIm90aGVyXCIgfSxcbiAgICBdKTtcblxuICAgIGV4cGVjdChjb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycykudG9CZVVuZGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb25maWcucHJvdmlkZXIpLnRvRXF1YWwoeyBhd3M6IFt7IGFsaWFzOiBcIm90aGVyXCIgfV0gfSk7XG4gIH0pO1xuXG4gIGl0KFwibGVhdmVzIHRoZSBjb25maWcgdW50b3VjaGVkIHdoZW4gdGhlcmUgYXJlIG5vIGFsaWFzZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJteV9tb2R1bGVcIiwgW10pLFxuICAgICkudG9FcXVhbChjb25maWdXaXRoTW9kdWxlKCkpO1xuICB9KTtcblxuICBpdChcImxlYXZlcyB0aGUgY29uZmlnIHVudG91Y2hlZCB3aGVuIHRoZSBtb2R1bGUgY2FsbCBpcyB1bmtub3duXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhjb25maWdXaXRoTW9kdWxlKCksIFwib3RoZXJfbW9kdWxlXCIsIFtcbiAgICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcImdsb2JhbF9yZWdpb25cIiB9LFxuICAgICAgXSksXG4gICAgKS50b0VxdWFsKGNvbmZpZ1dpdGhNb2R1bGUoKSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwicGFja2FnZVN1YmRpclwiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIFtcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzXCIsIHVuZGVmaW5lZF0sXG4gICAgW1xuICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgXCJtb2R1bGVzL2lhbS1hY2NvdW50XCIsXG4gICAgXSxcbiAgICBbXCJnaXQ6Omh0dHBzOi8vZ2l0aHViLmNvbS9vcmcvcmVwby5naXQvL3N1Yj9yZWY9djEuMi4zXCIsIFwic3ViXCJdLFxuICAgIFtcImdpdDo6c3NoOi8vZ2l0QGdpdGh1Yi5jb20vb3JnL3JlcG8uZ2l0XCIsIHVuZGVmaW5lZF0sXG4gICAgW1wiLi9sb2NhbC9tb2R1bGVcIiwgdW5kZWZpbmVkXSxcbiAgXSkoXCJzcGxpdHMgJXNcIiwgKHNvdXJjZSwgZXhwZWN0ZWQpID0+IHtcbiAgICBleHBlY3QocGFja2FnZVN1YmRpcihzb3VyY2UgYXMgc3RyaW5nKSkudG9FcXVhbChleHBlY3RlZCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiZmV0Y2hlZE1vZHVsZURpclwiLCAoKSA9PiB7XG4gIGxldCB3b3JrZGlyOiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJmZXRjaGVkLW1vZHVsZS1kaXItXCIpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBmcy5ybVN5bmMod29ya2RpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICB9KTtcblxuICBmdW5jdGlvbiB3cml0ZU1hbmlmZXN0KG1vZHVsZXM6IHsgS2V5OiBzdHJpbmc7IERpcjogc3RyaW5nIH1bXSkge1xuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbih3b3JrZGlyLCBcIi50ZXJyYWZvcm1cIiwgXCJtb2R1bGVzXCIpO1xuICAgIGZzLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oZGlyLCBcIm1vZHVsZXMuanNvblwiKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgTW9kdWxlczogbW9kdWxlcyB9KSxcbiAgICApO1xuICB9XG5cbiAgaXQoXCJwcmVmZXJzIHRoZSBkaXJlY3RvcnkgcmVjb3JkZWQgaW4gdGhlIG1vZHVsZSBtYW5pZmVzdFwiLCAoKSA9PiB7XG4gICAgd3JpdGVNYW5pZmVzdChbXG4gICAgICB7IEtleTogXCJcIiwgRGlyOiBcIi5cIiB9LFxuICAgICAgeyBLZXk6IFwibXlfbW9kdWxlXCIsIERpcjogXCIudGVycmFmb3JtL21vZHVsZXMvbXlfbW9kdWxlL21vZHVsZXMvc3ViXCIgfSxcbiAgICBdKTtcblxuICAgIGV4cGVjdChcbiAgICAgIGZldGNoZWRNb2R1bGVEaXIod29ya2RpciwgXCJteV9tb2R1bGVcIiwgXCJvcmcvbmFtZS9hd3MvL21vZHVsZXMvc3ViXCIpLFxuICAgICkudG9FcXVhbChcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgd29ya2RpcixcbiAgICAgICAgXCIudGVycmFmb3JtXCIsXG4gICAgICAgIFwibW9kdWxlc1wiLFxuICAgICAgICBcIm15X21vZHVsZVwiLFxuICAgICAgICBcIm1vZHVsZXNcIixcbiAgICAgICAgXCJzdWJcIixcbiAgICAgICksXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJmYWxscyBiYWNrIHRvIHRoZSBpbnN0YWxsIHBhdGggd2hlbiB0aGUgbWFuaWZlc3Qgd2FzIG5vdCB3cml0dGVuXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwib3JnL25hbWUvYXdzLy9tb2R1bGVzL3N1YlwiKSxcbiAgICApLnRvRXF1YWwoXG4gICAgICBwYXRoLmpvaW4oXG4gICAgICAgIHdvcmtkaXIsXG4gICAgICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgICAgICBcIm1vZHVsZXNcIixcbiAgICAgICAgXCJteV9tb2R1bGVcIixcbiAgICAgICAgXCJtb2R1bGVzXCIsXG4gICAgICAgIFwic3ViXCIsXG4gICAgICApLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KFwiZmFsbHMgYmFjayB0byB0aGUgaW5zdGFsbCBwYXRoIHdoZW4gdGhlIG1hbmlmZXN0IGxhY2tzIHRoZSBtb2R1bGVcIiwgKCkgPT4ge1xuICAgIHdyaXRlTWFuaWZlc3QoW3sgS2V5OiBcIlwiLCBEaXI6IFwiLlwiIH1dKTtcblxuICAgIGV4cGVjdChmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwib3JnL25hbWUvYXdzXCIpKS50b0VxdWFsKFxuICAgICAgcGF0aC5qb2luKHdvcmtkaXIsIFwiLnRlcnJhZm9ybVwiLCBcIm1vZHVsZXNcIiwgXCJteV9tb2R1bGVcIiksXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJyZWFkcyBsb2NhbCBtb2R1bGVzIHdoZXJlIHRoZXkgYXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwiLi4vbW9kXCIsIFwiL2Ficy9wYXRoL3RvL21vZFwiKSxcbiAgICApLnRvRXF1YWwoXCIvYWJzL3BhdGgvdG8vbW9kXCIpO1xuICB9KTtcbn0pO1xuIl19