@cdktn/provider-schema 0.24.0-pre.88 → 0.24.0-pre.89

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
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 (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
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ const fs = __importStar(require("fs-extra"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const cache_1 = require("../cache");
32
+ describe("cachedAccess", () => {
33
+ let cacheDir;
34
+ beforeEach(() => {
35
+ cacheDir = fs.mkdtempSync(path.join(os.tmpdir(), "provider-schema-cache-"));
36
+ });
37
+ afterEach(() => {
38
+ fs.removeSync(cacheDir);
39
+ });
40
+ it("writes to a suffix-qualified cache file when a keySuffix is given", async () => {
41
+ const producer = jest.fn().mockResolvedValue({ hello: "world" });
42
+ const access = (0, cache_1.cachedAccess)(producer, cacheDir, "terraform-1.7");
43
+ await access({ fqn: "hashicorp/null", version: "3.1.0" });
44
+ const files = fs.readdirSync(cacheDir);
45
+ expect(files).toHaveLength(1);
46
+ expect(files[0]).toContain("terraform-1.7");
47
+ });
48
+ it("keeps distinct cache files for distinct suffixes", async () => {
49
+ const producerA = jest.fn().mockResolvedValue({ v: "a" });
50
+ const producerB = jest.fn().mockResolvedValue({ v: "b" });
51
+ const input = { fqn: "hashicorp/null", version: "3.1.0" };
52
+ await (0, cache_1.cachedAccess)(producerA, cacheDir, "terraform-1.7")(input);
53
+ await (0, cache_1.cachedAccess)(producerB, cacheDir, "terraform-1.15")(input);
54
+ const files = fs.readdirSync(cacheDir);
55
+ expect(files).toHaveLength(2);
56
+ expect(producerA).toHaveBeenCalledTimes(1);
57
+ expect(producerB).toHaveBeenCalledTimes(1);
58
+ });
59
+ it("hits the same cache file on repeated calls with the same suffix", async () => {
60
+ const producer = jest.fn().mockResolvedValue({ v: "a" });
61
+ const input = { fqn: "hashicorp/null", version: "3.1.0" };
62
+ const access = (0, cache_1.cachedAccess)(producer, cacheDir, "terraform-1.7");
63
+ await access(input);
64
+ await access(input);
65
+ expect(producer).toHaveBeenCalledTimes(1);
66
+ expect(fs.readdirSync(cacheDir)).toHaveLength(1);
67
+ });
68
+ it("stays backward-compatible without a keySuffix", async () => {
69
+ const producer = jest.fn().mockResolvedValue({ hello: "world" });
70
+ const access = (0, cache_1.cachedAccess)(producer, cacheDir);
71
+ await access({ fqn: "hashicorp/null", version: "3.1.0" });
72
+ const files = fs.readdirSync(cacheDir);
73
+ expect(files).toHaveLength(1);
74
+ expect(files[0]).not.toContain("undefined");
75
+ });
76
+ });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2FjaGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixvQ0FBd0M7QUFFeEMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsSUFBSSxRQUFnQixDQUFDO0lBRXJCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFZLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVqRSxNQUFNLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFTLENBQUMsQ0FBQztRQUVqRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMs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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGNhY2hlZEFjY2VzcyB9IGZyb20gXCIuLi9jYWNoZVwiO1xuXG5kZXNjcmliZShcImNhY2hlZEFjY2Vzc1wiLCAoKSA9PiB7XG4gIGxldCBjYWNoZURpcjogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNhY2hlRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInByb3ZpZGVyLXNjaGVtYS1jYWNoZS1cIikpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZzLnJlbW92ZVN5bmMoY2FjaGVEaXIpO1xuICB9KTtcblxuICBpdChcIndyaXRlcyB0byBhIHN1ZmZpeC1xdWFsaWZpZWQgY2FjaGUgZmlsZSB3aGVuIGEga2V5U3VmZml4IGlzIGdpdmVuXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlciA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSh7IGhlbGxvOiBcIndvcmxkXCIgfSk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLnRvQ29udGFpbihcInRlcnJhZm9ybS0xLjdcIik7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgZGlzdGluY3QgY2FjaGUgZmlsZXMgZm9yIGRpc3RpbmN0IHN1ZmZpeGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlckEgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImFcIiB9KTtcbiAgICBjb25zdCBwcm9kdWNlckIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImJcIiB9KTtcblxuICAgIGNvbnN0IGlucHV0ID0geyBmcW46IFwiaGFzaGljb3JwL251bGxcIiwgdmVyc2lvbjogXCIzLjEuMFwiIH0gYXMgYW55O1xuXG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQSwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKShpbnB1dCk7XG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQiwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuMTVcIikoaW5wdXQpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMik7XG4gICAgZXhwZWN0KHByb2R1Y2VyQSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChwcm9kdWNlckIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJoaXRzIHRoZSBzYW1lIGNhY2hlIGZpbGUgb24gcmVwZWF0ZWQgY2FsbHMgd2l0aCB0aGUgc2FtZSBzdWZmaXhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y2VyID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJhXCIgfSk7XG4gICAgY29uc3QgaW5wdXQgPSB7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKGlucHV0KTtcbiAgICBhd2FpdCBhY2Nlc3MoaW5wdXQpO1xuXG4gICAgZXhwZWN0KHByb2R1Y2VyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKSkudG9IYXZlTGVuZ3RoKDEpO1xuICB9KTtcblxuICBpdChcInN0YXlzIGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aG91dCBhIGtleVN1ZmZpeFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyBoZWxsbzogXCJ3b3JsZFwiIH0pO1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLm5vdC50b0NvbnRhaW4oXCJ1bmRlZmluZWRcIik7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=emission-check.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emission-check.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/emission-check.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
3
+ // SPDX-License-Identifier: MPL-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const commons_1 = require("@cdktn/commons");
6
+ const emission_check_1 = require("../emission-check");
7
+ const cli = (name, version) => ({
8
+ name,
9
+ version,
10
+ });
11
+ describe("checkSchemaEmissionGaps", () => {
12
+ it("reports every gap when fetched with an old terraform and default targets", () => {
13
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.7.5"), commons_1.DEFAULT_TARGET_VERSIONS);
14
+ expect(gaps).toEqual(expect.arrayContaining([
15
+ "ephemeral resources",
16
+ "provider functions",
17
+ "write-only attributes",
18
+ "resource identity",
19
+ ]));
20
+ expect(gaps).toHaveLength(4);
21
+ });
22
+ it("reports no gaps when fetched with a recent terraform", () => {
23
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.15.6"), commons_1.DEFAULT_TARGET_VERSIONS);
24
+ expect(gaps).toEqual([]);
25
+ });
26
+ it("reports gaps for an old opentofu fetch when opentofu is targeted", () => {
27
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("opentofu", "1.10.0"), {
28
+ opentofu: ">=1.11.0",
29
+ });
30
+ expect(gaps).toEqual(expect.arrayContaining([
31
+ "ephemeral resources",
32
+ "write-only attributes",
33
+ "resource identity",
34
+ ]));
35
+ // functions were already emitted as of opentofu 1.8.0, so the 1.10.0
36
+ // fetch isn't missing them
37
+ expect(gaps).not.toContain("provider functions");
38
+ });
39
+ it("does not warn about a feature the targets never admit", () => {
40
+ // Pinned to a version that predates every emission boundary in this
41
+ // family - the project itself never runs where the feature would show
42
+ // up, so an old fetching CLI isn't a gap.
43
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.7.5"), {
44
+ terraform: "1.6.6",
45
+ });
46
+ expect(gaps).toEqual([]);
47
+ });
48
+ it("returns no gaps for an unrecognized fetching CLI", () => {
49
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)({ name: "unknown" }, commons_1.DEFAULT_TARGET_VERSIONS);
50
+ expect(gaps).toEqual([]);
51
+ });
52
+ it("does not throw and skips the product when targetVersions has a malformed range", () => {
53
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.7.5"), {
54
+ terraform: "not-a-range",
55
+ });
56
+ expect(gaps).toEqual([]);
57
+ });
58
+ it("reports no gap for families whose boundary the fetching CLI exactly meets", () => {
59
+ // terraform 1.11.0 sits exactly on the write-only boundary (and above
60
+ // the functions/ephemeral ones); only the 1.12.0 identity boundary is
61
+ // still ahead of it.
62
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.11.0"), commons_1.DEFAULT_TARGET_VERSIONS);
63
+ expect(gaps).toEqual(["resource identity"]);
64
+ });
65
+ it("reports no gaps when the fetching CLI is exactly at the newest boundary", () => {
66
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.12.0"), commons_1.DEFAULT_TARGET_VERSIONS);
67
+ expect(gaps).toEqual([]);
68
+ });
69
+ it("returns no gaps when the fetching CLI has no version metadata", () => {
70
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)({ name: "terraform" }, commons_1.DEFAULT_TARGET_VERSIONS);
71
+ expect(gaps).toEqual([]);
72
+ });
73
+ it("still admits a family whose boundary the target pins exactly", () => {
74
+ // A project pinned to exactly 1.11.0 intersects ">=1.11.0" (write-only)
75
+ // but not ">=1.12.0" (identity), so an old fetching CLI is a gap for the
76
+ // first three families only.
77
+ const gaps = (0, emission_check_1.checkSchemaEmissionGaps)(cli("terraform", "1.7.5"), {
78
+ terraform: "1.11.0",
79
+ });
80
+ expect(gaps).toEqual(expect.arrayContaining([
81
+ "provider functions",
82
+ "ephemeral resources",
83
+ "write-only attributes",
84
+ ]));
85
+ expect(gaps).not.toContain("resource identity");
86
+ });
87
+ });
88
+ describe("suggestedEmittingCliVersions", () => {
89
+ it("suggests the highest boundary across the gapped families per product", () => {
90
+ expect((0, emission_check_1.suggestedEmittingCliVersions)(["functions", "ephemeral_resource_schemas"])).toBe("terraform >=1.10.0 / opentofu >=1.11.0");
91
+ });
92
+ it("suggests the identity boundary when identity is the only gap", () => {
93
+ expect((0, emission_check_1.suggestedEmittingCliVersions)(["resource_identity_schemas"])).toBe("terraform >=1.12.0 / opentofu >=1.12.0");
94
+ });
95
+ });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pc3Npb24tY2hlY2sudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZW1pc3Npb24tY2hlY2sudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsNENBQThFO0FBQzlFLHNEQUcyQjtBQUUzQixNQUFNLEdBQUcsR0FBRyxDQUFDLElBQWlDLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLElBQUk7SUFDSixPQUFPO0NBQ1IsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxFQUFFLENBQUMsMEVBQTBFLEVBQUUsR0FBRyxFQUFFO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLElBQUEsd0NBQXVCLEVBQ2xDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQ3pCLGlDQUF1QixDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNyQixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixtQkFBbUI7U0FDcEIsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFBLHdDQUF1QixFQUNsQyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUMxQixpQ0FBdUIsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO1FBQzFFLE1BQU0sSUFBSSxHQUFHLElBQUEsd0NBQXVCLEVBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUM5RCxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUNsQixNQUFNLENBQUMsZUFBZSxDQUFDO1lBQ3JCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIsbUJBQW1CO1NBQ3BCLENBQUMsQ0FDSCxDQUFDO1FBQ0YscUVBQXFFO1FBQ3JFLDJCQUEyQjtRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtRQUMvRCxvRUFBb0U7UUFDcEUsc0VBQXNFO1FBQ3RFLDBDQUEwQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFBLHdDQUF1QixFQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsU0FBUyxFQUFFLE9BQU87U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBQSx3Q0FBdUIsRUFDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQ25CLGlDQUF1QixDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRSxHQUFHLEVBQUU7UUFDeEYsTUFBTSxJQUFJLEdBQUcsSUFBQSx3Q0FBdUIsRUFBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQzlELFNBQVMsRUFBRSxhQUFhO1NBQ3pCLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkVBQTJFLEVBQUUsR0FBRyxFQUFFO1FBQ25GLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUscUJBQXFCO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUEsd0NBQXVCLEVBQ2xDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQzFCLGlDQUF1QixDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5RUFBeUUsRUFBRSxHQUFHLEVBQUU7UUFDakYsTUFBTSxJQUFJLEdBQUcsSUFBQSx3Q0FBdUIsRUFDbEMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFDMUIsaUNBQXVCLENBQ3hCLENBQUM7UUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtRQUN2RSxNQUFNLElBQUksR0FBRyxJQUFBLHdDQUF1QixFQUNsQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFDckIsaUNBQXVCLENBQ3hCLENBQUM7UUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEdBQUcsRUFBRTtRQUN0RSx3RUFBd0U7UUFDeEUseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLHdDQUF1QixFQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNyQixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLHVCQUF1QjtTQUN4QixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsRUFBRSxDQUFDLHNFQUFzRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLENBQ0osSUFBQSw2Q0FBNEIsRUFBQyxDQUFDLFdBQVcsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQzFFLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1FBQ3RFLE1BQU0sQ0FBQyxJQUFBLDZDQUE0QixFQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0RSx3Q0FBd0MsQ0FDekMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgeyBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUywgVGVycmFmb3JtQ2xpVmVyc2lvbiB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMsXG4gIHN1Z2dlc3RlZEVtaXR0aW5nQ2xpVmVyc2lvbnMsXG59IGZyb20gXCIuLi9lbWlzc2lvbi1jaGVja1wiO1xuXG5jb25zdCBjbGkgPSAobmFtZTogVGVycmFmb3JtQ2xpVmVyc2lvbltcIm5hbWVcIl0sIHZlcnNpb246IHN0cmluZykgPT4gKHtcbiAgbmFtZSxcbiAgdmVyc2lvbixcbn0pO1xuXG5kZXNjcmliZShcImNoZWNrU2NoZW1hRW1pc3Npb25HYXBzXCIsICgpID0+IHtcbiAgaXQoXCJyZXBvcnRzIGV2ZXJ5IGdhcCB3aGVuIGZldGNoZWQgd2l0aCBhbiBvbGQgdGVycmFmb3JtIGFuZCBkZWZhdWx0IHRhcmdldHNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGdhcHMgPSBjaGVja1NjaGVtYUVtaXNzaW9uR2FwcyhcbiAgICAgIGNsaShcInRlcnJhZm9ybVwiLCBcIjEuNy41XCIpLFxuICAgICAgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMsXG4gICAgKTtcblxuICAgIGV4cGVjdChnYXBzKS50b0VxdWFsKFxuICAgICAgZXhwZWN0LmFycmF5Q29udGFpbmluZyhbXG4gICAgICAgIFwiZXBoZW1lcmFsIHJlc291cmNlc1wiLFxuICAgICAgICBcInByb3ZpZGVyIGZ1bmN0aW9uc1wiLFxuICAgICAgICBcIndyaXRlLW9ubHkgYXR0cmlidXRlc1wiLFxuICAgICAgICBcInJlc291cmNlIGlkZW50aXR5XCIsXG4gICAgICBdKSxcbiAgICApO1xuICAgIGV4cGVjdChnYXBzKS50b0hhdmVMZW5ndGgoNCk7XG4gIH0pO1xuXG4gIGl0KFwicmVwb3J0cyBubyBnYXBzIHdoZW4gZmV0Y2hlZCB3aXRoIGEgcmVjZW50IHRlcnJhZm9ybVwiLCAoKSA9PiB7XG4gICAgY29uc3QgZ2FwcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKFxuICAgICAgY2xpKFwidGVycmFmb3JtXCIsIFwiMS4xNS42XCIpLFxuICAgICAgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMsXG4gICAgKTtcblxuICAgIGV4cGVjdChnYXBzKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXBvcnRzIGdhcHMgZm9yIGFuIG9sZCBvcGVudG9mdSBmZXRjaCB3aGVuIG9wZW50b2Z1IGlzIHRhcmdldGVkXCIsICgpID0+IHtcbiAgICBjb25zdCBnYXBzID0gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMoY2xpKFwib3BlbnRvZnVcIiwgXCIxLjEwLjBcIiksIHtcbiAgICAgIG9wZW50b2Z1OiBcIj49MS4xMS4wXCIsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoZ2FwcykudG9FcXVhbChcbiAgICAgIGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1xuICAgICAgICBcImVwaGVtZXJhbCByZXNvdXJjZXNcIixcbiAgICAgICAgXCJ3cml0ZS1vbmx5IGF0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJyZXNvdXJjZSBpZGVudGl0eVwiLFxuICAgICAgXSksXG4gICAgKTtcbiAgICAvLyBmdW5jdGlvbnMgd2VyZSBhbHJlYWR5IGVtaXR0ZWQgYXMgb2Ygb3BlbnRvZnUgMS44LjAsIHNvIHRoZSAxLjEwLjBcbiAgICAvLyBmZXRjaCBpc24ndCBtaXNzaW5nIHRoZW1cbiAgICBleHBlY3QoZ2Fwcykubm90LnRvQ29udGFpbihcInByb3ZpZGVyIGZ1bmN0aW9uc1wiKTtcbiAgfSk7XG5cbiAgaXQoXCJkb2VzIG5vdCB3YXJuIGFib3V0IGEgZmVhdHVyZSB0aGUgdGFyZ2V0cyBuZXZlciBhZG1pdFwiLCAoKSA9PiB7XG4gICAgLy8gUGlubmVkIHRvIGEgdmVyc2lvbiB0aGF0IHByZWRhdGVzIGV2ZXJ5IGVtaXNzaW9uIGJvdW5kYXJ5IGluIHRoaXNcbiAgICAvLyBmYW1pbHkgLSB0aGUgcHJvamVjdCBpdHNlbGYgbmV2ZXIgcnVucyB3aGVyZSB0aGUgZmVhdHVyZSB3b3VsZCBzaG93XG4gICAgLy8gdXAsIHNvIGFuIG9sZCBmZXRjaGluZyBDTEkgaXNuJ3QgYSBnYXAuXG4gICAgY29uc3QgZ2FwcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKGNsaShcInRlcnJhZm9ybVwiLCBcIjEuNy41XCIpLCB7XG4gICAgICB0ZXJyYWZvcm06IFwiMS42LjZcIixcbiAgICB9KTtcblxuICAgIGV4cGVjdChnYXBzKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXR1cm5zIG5vIGdhcHMgZm9yIGFuIHVucmVjb2duaXplZCBmZXRjaGluZyBDTElcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGdhcHMgPSBjaGVja1NjaGVtYUVtaXNzaW9uR2FwcyhcbiAgICAgIHsgbmFtZTogXCJ1bmtub3duXCIgfSxcbiAgICAgIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TLFxuICAgICk7XG5cbiAgICBleHBlY3QoZ2FwcykudG9FcXVhbChbXSk7XG4gIH0pO1xuXG4gIGl0KFwiZG9lcyBub3QgdGhyb3cgYW5kIHNraXBzIHRoZSBwcm9kdWN0IHdoZW4gdGFyZ2V0VmVyc2lvbnMgaGFzIGEgbWFsZm9ybWVkIHJhbmdlXCIsICgpID0+IHtcbiAgICBjb25zdCBnYXBzID0gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMoY2xpKFwidGVycmFmb3JtXCIsIFwiMS43LjVcIiksIHtcbiAgICAgIHRlcnJhZm9ybTogXCJub3QtYS1yYW5nZVwiLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KGdhcHMpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdChcInJlcG9ydHMgbm8gZ2FwIGZvciBmYW1pbGllcyB3aG9zZSBib3VuZGFyeSB0aGUgZmV0Y2hpbmcgQ0xJIGV4YWN0bHkgbWVldHNcIiwgKCkgPT4ge1xuICAgIC8vIHRlcnJhZm9ybSAxLjExLjAgc2l0cyBleGFjdGx5IG9uIHRoZSB3cml0ZS1vbmx5IGJvdW5kYXJ5IChhbmQgYWJvdmVcbiAgICAvLyB0aGUgZnVuY3Rpb25zL2VwaGVtZXJhbCBvbmVzKTsgb25seSB0aGUgMS4xMi4wIGlkZW50aXR5IGJvdW5kYXJ5IGlzXG4gICAgLy8gc3RpbGwgYWhlYWQgb2YgaXQuXG4gICAgY29uc3QgZ2FwcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKFxuICAgICAgY2xpKFwidGVycmFmb3JtXCIsIFwiMS4xMS4wXCIpLFxuICAgICAgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMsXG4gICAgKTtcblxuICAgIGV4cGVjdChnYXBzKS50b0VxdWFsKFtcInJlc291cmNlIGlkZW50aXR5XCJdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXBvcnRzIG5vIGdhcHMgd2hlbiB0aGUgZmV0Y2hpbmcgQ0xJIGlzIGV4YWN0bHkgYXQgdGhlIG5ld2VzdCBib3VuZGFyeVwiLCAoKSA9PiB7XG4gICAgY29uc3QgZ2FwcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKFxuICAgICAgY2xpKFwidGVycmFmb3JtXCIsIFwiMS4xMi4wXCIpLFxuICAgICAgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMsXG4gICAgKTtcblxuICAgIGV4cGVjdChnYXBzKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXR1cm5zIG5vIGdhcHMgd2hlbiB0aGUgZmV0Y2hpbmcgQ0xJIGhhcyBubyB2ZXJzaW9uIG1ldGFkYXRhXCIsICgpID0+IHtcbiAgICBjb25zdCBnYXBzID0gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMoXG4gICAgICB7IG5hbWU6IFwidGVycmFmb3JtXCIgfSxcbiAgICAgIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TLFxuICAgICk7XG5cbiAgICBleHBlY3QoZ2FwcykudG9FcXVhbChbXSk7XG4gIH0pO1xuXG4gIGl0KFwic3RpbGwgYWRtaXRzIGEgZmFtaWx5IHdob3NlIGJvdW5kYXJ5IHRoZSB0YXJnZXQgcGlucyBleGFjdGx5XCIsICgpID0+IHtcbiAgICAvLyBBIHByb2plY3QgcGlubmVkIHRvIGV4YWN0bHkgMS4xMS4wIGludGVyc2VjdHMgXCI+PTEuMTEuMFwiICh3cml0ZS1vbmx5KVxuICAgIC8vIGJ1dCBub3QgXCI+PTEuMTIuMFwiIChpZGVudGl0eSksIHNvIGFuIG9sZCBmZXRjaGluZyBDTEkgaXMgYSBnYXAgZm9yIHRoZVxuICAgIC8vIGZpcnN0IHRocmVlIGZhbWlsaWVzIG9ubHkuXG4gICAgY29uc3QgZ2FwcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKGNsaShcInRlcnJhZm9ybVwiLCBcIjEuNy41XCIpLCB7XG4gICAgICB0ZXJyYWZvcm06IFwiMS4xMS4wXCIsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoZ2FwcykudG9FcXVhbChcbiAgICAgIGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1xuICAgICAgICBcInByb3ZpZGVyIGZ1bmN0aW9uc1wiLFxuICAgICAgICBcImVwaGVtZXJhbCByZXNvdXJjZXNcIixcbiAgICAgICAgXCJ3cml0ZS1vbmx5IGF0dHJpYnV0ZXNcIixcbiAgICAgIF0pLFxuICAgICk7XG4gICAgZXhwZWN0KGdhcHMpLm5vdC50b0NvbnRhaW4oXCJyZXNvdXJjZSBpZGVudGl0eVwiKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJzdWdnZXN0ZWRFbWl0dGluZ0NsaVZlcnNpb25zXCIsICgpID0+IHtcbiAgaXQoXCJzdWdnZXN0cyB0aGUgaGlnaGVzdCBib3VuZGFyeSBhY3Jvc3MgdGhlIGdhcHBlZCBmYW1pbGllcyBwZXIgcHJvZHVjdFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgc3VnZ2VzdGVkRW1pdHRpbmdDbGlWZXJzaW9ucyhbXCJmdW5jdGlvbnNcIiwgXCJlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hc1wiXSksXG4gICAgKS50b0JlKFwidGVycmFmb3JtID49MS4xMC4wIC8gb3BlbnRvZnUgPj0xLjExLjBcIik7XG4gIH0pO1xuXG4gIGl0KFwic3VnZ2VzdHMgdGhlIGlkZW50aXR5IGJvdW5kYXJ5IHdoZW4gaWRlbnRpdHkgaXMgdGhlIG9ubHkgZ2FwXCIsICgpID0+IHtcbiAgICBleHBlY3Qoc3VnZ2VzdGVkRW1pdHRpbmdDbGlWZXJzaW9ucyhbXCJyZXNvdXJjZV9pZGVudGl0eV9zY2hlbWFzXCJdKSkudG9CZShcbiAgICAgIFwidGVycmFmb3JtID49MS4xMi4wIC8gb3BlbnRvZnUgPj0xLjEyLjBcIixcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
@@ -34,6 +34,12 @@ const commons_1 = require("@cdktn/commons");
34
34
  const provider_schema_1 = require("../provider-schema");
35
35
  function sanitizeJson(value) {
36
36
  value["format_version"] = "STUBBED VERSION";
37
+ // cli_name/cli_version stamp whatever binary fetched the schema and vary
38
+ // by environment
39
+ if ("cli_name" in value)
40
+ value["cli_name"] = "STUBBED CLI";
41
+ if ("cli_version" in value)
42
+ value["cli_version"] = "STUBBED VERSION";
37
43
  return (0, safe_stable_stringify_1.default)(value, null, 2);
38
44
  }
39
45
  describe("readSchema", () => {
@@ -168,6 +174,22 @@ describe("sanitizeProviderSchema", () => {
168
174
  },
169
175
  },
170
176
  data_source_schemas: {},
177
+ ephemeral_resource_schemas: {
178
+ null_ephemeral: {
179
+ version: 0,
180
+ block: {
181
+ attributes: {
182
+ correct: {
183
+ type: ["list", "string"],
184
+ },
185
+ incorrect: {
186
+ type: ["list", "string", "list", "string"],
187
+ },
188
+ },
189
+ block_types: {},
190
+ },
191
+ },
192
+ },
171
193
  },
172
194
  },
173
195
  };
@@ -175,4 +197,4 @@ describe("sanitizeProviderSchema", () => {
175
197
  expect(result).toMatchSnapshot();
176
198
  });
177
199
  });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLDJDQUE2QjtBQUM3QixrRkFBb0Q7QUFDcEQsNENBT3dCO0FBQ3hCLHdEQUk0QjtBQUU1QixTQUFTLFlBQVksQ0FBQyxLQUFVO0lBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLE9BQU8sSUFBQSwrQkFBZSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLHFDQUEyQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekUsTUFBTSxNQUFNLEdBQUcsSUFBSSx1Q0FBNkIsQ0FDOUMsUUFBUSxFQUNSLGtCQUFRLENBQUMsVUFBVSxDQUNwQixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLG9DQUFrQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqRCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFWCxFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQ0FBeUIsQ0FDMUMsMkRBQTJELENBQzVELENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLHFDQUEyQixDQUFDLE1BQU0sRUFBRSxrQkFB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RSxRQUFRO3dDQUNkLFFBQVEsRUFBRSxJQUFJO3FDQUNmO29DQUNELE9BQU8sRUFBRTt3Q0FDUCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO3FDQUN6QjtvQ0FDRCxTQUFTLEVBQUU7d0NBQ1QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFRO3FDQUNsRDtpQ0FDRjtnQ0FDRCxXQUFXLEVBQUU7b0NBQ1gsUUFBUSxFQUFFO3dDQUNSLFlBQVksRUFBRSxRQUFRO3dDQUN0QixLQUFLLEVBQUU7NENBQ0wsVUFBVSxFQUFFO2dEQUNWLFFBQVEsRUFBRTtvREFDUixJQUFJLEVBQUUsUUFBUTtvREFDZCxRQUFRLEVBQUUsSUFBSTtpREFDZjtnREFDRCxPQUFPLEVBQUU7b0RBQ1AsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztpREFDekI7Z0RBQ0QsU0FBUyxFQUFFO29EQUNULElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBUTtpREFDbEQ7NkNBQ0Y7NENBQ0QsV0FBVyxFQUFFLEVBQUU7eUNBQ2hCO3FDQUNGO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO29CQUNELG1CQUFtQixFQUFFLEVBQUU7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBQSx3Q0FBc0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBzdGFibGVTdHJpbmdpZnkgZnJvbSBcInNhZmUtc3RhYmxlLXN0cmluZ2lmeVwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCxcbiAgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50LFxuICBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQsXG4gIENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0LFxuICBMYW5ndWFnZSxcbiAgUHJvdmlkZXJTY2hlbWEsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgcmVhZE1vZHVsZVNjaGVtYSxcbiAgcmVhZFByb3ZpZGVyU2NoZW1hLFxuICBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hLFxufSBmcm9tIFwiLi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmZ1bmN0aW9uIHNhbml0aXplSnNvbih2YWx1ZTogYW55KSB7XG4gIHZhbHVlW1wiZm9ybWF0X3ZlcnNpb25cIl0gPSBcIlNUVUJCRUQgVkVSU0lPTlwiO1xuICByZXR1cm4gc3RhYmxlU3RyaW5naWZ5KHZhbHVlLCBudWxsLCAyKTtcbn1cblxuZGVzY3JpYmUoXCJyZWFkU2NoZW1hXCIsICgpID0+IHtcbiAgaXQoXCJnZW5lcmF0ZXMgYSBzaW5nbGUgcHJvdmlkZXIgc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQoXCJoYXNoaWNvcnAvbnVsbEAzLjEuMFwiKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQoXG4gICAgICBwcm92aWRlcixcbiAgICAgIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkUHJvdmlkZXJTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgc2luZ2xlIG1vZHVsZSBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KFxuICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudEAzLjEyLjBcIixcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIG1vcmUgY29tcGxleCBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KFxuICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvZWtzL2F3c0A3LjAuMVwiLFxuICAgICk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwgbW9kdWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIFwibG9jYWwtbW9kdWxlXCIpLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIG1vZHVsZSB3aXRoIGlubGluZSBjb21tZW50cyBpbiB0eXBlIGNvbnN0cmFpbnRzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcImxvY2FsLW1vZHVsZS1pbmxpbmUtY29tbWVudHNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwganNvbiBtb2R1bGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJsb2NhbC1qc29uLW1vZHVsZVwiKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG59KTtcblxuZGVzY3JpYmUoXCJzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hXCIsICgpID0+IHtcbiAgaXQoXCJzYW5pdGl6ZXMgYSBwcm92aWRlciBzY2hlbWFcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYTogUHJvdmlkZXJTY2hlbWEgPSB7XG4gICAgICBmb3JtYXRfdmVyc2lvbjogXCIwLjFcIiBhcyBjb25zdCxcbiAgICAgIHByb3ZpZGVyX3ZlcnNpb25zOiB7XG4gICAgICAgIFwicmVnaXN0cnkudGVycmFmb3JtLmlvL2hhc2hpY29ycC9udWxsXCI6IFwiMy4xLjBcIixcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcl9zY2hlbWFzOiB7XG4gICAgICAgIFwicmVnaXN0cnkudGVycmFmb3JtLmlvL2hhc2hpY29ycC9udWxsXCI6IHtcbiAgICAgICAgICBwcm92aWRlcjoge1xuICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHtcbiAgICAgICAgICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiLFxuICAgICAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb3VyY2Vfc2NoZW1hczoge1xuICAgICAgICAgICAgbnVsbF9yZXNvdXJjZToge1xuICAgICAgICAgICAgICB2ZXJzaW9uOiAwLFxuICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgIGlkOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgICAgICAgICAgICBuZXN0aW5nX21vZGU6IFwic2luZ2xlXCIsXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRhdGFfc291cmNlX3NjaGVtYXM6IHt9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gc2FuaXRpemVQcm92aWRlclNjaGVtYShzY2hlbWEpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLDJDQUE2QjtBQUM3QixrRkFBb0Q7QUFDcEQsNENBT3dCO0FBQ3hCLHdEQUk0QjtBQUU1QixTQUFTLFlBQVksQ0FBQyxLQUFVO0lBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLHlFQUF5RTtJQUN6RSxpQkFBaUI7SUFDakIsSUFBSSxVQUFVLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDM0QsSUFBSSxhQUFhLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRSxPQUFPLElBQUEsK0JBQWUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQ0FBMkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksdUNBQTZCLENBQzlDLFFBQVEsRUFDUixrQkFBUSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQ0FBa0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDakQsQ0FBQyxFQUFFLE1BQU0s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RTt3Q0FDVCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQVE7cUNBQ2xEO2lDQUNGO2dDQUNELFdBQVcsRUFBRSxFQUFFOzZCQUNoQjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQXNCLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgc3RhYmxlU3RyaW5naWZ5IGZyb20gXCJzYWZlLXN0YWJsZS1zdHJpbmdpZnlcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbiAgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0LFxuICBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldCxcbiAgTGFuZ3VhZ2UsXG4gIFByb3ZpZGVyU2NoZW1hLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIHJlYWRNb2R1bGVTY2hlbWEsXG4gIHJlYWRQcm92aWRlclNjaGVtYSxcbiAgc2FuaXRpemVQcm92aWRlclNjaGVtYSxcbn0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5mdW5jdGlvbiBzYW5pdGl6ZUpzb24odmFsdWU6IGFueSkge1xuICB2YWx1ZVtcImZvcm1hdF92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgLy8gY2xpX25hbWUvY2xpX3ZlcnNpb24gc3RhbXAgd2hhdGV2ZXIgYmluYXJ5IGZldGNoZWQgdGhlIHNjaGVtYSBhbmQgdmFyeVxuICAvLyBieSBlbnZpcm9ubWVudFxuICBpZiAoXCJjbGlfbmFtZVwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV9uYW1lXCJdID0gXCJTVFVCQkVEIENMSVwiO1xuICBpZiAoXCJjbGlfdmVyc2lvblwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgcmV0dXJuIHN0YWJsZVN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMik7XG59XG5cbmRlc2NyaWJlKFwicmVhZFNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwiZ2VuZXJhdGVzIGEgc2luZ2xlIHByb3ZpZGVyIHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KFwiaGFzaGljb3JwL251bGxAMy4xLjBcIik7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0KFxuICAgICAgcHJvdmlkZXIsXG4gICAgICBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZFByb3ZpZGVyU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIHNpbmdsZSBtb2R1bGUgc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvL21vZHVsZXMvaWFtLWFjY291bnRAMy4xMi4wXCIsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBtb3JlIGNvbXBsZXggc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2Vrcy9hd3NANy4wLjFcIixcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImxvY2FsLW1vZHVsZVwiKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgd2l0aCBpbmxpbmUgY29tbWVudHMgaW4gdHlwZSBjb25zdHJhaW50c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJsb2NhbC1tb2R1bGUtaW5saW5lLWNvbW1lbnRzXCIsXG4gICAgICApLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIGpzb24gbW9kdWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIFwibG9jYWwtanNvbi1tb2R1bGVcIiksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xufSk7XG5cbmRlc2NyaWJlKFwic2FuaXRpemVQcm92aWRlclNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwic2FuaXRpemVzIGEgcHJvdmlkZXIgc2NoZW1hXCIsICgpID0+IHtcbiAgICBjb25zdCBzY2hlbWE6IFByb3ZpZGVyU2NoZW1hID0ge1xuICAgICAgZm9ybWF0X3ZlcnNpb246IFwiMC4xXCIgYXMgY29uc3QsXG4gICAgICBwcm92aWRlcl92ZXJzaW9uczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiBcIjMuMS4wXCIsXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXJfc2NoZW1hczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiB7XG4gICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlX3NjaGVtYXM6IHtcbiAgICAgICAgICAgIG51bGxfcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBjb21wdXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhX3NvdXJjZV9zY2hlbWFzOiB7fSxcbiAgICAgICAgICBlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hczoge1xuICAgICAgICAgICAgbnVsbF9lcGhlbWVyYWw6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQgPSBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHNjaGVtYSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -3,6 +3,7 @@
3
3
  // SPDX-License-Identifier: MPL-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  jest.mock("@cdktn/commons", () => ({
6
+ ...jest.requireActual("@cdktn/commons"),
6
7
  exec: jest.fn(),
7
8
  }));
8
9
  const commons_1 = require("@cdktn/commons");
@@ -55,4 +56,15 @@ describe("terraformInitWithRetry", () => {
55
56
  expect(execMock).toHaveBeenCalledTimes(3);
56
57
  });
57
58
  });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUosNENBQXNDO0FBQ3RDLHdEQUE0RDtBQUU1RCxNQUFNLFFBQVEsR0FBRyxjQUE0QixDQUFDO0FBRTlDLFNBQVMsY0FBYyxDQUFDLE9BQU8sR0FBRyxpQ0FBaUM7SUFDakUsTUFBTSxHQUFHLEdBQVEsSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNyQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQzdELE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxJQUFJLGVBQWlDLENBQUM7SUFFdEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixlQUFlLEdBQUcsSUFBSTthQUNuQixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzthQUN2QixrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOENBQThDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUQsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSx3Q0FBc0IsRUFBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscURBQXFELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkUsUUFBUTthQUNMLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3ZDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsd0NBQXNCLEVBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3RELFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sTUFBTSxDQUNWLElBQUEsd0NBQXNCLEVBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNoRCxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0VBQWdFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7UUFFdEUsTUFBTSxNQUFNLENBQ1YsSUFBQSx3Q0FBc0IsRUFBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ2hELENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuamVzdC5tb2NrKFwiQGNka3RuL2NvbW1vbnNcIiwgKCkgPT4gKHtcbiAgZXhlYzogamVzdC5mbigpLFxufSkpO1xuXG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5IH0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5jb25zdCBleGVjTW9jayA9IGV4ZWMgYXMgdW5rbm93biBhcyBqZXN0Lk1vY2s7XG5cbmZ1bmN0aW9uIHRyYW5zaWVudEVycm9yKG1lc3NhZ2UgPSBcIjUwMiBCYWQgR2F0ZXdheSBmcm9tIGdpdGh1Yi5jb21cIikge1xuICBjb25zdCBlcnI6IGFueSA9IG5ldyBFcnJvcihcIm5vbi16ZXJvIGV4aXQgY29kZSAxXCIpO1xuICBlcnIuc3RkZXJyID0gbWVzc2FnZTtcbiAgcmV0dXJuIGVycjtcbn1cblxuZnVuY3Rpb24gZmF0YWxFcnJvcihtZXNzYWdlID0gXCJFcnJvcjogSW52YWxpZCBwcm92aWRlciB2ZXJzaW9uXCIpIHtcbiAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoXCJub24temVybyBleGl0IGNvZGUgMVwiKTtcbiAgZXJyLnN0ZGVyciA9IG1lc3NhZ2U7XG4gIHJldHVybiBlcnI7XG59XG5cbmRlc2NyaWJlKFwidGVycmFmb3JtSW5pdFdpdGhSZXRyeVwiLCAoKSA9PiB7XG4gIGxldCBjb25zb2xlRXJyb3JTcHk6IGplc3QuU3B5SW5zdGFuY2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc2V0KCk7XG4gICAgY29uc29sZUVycm9yU3B5ID0gamVzdFxuICAgICAgLnNweU9uKGNvbnNvbGUsIFwiZXJyb3JcIilcbiAgICAgIC5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBjb25zb2xlRXJyb3JTcHkubW9ja1Jlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXR1cm5zIGltbWVkaWF0ZWx5IG9uIGZpcnN0LWF0dGVtcHQgc3VjY2Vzc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc29sdmVkVmFsdWVPbmNlKFwib2tcIik7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApO1xuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZShcIm9rXCIpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcblxuICBpdChcInJldHJpZXMgb24gdHJhbnNpZW50IHN0ZGVyciBhbmQgZXZlbnR1YWxseSBzdWNjZWVkc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2tcbiAgICAgIC5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UodHJhbnNpZW50RXJyb3IoKSlcbiAgICAgIC5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UodHJhbnNpZW50RXJyb3IoXCJFQ09OTlJFU0VUXCIpKVxuICAgICAgLm1vY2tSZXNvbHZlZFZhbHVlT25jZShcIm9rXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoXCJva1wiKTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygzKTtcbiAgfSk7XG5cbiAgaXQoXCJkb2VzIG5vdCByZXRyeSBvbiBub24tdHJhbnNpZW50IGVycm9yc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1JlamVjdGVkVmFsdWVPbmNlKGZhdGFsRXJyb3IoKSk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApLFxuICAgICkucmVqZWN0cy50b01hdGNoT2JqZWN0KHsgc3RkZXJyOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZyhcIkludmFsaWRcIikgfSk7XG5cbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJ0aHJvd3MgYWZ0ZXIgZXhoYXVzdGluZyByZXRyaWVzIG9uIHBlcnNpc3RlbnQgdHJhbnNpZW50IGVycm9yc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1JlamVjdGVkVmFsdWUodHJhbnNpZW50RXJyb3IoXCI1MDMgU2VydmljZSBVbmF2YWlsYWJsZVwiKSk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApLFxuICAgICkucmVqZWN0cy50b01hdGNoT2JqZWN0KHsgc3RkZXJyOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZyhcIjUwM1wiKSB9KTtcblxuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDMpO1xuICB9KTtcbn0pO1xuIl19
59
+ describe("getFetchingCliVersion", () => {
60
+ it("execs `terraform version` once and memoizes the result", async () => {
61
+ execMock.mockReset();
62
+ execMock.mockResolvedValue("Terraform v1.7.5\non linux_amd64\n");
63
+ const first = await (0, provider_schema_1.getFetchingCliVersion)();
64
+ const second = await (0, provider_schema_1.getFetchingCliVersion)();
65
+ expect(first).toEqual({ name: "terraform", version: "1.7.5" });
66
+ expect(second).toBe(first);
67
+ expect(execMock).toHaveBeenCalledTimes(1);
68
+ });
69
+ });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNoQixDQUFDLENBQUMsQ0FBQztBQUVKLDRDQUFzQztBQUN0Qyx3REFHNEI7QUFFNUIsTUFBTSxRQUFRLEdBQUcsY0FBNEIsQ0FBQztBQUU5QyxTQUFTLGNBQWMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQ2pFLE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsT0FBTyxHQUFHLGlDQUFpQztJQUM3RCxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsSUFBSSxlQUFpQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsZUFBZSxHQUFHLElBQUk7YUFDbkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7YUFDdkIsa0JBQWtCLENBQUMs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LElBQUEsdUNBQXFCLEdBQUUsQ0FBQztRQUU3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuamVzdC5tb2NrKFwiQGNka3RuL2NvbW1vbnNcIiwgKCkgPT4gKHtcbiAgLi4uamVzdC5yZXF1aXJlQWN0dWFsKFwiQGNka3RuL2NvbW1vbnNcIiksXG4gIGV4ZWM6IGplc3QuZm4oKSxcbn0pKTtcblxuaW1wb3J0IHsgZXhlYyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uLFxuICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5LFxufSBmcm9tIFwiLi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmNvbnN0IGV4ZWNNb2NrID0gZXhlYyBhcyB1bmtub3duIGFzIGplc3QuTW9jaztcblxuZnVuY3Rpb24gdHJhbnNpZW50RXJyb3IobWVzc2FnZSA9IFwiNTAyIEJhZCBHYXRld2F5IGZyb20gZ2l0aHViLmNvbVwiKSB7XG4gIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKFwibm9uLXplcm8gZXhpdCBjb2RlIDFcIik7XG4gIGVyci5zdGRlcnIgPSBtZXNzYWdlO1xuICByZXR1cm4gZXJyO1xufVxuXG5mdW5jdGlvbiBmYXRhbEVycm9yKG1lc3NhZ2UgPSBcIkVycm9yOiBJbnZhbGlkIHByb3ZpZGVyIHZlcnNpb25cIikge1xuICBjb25zdCBlcnI6IGFueSA9IG5ldyBFcnJvcihcIm5vbi16ZXJvIGV4aXQgY29kZSAxXCIpO1xuICBlcnIuc3RkZXJyID0gbWVzc2FnZTtcbiAgcmV0dXJuIGVycjtcbn1cblxuZGVzY3JpYmUoXCJ0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5XCIsICgpID0+IHtcbiAgbGV0IGNvbnNvbGVFcnJvclNweTogamVzdC5TcHlJbnN0YW5jZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVzZXQoKTtcbiAgICBjb25zb2xlRXJyb3JTcHkgPSBqZXN0XG4gICAgICAuc3B5T24oY29uc29sZSwgXCJlcnJvclwiKVxuICAgICAgLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB1bmRlZmluZWQpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGNvbnNvbGVFcnJvclNweS5tb2NrUmVzdG9yZSgpO1xuICB9KTtcblxuICBpdChcInJldHVybnMgaW1tZWRpYXRlbHkgb24gZmlyc3QtYXR0ZW1wdCBzdWNjZXNzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoXCJva1wiKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFwib2tcIik7XG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwicmV0cmllcyBvbiB0cmFuc2llbnQgc3RkZXJyIGFuZCBldmVudHVhbGx5IHN1Y2NlZWRzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9ja1xuICAgICAgLm1vY2tSZWplY3RlZFZhbHVlT25jZSh0cmFuc2llbnRFcnJvcigpKVxuICAgICAgLm1vY2tSZWplY3RlZFZhbHVlT25jZSh0cmFuc2llbnRFcnJvcihcIkVDT05OUkVTRVRcIikpXG4gICAgICAubW9ja1Jlc29sdmVkVmFsdWVPbmNlKFwib2tcIik7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApO1xuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZShcIm9rXCIpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDMpO1xuICB9KTtcblxuICBpdChcImRvZXMgbm90IHJldHJ5IG9uIG5vbi10cmFuc2llbnQgZXJyb3JzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UoZmF0YWxFcnJvcigpKTtcblxuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCksXG4gICAgKS5yZWplY3RzLnRvTWF0Y2hPYmplY3QoeyBzdGRlcnI6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFwiSW52YWxpZFwiKSB9KTtcblxuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcblxuICBpdChcInRocm93cyBhZnRlciBleGhhdXN0aW5nIHJldHJpZXMgb24gcGVyc2lzdGVudCB0cmFuc2llbnQgZXJyb3JzXCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVqZWN0ZWRWYWx1ZSh0cmFuc2llbnRFcnJvcihcIjUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlXCIpKTtcblxuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCksXG4gICAgKS5yZWplY3RzLnRvTWF0Y2hPYmplY3QoeyBzdGRlcnI6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFwiNTAzXCIpIH0pO1xuXG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uXCIsICgpID0+IHtcbiAgaXQoXCJleGVjcyBgdGVycmFmb3JtIHZlcnNpb25gIG9uY2UgYW5kIG1lbW9pemVzIHRoZSByZXN1bHRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNldCgpO1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKFwiVGVycmFmb3JtIHYxLjcuNVxcbm9uIGxpbnV4X2FtZDY0XFxuXCIpO1xuXG4gICAgY29uc3QgZmlyc3QgPSBhd2FpdCBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTtcbiAgICBjb25zdCBzZWNvbmQgPSBhd2FpdCBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTtcblxuICAgIGV4cGVjdChmaXJzdCkudG9FcXVhbCh7IG5hbWU6IFwidGVycmFmb3JtXCIsIHZlcnNpb246IFwiMS43LjVcIiB9KTtcbiAgICBleHBlY3Qoc2Vjb25kKS50b0JlKGZpcnN0KTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=read-emission-gap-warning.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-emission-gap-warning.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/read-emission-gap-warning.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
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 (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
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ jest.mock("../provider-schema", () => ({
29
+ ...jest.requireActual("../provider-schema"),
30
+ readProviderSchema: jest.fn(),
31
+ getFetchingCliVersion: jest.fn(),
32
+ }));
33
+ const fs = __importStar(require("fs-extra"));
34
+ const os = __importStar(require("os"));
35
+ const path = __importStar(require("path"));
36
+ const commons_1 = require("@cdktn/commons");
37
+ const read_1 = require("../read");
38
+ const provider_schema_1 = require("../provider-schema");
39
+ const readProviderSchemaMock = provider_schema_1.readProviderSchema;
40
+ const getFetchingCliVersionMock = provider_schema_1.getFetchingCliVersion;
41
+ const stampedFixture = {
42
+ format_version: "0.1",
43
+ cli_name: "terraform",
44
+ cli_version: "1.7.5",
45
+ };
46
+ describe("readSchema - emission gap warning on cache hits (regression)", () => {
47
+ let cacheDir;
48
+ let warnSpy;
49
+ beforeEach(() => {
50
+ cacheDir = fs.mkdtempSync(path.join(os.tmpdir(), "provider-schema-cache-"));
51
+ warnSpy = jest.spyOn(commons_1.logger, "warn").mockImplementation(() => undefined);
52
+ getFetchingCliVersionMock.mockReset();
53
+ getFetchingCliVersionMock.mockResolvedValue({
54
+ name: "terraform",
55
+ version: "1.7.5",
56
+ });
57
+ readProviderSchemaMock.mockReset();
58
+ readProviderSchemaMock.mockResolvedValue(stampedFixture);
59
+ });
60
+ afterEach(() => {
61
+ warnSpy.mockRestore();
62
+ fs.removeSync(cacheDir);
63
+ });
64
+ it("fires the warning on both a fresh fetch and a later cache hit for the same target", async () => {
65
+ const constraint = new commons_1.TerraformProviderConstraint("hashicorp/null@3.1.0");
66
+ const targetVersions = { terraform: ">=1.12.0" };
67
+ await (0, read_1.readSchema)([constraint], cacheDir, targetVersions);
68
+ await (0, read_1.readSchema)([constraint], cacheDir, targetVersions);
69
+ // second readSchema call is served from the on-disk cache written by the
70
+ // first - the underlying fetch only ever runs once.
71
+ expect(readProviderSchemaMock).toHaveBeenCalledTimes(1);
72
+ // yet the emission-gap warning fires for both calls, because it now
73
+ // runs against the resolved (cached-or-fresh) schema in read.ts, not
74
+ // inside readProviderSchema.
75
+ expect(warnSpy).toHaveBeenCalledTimes(2);
76
+ expect(warnSpy.mock.calls[0][0]).toContain("provider schema fetched with terraform 1.7.5");
77
+ expect(warnSpy.mock.calls[1][0]).toContain("provider schema fetched with terraform 1.7.5");
78
+ });
79
+ });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1lbWlzc2lvbi1nYXAtd2FybmluZy51bml0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3JlYWQtZW1pc3Npb24tZ2FwLXdhcm5pbmcudW5pdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7SUFDM0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtJQUM3QixxQkFBcUIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUosNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsNENBSXdCO0FBQ3hCLGtDQUFxQztBQUNyQyx3REFBK0U7QUFFL0UsTUFBTSxzQkFBc0IsR0FBRyxvQ0FBMEMsQ0FBQztBQUMxRSxNQUFNLHlCQUF5QixHQUFHLHVDQUE2QyxDQUFDO0FBRWhGLE1BQU0sY0FBYyxHQUFtQjtJQUNyQyxjQUFjLEVBQUUsS0FBSztJQUNyQixRQUFRLEVBQUUsV0FBVztJQUNyQixXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFDO0FBRUYsUUFBUSxDQUFDLDhEQUE4RCxFQUFFLEdBQUcsRUFBRTtJQUM1RSxJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxPQUF5QixDQUFDO0lBRTlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RSx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0Qyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQyxJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFDSCxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRkFBbUYsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRyxNQUFNLFVBQVUsR0FBRyxJQUFJLHFDQUEyQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDM0UsTUFBTSxjQUFjLEdBQUcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFFakQsTUFBTSxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFekQseUVBQXlFO1FBQ3pFLG9EQUFvRDtRQUNwRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RCxvRUFBb0U7UUFDcEUscUVBQXFFO1FBQ3JFLDZCQUE2QjtRQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN4Qyw4Q0FBOEMsQ0FDL0MsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDeEMsOENBQThDLENBQy9DLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuamVzdC5tb2NrKFwiLi4vcHJvdmlkZXItc2NoZW1hXCIsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbChcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiKSxcbiAgcmVhZFByb3ZpZGVyU2NoZW1hOiBqZXN0LmZuKCksXG4gIGdldEZldGNoaW5nQ2xpVmVyc2lvbjogamVzdC5mbigpLFxufSkpO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgbG9nZ2VyLFxuICBQcm92aWRlclNjaGVtYSxcbiAgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50LFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IHJlYWRTY2hlbWEgfSBmcm9tIFwiLi4vcmVhZFwiO1xuaW1wb3J0IHsgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uLCByZWFkUHJvdmlkZXJTY2hlbWEgfSBmcm9tIFwiLi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmNvbnN0IHJlYWRQcm92aWRlclNjaGVtYU1vY2sgPSByZWFkUHJvdmlkZXJTY2hlbWEgYXMgdW5rbm93biBhcyBqZXN0Lk1vY2s7XG5jb25zdCBnZXRGZXRjaGluZ0NsaVZlcnNpb25Nb2NrID0gZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuXG5jb25zdCBzdGFtcGVkRml4dHVyZTogUHJvdmlkZXJTY2hlbWEgPSB7XG4gIGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiLFxuICBjbGlfbmFtZTogXCJ0ZXJyYWZvcm1cIixcbiAgY2xpX3ZlcnNpb246IFwiMS43LjVcIixcbn07XG5cbmRlc2NyaWJlKFwicmVhZFNjaGVtYSAtIGVtaXNzaW9uIGdhcCB3YXJuaW5nIG9uIGNhY2hlIGhpdHMgKHJlZ3Jlc3Npb24pXCIsICgpID0+IHtcbiAgbGV0IGNhY2hlRGlyOiBzdHJpbmc7XG4gIGxldCB3YXJuU3B5OiBqZXN0LlNweUluc3RhbmNlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNhY2hlRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInByb3ZpZGVyLXNjaGVtYS1jYWNoZS1cIikpO1xuICAgIHdhcm5TcHkgPSBqZXN0LnNweU9uKGxvZ2dlciwgXCJ3YXJuXCIpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB1bmRlZmluZWQpO1xuICAgIGdldEZldGNoaW5nQ2xpVmVyc2lvbk1vY2subW9ja1Jlc2V0KCk7XG4gICAgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSh7XG4gICAgICBuYW1lOiBcInRlcnJhZm9ybVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjcuNVwiLFxuICAgIH0pO1xuICAgIHJlYWRQcm92aWRlclNjaGVtYU1vY2subW9ja1Jlc2V0KCk7XG4gICAgcmVhZFByb3ZpZGVyU2NoZW1hTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZShzdGFtcGVkRml4dHVyZSk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgd2FyblNweS5tb2NrUmVzdG9yZSgpO1xuICAgIGZzLnJlbW92ZVN5bmMoY2FjaGVEaXIpO1xuICB9KTtcblxuICBpdChcImZpcmVzIHRoZSB3YXJuaW5nIG9uIGJvdGggYSBmcmVzaCBmZXRjaCBhbmQgYSBsYXRlciBjYWNoZSBoaXQgZm9yIHRoZSBzYW1lIHRhcmdldFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29uc3RyYWludCA9IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQoXCJoYXNoaWNvcnAvbnVsbEAzLjEuMFwiKTtcbiAgICBjb25zdCB0YXJnZXRWZXJzaW9ucyA9IHsgdGVycmFmb3JtOiBcIj49MS4xMi4wXCIgfTtcblxuICAgIGF3YWl0IHJlYWRTY2hlbWEoW2NvbnN0cmFpbnRdLCBjYWNoZURpciwgdGFyZ2V0VmVyc2lvbnMpO1xuICAgIGF3YWl0IHJlYWRTY2hlbWEoW2NvbnN0cmFpbnRdLCBjYWNoZURpciwgdGFyZ2V0VmVyc2lvbnMpO1xuXG4gICAgLy8gc2Vjb25kIHJlYWRTY2hlbWEgY2FsbCBpcyBzZXJ2ZWQgZnJvbSB0aGUgb24tZGlzayBjYWNoZSB3cml0dGVuIGJ5IHRoZVxuICAgIC8vIGZpcnN0IC0gdGhlIHVuZGVybHlpbmcgZmV0Y2ggb25seSBldmVyIHJ1bnMgb25jZS5cbiAgICBleHBlY3QocmVhZFByb3ZpZGVyU2NoZW1hTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXG4gICAgLy8geWV0IHRoZSBlbWlzc2lvbi1nYXAgd2FybmluZyBmaXJlcyBmb3IgYm90aCBjYWxscywgYmVjYXVzZSBpdCBub3dcbiAgICAvLyBydW5zIGFnYWluc3QgdGhlIHJlc29sdmVkIChjYWNoZWQtb3ItZnJlc2gpIHNjaGVtYSBpbiByZWFkLnRzLCBub3RcbiAgICAvLyBpbnNpZGUgcmVhZFByb3ZpZGVyU2NoZW1hLlxuICAgIGV4cGVjdCh3YXJuU3B5KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMik7XG4gICAgZXhwZWN0KHdhcm5TcHkubW9jay5jYWxsc1swXVswXSkudG9Db250YWluKFxuICAgICAgXCJwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoIHRlcnJhZm9ybSAxLjcuNVwiLFxuICAgICk7XG4gICAgZXhwZWN0KHdhcm5TcHkubW9jay5jYWxsc1sxXVswXSkudG9Db250YWluKFxuICAgICAgXCJwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoIHRlcnJhZm9ybSAxLjcuNVwiLFxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=warn-schema-emission-gaps.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warn-schema-emission-gaps.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/warn-schema-emission-gaps.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
3
+ // SPDX-License-Identifier: MPL-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ jest.mock("@cdktn/commons", () => ({
6
+ ...jest.requireActual("@cdktn/commons"),
7
+ exec: jest.fn(),
8
+ }));
9
+ const commons_1 = require("@cdktn/commons");
10
+ const provider_schema_1 = require("../provider-schema");
11
+ const execMock = commons_1.exec;
12
+ function stampedSchema(cli_name, cli_version) {
13
+ const schema = { format_version: "0.1" };
14
+ if (cli_name)
15
+ schema.cli_name = cli_name;
16
+ if (cli_version)
17
+ schema.cli_version = cli_version;
18
+ return schema;
19
+ }
20
+ describe("warnIfSchemaEmissionGaps", () => {
21
+ let warnSpy;
22
+ beforeEach(() => {
23
+ warnSpy = jest.spyOn(commons_1.logger, "warn").mockImplementation(() => undefined);
24
+ });
25
+ afterEach(() => {
26
+ warnSpy.mockRestore();
27
+ });
28
+ it("warns once when the schema was stamped with an old CLI and default targets are declared", async () => {
29
+ const schema = stampedSchema("terraform", "1.7.5");
30
+ await (0, provider_schema_1.warnIfSchemaEmissionGaps)(schema, commons_1.DEFAULT_TARGET_VERSIONS);
31
+ expect(warnSpy).toHaveBeenCalledTimes(1);
32
+ const message = warnSpy.mock.calls[0][0];
33
+ expect(message).toContain("provider schema fetched with terraform 1.7.5");
34
+ expect(message).toContain("terraform >=1.12.0 / opentofu >=1.12.0");
35
+ });
36
+ it("stays silent when the schema was stamped with a recent CLI", async () => {
37
+ const schema = stampedSchema("terraform", "1.15.6");
38
+ await (0, provider_schema_1.warnIfSchemaEmissionGaps)(schema, commons_1.DEFAULT_TARGET_VERSIONS);
39
+ expect(warnSpy).not.toHaveBeenCalled();
40
+ });
41
+ it("stays silent without declared targetVersions, even for an old stamped CLI", async () => {
42
+ const schema = stampedSchema("terraform", "1.7.5");
43
+ await (0, provider_schema_1.warnIfSchemaEmissionGaps)(schema, undefined);
44
+ expect(warnSpy).not.toHaveBeenCalled();
45
+ });
46
+ it("falls back to the current process's fetching CLI version when the schema carries no stamps", async () => {
47
+ execMock.mockReset();
48
+ execMock.mockResolvedValue("Terraform v1.7.5\non linux_amd64\n");
49
+ const schema = stampedSchema();
50
+ await (0, provider_schema_1.warnIfSchemaEmissionGaps)(schema, commons_1.DEFAULT_TARGET_VERSIONS);
51
+ expect(warnSpy).toHaveBeenCalledTimes(1);
52
+ expect(warnSpy.mock.calls[0][0]).toContain("provider schema fetched with terraform 1.7.5");
53
+ });
54
+ });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fybi1zY2hlbWEtZW1pc3Npb24tZ2Fwcy51bml0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3dhcm4tc2NoZW1hLWVtaXNzaW9uLWdhcHMudW5pdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOztBQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUosNENBS3dCO0FBQ3hCLHdEQUE4RDtBQUU5RCxNQUFNLFFBQVEsR0FBRyxjQUE0QixDQUFDO0FBRTlDLFNBQVMsYUFBYSxDQUNwQixRQUFpQixFQUNqQixXQUFvQjtJQUVwQixNQUFNLE1BQU0sR0FBbUIsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDekQsSUFBSSxRQUFRO1FBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekMsSUFBSSxXQUFXO1FBQUUsTUFBTSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbEQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7SUFDeEMsSUFBSSxPQUF5QixDQUFDO0lBRTlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5RkFBeUYsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2RyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxNQUFNLEVBQUUsaUNBQXVCLENBQUMsQ0FBQztRQUVoRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0REFBNEQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMxRSxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxNQUFNLEVBQUUsaUNBQXVCLENBQUMsQ0FBQztRQUVoRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkVBQTJFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekYsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRCxNQUFNLElBQUEsMENBQXdCLEVBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0RkFBNEYsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMxRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFakUsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFFL0IsTUFBTSxJQUFBLDBDQUF3QixFQUFDLE1BQU0sRUFBRSxpQ0FBdUIsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3hDLDhDQUE4QyxDQUMvQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmplc3QubW9jayhcIkBjZGt0bi9jb21tb25zXCIsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbChcIkBjZGt0bi9jb21tb25zXCIpLFxuICBleGVjOiBqZXN0LmZuKCksXG59KSk7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TLFxuICBleGVjLFxuICBsb2dnZXIsXG4gIFByb3ZpZGVyU2NoZW1hLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IHdhcm5JZlNjaGVtYUVtaXNzaW9uR2FwcyB9IGZyb20gXCIuLi9wcm92aWRlci1zY2hlbWFcIjtcblxuY29uc3QgZXhlY01vY2sgPSBleGVjIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuXG5mdW5jdGlvbiBzdGFtcGVkU2NoZW1hKFxuICBjbGlfbmFtZT86IHN0cmluZyxcbiAgY2xpX3ZlcnNpb24/OiBzdHJpbmcsXG4pOiBQcm92aWRlclNjaGVtYSB7XG4gIGNvbnN0IHNjaGVtYTogUHJvdmlkZXJTY2hlbWEgPSB7IGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiIH07XG4gIGlmIChjbGlfbmFtZSkgc2NoZW1hLmNsaV9uYW1lID0gY2xpX25hbWU7XG4gIGlmIChjbGlfdmVyc2lvbikgc2NoZW1hLmNsaV92ZXJzaW9uID0gY2xpX3ZlcnNpb247XG4gIHJldHVybiBzY2hlbWE7XG59XG5cbmRlc2NyaWJlKFwid2FybklmU2NoZW1hRW1pc3Npb25HYXBzXCIsICgpID0+IHtcbiAgbGV0IHdhcm5TcHk6IGplc3QuU3B5SW5zdGFuY2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd2FyblNweSA9IGplc3Quc3B5T24obG9nZ2VyLCBcIndhcm5cIikubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgd2FyblNweS5tb2NrUmVzdG9yZSgpO1xuICB9KTtcblxuICBpdChcIndhcm5zIG9uY2Ugd2hlbiB0aGUgc2NoZW1hIHdhcyBzdGFtcGVkIHdpdGggYW4gb2xkIENMSSBhbmQgZGVmYXVsdCB0YXJnZXRzIGFyZSBkZWNsYXJlZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gc3RhbXBlZFNjaGVtYShcInRlcnJhZm9ybVwiLCBcIjEuNy41XCIpO1xuXG4gICAgYXdhaXQgd2FybklmU2NoZW1hRW1pc3Npb25HYXBzKHNjaGVtYSwgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMpO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBjb25zdCBtZXNzYWdlID0gd2FyblNweS5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIGV4cGVjdChtZXNzYWdlKS50b0NvbnRhaW4oXCJwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoIHRlcnJhZm9ybSAxLjcuNVwiKTtcbiAgICBleHBlY3QobWVzc2FnZSkudG9Db250YWluKFwidGVycmFmb3JtID49MS4xMi4wIC8gb3BlbnRvZnUgPj0xLjEyLjBcIik7XG4gIH0pO1xuXG4gIGl0KFwic3RheXMgc2lsZW50IHdoZW4gdGhlIHNjaGVtYSB3YXMgc3RhbXBlZCB3aXRoIGEgcmVjZW50IENMSVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gc3RhbXBlZFNjaGVtYShcInRlcnJhZm9ybVwiLCBcIjEuMTUuNlwiKTtcblxuICAgIGF3YWl0IHdhcm5JZlNjaGVtYUVtaXNzaW9uR2FwcyhzY2hlbWEsIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdChcInN0YXlzIHNpbGVudCB3aXRob3V0IGRlY2xhcmVkIHRhcmdldFZlcnNpb25zLCBldmVuIGZvciBhbiBvbGQgc3RhbXBlZCBDTElcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHN0YW1wZWRTY2hlbWEoXCJ0ZXJyYWZvcm1cIiwgXCIxLjcuNVwiKTtcblxuICAgIGF3YWl0IHdhcm5JZlNjaGVtYUVtaXNzaW9uR2FwcyhzY2hlbWEsIHVuZGVmaW5lZCk7XG5cbiAgICBleHBlY3Qod2FyblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoXCJmYWxscyBiYWNrIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MncyBmZXRjaGluZyBDTEkgdmVyc2lvbiB3aGVuIHRoZSBzY2hlbWEgY2FycmllcyBubyBzdGFtcHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNldCgpO1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKFwiVGVycmFmb3JtIHYxLjcuNVxcbm9uIGxpbnV4X2FtZDY0XFxuXCIpO1xuXG4gICAgY29uc3Qgc2NoZW1hID0gc3RhbXBlZFNjaGVtYSgpO1xuXG4gICAgYXdhaXQgd2FybklmU2NoZW1hRW1pc3Npb25HYXBzKHNjaGVtYSwgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMpO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3Qod2FyblNweS5tb2NrLmNhbGxzWzBdWzBdKS50b0NvbnRhaW4oXG4gICAgICBcInByb3ZpZGVyIHNjaGVtYSBmZXRjaGVkIHdpdGggdGVycmFmb3JtIDEuNy41XCIsXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
package/build/cache.d.ts CHANGED
@@ -3,5 +3,5 @@
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
5
  import { ConstructsMakerTarget } from "@cdktn/commons";
6
- export declare function cachedAccess<I extends ConstructsMakerTarget, O>(producer: (input: I) => Promise<O>, cacheDir?: string | null): (input: I) => Promise<O>;
6
+ export declare function cachedAccess<I extends ConstructsMakerTarget, O>(producer: (input: I) => Promise<O>, cacheDir?: string | null, keySuffix?: string): (input: I) => Promise<O>;
7
7
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAkB,MAAM,gBAAgB,CAAC;AAYvE,wBAAgB,YAAY,CAAC,CAAC,SAAS,qBAAqB,EAAE,CAAC,EAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CA+B1B"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAkB,MAAM,gBAAgB,CAAC;AAkBvE,wBAAgB,YAAY,CAAC,CAAC,SAAS,qBAAqB,EAAE,CAAC,EAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CA+B1B"}