@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.
- package/build/__tests__/cache.test.d.ts +2 -0
- package/build/__tests__/cache.test.d.ts.map +1 -0
- package/build/__tests__/cache.test.js +77 -0
- package/build/__tests__/emission-check.test.d.ts +2 -0
- package/build/__tests__/emission-check.test.d.ts.map +1 -0
- package/build/__tests__/emission-check.test.js +96 -0
- package/build/__tests__/provider-schema.test.js +23 -1
- package/build/__tests__/provider-schema.unit.test.js +13 -1
- package/build/__tests__/read-emission-gap-warning.unit.test.d.ts +2 -0
- package/build/__tests__/read-emission-gap-warning.unit.test.d.ts.map +1 -0
- package/build/__tests__/read-emission-gap-warning.unit.test.js +80 -0
- package/build/__tests__/warn-schema-emission-gaps.unit.test.d.ts +2 -0
- package/build/__tests__/warn-schema-emission-gaps.unit.test.d.ts.map +1 -0
- package/build/__tests__/warn-schema-emission-gaps.unit.test.js +55 -0
- package/build/cache.d.ts +1 -1
- package/build/cache.d.ts.map +1 -1
- package/build/cache.js +11 -5
- package/build/emission-check.d.ts +28 -0
- package/build/emission-check.d.ts.map +1 -0
- package/build/emission-check.js +132 -0
- package/build/provider-schema.d.ts.map +1 -1
- package/build/provider-schema.js +85 -2
- package/build/read.d.ts +2 -2
- package/build/read.d.ts.map +1 -1
- package/build/read.js +31 -4
- package/package.json +5 -3
- package/src/__tests__/__snapshots__/provider-schema.test.ts.snap +24 -0
|
@@ -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 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pc3Npb24tY2hlY2sudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZW1pc3Npb24tY2hlY2sudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsNENBQThFO0FBQzlFLHNEQUcyQjtBQUUzQixNQUFNLEdBQUcsR0FBRyxDQUFDLElBQWlDLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLElBQUk7SUFDSixPQUFPO0NBQ1IsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxFQUFFLENBQUMsMEVBQTBFLEVBQUUsR0FBRyxFQUFFO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLElBQUEsd0NBQXVCLEVBQ2xDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQ3pCLGlDQUF1QixDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNyQixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixtQkFBbUI7U0FDcEIsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFBLHdDQUF1QixFQUNsQyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUMxQixpQ0FBdUIsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVB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R0FBRyxJQUFBLHdDQUF1QixFQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNyQixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLHVCQUF1QjtTQUN4QixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsRUFBRSxDQUFDLHNFQUFzRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLENBQ0osSUFBQSw2Q0FBNEIsRUFBQyxDQUFDLFdBQVcsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQzFFLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1FBQ3RFLE1BQU0sQ0FBQyxJQUFBLDZDQUE0QixFQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0RSx3Q0FBd0MsQ0FDekMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgeyBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUywgVGVycmFmb3JtQ2xpVmVyc2lvbiB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMsXG4gIHN1Z2dlc3RlZEVtaXR0aW5nQ2xpVmVyc2lvbnMsXG59IGZyb20gXCIuLi9lbWlzc2lvbi1jaGVja1wiO1xuXG5jb25zdCBjbGkgPSAobmFtZTogVGVycmFmb3JtQ2xpVmVyc2lvbltcIm5hbWVcIl0sIHZlcnNpb246IHN0cmluZykgPT4gKHtcbiAgbmFtZSxcbiAgdmVyc2lvbixcbn0pO1xuXG5kZXNjcmliZShcImNoZWNrU2NoZW1hRW1pc3Npb25HYXBzXCIsICgpID0+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
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
package/build/cache.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|