@cdktn/hcl2json 0.23.0-pre.38 → 0.23.0-pre.39
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/bridge.d.ts.map +1 -0
- package/build/bridge.js +176 -0
- package/build/deepmerge.d.ts.map +1 -0
- package/build/deepmerge.js +53 -0
- package/build/index.d.ts.map +1 -0
- package/{lib → build}/index.js +1 -1
- package/build/references.d.ts.map +1 -0
- package/build/references.js +77 -0
- package/build/syntax-tree.d.ts.map +1 -0
- package/build/syntax-tree.js +79 -0
- package/build/util.d.ts.map +1 -0
- package/build/util.js +75 -0
- package/main.wasm.gz +0 -0
- package/package.json +3 -3
- package/lib/bridge.d.ts.map +0 -1
- package/lib/bridge.js +0 -176
- package/lib/deepmerge.d.ts.map +0 -1
- package/lib/deepmerge.js +0 -53
- package/lib/index.d.ts.map +0 -1
- package/lib/references.d.ts.map +0 -1
- package/lib/references.js +0 -77
- package/lib/syntax-tree.d.ts.map +0 -1
- package/lib/syntax-tree.js +0 -79
- package/lib/util.d.ts.map +0 -1
- package/lib/util.js +0 -75
- /package/{lib → build}/bridge.d.ts +0 -0
- /package/{lib → build}/deepmerge.d.ts +0 -0
- /package/{lib → build}/index.d.ts +0 -0
- /package/{lib → build}/references.d.ts +0 -0
- /package/{lib → build}/syntax-tree.d.ts +0 -0
- /package/{lib → build}/util.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,SAAS,EAA0B,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA+E/C,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAG9B;AAED,wBAAsB,YAAY,CAChC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAyB9B;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAiCtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAShC"}
|
package/build/bridge.js
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
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
|
+
exports.getExpressionAst = exports.getReferencesInExpression = exports.convertFiles = exports.parse = void 0;
|
|
29
|
+
/// <reference lib="dom" />
|
|
30
|
+
// Inspired by
|
|
31
|
+
// https://github.com/ts-terraform/ts-terraform
|
|
32
|
+
// https://github.com/aaronpowell/webpack-golang-wasm-async-loader
|
|
33
|
+
const fs = __importStar(require("fs-extra"));
|
|
34
|
+
const path_1 = require("path");
|
|
35
|
+
const deepmerge_1 = require("./deepmerge");
|
|
36
|
+
const zlib_1 = require("zlib");
|
|
37
|
+
const references_1 = require("./references");
|
|
38
|
+
const util_1 = require("./util");
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
40
|
+
const jsRoot = {};
|
|
41
|
+
function sleep() {
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
|
+
setTimeout(resolve, 0);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function goBridge(getBytes) {
|
|
47
|
+
let ready = false;
|
|
48
|
+
async function init() {
|
|
49
|
+
// After: https://github.com/golang/go/commit/680caf15355057ca84857a2a291b6f5c44e73329
|
|
50
|
+
// Go 1.19+ has a different entrypoint
|
|
51
|
+
await Promise.resolve().then(() => __importStar(require(`../wasm/bridge_wasm_exec.js`)));
|
|
52
|
+
const go = new global.Go();
|
|
53
|
+
const bytes = await getBytes;
|
|
54
|
+
const result = await WebAssembly.instantiate(bytes, go.importObject);
|
|
55
|
+
global.__parse_terraform_config_wasm__ = jsRoot;
|
|
56
|
+
void go.run(result.instance);
|
|
57
|
+
ready = true;
|
|
58
|
+
}
|
|
59
|
+
init().catch((error) => {
|
|
60
|
+
throw error;
|
|
61
|
+
});
|
|
62
|
+
const proxy = new Proxy({}, {
|
|
63
|
+
get: (_, key) => {
|
|
64
|
+
return async (...args) => {
|
|
65
|
+
while (!ready) {
|
|
66
|
+
await sleep();
|
|
67
|
+
}
|
|
68
|
+
if (!(key in jsRoot)) {
|
|
69
|
+
throw new Error(`There is nothing defined with the name "${key.toString()}"`);
|
|
70
|
+
}
|
|
71
|
+
if (typeof jsRoot[key] !== "function") {
|
|
72
|
+
return jsRoot[key];
|
|
73
|
+
}
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
const cb = (err, ...msg) =>
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
err ? reject(new Error(err)) : resolve(...msg);
|
|
79
|
+
const run = () => {
|
|
80
|
+
jsRoot[key].apply(undefined, [...args, cb]);
|
|
81
|
+
};
|
|
82
|
+
run();
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
return proxy;
|
|
88
|
+
}
|
|
89
|
+
const loadWasm = async () => {
|
|
90
|
+
return (0, zlib_1.gunzipSync)(await fs.readFile((0, path_1.join)(__dirname, "..", "main.wasm.gz")));
|
|
91
|
+
};
|
|
92
|
+
const wasm = goBridge(loadWasm());
|
|
93
|
+
async function parse(filename, contents) {
|
|
94
|
+
const res = await wasm.parse(filename, contents);
|
|
95
|
+
return JSON.parse(res);
|
|
96
|
+
}
|
|
97
|
+
exports.parse = parse;
|
|
98
|
+
async function convertFiles(workingDirectory) {
|
|
99
|
+
let tfFileContents = "";
|
|
100
|
+
const tfJSONFileContents = [];
|
|
101
|
+
for (const file of fs.readdirSync(workingDirectory)) {
|
|
102
|
+
const filePath = (0, path_1.resolve)(workingDirectory, file);
|
|
103
|
+
if (!fs.lstatSync(filePath).isDirectory()) {
|
|
104
|
+
if (file.match(/\.tf$/)) {
|
|
105
|
+
tfFileContents += fs.readFileSync(filePath, "utf-8");
|
|
106
|
+
tfFileContents += "\n";
|
|
107
|
+
}
|
|
108
|
+
else if (file.match(/\.tf\.json$/)) {
|
|
109
|
+
tfJSONFileContents.push(JSON.parse(fs.readFileSync(filePath, "utf-8")));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (tfFileContents === "" && tfJSONFileContents.length === 0) {
|
|
114
|
+
console.error(`No '.tf' or '.tf.json' files found in ${workingDirectory}`);
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
return (0, deepmerge_1.deepMerge)(await parse("hcl2json.tf", tfFileContents), ...tfJSONFileContents);
|
|
118
|
+
}
|
|
119
|
+
exports.convertFiles = convertFiles;
|
|
120
|
+
/**
|
|
121
|
+
* Parse a Terraform expression and return the AST. This function expects a string input, and will wrap the expression in quotes if it is not already quoted.
|
|
122
|
+
* @param filename The filename to use for the expression. This is used for error reporting.
|
|
123
|
+
* @param expression The expression to parse.
|
|
124
|
+
* @returns An array of References found in the expression.
|
|
125
|
+
*/
|
|
126
|
+
async function getReferencesInExpression(filename, expression) {
|
|
127
|
+
// We have to do this twice because of the problem with HEREDOCS
|
|
128
|
+
// Our current hcl2json implementation removes HEREDOCS and replaces them
|
|
129
|
+
// with a multi-line string, which is causing all kinds of problems
|
|
130
|
+
let offset = 0;
|
|
131
|
+
let quoteWrappedExpression = expression;
|
|
132
|
+
if (!expression.startsWith('"')) {
|
|
133
|
+
quoteWrappedExpression = `"${expression}"`;
|
|
134
|
+
offset = 1;
|
|
135
|
+
}
|
|
136
|
+
const { wrap: wrappedExpression, wrapOffset: startOffset } = (0, util_1.wrapTerraformExpression)(`${quoteWrappedExpression}`);
|
|
137
|
+
offset += startOffset;
|
|
138
|
+
const ast = await getExpressionAst(filename, wrappedExpression);
|
|
139
|
+
if (!ast) {
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
const refs = (0, references_1.findAllReferencesInAst)(expression, ast);
|
|
143
|
+
if (wrappedExpression === expression) {
|
|
144
|
+
return refs;
|
|
145
|
+
}
|
|
146
|
+
return refs.map((ref) => {
|
|
147
|
+
return {
|
|
148
|
+
...ref,
|
|
149
|
+
startPosition: ref.startPosition - offset,
|
|
150
|
+
endPosition: ref.endPosition - offset,
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
exports.getReferencesInExpression = getReferencesInExpression;
|
|
155
|
+
/**
|
|
156
|
+
* Parse a Terraform expression and return the AST. The expression does not need to be a Terraform string.
|
|
157
|
+
* @param filename The filename to use for the expression. This is used for error reporting.
|
|
158
|
+
* @param expression The expression to parse.
|
|
159
|
+
* @returns The AST for the expression.
|
|
160
|
+
*
|
|
161
|
+
* The returned AST has the following structure:
|
|
162
|
+
* - type: The type of the node. This is a string.
|
|
163
|
+
* - range: This contains the start and end of the node in the expression.
|
|
164
|
+
* - children: This contains the children of the node. This is an array of nodes.
|
|
165
|
+
* - meta: This contains metadata about the node. This is an object, and varies depending on the type of the node.
|
|
166
|
+
*/
|
|
167
|
+
async function getExpressionAst(filename, expression) {
|
|
168
|
+
const res = await wasm.getExpressionAst(filename, expression);
|
|
169
|
+
const ast = JSON.parse(res);
|
|
170
|
+
if (!ast) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
return ast;
|
|
174
|
+
}
|
|
175
|
+
exports.getExpressionAst = getExpressionAst;
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsMkJBQTJCO0FBRTNCLGNBQWM7QUFDZCwrQ0FBK0M7QUFDL0Msa0VBQWtFO0FBRWxFLDZDQUErQjtBQUMvQiwrQkFBcUM7QUFDckMsMkNBQXdDO0FBQ3hDLCtCQUFrQztBQUNsQyw2Q0FBaUU7QUFFakUsaUNBQWlEO0FBUWpELHNFQUFzRTtBQUN0RSxNQUFNLE1BQU0sR0FBNkIsRUFBRSxDQUFDO0FBRTVDLFNBQVMsS0FBSztJQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLFFBQXlCO0lBQ3pDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVsQixLQUFLLFVBQVUsSUFBSTtRQUNqQixzRkFBc0Y7UUFDdEYsc0NBQXNDO1FBQ3RDLHdEQUFhLDZCQUE2QixHQUFDLENBQUM7UUFDNUMsTUFBTSxFQUFFLEdBQUcsSUFBSyxNQUFjLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsTUFBYyxDQUFDLCtCQUErQixHQUFHLE1BQU0sQ0FBQztRQUN6RCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxF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QUFzQixFQUFFLENBQUMsQ0FBQztJQUV2RCxNQUFNLElBQUksV0FBVyxDQUFDO0lBRXRCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBc0IsRUFBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsSUFBSSxpQkFBaUIsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLEdBQUcsTUFBTTtZQUN6QyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxNQUFNO1NBQ3RDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFwQ0QsOERBb0NDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFFBQWdCLEVBQ2hCLFVBQWtCO0lBRWxCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBbUIsQ0FBQztJQUU5QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFaRCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbi8vLyA8cmVmZXJlbmNlIGxpYj1cImRvbVwiIC8+XG5cbi8vIEluc3BpcmVkIGJ5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHMtdGVycmFmb3JtL3RzLXRlcnJhZm9ybVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Fhcm9ucG93ZWxsL3dlYnBhY2stZ29sYW5nLXdhc20tYXN5bmMtbG9hZGVyXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tIFwiLi9kZWVwbWVyZ2VcIjtcbmltcG9ydCB7IGd1bnppcFN5bmMgfSBmcm9tIFwiemxpYlwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlLCBmaW5kQWxsUmVmZXJlbmNlc0luQXN0IH0gZnJvbSBcIi4vcmVmZXJlbmNlc1wiO1xuaW1wb3J0IHsgRXhwcmVzc2lvblR5cGUgfSBmcm9tIFwiLi9zeW50YXgtdHJlZVwiO1xuaW1wb3J0IHsgd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24gfSBmcm9tIFwiLi91dGlsXCI7XG5cbmludGVyZmFjZSBHb0JyaWRnZSB7XG4gIHBhcnNlOiAoZmlsZW5hbWU6IHN0cmluZywgaGNsOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgcGFyc2VFeHByZXNzaW9uOiAoZmlsZW5hbWU6IHN0cmluZywgaGNsOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgZ2V0RXhwcmVzc2lvbkFzdDogKGZpbGVuYW1lOiBzdHJpbmcsIGhjbDogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWZ1bmN0aW9uLXR5cGVcbmNvbnN0IGpzUm9vdDogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+ID0ge307XG5cbmZ1bmN0aW9uIHNsZWVwKCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ29CcmlkZ2UoZ2V0Qnl0ZXM6IFByb21pc2U8QnVmZmVyPikge1xuICBsZXQgcmVhZHkgPSBmYWxzZTtcblxuICBhc3luYyBmdW5jdGlvbiBpbml0KCkge1xuICAgIC8vIEFmdGVyOiBodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL2dvL2NvbW1pdC82ODBjYWYxNTM1NTA1N2NhODQ4NTdhMmEyOTFiNmY1YzQ0ZTczMzI5XG4gICAgLy8gR28gMS4xOSsgaGFzIGEgZGlmZmVyZW50IGVudHJ5cG9pbnRcbiAgICBhd2FpdCBpbXBvcnQoYC4uL3dhc20vYnJpZGdlX3dhc21fZXhlYy5qc2ApO1xuICAgIGNvbnN0IGdvID0gbmV3IChnbG9iYWwgYXMgYW55KS5HbygpO1xuICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgZ2V0Qnl0ZXM7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnl0ZXMsIGdvLmltcG9ydE9iamVjdCk7XG4gICAgKGdsb2JhbCBhcyBhbnkpLl9fcGFyc2VfdGVycmFmb3JtX2NvbmZpZ193YXNtX18gPSBqc1Jvb3Q7XG4gICAgdm9pZCBnby5ydW4ocmVzdWx0Lmluc3RhbmNlKTtcbiAgICByZWFkeSA9IHRydWU7XG4gIH1cblxuICBpbml0KCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xuXG4gIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9IGFzIEdvQnJpZGdlLCB7XG4gICAgZ2V0OiAoXywga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBhc3luYyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIHdoaWxlICghcmVhZHkpIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEoa2V5IGluIGpzUm9vdCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlcmUgaXMgbm90aGluZyBkZWZpbmVkIHdpdGggdGhlIG5hbWUgXCIke2tleS50b1N0cmluZygpfVwiYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBqc1Jvb3Rba2V5XSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGpzUm9vdFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCBjYiA9IChlcnI6IHN0cmluZywgLi4ubXNnOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVyciA/IHJlamVjdChuZXcgRXJyb3IoZXJyKSkgOiByZXNvbHZlKC4uLm1zZyk7XG5cbiAgICAgICAgICBjb25zdCBydW4gPSAoKSA9PiB7XG4gICAgICAgICAgICBqc1Jvb3Rba2V5XS5hcHBseSh1bmRlZmluZWQsIFsuLi5hcmdzLCBjYl0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBydW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBwcm94eTtcbn1cblxuY29uc3QgbG9hZFdhc20gPSBhc3luYyAoKSA9PiB7XG4gIHJldHVybiBndW56aXBTeW5jKGF3YWl0IGZzLnJlYWRGaWxlKGpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwibWFpbi53YXNtLmd6XCIpKSk7XG59O1xuXG5jb25zdCB3YXNtID0gZ29CcmlkZ2UobG9hZFdhc20oKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZShcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgY29udGVudHM6IHN0cmluZyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBjb25zdCByZXMgPSBhd2FpdCB3YXNtLnBhcnNlKGZpbGVuYW1lLCBjb250ZW50cyk7XG4gIHJldHVybiBKU09OLnBhcnNlKHJlcyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0RmlsZXMoXG4gIHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBsZXQgdGZGaWxlQ29udGVudHMgPSBcIlwiO1xuICBjb25zdCB0ZkpTT05GaWxlQ29udGVudHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmcy5yZWFkZGlyU3luYyh3b3JraW5nRGlyZWN0b3J5KSkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCBmaWxlKTtcbiAgICBpZiAoIWZzLmxzdGF0U3luYyhmaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgaWYgKGZpbGUubWF0Y2goL1xcLnRmJC8pKSB7XG4gICAgICAgIHRmRmlsZUNvbnRlbnRzICs9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgdGZGaWxlQ29udGVudHMgKz0gXCJcXG5cIjtcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS5tYXRjaCgvXFwudGZcXC5qc29uJC8pKSB7XG4gICAgICAgIHRmSlNPTkZpbGVDb250ZW50cy5wdXNoKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRmRmlsZUNvbnRlbnRzID09PSBcIlwiICYmIHRmSlNPTkZpbGVDb250ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICBjb25zb2xlLmVycm9yKGBObyAnLnRmJyBvciAnLnRmLmpzb24nIGZpbGVzIGZvdW5kIGluICR7d29ya2luZ0RpcmVjdG9yeX1gKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gZGVlcE1lcmdlKFxuICAgIGF3YWl0IHBhcnNlKFwiaGNsMmpzb24udGZcIiwgdGZGaWxlQ29udGVudHMpLFxuICAgIC4uLnRmSlNPTkZpbGVDb250ZW50cyxcbiAgKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIFRlcnJhZm9ybSBleHByZXNzaW9uIGFuZCByZXR1cm4gdGhlIEFTVC4gVGhpcyBmdW5jdGlvbiBleHBlY3RzIGEgc3RyaW5nIGlucHV0LCBhbmQgd2lsbCB3cmFwIHRoZSBleHByZXNzaW9uIGluIHF1b3RlcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBxdW90ZWQuXG4gKiBAcGFyYW0gZmlsZW5hbWUgVGhlIGZpbGVuYW1lIHRvIHVzZSBmb3IgdGhlIGV4cHJlc3Npb24uIFRoaXMgaXMgdXNlZCBmb3IgZXJyb3IgcmVwb3J0aW5nLlxuICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBSZWZlcmVuY2VzIGZvdW5kIGluIHRoZSBleHByZXNzaW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlc0luRXhwcmVzc2lvbihcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuKTogUHJvbWlzZTxSZWZlcmVuY2VbXT4ge1xuICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgYmVjYXVzZSBvZiB0aGUgcHJvYmxlbSB3aXRoIEhFUkVET0NTXG4gIC8vIE91ciBjdXJyZW50IGhjbDJqc29uIGltcGxlbWVudGF0aW9uIHJlbW92ZXMgSEVSRURPQ1MgYW5kIHJlcGxhY2VzIHRoZW1cbiAgLy8gd2l0aCBhIG11bHRpLWxpbmUgc3RyaW5nLCB3aGljaCBpcyBjYXVzaW5nIGFsbCBraW5kcyBvZiBwcm9ibGVtc1xuICBsZXQgb2Zmc2V0ID0gMDtcbiAgbGV0IHF1b3RlV3JhcHBlZEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICBpZiAoIWV4cHJlc3Npb24uc3RhcnRzV2l0aCgnXCInKSkge1xuICAgIHF1b3RlV3JhcHBlZEV4cHJlc3Npb24gPSBgXCIke2V4cHJlc3Npb259XCJgO1xuICAgIG9mZnNldCA9IDE7XG4gIH1cblxuICBjb25zdCB7IHdyYXA6IHdyYXBwZWRFeHByZXNzaW9uLCB3cmFwT2Zmc2V0OiBzdGFydE9mZnNldCB9ID1cbiAgICB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihgJHtxdW90ZVdyYXBwZWRFeHByZXNzaW9ufWApO1xuXG4gIG9mZnNldCArPSBzdGFydE9mZnNldDtcblxuICBjb25zdCBhc3QgPSBhd2FpdCBnZXRFeHByZXNzaW9uQXN0KGZpbGVuYW1lLCB3cmFwcGVkRXhwcmVzc2lvbik7XG4gIGlmICghYXN0KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmVmcyA9IGZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoZXhwcmVzc2lvbiwgYXN0KTtcbiAgaWYgKHdyYXBwZWRFeHByZXNzaW9uID09PSBleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIHJlZnM7XG4gIH1cblxuICByZXR1cm4gcmVmcy5tYXAoKHJlZikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZWYsXG4gICAgICBzdGFydFBvc2l0aW9uOiByZWYuc3RhcnRQb3NpdGlvbiAtIG9mZnNldCxcbiAgICAgIGVuZFBvc2l0aW9uOiByZWYuZW5kUG9zaXRpb24gLSBvZmZzZXQsXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBUZXJyYWZvcm0gZXhwcmVzc2lvbiBhbmQgcmV0dXJuIHRoZSBBU1QuIFRoZSBleHByZXNzaW9uIGRvZXMgbm90IG5lZWQgdG8gYmUgYSBUZXJyYWZvcm0gc3RyaW5nLlxuICogQHBhcmFtIGZpbGVuYW1lIFRoZSBmaWxlbmFtZSB0byB1c2UgZm9yIHRoZSBleHByZXNzaW9uLiBUaGlzIGlzIHVzZWQgZm9yIGVycm9yIHJlcG9ydGluZy5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIEFTVCBmb3IgdGhlIGV4cHJlc3Npb24uXG4gKlxuICogICBUaGUgcmV0dXJuZWQgQVNUIGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAqICAgLSB0eXBlOiBUaGUgdHlwZSBvZiB0aGUgbm9kZS4gVGhpcyBpcyBhIHN0cmluZy5cbiAqICAgLSByYW5nZTogVGhpcyBjb250YWlucyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgbm9kZSBpbiB0aGUgZXhwcmVzc2lvbi5cbiAqICAgLSBjaGlsZHJlbjogVGhpcyBjb250YWlucyB0aGUgY2hpbGRyZW4gb2YgdGhlIG5vZGUuIFRoaXMgaXMgYW4gYXJyYXkgb2Ygbm9kZXMuXG4gKiAgIC0gbWV0YTogVGhpcyBjb250YWlucyBtZXRhZGF0YSBhYm91dCB0aGUgbm9kZS4gVGhpcyBpcyBhbiBvYmplY3QsIGFuZCB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSBub2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RXhwcmVzc2lvbkFzdChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuKTogUHJvbWlzZTxFeHByZXNzaW9uVHlwZSB8IG51bGw+IHtcbiAgY29uc3QgcmVzID0gYXdhaXQgd2FzbS5nZXRFeHByZXNzaW9uQXN0KGZpbGVuYW1lLCBleHByZXNzaW9uKTtcbiAgY29uc3QgYXN0ID0gSlNPTi5wYXJzZShyZXMpIGFzIEV4cHJlc3Npb25UeXBlO1xuXG4gIGlmICghYXN0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gYXN0O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepmerge.d.ts","sourceRoot":"","sources":["../src/deepmerge.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OA+CvD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deepMerge = void 0;
|
|
4
|
+
// Copyright (c) HashiCorp, Inc
|
|
5
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
6
|
+
/**
|
|
7
|
+
* Merges `source` into `target`, overriding any existing values.
|
|
8
|
+
* `undefined` will cause a value to be deleted.
|
|
9
|
+
*/
|
|
10
|
+
function deepMerge(target, ...sources) {
|
|
11
|
+
for (const source of sources) {
|
|
12
|
+
if (typeof source !== "object" || typeof target !== "object") {
|
|
13
|
+
throw new Error(`Invalid usage. Both source (${JSON.stringify(source)}) and target (${JSON.stringify(target)}) must be objects`);
|
|
14
|
+
}
|
|
15
|
+
for (const key of Object.keys(source)) {
|
|
16
|
+
const value = source[key];
|
|
17
|
+
if (typeof value === "object" && value != null && !Array.isArray(value)) {
|
|
18
|
+
// if the value at the target is not an object, override it with an
|
|
19
|
+
// object so we can continue the recursion
|
|
20
|
+
if (typeof target[key] !== "object") {
|
|
21
|
+
target[key] = {};
|
|
22
|
+
}
|
|
23
|
+
deepMerge(target[key], value);
|
|
24
|
+
// if the result of the merge is an empty object, it's because the
|
|
25
|
+
// eventual value we assigned is `undefined`, and there are no
|
|
26
|
+
// sibling concrete values alongside, so we can delete this tree.
|
|
27
|
+
const output = target[key];
|
|
28
|
+
if (typeof output === "object" && Object.keys(output).length === 0) {
|
|
29
|
+
delete target[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else if (typeof value === "object" &&
|
|
33
|
+
value != null &&
|
|
34
|
+
Array.isArray(value)) {
|
|
35
|
+
if (Array.isArray(target[key])) {
|
|
36
|
+
target[key] = [...target[key], ...value];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
target[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (value === undefined) {
|
|
43
|
+
delete target[key];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
target[key] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return target;
|
|
51
|
+
}
|
|
52
|
+
exports.deepMerge = deepMerge;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcG1lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlZXBtZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxNQUFXLEVBQUUsR0FBRyxPQUFjO0lBQ3RELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsSUFBSSxDQUFDLFNBQVMsQ0FDM0MsTUFBTSxDQUNQLGlCQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEUsbUVBQW1FO2dCQUNuRSwwQ0FBMEM7Z0JBQzFDLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLENBQUM7Z0JBRUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFOUIsa0VBQWtFO2dCQUNsRSw4REFBOEQ7Z0JBQzlELGlFQUFpRTtnQkFDakUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbkUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDekIsS0FBSyxJQUFJLElBQUk7Z0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDcEIsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBL0NELDhCQStDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4vKipcbiAqIE1lcmdlcyBgc291cmNlYCBpbnRvIGB0YXJnZXRgLCBvdmVycmlkaW5nIGFueSBleGlzdGluZyB2YWx1ZXMuXG4gKiBgdW5kZWZpbmVkYCB3aWxsIGNhdXNlIGEgdmFsdWUgdG8gYmUgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQ6IGFueSwgLi4uc291cmNlczogYW55W10pIHtcbiAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSBcIm9iamVjdFwiIHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgdXNhZ2UuIEJvdGggc291cmNlICgke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgKX0pIGFuZCB0YXJnZXQgKCR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX0pIG11c3QgYmUgb2JqZWN0c2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBhdCB0aGUgdGFyZ2V0IGlzIG5vdCBhbiBvYmplY3QsIG92ZXJyaWRlIGl0IHdpdGggYW5cbiAgICAgICAgLy8gb2JqZWN0IHNvIHdlIGNhbiBjb250aW51ZSB0aGUgcmVjdXJzaW9uXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0W2tleV0gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgZGVlcE1lcmdlKHRhcmdldFtrZXldLCB2YWx1ZSk7XG5cbiAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBvZiB0aGUgbWVyZ2UgaXMgYW4gZW1wdHkgb2JqZWN0LCBpdCdzIGJlY2F1c2UgdGhlXG4gICAgICAgIC8vIGV2ZW50dWFsIHZhbHVlIHdlIGFzc2lnbmVkIGlzIGB1bmRlZmluZWRgLCBhbmQgdGhlcmUgYXJlIG5vXG4gICAgICAgIC8vIHNpYmxpbmcgY29uY3JldGUgdmFsdWVzIGFsb25nc2lkZSwgc28gd2UgY2FuIGRlbGV0ZSB0aGlzIHRyZWUuXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHRhcmdldFtrZXldO1xuICAgICAgICBpZiAodHlwZW9mIG91dHB1dCA9PT0gXCJvYmplY3RcIiAmJiBPYmplY3Qua2V5cyhvdXRwdXQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGRlbGV0ZSB0YXJnZXRba2V5XTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IFsuLi50YXJnZXRba2V5XSwgLi4udmFsdWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,sBAAsB,MAAM,eAAe,CAAC"}
|
package/{lib → build}/index.js
RENAMED
|
@@ -34,4 +34,4 @@ Object.defineProperty(exports, "getExpressionAst", { enumerable: true, get: func
|
|
|
34
34
|
var util_1 = require("./util");
|
|
35
35
|
Object.defineProperty(exports, "wrapTerraformExpression", { enumerable: true, get: function () { return util_1.wrapTerraformExpression; } });
|
|
36
36
|
exports.TFExpressionSyntaxTree = __importStar(require("./syntax-tree"));
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLG1DQUtrQjtBQUpoQiwrRkFBQSxLQUFLLE9BQUE7QUFDTCxzR0FBQSxZQUFZLE9BQUE7QUFDWixtSEFBQSx5QkFBeUIsT0FBQTtBQUN6QiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUdsQiwrQkFBaUQ7QUFBeEMsK0dBQUEsdUJBQXVCLE9BQUE7QUFFaEMsd0VBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuZXhwb3J0IHtcbiAgcGFyc2UsXG4gIGNvbnZlcnRGaWxlcyxcbiAgZ2V0UmVmZXJlbmNlc0luRXhwcmVzc2lvbixcbiAgZ2V0RXhwcmVzc2lvbkFzdCxcbn0gZnJvbSBcIi4vYnJpZGdlXCI7XG5cbmV4cG9ydCB7IHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgKiBhcyBURkV4cHJlc3Npb25TeW50YXhUcmVlIGZyb20gXCIuL3N5bnRheC10cmVlXCI7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKd,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,aAAa,EAClC,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,SAAS,GAAG,IAAI,CA8ClB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,EACvC,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,SAAS,EAAE,CAwCb"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) HashiCorp, Inc
|
|
3
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.findAllReferencesInAst = exports.traversalToReference = void 0;
|
|
6
|
+
const syntax_tree_1 = require("./syntax-tree");
|
|
7
|
+
function traversalToReference(traversalExpression, localVariables) {
|
|
8
|
+
const meta = traversalExpression.meta;
|
|
9
|
+
// We do not want to include property access through brackets here
|
|
10
|
+
// although it is technically a traversal / reference
|
|
11
|
+
function onlyTakeTraversalPartsUntilFirstBracketPropertyAccess(traversals) {
|
|
12
|
+
const filtered = [];
|
|
13
|
+
const index = 0;
|
|
14
|
+
for (const traversal of traversals) {
|
|
15
|
+
if ("segment" in traversal) {
|
|
16
|
+
if (index === 0) {
|
|
17
|
+
// We are at the first traversal, check if it is a local variable
|
|
18
|
+
if (localVariables === null || localVariables === void 0 ? void 0 : localVariables.includes(traversal.segment)) {
|
|
19
|
+
// We reached a local variable, stop
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
filtered.push(traversal);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// We reached a bracket, stop
|
|
27
|
+
return filtered;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return filtered;
|
|
31
|
+
}
|
|
32
|
+
const filteredParts = onlyTakeTraversalPartsUntilFirstBracketPropertyAccess(meta.traversal);
|
|
33
|
+
if (filteredParts.length === 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const startPosition = filteredParts[0].range.start.byte;
|
|
37
|
+
const endPosition = filteredParts[filteredParts.length - 1].range.end.byte;
|
|
38
|
+
return {
|
|
39
|
+
value: filteredParts.map((part) => part.segment).join("."),
|
|
40
|
+
startPosition,
|
|
41
|
+
endPosition,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
exports.traversalToReference = traversalToReference;
|
|
45
|
+
function findAllReferencesInAst(input, entry, localVariables) {
|
|
46
|
+
if (!entry) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
switch (entry.type) {
|
|
50
|
+
case "scopeTraversal": {
|
|
51
|
+
// For traversals within a for expression,
|
|
52
|
+
// we want to ignore the local variables of the for expression
|
|
53
|
+
const reference = traversalToReference(entry, localVariables);
|
|
54
|
+
if (reference)
|
|
55
|
+
return [reference];
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
case "for": {
|
|
59
|
+
const meta = entry.meta;
|
|
60
|
+
const additionalLocalVariables = [
|
|
61
|
+
meta.keyVar,
|
|
62
|
+
meta.valVar,
|
|
63
|
+
...(localVariables || []),
|
|
64
|
+
];
|
|
65
|
+
return [
|
|
66
|
+
...findAllReferencesInAst(input, (0, syntax_tree_1.getChildWithValue)(entry, meta.collectionExpression), additionalLocalVariables),
|
|
67
|
+
...findAllReferencesInAst(input, (0, syntax_tree_1.getChildWithValue)(entry, meta.conditionalExpression), additionalLocalVariables),
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
default:
|
|
71
|
+
return entry.children
|
|
72
|
+
.map((child) => findAllReferencesInAst(input, child, localVariables))
|
|
73
|
+
.flat();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.findAllReferencesInAst = findAllReferencesInAst;
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7QUFFbkMsK0NBTXVCO0FBUXZCLFNBQWdCLG9CQUFvQixDQUNsQyxtQkFBa0MsRUFDbEMsY0FBeUI7SUFFekIsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsSUFBb0MsQ0FBQztJQUV0RSxrRUFBa0U7SUFDbEUscURBQXFEO0lBQ3JELFNBQVMscURBQXFELENBQzVELFVBQW9DO1FBRXBDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFaEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hCLGlFQUFpRTtvQkFDakUsSUFBSSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNoRCxvQ0FBb0M7d0JBQ3BDLE9BQU8sRUFBRSxDQUFDO29CQUNaLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7aUJBQU0sQ0FBQztnQkFDTiw2QkFBNkI7Z0JBQzdCLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLHFEQUFxRCxDQUN6RSxJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7SUFFRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3hELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBRTNFLE9BQU87UUFDTCxLQUFLLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDMUQsYUFBYTtRQUNiLFdBQVc7S0FDWixDQUFDO0FBQ0osQ0FBQztBQWpERCxvREFpREM7QUFFRCxTQUFnQixzQkFBc0IsQ0FDcEMsS0FBYSxFQUNiLEtBQXVDLEVBQ3ZDLGNBQXlCO0lBRXpCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLDBDQUEwQztZQUMxQyw4REFBOEQ7WUFDOUQsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzlELElBQUksU0FBUztnQkFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQXlCLENBQUM7WUFDN0MsTUFBTSx3QkFBd0IsR0FBRztnQkFDL0IsSUFBSSxDQUFDLE1BQU07Z0JBQ1gsSUFBSSxDQUFDLE1BQU07Z0JBQ1gsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7YUFDMUIsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxzQkFBc0IsQ0FDdkIsS0FBSyxFQUNMLElBQUEsK0JBQWlCLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUNuRCx3QkFBd0IsQ0FDekI7Z0JBQ0QsR0FBRyxzQkFBc0IsQ0FDdkIsS0FBSyxFQUNMLElBQUEsK0JBQWlCLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUNwRCx3QkFBd0IsQ0FDekI7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNEO1lBQ0UsT0FBTyxLQUFLLENBQUMsUUFBUTtpQkFDbEIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2lCQUNwRSxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBNUNELHdEQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCB7XG4gIEV4cHJlc3Npb25Bc3QsXG4gIFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGEsXG4gIFRlcnJhZm9ybVRyYXZlcnNhbFBhcnQsXG4gIEZvckV4cHJlc3Npb25NZXRhLFxuICBnZXRDaGlsZFdpdGhWYWx1ZSxcbn0gZnJvbSBcIi4vc3ludGF4LXRyZWVcIjtcblxuZXhwb3J0IHR5cGUgUmVmZXJlbmNlID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBzdGFydFBvc2l0aW9uOiBudW1iZXI7XG4gIGVuZFBvc2l0aW9uOiBudW1iZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhdmVyc2FsVG9SZWZlcmVuY2UoXG4gIHRyYXZlcnNhbEV4cHJlc3Npb246IEV4cHJlc3Npb25Bc3QsXG4gIGxvY2FsVmFyaWFibGVzPzogc3RyaW5nW10sXG4pOiBSZWZlcmVuY2UgfCBudWxsIHtcbiAgY29uc3QgbWV0YSA9IHRyYXZlcnNhbEV4cHJlc3Npb24ubWV0YSBhcyBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhO1xuXG4gIC8vIFdlIGRvIG5vdCB3YW50IHRvIGluY2x1ZGUgcHJvcGVydHkgYWNjZXNzIHRocm91Z2ggYnJhY2tldHMgaGVyZVxuICAvLyBhbHRob3VnaCBpdCBpcyB0ZWNobmljYWxseSBhIHRyYXZlcnNhbCAvIHJlZmVyZW5jZVxuICBmdW5jdGlvbiBvbmx5VGFrZVRyYXZlcnNhbFBhcnRzVW50aWxGaXJzdEJyYWNrZXRQcm9wZXJ0eUFjY2VzcyhcbiAgICB0cmF2ZXJzYWxzOiBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0W10sXG4gICkge1xuICAgIGNvbnN0IGZpbHRlcmVkID0gW107XG4gICAgY29uc3QgaW5kZXggPSAwO1xuXG4gICAgZm9yIChjb25zdCB0cmF2ZXJzYWwgb2YgdHJhdmVyc2Fscykge1xuICAgICAgaWYgKFwic2VnbWVudFwiIGluIHRyYXZlcnNhbCkge1xuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAvLyBXZSBhcmUgYXQgdGhlIGZpcnN0IHRyYXZlcnNhbCwgY2hlY2sgaWYgaXQgaXMgYSBsb2NhbCB2YXJpYWJsZVxuICAgICAgICAgIGlmIChsb2NhbFZhcmlhYmxlcz8uaW5jbHVkZXModHJhdmVyc2FsLnNlZ21lbnQpKSB7XG4gICAgICAgICAgICAvLyBXZSByZWFjaGVkIGEgbG9jYWwgdmFyaWFibGUsIHN0b3BcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyZWQucHVzaCh0cmF2ZXJzYWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgcmVhY2hlZCBhIGJyYWNrZXQsIHN0b3BcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgfVxuXG4gIGNvbnN0IGZpbHRlcmVkUGFydHMgPSBvbmx5VGFrZVRyYXZlcnNhbFBhcnRzVW50aWxGaXJzdEJyYWNrZXRQcm9wZXJ0eUFjY2VzcyhcbiAgICBtZXRhLnRyYXZlcnNhbCxcbiAgKTtcblxuICBpZiAoZmlsdGVyZWRQYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBmaWx0ZXJlZFBhcnRzWzBdLnJhbmdlLnN0YXJ0LmJ5dGU7XG4gIGNvbnN0IGVuZFBvc2l0aW9uID0gZmlsdGVyZWRQYXJ0c1tmaWx0ZXJlZFBhcnRzLmxlbmd0aCAtIDFdLnJhbmdlLmVuZC5ieXRlO1xuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IGZpbHRlcmVkUGFydHMubWFwKChwYXJ0KSA9PiBwYXJ0LnNlZ21lbnQpLmpvaW4oXCIuXCIpLFxuICAgIHN0YXJ0UG9zaXRpb24sXG4gICAgZW5kUG9zaXRpb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWxsUmVmZXJlbmNlc0luQXN0KFxuICBpbnB1dDogc3RyaW5nLFxuICBlbnRyeTogRXhwcmVzc2lvbkFzdCB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGxvY2FsVmFyaWFibGVzPzogc3RyaW5nW10sXG4pOiBSZWZlcmVuY2VbXSB7XG4gIGlmICghZW50cnkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzd2l0Y2ggKGVudHJ5LnR5cGUpIHtcbiAgICBjYXNlIFwic2NvcGVUcmF2ZXJzYWxcIjoge1xuICAgICAgLy8gRm9yIHRyYXZlcnNhbHMgd2l0aGluIGEgZm9yIGV4cHJlc3Npb24sXG4gICAgICAvLyB3ZSB3YW50IHRvIGlnbm9yZSB0aGUgbG9jYWwgdmFyaWFibGVzIG9mIHRoZSBmb3IgZXhwcmVzc2lvblxuICAgICAgY29uc3QgcmVmZXJlbmNlID0gdHJhdmVyc2FsVG9SZWZlcmVuY2UoZW50cnksIGxvY2FsVmFyaWFibGVzKTtcbiAgICAgIGlmIChyZWZlcmVuY2UpIHJldHVybiBbcmVmZXJlbmNlXTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjYXNlIFwiZm9yXCI6IHtcbiAgICAgIGNvbnN0IG1ldGEgPSBlbnRyeS5tZXRhIGFzIEZvckV4cHJlc3Npb25NZXRhO1xuICAgICAgY29uc3QgYWRkaXRpb25hbExvY2FsVmFyaWFibGVzID0gW1xuICAgICAgICBtZXRhLmtleVZhcixcbiAgICAgICAgbWV0YS52YWxWYXIsXG4gICAgICAgIC4uLihsb2NhbFZhcmlhYmxlcyB8fCBbXSksXG4gICAgICBdO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5maW5kQWxsUmVmZXJlbmNlc0luQXN0KFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIGdldENoaWxkV2l0aFZhbHVlKGVudHJ5LCBtZXRhLmNvbGxlY3Rpb25FeHByZXNzaW9uKSxcbiAgICAgICAgICBhZGRpdGlvbmFsTG9jYWxWYXJpYWJsZXMsXG4gICAgICAgICksXG4gICAgICAgIC4uLmZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgZ2V0Q2hpbGRXaXRoVmFsdWUoZW50cnksIG1ldGEuY29uZGl0aW9uYWxFeHByZXNzaW9uKSxcbiAgICAgICAgICBhZGRpdGlvbmFsTG9jYWxWYXJpYWJsZXMsXG4gICAgICAgICksXG4gICAgICBdO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGVudHJ5LmNoaWxkcmVuXG4gICAgICAgIC5tYXAoKGNoaWxkKSA9PiBmaW5kQWxsUmVmZXJlbmNlc0luQXN0KGlucHV0LCBjaGlsZCwgbG9jYWxWYXJpYWJsZXMpKVxuICAgICAgICAuZmxhdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-tree.d.ts","sourceRoot":"","sources":["../src/syntax-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChildWithValue = exports.isIndexTraversalPart = exports.isNameTraversalPart = exports.isObjectExpression = exports.isTupleExpression = exports.isBinaryOpExpression = exports.isUnaryOpExpression = exports.isConditionalExpression = exports.isSplatExpression = exports.isIndexExpression = exports.isLiteralValueExpression = exports.isRelativeTraversalExpression = exports.isScopeTraversalExpression = exports.isFunctionCallExpression = exports.isTemplateExpression = exports.isTemplateWrapExpression = exports.isForExpression = void 0;
|
|
4
|
+
function isForExpression(ast) {
|
|
5
|
+
return ast.type === "for";
|
|
6
|
+
}
|
|
7
|
+
exports.isForExpression = isForExpression;
|
|
8
|
+
function isTemplateWrapExpression(ast) {
|
|
9
|
+
return ast.type === "templateWrap";
|
|
10
|
+
}
|
|
11
|
+
exports.isTemplateWrapExpression = isTemplateWrapExpression;
|
|
12
|
+
function isTemplateExpression(ast) {
|
|
13
|
+
return ast.type === "template";
|
|
14
|
+
}
|
|
15
|
+
exports.isTemplateExpression = isTemplateExpression;
|
|
16
|
+
function isFunctionCallExpression(ast) {
|
|
17
|
+
return ast.type === "function";
|
|
18
|
+
}
|
|
19
|
+
exports.isFunctionCallExpression = isFunctionCallExpression;
|
|
20
|
+
function isScopeTraversalExpression(ast) {
|
|
21
|
+
return ast.type === "scopeTraversal";
|
|
22
|
+
}
|
|
23
|
+
exports.isScopeTraversalExpression = isScopeTraversalExpression;
|
|
24
|
+
function isRelativeTraversalExpression(ast) {
|
|
25
|
+
return ast.type === "relativeTraversal";
|
|
26
|
+
}
|
|
27
|
+
exports.isRelativeTraversalExpression = isRelativeTraversalExpression;
|
|
28
|
+
function isLiteralValueExpression(ast) {
|
|
29
|
+
return ast.type === "literalValue";
|
|
30
|
+
}
|
|
31
|
+
exports.isLiteralValueExpression = isLiteralValueExpression;
|
|
32
|
+
function isIndexExpression(ast) {
|
|
33
|
+
return ast.type === "index";
|
|
34
|
+
}
|
|
35
|
+
exports.isIndexExpression = isIndexExpression;
|
|
36
|
+
function isSplatExpression(ast) {
|
|
37
|
+
return ast.type === "splat";
|
|
38
|
+
}
|
|
39
|
+
exports.isSplatExpression = isSplatExpression;
|
|
40
|
+
function isConditionalExpression(ast) {
|
|
41
|
+
return ast.type === "conditional";
|
|
42
|
+
}
|
|
43
|
+
exports.isConditionalExpression = isConditionalExpression;
|
|
44
|
+
function isUnaryOpExpression(ast) {
|
|
45
|
+
return ast.type === "unaryOp";
|
|
46
|
+
}
|
|
47
|
+
exports.isUnaryOpExpression = isUnaryOpExpression;
|
|
48
|
+
function isBinaryOpExpression(ast) {
|
|
49
|
+
return ast.type === "binaryOp";
|
|
50
|
+
}
|
|
51
|
+
exports.isBinaryOpExpression = isBinaryOpExpression;
|
|
52
|
+
function isTupleExpression(ast) {
|
|
53
|
+
return ast.type === "tuple";
|
|
54
|
+
}
|
|
55
|
+
exports.isTupleExpression = isTupleExpression;
|
|
56
|
+
function isObjectExpression(part) {
|
|
57
|
+
return part.type === "object";
|
|
58
|
+
}
|
|
59
|
+
exports.isObjectExpression = isObjectExpression;
|
|
60
|
+
function isNameTraversalPart(part) {
|
|
61
|
+
return part.type === "nameTraversal";
|
|
62
|
+
}
|
|
63
|
+
exports.isNameTraversalPart = isNameTraversalPart;
|
|
64
|
+
function isIndexTraversalPart(part) {
|
|
65
|
+
return part.type === "indexTraversal";
|
|
66
|
+
}
|
|
67
|
+
exports.isIndexTraversalPart = isIndexTraversalPart;
|
|
68
|
+
function getChildWithValue(node, value) {
|
|
69
|
+
if (!node.children) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
return node.children.find((child) => {
|
|
73
|
+
if (!child.meta)
|
|
74
|
+
return false;
|
|
75
|
+
return child.meta.value === value;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports.getChildWithValue = getChildWithValue;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGF4LXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3ludGF4LXRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNE5BLFNBQWdCLGVBQWUsQ0FBQyxHQUFtQjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQzVCLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0FBQ3JDLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLG9CQUFvQixDQUNsQyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ2pDLENBQUM7QUFKRCxvREFJQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ2pDLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUM7QUFDdkMsQ0FBQztBQUpELGdFQUlDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQzNDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQztBQUMxQyxDQUFDO0FBSkQsc0VBSUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FDdEMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsNERBSUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFtQjtJQUNuRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEdBQW1CO0lBQ25ELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDOUIsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUM7QUFDcEMsQ0FBQztBQUpELDBEQUlDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQ2pDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUpELGtEQUlDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUpELG9EQUlDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsR0FBbUI7SUFDbkQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUM5QixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsSUFBb0I7SUFFcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUNoQyxDQUFDO0FBSkQsZ0RBSUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsSUFBNEI7SUFFNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQztBQUN2QyxDQUFDO0FBSkQsa0RBSUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FDbEMsSUFBNEI7SUFFNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDO0FBQ3hDLENBQUM7QUFKRCxvREFJQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLElBQW1CLEVBQUUsS0FBYTtJQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFURCw4Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cbmV4cG9ydCB0eXBlIENvZGVNYXJrZXIgPSB7XG4gIGJ5dGU6IG51bWJlcjtcbiAgbGluZTogbnVtYmVyO1xuICBjb2x1bW46IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvZGVSYW5nZSA9IHtcbiAgZW5kOiBDb2RlTWFya2VyO1xuICBzdGFydDogQ29kZU1hcmtlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRlcnJhZm9ybVRyYXZlcnNhbFBhcnRDb21tb24gPSB7XG4gIHNlZ21lbnQ6IHN0cmluZztcbiAgcmFuZ2U6IENvZGVSYW5nZTtcbn07XG5cbmV4cG9ydCB0eXBlIFRlcnJhZm9ybU5hbWVUcmF2ZXJzYWxQYXJ0ID0gVGVycmFmb3JtVHJhdmVyc2FsUGFydENvbW1vbiAmIHtcbiAgdHlwZTogXCJuYW1lVHJhdmVyc2FsXCI7XG59O1xuZXhwb3J0IHR5cGUgVGVycmFmb3JtSW5kZXhUcmF2ZXJzYWxQYXJ0ID0gVGVycmFmb3JtVHJhdmVyc2FsUGFydENvbW1vbiAmIHtcbiAgdHlwZTogXCJpbmRleFRyYXZlcnNhbFwiO1xufTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtVHJhdmVyc2FsUGFydCA9XG4gIHwgVGVycmFmb3JtTmFtZVRyYXZlcnNhbFBhcnRcbiAgfCBUZXJyYWZvcm1JbmRleFRyYXZlcnNhbFBhcnQ7XG5cbi8vIEV4cHJlc3Npb24gTWV0YSBUeXBlc1xuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbk1ldGEgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGb3JFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBrZXlWYXI6IHN0cmluZztcbiAgdmFsVmFyOiBzdHJpbmc7XG4gIGNvbGxlY3Rpb25FeHByZXNzaW9uOiBzdHJpbmc7XG4gIGNvbmRpdGlvbmFsRXhwcmVzc2lvbjogc3RyaW5nO1xuICB2YWx1ZUV4cHJlc3Npb246IHN0cmluZztcbiAga2V5RXhwcmVzc2lvbjogc3RyaW5nO1xuICBncm91cGVkVmFsdWU6IGJvb2xlYW47XG4gIG9wZW5SYW5nZTogQ29kZVJhbmdlO1xuICBvcGVuUmFuZ2VWYWx1ZTogc3RyaW5nO1xuICBjbG9zZVJhbmdlOiBDb2RlUmFuZ2U7XG4gIGNsb3NlUmFuZ2VWYWx1ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25DYWxsTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBuYW1lOiBzdHJpbmc7XG4gIGV4cGFuZGVkRmluYWxBcmd1bWVudDogc3RyaW5nO1xuICBuYW1lUmFuZ2U6IENvZGVSYW5nZTtcbiAgb3BlblBhcmVuUmFuZ2U6IENvZGVSYW5nZTtcbiAgY2xvc2VQYXJlblJhbmdlOiBDb2RlUmFuZ2U7XG4gIGFyZ3NSYW5nZXM6IENvZGVSYW5nZVtdO1xufTtcblxuZXhwb3J0IHR5cGUgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBmdWxsQWNjZXNzb3I6IHN0cmluZztcbiAgdHJhdmVyc2FsOiBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0W107XG59O1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGZ1bGxBY2Nlc3Nvcjogc3RyaW5nO1xuICB0cmF2ZXJzYWw6IFRlcnJhZm9ybVRyYXZlcnNhbFBhcnRbXTtcbiAgc291cmNlRXhwcmVzc2lvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgdHlwZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSW5kZXhFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBrZXlFeHByZXNzaW9uOiBzdHJpbmc7XG4gIGNvbGxlY3Rpb25FeHByZXNzaW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTcGxhdEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIHNvdXJjZUV4cHJlc3Npb246IHN0cmluZztcbiAgZWFjaEV4cHJlc3Npb246IHN0cmluZztcbiAgYW5vblN5bWJvbEV4cHJlc3Npb246IHN0cmluZztcbiAgbWFya2VyUmFuZ2U6IENvZGVSYW5nZTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbmFsRXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgY29uZGl0aW9uRXhwcmVzc2lvbjogc3RyaW5nO1xuICB0cnVlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBmYWxzZUV4cHJlc3Npb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFVuYXJ5T3BFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBvcGVyYXRvcjogc3RyaW5nO1xuICB2YWx1ZUV4cHJlc3Npb246IHN0cmluZztcbiAgc3ltYm9sUmFuZ2U6IENvZGVSYW5nZTtcbiAgcmV0dXJuVHlwZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQmluYXJ5T3BFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBvcGVyYXRvcjogc3RyaW5nO1xuICByZXR1cm5UeXBlOiBzdHJpbmc7XG4gIGxoc0V4cHJlc3Npb246IHN0cmluZztcbiAgcmhzRXhwcmVzc2lvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT2JqZWN0RXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgaXRlbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG5leHBvcnQgdHlwZSBNZXRhVHlwZSA9XG4gIHwgRXhwcmVzc2lvbk1ldGFcbiAgfCBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhXG4gIHwgRm9yRXhwcmVzc2lvbk1ldGFcbiAgfCBGdW5jdGlvbkNhbGxNZXRhXG4gIHwgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uTWV0YVxuICB8IExpdGVyYWxWYWx1ZUV4cHJlc3Npb25NZXRhXG4gIHwgSW5kZXhFeHByZXNzaW9uTWV0YVxuICB8IFNwbGF0RXhwcmVzc2lvbk1ldGFcbiAgfCBDb25kaXRpb25hbEV4cHJlc3Npb25NZXRhXG4gIHwgVW5hcnlPcEV4cHJlc3Npb25NZXRhXG4gIHwgQmluYXJ5T3BFeHByZXNzaW9uTWV0YVxuICB8IE9iamVjdEV4cHJlc3Npb25NZXRhO1xuXG5leHBvcnQgdHlwZSBDb21tb25FeHByZXNzaW9uQXN0ID0ge1xuICBjaGlsZHJlbjogRXhwcmVzc2lvblR5cGVbXTtcbiAgcmFuZ2U6IENvZGVSYW5nZTtcbn07XG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25Bc3QgPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBzdHJpbmc7XG4gIG1ldGE6IE1ldGFUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVXcmFwRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidGVtcGxhdGVXcmFwXCI7XG4gIG1ldGE6IEV4cHJlc3Npb25NZXRhOyAvLyBEb2Vzbid0IGhhdmUgYW55IHNwZWNpYWwgbWV0YSBhdHRyaWJ1dGVzXG59O1xuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInRlbXBsYXRlXCI7XG4gIG1ldGE6IEV4cHJlc3Npb25NZXRhOyAvLyBEb2Vzbid0IGhhdmUgYW55IHNwZWNpYWwgbWV0YSBhdHRyaWJ1dGVzXG59O1xuXG5leHBvcnQgdHlwZSBUdXBsZUV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInR1cGxlXCI7XG4gIG1ldGE6IEV4cHJlc3Npb25NZXRhOyAvLyBEb2Vzbid0IGhhdmUgYW55IHNwZWNpYWwgbWV0YSBhdHRyaWJ1dGVzXG59O1xuXG5leHBvcnQgdHlwZSBGb3JFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJmb3JcIjtcbiAgbWV0YTogRm9yRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBGdW5jdGlvbkNhbGxFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJmdW5jdGlvblwiO1xuICBtZXRhOiBGdW5jdGlvbkNhbGxNZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJzY29wZVRyYXZlcnNhbFwiO1xuICBtZXRhOiBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJyZWxhdGl2ZVRyYXZlcnNhbFwiO1xuICBtZXRhOiBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwibGl0ZXJhbFZhbHVlXCI7XG4gIG1ldGE6IExpdGVyYWxWYWx1ZUV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgSW5kZXhFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJpbmRleFwiO1xuICBtZXRhOiBJbmRleEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgU3BsYXRFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJzcGxhdFwiO1xuICBtZXRhOiBTcGxhdEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZGl0aW9uYWxFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJjb25kaXRpb25hbFwiO1xuICBtZXRhOiBDb25kaXRpb25hbEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgVW5hcnlPcEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInVuYXJ5T3BcIjtcbiAgbWV0YTogVW5hcnlPcEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgQmluYXJ5T3BFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJiaW5hcnlPcFwiO1xuICBtZXRhOiBCaW5hcnlPcEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgT2JqZWN0RXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwib2JqZWN0XCI7XG4gIG1ldGE6IE9iamVjdEV4cHJlc3Npb25NZXRhO1xufTtcblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvblR5cGUgPVxuICB8IEZvckV4cHJlc3Npb25cbiAgfCBUZW1wbGF0ZVdyYXBFeHByZXNzaW9uXG4gIHwgVGVtcGxhdGVFeHByZXNzaW9uXG4gIHwgRnVuY3Rpb25DYWxsRXhwcmVzc2lvblxuICB8IFR1cGxlRXhwcmVzc2lvblxuICB8IFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvblxuICB8IFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvblxuICB8IExpdGVyYWxWYWx1ZUV4cHJlc3Npb25cbiAgfCBJbmRleEV4cHJlc3Npb25cbiAgfCBTcGxhdEV4cHJlc3Npb25cbiAgfCBDb25kaXRpb25hbEV4cHJlc3Npb25cbiAgfCBVbmFyeU9wRXhwcmVzc2lvblxuICB8IEJpbmFyeU9wRXhwcmVzc2lvblxuICB8IE9iamVjdEV4cHJlc3Npb247XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZvckV4cHJlc3Npb24oYXN0OiBFeHByZXNzaW9uVHlwZSk6IGFzdCBpcyBGb3JFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImZvclwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVdyYXBFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFRlbXBsYXRlV3JhcEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwidGVtcGxhdGVXcmFwXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlRXhwcmVzc2lvbihcbiAgYXN0OiBFeHByZXNzaW9uVHlwZSxcbik6IGFzdCBpcyBUZW1wbGF0ZUV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwidGVtcGxhdGVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb25DYWxsRXhwcmVzc2lvbihcbiAgYXN0OiBFeHByZXNzaW9uVHlwZSxcbik6IGFzdCBpcyBGdW5jdGlvbkNhbGxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlVHJhdmVyc2FsRXhwcmVzc2lvbihcbiAgYXN0OiBFeHByZXNzaW9uVHlwZSxcbik6IGFzdCBpcyBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwic2NvcGVUcmF2ZXJzYWxcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJyZWxhdGl2ZVRyYXZlcnNhbFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXRlcmFsVmFsdWVFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIExpdGVyYWxWYWx1ZUV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwibGl0ZXJhbFZhbHVlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luZGV4RXhwcmVzc2lvbihhc3Q6IEV4cHJlc3Npb25UeXBlKTogYXN0IGlzIEluZGV4RXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJpbmRleFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTcGxhdEV4cHJlc3Npb24oYXN0OiBFeHByZXNzaW9uVHlwZSk6IGFzdCBpcyBTcGxhdEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwic3BsYXRcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZGl0aW9uYWxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIENvbmRpdGlvbmFsRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJjb25kaXRpb25hbFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmFyeU9wRXhwcmVzc2lvbihcbiAgYXN0OiBFeHByZXNzaW9uVHlwZSxcbik6IGFzdCBpcyBVbmFyeU9wRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJ1bmFyeU9wXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0JpbmFyeU9wRXhwcmVzc2lvbihcbiAgYXN0OiBFeHByZXNzaW9uVHlwZSxcbik6IGFzdCBpcyBCaW5hcnlPcEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwiYmluYXJ5T3BcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHVwbGVFeHByZXNzaW9uKGFzdDogRXhwcmVzc2lvblR5cGUpOiBhc3QgaXMgVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcInR1cGxlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdEV4cHJlc3Npb24oXG4gIHBhcnQ6IEV4cHJlc3Npb25UeXBlLFxuKTogcGFydCBpcyBPYmplY3RFeHByZXNzaW9uIHtcbiAgcmV0dXJuIHBhcnQudHlwZSA9PT0gXCJvYmplY3RcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmFtZVRyYXZlcnNhbFBhcnQoXG4gIHBhcnQ6IFRlcnJhZm9ybVRyYXZlcnNhbFBhcnQsXG4pOiBwYXJ0IGlzIFRlcnJhZm9ybU5hbWVUcmF2ZXJzYWxQYXJ0IHtcbiAgcmV0dXJuIHBhcnQudHlwZSA9PT0gXCJuYW1lVHJhdmVyc2FsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luZGV4VHJhdmVyc2FsUGFydChcbiAgcGFydDogVGVycmFmb3JtVHJhdmVyc2FsUGFydCxcbik6IHBhcnQgaXMgVGVycmFmb3JtSW5kZXhUcmF2ZXJzYWxQYXJ0IHtcbiAgcmV0dXJuIHBhcnQudHlwZSA9PT0gXCJpbmRleFRyYXZlcnNhbFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hpbGRXaXRoVmFsdWUobm9kZTogRXhwcmVzc2lvbkFzdCwgdmFsdWU6IHN0cmluZykge1xuICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiB7XG4gICAgaWYgKCFjaGlsZC5tZXRhKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGNoaWxkLm1ldGEudmFsdWUgPT09IHZhbHVlO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAoCA"}
|
package/build/util.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.wrapTerraformExpression = exports.replaceQuotes = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* This function is used to escape quotes within a string.
|
|
10
|
+
* Note: This is a really naive implmentation that will not be able to work with
|
|
11
|
+
* nested templates. However, nested templates require parsing, so we will
|
|
12
|
+
* only handle strings without nested templates for the moment
|
|
13
|
+
* @param input The string to escape
|
|
14
|
+
*/
|
|
15
|
+
function replaceQuotes(input) {
|
|
16
|
+
const fullyQuotedMatch = /^(\s*")(.*)("\s*)$/.exec(input);
|
|
17
|
+
const hasTemplate = /(?<!\$)\$\{/.test(input);
|
|
18
|
+
if (fullyQuotedMatch !== null && !hasTemplate) {
|
|
19
|
+
return `${fullyQuotedMatch[1]}${fullyQuotedMatch[2].replace(/"/g, `\\"`)}${fullyQuotedMatch[3]}`;
|
|
20
|
+
}
|
|
21
|
+
return input;
|
|
22
|
+
}
|
|
23
|
+
exports.replaceQuotes = replaceQuotes;
|
|
24
|
+
/**
|
|
25
|
+
* This function is used to wrap a string in quotes conditionally.
|
|
26
|
+
* - If the string is already quoted, it will be returned as-is.
|
|
27
|
+
* - If the string contains a newline, it will be wrapped in a heredoc.
|
|
28
|
+
* - If the string is a number, it will be returned as-is.
|
|
29
|
+
* - If the string is a boolean, it will be returned as-is.
|
|
30
|
+
* - If the string is a list or map, it will be returned as-is.
|
|
31
|
+
*
|
|
32
|
+
* @param input The string to wrap
|
|
33
|
+
* @returns The wrapped string, and the offset of the cursor within the string
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* wrapTerraformExpression("foo") // { wrap: '"foo"', wrapOffset: 1 }
|
|
37
|
+
* wrapTerraformExpression("foo\nbar") // { wrap: '<<EOE\nfoo\nbar\nEOE\n', wrapOffset: 5 }
|
|
38
|
+
* wrapTerraformExpression("22") // { wrap: '22', wrapOffset: 0 }
|
|
39
|
+
* wrapTerraformExpression("true") // { wrap: 'true', wrapOffset: 0 }
|
|
40
|
+
* wrapTerraformExpression("[22, 10]") // { wrap: '[22, 10]', wrapOffset: 0 }
|
|
41
|
+
* wrapTerraformExpression("{ foo = 22 }") // { wrap: '{ foo = 22 }', wrapOffset: 0 }
|
|
42
|
+
*/
|
|
43
|
+
function wrapTerraformExpression(input) {
|
|
44
|
+
input = replaceQuotes(input);
|
|
45
|
+
if (!isNaN(Number(input))) {
|
|
46
|
+
return { wrap: input, wrapOffset: 0 };
|
|
47
|
+
}
|
|
48
|
+
if (input === "true" || input === "false") {
|
|
49
|
+
return { wrap: input, wrapOffset: 0 };
|
|
50
|
+
}
|
|
51
|
+
if (input.startsWith(`"`)) {
|
|
52
|
+
if (input.indexOf("\n") >= 0) {
|
|
53
|
+
const trimWrapped = input.substring(1, input.length - 1);
|
|
54
|
+
return {
|
|
55
|
+
wrap: `<<EOE\n${trimWrapped}\nEOE\n`,
|
|
56
|
+
wrapOffset: 5,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return { wrap: input, wrapOffset: 0 };
|
|
60
|
+
}
|
|
61
|
+
if (input.startsWith("[") || input.startsWith("{")) {
|
|
62
|
+
return { wrap: input, wrapOffset: 0 };
|
|
63
|
+
}
|
|
64
|
+
if (input.startsWith("<<")) {
|
|
65
|
+
// For Heredocs, we need to ensure that the string ends with an empty newline as
|
|
66
|
+
// the HCL parser doesn't find the ending token otherwise
|
|
67
|
+
if (!input.endsWith("\n")) {
|
|
68
|
+
return { wrap: input + "\n", wrapOffset: 0 };
|
|
69
|
+
}
|
|
70
|
+
return { wrap: input, wrapOffset: 0 };
|
|
71
|
+
}
|
|
72
|
+
return { wrap: `"${input}"`, wrapOffset: 1 };
|
|
73
|
+
}
|
|
74
|
+
exports.wrapTerraformExpression = wrapTerraformExpression;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVIOzs7Ozs7R0FNRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxLQUFhO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUMsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FDdEUsZ0JBQWdCLENBQUMsQ0FBQyxDQUNwQixFQUFFLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBWEQsc0NBV0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsS0FBYTtJQUluRCxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksS0FBSyxLQUFLLE1BQU0sSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6RCxPQUFPO2dCQUNMLElBQUksRUFBRSxVQUFVLFdBQVcsU0FBUztnQkFDcEMsVUFBVSxFQUFFLENBQUM7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNCLGdGQUFnRjtRQUNoRix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQy9DLENBQUM7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQXZDRCwwREF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGVzY2FwZSBxdW90ZXMgd2l0aGluIGEgc3RyaW5nLlxuICogIE5vdGU6IFRoaXMgaXMgYSByZWFsbHkgbmFpdmUgaW1wbG1lbnRhdGlvbiB0aGF0IHdpbGwgbm90IGJlIGFibGUgdG8gd29yayB3aXRoXG4gKiAgICBuZXN0ZWQgdGVtcGxhdGVzLiBIb3dldmVyLCBuZXN0ZWQgdGVtcGxhdGVzIHJlcXVpcmUgcGFyc2luZywgc28gd2Ugd2lsbFxuICogICAgb25seSBoYW5kbGUgc3RyaW5ncyB3aXRob3V0IG5lc3RlZCB0ZW1wbGF0ZXMgZm9yIHRoZSBtb21lbnRcbiAqIEBwYXJhbSBpbnB1dCBUaGUgc3RyaW5nIHRvIGVzY2FwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVF1b3RlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZnVsbHlRdW90ZWRNYXRjaCA9IC9eKFxccypcIikoLiopKFwiXFxzKikkLy5leGVjKGlucHV0KTtcbiAgY29uc3QgaGFzVGVtcGxhdGUgPSAvKD88IVxcJClcXCRcXHsvLnRlc3QoaW5wdXQpO1xuXG4gIGlmIChmdWxseVF1b3RlZE1hdGNoICE9PSBudWxsICYmICFoYXNUZW1wbGF0ZSkge1xuICAgIHJldHVybiBgJHtmdWxseVF1b3RlZE1hdGNoWzFdfSR7ZnVsbHlRdW90ZWRNYXRjaFsyXS5yZXBsYWNlKC9cIi9nLCBgXFxcXFwiYCl9JHtcbiAgICAgIGZ1bGx5UXVvdGVkTWF0Y2hbM11cbiAgICB9YDtcbiAgfVxuXG4gIHJldHVybiBpbnB1dDtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gd3JhcCBhIHN0cmluZyBpbiBxdW90ZXMgY29uZGl0aW9uYWxseS5cbiAqICAtIElmIHRoZSBzdHJpbmcgaXMgYWxyZWFkeSBxdW90ZWQsIGl0IHdpbGwgYmUgcmV0dXJuZWQgYXMtaXMuXG4gKiAgLSBJZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGEgbmV3bGluZSwgaXQgd2lsbCBiZSB3cmFwcGVkIGluIGEgaGVyZWRvYy5cbiAqICAtIElmIHRoZSBzdHJpbmcgaXMgYSBudW1iZXIsIGl0IHdpbGwgYmUgcmV0dXJuZWQgYXMtaXMuXG4gKiAgLSBJZiB0aGUgc3RyaW5nIGlzIGEgYm9vbGVhbiwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqICAtIElmIHRoZSBzdHJpbmcgaXMgYSBsaXN0IG9yIG1hcCwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIHN0cmluZyB0byB3cmFwXG4gKiBAcmV0dXJucyBUaGUgd3JhcHBlZCBzdHJpbmcsIGFuZCB0aGUgb2Zmc2V0IG9mIHRoZSBjdXJzb3Igd2l0aGluIHRoZSBzdHJpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCJmb29cIikgLy8geyB3cmFwOiAnXCJmb29cIicsIHdyYXBPZmZzZXQ6IDEgfVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCJmb29cXG5iYXJcIikgLy8geyB3cmFwOiAnPDxFT0VcXG5mb29cXG5iYXJcXG5FT0VcXG4nLCB3cmFwT2Zmc2V0OiA1IH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwiMjJcIikgLy8geyB3cmFwOiAnMjInLCB3cmFwT2Zmc2V0OiAwIH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwidHJ1ZVwiKSAvLyB7IHdyYXA6ICd0cnVlJywgd3JhcE9mZnNldDogMCB9XG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcIlsyMiwgMTBdXCIpIC8vIHsgd3JhcDogJ1syMiwgMTBdJywgd3JhcE9mZnNldDogMCB9XG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcInsgZm9vID0gMjIgfVwiKSAvLyB7IHdyYXA6ICd7IGZvbyA9IDIyIH0nLCB3cmFwT2Zmc2V0OiAwIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKGlucHV0OiBzdHJpbmcpOiB7XG4gIHdyYXA6IHN0cmluZztcbiAgd3JhcE9mZnNldDogbnVtYmVyO1xufSB7XG4gIGlucHV0ID0gcmVwbGFjZVF1b3RlcyhpbnB1dCk7XG5cbiAgaWYgKCFpc05hTihOdW1iZXIoaW5wdXQpKSkge1xuICAgIHJldHVybiB7IHdyYXA6IGlucHV0LCB3cmFwT2Zmc2V0OiAwIH07XG4gIH1cbiAgaWYgKGlucHV0ID09PSBcInRydWVcIiB8fCBpbnB1dCA9PT0gXCJmYWxzZVwiKSB7XG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuXG4gIGlmIChpbnB1dC5zdGFydHNXaXRoKGBcImApKSB7XG4gICAgaWYgKGlucHV0LmluZGV4T2YoXCJcXG5cIikgPj0gMCkge1xuICAgICAgY29uc3QgdHJpbVdyYXBwZWQgPSBpbnB1dC5zdWJzdHJpbmcoMSwgaW5wdXQubGVuZ3RoIC0gMSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3cmFwOiBgPDxFT0VcXG4ke3RyaW1XcmFwcGVkfVxcbkVPRVxcbmAsXG4gICAgICAgIHdyYXBPZmZzZXQ6IDUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyB3cmFwOiBpbnB1dCwgd3JhcE9mZnNldDogMCB9O1xuICB9XG5cbiAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoXCJbXCIpIHx8IGlucHV0LnN0YXJ0c1dpdGgoXCJ7XCIpKSB7XG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuXG4gIGlmIChpbnB1dC5zdGFydHNXaXRoKFwiPDxcIikpIHtcbiAgICAvLyBGb3IgSGVyZWRvY3MsIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHN0cmluZyBlbmRzIHdpdGggYW4gZW1wdHkgbmV3bGluZSBhc1xuICAgIC8vIHRoZSBIQ0wgcGFyc2VyIGRvZXNuJ3QgZmluZCB0aGUgZW5kaW5nIHRva2VuIG90aGVyd2lzZVxuICAgIGlmICghaW5wdXQuZW5kc1dpdGgoXCJcXG5cIikpIHtcbiAgICAgIHJldHVybiB7IHdyYXA6IGlucHV0ICsgXCJcXG5cIiwgd3JhcE9mZnNldDogMCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHdyYXA6IGlucHV0LCB3cmFwT2Zmc2V0OiAwIH07XG4gIH1cblxuICByZXR1cm4geyB3cmFwOiBgXCIke2lucHV0fVwiYCwgd3JhcE9mZnNldDogMSB9O1xufVxuIl19
|
package/main.wasm.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdktn/hcl2json",
|
|
3
|
-
"version": "0.23.0-pre.
|
|
3
|
+
"version": "0.23.0-pre.39",
|
|
4
4
|
"description": "Transform HCL into JSON",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "
|
|
5
|
+
"main": "build/index.js",
|
|
6
|
+
"types": "build/index.d.ts",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
package/lib/bridge.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["bridge.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,SAAS,EAA0B,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA+E/C,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAG9B;AAED,wBAAsB,YAAY,CAChC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAyB9B;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAiCtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAShC"}
|
package/lib/bridge.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
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
|
-
exports.getExpressionAst = exports.getReferencesInExpression = exports.convertFiles = exports.parse = void 0;
|
|
29
|
-
/// <reference lib="dom" />
|
|
30
|
-
// Inspired by
|
|
31
|
-
// https://github.com/ts-terraform/ts-terraform
|
|
32
|
-
// https://github.com/aaronpowell/webpack-golang-wasm-async-loader
|
|
33
|
-
const fs = __importStar(require("fs-extra"));
|
|
34
|
-
const path_1 = require("path");
|
|
35
|
-
const deepmerge_1 = require("./deepmerge");
|
|
36
|
-
const zlib_1 = require("zlib");
|
|
37
|
-
const references_1 = require("./references");
|
|
38
|
-
const util_1 = require("./util");
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
40
|
-
const jsRoot = {};
|
|
41
|
-
function sleep() {
|
|
42
|
-
return new Promise((resolve) => {
|
|
43
|
-
setTimeout(resolve, 0);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function goBridge(getBytes) {
|
|
47
|
-
let ready = false;
|
|
48
|
-
async function init() {
|
|
49
|
-
// After: https://github.com/golang/go/commit/680caf15355057ca84857a2a291b6f5c44e73329
|
|
50
|
-
// Go 1.19+ has a different entrypoint
|
|
51
|
-
await Promise.resolve().then(() => __importStar(require(`../wasm/bridge_wasm_exec.js`)));
|
|
52
|
-
const go = new global.Go();
|
|
53
|
-
const bytes = await getBytes;
|
|
54
|
-
const result = await WebAssembly.instantiate(bytes, go.importObject);
|
|
55
|
-
global.__parse_terraform_config_wasm__ = jsRoot;
|
|
56
|
-
void go.run(result.instance);
|
|
57
|
-
ready = true;
|
|
58
|
-
}
|
|
59
|
-
init().catch((error) => {
|
|
60
|
-
throw error;
|
|
61
|
-
});
|
|
62
|
-
const proxy = new Proxy({}, {
|
|
63
|
-
get: (_, key) => {
|
|
64
|
-
return async (...args) => {
|
|
65
|
-
while (!ready) {
|
|
66
|
-
await sleep();
|
|
67
|
-
}
|
|
68
|
-
if (!(key in jsRoot)) {
|
|
69
|
-
throw new Error(`There is nothing defined with the name "${key.toString()}"`);
|
|
70
|
-
}
|
|
71
|
-
if (typeof jsRoot[key] !== "function") {
|
|
72
|
-
return jsRoot[key];
|
|
73
|
-
}
|
|
74
|
-
return new Promise((resolve, reject) => {
|
|
75
|
-
const cb = (err, ...msg) =>
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
77
|
-
// @ts-ignore
|
|
78
|
-
err ? reject(new Error(err)) : resolve(...msg);
|
|
79
|
-
const run = () => {
|
|
80
|
-
jsRoot[key].apply(undefined, [...args, cb]);
|
|
81
|
-
};
|
|
82
|
-
run();
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
return proxy;
|
|
88
|
-
}
|
|
89
|
-
const loadWasm = async () => {
|
|
90
|
-
return (0, zlib_1.gunzipSync)(await fs.readFile((0, path_1.join)(__dirname, "..", "main.wasm.gz")));
|
|
91
|
-
};
|
|
92
|
-
const wasm = goBridge(loadWasm());
|
|
93
|
-
async function parse(filename, contents) {
|
|
94
|
-
const res = await wasm.parse(filename, contents);
|
|
95
|
-
return JSON.parse(res);
|
|
96
|
-
}
|
|
97
|
-
exports.parse = parse;
|
|
98
|
-
async function convertFiles(workingDirectory) {
|
|
99
|
-
let tfFileContents = "";
|
|
100
|
-
const tfJSONFileContents = [];
|
|
101
|
-
for (const file of fs.readdirSync(workingDirectory)) {
|
|
102
|
-
const filePath = (0, path_1.resolve)(workingDirectory, file);
|
|
103
|
-
if (!fs.lstatSync(filePath).isDirectory()) {
|
|
104
|
-
if (file.match(/\.tf$/)) {
|
|
105
|
-
tfFileContents += fs.readFileSync(filePath, "utf-8");
|
|
106
|
-
tfFileContents += "\n";
|
|
107
|
-
}
|
|
108
|
-
else if (file.match(/\.tf\.json$/)) {
|
|
109
|
-
tfJSONFileContents.push(JSON.parse(fs.readFileSync(filePath, "utf-8")));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (tfFileContents === "" && tfJSONFileContents.length === 0) {
|
|
114
|
-
console.error(`No '.tf' or '.tf.json' files found in ${workingDirectory}`);
|
|
115
|
-
return {};
|
|
116
|
-
}
|
|
117
|
-
return (0, deepmerge_1.deepMerge)(await parse("hcl2json.tf", tfFileContents), ...tfJSONFileContents);
|
|
118
|
-
}
|
|
119
|
-
exports.convertFiles = convertFiles;
|
|
120
|
-
/**
|
|
121
|
-
* Parse a Terraform expression and return the AST. This function expects a string input, and will wrap the expression in quotes if it is not already quoted.
|
|
122
|
-
* @param filename The filename to use for the expression. This is used for error reporting.
|
|
123
|
-
* @param expression The expression to parse.
|
|
124
|
-
* @returns An array of References found in the expression.
|
|
125
|
-
*/
|
|
126
|
-
async function getReferencesInExpression(filename, expression) {
|
|
127
|
-
// We have to do this twice because of the problem with HEREDOCS
|
|
128
|
-
// Our current hcl2json implementation removes HEREDOCS and replaces them
|
|
129
|
-
// with a multi-line string, which is causing all kinds of problems
|
|
130
|
-
let offset = 0;
|
|
131
|
-
let quoteWrappedExpression = expression;
|
|
132
|
-
if (!expression.startsWith('"')) {
|
|
133
|
-
quoteWrappedExpression = `"${expression}"`;
|
|
134
|
-
offset = 1;
|
|
135
|
-
}
|
|
136
|
-
const { wrap: wrappedExpression, wrapOffset: startOffset } = (0, util_1.wrapTerraformExpression)(`${quoteWrappedExpression}`);
|
|
137
|
-
offset += startOffset;
|
|
138
|
-
const ast = await getExpressionAst(filename, wrappedExpression);
|
|
139
|
-
if (!ast) {
|
|
140
|
-
return [];
|
|
141
|
-
}
|
|
142
|
-
const refs = (0, references_1.findAllReferencesInAst)(expression, ast);
|
|
143
|
-
if (wrappedExpression === expression) {
|
|
144
|
-
return refs;
|
|
145
|
-
}
|
|
146
|
-
return refs.map((ref) => {
|
|
147
|
-
return {
|
|
148
|
-
...ref,
|
|
149
|
-
startPosition: ref.startPosition - offset,
|
|
150
|
-
endPosition: ref.endPosition - offset,
|
|
151
|
-
};
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
exports.getReferencesInExpression = getReferencesInExpression;
|
|
155
|
-
/**
|
|
156
|
-
* Parse a Terraform expression and return the AST. The expression does not need to be a Terraform string.
|
|
157
|
-
* @param filename The filename to use for the expression. This is used for error reporting.
|
|
158
|
-
* @param expression The expression to parse.
|
|
159
|
-
* @returns The AST for the expression.
|
|
160
|
-
*
|
|
161
|
-
* The returned AST has the following structure:
|
|
162
|
-
* - type: The type of the node. This is a string.
|
|
163
|
-
* - range: This contains the start and end of the node in the expression.
|
|
164
|
-
* - children: This contains the children of the node. This is an array of nodes.
|
|
165
|
-
* - meta: This contains metadata about the node. This is an object, and varies depending on the type of the node.
|
|
166
|
-
*/
|
|
167
|
-
async function getExpressionAst(filename, expression) {
|
|
168
|
-
const res = await wasm.getExpressionAst(filename, expression);
|
|
169
|
-
const ast = JSON.parse(res);
|
|
170
|
-
if (!ast) {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
return ast;
|
|
174
|
-
}
|
|
175
|
-
exports.getExpressionAst = getExpressionAst;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQywyQkFBMkI7QUFFM0IsY0FBYztBQUNkLCtDQUErQztBQUMvQyxrRUFBa0U7QUFFbEUsNkNBQStCO0FBQy9CLCtCQUFxQztBQUNyQywyQ0FBd0M7QUFDeEMsK0JBQWtDO0FBQ2xDLDZDQUFpRTtBQUVqRSxpQ0FBaUQ7QUFRakQsc0VBQXNFO0FBQ3RFLE1BQU0sTUFBTSxHQUE2QixFQUFFLENBQUM7QUFFNUMsU0FBUyxLQUFLO0lBQ1osT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsUUFBeUI7SUFDekMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWxCLEtBQUssVUFBVSxJQUFJO1FBQ2pCLHNGQUFzRjtRQUN0RixzQ0FBc0M7UUFDdEMsd0RBQWEsNkJBQTZCLEdBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsR0FBRyxJQUFLLE1BQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQztRQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxNQUFjLENBQUMsK0JBQStCLEdBQUcsTUFBTSxDQUFDO1FBQ3pELEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FB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QUUsQ0FBQyxDQUFDO0lBRXZELE1BQU0sSUFBSSxXQUFXLENBQUM7SUFFdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLG1DQUFzQixFQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFJLGlCQUFpQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3RCLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsR0FBRyxNQUFNO1lBQ3pDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxHQUFHLE1BQU07U0FDdEMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXBDRCw4REFvQ0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsUUFBZ0IsRUFDaEIsVUFBa0I7SUFFbEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFtQixDQUFDO0lBRTlDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQVpELDRDQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuLy8vIDxyZWZlcmVuY2UgbGliPVwiZG9tXCIgLz5cblxuLy8gSW5zcGlyZWQgYnlcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90cy10ZXJyYWZvcm0vdHMtdGVycmFmb3JtXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWFyb25wb3dlbGwvd2VicGFjay1nb2xhbmctd2FzbS1hc3luYy1sb2FkZXJcblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gXCIuL2RlZXBtZXJnZVwiO1xuaW1wb3J0IHsgZ3VuemlwU3luYyB9IGZyb20gXCJ6bGliXCI7XG5pbXBvcnQgeyBSZWZlcmVuY2UsIGZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QgfSBmcm9tIFwiLi9yZWZlcmVuY2VzXCI7XG5pbXBvcnQgeyBFeHByZXNzaW9uVHlwZSB9IGZyb20gXCIuL3N5bnRheC10cmVlXCI7XG5pbXBvcnQgeyB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbiB9IGZyb20gXCIuL3V0aWxcIjtcblxuaW50ZXJmYWNlIEdvQnJpZGdlIHtcbiAgcGFyc2U6IChmaWxlbmFtZTogc3RyaW5nLCBoY2w6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBwYXJzZUV4cHJlc3Npb246IChmaWxlbmFtZTogc3RyaW5nLCBoY2w6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBnZXRFeHByZXNzaW9uQXN0OiAoZmlsZW5hbWU6IHN0cmluZywgaGNsOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZnVuY3Rpb24tdHlwZVxuY29uc3QganNSb290OiBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj4gPSB7fTtcblxuZnVuY3Rpb24gc2xlZXAoKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgMCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnb0JyaWRnZShnZXRCeXRlczogUHJvbWlzZTxCdWZmZXI+KSB7XG4gIGxldCByZWFkeSA9IGZhbHNlO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgLy8gQWZ0ZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb2xhbmcvZ28vY29tbWl0LzY4MGNhZjE1MzU1MDU3Y2E4NDg1N2EyYTI5MWI2ZjVjNDRlNzMzMjlcbiAgICAvLyBHbyAxLjE5KyBoYXMgYSBkaWZmZXJlbnQgZW50cnlwb2ludFxuICAgIGF3YWl0IGltcG9ydChgLi4vd2FzbS9icmlkZ2Vfd2FzbV9leGVjLmpzYCk7XG4gICAgY29uc3QgZ28gPSBuZXcgKGdsb2JhbCBhcyBhbnkpLkdvKCk7XG4gICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBnZXRCeXRlcztcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShieXRlcywgZ28uaW1wb3J0T2JqZWN0KTtcbiAgICAoZ2xvYmFsIGFzIGFueSkuX19wYXJzZV90ZXJyYWZvcm1fY29uZmlnX3dhc21fXyA9IGpzUm9vdDtcbiAgICB2b2lkIGdvLnJ1bihyZXN1bHQuaW5zdGFuY2UpO1xuICAgIHJlYWR5ID0gdHJ1ZTtcbiAgfVxuXG4gIGluaXQoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSk7XG5cbiAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkoe30gYXMgR29CcmlkZ2UsIHtcbiAgICBnZXQ6IChfLCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICAgICAgd2hpbGUgKCFyZWFkeSkge1xuICAgICAgICAgIGF3YWl0IHNsZWVwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIShrZXkgaW4ganNSb290KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaGVyZSBpcyBub3RoaW5nIGRlZmluZWQgd2l0aCB0aGUgbmFtZSBcIiR7a2V5LnRvU3RyaW5nKCl9XCJgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGpzUm9vdFtrZXldICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICByZXR1cm4ganNSb290W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNiID0gKGVycjogc3RyaW5nLCAuLi5tc2c6IHN0cmluZ1tdKSA9PlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZXJyID8gcmVqZWN0KG5ldyBFcnJvcihlcnIpKSA6IHJlc29sdmUoLi4ubXNnKTtcblxuICAgICAgICAgIGNvbnN0IHJ1biA9ICgpID0+IHtcbiAgICAgICAgICAgIGpzUm9vdFtrZXldLmFwcGx5KHVuZGVmaW5lZCwgWy4uLmFyZ3MsIGNiXSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJ1bigpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHByb3h5O1xufVxuXG5jb25zdCBsb2FkV2FzbSA9IGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIGd1bnppcFN5bmMoYXdhaXQgZnMucmVhZEZpbGUoam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCJtYWluLndhc20uZ3pcIikpKTtcbn07XG5cbmNvbnN0IHdhc20gPSBnb0JyaWRnZShsb2FkV2FzbSgpKTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBjb250ZW50czogc3RyaW5nLFxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IHdhc20ucGFyc2UoZmlsZW5hbWUsIGNvbnRlbnRzKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRGaWxlcyhcbiAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGxldCB0ZkZpbGVDb250ZW50cyA9IFwiXCI7XG4gIGNvbnN0IHRmSlNPTkZpbGVDb250ZW50czogUmVjb3JkPHN0cmluZywgYW55PltdID0gW107XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZzLnJlYWRkaXJTeW5jKHdvcmtpbmdEaXJlY3RvcnkpKSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSByZXNvbHZlKHdvcmtpbmdEaXJlY3RvcnksIGZpbGUpO1xuICAgIGlmICghZnMubHN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBpZiAoZmlsZS5tYXRjaCgvXFwudGYkLykpIHtcbiAgICAgICAgdGZGaWxlQ29udGVudHMgKz0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICB0ZkZpbGVDb250ZW50cyArPSBcIlxcblwiO1xuICAgICAgfSBlbHNlIGlmIChmaWxlLm1hdGNoKC9cXC50ZlxcLmpzb24kLykpIHtcbiAgICAgICAgdGZKU09ORmlsZUNvbnRlbnRzLnB1c2goSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIFwidXRmLThcIikpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodGZGaWxlQ29udGVudHMgPT09IFwiXCIgJiYgdGZKU09ORmlsZUNvbnRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUuZXJyb3IoYE5vICcudGYnIG9yICcudGYuanNvbicgZmlsZXMgZm91bmQgaW4gJHt3b3JraW5nRGlyZWN0b3J5fWApO1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiBkZWVwTWVyZ2UoXG4gICAgYXdhaXQgcGFyc2UoXCJoY2wyanNvbi50ZlwiLCB0ZkZpbGVDb250ZW50cyksXG4gICAgLi4udGZKU09ORmlsZUNvbnRlbnRzLFxuICApO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgVGVycmFmb3JtIGV4cHJlc3Npb24gYW5kIHJldHVybiB0aGUgQVNULiBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgYSBzdHJpbmcgaW5wdXQsIGFuZCB3aWxsIHdyYXAgdGhlIGV4cHJlc3Npb24gaW4gcXVvdGVzIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHF1b3RlZC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBUaGUgZmlsZW5hbWUgdG8gdXNlIGZvciB0aGUgZXhwcmVzc2lvbi4gVGhpcyBpcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbiB0byBwYXJzZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIFJlZmVyZW5jZXMgZm91bmQgaW4gdGhlIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWZlcmVuY2VzSW5FeHByZXNzaW9uKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4pOiBQcm9taXNlPFJlZmVyZW5jZVtdPiB7XG4gIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyB0d2ljZSBiZWNhdXNlIG9mIHRoZSBwcm9ibGVtIHdpdGggSEVSRURPQ1NcbiAgLy8gT3VyIGN1cnJlbnQgaGNsMmpzb24gaW1wbGVtZW50YXRpb24gcmVtb3ZlcyBIRVJFRE9DUyBhbmQgcmVwbGFjZXMgdGhlbVxuICAvLyB3aXRoIGEgbXVsdGktbGluZSBzdHJpbmcsIHdoaWNoIGlzIGNhdXNpbmcgYWxsIGtpbmRzIG9mIHByb2JsZW1zXG4gIGxldCBvZmZzZXQgPSAwO1xuICBsZXQgcXVvdGVXcmFwcGVkRXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIGlmICghZXhwcmVzc2lvbi5zdGFydHNXaXRoKCdcIicpKSB7XG4gICAgcXVvdGVXcmFwcGVkRXhwcmVzc2lvbiA9IGBcIiR7ZXhwcmVzc2lvbn1cImA7XG4gICAgb2Zmc2V0ID0gMTtcbiAgfVxuXG4gIGNvbnN0IHsgd3JhcDogd3JhcHBlZEV4cHJlc3Npb24sIHdyYXBPZmZzZXQ6IHN0YXJ0T2Zmc2V0IH0gPVxuICAgIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKGAke3F1b3RlV3JhcHBlZEV4cHJlc3Npb259YCk7XG5cbiAgb2Zmc2V0ICs9IHN0YXJ0T2Zmc2V0O1xuXG4gIGNvbnN0IGFzdCA9IGF3YWl0IGdldEV4cHJlc3Npb25Bc3QoZmlsZW5hbWUsIHdyYXBwZWRFeHByZXNzaW9uKTtcbiAgaWYgKCFhc3QpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZWZzID0gZmluZEFsbFJlZmVyZW5jZXNJbkFzdChleHByZXNzaW9uLCBhc3QpO1xuICBpZiAod3JhcHBlZEV4cHJlc3Npb24gPT09IGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gcmVmcztcbiAgfVxuXG4gIHJldHVybiByZWZzLm1hcCgocmVmKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlZixcbiAgICAgIHN0YXJ0UG9zaXRpb246IHJlZi5zdGFydFBvc2l0aW9uIC0gb2Zmc2V0LFxuICAgICAgZW5kUG9zaXRpb246IHJlZi5lbmRQb3NpdGlvbiAtIG9mZnNldCxcbiAgICB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIFRlcnJhZm9ybSBleHByZXNzaW9uIGFuZCByZXR1cm4gdGhlIEFTVC4gVGhlIGV4cHJlc3Npb24gZG9lcyBub3QgbmVlZCB0byBiZSBhIFRlcnJhZm9ybSBzdHJpbmcuXG4gKiBAcGFyYW0gZmlsZW5hbWUgVGhlIGZpbGVuYW1lIHRvIHVzZSBmb3IgdGhlIGV4cHJlc3Npb24uIFRoaXMgaXMgdXNlZCBmb3IgZXJyb3IgcmVwb3J0aW5nLlxuICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgQVNUIGZvciB0aGUgZXhwcmVzc2lvbi5cbiAqXG4gKiAgIFRoZSByZXR1cm5lZCBBU1QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICogICAtIHR5cGU6IFRoZSB0eXBlIG9mIHRoZSBub2RlLiBUaGlzIGlzIGEgc3RyaW5nLlxuICogICAtIHJhbmdlOiBUaGlzIGNvbnRhaW5zIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBub2RlIGluIHRoZSBleHByZXNzaW9uLlxuICogICAtIGNoaWxkcmVuOiBUaGlzIGNvbnRhaW5zIHRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZS4gVGhpcyBpcyBhbiBhcnJheSBvZiBub2Rlcy5cbiAqICAgLSBtZXRhOiBUaGlzIGNvbnRhaW5zIG1ldGFkYXRhIGFib3V0IHRoZSBub2RlLiBUaGlzIGlzIGFuIG9iamVjdCwgYW5kIHZhcmllcyBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlIG5vZGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFeHByZXNzaW9uQXN0KFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4pOiBQcm9taXNlPEV4cHJlc3Npb25UeXBlIHwgbnVsbD4ge1xuICBjb25zdCByZXMgPSBhd2FpdCB3YXNtLmdldEV4cHJlc3Npb25Bc3QoZmlsZW5hbWUsIGV4cHJlc3Npb24pO1xuICBjb25zdCBhc3QgPSBKU09OLnBhcnNlKHJlcykgYXMgRXhwcmVzc2lvblR5cGU7XG5cbiAgaWYgKCFhc3QpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBhc3Q7XG59XG4iXX0=
|
package/lib/deepmerge.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepmerge.d.ts","sourceRoot":"","sources":["deepmerge.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OA+CvD"}
|
package/lib/deepmerge.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deepMerge = void 0;
|
|
4
|
-
// Copyright (c) HashiCorp, Inc
|
|
5
|
-
// SPDX-License-Identifier: MPL-2.0
|
|
6
|
-
/**
|
|
7
|
-
* Merges `source` into `target`, overriding any existing values.
|
|
8
|
-
* `undefined` will cause a value to be deleted.
|
|
9
|
-
*/
|
|
10
|
-
function deepMerge(target, ...sources) {
|
|
11
|
-
for (const source of sources) {
|
|
12
|
-
if (typeof source !== "object" || typeof target !== "object") {
|
|
13
|
-
throw new Error(`Invalid usage. Both source (${JSON.stringify(source)}) and target (${JSON.stringify(target)}) must be objects`);
|
|
14
|
-
}
|
|
15
|
-
for (const key of Object.keys(source)) {
|
|
16
|
-
const value = source[key];
|
|
17
|
-
if (typeof value === "object" && value != null && !Array.isArray(value)) {
|
|
18
|
-
// if the value at the target is not an object, override it with an
|
|
19
|
-
// object so we can continue the recursion
|
|
20
|
-
if (typeof target[key] !== "object") {
|
|
21
|
-
target[key] = {};
|
|
22
|
-
}
|
|
23
|
-
deepMerge(target[key], value);
|
|
24
|
-
// if the result of the merge is an empty object, it's because the
|
|
25
|
-
// eventual value we assigned is `undefined`, and there are no
|
|
26
|
-
// sibling concrete values alongside, so we can delete this tree.
|
|
27
|
-
const output = target[key];
|
|
28
|
-
if (typeof output === "object" && Object.keys(output).length === 0) {
|
|
29
|
-
delete target[key];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
else if (typeof value === "object" &&
|
|
33
|
-
value != null &&
|
|
34
|
-
Array.isArray(value)) {
|
|
35
|
-
if (Array.isArray(target[key])) {
|
|
36
|
-
target[key] = [...target[key], ...value];
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
target[key] = value;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else if (value === undefined) {
|
|
43
|
-
delete target[key];
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
target[key] = value;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return target;
|
|
51
|
-
}
|
|
52
|
-
exports.deepMerge = deepMerge;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcG1lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVlcG1lcmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkM7OztHQUdHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQVcsRUFBRSxHQUFHLE9BQWM7SUFDdEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksS0FBSyxDQUNiLCtCQUErQixJQUFJLENBQUMsU0FBUyxDQUMzQyxNQUFNLENBQ1AsaUJBQWlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4RSxtRUFBbUU7Z0JBQ25FLDBDQUEwQztnQkFDMUMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQztnQkFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUU5QixrRUFBa0U7Z0JBQ2xFLDhEQUE4RDtnQkFDOUQsaUVBQWlFO2dCQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNuRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFDTCxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUN6QixLQUFLLElBQUksSUFBSTtnQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNwQixDQUFDO2dCQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMvQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEvQ0QsOEJBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbi8qKlxuICogTWVyZ2VzIGBzb3VyY2VgIGludG8gYHRhcmdldGAsIG92ZXJyaWRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcy5cbiAqIGB1bmRlZmluZWRgIHdpbGwgY2F1c2UgYSB2YWx1ZSB0byBiZSBkZWxldGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSkge1xuICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCB1c2FnZS4gQm90aCBzb3VyY2UgKCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgc291cmNlLFxuICAgICAgICApfSkgYW5kIHRhcmdldCAoJHtKU09OLnN0cmluZ2lmeSh0YXJnZXQpfSkgbXVzdCBiZSBvYmplY3RzYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGF0IHRoZSB0YXJnZXQgaXMgbm90IGFuIG9iamVjdCwgb3ZlcnJpZGUgaXQgd2l0aCBhblxuICAgICAgICAvLyBvYmplY3Qgc28gd2UgY2FuIGNvbnRpbnVlIHRoZSByZWN1cnNpb25cbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXRba2V5XSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHRhcmdldFtrZXldID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBkZWVwTWVyZ2UodGFyZ2V0W2tleV0sIHZhbHVlKTtcblxuICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IG9mIHRoZSBtZXJnZSBpcyBhbiBlbXB0eSBvYmplY3QsIGl0J3MgYmVjYXVzZSB0aGVcbiAgICAgICAgLy8gZXZlbnR1YWwgdmFsdWUgd2UgYXNzaWduZWQgaXMgYHVuZGVmaW5lZGAsIGFuZCB0aGVyZSBhcmUgbm9cbiAgICAgICAgLy8gc2libGluZyBjb25jcmV0ZSB2YWx1ZXMgYWxvbmdzaWRlLCBzbyB3ZSBjYW4gZGVsZXRlIHRoaXMgdHJlZS5cbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gdGFyZ2V0W2tleV07XG4gICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0ID09PSBcIm9iamVjdFwiICYmIE9iamVjdC5rZXlzKG91dHB1dCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZGVsZXRlIHRhcmdldFtrZXldO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldFtrZXldKSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gWy4uLnRhcmdldFtrZXldLCAuLi52YWx1ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlbGV0ZSB0YXJnZXRba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cbiJdfQ==
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,sBAAsB,MAAM,eAAe,CAAC"}
|
package/lib/references.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["references.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKd,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,aAAa,EAClC,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,SAAS,GAAG,IAAI,CA8ClB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,EACvC,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,SAAS,EAAE,CAwCb"}
|
package/lib/references.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright (c) HashiCorp, Inc
|
|
3
|
-
// SPDX-License-Identifier: MPL-2.0
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.findAllReferencesInAst = exports.traversalToReference = void 0;
|
|
6
|
-
const syntax_tree_1 = require("./syntax-tree");
|
|
7
|
-
function traversalToReference(traversalExpression, localVariables) {
|
|
8
|
-
const meta = traversalExpression.meta;
|
|
9
|
-
// We do not want to include property access through brackets here
|
|
10
|
-
// although it is technically a traversal / reference
|
|
11
|
-
function onlyTakeTraversalPartsUntilFirstBracketPropertyAccess(traversals) {
|
|
12
|
-
const filtered = [];
|
|
13
|
-
const index = 0;
|
|
14
|
-
for (const traversal of traversals) {
|
|
15
|
-
if ("segment" in traversal) {
|
|
16
|
-
if (index === 0) {
|
|
17
|
-
// We are at the first traversal, check if it is a local variable
|
|
18
|
-
if (localVariables === null || localVariables === void 0 ? void 0 : localVariables.includes(traversal.segment)) {
|
|
19
|
-
// We reached a local variable, stop
|
|
20
|
-
return [];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
filtered.push(traversal);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
// We reached a bracket, stop
|
|
27
|
-
return filtered;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return filtered;
|
|
31
|
-
}
|
|
32
|
-
const filteredParts = onlyTakeTraversalPartsUntilFirstBracketPropertyAccess(meta.traversal);
|
|
33
|
-
if (filteredParts.length === 0) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
const startPosition = filteredParts[0].range.start.byte;
|
|
37
|
-
const endPosition = filteredParts[filteredParts.length - 1].range.end.byte;
|
|
38
|
-
return {
|
|
39
|
-
value: filteredParts.map((part) => part.segment).join("."),
|
|
40
|
-
startPosition,
|
|
41
|
-
endPosition,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
exports.traversalToReference = traversalToReference;
|
|
45
|
-
function findAllReferencesInAst(input, entry, localVariables) {
|
|
46
|
-
if (!entry) {
|
|
47
|
-
return [];
|
|
48
|
-
}
|
|
49
|
-
switch (entry.type) {
|
|
50
|
-
case "scopeTraversal": {
|
|
51
|
-
// For traversals within a for expression,
|
|
52
|
-
// we want to ignore the local variables of the for expression
|
|
53
|
-
const reference = traversalToReference(entry, localVariables);
|
|
54
|
-
if (reference)
|
|
55
|
-
return [reference];
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
case "for": {
|
|
59
|
-
const meta = entry.meta;
|
|
60
|
-
const additionalLocalVariables = [
|
|
61
|
-
meta.keyVar,
|
|
62
|
-
meta.valVar,
|
|
63
|
-
...(localVariables || []),
|
|
64
|
-
];
|
|
65
|
-
return [
|
|
66
|
-
...findAllReferencesInAst(input, (0, syntax_tree_1.getChildWithValue)(entry, meta.collectionExpression), additionalLocalVariables),
|
|
67
|
-
...findAllReferencesInAst(input, (0, syntax_tree_1.getChildWithValue)(entry, meta.conditionalExpression), additionalLocalVariables),
|
|
68
|
-
];
|
|
69
|
-
}
|
|
70
|
-
default:
|
|
71
|
-
return entry.children
|
|
72
|
-
.map((child) => findAllReferencesInAst(input, child, localVariables))
|
|
73
|
-
.flat();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.findAllReferencesInAst = findAllReferencesInAst;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7OztBQUVuQywrQ0FNdUI7QUFRdkIsU0FBZ0Isb0JBQW9CLENBQ2xDLG1CQUFrQyxFQUNsQyxjQUF5QjtJQUV6QixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxJQUFvQyxDQUFDO0lBRXRFLGtFQUFrRTtJQUNsRSxxREFBcUQ7SUFDckQsU0FBUyxxREFBcUQsQ0FDNUQsVUFBb0M7UUFFcEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVoQixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDaEIsaUVBQWlFO29CQUNqRSxJQUFJLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ2hELG9DQUFvQzt3QkFDcEMsT0FBTyxFQUFFLENBQUM7b0JBQ1osQ0FBQztnQkFDSCxDQUFDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDZCQUE2QjtnQkFDN0IsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcscURBQXFELENBQ3pFLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUVGLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFFM0UsT0FBTztRQUNMLEtBQUssRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUMxRCxhQUFhO1FBQ2IsV0FBVztLQUNaLENBQUM7QUFDSixDQUFDO0FBakRELG9EQWlEQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxLQUFhLEVBQ2IsS0FBdUMsRUFDdkMsY0FBeUI7SUFFekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDdEIsMENBQTBDO1lBQzFDLDhEQUE4RDtZQUM5RCxNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDOUQsSUFBSSxTQUFTO2dCQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBeUIsQ0FBQztZQUM3QyxNQUFNLHdCQUF3QixHQUFHO2dCQUMvQixJQUFJLENBQUMsTUFBTTtnQkFDWCxJQUFJLENBQUMsTUFBTTtnQkFDWCxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQzthQUMxQixDQUFDO1lBRUYsT0FBTztnQkFDTCxHQUFHLHNCQUFzQixDQUN2QixLQUFLLEVBQ0wsSUFBQSwrQkFBaUIsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQ25ELHdCQUF3QixDQUN6QjtnQkFDRCxHQUFHLHNCQUFzQixDQUN2QixLQUFLLEVBQ0wsSUFBQSwrQkFBaUIsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQ3BELHdCQUF3QixDQUN6QjthQUNGLENBQUM7UUFDSixDQUFDO1FBQ0Q7WUFDRSxPQUFPLEtBQUssQ0FBQyxRQUFRO2lCQUNsQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7aUJBQ3BFLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUE1Q0Qsd0RBNENDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0IHtcbiAgRXhwcmVzc2lvbkFzdCxcbiAgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uTWV0YSxcbiAgVGVycmFmb3JtVHJhdmVyc2FsUGFydCxcbiAgRm9yRXhwcmVzc2lvbk1ldGEsXG4gIGdldENoaWxkV2l0aFZhbHVlLFxufSBmcm9tIFwiLi9zeW50YXgtdHJlZVwiO1xuXG5leHBvcnQgdHlwZSBSZWZlcmVuY2UgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHN0YXJ0UG9zaXRpb246IG51bWJlcjtcbiAgZW5kUG9zaXRpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmF2ZXJzYWxUb1JlZmVyZW5jZShcbiAgdHJhdmVyc2FsRXhwcmVzc2lvbjogRXhwcmVzc2lvbkFzdCxcbiAgbG9jYWxWYXJpYWJsZXM/OiBzdHJpbmdbXSxcbik6IFJlZmVyZW5jZSB8IG51bGwge1xuICBjb25zdCBtZXRhID0gdHJhdmVyc2FsRXhwcmVzc2lvbi5tZXRhIGFzIFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGE7XG5cbiAgLy8gV2UgZG8gbm90IHdhbnQgdG8gaW5jbHVkZSBwcm9wZXJ0eSBhY2Nlc3MgdGhyb3VnaCBicmFja2V0cyBoZXJlXG4gIC8vIGFsdGhvdWdoIGl0IGlzIHRlY2huaWNhbGx5IGEgdHJhdmVyc2FsIC8gcmVmZXJlbmNlXG4gIGZ1bmN0aW9uIG9ubHlUYWtlVHJhdmVyc2FsUGFydHNVbnRpbEZpcnN0QnJhY2tldFByb3BlcnR5QWNjZXNzKFxuICAgIHRyYXZlcnNhbHM6IFRlcnJhZm9ybVRyYXZlcnNhbFBhcnRbXSxcbiAgKSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBbXTtcbiAgICBjb25zdCBpbmRleCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IHRyYXZlcnNhbCBvZiB0cmF2ZXJzYWxzKSB7XG4gICAgICBpZiAoXCJzZWdtZW50XCIgaW4gdHJhdmVyc2FsKSB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgIC8vIFdlIGFyZSBhdCB0aGUgZmlyc3QgdHJhdmVyc2FsLCBjaGVjayBpZiBpdCBpcyBhIGxvY2FsIHZhcmlhYmxlXG4gICAgICAgICAgaWYgKGxvY2FsVmFyaWFibGVzPy5pbmNsdWRlcyh0cmF2ZXJzYWwuc2VnbWVudCkpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlYWNoZWQgYSBsb2NhbCB2YXJpYWJsZSwgc3RvcFxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJlZC5wdXNoKHRyYXZlcnNhbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSByZWFjaGVkIGEgYnJhY2tldCwgc3RvcFxuICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkO1xuICB9XG5cbiAgY29uc3QgZmlsdGVyZWRQYXJ0cyA9IG9ubHlUYWtlVHJhdmVyc2FsUGFydHNVbnRpbEZpcnN0QnJhY2tldFByb3BlcnR5QWNjZXNzKFxuICAgIG1ldGEudHJhdmVyc2FsLFxuICApO1xuXG4gIGlmIChmaWx0ZXJlZFBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IGZpbHRlcmVkUGFydHNbMF0ucmFuZ2Uuc3RhcnQuYnl0ZTtcbiAgY29uc3QgZW5kUG9zaXRpb24gPSBmaWx0ZXJlZFBhcnRzW2ZpbHRlcmVkUGFydHMubGVuZ3RoIC0gMV0ucmFuZ2UuZW5kLmJ5dGU7XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogZmlsdGVyZWRQYXJ0cy5tYXAoKHBhcnQpID0+IHBhcnQuc2VnbWVudCkuam9pbihcIi5cIiksXG4gICAgc3RhcnRQb3NpdGlvbixcbiAgICBlbmRQb3NpdGlvbixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoXG4gIGlucHV0OiBzdHJpbmcsXG4gIGVudHJ5OiBFeHByZXNzaW9uQXN0IHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgbG9jYWxWYXJpYWJsZXM/OiBzdHJpbmdbXSxcbik6IFJlZmVyZW5jZVtdIHtcbiAgaWYgKCFlbnRyeSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHN3aXRjaCAoZW50cnkudHlwZSkge1xuICAgIGNhc2UgXCJzY29wZVRyYXZlcnNhbFwiOiB7XG4gICAgICAvLyBGb3IgdHJhdmVyc2FscyB3aXRoaW4gYSBmb3IgZXhwcmVzc2lvbixcbiAgICAgIC8vIHdlIHdhbnQgdG8gaWdub3JlIHRoZSBsb2NhbCB2YXJpYWJsZXMgb2YgdGhlIGZvciBleHByZXNzaW9uXG4gICAgICBjb25zdCByZWZlcmVuY2UgPSB0cmF2ZXJzYWxUb1JlZmVyZW5jZShlbnRyeSwgbG9jYWxWYXJpYWJsZXMpO1xuICAgICAgaWYgKHJlZmVyZW5jZSkgcmV0dXJuIFtyZWZlcmVuY2VdO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNhc2UgXCJmb3JcIjoge1xuICAgICAgY29uc3QgbWV0YSA9IGVudHJ5Lm1ldGEgYXMgRm9yRXhwcmVzc2lvbk1ldGE7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsTG9jYWxWYXJpYWJsZXMgPSBbXG4gICAgICAgIG1ldGEua2V5VmFyLFxuICAgICAgICBtZXRhLnZhbFZhcixcbiAgICAgICAgLi4uKGxvY2FsVmFyaWFibGVzIHx8IFtdKSxcbiAgICAgIF07XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgZ2V0Q2hpbGRXaXRoVmFsdWUoZW50cnksIG1ldGEuY29sbGVjdGlvbkV4cHJlc3Npb24pLFxuICAgICAgICAgIGFkZGl0aW9uYWxMb2NhbFZhcmlhYmxlcyxcbiAgICAgICAgKSxcbiAgICAgICAgLi4uZmluZEFsbFJlZmVyZW5jZXNJbkFzdChcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBnZXRDaGlsZFdpdGhWYWx1ZShlbnRyeSwgbWV0YS5jb25kaXRpb25hbEV4cHJlc3Npb24pLFxuICAgICAgICAgIGFkZGl0aW9uYWxMb2NhbFZhcmlhYmxlcyxcbiAgICAgICAgKSxcbiAgICAgIF07XG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZW50cnkuY2hpbGRyZW5cbiAgICAgICAgLm1hcCgoY2hpbGQpID0+IGZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoaW5wdXQsIGNoaWxkLCBsb2NhbFZhcmlhYmxlcykpXG4gICAgICAgIC5mbGF0KCk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/syntax-tree.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-tree.d.ts","sourceRoot":"","sources":["syntax-tree.ts"],"names":[],"mappings":"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"}
|
package/lib/syntax-tree.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getChildWithValue = exports.isIndexTraversalPart = exports.isNameTraversalPart = exports.isObjectExpression = exports.isTupleExpression = exports.isBinaryOpExpression = exports.isUnaryOpExpression = exports.isConditionalExpression = exports.isSplatExpression = exports.isIndexExpression = exports.isLiteralValueExpression = exports.isRelativeTraversalExpression = exports.isScopeTraversalExpression = exports.isFunctionCallExpression = exports.isTemplateExpression = exports.isTemplateWrapExpression = exports.isForExpression = void 0;
|
|
4
|
-
function isForExpression(ast) {
|
|
5
|
-
return ast.type === "for";
|
|
6
|
-
}
|
|
7
|
-
exports.isForExpression = isForExpression;
|
|
8
|
-
function isTemplateWrapExpression(ast) {
|
|
9
|
-
return ast.type === "templateWrap";
|
|
10
|
-
}
|
|
11
|
-
exports.isTemplateWrapExpression = isTemplateWrapExpression;
|
|
12
|
-
function isTemplateExpression(ast) {
|
|
13
|
-
return ast.type === "template";
|
|
14
|
-
}
|
|
15
|
-
exports.isTemplateExpression = isTemplateExpression;
|
|
16
|
-
function isFunctionCallExpression(ast) {
|
|
17
|
-
return ast.type === "function";
|
|
18
|
-
}
|
|
19
|
-
exports.isFunctionCallExpression = isFunctionCallExpression;
|
|
20
|
-
function isScopeTraversalExpression(ast) {
|
|
21
|
-
return ast.type === "scopeTraversal";
|
|
22
|
-
}
|
|
23
|
-
exports.isScopeTraversalExpression = isScopeTraversalExpression;
|
|
24
|
-
function isRelativeTraversalExpression(ast) {
|
|
25
|
-
return ast.type === "relativeTraversal";
|
|
26
|
-
}
|
|
27
|
-
exports.isRelativeTraversalExpression = isRelativeTraversalExpression;
|
|
28
|
-
function isLiteralValueExpression(ast) {
|
|
29
|
-
return ast.type === "literalValue";
|
|
30
|
-
}
|
|
31
|
-
exports.isLiteralValueExpression = isLiteralValueExpression;
|
|
32
|
-
function isIndexExpression(ast) {
|
|
33
|
-
return ast.type === "index";
|
|
34
|
-
}
|
|
35
|
-
exports.isIndexExpression = isIndexExpression;
|
|
36
|
-
function isSplatExpression(ast) {
|
|
37
|
-
return ast.type === "splat";
|
|
38
|
-
}
|
|
39
|
-
exports.isSplatExpression = isSplatExpression;
|
|
40
|
-
function isConditionalExpression(ast) {
|
|
41
|
-
return ast.type === "conditional";
|
|
42
|
-
}
|
|
43
|
-
exports.isConditionalExpression = isConditionalExpression;
|
|
44
|
-
function isUnaryOpExpression(ast) {
|
|
45
|
-
return ast.type === "unaryOp";
|
|
46
|
-
}
|
|
47
|
-
exports.isUnaryOpExpression = isUnaryOpExpression;
|
|
48
|
-
function isBinaryOpExpression(ast) {
|
|
49
|
-
return ast.type === "binaryOp";
|
|
50
|
-
}
|
|
51
|
-
exports.isBinaryOpExpression = isBinaryOpExpression;
|
|
52
|
-
function isTupleExpression(ast) {
|
|
53
|
-
return ast.type === "tuple";
|
|
54
|
-
}
|
|
55
|
-
exports.isTupleExpression = isTupleExpression;
|
|
56
|
-
function isObjectExpression(part) {
|
|
57
|
-
return part.type === "object";
|
|
58
|
-
}
|
|
59
|
-
exports.isObjectExpression = isObjectExpression;
|
|
60
|
-
function isNameTraversalPart(part) {
|
|
61
|
-
return part.type === "nameTraversal";
|
|
62
|
-
}
|
|
63
|
-
exports.isNameTraversalPart = isNameTraversalPart;
|
|
64
|
-
function isIndexTraversalPart(part) {
|
|
65
|
-
return part.type === "indexTraversal";
|
|
66
|
-
}
|
|
67
|
-
exports.isIndexTraversalPart = isIndexTraversalPart;
|
|
68
|
-
function getChildWithValue(node, value) {
|
|
69
|
-
if (!node.children) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
return node.children.find((child) => {
|
|
73
|
-
if (!child.meta)
|
|
74
|
-
return false;
|
|
75
|
-
return child.meta.value === value;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
exports.getChildWithValue = getChildWithValue;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGF4LXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50YXgtdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0TkEsU0FBZ0IsZUFBZSxDQUFDLEdBQW1CO0lBQ2pELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDckMsQ0FBQztBQUpELDREQUlDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUpELG9EQUlDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUpELDREQUlDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQ3hDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQztBQUN2QyxDQUFDO0FBSkQsZ0VBSUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FDM0MsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDO0FBQzFDLENBQUM7QUFKRCxzRUFJQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0FBQ3JDLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEdBQW1CO0lBQ25ELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDOUIsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsR0FBbUI7SUFDbkQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUM5QixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUNwQyxDQUFDO0FBSkQsMERBSUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBSkQsa0RBSUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FDbEMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBSkQsb0RBSUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFtQjtJQUNuRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxJQUFvQjtJQUVwQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2hDLENBQUM7QUFKRCxnREFJQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxJQUE0QjtJQUU1QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDO0FBQ3ZDLENBQUM7QUFKRCxrREFJQztBQUVELFNBQWdCLG9CQUFvQixDQUNsQyxJQUE0QjtJQUU1QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUM7QUFDeEMsQ0FBQztBQUpELG9EQUlDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBbUIsRUFBRSxLQUFhO0lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVRELDhDQVNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuZXhwb3J0IHR5cGUgQ29kZU1hcmtlciA9IHtcbiAgYnl0ZTogbnVtYmVyO1xuICBsaW5lOiBudW1iZXI7XG4gIGNvbHVtbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29kZVJhbmdlID0ge1xuICBlbmQ6IENvZGVNYXJrZXI7XG4gIHN0YXJ0OiBDb2RlTWFya2VyO1xufTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtVHJhdmVyc2FsUGFydENvbW1vbiA9IHtcbiAgc2VnbWVudDogc3RyaW5nO1xuICByYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtTmFtZVRyYXZlcnNhbFBhcnQgPSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0Q29tbW9uICYge1xuICB0eXBlOiBcIm5hbWVUcmF2ZXJzYWxcIjtcbn07XG5leHBvcnQgdHlwZSBUZXJyYWZvcm1JbmRleFRyYXZlcnNhbFBhcnQgPSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0Q29tbW9uICYge1xuICB0eXBlOiBcImluZGV4VHJhdmVyc2FsXCI7XG59O1xuXG5leHBvcnQgdHlwZSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0ID1cbiAgfCBUZXJyYWZvcm1OYW1lVHJhdmVyc2FsUGFydFxuICB8IFRlcnJhZm9ybUluZGV4VHJhdmVyc2FsUGFydDtcblxuLy8gRXhwcmVzc2lvbiBNZXRhIFR5cGVzXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uTWV0YSA9IHtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZvckV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGtleVZhcjogc3RyaW5nO1xuICB2YWxWYXI6IHN0cmluZztcbiAgY29sbGVjdGlvbkV4cHJlc3Npb246IHN0cmluZztcbiAgY29uZGl0aW9uYWxFeHByZXNzaW9uOiBzdHJpbmc7XG4gIHZhbHVlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBrZXlFeHByZXNzaW9uOiBzdHJpbmc7XG4gIGdyb3VwZWRWYWx1ZTogYm9vbGVhbjtcbiAgb3BlblJhbmdlOiBDb2RlUmFuZ2U7XG4gIG9wZW5SYW5nZVZhbHVlOiBzdHJpbmc7XG4gIGNsb3NlUmFuZ2U6IENvZGVSYW5nZTtcbiAgY2xvc2VSYW5nZVZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGdW5jdGlvbkNhbGxNZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZXhwYW5kZWRGaW5hbEFyZ3VtZW50OiBzdHJpbmc7XG4gIG5hbWVSYW5nZTogQ29kZVJhbmdlO1xuICBvcGVuUGFyZW5SYW5nZTogQ29kZVJhbmdlO1xuICBjbG9zZVBhcmVuUmFuZ2U6IENvZGVSYW5nZTtcbiAgYXJnc1JhbmdlczogQ29kZVJhbmdlW107XG59O1xuXG5leHBvcnQgdHlwZSBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGZ1bGxBY2Nlc3Nvcjogc3RyaW5nO1xuICB0cmF2ZXJzYWw6IFRlcnJhZm9ybVRyYXZlcnNhbFBhcnRbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgZnVsbEFjY2Vzc29yOiBzdHJpbmc7XG4gIHRyYXZlcnNhbDogVGVycmFmb3JtVHJhdmVyc2FsUGFydFtdO1xuICBzb3VyY2VFeHByZXNzaW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBMaXRlcmFsVmFsdWVFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICB0eXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbmRleEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGtleUV4cHJlc3Npb246IHN0cmluZztcbiAgY29sbGVjdGlvbkV4cHJlc3Npb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNwbGF0RXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgc291cmNlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBlYWNoRXhwcmVzc2lvbjogc3RyaW5nO1xuICBhbm9uU3ltYm9sRXhwcmVzc2lvbjogc3RyaW5nO1xuICBtYXJrZXJSYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZGl0aW9uYWxFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBjb25kaXRpb25FeHByZXNzaW9uOiBzdHJpbmc7XG4gIHRydWVFeHByZXNzaW9uOiBzdHJpbmc7XG4gIGZhbHNlRXhwcmVzc2lvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVW5hcnlPcEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHZhbHVlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBzeW1ib2xSYW5nZTogQ29kZVJhbmdlO1xuICByZXR1cm5UeXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBCaW5hcnlPcEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHJldHVyblR5cGU6IHN0cmluZztcbiAgbGhzRXhwcmVzc2lvbjogc3RyaW5nO1xuICByaHNFeHByZXNzaW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBPYmplY3RFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBpdGVtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1ldGFUeXBlID1cbiAgfCBFeHByZXNzaW9uTWV0YVxuICB8IFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGFcbiAgfCBGb3JFeHByZXNzaW9uTWV0YVxuICB8IEZ1bmN0aW9uQ2FsbE1ldGFcbiAgfCBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhXG4gIHwgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbk1ldGFcbiAgfCBJbmRleEV4cHJlc3Npb25NZXRhXG4gIHwgU3BsYXRFeHByZXNzaW9uTWV0YVxuICB8IENvbmRpdGlvbmFsRXhwcmVzc2lvbk1ldGFcbiAgfCBVbmFyeU9wRXhwcmVzc2lvbk1ldGFcbiAgfCBCaW5hcnlPcEV4cHJlc3Npb25NZXRhXG4gIHwgT2JqZWN0RXhwcmVzc2lvbk1ldGE7XG5cbmV4cG9ydCB0eXBlIENvbW1vbkV4cHJlc3Npb25Bc3QgPSB7XG4gIGNoaWxkcmVuOiBFeHByZXNzaW9uVHlwZVtdO1xuICByYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbkFzdCA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IHN0cmluZztcbiAgbWV0YTogTWV0YVR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVdyYXBFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJ0ZW1wbGF0ZVdyYXBcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIFRlbXBsYXRlRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidGVtcGxhdGVcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIFR1cGxlRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidHVwbGVcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIEZvckV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImZvclwiO1xuICBtZXRhOiBGb3JFeHByZXNzaW9uTWV0YTtcbn07XG5cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImZ1bmN0aW9uXCI7XG4gIG1ldGE6IEZ1bmN0aW9uQ2FsbE1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInNjb3BlVHJhdmVyc2FsXCI7XG4gIG1ldGE6IFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInJlbGF0aXZlVHJhdmVyc2FsXCI7XG4gIG1ldGE6IFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBMaXRlcmFsVmFsdWVFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJsaXRlcmFsVmFsdWVcIjtcbiAgbWV0YTogTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBJbmRleEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImluZGV4XCI7XG4gIG1ldGE6IEluZGV4RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBTcGxhdEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInNwbGF0XCI7XG4gIG1ldGE6IFNwbGF0RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBDb25kaXRpb25hbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImNvbmRpdGlvbmFsXCI7XG4gIG1ldGE6IENvbmRpdGlvbmFsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBVbmFyeU9wRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidW5hcnlPcFwiO1xuICBtZXRhOiBVbmFyeU9wRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBCaW5hcnlPcEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImJpbmFyeU9wXCI7XG4gIG1ldGE6IEJpbmFyeU9wRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBPYmplY3RFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJvYmplY3RcIjtcbiAgbWV0YTogT2JqZWN0RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uVHlwZSA9XG4gIHwgRm9yRXhwcmVzc2lvblxuICB8IFRlbXBsYXRlV3JhcEV4cHJlc3Npb25cbiAgfCBUZW1wbGF0ZUV4cHJlc3Npb25cbiAgfCBGdW5jdGlvbkNhbGxFeHByZXNzaW9uXG4gIHwgVHVwbGVFeHByZXNzaW9uXG4gIHwgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uXG4gIHwgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uXG4gIHwgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvblxuICB8IEluZGV4RXhwcmVzc2lvblxuICB8IFNwbGF0RXhwcmVzc2lvblxuICB8IENvbmRpdGlvbmFsRXhwcmVzc2lvblxuICB8IFVuYXJ5T3BFeHByZXNzaW9uXG4gIHwgQmluYXJ5T3BFeHByZXNzaW9uXG4gIHwgT2JqZWN0RXhwcmVzc2lvbjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9yRXhwcmVzc2lvbihhc3Q6IEV4cHJlc3Npb25UeXBlKTogYXN0IGlzIEZvckV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwiZm9yXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlV3JhcEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgVGVtcGxhdGVXcmFwRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJ0ZW1wbGF0ZVdyYXBcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFRlbXBsYXRlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJ0ZW1wbGF0ZVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbkNhbGxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwiZnVuY3Rpb25cIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJzY29wZVRyYXZlcnNhbFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcInJlbGF0aXZlVHJhdmVyc2FsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xpdGVyYWxWYWx1ZUV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJsaXRlcmFsVmFsdWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5kZXhFeHByZXNzaW9uKGFzdDogRXhwcmVzc2lvblR5cGUpOiBhc3QgaXMgSW5kZXhFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImluZGV4XCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NwbGF0RXhwcmVzc2lvbihhc3Q6IEV4cHJlc3Npb25UeXBlKTogYXN0IGlzIFNwbGF0RXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJzcGxhdFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25kaXRpb25hbEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgQ29uZGl0aW9uYWxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImNvbmRpdGlvbmFsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuYXJ5T3BFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFVuYXJ5T3BFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcInVuYXJ5T3BcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQmluYXJ5T3BFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIEJpbmFyeU9wRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJiaW5hcnlPcFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUdXBsZUV4cHJlc3Npb24oYXN0OiBFeHByZXNzaW9uVHlwZSk6IGFzdCBpcyBUdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwidHVwbGVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0RXhwcmVzc2lvbihcbiAgcGFydDogRXhwcmVzc2lvblR5cGUsXG4pOiBwYXJ0IGlzIE9iamVjdEV4cHJlc3Npb24ge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcIm9iamVjdFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOYW1lVHJhdmVyc2FsUGFydChcbiAgcGFydDogVGVycmFmb3JtVHJhdmVyc2FsUGFydCxcbik6IHBhcnQgaXMgVGVycmFmb3JtTmFtZVRyYXZlcnNhbFBhcnQge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcIm5hbWVUcmF2ZXJzYWxcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5kZXhUcmF2ZXJzYWxQYXJ0KFxuICBwYXJ0OiBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0LFxuKTogcGFydCBpcyBUZXJyYWZvcm1JbmRleFRyYXZlcnNhbFBhcnQge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcImluZGV4VHJhdmVyc2FsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGlsZFdpdGhWYWx1ZShub2RlOiBFeHByZXNzaW9uQXN0LCB2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUuY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IHtcbiAgICBpZiAoIWNoaWxkLm1ldGEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2hpbGQubWV0YS52YWx1ZSA9PT0gdmFsdWU7XG4gIH0pO1xufVxuIl19
|
package/lib/util.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAoCA"}
|
package/lib/util.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) HashiCorp, Inc.
|
|
4
|
-
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.wrapTerraformExpression = exports.replaceQuotes = void 0;
|
|
8
|
-
/**
|
|
9
|
-
* This function is used to escape quotes within a string.
|
|
10
|
-
* Note: This is a really naive implmentation that will not be able to work with
|
|
11
|
-
* nested templates. However, nested templates require parsing, so we will
|
|
12
|
-
* only handle strings without nested templates for the moment
|
|
13
|
-
* @param input The string to escape
|
|
14
|
-
*/
|
|
15
|
-
function replaceQuotes(input) {
|
|
16
|
-
const fullyQuotedMatch = /^(\s*")(.*)("\s*)$/.exec(input);
|
|
17
|
-
const hasTemplate = /(?<!\$)\$\{/.test(input);
|
|
18
|
-
if (fullyQuotedMatch !== null && !hasTemplate) {
|
|
19
|
-
return `${fullyQuotedMatch[1]}${fullyQuotedMatch[2].replace(/"/g, `\\"`)}${fullyQuotedMatch[3]}`;
|
|
20
|
-
}
|
|
21
|
-
return input;
|
|
22
|
-
}
|
|
23
|
-
exports.replaceQuotes = replaceQuotes;
|
|
24
|
-
/**
|
|
25
|
-
* This function is used to wrap a string in quotes conditionally.
|
|
26
|
-
* - If the string is already quoted, it will be returned as-is.
|
|
27
|
-
* - If the string contains a newline, it will be wrapped in a heredoc.
|
|
28
|
-
* - If the string is a number, it will be returned as-is.
|
|
29
|
-
* - If the string is a boolean, it will be returned as-is.
|
|
30
|
-
* - If the string is a list or map, it will be returned as-is.
|
|
31
|
-
*
|
|
32
|
-
* @param input The string to wrap
|
|
33
|
-
* @returns The wrapped string, and the offset of the cursor within the string
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* wrapTerraformExpression("foo") // { wrap: '"foo"', wrapOffset: 1 }
|
|
37
|
-
* wrapTerraformExpression("foo\nbar") // { wrap: '<<EOE\nfoo\nbar\nEOE\n', wrapOffset: 5 }
|
|
38
|
-
* wrapTerraformExpression("22") // { wrap: '22', wrapOffset: 0 }
|
|
39
|
-
* wrapTerraformExpression("true") // { wrap: 'true', wrapOffset: 0 }
|
|
40
|
-
* wrapTerraformExpression("[22, 10]") // { wrap: '[22, 10]', wrapOffset: 0 }
|
|
41
|
-
* wrapTerraformExpression("{ foo = 22 }") // { wrap: '{ foo = 22 }', wrapOffset: 0 }
|
|
42
|
-
*/
|
|
43
|
-
function wrapTerraformExpression(input) {
|
|
44
|
-
input = replaceQuotes(input);
|
|
45
|
-
if (!isNaN(Number(input))) {
|
|
46
|
-
return { wrap: input, wrapOffset: 0 };
|
|
47
|
-
}
|
|
48
|
-
if (input === "true" || input === "false") {
|
|
49
|
-
return { wrap: input, wrapOffset: 0 };
|
|
50
|
-
}
|
|
51
|
-
if (input.startsWith(`"`)) {
|
|
52
|
-
if (input.indexOf("\n") >= 0) {
|
|
53
|
-
const trimWrapped = input.substring(1, input.length - 1);
|
|
54
|
-
return {
|
|
55
|
-
wrap: `<<EOE\n${trimWrapped}\nEOE\n`,
|
|
56
|
-
wrapOffset: 5,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return { wrap: input, wrapOffset: 0 };
|
|
60
|
-
}
|
|
61
|
-
if (input.startsWith("[") || input.startsWith("{")) {
|
|
62
|
-
return { wrap: input, wrapOffset: 0 };
|
|
63
|
-
}
|
|
64
|
-
if (input.startsWith("<<")) {
|
|
65
|
-
// For Heredocs, we need to ensure that the string ends with an empty newline as
|
|
66
|
-
// the HCL parser doesn't find the ending token otherwise
|
|
67
|
-
if (!input.endsWith("\n")) {
|
|
68
|
-
return { wrap: input + "\n", wrapOffset: 0 };
|
|
69
|
-
}
|
|
70
|
-
return { wrap: input, wrapOffset: 0 };
|
|
71
|
-
}
|
|
72
|
-
return { wrap: `"${input}"`, wrapOffset: 1 };
|
|
73
|
-
}
|
|
74
|
-
exports.wrapTerraformExpression = wrapTerraformExpression;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUg7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLGdCQUFnQixLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUN0RSxnQkFBZ0IsQ0FBQyxDQUFDLENBQ3BCLEVBQUUsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFYRCxzQ0FXQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxLQUFhO0lBSW5ELEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFVBQVUsV0FBVyxTQUFTO2dCQUNwQyxVQUFVLEVBQUUsQ0FBQzthQUNkLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0IsZ0ZBQWdGO1FBQ2hGLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDO0FBdkNELDBEQXVDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZXNjYXBlIHF1b3RlcyB3aXRoaW4gYSBzdHJpbmcuXG4gKiAgTm90ZTogVGhpcyBpcyBhIHJlYWxseSBuYWl2ZSBpbXBsbWVudGF0aW9uIHRoYXQgd2lsbCBub3QgYmUgYWJsZSB0byB3b3JrIHdpdGhcbiAqICAgIG5lc3RlZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIsIG5lc3RlZCB0ZW1wbGF0ZXMgcmVxdWlyZSBwYXJzaW5nLCBzbyB3ZSB3aWxsXG4gKiAgICBvbmx5IGhhbmRsZSBzdHJpbmdzIHdpdGhvdXQgbmVzdGVkIHRlbXBsYXRlcyBmb3IgdGhlIG1vbWVudFxuICogQHBhcmFtIGlucHV0IFRoZSBzdHJpbmcgdG8gZXNjYXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlUXVvdGVzKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmdWxseVF1b3RlZE1hdGNoID0gL14oXFxzKlwiKSguKikoXCJcXHMqKSQvLmV4ZWMoaW5wdXQpO1xuICBjb25zdCBoYXNUZW1wbGF0ZSA9IC8oPzwhXFwkKVxcJFxcey8udGVzdChpbnB1dCk7XG5cbiAgaWYgKGZ1bGx5UXVvdGVkTWF0Y2ggIT09IG51bGwgJiYgIWhhc1RlbXBsYXRlKSB7XG4gICAgcmV0dXJuIGAke2Z1bGx5UXVvdGVkTWF0Y2hbMV19JHtmdWxseVF1b3RlZE1hdGNoWzJdLnJlcGxhY2UoL1wiL2csIGBcXFxcXCJgKX0ke1xuICAgICAgZnVsbHlRdW90ZWRNYXRjaFszXVxuICAgIH1gO1xuICB9XG5cbiAgcmV0dXJuIGlucHV0O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byB3cmFwIGEgc3RyaW5nIGluIHF1b3RlcyBjb25kaXRpb25hbGx5LlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhbHJlYWR5IHF1b3RlZCwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqICAtIElmIHRoZSBzdHJpbmcgY29udGFpbnMgYSBuZXdsaW5lLCBpdCB3aWxsIGJlIHdyYXBwZWQgaW4gYSBoZXJlZG9jLlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhIG51bWJlciwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqICAtIElmIHRoZSBzdHJpbmcgaXMgYSBib29sZWFuLCBpdCB3aWxsIGJlIHJldHVybmVkIGFzLWlzLlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhIGxpc3Qgb3IgbWFwLCBpdCB3aWxsIGJlIHJldHVybmVkIGFzLWlzLlxuICpcbiAqIEBwYXJhbSBpbnB1dCBUaGUgc3RyaW5nIHRvIHdyYXBcbiAqIEByZXR1cm5zIFRoZSB3cmFwcGVkIHN0cmluZywgYW5kIHRoZSBvZmZzZXQgb2YgdGhlIGN1cnNvciB3aXRoaW4gdGhlIHN0cmluZ1xuICpcbiAqIEBleGFtcGxlXG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcImZvb1wiKSAvLyB7IHdyYXA6ICdcImZvb1wiJywgd3JhcE9mZnNldDogMSB9XG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcImZvb1xcbmJhclwiKSAvLyB7IHdyYXA6ICc8PEVPRVxcbmZvb1xcbmJhclxcbkVPRVxcbicsIHdyYXBPZmZzZXQ6IDUgfVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCIyMlwiKSAvLyB7IHdyYXA6ICcyMicsIHdyYXBPZmZzZXQ6IDAgfVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCJ0cnVlXCIpIC8vIHsgd3JhcDogJ3RydWUnLCB3cmFwT2Zmc2V0OiAwIH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwiWzIyLCAxMF1cIikgLy8geyB3cmFwOiAnWzIyLCAxMF0nLCB3cmFwT2Zmc2V0OiAwIH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwieyBmb28gPSAyMiB9XCIpIC8vIHsgd3JhcDogJ3sgZm9vID0gMjIgfScsIHdyYXBPZmZzZXQ6IDAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oaW5wdXQ6IHN0cmluZyk6IHtcbiAgd3JhcDogc3RyaW5nO1xuICB3cmFwT2Zmc2V0OiBudW1iZXI7XG59IHtcbiAgaW5wdXQgPSByZXBsYWNlUXVvdGVzKGlucHV0KTtcblxuICBpZiAoIWlzTmFOKE51bWJlcihpbnB1dCkpKSB7XG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuICBpZiAoaW5wdXQgPT09IFwidHJ1ZVwiIHx8IGlucHV0ID09PSBcImZhbHNlXCIpIHtcbiAgICByZXR1cm4geyB3cmFwOiBpbnB1dCwgd3JhcE9mZnNldDogMCB9O1xuICB9XG5cbiAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoYFwiYCkpIHtcbiAgICBpZiAoaW5wdXQuaW5kZXhPZihcIlxcblwiKSA+PSAwKSB7XG4gICAgICBjb25zdCB0cmltV3JhcHBlZCA9IGlucHV0LnN1YnN0cmluZygxLCBpbnB1dC5sZW5ndGggLSAxKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdyYXA6IGA8PEVPRVxcbiR7dHJpbVdyYXBwZWR9XFxuRU9FXFxuYCxcbiAgICAgICAgd3JhcE9mZnNldDogNSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7IHdyYXA6IGlucHV0LCB3cmFwT2Zmc2V0OiAwIH07XG4gIH1cblxuICBpZiAoaW5wdXQuc3RhcnRzV2l0aChcIltcIikgfHwgaW5wdXQuc3RhcnRzV2l0aChcIntcIikpIHtcbiAgICByZXR1cm4geyB3cmFwOiBpbnB1dCwgd3JhcE9mZnNldDogMCB9O1xuICB9XG5cbiAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoXCI8PFwiKSkge1xuICAgIC8vIEZvciBIZXJlZG9jcywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhbiBlbXB0eSBuZXdsaW5lIGFzXG4gICAgLy8gdGhlIEhDTCBwYXJzZXIgZG9lc24ndCBmaW5kIHRoZSBlbmRpbmcgdG9rZW4gb3RoZXJ3aXNlXG4gICAgaWYgKCFpbnB1dC5lbmRzV2l0aChcIlxcblwiKSkge1xuICAgICAgcmV0dXJuIHsgd3JhcDogaW5wdXQgKyBcIlxcblwiLCB3cmFwT2Zmc2V0OiAwIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHdyYXA6IGBcIiR7aW5wdXR9XCJgLCB3cmFwT2Zmc2V0OiAxIH07XG59XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{lib → build}/util.d.ts
RENAMED
|
File without changes
|