@cdktn/hcl2json 0.22.0-pre.2
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/README.md +76 -0
- package/lib/bridge.d.ts +26 -0
- package/lib/bridge.d.ts.map +1 -0
- package/lib/bridge.js +177 -0
- package/lib/deepmerge.d.ts +6 -0
- package/lib/deepmerge.d.ts.map +1 -0
- package/lib/deepmerge.js +53 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +37 -0
- package/lib/references.d.ts +9 -0
- package/lib/references.d.ts.map +1 -0
- package/lib/references.js +77 -0
- package/lib/syntax-tree.d.ts +174 -0
- package/lib/syntax-tree.d.ts.map +1 -0
- package/lib/syntax-tree.js +79 -0
- package/lib/util.d.ts +36 -0
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +75 -0
- package/main.wasm.gz +0 -0
- package/package.json +50 -0
- package/wasm/bridge_wasm_exec.d.ts +3 -0
- package/wasm/bridge_wasm_exec.js +26 -0
- package/wasm/wasm_exec.d.ts +3 -0
- package/wasm/wasm_exec.js +554 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
export type CodeMarker = {
|
|
6
|
+
byte: number;
|
|
7
|
+
line: number;
|
|
8
|
+
column: number;
|
|
9
|
+
};
|
|
10
|
+
export type CodeRange = {
|
|
11
|
+
end: CodeMarker;
|
|
12
|
+
start: CodeMarker;
|
|
13
|
+
};
|
|
14
|
+
export type TerraformTraversalPartCommon = {
|
|
15
|
+
segment: string;
|
|
16
|
+
range: CodeRange;
|
|
17
|
+
};
|
|
18
|
+
export type TerraformNameTraversalPart = TerraformTraversalPartCommon & {
|
|
19
|
+
type: "nameTraversal";
|
|
20
|
+
};
|
|
21
|
+
export type TerraformIndexTraversalPart = TerraformTraversalPartCommon & {
|
|
22
|
+
type: "indexTraversal";
|
|
23
|
+
};
|
|
24
|
+
export type TerraformTraversalPart = TerraformNameTraversalPart | TerraformIndexTraversalPart;
|
|
25
|
+
export type ExpressionMeta = {
|
|
26
|
+
value: string;
|
|
27
|
+
};
|
|
28
|
+
export type ForExpressionMeta = ExpressionMeta & {
|
|
29
|
+
keyVar: string;
|
|
30
|
+
valVar: string;
|
|
31
|
+
collectionExpression: string;
|
|
32
|
+
conditionalExpression: string;
|
|
33
|
+
valueExpression: string;
|
|
34
|
+
keyExpression: string;
|
|
35
|
+
groupedValue: boolean;
|
|
36
|
+
openRange: CodeRange;
|
|
37
|
+
openRangeValue: string;
|
|
38
|
+
closeRange: CodeRange;
|
|
39
|
+
closeRangeValue: string;
|
|
40
|
+
};
|
|
41
|
+
export type FunctionCallMeta = ExpressionMeta & {
|
|
42
|
+
name: string;
|
|
43
|
+
expandedFinalArgument: string;
|
|
44
|
+
nameRange: CodeRange;
|
|
45
|
+
openParenRange: CodeRange;
|
|
46
|
+
closeParenRange: CodeRange;
|
|
47
|
+
argsRanges: CodeRange[];
|
|
48
|
+
};
|
|
49
|
+
export type ScopeTraversalExpressionMeta = ExpressionMeta & {
|
|
50
|
+
fullAccessor: string;
|
|
51
|
+
traversal: TerraformTraversalPart[];
|
|
52
|
+
};
|
|
53
|
+
export type RelativeTraversalExpressionMeta = ExpressionMeta & {
|
|
54
|
+
fullAccessor: string;
|
|
55
|
+
traversal: TerraformTraversalPart[];
|
|
56
|
+
sourceExpression: string;
|
|
57
|
+
};
|
|
58
|
+
export type LiteralValueExpressionMeta = ExpressionMeta & {
|
|
59
|
+
type: string;
|
|
60
|
+
};
|
|
61
|
+
export type IndexExpressionMeta = ExpressionMeta & {
|
|
62
|
+
keyExpression: string;
|
|
63
|
+
collectionExpression: string;
|
|
64
|
+
};
|
|
65
|
+
export type SplatExpressionMeta = ExpressionMeta & {
|
|
66
|
+
sourceExpression: string;
|
|
67
|
+
eachExpression: string;
|
|
68
|
+
anonSymbolExpression: string;
|
|
69
|
+
markerRange: CodeRange;
|
|
70
|
+
};
|
|
71
|
+
export type ConditionalExpressionMeta = ExpressionMeta & {
|
|
72
|
+
conditionExpression: string;
|
|
73
|
+
trueExpression: string;
|
|
74
|
+
falseExpression: string;
|
|
75
|
+
};
|
|
76
|
+
export type UnaryOpExpressionMeta = ExpressionMeta & {
|
|
77
|
+
operator: string;
|
|
78
|
+
valueExpression: string;
|
|
79
|
+
symbolRange: CodeRange;
|
|
80
|
+
returnType: string;
|
|
81
|
+
};
|
|
82
|
+
export type BinaryOpExpressionMeta = ExpressionMeta & {
|
|
83
|
+
operator: string;
|
|
84
|
+
returnType: string;
|
|
85
|
+
lhsExpression: string;
|
|
86
|
+
rhsExpression: string;
|
|
87
|
+
};
|
|
88
|
+
export type ObjectExpressionMeta = ExpressionMeta & {
|
|
89
|
+
items: Record<string, string>;
|
|
90
|
+
};
|
|
91
|
+
export type MetaType = ExpressionMeta | ScopeTraversalExpressionMeta | ForExpressionMeta | FunctionCallMeta | RelativeTraversalExpressionMeta | LiteralValueExpressionMeta | IndexExpressionMeta | SplatExpressionMeta | ConditionalExpressionMeta | UnaryOpExpressionMeta | BinaryOpExpressionMeta | ObjectExpressionMeta;
|
|
92
|
+
export type CommonExpressionAst = {
|
|
93
|
+
children: ExpressionType[];
|
|
94
|
+
range: CodeRange;
|
|
95
|
+
};
|
|
96
|
+
export type ExpressionAst = CommonExpressionAst & {
|
|
97
|
+
type: string;
|
|
98
|
+
meta: MetaType;
|
|
99
|
+
};
|
|
100
|
+
export type TemplateWrapExpression = CommonExpressionAst & {
|
|
101
|
+
type: "templateWrap";
|
|
102
|
+
meta: ExpressionMeta;
|
|
103
|
+
};
|
|
104
|
+
export type TemplateExpression = CommonExpressionAst & {
|
|
105
|
+
type: "template";
|
|
106
|
+
meta: ExpressionMeta;
|
|
107
|
+
};
|
|
108
|
+
export type TupleExpression = CommonExpressionAst & {
|
|
109
|
+
type: "tuple";
|
|
110
|
+
meta: ExpressionMeta;
|
|
111
|
+
};
|
|
112
|
+
export type ForExpression = CommonExpressionAst & {
|
|
113
|
+
type: "for";
|
|
114
|
+
meta: ForExpressionMeta;
|
|
115
|
+
};
|
|
116
|
+
export type FunctionCallExpression = CommonExpressionAst & {
|
|
117
|
+
type: "function";
|
|
118
|
+
meta: FunctionCallMeta;
|
|
119
|
+
};
|
|
120
|
+
export type ScopeTraversalExpression = CommonExpressionAst & {
|
|
121
|
+
type: "scopeTraversal";
|
|
122
|
+
meta: ScopeTraversalExpressionMeta;
|
|
123
|
+
};
|
|
124
|
+
export type RelativeTraversalExpression = CommonExpressionAst & {
|
|
125
|
+
type: "relativeTraversal";
|
|
126
|
+
meta: RelativeTraversalExpressionMeta;
|
|
127
|
+
};
|
|
128
|
+
export type LiteralValueExpression = CommonExpressionAst & {
|
|
129
|
+
type: "literalValue";
|
|
130
|
+
meta: LiteralValueExpressionMeta;
|
|
131
|
+
};
|
|
132
|
+
export type IndexExpression = CommonExpressionAst & {
|
|
133
|
+
type: "index";
|
|
134
|
+
meta: IndexExpressionMeta;
|
|
135
|
+
};
|
|
136
|
+
export type SplatExpression = CommonExpressionAst & {
|
|
137
|
+
type: "splat";
|
|
138
|
+
meta: SplatExpressionMeta;
|
|
139
|
+
};
|
|
140
|
+
export type ConditionalExpression = CommonExpressionAst & {
|
|
141
|
+
type: "conditional";
|
|
142
|
+
meta: ConditionalExpressionMeta;
|
|
143
|
+
};
|
|
144
|
+
export type UnaryOpExpression = CommonExpressionAst & {
|
|
145
|
+
type: "unaryOp";
|
|
146
|
+
meta: UnaryOpExpressionMeta;
|
|
147
|
+
};
|
|
148
|
+
export type BinaryOpExpression = CommonExpressionAst & {
|
|
149
|
+
type: "binaryOp";
|
|
150
|
+
meta: BinaryOpExpressionMeta;
|
|
151
|
+
};
|
|
152
|
+
export type ObjectExpression = CommonExpressionAst & {
|
|
153
|
+
type: "object";
|
|
154
|
+
meta: ObjectExpressionMeta;
|
|
155
|
+
};
|
|
156
|
+
export type ExpressionType = ForExpression | TemplateWrapExpression | TemplateExpression | FunctionCallExpression | TupleExpression | ScopeTraversalExpression | RelativeTraversalExpression | LiteralValueExpression | IndexExpression | SplatExpression | ConditionalExpression | UnaryOpExpression | BinaryOpExpression | ObjectExpression;
|
|
157
|
+
export declare function isForExpression(ast: ExpressionType): ast is ForExpression;
|
|
158
|
+
export declare function isTemplateWrapExpression(ast: ExpressionType): ast is TemplateWrapExpression;
|
|
159
|
+
export declare function isTemplateExpression(ast: ExpressionType): ast is TemplateExpression;
|
|
160
|
+
export declare function isFunctionCallExpression(ast: ExpressionType): ast is FunctionCallExpression;
|
|
161
|
+
export declare function isScopeTraversalExpression(ast: ExpressionType): ast is ScopeTraversalExpression;
|
|
162
|
+
export declare function isRelativeTraversalExpression(ast: ExpressionType): ast is RelativeTraversalExpression;
|
|
163
|
+
export declare function isLiteralValueExpression(ast: ExpressionType): ast is LiteralValueExpression;
|
|
164
|
+
export declare function isIndexExpression(ast: ExpressionType): ast is IndexExpression;
|
|
165
|
+
export declare function isSplatExpression(ast: ExpressionType): ast is SplatExpression;
|
|
166
|
+
export declare function isConditionalExpression(ast: ExpressionType): ast is ConditionalExpression;
|
|
167
|
+
export declare function isUnaryOpExpression(ast: ExpressionType): ast is UnaryOpExpression;
|
|
168
|
+
export declare function isBinaryOpExpression(ast: ExpressionType): ast is BinaryOpExpression;
|
|
169
|
+
export declare function isTupleExpression(ast: ExpressionType): ast is TupleExpression;
|
|
170
|
+
export declare function isObjectExpression(part: ExpressionType): part is ObjectExpression;
|
|
171
|
+
export declare function isNameTraversalPart(part: TerraformTraversalPart): part is TerraformNameTraversalPart;
|
|
172
|
+
export declare function isIndexTraversalPart(part: TerraformTraversalPart): part is TerraformIndexTraversalPart;
|
|
173
|
+
export declare function getChildWithValue(node: ExpressionAst, value: string): ExpressionType | null | undefined;
|
|
174
|
+
//# sourceMappingURL=syntax-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-tree.d.ts","sourceRoot":"","sources":["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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGF4LXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50YXgtdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0TkEsU0FBZ0IsZUFBZSxDQUFDLEdBQW1CO0lBQ2pELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDckMsQ0FBQztBQUpELDREQUlDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUpELG9EQUlDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUpELDREQUlDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQ3hDLEdBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQztBQUN2QyxDQUFDO0FBSkQsZ0VBSUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FDM0MsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDO0FBQzFDLENBQUM7QUFKRCxzRUFJQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxHQUFtQjtJQUVuQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0FBQ3JDLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEdBQW1CO0lBQ25ELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDOUIsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsR0FBbUI7SUFDbkQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUM5QixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUNwQyxDQUFDO0FBSkQsMERBSUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBSkQsa0RBSUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FDbEMsR0FBbUI7SUFFbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBSkQsb0RBSUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFtQjtJQUNuRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxJQUFvQjtJQUVwQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2hDLENBQUM7QUFKRCxnREFJQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxJQUE0QjtJQUU1QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDO0FBQ3ZDLENBQUM7QUFKRCxrREFJQztBQUVELFNBQWdCLG9CQUFvQixDQUNsQyxJQUE0QjtJQUU1QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUM7QUFDeEMsQ0FBQztBQUpELG9EQUlDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBbUIsRUFBRSxLQUFhO0lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVRELDhDQVNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuZXhwb3J0IHR5cGUgQ29kZU1hcmtlciA9IHtcbiAgYnl0ZTogbnVtYmVyO1xuICBsaW5lOiBudW1iZXI7XG4gIGNvbHVtbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29kZVJhbmdlID0ge1xuICBlbmQ6IENvZGVNYXJrZXI7XG4gIHN0YXJ0OiBDb2RlTWFya2VyO1xufTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtVHJhdmVyc2FsUGFydENvbW1vbiA9IHtcbiAgc2VnbWVudDogc3RyaW5nO1xuICByYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtTmFtZVRyYXZlcnNhbFBhcnQgPSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0Q29tbW9uICYge1xuICB0eXBlOiBcIm5hbWVUcmF2ZXJzYWxcIjtcbn07XG5leHBvcnQgdHlwZSBUZXJyYWZvcm1JbmRleFRyYXZlcnNhbFBhcnQgPSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0Q29tbW9uICYge1xuICB0eXBlOiBcImluZGV4VHJhdmVyc2FsXCI7XG59O1xuXG5leHBvcnQgdHlwZSBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0ID1cbiAgfCBUZXJyYWZvcm1OYW1lVHJhdmVyc2FsUGFydFxuICB8IFRlcnJhZm9ybUluZGV4VHJhdmVyc2FsUGFydDtcblxuLy8gRXhwcmVzc2lvbiBNZXRhIFR5cGVzXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uTWV0YSA9IHtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZvckV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGtleVZhcjogc3RyaW5nO1xuICB2YWxWYXI6IHN0cmluZztcbiAgY29sbGVjdGlvbkV4cHJlc3Npb246IHN0cmluZztcbiAgY29uZGl0aW9uYWxFeHByZXNzaW9uOiBzdHJpbmc7XG4gIHZhbHVlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBrZXlFeHByZXNzaW9uOiBzdHJpbmc7XG4gIGdyb3VwZWRWYWx1ZTogYm9vbGVhbjtcbiAgb3BlblJhbmdlOiBDb2RlUmFuZ2U7XG4gIG9wZW5SYW5nZVZhbHVlOiBzdHJpbmc7XG4gIGNsb3NlUmFuZ2U6IENvZGVSYW5nZTtcbiAgY2xvc2VSYW5nZVZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGdW5jdGlvbkNhbGxNZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZXhwYW5kZWRGaW5hbEFyZ3VtZW50OiBzdHJpbmc7XG4gIG5hbWVSYW5nZTogQ29kZVJhbmdlO1xuICBvcGVuUGFyZW5SYW5nZTogQ29kZVJhbmdlO1xuICBjbG9zZVBhcmVuUmFuZ2U6IENvZGVSYW5nZTtcbiAgYXJnc1JhbmdlczogQ29kZVJhbmdlW107XG59O1xuXG5leHBvcnQgdHlwZSBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGZ1bGxBY2Nlc3Nvcjogc3RyaW5nO1xuICB0cmF2ZXJzYWw6IFRlcnJhZm9ybVRyYXZlcnNhbFBhcnRbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgZnVsbEFjY2Vzc29yOiBzdHJpbmc7XG4gIHRyYXZlcnNhbDogVGVycmFmb3JtVHJhdmVyc2FsUGFydFtdO1xuICBzb3VyY2VFeHByZXNzaW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBMaXRlcmFsVmFsdWVFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICB0eXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbmRleEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIGtleUV4cHJlc3Npb246IHN0cmluZztcbiAgY29sbGVjdGlvbkV4cHJlc3Npb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNwbGF0RXhwcmVzc2lvbk1ldGEgPSBFeHByZXNzaW9uTWV0YSAmIHtcbiAgc291cmNlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBlYWNoRXhwcmVzc2lvbjogc3RyaW5nO1xuICBhbm9uU3ltYm9sRXhwcmVzc2lvbjogc3RyaW5nO1xuICBtYXJrZXJSYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZGl0aW9uYWxFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBjb25kaXRpb25FeHByZXNzaW9uOiBzdHJpbmc7XG4gIHRydWVFeHByZXNzaW9uOiBzdHJpbmc7XG4gIGZhbHNlRXhwcmVzc2lvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVW5hcnlPcEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHZhbHVlRXhwcmVzc2lvbjogc3RyaW5nO1xuICBzeW1ib2xSYW5nZTogQ29kZVJhbmdlO1xuICByZXR1cm5UeXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBCaW5hcnlPcEV4cHJlc3Npb25NZXRhID0gRXhwcmVzc2lvbk1ldGEgJiB7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHJldHVyblR5cGU6IHN0cmluZztcbiAgbGhzRXhwcmVzc2lvbjogc3RyaW5nO1xuICByaHNFeHByZXNzaW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBPYmplY3RFeHByZXNzaW9uTWV0YSA9IEV4cHJlc3Npb25NZXRhICYge1xuICBpdGVtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1ldGFUeXBlID1cbiAgfCBFeHByZXNzaW9uTWV0YVxuICB8IFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGFcbiAgfCBGb3JFeHByZXNzaW9uTWV0YVxuICB8IEZ1bmN0aW9uQ2FsbE1ldGFcbiAgfCBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb25NZXRhXG4gIHwgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbk1ldGFcbiAgfCBJbmRleEV4cHJlc3Npb25NZXRhXG4gIHwgU3BsYXRFeHByZXNzaW9uTWV0YVxuICB8IENvbmRpdGlvbmFsRXhwcmVzc2lvbk1ldGFcbiAgfCBVbmFyeU9wRXhwcmVzc2lvbk1ldGFcbiAgfCBCaW5hcnlPcEV4cHJlc3Npb25NZXRhXG4gIHwgT2JqZWN0RXhwcmVzc2lvbk1ldGE7XG5cbmV4cG9ydCB0eXBlIENvbW1vbkV4cHJlc3Npb25Bc3QgPSB7XG4gIGNoaWxkcmVuOiBFeHByZXNzaW9uVHlwZVtdO1xuICByYW5nZTogQ29kZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbkFzdCA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IHN0cmluZztcbiAgbWV0YTogTWV0YVR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVdyYXBFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJ0ZW1wbGF0ZVdyYXBcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIFRlbXBsYXRlRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidGVtcGxhdGVcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIFR1cGxlRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidHVwbGVcIjtcbiAgbWV0YTogRXhwcmVzc2lvbk1ldGE7IC8vIERvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lhbCBtZXRhIGF0dHJpYnV0ZXNcbn07XG5cbmV4cG9ydCB0eXBlIEZvckV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImZvclwiO1xuICBtZXRhOiBGb3JFeHByZXNzaW9uTWV0YTtcbn07XG5cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImZ1bmN0aW9uXCI7XG4gIG1ldGE6IEZ1bmN0aW9uQ2FsbE1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBTY29wZVRyYXZlcnNhbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInNjb3BlVHJhdmVyc2FsXCI7XG4gIG1ldGE6IFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInJlbGF0aXZlVHJhdmVyc2FsXCI7XG4gIG1ldGE6IFJlbGF0aXZlVHJhdmVyc2FsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBMaXRlcmFsVmFsdWVFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJsaXRlcmFsVmFsdWVcIjtcbiAgbWV0YTogTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBJbmRleEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImluZGV4XCI7XG4gIG1ldGE6IEluZGV4RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBTcGxhdEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcInNwbGF0XCI7XG4gIG1ldGE6IFNwbGF0RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBDb25kaXRpb25hbEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImNvbmRpdGlvbmFsXCI7XG4gIG1ldGE6IENvbmRpdGlvbmFsRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBVbmFyeU9wRXhwcmVzc2lvbiA9IENvbW1vbkV4cHJlc3Npb25Bc3QgJiB7XG4gIHR5cGU6IFwidW5hcnlPcFwiO1xuICBtZXRhOiBVbmFyeU9wRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBCaW5hcnlPcEV4cHJlc3Npb24gPSBDb21tb25FeHByZXNzaW9uQXN0ICYge1xuICB0eXBlOiBcImJpbmFyeU9wXCI7XG4gIG1ldGE6IEJpbmFyeU9wRXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBPYmplY3RFeHByZXNzaW9uID0gQ29tbW9uRXhwcmVzc2lvbkFzdCAmIHtcbiAgdHlwZTogXCJvYmplY3RcIjtcbiAgbWV0YTogT2JqZWN0RXhwcmVzc2lvbk1ldGE7XG59O1xuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uVHlwZSA9XG4gIHwgRm9yRXhwcmVzc2lvblxuICB8IFRlbXBsYXRlV3JhcEV4cHJlc3Npb25cbiAgfCBUZW1wbGF0ZUV4cHJlc3Npb25cbiAgfCBGdW5jdGlvbkNhbGxFeHByZXNzaW9uXG4gIHwgVHVwbGVFeHByZXNzaW9uXG4gIHwgU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uXG4gIHwgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uXG4gIHwgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvblxuICB8IEluZGV4RXhwcmVzc2lvblxuICB8IFNwbGF0RXhwcmVzc2lvblxuICB8IENvbmRpdGlvbmFsRXhwcmVzc2lvblxuICB8IFVuYXJ5T3BFeHByZXNzaW9uXG4gIHwgQmluYXJ5T3BFeHByZXNzaW9uXG4gIHwgT2JqZWN0RXhwcmVzc2lvbjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9yRXhwcmVzc2lvbihhc3Q6IEV4cHJlc3Npb25UeXBlKTogYXN0IGlzIEZvckV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwiZm9yXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlV3JhcEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgVGVtcGxhdGVXcmFwRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJ0ZW1wbGF0ZVdyYXBcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFRlbXBsYXRlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJ0ZW1wbGF0ZVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbkNhbGxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIEZ1bmN0aW9uQ2FsbEV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwiZnVuY3Rpb25cIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVUcmF2ZXJzYWxFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFNjb3BlVHJhdmVyc2FsRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJzY29wZVRyYXZlcnNhbFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWxhdGl2ZVRyYXZlcnNhbEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgUmVsYXRpdmVUcmF2ZXJzYWxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcInJlbGF0aXZlVHJhdmVyc2FsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xpdGVyYWxWYWx1ZUV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgTGl0ZXJhbFZhbHVlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJsaXRlcmFsVmFsdWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5kZXhFeHByZXNzaW9uKGFzdDogRXhwcmVzc2lvblR5cGUpOiBhc3QgaXMgSW5kZXhFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImluZGV4XCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NwbGF0RXhwcmVzc2lvbihhc3Q6IEV4cHJlc3Npb25UeXBlKTogYXN0IGlzIFNwbGF0RXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJzcGxhdFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25kaXRpb25hbEV4cHJlc3Npb24oXG4gIGFzdDogRXhwcmVzc2lvblR5cGUsXG4pOiBhc3QgaXMgQ29uZGl0aW9uYWxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcImNvbmRpdGlvbmFsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuYXJ5T3BFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIFVuYXJ5T3BFeHByZXNzaW9uIHtcbiAgcmV0dXJuIGFzdC50eXBlID09PSBcInVuYXJ5T3BcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQmluYXJ5T3BFeHByZXNzaW9uKFxuICBhc3Q6IEV4cHJlc3Npb25UeXBlLFxuKTogYXN0IGlzIEJpbmFyeU9wRXhwcmVzc2lvbiB7XG4gIHJldHVybiBhc3QudHlwZSA9PT0gXCJiaW5hcnlPcFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUdXBsZUV4cHJlc3Npb24oYXN0OiBFeHByZXNzaW9uVHlwZSk6IGFzdCBpcyBUdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gYXN0LnR5cGUgPT09IFwidHVwbGVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0RXhwcmVzc2lvbihcbiAgcGFydDogRXhwcmVzc2lvblR5cGUsXG4pOiBwYXJ0IGlzIE9iamVjdEV4cHJlc3Npb24ge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcIm9iamVjdFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOYW1lVHJhdmVyc2FsUGFydChcbiAgcGFydDogVGVycmFmb3JtVHJhdmVyc2FsUGFydCxcbik6IHBhcnQgaXMgVGVycmFmb3JtTmFtZVRyYXZlcnNhbFBhcnQge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcIm5hbWVUcmF2ZXJzYWxcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5kZXhUcmF2ZXJzYWxQYXJ0KFxuICBwYXJ0OiBUZXJyYWZvcm1UcmF2ZXJzYWxQYXJ0LFxuKTogcGFydCBpcyBUZXJyYWZvcm1JbmRleFRyYXZlcnNhbFBhcnQge1xuICByZXR1cm4gcGFydC50eXBlID09PSBcImluZGV4VHJhdmVyc2FsXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGlsZFdpdGhWYWx1ZShub2RlOiBFeHByZXNzaW9uQXN0LCB2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUuY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IHtcbiAgICBpZiAoIWNoaWxkLm1ldGEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2hpbGQubWV0YS52YWx1ZSA9PT0gdmFsdWU7XG4gIH0pO1xufVxuIl19
|
package/lib/util.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* This function is used to escape quotes within a string.
|
|
7
|
+
* Note: This is a really naive implmentation that will not be able to work with
|
|
8
|
+
* nested templates. However, nested templates require parsing, so we will
|
|
9
|
+
* only handle strings without nested templates for the moment
|
|
10
|
+
* @param input The string to escape
|
|
11
|
+
*/
|
|
12
|
+
export declare function replaceQuotes(input: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* This function is used to wrap a string in quotes conditionally.
|
|
15
|
+
* - If the string is already quoted, it will be returned as-is.
|
|
16
|
+
* - If the string contains a newline, it will be wrapped in a heredoc.
|
|
17
|
+
* - If the string is a number, it will be returned as-is.
|
|
18
|
+
* - If the string is a boolean, it will be returned as-is.
|
|
19
|
+
* - If the string is a list or map, it will be returned as-is.
|
|
20
|
+
*
|
|
21
|
+
* @param input The string to wrap
|
|
22
|
+
* @returns The wrapped string, and the offset of the cursor within the string
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* wrapTerraformExpression("foo") // { wrap: '"foo"', wrapOffset: 1 }
|
|
26
|
+
* wrapTerraformExpression("foo\nbar") // { wrap: '<<EOE\nfoo\nbar\nEOE\n', wrapOffset: 5 }
|
|
27
|
+
* wrapTerraformExpression("22") // { wrap: '22', wrapOffset: 0 }
|
|
28
|
+
* wrapTerraformExpression("true") // { wrap: 'true', wrapOffset: 0 }
|
|
29
|
+
* wrapTerraformExpression("[22, 10]") // { wrap: '[22, 10]', wrapOffset: 0 }
|
|
30
|
+
* wrapTerraformExpression("{ foo = 22 }") // { wrap: '{ foo = 22 }', wrapOffset: 0 }
|
|
31
|
+
*/
|
|
32
|
+
export declare function wrapTerraformExpression(input: string): {
|
|
33
|
+
wrap: string;
|
|
34
|
+
wrapOffset: number;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUg7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLGdCQUFnQixLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUN0RSxnQkFBZ0IsQ0FBQyxDQUFDLENBQ3BCLEVBQUUsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFYRCxzQ0FXQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxLQUFhO0lBSW5ELEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFVBQVUsV0FBVyxTQUFTO2dCQUNwQyxVQUFVLEVBQUUsQ0FBQzthQUNkLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0IsZ0ZBQWdGO1FBQ2hGLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDO0FBdkNELDBEQXVDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZXNjYXBlIHF1b3RlcyB3aXRoaW4gYSBzdHJpbmcuXG4gKiAgTm90ZTogVGhpcyBpcyBhIHJlYWxseSBuYWl2ZSBpbXBsbWVudGF0aW9uIHRoYXQgd2lsbCBub3QgYmUgYWJsZSB0byB3b3JrIHdpdGhcbiAqICAgIG5lc3RlZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIsIG5lc3RlZCB0ZW1wbGF0ZXMgcmVxdWlyZSBwYXJzaW5nLCBzbyB3ZSB3aWxsXG4gKiAgICBvbmx5IGhhbmRsZSBzdHJpbmdzIHdpdGhvdXQgbmVzdGVkIHRlbXBsYXRlcyBmb3IgdGhlIG1vbWVudFxuICogQHBhcmFtIGlucHV0IFRoZSBzdHJpbmcgdG8gZXNjYXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlUXVvdGVzKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmdWxseVF1b3RlZE1hdGNoID0gL14oXFxzKlwiKSguKikoXCJcXHMqKSQvLmV4ZWMoaW5wdXQpO1xuICBjb25zdCBoYXNUZW1wbGF0ZSA9IC8oPzwhXFwkKVxcJFxcey8udGVzdChpbnB1dCk7XG5cbiAgaWYgKGZ1bGx5UXVvdGVkTWF0Y2ggIT09IG51bGwgJiYgIWhhc1RlbXBsYXRlKSB7XG4gICAgcmV0dXJuIGAke2Z1bGx5UXVvdGVkTWF0Y2hbMV19JHtmdWxseVF1b3RlZE1hdGNoWzJdLnJlcGxhY2UoL1wiL2csIGBcXFxcXCJgKX0ke1xuICAgICAgZnVsbHlRdW90ZWRNYXRjaFszXVxuICAgIH1gO1xuICB9XG5cbiAgcmV0dXJuIGlucHV0O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byB3cmFwIGEgc3RyaW5nIGluIHF1b3RlcyBjb25kaXRpb25hbGx5LlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhbHJlYWR5IHF1b3RlZCwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqICAtIElmIHRoZSBzdHJpbmcgY29udGFpbnMgYSBuZXdsaW5lLCBpdCB3aWxsIGJlIHdyYXBwZWQgaW4gYSBoZXJlZG9jLlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhIG51bWJlciwgaXQgd2lsbCBiZSByZXR1cm5lZCBhcy1pcy5cbiAqICAtIElmIHRoZSBzdHJpbmcgaXMgYSBib29sZWFuLCBpdCB3aWxsIGJlIHJldHVybmVkIGFzLWlzLlxuICogIC0gSWYgdGhlIHN0cmluZyBpcyBhIGxpc3Qgb3IgbWFwLCBpdCB3aWxsIGJlIHJldHVybmVkIGFzLWlzLlxuICpcbiAqIEBwYXJhbSBpbnB1dCBUaGUgc3RyaW5nIHRvIHdyYXBcbiAqIEByZXR1cm5zIFRoZSB3cmFwcGVkIHN0cmluZywgYW5kIHRoZSBvZmZzZXQgb2YgdGhlIGN1cnNvciB3aXRoaW4gdGhlIHN0cmluZ1xuICpcbiAqIEBleGFtcGxlXG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcImZvb1wiKSAvLyB7IHdyYXA6ICdcImZvb1wiJywgd3JhcE9mZnNldDogMSB9XG4gKiB3cmFwVGVycmFmb3JtRXhwcmVzc2lvbihcImZvb1xcbmJhclwiKSAvLyB7IHdyYXA6ICc8PEVPRVxcbmZvb1xcbmJhclxcbkVPRVxcbicsIHdyYXBPZmZzZXQ6IDUgfVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCIyMlwiKSAvLyB7IHdyYXA6ICcyMicsIHdyYXBPZmZzZXQ6IDAgfVxuICogd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oXCJ0cnVlXCIpIC8vIHsgd3JhcDogJ3RydWUnLCB3cmFwT2Zmc2V0OiAwIH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwiWzIyLCAxMF1cIikgLy8geyB3cmFwOiAnWzIyLCAxMF0nLCB3cmFwT2Zmc2V0OiAwIH1cbiAqIHdyYXBUZXJyYWZvcm1FeHByZXNzaW9uKFwieyBmb28gPSAyMiB9XCIpIC8vIHsgd3JhcDogJ3sgZm9vID0gMjIgfScsIHdyYXBPZmZzZXQ6IDAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcFRlcnJhZm9ybUV4cHJlc3Npb24oaW5wdXQ6IHN0cmluZyk6IHtcbiAgd3JhcDogc3RyaW5nO1xuICB3cmFwT2Zmc2V0OiBudW1iZXI7XG59IHtcbiAgaW5wdXQgPSByZXBsYWNlUXVvdGVzKGlucHV0KTtcblxuICBpZiAoIWlzTmFOKE51bWJlcihpbnB1dCkpKSB7XG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuICBpZiAoaW5wdXQgPT09IFwidHJ1ZVwiIHx8IGlucHV0ID09PSBcImZhbHNlXCIpIHtcbiAgICByZXR1cm4geyB3cmFwOiBpbnB1dCwgd3JhcE9mZnNldDogMCB9O1xuICB9XG5cbiAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoYFwiYCkpIHtcbiAgICBpZiAoaW5wdXQuaW5kZXhPZihcIlxcblwiKSA+PSAwKSB7XG4gICAgICBjb25zdCB0cmltV3JhcHBlZCA9IGlucHV0LnN1YnN0cmluZygxLCBpbnB1dC5sZW5ndGggLSAxKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdyYXA6IGA8PEVPRVxcbiR7dHJpbVdyYXBwZWR9XFxuRU9FXFxuYCxcbiAgICAgICAgd3JhcE9mZnNldDogNSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7IHdyYXA6IGlucHV0LCB3cmFwT2Zmc2V0OiAwIH07XG4gIH1cblxuICBpZiAoaW5wdXQuc3RhcnRzV2l0aChcIltcIikgfHwgaW5wdXQuc3RhcnRzV2l0aChcIntcIikpIHtcbiAgICByZXR1cm4geyB3cmFwOiBpbnB1dCwgd3JhcE9mZnNldDogMCB9O1xuICB9XG5cbiAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoXCI8PFwiKSkge1xuICAgIC8vIEZvciBIZXJlZG9jcywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhbiBlbXB0eSBuZXdsaW5lIGFzXG4gICAgLy8gdGhlIEhDTCBwYXJzZXIgZG9lc24ndCBmaW5kIHRoZSBlbmRpbmcgdG9rZW4gb3RoZXJ3aXNlXG4gICAgaWYgKCFpbnB1dC5lbmRzV2l0aChcIlxcblwiKSkge1xuICAgICAgcmV0dXJuIHsgd3JhcDogaW5wdXQgKyBcIlxcblwiLCB3cmFwT2Zmc2V0OiAwIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd3JhcDogaW5wdXQsIHdyYXBPZmZzZXQ6IDAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHdyYXA6IGBcIiR7aW5wdXR9XCJgLCB3cmFwT2Zmc2V0OiAxIH07XG59XG4iXX0=
|
package/main.wasm.gz
ADDED
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cdktn/hcl2json",
|
|
3
|
+
"version": "0.22.0-pre.2",
|
|
4
|
+
"description": "Transform HCL into JSON",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc && ./build-go.sh",
|
|
12
|
+
"watch": "tsc -w",
|
|
13
|
+
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"test:ci": "jest --ci",
|
|
16
|
+
"test:update": "jest -u",
|
|
17
|
+
"jest-watch": "jest --watch",
|
|
18
|
+
"package": "./package.sh",
|
|
19
|
+
"dist-clean": "rm -rf dist",
|
|
20
|
+
"prebuild": "./prebuild.sh",
|
|
21
|
+
"package:js": "./package.sh"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git://github.com/open-constructs/cdk-terrain.git",
|
|
26
|
+
"directory": "packages/@cdktn/hcl2json"
|
|
27
|
+
},
|
|
28
|
+
"author": {
|
|
29
|
+
"name": "OpenConstructs",
|
|
30
|
+
"url": "https://github.com/open-constructs"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"cdk",
|
|
34
|
+
"cdktf",
|
|
35
|
+
"terraform",
|
|
36
|
+
"hcl"
|
|
37
|
+
],
|
|
38
|
+
"license": "MPL-2.0",
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"fs-extra": "11.3.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/fs-extra": "11.0.4",
|
|
44
|
+
"@types/jest": "29.5.14",
|
|
45
|
+
"@types/node": "20.17.51",
|
|
46
|
+
"jest": "^29.7.0",
|
|
47
|
+
"ts-jest": "29.3.4",
|
|
48
|
+
"typescript": "5.4.5"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright 2021 The Go Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
// Modified from https://github.com/golang/go/blob/master/misc/wasm/wasm_exec_node.js
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
|
|
9
|
+
globalThis.require = require;
|
|
10
|
+
globalThis.fs = require("fs");
|
|
11
|
+
globalThis.TextEncoder = require("util").TextEncoder;
|
|
12
|
+
globalThis.TextDecoder = require("util").TextDecoder;
|
|
13
|
+
|
|
14
|
+
globalThis.performance ??= require("performance");
|
|
15
|
+
|
|
16
|
+
// Node >= 19 has a crypto function object, lower node versions need this polyfill
|
|
17
|
+
if (!globalThis.crypto) {
|
|
18
|
+
const crypto = require("crypto");
|
|
19
|
+
globalThis.crypto = {
|
|
20
|
+
getRandomValues(b) {
|
|
21
|
+
return crypto.randomFillSync(b);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
require("./wasm_exec");
|