@cdktn/hcl2json 0.23.0-pre.8 → 0.24.0-pre.1

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/wasm/wasm_exec.js CHANGED
@@ -14,13 +14,13 @@
14
14
  if (!globalThis.fs) {
15
15
  let outputBuf = "";
16
16
  globalThis.fs = {
17
- constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused
17
+ constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1, O_DIRECTORY: -1 }, // unused
18
18
  writeSync(fd, buf) {
19
19
  outputBuf += decoder.decode(buf);
20
20
  const nl = outputBuf.lastIndexOf("\n");
21
21
  if (nl != -1) {
22
- console.log(outputBuf.substr(0, nl));
23
- outputBuf = outputBuf.substr(nl + 1);
22
+ console.log(outputBuf.substring(0, nl));
23
+ outputBuf = outputBuf.substring(nl + 1);
24
24
  }
25
25
  return buf.length;
26
26
  },
@@ -73,6 +73,14 @@
73
73
  }
74
74
  }
75
75
 
76
+ if (!globalThis.path) {
77
+ globalThis.path = {
78
+ resolve(...pathSegments) {
79
+ return pathSegments.join("/");
80
+ }
81
+ }
82
+ }
83
+
76
84
  if (!globalThis.crypto) {
77
85
  throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");
78
86
  }
@@ -113,6 +121,10 @@
113
121
  this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);
114
122
  }
115
123
 
124
+ const setInt32 = (addr, v) => {
125
+ this.mem.setUint32(addr + 0, v, true);
126
+ }
127
+
116
128
  const getInt64 = (addr) => {
117
129
  const low = this.mem.getUint32(addr + 0, true);
118
130
  const high = this.mem.getInt32(addr + 4, true);
@@ -204,9 +216,18 @@
204
216
  return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));
205
217
  }
206
218
 
219
+ const testCallExport = (a, b) => {
220
+ this._inst.exports.testExport0();
221
+ return this._inst.exports.testExport(a, b);
222
+ }
223
+
207
224
  const timeOrigin = Date.now() - performance.now();
208
225
  this.importObject = {
209
- go: {
226
+ _gotest: {
227
+ add: (a, b) => a + b,
228
+ callExport: testCallExport,
229
+ },
230
+ gojs: {
210
231
  // Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters)
211
232
  // may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported
212
233
  // function. A goroutine can switch to a new stack if the current stack is too small (see morestack function).
@@ -269,7 +290,7 @@
269
290
  this._resume();
270
291
  }
271
292
  },
272
- getInt64(sp + 8) + 1, // setTimeout has been seen to fire up to 1 millisecond early
293
+ getInt64(sp + 8),
273
294
  ));
274
295
  this.mem.setInt32(sp + 16, id, true);
275
296
  },
@@ -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,177 +0,0 @@
1
- "use strict";
2
- // Copyright (c) HashiCorp, Inc
3
- // SPDX-License-Identifier: MPL-2.0
4
- // eslint-disable-next-line @typescript-eslint/triple-slash-reference
5
- /// <reference lib="dom" />
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.getExpressionAst = exports.getReferencesInExpression = exports.convertFiles = exports.parse = void 0;
31
- // Inspired by
32
- // https://github.com/ts-terraform/ts-terraform
33
- // https://github.com/aaronpowell/webpack-golang-wasm-async-loader
34
- const fs = __importStar(require("fs-extra"));
35
- const path_1 = require("path");
36
- const deepmerge_1 = require("./deepmerge");
37
- const zlib_1 = require("zlib");
38
- const references_1 = require("./references");
39
- const util_1 = require("./util");
40
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
41
- const jsRoot = {};
42
- function sleep() {
43
- return new Promise((resolve) => {
44
- setTimeout(resolve, 0);
45
- });
46
- }
47
- function goBridge(getBytes) {
48
- let ready = false;
49
- async function init() {
50
- // After: https://github.com/golang/go/commit/680caf15355057ca84857a2a291b6f5c44e73329
51
- // Go 1.19+ has a different entrypoint
52
- await Promise.resolve().then(() => __importStar(require(`../wasm/bridge_wasm_exec.js`)));
53
- const go = new global.Go();
54
- const bytes = await getBytes;
55
- const result = await WebAssembly.instantiate(bytes, go.importObject);
56
- global.__parse_terraform_config_wasm__ = jsRoot;
57
- void go.run(result.instance);
58
- ready = true;
59
- }
60
- init().catch((error) => {
61
- throw error;
62
- });
63
- const proxy = new Proxy({}, {
64
- get: (_, key) => {
65
- return async (...args) => {
66
- while (!ready) {
67
- await sleep();
68
- }
69
- if (!(key in jsRoot)) {
70
- throw new Error(`There is nothing defined with the name "${key.toString()}"`);
71
- }
72
- if (typeof jsRoot[key] !== "function") {
73
- return jsRoot[key];
74
- }
75
- return new Promise((resolve, reject) => {
76
- const cb = (err, ...msg) =>
77
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
78
- // @ts-ignore
79
- err ? reject(new Error(err)) : resolve(...msg);
80
- const run = () => {
81
- jsRoot[key].apply(undefined, [...args, cb]);
82
- };
83
- run();
84
- });
85
- };
86
- },
87
- });
88
- return proxy;
89
- }
90
- const loadWasm = async () => {
91
- return (0, zlib_1.gunzipSync)(await fs.readFile((0, path_1.join)(__dirname, "..", "main.wasm.gz")));
92
- };
93
- const wasm = goBridge(loadWasm());
94
- async function parse(filename, contents) {
95
- const res = await wasm.parse(filename, contents);
96
- return JSON.parse(res);
97
- }
98
- exports.parse = parse;
99
- async function convertFiles(workingDirectory) {
100
- let tfFileContents = "";
101
- const tfJSONFileContents = [];
102
- for (const file of fs.readdirSync(workingDirectory)) {
103
- const filePath = (0, path_1.resolve)(workingDirectory, file);
104
- if (!fs.lstatSync(filePath).isDirectory()) {
105
- if (file.match(/\.tf$/)) {
106
- tfFileContents += fs.readFileSync(filePath, "utf-8");
107
- tfFileContents += "\n";
108
- }
109
- else if (file.match(/\.tf\.json$/)) {
110
- tfJSONFileContents.push(JSON.parse(fs.readFileSync(filePath, "utf-8")));
111
- }
112
- }
113
- }
114
- if (tfFileContents === "" && tfJSONFileContents.length === 0) {
115
- console.error(`No '.tf' or '.tf.json' files found in ${workingDirectory}`);
116
- return {};
117
- }
118
- return (0, deepmerge_1.deepMerge)(await parse("hcl2json.tf", tfFileContents), ...tfJSONFileContents);
119
- }
120
- exports.convertFiles = convertFiles;
121
- /**
122
- * 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.
123
- * @param filename The filename to use for the expression. This is used for error reporting.
124
- * @param expression The expression to parse.
125
- * @returns An array of References found in the expression.
126
- */
127
- async function getReferencesInExpression(filename, expression) {
128
- // We have to do this twice because of the problem with HEREDOCS
129
- // Our current hcl2json implementation removes HEREDOCS and replaces them
130
- // with a multi-line string, which is causing all kinds of problems
131
- let offset = 0;
132
- let quoteWrappedExpression = expression;
133
- if (!expression.startsWith('"')) {
134
- quoteWrappedExpression = `"${expression}"`;
135
- offset = 1;
136
- }
137
- const { wrap: wrappedExpression, wrapOffset: startOffset } = (0, util_1.wrapTerraformExpression)(`${quoteWrappedExpression}`);
138
- offset += startOffset;
139
- const ast = await getExpressionAst(filename, wrappedExpression);
140
- if (!ast) {
141
- return [];
142
- }
143
- const refs = (0, references_1.findAllReferencesInAst)(expression, ast);
144
- if (wrappedExpression === expression) {
145
- return refs;
146
- }
147
- return refs.map((ref) => {
148
- return {
149
- ...ref,
150
- startPosition: ref.startPosition - offset,
151
- endPosition: ref.endPosition - offset,
152
- };
153
- });
154
- }
155
- exports.getReferencesInExpression = getReferencesInExpression;
156
- /**
157
- * Parse a Terraform expression and return the AST. The expression does not need to be a Terraform string.
158
- * @param filename The filename to use for the expression. This is used for error reporting.
159
- * @param expression The expression to parse.
160
- * @returns The AST for the expression.
161
- *
162
- * The returned AST has the following structure:
163
- * - type: The type of the node. This is a string.
164
- * - range: This contains the start and end of the node in the expression.
165
- * - children: This contains the children of the node. This is an array of nodes.
166
- * - meta: This contains metadata about the node. This is an object, and varies depending on the type of the node.
167
- */
168
- async function getExpressionAst(filename, expression) {
169
- const res = await wasm.getExpressionAst(filename, expression);
170
- const ast = JSON.parse(res);
171
- if (!ast) {
172
- return null;
173
- }
174
- return ast;
175
- }
176
- exports.getExpressionAst = getExpressionAst;
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHFFQUFxRTtBQUNyRSwyQkFBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTNCLGNBQWM7QUFDZCwrQ0FBK0M7QUFDL0Msa0VBQWtFO0FBRWxFLDZDQUErQjtBQUMvQiwrQkFBcUM7QUFDckMsMkNBQXdDO0FBQ3hDLCtCQUFrQztBQUNsQyw2Q0FBaUU7QUFFakUsaUNBQWlEO0FBUWpELHNFQUFzRTtBQUN0RSxNQUFNLE1BQU0sR0FBNkIsRUFBRSxDQUFDO0FBRTVDLFNBQVMsS0FBSztJQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLFFBQXlCO0lBQ3pDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVsQixLQUFLLFVBQVUsSUFBSTtRQUNqQixzRkFBc0Y7UUFDdEYsc0NBQXNDO1FBQ3RDLHdEQUFhLDZCQUE2QixHQUFDLENBQUM7UUFDNUMsTUFBTSxFQUFFLEdBQUcsSUFBSyxNQUFjLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsTUFBYyxDQUFDLCtCQUErQixHQUFHLE1BQU0sQ0FBQztRQUN6RCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQs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QUFHLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUV2RCxNQUFNLElBQUksV0FBVyxDQUFDO0lBRXRCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBc0IsRUFBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsSUFBSSxpQkFBaUIsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLEdBQUcsTUFBTTtZQUN6QyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxNQUFNO1NBQ3RDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFwQ0QsOERBb0NDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFFBQWdCLEVBQ2hCLFVBQWtCO0lBRWxCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBbUIsQ0FBQztJQUU5QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFaRCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3RyaXBsZS1zbGFzaC1yZWZlcmVuY2Vcbi8vLyA8cmVmZXJlbmNlIGxpYj1cImRvbVwiIC8+XG5cbi8vIEluc3BpcmVkIGJ5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHMtdGVycmFmb3JtL3RzLXRlcnJhZm9ybVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Fhcm9ucG93ZWxsL3dlYnBhY2stZ29sYW5nLXdhc20tYXN5bmMtbG9hZGVyXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tIFwiLi9kZWVwbWVyZ2VcIjtcbmltcG9ydCB7IGd1bnppcFN5bmMgfSBmcm9tIFwiemxpYlwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlLCBmaW5kQWxsUmVmZXJlbmNlc0luQXN0IH0gZnJvbSBcIi4vcmVmZXJlbmNlc1wiO1xuaW1wb3J0IHsgRXhwcmVzc2lvblR5cGUgfSBmcm9tIFwiLi9zeW50YXgtdHJlZVwiO1xuaW1wb3J0IHsgd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24gfSBmcm9tIFwiLi91dGlsXCI7XG5cbmludGVyZmFjZSBHb0JyaWRnZSB7XG4gIHBhcnNlOiAoZmlsZW5hbWU6IHN0cmluZywgaGNsOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgcGFyc2VFeHByZXNzaW9uOiAoZmlsZW5hbWU6IHN0cmluZywgaGNsOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgZ2V0RXhwcmVzc2lvbkFzdDogKGZpbGVuYW1lOiBzdHJpbmcsIGhjbDogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWZ1bmN0aW9uLXR5cGVcbmNvbnN0IGpzUm9vdDogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+ID0ge307XG5cbmZ1bmN0aW9uIHNsZWVwKCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ29CcmlkZ2UoZ2V0Qnl0ZXM6IFByb21pc2U8QnVmZmVyPikge1xuICBsZXQgcmVhZHkgPSBmYWxzZTtcblxuICBhc3luYyBmdW5jdGlvbiBpbml0KCkge1xuICAgIC8vIEFmdGVyOiBodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL2dvL2NvbW1pdC82ODBjYWYxNTM1NTA1N2NhODQ4NTdhMmEyOTFiNmY1YzQ0ZTczMzI5XG4gICAgLy8gR28gMS4xOSsgaGFzIGEgZGlmZmVyZW50IGVudHJ5cG9pbnRcbiAgICBhd2FpdCBpbXBvcnQoYC4uL3dhc20vYnJpZGdlX3dhc21fZXhlYy5qc2ApO1xuICAgIGNvbnN0IGdvID0gbmV3IChnbG9iYWwgYXMgYW55KS5HbygpO1xuICAgIGNvbnN0IGJ5dGVzID0gYXdhaXQgZ2V0Qnl0ZXM7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnl0ZXMsIGdvLmltcG9ydE9iamVjdCk7XG4gICAgKGdsb2JhbCBhcyBhbnkpLl9fcGFyc2VfdGVycmFmb3JtX2NvbmZpZ193YXNtX18gPSBqc1Jvb3Q7XG4gICAgdm9pZCBnby5ydW4ocmVzdWx0Lmluc3RhbmNlKTtcbiAgICByZWFkeSA9IHRydWU7XG4gIH1cblxuICBpbml0KCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xuXG4gIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9IGFzIEdvQnJpZGdlLCB7XG4gICAgZ2V0OiAoXywga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBhc3luYyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIHdoaWxlICghcmVhZHkpIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEoa2V5IGluIGpzUm9vdCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlcmUgaXMgbm90aGluZyBkZWZpbmVkIHdpdGggdGhlIG5hbWUgXCIke2tleS50b1N0cmluZygpfVwiYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBqc1Jvb3Rba2V5XSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGpzUm9vdFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCBjYiA9IChlcnI6IHN0cmluZywgLi4ubXNnOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVyciA/IHJlamVjdChuZXcgRXJyb3IoZXJyKSkgOiByZXNvbHZlKC4uLm1zZyk7XG5cbiAgICAgICAgICBjb25zdCBydW4gPSAoKSA9PiB7XG4gICAgICAgICAgICBqc1Jvb3Rba2V5XS5hcHBseSh1bmRlZmluZWQsIFsuLi5hcmdzLCBjYl0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBydW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBwcm94eTtcbn1cblxuY29uc3QgbG9hZFdhc20gPSBhc3luYyAoKSA9PiB7XG4gIHJldHVybiBndW56aXBTeW5jKGF3YWl0IGZzLnJlYWRGaWxlKGpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwibWFpbi53YXNtLmd6XCIpKSk7XG59O1xuXG5jb25zdCB3YXNtID0gZ29CcmlkZ2UobG9hZFdhc20oKSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZShcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgY29udGVudHM6IHN0cmluZyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBjb25zdCByZXMgPSBhd2FpdCB3YXNtLnBhcnNlKGZpbGVuYW1lLCBjb250ZW50cyk7XG4gIHJldHVybiBKU09OLnBhcnNlKHJlcyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0RmlsZXMoXG4gIHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBsZXQgdGZGaWxlQ29udGVudHMgPSBcIlwiO1xuICBjb25zdCB0ZkpTT05GaWxlQ29udGVudHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmcy5yZWFkZGlyU3luYyh3b3JraW5nRGlyZWN0b3J5KSkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCBmaWxlKTtcbiAgICBpZiAoIWZzLmxzdGF0U3luYyhmaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgaWYgKGZpbGUubWF0Y2goL1xcLnRmJC8pKSB7XG4gICAgICAgIHRmRmlsZUNvbnRlbnRzICs9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgdGZGaWxlQ29udGVudHMgKz0gXCJcXG5cIjtcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS5tYXRjaCgvXFwudGZcXC5qc29uJC8pKSB7XG4gICAgICAgIHRmSlNPTkZpbGVDb250ZW50cy5wdXNoKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRmRmlsZUNvbnRlbnRzID09PSBcIlwiICYmIHRmSlNPTkZpbGVDb250ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICBjb25zb2xlLmVycm9yKGBObyAnLnRmJyBvciAnLnRmLmpzb24nIGZpbGVzIGZvdW5kIGluICR7d29ya2luZ0RpcmVjdG9yeX1gKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gZGVlcE1lcmdlKFxuICAgIGF3YWl0IHBhcnNlKFwiaGNsMmpzb24udGZcIiwgdGZGaWxlQ29udGVudHMpLFxuICAgIC4uLnRmSlNPTkZpbGVDb250ZW50cyxcbiAgKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIFRlcnJhZm9ybSBleHByZXNzaW9uIGFuZCByZXR1cm4gdGhlIEFTVC4gVGhpcyBmdW5jdGlvbiBleHBlY3RzIGEgc3RyaW5nIGlucHV0LCBhbmQgd2lsbCB3cmFwIHRoZSBleHByZXNzaW9uIGluIHF1b3RlcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBxdW90ZWQuXG4gKiBAcGFyYW0gZmlsZW5hbWUgVGhlIGZpbGVuYW1lIHRvIHVzZSBmb3IgdGhlIGV4cHJlc3Npb24uIFRoaXMgaXMgdXNlZCBmb3IgZXJyb3IgcmVwb3J0aW5nLlxuICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBSZWZlcmVuY2VzIGZvdW5kIGluIHRoZSBleHByZXNzaW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlc0luRXhwcmVzc2lvbihcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuKTogUHJvbWlzZTxSZWZlcmVuY2VbXT4ge1xuICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgYmVjYXVzZSBvZiB0aGUgcHJvYmxlbSB3aXRoIEhFUkVET0NTXG4gIC8vIE91ciBjdXJyZW50IGhjbDJqc29uIGltcGxlbWVudGF0aW9uIHJlbW92ZXMgSEVSRURPQ1MgYW5kIHJlcGxhY2VzIHRoZW1cbiAgLy8gd2l0aCBhIG11bHRpLWxpbmUgc3RyaW5nLCB3aGljaCBpcyBjYXVzaW5nIGFsbCBraW5kcyBvZiBwcm9ibGVtc1xuICBsZXQgb2Zmc2V0ID0gMDtcbiAgbGV0IHF1b3RlV3JhcHBlZEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICBpZiAoIWV4cHJlc3Npb24uc3RhcnRzV2l0aCgnXCInKSkge1xuICAgIHF1b3RlV3JhcHBlZEV4cHJlc3Npb24gPSBgXCIke2V4cHJlc3Npb259XCJgO1xuICAgIG9mZnNldCA9IDE7XG4gIH1cblxuICBjb25zdCB7IHdyYXA6IHdyYXBwZWRFeHByZXNzaW9uLCB3cmFwT2Zmc2V0OiBzdGFydE9mZnNldCB9ID1cbiAgICB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihgJHtxdW90ZVdyYXBwZWRFeHByZXNzaW9ufWApO1xuXG4gIG9mZnNldCArPSBzdGFydE9mZnNldDtcblxuICBjb25zdCBhc3QgPSBhd2FpdCBnZXRFeHByZXNzaW9uQXN0KGZpbGVuYW1lLCB3cmFwcGVkRXhwcmVzc2lvbik7XG4gIGlmICghYXN0KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcmVmcyA9IGZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoZXhwcmVzc2lvbiwgYXN0KTtcbiAgaWYgKHdyYXBwZWRFeHByZXNzaW9uID09PSBleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIHJlZnM7XG4gIH1cblxuICByZXR1cm4gcmVmcy5tYXAoKHJlZikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZWYsXG4gICAgICBzdGFydFBvc2l0aW9uOiByZWYuc3RhcnRQb3NpdGlvbiAtIG9mZnNldCxcbiAgICAgIGVuZFBvc2l0aW9uOiByZWYuZW5kUG9zaXRpb24gLSBvZmZzZXQsXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBUZXJyYWZvcm0gZXhwcmVzc2lvbiBhbmQgcmV0dXJuIHRoZSBBU1QuIFRoZSBleHByZXNzaW9uIGRvZXMgbm90IG5lZWQgdG8gYmUgYSBUZXJyYWZvcm0gc3RyaW5nLlxuICogQHBhcmFtIGZpbGVuYW1lIFRoZSBmaWxlbmFtZSB0byB1c2UgZm9yIHRoZSBleHByZXNzaW9uLiBUaGlzIGlzIHVzZWQgZm9yIGVycm9yIHJlcG9ydGluZy5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIEFTVCBmb3IgdGhlIGV4cHJlc3Npb24uXG4gKlxuICogICBUaGUgcmV0dXJuZWQgQVNUIGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAqICAgLSB0eXBlOiBUaGUgdHlwZSBvZiB0aGUgbm9kZS4gVGhpcyBpcyBhIHN0cmluZy5cbiAqICAgLSByYW5nZTogVGhpcyBjb250YWlucyB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgbm9kZSBpbiB0aGUgZXhwcmVzc2lvbi5cbiAqICAgLSBjaGlsZHJlbjogVGhpcyBjb250YWlucyB0aGUgY2hpbGRyZW4gb2YgdGhlIG5vZGUuIFRoaXMgaXMgYW4gYXJyYXkgb2Ygbm9kZXMuXG4gKiAgIC0gbWV0YTogVGhpcyBjb250YWlucyBtZXRhZGF0YSBhYm91dCB0aGUgbm9kZS4gVGhpcyBpcyBhbiBvYmplY3QsIGFuZCB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSBub2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RXhwcmVzc2lvbkFzdChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuKTogUHJvbWlzZTxFeHByZXNzaW9uVHlwZSB8IG51bGw+IHtcbiAgY29uc3QgcmVzID0gYXdhaXQgd2FzbS5nZXRFeHByZXNzaW9uQXN0KGZpbGVuYW1lLCBleHByZXNzaW9uKTtcbiAgY29uc3QgYXN0ID0gSlNPTi5wYXJzZShyZXMpIGFzIEV4cHJlc3Npb25UeXBlO1xuXG4gIGlmICghYXN0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gYXN0O1xufVxuIl19
@@ -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==
@@ -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"}
@@ -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
- let filtered = [];
13
- let 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7OztBQUVuQywrQ0FNdUI7QUFRdkIsU0FBZ0Isb0JBQW9CLENBQ2xDLG1CQUFrQyxFQUNsQyxjQUF5QjtJQUV6QixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxJQUFvQyxDQUFDO0lBRXRFLGtFQUFrRTtJQUNsRSxxREFBcUQ7SUFDckQsU0FBUyxxREFBcUQsQ0FDNUQsVUFBb0M7UUFFcEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzNCLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNoQixpRUFBaUU7b0JBQ2pFLElBQUksY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEQsb0NBQW9DO3dCQUNwQyxPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sNkJBQTZCO2dCQUM3QixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxxREFBcUQsQ0FDekUsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO0lBRUYsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN4RCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztJQUUzRSxPQUFPO1FBQ0wsS0FBSyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzFELGFBQWE7UUFDYixXQUFXO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFqREQsb0RBaURDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQWEsRUFDYixLQUF1QyxFQUN2QyxjQUF5QjtJQUV6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN0QiwwQ0FBMEM7WUFDMUMsOERBQThEO1lBQzlELE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUM5RCxJQUFJLFNBQVM7Z0JBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUF5QixDQUFDO1lBQzdDLE1BQU0sd0JBQXdCLEdBQUc7Z0JBQy9CLElBQUksQ0FBQyxNQUFNO2dCQUNYLElBQUksQ0FBQyxNQUFNO2dCQUNYLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2FBQzFCLENBQUM7WUFFRixPQUFPO2dCQUNMLEdBQUcsc0JBQXNCLENBQ3ZCLEtBQUssRUFDTCxJQUFBLCtCQUFpQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFDbkQsd0JBQXdCLENBQ3pCO2dCQUNELEdBQUcsc0JBQXNCLENBQ3ZCLEtBQUssRUFDTCxJQUFBLCtCQUFpQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFDcEQsd0JBQXdCLENBQ3pCO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRDtZQUNFLE9BQU8sS0FBSyxDQUFDLFFBQVE7aUJBQ2xCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztpQkFDcEUsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQTVDRCx3REE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQge1xuICBFeHByZXNzaW9uQXN0LFxuICBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhLFxuICBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0LFxuICBGb3JFeHByZXNzaW9uTWV0YSxcbiAgZ2V0Q2hpbGRXaXRoVmFsdWUsXG59IGZyb20gXCIuL3N5bnRheC10cmVlXCI7XG5cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZSA9IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgc3RhcnRQb3NpdGlvbjogbnVtYmVyO1xuICBlbmRQb3NpdGlvbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYXZlcnNhbFRvUmVmZXJlbmNlKFxuICB0cmF2ZXJzYWxFeHByZXNzaW9uOiBFeHByZXNzaW9uQXN0LFxuICBsb2NhbFZhcmlhYmxlcz86IHN0cmluZ1tdLFxuKTogUmVmZXJlbmNlIHwgbnVsbCB7XG4gIGNvbnN0IG1ldGEgPSB0cmF2ZXJzYWxFeHByZXNzaW9uLm1ldGEgYXMgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uTWV0YTtcblxuICAvLyBXZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHByb3BlcnR5IGFjY2VzcyB0aHJvdWdoIGJyYWNrZXRzIGhlcmVcbiAgLy8gYWx0aG91Z2ggaXQgaXMgdGVjaG5pY2FsbHkgYSB0cmF2ZXJzYWwgLyByZWZlcmVuY2VcbiAgZnVuY3Rpb24gb25seVRha2VUcmF2ZXJzYWxQYXJ0c1VudGlsRmlyc3RCcmFja2V0UHJvcGVydHlBY2Nlc3MoXG4gICAgdHJhdmVyc2FsczogVGVycmFmb3JtVHJhdmVyc2FsUGFydFtdLFxuICApIHtcbiAgICBsZXQgZmlsdGVyZWQgPSBbXTtcbiAgICBsZXQgaW5kZXggPSAwO1xuXG4gICAgZm9yIChjb25zdCB0cmF2ZXJzYWwgb2YgdHJhdmVyc2Fscykge1xuICAgICAgaWYgKFwic2VnbWVudFwiIGluIHRyYXZlcnNhbCkge1xuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAvLyBXZSBhcmUgYXQgdGhlIGZpcnN0IHRyYXZlcnNhbCwgY2hlY2sgaWYgaXQgaXMgYSBsb2NhbCB2YXJpYWJsZVxuICAgICAgICAgIGlmIChsb2NhbFZhcmlhYmxlcz8uaW5jbHVkZXModHJhdmVyc2FsLnNlZ21lbnQpKSB7XG4gICAgICAgICAgICAvLyBXZSByZWFjaGVkIGEgbG9jYWwgdmFyaWFibGUsIHN0b3BcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyZWQucHVzaCh0cmF2ZXJzYWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgcmVhY2hlZCBhIGJyYWNrZXQsIHN0b3BcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgfVxuXG4gIGNvbnN0IGZpbHRlcmVkUGFydHMgPSBvbmx5VGFrZVRyYXZlcnNhbFBhcnRzVW50aWxGaXJzdEJyYWNrZXRQcm9wZXJ0eUFjY2VzcyhcbiAgICBtZXRhLnRyYXZlcnNhbCxcbiAgKTtcblxuICBpZiAoZmlsdGVyZWRQYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBmaWx0ZXJlZFBhcnRzWzBdLnJhbmdlLnN0YXJ0LmJ5dGU7XG4gIGNvbnN0IGVuZFBvc2l0aW9uID0gZmlsdGVyZWRQYXJ0c1tmaWx0ZXJlZFBhcnRzLmxlbmd0aCAtIDFdLnJhbmdlLmVuZC5ieXRlO1xuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IGZpbHRlcmVkUGFydHMubWFwKChwYXJ0KSA9PiBwYXJ0LnNlZ21lbnQpLmpvaW4oXCIuXCIpLFxuICAgIHN0YXJ0UG9zaXRpb24sXG4gICAgZW5kUG9zaXRpb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWxsUmVmZXJlbmNlc0luQXN0KFxuICBpbnB1dDogc3RyaW5nLFxuICBlbnRyeTogRXhwcmVzc2lvbkFzdCB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGxvY2FsVmFyaWFibGVzPzogc3RyaW5nW10sXG4pOiBSZWZlcmVuY2VbXSB7XG4gIGlmICghZW50cnkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzd2l0Y2ggKGVudHJ5LnR5cGUpIHtcbiAgICBjYXNlIFwic2NvcGVUcmF2ZXJzYWxcIjoge1xuICAgICAgLy8gRm9yIHRyYXZlcnNhbHMgd2l0aGluIGEgZm9yIGV4cHJlc3Npb24sXG4gICAgICAvLyB3ZSB3YW50IHRvIGlnbm9yZSB0aGUgbG9jYWwgdmFyaWFibGVzIG9mIHRoZSBmb3IgZXhwcmVzc2lvblxuICAgICAgY29uc3QgcmVmZXJlbmNlID0gdHJhdmVyc2FsVG9SZWZlcmVuY2UoZW50cnksIGxvY2FsVmFyaWFibGVzKTtcbiAgICAgIGlmIChyZWZlcmVuY2UpIHJldHVybiBbcmVmZXJlbmNlXTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjYXNlIFwiZm9yXCI6IHtcbiAgICAgIGNvbnN0IG1ldGEgPSBlbnRyeS5tZXRhIGFzIEZvckV4cHJlc3Npb25NZXRhO1xuICAgICAgY29uc3QgYWRkaXRpb25hbExvY2FsVmFyaWFibGVzID0gW1xuICAgICAgICBtZXRhLmtleVZhcixcbiAgICAgICAgbWV0YS52YWxWYXIsXG4gICAgICAgIC4uLihsb2NhbFZhcmlhYmxlcyB8fCBbXSksXG4gICAgICBdO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5maW5kQWxsUmVmZXJlbmNlc0luQXN0KFxuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIGdldENoaWxkV2l0aFZhbHVlKGVudHJ5LCBtZXRhLmNvbGxlY3Rpb25FeHByZXNzaW9uKSxcbiAgICAgICAgICBhZGRpdGlvbmFsTG9jYWxWYXJpYWJsZXMsXG4gICAgICAgICksXG4gICAgICAgIC4uLmZpbmRBbGxSZWZlcmVuY2VzSW5Bc3QoXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgZ2V0Q2hpbGRXaXRoVmFsdWUoZW50cnksIG1ldGEuY29uZGl0aW9uYWxFeHByZXNzaW9uKSxcbiAgICAgICAgICBhZGRpdGlvbmFsTG9jYWxWYXJpYWJsZXMsXG4gICAgICAgICksXG4gICAgICBdO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGVudHJ5LmNoaWxkcmVuXG4gICAgICAgIC5tYXAoKGNoaWxkKSA9PiBmaW5kQWxsUmVmZXJlbmNlc0luQXN0KGlucHV0LCBjaGlsZCwgbG9jYWxWYXJpYWJsZXMpKVxuICAgICAgICAuZmxhdCgpO1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"syntax-tree.d.ts","sourceRoot":"","sources":["syntax-tree.ts"],"names":[],"mappings":"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"}
@@ -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"}