@env-spec/parser 0.0.6 → 0.0.8
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/dist/{chunk-TP5IOHGP.mjs → chunk-FDDTJES3.mjs} +46 -52
- package/dist/chunk-FDDTJES3.mjs.map +1 -0
- package/dist/{chunk-QIAK725N.js → chunk-JWF7I3Y2.js} +46 -52
- package/dist/chunk-JWF7I3Y2.js.map +1 -0
- package/dist/{classes-0XkzWf10.d.mts → classes-Gq5ZJ7ej.d.mts} +9 -9
- package/dist/{classes-0XkzWf10.d.ts → classes-Gq5ZJ7ej.d.ts} +9 -9
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +514 -566
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +392 -444
- package/dist/index.mjs.map +1 -1
- package/dist/simple-resolver.d.mts +1 -1
- package/dist/simple-resolver.d.ts +1 -1
- package/dist/simple-resolver.js +11 -12
- package/dist/simple-resolver.js.map +1 -1
- package/dist/simple-resolver.mjs +2 -3
- package/dist/simple-resolver.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-QIAK725N.js.map +0 -1
- package/dist/chunk-TP5IOHGP.mjs.map +0 -1
|
@@ -2,12 +2,19 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/helpers.ts
|
|
5
|
-
var VALID_NUMBER_REGEX =
|
|
5
|
+
var VALID_NUMBER_REGEX = /^-?(0|([1-9][0-9]*))?(\.[0-9]+)?$/;
|
|
6
6
|
function autoCoerce(valStr) {
|
|
7
7
|
if (valStr === "true") return true;
|
|
8
8
|
if (valStr === "false") return false;
|
|
9
9
|
if (valStr === "undefined") return void 0;
|
|
10
|
-
if (VALID_NUMBER_REGEX.test(valStr))
|
|
10
|
+
if (VALID_NUMBER_REGEX.test(valStr)) {
|
|
11
|
+
const num = Number(valStr);
|
|
12
|
+
const backToString = String(num);
|
|
13
|
+
if (backToString !== valStr) return valStr;
|
|
14
|
+
if (Number.isInteger(num) && !Number.isSafeInteger(num)) return valStr;
|
|
15
|
+
if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) return valStr;
|
|
16
|
+
return num;
|
|
17
|
+
}
|
|
11
18
|
return valStr;
|
|
12
19
|
}
|
|
13
20
|
__name(autoCoerce, "autoCoerce");
|
|
@@ -134,23 +141,29 @@ var ParsedEnvSpecFunctionCall = class {
|
|
|
134
141
|
var ParsedEnvSpecDecorator = class {
|
|
135
142
|
constructor(data) {
|
|
136
143
|
this.data = data;
|
|
144
|
+
if (!this.data.value) {
|
|
145
|
+
this.value = new ParsedEnvSpecStaticValue({ rawValue: true, isImplicit: true });
|
|
146
|
+
} else {
|
|
147
|
+
const expanded = expand(this.data.value);
|
|
148
|
+
if (expanded instanceof ParsedEnvSpecKeyValuePair) {
|
|
149
|
+
throw new Error("Unexpected key-value pair found in config item");
|
|
150
|
+
}
|
|
151
|
+
this.value = expanded;
|
|
152
|
+
}
|
|
137
153
|
}
|
|
138
154
|
static {
|
|
139
155
|
__name(this, "ParsedEnvSpecDecorator");
|
|
140
156
|
}
|
|
157
|
+
value;
|
|
141
158
|
get name() {
|
|
142
159
|
return this.data.name;
|
|
143
160
|
}
|
|
144
|
-
get
|
|
145
|
-
|
|
146
|
-
return this.data.valueOrFnArgs;
|
|
147
|
-
}
|
|
161
|
+
get isBareFnCall() {
|
|
162
|
+
return !!this.data.isBareFnCall;
|
|
148
163
|
}
|
|
149
|
-
get
|
|
150
|
-
if (
|
|
151
|
-
return
|
|
152
|
-
} else if (!(this.data.valueOrFnArgs instanceof ParsedEnvSpecFunctionArgs)) {
|
|
153
|
-
return this.data.valueOrFnArgs;
|
|
164
|
+
get bareFnArgs() {
|
|
165
|
+
if (this.isBareFnCall && this.value instanceof ParsedEnvSpecFunctionArgs) {
|
|
166
|
+
return this.value;
|
|
154
167
|
}
|
|
155
168
|
}
|
|
156
169
|
get simplifiedValue() {
|
|
@@ -160,9 +173,9 @@ var ParsedEnvSpecDecorator = class {
|
|
|
160
173
|
}
|
|
161
174
|
toString() {
|
|
162
175
|
let s = `@${this.name}`;
|
|
163
|
-
if (!this.data.
|
|
164
|
-
if (!
|
|
165
|
-
s += this.data.
|
|
176
|
+
if (!this.data.value) return s;
|
|
177
|
+
if (!this.isBareFnCall) s += "=";
|
|
178
|
+
s += this.data.value.toString();
|
|
166
179
|
return s;
|
|
167
180
|
}
|
|
168
181
|
};
|
|
@@ -263,19 +276,25 @@ var ParsedEnvSpecBlankLine = class {
|
|
|
263
276
|
var ParsedEnvSpecConfigItem = class {
|
|
264
277
|
constructor(data) {
|
|
265
278
|
this.data = data;
|
|
279
|
+
if (this.data.value) {
|
|
280
|
+
const expanded = expand(this.data.value);
|
|
281
|
+
if (expanded instanceof ParsedEnvSpecKeyValuePair) {
|
|
282
|
+
throw new Error("Nested key-value pair found in config item");
|
|
283
|
+
} else if (expanded instanceof ParsedEnvSpecFunctionArgs) {
|
|
284
|
+
throw new Error("Top-level config item cannot be a bare function args");
|
|
285
|
+
}
|
|
286
|
+
this.value = expanded;
|
|
287
|
+
}
|
|
266
288
|
}
|
|
267
289
|
static {
|
|
268
290
|
__name(this, "ParsedEnvSpecConfigItem");
|
|
269
291
|
}
|
|
270
|
-
|
|
292
|
+
value;
|
|
271
293
|
get key() {
|
|
272
294
|
return this.data.key;
|
|
273
295
|
}
|
|
274
|
-
get
|
|
275
|
-
|
|
276
|
-
return new ParsedEnvSpecStaticValue({ rawValue: void 0, isImplicit: true });
|
|
277
|
-
}
|
|
278
|
-
return this.data.value;
|
|
296
|
+
get decoratorsArray() {
|
|
297
|
+
return getDecoratorsArray([...this.data.preComments, this.data.postComment]);
|
|
279
298
|
}
|
|
280
299
|
get decoratorsObject() {
|
|
281
300
|
return getDecoratorsObject([...this.data.preComments, this.data.postComment]);
|
|
@@ -284,36 +303,6 @@ var ParsedEnvSpecConfigItem = class {
|
|
|
284
303
|
const regularComments = this.data.preComments.filter((comment) => comment instanceof ParsedEnvSpecComment);
|
|
285
304
|
return regularComments.map((comment) => comment.contents).join("\n");
|
|
286
305
|
}
|
|
287
|
-
processExpansion(_opts) {
|
|
288
|
-
if (this.data.value) {
|
|
289
|
-
const expanded = expand(this.data.value);
|
|
290
|
-
if (expanded instanceof ParsedEnvSpecKeyValuePair) throw new Error("Nested key-value pair found in config item");
|
|
291
|
-
this.expandedValue = expanded;
|
|
292
|
-
} else {
|
|
293
|
-
this.expandedValue = void 0;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
get resolverDef() {
|
|
297
|
-
if (!this.data.value) {
|
|
298
|
-
return {
|
|
299
|
-
type: "static",
|
|
300
|
-
value: void 0
|
|
301
|
-
};
|
|
302
|
-
} else if (this.data.value instanceof ParsedEnvSpecStaticValue) {
|
|
303
|
-
return {
|
|
304
|
-
type: "static",
|
|
305
|
-
value: this.data.value.value
|
|
306
|
-
};
|
|
307
|
-
} else if (this.data.value instanceof ParsedEnvSpecFunctionCall) {
|
|
308
|
-
return {
|
|
309
|
-
type: "function",
|
|
310
|
-
functionName: this.data.value.name,
|
|
311
|
-
functionArgs: this.data.value.simplifiedArgs
|
|
312
|
-
};
|
|
313
|
-
} else {
|
|
314
|
-
throw new Error("Unknown value resolver type");
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
306
|
toString() {
|
|
318
307
|
let s = "";
|
|
319
308
|
for (const comment of this.data.preComments) s += `${comment.toString()}
|
|
@@ -479,6 +468,11 @@ function expandHelper(val, expandStaticFn) {
|
|
|
479
468
|
values: newConcatArgs
|
|
480
469
|
})
|
|
481
470
|
});
|
|
471
|
+
} else if (val instanceof ParsedEnvSpecFunctionArgs) {
|
|
472
|
+
const newArgs = val.data.values.map((v) => expandHelper(v, expandStaticFn));
|
|
473
|
+
return new ParsedEnvSpecFunctionArgs({
|
|
474
|
+
values: newArgs
|
|
475
|
+
});
|
|
482
476
|
} else if (val instanceof ParsedEnvSpecKeyValuePair) {
|
|
483
477
|
const expandedVal = expandHelper(val.value, expandStaticFn);
|
|
484
478
|
if (expandedVal instanceof ParsedEnvSpecKeyValuePair) throw new Error("Nested key-value pair found in concat");
|
|
@@ -504,5 +498,5 @@ function expand(val, _opts) {
|
|
|
504
498
|
__name(expand, "expand");
|
|
505
499
|
|
|
506
500
|
export { ParsedEnvSpecBlankLine, ParsedEnvSpecComment, ParsedEnvSpecCommentBlock, ParsedEnvSpecConfigItem, ParsedEnvSpecDecorator, ParsedEnvSpecDecoratorComment, ParsedEnvSpecDivider, ParsedEnvSpecFile, ParsedEnvSpecFunctionArgs, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, ParsedEnvSpecStaticValue, __name, expand };
|
|
507
|
-
//# sourceMappingURL=chunk-
|
|
508
|
-
//# sourceMappingURL=chunk-
|
|
501
|
+
//# sourceMappingURL=chunk-FDDTJES3.mjs.map
|
|
502
|
+
//# sourceMappingURL=chunk-FDDTJES3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts","../src/classes.ts","../src/expand.ts"],"names":[],"mappings":"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","file":"chunk-FDDTJES3.mjs","sourcesContent":["// this regex helps avoid any weird numbers\n// - leading zeros\n// - scientific notation\n// - multiple decimal points\nconst VALID_NUMBER_REGEX = /^-?(0|([1-9][0-9]*))?(\\.[0-9]+)?$/;\n\nexport function autoCoerce(valStr: string): string | number | boolean | undefined {\n if (valStr === 'true') return true;\n if (valStr === 'false') return false;\n if (valStr === 'undefined') return undefined;\n // not handling `null` because its a JS specific thing... we'll try to avoid it altogether\n\n // the regex check filters out a lot of ambiguous/weird cases\n if (VALID_NUMBER_REGEX.test(valStr)) {\n const num = Number(valStr);\n\n // Check if we can convert back to a string without any changes\n // this could be loss in precision or just formatting (extra zeros)\n const backToString = String(num);\n if (backToString !== valStr) return valStr;\n\n // if numbers are too large, we'll leave them as strings\n if (Number.isInteger(num) && !Number.isSafeInteger(num)) return valStr;\n if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) return valStr;\n\n // otherwise we can return the number\n return num;\n }\n return valStr;\n}\n","import { expand } from './expand';\nimport { autoCoerce } from './helpers';\n\nexport class ParsedEnvSpecDivider {\n constructor(public data: {\n contents: string;\n leadingSpace?: string;\n _location?: any;\n }) {}\n\n toString() {\n return `#${this.data.leadingSpace || ''}${this.data.contents}`;\n }\n}\n\nexport class ParsedEnvSpecStaticValue {\n value: any;\n\n constructor(public data: {\n rawValue: any;\n quote?: '\"' | \"'\" | '`' | undefined;\n isImplicit?: boolean;\n _location?: any;\n }) {\n if (!data.quote) {\n // unquoted strings will get trimmed (leading/trailing spaces)\n if (typeof data.rawValue === 'string') {\n const trimmed = data.rawValue.trim();\n // trimmed empty string without quotes gets treated as undefined\n if (trimmed === '') this.value = undefined;\n else this.value = autoCoerce(trimmed);\n } else {\n this.value = autoCoerce(data.rawValue);\n }\n } else {\n const quoteChar = data.quote.substring(0, 1);\n this.value = data.rawValue\n .slice(data.quote.length, -1 * data.quote.length)\n .replaceAll(`\\\\${quoteChar}`, quoteChar);\n }\n }\n\n get unescapedValue() {\n if (typeof this.value !== 'string') return this.value;\n let unescaped = this.value;\n // replace escaped \"$\" (if not in single quotes)\n if (this.data.quote !== \"'\") {\n unescaped = unescaped.replaceAll('\\\\$', '$');\n }\n // replace escaped newlines (if not double quotes or backticks)\n if (this.data.quote === '\"' || this.data.quote === '`') {\n unescaped = unescaped.replaceAll('\\\\n', '\\n');\n }\n return unescaped;\n }\n\n toString() {\n // TODO: smarter logic to preserve the original value\n // for example with this logic, we may see 123.0 -> 123\n let strVal = String(this.value);\n if (this.data.quote) {\n strVal = strVal.replaceAll(this.data.quote, `\\\\${this.data.quote}`);\n }\n return `${this.data.quote || ''}${strVal}${this.data.quote || ''}`;\n }\n}\n\nexport class ParsedEnvSpecKeyValuePair {\n constructor(public data: {\n key: string;\n val: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall,\n }) {}\n\n get key() {\n return this.data.key;\n }\n\n get value() {\n return this.data.val;\n }\n\n toString() {\n return `${this.key}=${this.data.val.toString()}`;\n }\n}\nexport class ParsedEnvSpecFunctionArgs {\n constructor(public data: {\n values: Array<ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecKeyValuePair>;\n _location?: any;\n }) {}\n\n get values() {\n return this.data.values;\n }\n\n get simplifiedValues(): Array<any> | Record<string, any> {\n if (this.data.values.length === 0) return [];\n const vals = this.data.values;\n if (vals.every((i) => i instanceof ParsedEnvSpecStaticValue)) {\n return vals.map((val) => val.value);\n } else if (vals.every((i) => i instanceof ParsedEnvSpecKeyValuePair)) {\n const obj = {} as Record<string, any>;\n vals.forEach((val) => {\n if (val.value instanceof ParsedEnvSpecStaticValue) {\n obj[val.key] = val.value.value;\n }\n });\n return obj;\n } else {\n throw new Error('Invalid function args');\n }\n }\n\n toString() {\n let s = '(';\n s += this.data.values.map((val) => val.toString()).join(', ');\n s += ')';\n return s;\n }\n}\n\nexport class ParsedEnvSpecFunctionCall {\n constructor(public data: {\n name: string;\n args: ParsedEnvSpecFunctionArgs;\n _location?: any;\n }) {}\n\n get name() {\n return this.data.name;\n }\n get simplifiedArgs() {\n return this.data.args.simplifiedValues;\n }\n\n toString() {\n // args will include the `()`\n return this.data.name + this.data.args.toString();\n }\n}\n\n\nexport class ParsedEnvSpecDecorator {\n value?: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs;\n\n constructor(public data: {\n name: string;\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;\n isBareFnCall?: boolean; // true if decorator is a bare fn call (eg: @import(...))\n _location?: any;\n }) {\n // bare decorator is equivalent to `@decorator=true`\n // `@required` === `@required=true`\n if (!this.data.value) {\n this.value = new ParsedEnvSpecStaticValue({ rawValue: true, isImplicit: true });\n } else {\n // process expansion -- triggers $ expansion (eg: \"${VAR}\" => `ref(VAR)`)/\n const expanded = expand(this.data.value);\n if (expanded instanceof ParsedEnvSpecKeyValuePair) {\n throw new Error('Unexpected key-value pair found in config item');\n }\n this.value = expanded;\n }\n }\n\n get name() {\n return this.data.name;\n }\n get isBareFnCall() {\n return !!this.data.isBareFnCall;\n }\n get bareFnArgs() {\n if (this.isBareFnCall && this.value instanceof ParsedEnvSpecFunctionArgs) {\n return this.value;\n }\n }\n\n get simplifiedValue() {\n if (this.value instanceof ParsedEnvSpecStaticValue) {\n return this.value.value;\n }\n }\n toString() {\n let s = `@${this.name}`;\n if (!this.data.value) return s; // bare decorator, ex: `@required`\n // bare fn call looks like `@import(asdf)` so no `=`\n if (!this.isBareFnCall) s += '=';\n // let the value stringify itself\n s += this.data.value.toString();\n return s;\n }\n}\n\n\nexport class ParsedEnvSpecComment {\n constructor(public data: {\n contents: string;\n leadingSpace?: string;\n _location?: any;\n }) {}\n\n get contents() {\n return this.data.contents;\n }\n\n toString() {\n return `#${this.data.leadingSpace || ''}${this.data.contents}`;\n }\n}\nexport class ParsedEnvSpecDecoratorComment {\n constructor(public data: {\n decorators: Array<ParsedEnvSpecDecorator>;\n leadingSpace?: string;\n postComment?: any;\n _location?: any;\n }) {}\n\n get decorators() {\n return this.data.decorators;\n }\n\n get postComment() {\n return this.data.postComment;\n }\n\n toString() {\n let s = '#';\n s += this.data.leadingSpace || '';\n s += this.data.decorators.map((d) => d.toString()).join(' ');\n if (this.data.postComment) s += ` ${this.data.postComment.toString()}`;\n return s;\n }\n}\n\nfunction getDecoratorsObject(\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined>,\n) {\n const decObj = {} as Record<string, ParsedEnvSpecDecorator>;\n comments.forEach((comment) => {\n if (comment instanceof ParsedEnvSpecDecoratorComment) {\n comment.decorators.forEach((decorator) => {\n decObj[decorator.name] = decorator;\n });\n }\n });\n return decObj;\n}\n\nfunction getDecoratorsArray(\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined>,\n) {\n const decArr = [] as Array<ParsedEnvSpecDecorator>;\n comments.forEach((comment) => {\n if (comment instanceof ParsedEnvSpecDecoratorComment) {\n decArr.push(...comment.decorators);\n }\n });\n return decArr;\n}\n\nexport class ParsedEnvSpecCommentBlock {\n constructor(public data: {\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;\n divider: ParsedEnvSpecDivider | null;\n _location?: any;\n }) {}\n\n get comments() {\n return this.data.comments;\n }\n\n get divider() {\n return this.data.divider || undefined;\n }\n\n get decoratorsObject() {\n return getDecoratorsObject(this.data.comments);\n }\n get decoratorsArray() {\n return getDecoratorsArray(this.data.comments);\n }\n\n toString() {\n return [\n ...this.data.comments.map((comment) => comment.toString()),\n ...this.data.divider ? [this.data.divider.toString()] : [],\n ].join('\\n');\n }\n}\n\nexport class ParsedEnvSpecBlankLine {\n constructor(public data: {\n _location?: any;\n }) {}\n\n toString() {\n return '';\n }\n}\n\n\nexport class ParsedEnvSpecConfigItem {\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;\n\n constructor(public data: {\n key: string;\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;\n preComments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;\n postComment: ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined;\n _location?: any;\n }) {\n if (this.data.value) {\n const expanded = expand(this.data.value!);\n if (expanded instanceof ParsedEnvSpecKeyValuePair) {\n throw new Error('Nested key-value pair found in config item');\n } else if (expanded instanceof ParsedEnvSpecFunctionArgs) {\n throw new Error('Top-level config item cannot be a bare function args');\n }\n this.value = expanded;\n }\n }\n\n get key() {\n return this.data.key;\n }\n\n get decoratorsArray() {\n return getDecoratorsArray([...this.data.preComments, this.data.postComment]);\n }\n\n get decoratorsObject() {\n return getDecoratorsObject([...this.data.preComments, this.data.postComment]);\n }\n\n get description() {\n const regularComments = this.data.preComments.filter((comment) => (comment instanceof ParsedEnvSpecComment));\n return regularComments.map((comment) => comment.contents).join('\\n');\n }\n\n toString() {\n let s = '';\n for (const comment of this.data.preComments) s += `${comment.toString()}\\n`;\n s += `${this.key}=`;\n if (this.data.value) s += `${this.data.value.toString()}`;\n if (this.data.postComment) s += ` ${this.data.postComment.toString()}`;\n return s;\n }\n}\n\n// these are the 4 types that can be at the root level\ntype ParsedEnvSpecFileNode = ParsedEnvSpecCommentBlock\n | ParsedEnvSpecDivider\n | ParsedEnvSpecConfigItem\n | ParsedEnvSpecBlankLine;\n\n\nexport class ParsedEnvSpecFile {\n contents: Array<ParsedEnvSpecFileNode>;\n constructor(_contents: Array<ParsedEnvSpecFileNode>) {\n this.contents = _contents;\n }\n\n get configItems() {\n return this.contents.filter((item) => item instanceof ParsedEnvSpecConfigItem);\n }\n get header() {\n // header is a comment block at the the start of the file that ends with a divider\n // it may be preceeded by blank lines only\n for (const item of this.contents) {\n if (item instanceof ParsedEnvSpecCommentBlock && item.divider) {\n return item;\n } else if (!(item instanceof ParsedEnvSpecBlankLine)) {\n return;\n }\n }\n }\n get decoratorsObject() {\n return this.header?.decoratorsObject ?? {};\n }\n get decoratorsArray() {\n return this.header?.decoratorsArray ?? [];\n }\n\n toString() {\n return this.contents.map((item) => item.toString()).join('\\n');\n }\n /**\n * simple helper to convert an object in a basic case\n * mostly useful for comparison with other env parsers\n * */\n toSimpleObj() {\n const obj = {} as Record<string, any>;\n for (const item of this.contents) {\n if (item instanceof ParsedEnvSpecConfigItem) {\n if (item.value instanceof ParsedEnvSpecStaticValue) {\n obj[item.key] = item.value.value ?? '';\n }\n }\n }\n return obj;\n }\n}\n","import {\n ParsedEnvSpecFunctionArgs, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, ParsedEnvSpecStaticValue,\n} from './classes';\n\n// const EXPAND_VAR_REGEX_WITH_SIMPLE = /\\$({([a-zA-Z_][a-zA-Z0-9_.]*)}|([a-zA-Z_][a-zA-Z0-9_]*))/g;\nconst EXPAND_VAR_BRACKETED_REGEX = /(?<!\\\\)\\${([a-zA-Z_][a-zA-Z0-9_.]*)((:?-)([^}]+))?}/g;\nconst EXPAND_VAR_SIMPLE_REGEX = /(?<!\\\\)\\$([a-zA-Z_][a-zA-Z0-9_]*)/g;\nconst EXPAND_EXEC_REGEX = /\\$\\(([^)]+)\\)/g;\n\n\nfunction expandExecs(staticVal: ParsedEnvSpecStaticValue, _opts?: {}) {\n if (typeof staticVal.value !== 'string') return staticVal;\n const quote = staticVal.data.quote;\n const quoteStr = quote ?? '';\n // single quoted strings are not expanded!\n if (quote === \"'\") return staticVal;\n\n const execMatches = Array.from(staticVal.value.matchAll(EXPAND_EXEC_REGEX));\n\n // if no matches - we just return the original value\n if (execMatches.length === 0) return staticVal;\n\n // otherwise, we expand the transform each match into `exec` fn calls\n // and return a concat with everything together\n let lastIndex = 0;\n const parts = [] as Array<ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall>;\n for (const match of execMatches) {\n // extract text before exec -- ex: `pretext-$(exec command)`\n if (lastIndex < match.index) {\n const preText = staticVal.value.slice(lastIndex, match.index);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${preText}${quoteStr}`, quote }));\n }\n\n // extract exec command\n const shellCmd = match[1];\n parts.push(new ParsedEnvSpecFunctionCall({\n name: 'exec',\n args: new ParsedEnvSpecFunctionArgs({\n values: [new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${shellCmd}${quoteStr}`, quote })],\n }),\n }));\n lastIndex = match.index + match[0].length;\n }\n // extract any remaining text after the last exec\n if (lastIndex < staticVal.value.length) {\n const postText = staticVal.value.slice(lastIndex);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${postText}${quoteStr}`, quote }));\n }\n\n // if there's only one part, we can just return it (ex: `VAR=$(whoami)`)\n if (parts.length === 1) return parts[0];\n // otherwise we concat all the parts together\n return new ParsedEnvSpecFunctionCall({\n name: 'concat',\n args: new ParsedEnvSpecFunctionArgs({\n values: parts,\n }),\n });\n}\n\nfunction expandRefs(staticVal: ParsedEnvSpecStaticValue, mode: 'simple' | 'bracketed') {\n if (typeof staticVal.value !== 'string') return staticVal;\n const quote = staticVal.data.quote;\n const quoteStr = quote ?? '';\n if (quote === \"'\") return staticVal;\n\n const varMatches = Array.from(staticVal.value.matchAll(mode === 'simple' ? EXPAND_VAR_SIMPLE_REGEX : EXPAND_VAR_BRACKETED_REGEX));\n if (varMatches.length === 0) return staticVal;\n\n let lastIndex = 0;\n const parts = [] as Array<any>;\n for (const match of varMatches) {\n // extract text before exec\n if (lastIndex < match.index) {\n const preText = staticVal.value.slice(lastIndex, match.index);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${preText}${quoteStr}`, quote }));\n }\n\n // extract var\n const varName = match[1];\n let defaultOperator: string | undefined; // ex: \":-\" or \"-\"\n let defaultVal: string | undefined; // currently not doing any fancy parsing on this, will just be a string\n if (mode === 'bracketed') {\n // TODO: do we want to support different behaviour based on the operator?\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n defaultOperator = match[3];\n defaultVal = match[4];\n }\n const refFnCall = new ParsedEnvSpecFunctionCall({\n name: 'ref',\n args: new ParsedEnvSpecFunctionArgs({\n values: [new ParsedEnvSpecStaticValue({ rawValue: varName })],\n }),\n });\n if (defaultVal) {\n parts.push(new ParsedEnvSpecFunctionCall({\n name: 'fallback',\n args: new ParsedEnvSpecFunctionArgs({\n values: [refFnCall, new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${defaultVal}${quoteStr}`, quote })],\n }),\n }));\n } else {\n parts.push(refFnCall);\n }\n lastIndex = match.index + match[0].length;\n }\n if (lastIndex < staticVal.value.length) {\n const postText = staticVal.value.slice(lastIndex);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${postText}${quoteStr}`, quote }));\n }\n\n // if only a single part, just return it (ex: `VAR=${OTHERVAR}`)\n if (parts.length === 1) return parts[0];\n // otherwise, concat all the parts together\n return new ParsedEnvSpecFunctionCall({\n name: 'concat',\n args: new ParsedEnvSpecFunctionArgs({\n values: parts,\n }),\n });\n}\n\n\ntype ParsedEnvSpecValueNode = ParsedEnvSpecStaticValue\n| ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | ParsedEnvSpecKeyValuePair;\n\n/**\n * helper used by expansion to recursively expand values\n * */\nfunction expandHelper(\n val: ParsedEnvSpecValueNode,\n expandStaticFn: (staticVal: ParsedEnvSpecStaticValue) => ParsedEnvSpecValueNode,\n): ParsedEnvSpecValueNode {\n // if function call, expand each arg\n if (val instanceof ParsedEnvSpecFunctionCall) {\n const fnName = val.name;\n // expand each arg, and then flatten unnecessery nested concat fns\n const newConcatArgs = [] as Array<ParsedEnvSpecValueNode>;\n val.data.args.values.forEach((v) => {\n const expandedArg = expandHelper(v, expandStaticFn);\n // special case for concat so we flatten unnecessery nested concat fns\n if (\n fnName === 'concat'\n && expandedArg instanceof ParsedEnvSpecFunctionCall\n && expandedArg.name === 'concat'\n ) {\n newConcatArgs.push(...expandedArg.data.args.values);\n } else {\n newConcatArgs.push(expandedArg);\n }\n });\n\n return new ParsedEnvSpecFunctionCall({\n name: fnName,\n args: new ParsedEnvSpecFunctionArgs({\n values: newConcatArgs as any,\n }),\n });\n } else if (val instanceof ParsedEnvSpecFunctionArgs) {\n // expand each arg\n const newArgs = val.data.values.map((v) => expandHelper(v, expandStaticFn));\n return new ParsedEnvSpecFunctionArgs({\n values: newArgs as any,\n });\n // if key-value pair, expand value\n } else if (val instanceof ParsedEnvSpecKeyValuePair) {\n const expandedVal = expandHelper(val.value, expandStaticFn);\n if (expandedVal instanceof ParsedEnvSpecKeyValuePair) throw new Error('Nested key-value pair found in concat');\n return new ParsedEnvSpecKeyValuePair({\n key: val.key,\n val: expandedVal as any,\n });\n } else if (val instanceof ParsedEnvSpecStaticValue) {\n // here we actually do the expansion on string values\n\n // skip expansion if value is number/boolean/etc\n if (typeof val.value !== 'string') return val;\n // skip expansion on single-quoted strings\n if (val.data.quote === \"'\") return val;\n\n return expandStaticFn(val);\n }\n throw new Error('Unknown value type');\n}\n\n/**\n * takes in a value node and runs expansion (execs, refs) according to options\n * returns a new value node with all expansions applied\n * */\nexport function expand(\n val: ParsedEnvSpecValueNode,\n // TODO: add options to enable/disable specific expansion types and handling\n _opts?: {},\n): ParsedEnvSpecValueNode {\n // TODO: add options\n let expandedVal = val;\n expandedVal = expandHelper(expandedVal, (v) => expandExecs(v));\n expandedVal = expandHelper(expandedVal, (v) => expandRefs(v, 'simple'));\n expandedVal = expandHelper(expandedVal, (v) => expandRefs(v, 'bracketed'));\n return expandedVal;\n}\n"]}
|
|
@@ -4,12 +4,19 @@ var __defProp = Object.defineProperty;
|
|
|
4
4
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
5
|
|
|
6
6
|
// src/helpers.ts
|
|
7
|
-
var VALID_NUMBER_REGEX =
|
|
7
|
+
var VALID_NUMBER_REGEX = /^-?(0|([1-9][0-9]*))?(\.[0-9]+)?$/;
|
|
8
8
|
function autoCoerce(valStr) {
|
|
9
9
|
if (valStr === "true") return true;
|
|
10
10
|
if (valStr === "false") return false;
|
|
11
11
|
if (valStr === "undefined") return void 0;
|
|
12
|
-
if (VALID_NUMBER_REGEX.test(valStr))
|
|
12
|
+
if (VALID_NUMBER_REGEX.test(valStr)) {
|
|
13
|
+
const num = Number(valStr);
|
|
14
|
+
const backToString = String(num);
|
|
15
|
+
if (backToString !== valStr) return valStr;
|
|
16
|
+
if (Number.isInteger(num) && !Number.isSafeInteger(num)) return valStr;
|
|
17
|
+
if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) return valStr;
|
|
18
|
+
return num;
|
|
19
|
+
}
|
|
13
20
|
return valStr;
|
|
14
21
|
}
|
|
15
22
|
__name(autoCoerce, "autoCoerce");
|
|
@@ -136,23 +143,29 @@ var ParsedEnvSpecFunctionCall = class {
|
|
|
136
143
|
var ParsedEnvSpecDecorator = class {
|
|
137
144
|
constructor(data) {
|
|
138
145
|
this.data = data;
|
|
146
|
+
if (!this.data.value) {
|
|
147
|
+
this.value = new ParsedEnvSpecStaticValue({ rawValue: true, isImplicit: true });
|
|
148
|
+
} else {
|
|
149
|
+
const expanded = expand(this.data.value);
|
|
150
|
+
if (expanded instanceof ParsedEnvSpecKeyValuePair) {
|
|
151
|
+
throw new Error("Unexpected key-value pair found in config item");
|
|
152
|
+
}
|
|
153
|
+
this.value = expanded;
|
|
154
|
+
}
|
|
139
155
|
}
|
|
140
156
|
static {
|
|
141
157
|
__name(this, "ParsedEnvSpecDecorator");
|
|
142
158
|
}
|
|
159
|
+
value;
|
|
143
160
|
get name() {
|
|
144
161
|
return this.data.name;
|
|
145
162
|
}
|
|
146
|
-
get
|
|
147
|
-
|
|
148
|
-
return this.data.valueOrFnArgs;
|
|
149
|
-
}
|
|
163
|
+
get isBareFnCall() {
|
|
164
|
+
return !!this.data.isBareFnCall;
|
|
150
165
|
}
|
|
151
|
-
get
|
|
152
|
-
if (
|
|
153
|
-
return
|
|
154
|
-
} else if (!(this.data.valueOrFnArgs instanceof ParsedEnvSpecFunctionArgs)) {
|
|
155
|
-
return this.data.valueOrFnArgs;
|
|
166
|
+
get bareFnArgs() {
|
|
167
|
+
if (this.isBareFnCall && this.value instanceof ParsedEnvSpecFunctionArgs) {
|
|
168
|
+
return this.value;
|
|
156
169
|
}
|
|
157
170
|
}
|
|
158
171
|
get simplifiedValue() {
|
|
@@ -162,9 +175,9 @@ var ParsedEnvSpecDecorator = class {
|
|
|
162
175
|
}
|
|
163
176
|
toString() {
|
|
164
177
|
let s = `@${this.name}`;
|
|
165
|
-
if (!this.data.
|
|
166
|
-
if (!
|
|
167
|
-
s += this.data.
|
|
178
|
+
if (!this.data.value) return s;
|
|
179
|
+
if (!this.isBareFnCall) s += "=";
|
|
180
|
+
s += this.data.value.toString();
|
|
168
181
|
return s;
|
|
169
182
|
}
|
|
170
183
|
};
|
|
@@ -265,19 +278,25 @@ var ParsedEnvSpecBlankLine = class {
|
|
|
265
278
|
var ParsedEnvSpecConfigItem = class {
|
|
266
279
|
constructor(data) {
|
|
267
280
|
this.data = data;
|
|
281
|
+
if (this.data.value) {
|
|
282
|
+
const expanded = expand(this.data.value);
|
|
283
|
+
if (expanded instanceof ParsedEnvSpecKeyValuePair) {
|
|
284
|
+
throw new Error("Nested key-value pair found in config item");
|
|
285
|
+
} else if (expanded instanceof ParsedEnvSpecFunctionArgs) {
|
|
286
|
+
throw new Error("Top-level config item cannot be a bare function args");
|
|
287
|
+
}
|
|
288
|
+
this.value = expanded;
|
|
289
|
+
}
|
|
268
290
|
}
|
|
269
291
|
static {
|
|
270
292
|
__name(this, "ParsedEnvSpecConfigItem");
|
|
271
293
|
}
|
|
272
|
-
|
|
294
|
+
value;
|
|
273
295
|
get key() {
|
|
274
296
|
return this.data.key;
|
|
275
297
|
}
|
|
276
|
-
get
|
|
277
|
-
|
|
278
|
-
return new ParsedEnvSpecStaticValue({ rawValue: void 0, isImplicit: true });
|
|
279
|
-
}
|
|
280
|
-
return this.data.value;
|
|
298
|
+
get decoratorsArray() {
|
|
299
|
+
return getDecoratorsArray([...this.data.preComments, this.data.postComment]);
|
|
281
300
|
}
|
|
282
301
|
get decoratorsObject() {
|
|
283
302
|
return getDecoratorsObject([...this.data.preComments, this.data.postComment]);
|
|
@@ -286,36 +305,6 @@ var ParsedEnvSpecConfigItem = class {
|
|
|
286
305
|
const regularComments = this.data.preComments.filter((comment) => comment instanceof ParsedEnvSpecComment);
|
|
287
306
|
return regularComments.map((comment) => comment.contents).join("\n");
|
|
288
307
|
}
|
|
289
|
-
processExpansion(_opts) {
|
|
290
|
-
if (this.data.value) {
|
|
291
|
-
const expanded = expand(this.data.value);
|
|
292
|
-
if (expanded instanceof ParsedEnvSpecKeyValuePair) throw new Error("Nested key-value pair found in config item");
|
|
293
|
-
this.expandedValue = expanded;
|
|
294
|
-
} else {
|
|
295
|
-
this.expandedValue = void 0;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
get resolverDef() {
|
|
299
|
-
if (!this.data.value) {
|
|
300
|
-
return {
|
|
301
|
-
type: "static",
|
|
302
|
-
value: void 0
|
|
303
|
-
};
|
|
304
|
-
} else if (this.data.value instanceof ParsedEnvSpecStaticValue) {
|
|
305
|
-
return {
|
|
306
|
-
type: "static",
|
|
307
|
-
value: this.data.value.value
|
|
308
|
-
};
|
|
309
|
-
} else if (this.data.value instanceof ParsedEnvSpecFunctionCall) {
|
|
310
|
-
return {
|
|
311
|
-
type: "function",
|
|
312
|
-
functionName: this.data.value.name,
|
|
313
|
-
functionArgs: this.data.value.simplifiedArgs
|
|
314
|
-
};
|
|
315
|
-
} else {
|
|
316
|
-
throw new Error("Unknown value resolver type");
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
308
|
toString() {
|
|
320
309
|
let s = "";
|
|
321
310
|
for (const comment of this.data.preComments) s += `${comment.toString()}
|
|
@@ -481,6 +470,11 @@ function expandHelper(val, expandStaticFn) {
|
|
|
481
470
|
values: newConcatArgs
|
|
482
471
|
})
|
|
483
472
|
});
|
|
473
|
+
} else if (val instanceof ParsedEnvSpecFunctionArgs) {
|
|
474
|
+
const newArgs = val.data.values.map((v) => expandHelper(v, expandStaticFn));
|
|
475
|
+
return new ParsedEnvSpecFunctionArgs({
|
|
476
|
+
values: newArgs
|
|
477
|
+
});
|
|
484
478
|
} else if (val instanceof ParsedEnvSpecKeyValuePair) {
|
|
485
479
|
const expandedVal = expandHelper(val.value, expandStaticFn);
|
|
486
480
|
if (expandedVal instanceof ParsedEnvSpecKeyValuePair) throw new Error("Nested key-value pair found in concat");
|
|
@@ -519,5 +513,5 @@ exports.ParsedEnvSpecKeyValuePair = ParsedEnvSpecKeyValuePair;
|
|
|
519
513
|
exports.ParsedEnvSpecStaticValue = ParsedEnvSpecStaticValue;
|
|
520
514
|
exports.__name = __name;
|
|
521
515
|
exports.expand = expand;
|
|
522
|
-
//# sourceMappingURL=chunk-
|
|
523
|
-
//# sourceMappingURL=chunk-
|
|
516
|
+
//# sourceMappingURL=chunk-JWF7I3Y2.js.map
|
|
517
|
+
//# sourceMappingURL=chunk-JWF7I3Y2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts","../src/classes.ts","../src/expand.ts"],"names":[],"mappings":"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","file":"chunk-JWF7I3Y2.js","sourcesContent":["// this regex helps avoid any weird numbers\n// - leading zeros\n// - scientific notation\n// - multiple decimal points\nconst VALID_NUMBER_REGEX = /^-?(0|([1-9][0-9]*))?(\\.[0-9]+)?$/;\n\nexport function autoCoerce(valStr: string): string | number | boolean | undefined {\n if (valStr === 'true') return true;\n if (valStr === 'false') return false;\n if (valStr === 'undefined') return undefined;\n // not handling `null` because its a JS specific thing... we'll try to avoid it altogether\n\n // the regex check filters out a lot of ambiguous/weird cases\n if (VALID_NUMBER_REGEX.test(valStr)) {\n const num = Number(valStr);\n\n // Check if we can convert back to a string without any changes\n // this could be loss in precision or just formatting (extra zeros)\n const backToString = String(num);\n if (backToString !== valStr) return valStr;\n\n // if numbers are too large, we'll leave them as strings\n if (Number.isInteger(num) && !Number.isSafeInteger(num)) return valStr;\n if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) return valStr;\n\n // otherwise we can return the number\n return num;\n }\n return valStr;\n}\n","import { expand } from './expand';\nimport { autoCoerce } from './helpers';\n\nexport class ParsedEnvSpecDivider {\n constructor(public data: {\n contents: string;\n leadingSpace?: string;\n _location?: any;\n }) {}\n\n toString() {\n return `#${this.data.leadingSpace || ''}${this.data.contents}`;\n }\n}\n\nexport class ParsedEnvSpecStaticValue {\n value: any;\n\n constructor(public data: {\n rawValue: any;\n quote?: '\"' | \"'\" | '`' | undefined;\n isImplicit?: boolean;\n _location?: any;\n }) {\n if (!data.quote) {\n // unquoted strings will get trimmed (leading/trailing spaces)\n if (typeof data.rawValue === 'string') {\n const trimmed = data.rawValue.trim();\n // trimmed empty string without quotes gets treated as undefined\n if (trimmed === '') this.value = undefined;\n else this.value = autoCoerce(trimmed);\n } else {\n this.value = autoCoerce(data.rawValue);\n }\n } else {\n const quoteChar = data.quote.substring(0, 1);\n this.value = data.rawValue\n .slice(data.quote.length, -1 * data.quote.length)\n .replaceAll(`\\\\${quoteChar}`, quoteChar);\n }\n }\n\n get unescapedValue() {\n if (typeof this.value !== 'string') return this.value;\n let unescaped = this.value;\n // replace escaped \"$\" (if not in single quotes)\n if (this.data.quote !== \"'\") {\n unescaped = unescaped.replaceAll('\\\\$', '$');\n }\n // replace escaped newlines (if not double quotes or backticks)\n if (this.data.quote === '\"' || this.data.quote === '`') {\n unescaped = unescaped.replaceAll('\\\\n', '\\n');\n }\n return unescaped;\n }\n\n toString() {\n // TODO: smarter logic to preserve the original value\n // for example with this logic, we may see 123.0 -> 123\n let strVal = String(this.value);\n if (this.data.quote) {\n strVal = strVal.replaceAll(this.data.quote, `\\\\${this.data.quote}`);\n }\n return `${this.data.quote || ''}${strVal}${this.data.quote || ''}`;\n }\n}\n\nexport class ParsedEnvSpecKeyValuePair {\n constructor(public data: {\n key: string;\n val: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall,\n }) {}\n\n get key() {\n return this.data.key;\n }\n\n get value() {\n return this.data.val;\n }\n\n toString() {\n return `${this.key}=${this.data.val.toString()}`;\n }\n}\nexport class ParsedEnvSpecFunctionArgs {\n constructor(public data: {\n values: Array<ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecKeyValuePair>;\n _location?: any;\n }) {}\n\n get values() {\n return this.data.values;\n }\n\n get simplifiedValues(): Array<any> | Record<string, any> {\n if (this.data.values.length === 0) return [];\n const vals = this.data.values;\n if (vals.every((i) => i instanceof ParsedEnvSpecStaticValue)) {\n return vals.map((val) => val.value);\n } else if (vals.every((i) => i instanceof ParsedEnvSpecKeyValuePair)) {\n const obj = {} as Record<string, any>;\n vals.forEach((val) => {\n if (val.value instanceof ParsedEnvSpecStaticValue) {\n obj[val.key] = val.value.value;\n }\n });\n return obj;\n } else {\n throw new Error('Invalid function args');\n }\n }\n\n toString() {\n let s = '(';\n s += this.data.values.map((val) => val.toString()).join(', ');\n s += ')';\n return s;\n }\n}\n\nexport class ParsedEnvSpecFunctionCall {\n constructor(public data: {\n name: string;\n args: ParsedEnvSpecFunctionArgs;\n _location?: any;\n }) {}\n\n get name() {\n return this.data.name;\n }\n get simplifiedArgs() {\n return this.data.args.simplifiedValues;\n }\n\n toString() {\n // args will include the `()`\n return this.data.name + this.data.args.toString();\n }\n}\n\n\nexport class ParsedEnvSpecDecorator {\n value?: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs;\n\n constructor(public data: {\n name: string;\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;\n isBareFnCall?: boolean; // true if decorator is a bare fn call (eg: @import(...))\n _location?: any;\n }) {\n // bare decorator is equivalent to `@decorator=true`\n // `@required` === `@required=true`\n if (!this.data.value) {\n this.value = new ParsedEnvSpecStaticValue({ rawValue: true, isImplicit: true });\n } else {\n // process expansion -- triggers $ expansion (eg: \"${VAR}\" => `ref(VAR)`)/\n const expanded = expand(this.data.value);\n if (expanded instanceof ParsedEnvSpecKeyValuePair) {\n throw new Error('Unexpected key-value pair found in config item');\n }\n this.value = expanded;\n }\n }\n\n get name() {\n return this.data.name;\n }\n get isBareFnCall() {\n return !!this.data.isBareFnCall;\n }\n get bareFnArgs() {\n if (this.isBareFnCall && this.value instanceof ParsedEnvSpecFunctionArgs) {\n return this.value;\n }\n }\n\n get simplifiedValue() {\n if (this.value instanceof ParsedEnvSpecStaticValue) {\n return this.value.value;\n }\n }\n toString() {\n let s = `@${this.name}`;\n if (!this.data.value) return s; // bare decorator, ex: `@required`\n // bare fn call looks like `@import(asdf)` so no `=`\n if (!this.isBareFnCall) s += '=';\n // let the value stringify itself\n s += this.data.value.toString();\n return s;\n }\n}\n\n\nexport class ParsedEnvSpecComment {\n constructor(public data: {\n contents: string;\n leadingSpace?: string;\n _location?: any;\n }) {}\n\n get contents() {\n return this.data.contents;\n }\n\n toString() {\n return `#${this.data.leadingSpace || ''}${this.data.contents}`;\n }\n}\nexport class ParsedEnvSpecDecoratorComment {\n constructor(public data: {\n decorators: Array<ParsedEnvSpecDecorator>;\n leadingSpace?: string;\n postComment?: any;\n _location?: any;\n }) {}\n\n get decorators() {\n return this.data.decorators;\n }\n\n get postComment() {\n return this.data.postComment;\n }\n\n toString() {\n let s = '#';\n s += this.data.leadingSpace || '';\n s += this.data.decorators.map((d) => d.toString()).join(' ');\n if (this.data.postComment) s += ` ${this.data.postComment.toString()}`;\n return s;\n }\n}\n\nfunction getDecoratorsObject(\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined>,\n) {\n const decObj = {} as Record<string, ParsedEnvSpecDecorator>;\n comments.forEach((comment) => {\n if (comment instanceof ParsedEnvSpecDecoratorComment) {\n comment.decorators.forEach((decorator) => {\n decObj[decorator.name] = decorator;\n });\n }\n });\n return decObj;\n}\n\nfunction getDecoratorsArray(\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined>,\n) {\n const decArr = [] as Array<ParsedEnvSpecDecorator>;\n comments.forEach((comment) => {\n if (comment instanceof ParsedEnvSpecDecoratorComment) {\n decArr.push(...comment.decorators);\n }\n });\n return decArr;\n}\n\nexport class ParsedEnvSpecCommentBlock {\n constructor(public data: {\n comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;\n divider: ParsedEnvSpecDivider | null;\n _location?: any;\n }) {}\n\n get comments() {\n return this.data.comments;\n }\n\n get divider() {\n return this.data.divider || undefined;\n }\n\n get decoratorsObject() {\n return getDecoratorsObject(this.data.comments);\n }\n get decoratorsArray() {\n return getDecoratorsArray(this.data.comments);\n }\n\n toString() {\n return [\n ...this.data.comments.map((comment) => comment.toString()),\n ...this.data.divider ? [this.data.divider.toString()] : [],\n ].join('\\n');\n }\n}\n\nexport class ParsedEnvSpecBlankLine {\n constructor(public data: {\n _location?: any;\n }) {}\n\n toString() {\n return '';\n }\n}\n\n\nexport class ParsedEnvSpecConfigItem {\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;\n\n constructor(public data: {\n key: string;\n value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;\n preComments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;\n postComment: ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined;\n _location?: any;\n }) {\n if (this.data.value) {\n const expanded = expand(this.data.value!);\n if (expanded instanceof ParsedEnvSpecKeyValuePair) {\n throw new Error('Nested key-value pair found in config item');\n } else if (expanded instanceof ParsedEnvSpecFunctionArgs) {\n throw new Error('Top-level config item cannot be a bare function args');\n }\n this.value = expanded;\n }\n }\n\n get key() {\n return this.data.key;\n }\n\n get decoratorsArray() {\n return getDecoratorsArray([...this.data.preComments, this.data.postComment]);\n }\n\n get decoratorsObject() {\n return getDecoratorsObject([...this.data.preComments, this.data.postComment]);\n }\n\n get description() {\n const regularComments = this.data.preComments.filter((comment) => (comment instanceof ParsedEnvSpecComment));\n return regularComments.map((comment) => comment.contents).join('\\n');\n }\n\n toString() {\n let s = '';\n for (const comment of this.data.preComments) s += `${comment.toString()}\\n`;\n s += `${this.key}=`;\n if (this.data.value) s += `${this.data.value.toString()}`;\n if (this.data.postComment) s += ` ${this.data.postComment.toString()}`;\n return s;\n }\n}\n\n// these are the 4 types that can be at the root level\ntype ParsedEnvSpecFileNode = ParsedEnvSpecCommentBlock\n | ParsedEnvSpecDivider\n | ParsedEnvSpecConfigItem\n | ParsedEnvSpecBlankLine;\n\n\nexport class ParsedEnvSpecFile {\n contents: Array<ParsedEnvSpecFileNode>;\n constructor(_contents: Array<ParsedEnvSpecFileNode>) {\n this.contents = _contents;\n }\n\n get configItems() {\n return this.contents.filter((item) => item instanceof ParsedEnvSpecConfigItem);\n }\n get header() {\n // header is a comment block at the the start of the file that ends with a divider\n // it may be preceeded by blank lines only\n for (const item of this.contents) {\n if (item instanceof ParsedEnvSpecCommentBlock && item.divider) {\n return item;\n } else if (!(item instanceof ParsedEnvSpecBlankLine)) {\n return;\n }\n }\n }\n get decoratorsObject() {\n return this.header?.decoratorsObject ?? {};\n }\n get decoratorsArray() {\n return this.header?.decoratorsArray ?? [];\n }\n\n toString() {\n return this.contents.map((item) => item.toString()).join('\\n');\n }\n /**\n * simple helper to convert an object in a basic case\n * mostly useful for comparison with other env parsers\n * */\n toSimpleObj() {\n const obj = {} as Record<string, any>;\n for (const item of this.contents) {\n if (item instanceof ParsedEnvSpecConfigItem) {\n if (item.value instanceof ParsedEnvSpecStaticValue) {\n obj[item.key] = item.value.value ?? '';\n }\n }\n }\n return obj;\n }\n}\n","import {\n ParsedEnvSpecFunctionArgs, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, ParsedEnvSpecStaticValue,\n} from './classes';\n\n// const EXPAND_VAR_REGEX_WITH_SIMPLE = /\\$({([a-zA-Z_][a-zA-Z0-9_.]*)}|([a-zA-Z_][a-zA-Z0-9_]*))/g;\nconst EXPAND_VAR_BRACKETED_REGEX = /(?<!\\\\)\\${([a-zA-Z_][a-zA-Z0-9_.]*)((:?-)([^}]+))?}/g;\nconst EXPAND_VAR_SIMPLE_REGEX = /(?<!\\\\)\\$([a-zA-Z_][a-zA-Z0-9_]*)/g;\nconst EXPAND_EXEC_REGEX = /\\$\\(([^)]+)\\)/g;\n\n\nfunction expandExecs(staticVal: ParsedEnvSpecStaticValue, _opts?: {}) {\n if (typeof staticVal.value !== 'string') return staticVal;\n const quote = staticVal.data.quote;\n const quoteStr = quote ?? '';\n // single quoted strings are not expanded!\n if (quote === \"'\") return staticVal;\n\n const execMatches = Array.from(staticVal.value.matchAll(EXPAND_EXEC_REGEX));\n\n // if no matches - we just return the original value\n if (execMatches.length === 0) return staticVal;\n\n // otherwise, we expand the transform each match into `exec` fn calls\n // and return a concat with everything together\n let lastIndex = 0;\n const parts = [] as Array<ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall>;\n for (const match of execMatches) {\n // extract text before exec -- ex: `pretext-$(exec command)`\n if (lastIndex < match.index) {\n const preText = staticVal.value.slice(lastIndex, match.index);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${preText}${quoteStr}`, quote }));\n }\n\n // extract exec command\n const shellCmd = match[1];\n parts.push(new ParsedEnvSpecFunctionCall({\n name: 'exec',\n args: new ParsedEnvSpecFunctionArgs({\n values: [new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${shellCmd}${quoteStr}`, quote })],\n }),\n }));\n lastIndex = match.index + match[0].length;\n }\n // extract any remaining text after the last exec\n if (lastIndex < staticVal.value.length) {\n const postText = staticVal.value.slice(lastIndex);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${postText}${quoteStr}`, quote }));\n }\n\n // if there's only one part, we can just return it (ex: `VAR=$(whoami)`)\n if (parts.length === 1) return parts[0];\n // otherwise we concat all the parts together\n return new ParsedEnvSpecFunctionCall({\n name: 'concat',\n args: new ParsedEnvSpecFunctionArgs({\n values: parts,\n }),\n });\n}\n\nfunction expandRefs(staticVal: ParsedEnvSpecStaticValue, mode: 'simple' | 'bracketed') {\n if (typeof staticVal.value !== 'string') return staticVal;\n const quote = staticVal.data.quote;\n const quoteStr = quote ?? '';\n if (quote === \"'\") return staticVal;\n\n const varMatches = Array.from(staticVal.value.matchAll(mode === 'simple' ? EXPAND_VAR_SIMPLE_REGEX : EXPAND_VAR_BRACKETED_REGEX));\n if (varMatches.length === 0) return staticVal;\n\n let lastIndex = 0;\n const parts = [] as Array<any>;\n for (const match of varMatches) {\n // extract text before exec\n if (lastIndex < match.index) {\n const preText = staticVal.value.slice(lastIndex, match.index);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${preText}${quoteStr}`, quote }));\n }\n\n // extract var\n const varName = match[1];\n let defaultOperator: string | undefined; // ex: \":-\" or \"-\"\n let defaultVal: string | undefined; // currently not doing any fancy parsing on this, will just be a string\n if (mode === 'bracketed') {\n // TODO: do we want to support different behaviour based on the operator?\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n defaultOperator = match[3];\n defaultVal = match[4];\n }\n const refFnCall = new ParsedEnvSpecFunctionCall({\n name: 'ref',\n args: new ParsedEnvSpecFunctionArgs({\n values: [new ParsedEnvSpecStaticValue({ rawValue: varName })],\n }),\n });\n if (defaultVal) {\n parts.push(new ParsedEnvSpecFunctionCall({\n name: 'fallback',\n args: new ParsedEnvSpecFunctionArgs({\n values: [refFnCall, new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${defaultVal}${quoteStr}`, quote })],\n }),\n }));\n } else {\n parts.push(refFnCall);\n }\n lastIndex = match.index + match[0].length;\n }\n if (lastIndex < staticVal.value.length) {\n const postText = staticVal.value.slice(lastIndex);\n parts.push(new ParsedEnvSpecStaticValue({ rawValue: `${quoteStr}${postText}${quoteStr}`, quote }));\n }\n\n // if only a single part, just return it (ex: `VAR=${OTHERVAR}`)\n if (parts.length === 1) return parts[0];\n // otherwise, concat all the parts together\n return new ParsedEnvSpecFunctionCall({\n name: 'concat',\n args: new ParsedEnvSpecFunctionArgs({\n values: parts,\n }),\n });\n}\n\n\ntype ParsedEnvSpecValueNode = ParsedEnvSpecStaticValue\n| ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | ParsedEnvSpecKeyValuePair;\n\n/**\n * helper used by expansion to recursively expand values\n * */\nfunction expandHelper(\n val: ParsedEnvSpecValueNode,\n expandStaticFn: (staticVal: ParsedEnvSpecStaticValue) => ParsedEnvSpecValueNode,\n): ParsedEnvSpecValueNode {\n // if function call, expand each arg\n if (val instanceof ParsedEnvSpecFunctionCall) {\n const fnName = val.name;\n // expand each arg, and then flatten unnecessery nested concat fns\n const newConcatArgs = [] as Array<ParsedEnvSpecValueNode>;\n val.data.args.values.forEach((v) => {\n const expandedArg = expandHelper(v, expandStaticFn);\n // special case for concat so we flatten unnecessery nested concat fns\n if (\n fnName === 'concat'\n && expandedArg instanceof ParsedEnvSpecFunctionCall\n && expandedArg.name === 'concat'\n ) {\n newConcatArgs.push(...expandedArg.data.args.values);\n } else {\n newConcatArgs.push(expandedArg);\n }\n });\n\n return new ParsedEnvSpecFunctionCall({\n name: fnName,\n args: new ParsedEnvSpecFunctionArgs({\n values: newConcatArgs as any,\n }),\n });\n } else if (val instanceof ParsedEnvSpecFunctionArgs) {\n // expand each arg\n const newArgs = val.data.values.map((v) => expandHelper(v, expandStaticFn));\n return new ParsedEnvSpecFunctionArgs({\n values: newArgs as any,\n });\n // if key-value pair, expand value\n } else if (val instanceof ParsedEnvSpecKeyValuePair) {\n const expandedVal = expandHelper(val.value, expandStaticFn);\n if (expandedVal instanceof ParsedEnvSpecKeyValuePair) throw new Error('Nested key-value pair found in concat');\n return new ParsedEnvSpecKeyValuePair({\n key: val.key,\n val: expandedVal as any,\n });\n } else if (val instanceof ParsedEnvSpecStaticValue) {\n // here we actually do the expansion on string values\n\n // skip expansion if value is number/boolean/etc\n if (typeof val.value !== 'string') return val;\n // skip expansion on single-quoted strings\n if (val.data.quote === \"'\") return val;\n\n return expandStaticFn(val);\n }\n throw new Error('Unknown value type');\n}\n\n/**\n * takes in a value node and runs expansion (execs, refs) according to options\n * returns a new value node with all expansions applied\n * */\nexport function expand(\n val: ParsedEnvSpecValueNode,\n // TODO: add options to enable/disable specific expansion types and handling\n _opts?: {},\n): ParsedEnvSpecValueNode {\n // TODO: add options\n let expandedVal = val;\n expandedVal = expandHelper(expandedVal, (v) => expandExecs(v));\n expandedVal = expandHelper(expandedVal, (v) => expandRefs(v, 'simple'));\n expandedVal = expandHelper(expandedVal, (v) => expandRefs(v, 'bracketed'));\n return expandedVal;\n}\n"]}
|
|
@@ -72,17 +72,20 @@ declare class ParsedEnvSpecFunctionCall {
|
|
|
72
72
|
declare class ParsedEnvSpecDecorator {
|
|
73
73
|
data: {
|
|
74
74
|
name: string;
|
|
75
|
-
|
|
75
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;
|
|
76
|
+
isBareFnCall?: boolean;
|
|
76
77
|
_location?: any;
|
|
77
78
|
};
|
|
79
|
+
value?: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs;
|
|
78
80
|
constructor(data: {
|
|
79
81
|
name: string;
|
|
80
|
-
|
|
82
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;
|
|
83
|
+
isBareFnCall?: boolean;
|
|
81
84
|
_location?: any;
|
|
82
85
|
});
|
|
83
86
|
get name(): string;
|
|
87
|
+
get isBareFnCall(): boolean;
|
|
84
88
|
get bareFnArgs(): ParsedEnvSpecFunctionArgs | undefined;
|
|
85
|
-
get value(): ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
86
89
|
get simplifiedValue(): any;
|
|
87
90
|
toString(): string;
|
|
88
91
|
}
|
|
@@ -117,7 +120,6 @@ declare class ParsedEnvSpecDecoratorComment {
|
|
|
117
120
|
get postComment(): any;
|
|
118
121
|
toString(): string;
|
|
119
122
|
}
|
|
120
|
-
type ParsedEnvSpecDecoratorValue = (ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs);
|
|
121
123
|
declare class ParsedEnvSpecCommentBlock {
|
|
122
124
|
data: {
|
|
123
125
|
comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;
|
|
@@ -152,7 +154,7 @@ declare class ParsedEnvSpecConfigItem {
|
|
|
152
154
|
postComment: ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined;
|
|
153
155
|
_location?: any;
|
|
154
156
|
};
|
|
155
|
-
|
|
157
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
156
158
|
constructor(data: {
|
|
157
159
|
key: string;
|
|
158
160
|
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
@@ -161,11 +163,9 @@ declare class ParsedEnvSpecConfigItem {
|
|
|
161
163
|
_location?: any;
|
|
162
164
|
});
|
|
163
165
|
get key(): string;
|
|
164
|
-
get
|
|
166
|
+
get decoratorsArray(): ParsedEnvSpecDecorator[];
|
|
165
167
|
get decoratorsObject(): Record<string, ParsedEnvSpecDecorator>;
|
|
166
168
|
get description(): string;
|
|
167
|
-
processExpansion(_opts?: {}): void;
|
|
168
|
-
private get resolverDef();
|
|
169
169
|
toString(): string;
|
|
170
170
|
}
|
|
171
171
|
type ParsedEnvSpecFileNode = ParsedEnvSpecCommentBlock | ParsedEnvSpecDivider | ParsedEnvSpecConfigItem | ParsedEnvSpecBlankLine;
|
|
@@ -184,4 +184,4 @@ declare class ParsedEnvSpecFile {
|
|
|
184
184
|
toSimpleObj(): Record<string, any>;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
export { ParsedEnvSpecFile as P, ParsedEnvSpecDecorator as a, ParsedEnvSpecStaticValue as b, ParsedEnvSpecFunctionCall as c,
|
|
187
|
+
export { ParsedEnvSpecFile as P, ParsedEnvSpecDecorator as a, ParsedEnvSpecStaticValue as b, ParsedEnvSpecFunctionCall as c, ParsedEnvSpecFunctionArgs as d, ParsedEnvSpecKeyValuePair as e, ParsedEnvSpecDivider as f, ParsedEnvSpecComment as g, ParsedEnvSpecDecoratorComment as h, ParsedEnvSpecCommentBlock as i, ParsedEnvSpecBlankLine as j, ParsedEnvSpecConfigItem as k };
|
|
@@ -72,17 +72,20 @@ declare class ParsedEnvSpecFunctionCall {
|
|
|
72
72
|
declare class ParsedEnvSpecDecorator {
|
|
73
73
|
data: {
|
|
74
74
|
name: string;
|
|
75
|
-
|
|
75
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;
|
|
76
|
+
isBareFnCall?: boolean;
|
|
76
77
|
_location?: any;
|
|
77
78
|
};
|
|
79
|
+
value?: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs;
|
|
78
80
|
constructor(data: {
|
|
79
81
|
name: string;
|
|
80
|
-
|
|
82
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | undefined;
|
|
83
|
+
isBareFnCall?: boolean;
|
|
81
84
|
_location?: any;
|
|
82
85
|
});
|
|
83
86
|
get name(): string;
|
|
87
|
+
get isBareFnCall(): boolean;
|
|
84
88
|
get bareFnArgs(): ParsedEnvSpecFunctionArgs | undefined;
|
|
85
|
-
get value(): ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
86
89
|
get simplifiedValue(): any;
|
|
87
90
|
toString(): string;
|
|
88
91
|
}
|
|
@@ -117,7 +120,6 @@ declare class ParsedEnvSpecDecoratorComment {
|
|
|
117
120
|
get postComment(): any;
|
|
118
121
|
toString(): string;
|
|
119
122
|
}
|
|
120
|
-
type ParsedEnvSpecDecoratorValue = (ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs);
|
|
121
123
|
declare class ParsedEnvSpecCommentBlock {
|
|
122
124
|
data: {
|
|
123
125
|
comments: Array<ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment>;
|
|
@@ -152,7 +154,7 @@ declare class ParsedEnvSpecConfigItem {
|
|
|
152
154
|
postComment: ParsedEnvSpecDecoratorComment | ParsedEnvSpecComment | undefined;
|
|
153
155
|
_location?: any;
|
|
154
156
|
};
|
|
155
|
-
|
|
157
|
+
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
156
158
|
constructor(data: {
|
|
157
159
|
key: string;
|
|
158
160
|
value: ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | undefined;
|
|
@@ -161,11 +163,9 @@ declare class ParsedEnvSpecConfigItem {
|
|
|
161
163
|
_location?: any;
|
|
162
164
|
});
|
|
163
165
|
get key(): string;
|
|
164
|
-
get
|
|
166
|
+
get decoratorsArray(): ParsedEnvSpecDecorator[];
|
|
165
167
|
get decoratorsObject(): Record<string, ParsedEnvSpecDecorator>;
|
|
166
168
|
get description(): string;
|
|
167
|
-
processExpansion(_opts?: {}): void;
|
|
168
|
-
private get resolverDef();
|
|
169
169
|
toString(): string;
|
|
170
170
|
}
|
|
171
171
|
type ParsedEnvSpecFileNode = ParsedEnvSpecCommentBlock | ParsedEnvSpecDivider | ParsedEnvSpecConfigItem | ParsedEnvSpecBlankLine;
|
|
@@ -184,4 +184,4 @@ declare class ParsedEnvSpecFile {
|
|
|
184
184
|
toSimpleObj(): Record<string, any>;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
export { ParsedEnvSpecFile as P, ParsedEnvSpecDecorator as a, ParsedEnvSpecStaticValue as b, ParsedEnvSpecFunctionCall as c,
|
|
187
|
+
export { ParsedEnvSpecFile as P, ParsedEnvSpecDecorator as a, ParsedEnvSpecStaticValue as b, ParsedEnvSpecFunctionCall as c, ParsedEnvSpecFunctionArgs as d, ParsedEnvSpecKeyValuePair as e, ParsedEnvSpecDivider as f, ParsedEnvSpecComment as g, ParsedEnvSpecDecoratorComment as h, ParsedEnvSpecCommentBlock as i, ParsedEnvSpecBlankLine as j, ParsedEnvSpecConfigItem as k };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as ParsedEnvSpecFile, a as ParsedEnvSpecDecorator, b as ParsedEnvSpecStaticValue, c as ParsedEnvSpecFunctionCall, d as ParsedEnvSpecKeyValuePair } from './classes-
|
|
2
|
-
export {
|
|
1
|
+
import { P as ParsedEnvSpecFile, a as ParsedEnvSpecDecorator, b as ParsedEnvSpecStaticValue, c as ParsedEnvSpecFunctionCall, d as ParsedEnvSpecFunctionArgs, e as ParsedEnvSpecKeyValuePair } from './classes-Gq5ZJ7ej.mjs';
|
|
2
|
+
export { j as ParsedEnvSpecBlankLine, g as ParsedEnvSpecComment, i as ParsedEnvSpecCommentBlock, k as ParsedEnvSpecConfigItem, h as ParsedEnvSpecDecoratorComment, f as ParsedEnvSpecDivider } from './classes-Gq5ZJ7ej.mjs';
|
|
3
3
|
|
|
4
4
|
declare function ensureHeader(file: ParsedEnvSpecFile, newHeaderContents?: string): void;
|
|
5
5
|
declare function createDummyDecoratorNode(decoratorName: string, valueStr: string, opts?: {
|
|
@@ -23,7 +23,7 @@ declare const envSpecUpdater: {
|
|
|
23
23
|
deleteItem: typeof deleteItem;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
type ParsedEnvSpecValueNode = ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecKeyValuePair;
|
|
26
|
+
type ParsedEnvSpecValueNode = ParsedEnvSpecStaticValue | ParsedEnvSpecFunctionCall | ParsedEnvSpecFunctionArgs | ParsedEnvSpecKeyValuePair;
|
|
27
27
|
/**
|
|
28
28
|
* takes in a value node and runs expansion (execs, refs) according to options
|
|
29
29
|
* returns a new value node with all expansions applied
|
|
@@ -32,4 +32,4 @@ declare function expand(val: ParsedEnvSpecValueNode, _opts?: {}): ParsedEnvSpecV
|
|
|
32
32
|
|
|
33
33
|
declare function parseEnvSpecDotEnvFile(source: string): ParsedEnvSpecFile;
|
|
34
34
|
|
|
35
|
-
export { ParsedEnvSpecDecorator, ParsedEnvSpecFile, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, ParsedEnvSpecStaticValue, envSpecUpdater, expand, parseEnvSpecDotEnvFile };
|
|
35
|
+
export { ParsedEnvSpecDecorator, ParsedEnvSpecFile, ParsedEnvSpecFunctionArgs, ParsedEnvSpecFunctionCall, ParsedEnvSpecKeyValuePair, ParsedEnvSpecStaticValue, envSpecUpdater, expand, parseEnvSpecDotEnvFile };
|