envapt 5.0.3 → 5.1.0
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/CHANGELOG.md +6 -0
- package/dist/Debug.cjs +2 -0
- package/dist/Debug.cjs.map +1 -0
- package/dist/Debug.d.cts +13 -0
- package/dist/Debug.d.cts.map +1 -0
- package/dist/Debug.d.mts +13 -0
- package/dist/Debug.d.mts.map +1 -0
- package/dist/Debug.mjs +2 -0
- package/dist/Debug.mjs.map +1 -0
- package/dist/Dotenv.cjs +3 -0
- package/dist/Dotenv.cjs.map +1 -0
- package/dist/Dotenv.d.cts +17 -0
- package/dist/Dotenv.d.cts.map +1 -0
- package/dist/Dotenv.d.mts +17 -0
- package/dist/Dotenv.d.mts.map +1 -0
- package/dist/Dotenv.mjs +3 -0
- package/dist/Dotenv.mjs.map +1 -0
- package/dist/Envapter.cjs +2 -0
- package/dist/Envapter.cjs.map +1 -0
- package/dist/Envapter.d.cts +70 -0
- package/dist/Envapter.d.cts.map +1 -0
- package/dist/Envapter.d.mts +70 -0
- package/dist/Envapter.d.mts.map +1 -0
- package/dist/Envapter.mjs +2 -0
- package/dist/Envapter.mjs.map +1 -0
- package/dist/Error.cjs +2 -0
- package/dist/Error.cjs.map +1 -0
- package/dist/Error.d.cts +68 -0
- package/dist/Error.d.cts.map +1 -0
- package/dist/Error.d.mts +68 -0
- package/dist/Error.d.mts.map +1 -0
- package/dist/Error.mjs +2 -0
- package/dist/Error.mjs.map +1 -0
- package/dist/StandardSchema.d.cts +59 -0
- package/dist/StandardSchema.d.cts.map +1 -0
- package/dist/StandardSchema.d.mts +59 -0
- package/dist/StandardSchema.d.mts.map +1 -0
- package/dist/TemplateResolver.cjs +2 -0
- package/dist/TemplateResolver.cjs.map +1 -0
- package/dist/TemplateResolver.d.cts +17 -0
- package/dist/TemplateResolver.d.cts.map +1 -0
- package/dist/TemplateResolver.d.mts +17 -0
- package/dist/TemplateResolver.d.mts.map +1 -0
- package/dist/TemplateResolver.mjs +2 -0
- package/dist/TemplateResolver.mjs.map +1 -0
- package/dist/Validators.cjs +2 -0
- package/dist/Validators.cjs.map +1 -0
- package/dist/Validators.mjs +2 -0
- package/dist/Validators.mjs.map +1 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.cjs.map +1 -1
- package/dist/config.mjs +1 -1
- package/dist/config.mjs.map +1 -1
- package/dist/converters/BuiltInConverters.cjs +2 -0
- package/dist/converters/BuiltInConverters.cjs.map +1 -0
- package/dist/converters/BuiltInConverters.mjs +2 -0
- package/dist/converters/BuiltInConverters.mjs.map +1 -0
- package/dist/converters/Converters.cjs +2 -0
- package/dist/converters/Converters.cjs.map +1 -0
- package/dist/converters/Converters.d.cts +93 -0
- package/dist/converters/Converters.d.cts.map +1 -0
- package/dist/converters/Converters.d.mts +93 -0
- package/dist/converters/Converters.d.mts.map +1 -0
- package/dist/converters/Converters.mjs +2 -0
- package/dist/converters/Converters.mjs.map +1 -0
- package/dist/converters/ListOfBuiltInConverters.cjs +2 -0
- package/dist/converters/ListOfBuiltInConverters.cjs.map +1 -0
- package/dist/converters/ListOfBuiltInConverters.mjs +2 -0
- package/dist/converters/ListOfBuiltInConverters.mjs.map +1 -0
- package/dist/converters/ValueConverter.cjs +2 -0
- package/dist/converters/ValueConverter.cjs.map +1 -0
- package/dist/converters/ValueConverter.d.cts +25 -0
- package/dist/converters/ValueConverter.d.cts.map +1 -0
- package/dist/converters/ValueConverter.d.mts +25 -0
- package/dist/converters/ValueConverter.d.mts.map +1 -0
- package/dist/converters/ValueConverter.mjs +2 -0
- package/dist/converters/ValueConverter.mjs.map +1 -0
- package/dist/core/AdvancedMethods.cjs +2 -0
- package/dist/core/AdvancedMethods.cjs.map +1 -0
- package/dist/core/AdvancedMethods.d.cts +76 -0
- package/dist/core/AdvancedMethods.d.cts.map +1 -0
- package/dist/core/AdvancedMethods.d.mts +76 -0
- package/dist/core/AdvancedMethods.d.mts.map +1 -0
- package/dist/core/AdvancedMethods.mjs +2 -0
- package/dist/core/AdvancedMethods.mjs.map +1 -0
- package/dist/core/EnvapterBase.cjs +2 -0
- package/dist/core/EnvapterBase.cjs.map +1 -0
- package/dist/core/EnvapterBase.d.cts +105 -0
- package/dist/core/EnvapterBase.d.cts.map +1 -0
- package/dist/core/EnvapterBase.d.mts +105 -0
- package/dist/core/EnvapterBase.d.mts.map +1 -0
- package/dist/core/EnvapterBase.mjs +2 -0
- package/dist/core/EnvapterBase.mjs.map +1 -0
- package/dist/core/EnvironmentMethods.cjs +2 -0
- package/dist/core/EnvironmentMethods.cjs.map +1 -0
- package/dist/core/EnvironmentMethods.d.cts +132 -0
- package/dist/core/EnvironmentMethods.d.cts.map +1 -0
- package/dist/core/EnvironmentMethods.d.mts +132 -0
- package/dist/core/EnvironmentMethods.d.mts.map +1 -0
- package/dist/core/EnvironmentMethods.mjs +2 -0
- package/dist/core/EnvironmentMethods.mjs.map +1 -0
- package/dist/core/PrimitiveMethods.cjs +2 -0
- package/dist/core/PrimitiveMethods.cjs.map +1 -0
- package/dist/core/PrimitiveMethods.d.cts +70 -0
- package/dist/core/PrimitiveMethods.d.cts.map +1 -0
- package/dist/core/PrimitiveMethods.d.mts +70 -0
- package/dist/core/PrimitiveMethods.d.mts.map +1 -0
- package/dist/core/PrimitiveMethods.mjs +2 -0
- package/dist/core/PrimitiveMethods.mjs.map +1 -0
- package/dist/decorators/Envapt.cjs +2 -0
- package/dist/decorators/Envapt.cjs.map +1 -0
- package/dist/decorators/Envapt.d.cts +233 -0
- package/dist/decorators/Envapt.d.cts.map +1 -0
- package/dist/decorators/Envapt.d.mts +233 -0
- package/dist/decorators/Envapt.d.mts.map +1 -0
- package/dist/decorators/Envapt.mjs +2 -0
- package/dist/decorators/Envapt.mjs.map +1 -0
- package/dist/decorators/SugarDecorators.cjs +2 -0
- package/dist/decorators/SugarDecorators.cjs.map +1 -0
- package/dist/decorators/SugarDecorators.d.cts +34 -0
- package/dist/decorators/SugarDecorators.d.cts.map +1 -0
- package/dist/decorators/SugarDecorators.d.mts +34 -0
- package/dist/decorators/SugarDecorators.d.mts.map +1 -0
- package/dist/decorators/SugarDecorators.mjs +2 -0
- package/dist/decorators/SugarDecorators.mjs.map +1 -0
- package/dist/decorators/createPropertyDecorator.cjs +2 -0
- package/dist/decorators/createPropertyDecorator.cjs.map +1 -0
- package/dist/decorators/createPropertyDecorator.mjs +2 -0
- package/dist/decorators/createPropertyDecorator.mjs.map +1 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +14 -1127
- package/dist/index.d.mts +14 -1127
- package/dist/index.mjs +1 -2
- package/dist/types/Conversion.d.cts +128 -0
- package/dist/types/Conversion.d.cts.map +1 -0
- package/dist/types/Conversion.d.mts +128 -0
- package/dist/types/Conversion.d.mts.map +1 -0
- package/dist/types/Env.d.cts +17 -0
- package/dist/types/Env.d.cts.map +1 -0
- package/dist/types/Env.d.mts +17 -0
- package/dist/types/Env.d.mts.map +1 -0
- package/dist/types/Options.d.cts +39 -0
- package/dist/types/Options.d.cts.map +1 -0
- package/dist/types/Options.d.mts +39 -0
- package/dist/types/Options.d.mts.map +1 -0
- package/dist/types/Schema.d.cts +12 -0
- package/dist/types/Schema.d.cts.map +1 -0
- package/dist/types/Schema.d.mts +12 -0
- package/dist/types/Schema.d.mts.map +1 -0
- package/package.json +1 -1
- package/dist/Envapter-CBSM3v-5.cjs +0 -3
- package/dist/Envapter-CBSM3v-5.cjs.map +0 -1
- package/dist/Envapter-D8FEdzBR.mjs +0 -3
- package/dist/Envapter-D8FEdzBR.mjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import{Converters as e,isArrayOf as t}from"./converters/Converters.mjs";import{EnvaptError as n,EnvaptErrorCodes as r}from"./Error.mjs";import{Environment as i}from"./core/EnvironmentMethods.mjs";import{Envapter as a}from"./Envapter.mjs";import{Envapt as o}from"./decorators/Envapt.mjs";import{EnvBool as s,EnvNum as c,EnvStr as l,EnvTime as u,EnvUrl as d}from"./decorators/SugarDecorators.mjs";export{e as Converters,s as EnvBool,c as EnvNum,l as EnvStr,u as EnvTime,d as EnvUrl,o as Envapt,n as EnvaptError,r as EnvaptErrorCodes,a as Envapter,i as Environment,t as isArrayOf};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { ArrayOf, ConverterToken, CustomElementConverter } from "../converters/Converters.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/Conversion.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Scalar built-in converter tokens (e.g. `'number'`, `'time'`).
|
|
6
|
+
* Excludes the array builder (see {@link ArrayOf}).
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
type BuiltInConverter = ConverterToken;
|
|
10
|
+
/**
|
|
11
|
+
* Primitive types supported by Envapter
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
type PrimitiveConstructor = typeof String | typeof Number | typeof Boolean | typeof BigInt | typeof Symbol;
|
|
15
|
+
/**
|
|
16
|
+
* String value from a .env file or environment variable
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
type BaseInput = string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Custom parser function type for environment variables
|
|
22
|
+
* @param raw - Raw string value from environment
|
|
23
|
+
* @param fallback - Fallback value if parsing fails
|
|
24
|
+
* @returns Parsed value of type T
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
type ConverterFunction<TFallback = unknown> = (raw: BaseInput, fallback?: TFallback) => TFallback;
|
|
28
|
+
/**
|
|
29
|
+
* Environment variable converter: a primitive constructor, a built-in scalar token, an `ArrayOf<...>`
|
|
30
|
+
* produced by {@link Converters.array}, or a custom parser function.
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
type EnvaptConverter<TFallback> = PrimitiveConstructor | BuiltInConverter | ArrayOf | ConverterFunction<TFallback>;
|
|
34
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
35
|
+
type JsonArray = JsonValue[];
|
|
36
|
+
interface JsonObject {
|
|
37
|
+
[key: string]: JsonValue;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* JSON value types for custom converters
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
type JsonValue = JsonPrimitive | JsonArray | JsonObject;
|
|
44
|
+
interface ConverterMap {
|
|
45
|
+
string: string;
|
|
46
|
+
number: number;
|
|
47
|
+
boolean: boolean;
|
|
48
|
+
bigint: bigint;
|
|
49
|
+
symbol: symbol;
|
|
50
|
+
integer: number;
|
|
51
|
+
float: number;
|
|
52
|
+
json: JsonValue;
|
|
53
|
+
url: URL;
|
|
54
|
+
regexp: RegExp;
|
|
55
|
+
date: Date;
|
|
56
|
+
time: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Type mapping for built-in scalar converters to their return types
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
type BuiltInConverterReturnType<ConverterKey extends BuiltInConverter> = ConverterMap[ConverterKey];
|
|
63
|
+
/**
|
|
64
|
+
* Return type for built-in converter functions
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
type ReturnValuesOfConverterFunctions = ConverterMap[BuiltInConverter];
|
|
68
|
+
/**
|
|
69
|
+
* Function type for built-in converter functions
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
type BuiltInConverterFunction = (...args: Parameters<(...args: any[]) => ReturnValuesOfConverterFunctions>) => ReturnValuesOfConverterFunctions | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Map of built-in converter functions
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
type MapOfConverterFunctions = Record<BuiltInConverter, BuiltInConverterFunction>;
|
|
78
|
+
/**
|
|
79
|
+
* Time unit types for duration conversions
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
type TimeUnit = 'ms' | 's' | 'm' | 'h' | 'd' | 'w';
|
|
83
|
+
/**
|
|
84
|
+
* Fallback type for time duration conversions
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
type TimeFallback = number | `${number}${TimeUnit}`;
|
|
88
|
+
/**
|
|
89
|
+
* Helper type for getter methods that conditionally return undefined based on whether a fallback is provided
|
|
90
|
+
* If fallback is provided, return ReturnType. If no fallback (undefined), return ReturnType | undefined.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
type ConditionalReturn<ReturnType, TFallback> = TFallback extends undefined ? ReturnType | undefined : ReturnType;
|
|
94
|
+
/**
|
|
95
|
+
* Inferred return type for a converter.
|
|
96
|
+
*
|
|
97
|
+
* - `ArrayOf<E>` resolves to the element type's return as an array. When `E` is a custom
|
|
98
|
+
* function, the function's return type drives the array element. When `E` is a scalar
|
|
99
|
+
* token, `ConverterMap` provides the element type.
|
|
100
|
+
* - Bare scalar tokens resolve through `ConverterMap`.
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
type InferConverterReturnType<TConverter> = TConverter extends ArrayOf<infer Element> ? Element extends BuiltInConverter ? ConverterMap[Element][] : Element extends CustomElementConverter<infer Returned> ? Returned[] : never : TConverter extends BuiltInConverter ? BuiltInConverterReturnType<TConverter> : never;
|
|
104
|
+
/**
|
|
105
|
+
* Type inference for the *fallback* slot of a converter. `Converters.Time` (scalar or array
|
|
106
|
+
* element) accepts {@link TimeFallback} / `TimeFallback[]`; everything else mirrors the
|
|
107
|
+
* return type. Add future asymmetric fallback/return converters to this conditional.
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
type InferConverterFallbackType<TConverter> = TConverter extends 'time' ? TimeFallback : TConverter extends ArrayOf<infer Element> ? Element extends 'time' ? TimeFallback[] : InferConverterReturnType<TConverter> : InferConverterReturnType<TConverter>;
|
|
111
|
+
/**
|
|
112
|
+
* Complete type inference for advanced converter methods
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
type AdvancedConverterReturn<TConverter, TFallback = undefined> = ConditionalReturn<InferConverterReturnType<TConverter>, TFallback>;
|
|
116
|
+
/**
|
|
117
|
+
* Type inference for primitive constructor return types
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
type InferPrimitiveReturnType<TConstructor extends PrimitiveConstructor> = TConstructor extends typeof String ? string : TConstructor extends typeof Number ? number : TConstructor extends typeof Boolean ? boolean : TConstructor extends typeof BigInt ? bigint : TConstructor extends typeof Symbol ? symbol : never;
|
|
121
|
+
/**
|
|
122
|
+
* Type inference for primitive fallback values
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
type InferPrimitiveFallbackType<TFallback extends string | number | boolean | bigint | symbol | undefined> = TFallback extends string ? string : TFallback extends number ? number : TFallback extends boolean ? boolean : TFallback extends bigint ? bigint : TFallback extends symbol ? symbol : undefined;
|
|
126
|
+
//#endregion
|
|
127
|
+
export type { AdvancedConverterReturn, BuiltInConverter, BuiltInConverterFunction, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveFallbackType, InferPrimitiveReturnType, JsonValue, MapOfConverterFunctions, PrimitiveConstructor, TimeFallback, TimeUnit };
|
|
128
|
+
//# sourceMappingURL=Conversion.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversion.d.cts","names":[],"sources":["../../src/types/Conversion.ts"],"mappings":";;;;;AAAgG;;;KAO3F,gBAAA,GAAmB,cAAc;AAAA;AAAA;;;AAAA,KAMjC,oBAAA,UAA8B,MAAA,UAAgB,MAAA,UAAgB,OAAA,UAAiB,MAAA,UAAgB,MAAA;;;;;KAM/F,SAAA;;;;;;;;KASA,iBAAA,yBAA0C,GAAA,EAAK,SAAA,EAAW,QAAA,GAAW,SAAA,KAAc,SAAA;AAfkB;;;;AAM5F;AAN4F,KAsBrG,eAAA,cAA6B,oBAAA,GAAuB,gBAAA,GAAmB,OAAA,GAAU,iBAAA,CAAkB,SAAA;AAAA,KAEnG,aAAA;AAAA,KACA,SAAA,GAAY,SAAS;AAAA,UAChB,UAAA;EAAA,CACL,GAAA,WAAc,SAAS;AAAA;;;;;KAOvB,SAAA,GAAY,aAAA,GAAgB,SAAA,GAAY,UAAA;AAAA,UAEnC,YAAA;EACN,MAAA;EACA,MAAA;EACA,OAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;EACA,KAAA;EACA,IAAA,EAAM,SAAA;EACN,GAAA,EAAK,GAAA;EACL,MAAA,EAAQ,MAAA;EACR,IAAA,EAAM,IAAA;EACN,IAAA;AAAA;;;;;KAOC,0BAAA,sBAAgD,gBAAA,IAAoB,YAAA,CAAa,YAAA;;;;AAjC2B;KAuC5G,gCAAA,GAAmC,YAAA,CAAa,gBAAgB;;;;AArCnD;KA2Cb,wBAAA,OACE,IAAA,EAAM,UAAA,KAAe,IAAA,YAAgB,gCAAA,MACvC,gCAAA;;;;AA5CqB;KAkDrB,uBAAA,GAA0B,MAAA,CAAO,gBAAA,EAAkB,wBAAA;;;;AAhD5B;KAsDvB,QAAA;;;;;KAMA,YAAA,wBAAoC,QAAQ;;;;;;KAO5C,iBAAA,0BAA2C,SAAA,qBAA8B,UAAA,eAAyB,UAAA;AA5DhD;AAAA;;;;;;;;AAAA,KAuElD,wBAAA,eACD,UAAA,SAAmB,OAAA,kBACb,OAAA,SAAgB,gBAAA,GACZ,YAAA,CAAa,OAAA,MACb,OAAA,SAAgB,sBAAA,mBACd,QAAA,aAEN,UAAA,SAAmB,gBAAA,GACjB,0BAAA,CAA2B,UAAA;;;;;;;KASlC,0BAAA,eAAyC,UAAA,kBACxC,YAAA,GACA,UAAA,SAAmB,OAAA,kBACjB,OAAA,kBACI,YAAA,KACA,wBAAA,CAAyB,UAAA,IAC7B,wBAAA,CAAyB,UAAA;;;;;KAM5B,uBAAA,sCAA6D,iBAAA,CAC9D,wBAAA,CAAyB,UAAA,GACzB,SAAA;;;;;KAOC,wBAAA,sBAA8C,oBAAA,IAAwB,YAAA,gBAA4B,MAAA,YAEjG,YAAA,gBAA4B,MAAA,YAE1B,YAAA,gBAA4B,OAAA,aAE1B,YAAA,gBAA4B,MAAA,YAE1B,YAAA,gBAA4B,MAAA;AAvGhC;AAAA;;;AAAA,KA+GH,0BAAA,8EACD,SAAA,2BAEM,SAAA,2BAEE,SAAA,6BAEE,SAAA,2BAEE,SAAA"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { ArrayOf, ConverterToken, CustomElementConverter } from "../converters/Converters.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/Conversion.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Scalar built-in converter tokens (e.g. `'number'`, `'time'`).
|
|
6
|
+
* Excludes the array builder (see {@link ArrayOf}).
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
type BuiltInConverter = ConverterToken;
|
|
10
|
+
/**
|
|
11
|
+
* Primitive types supported by Envapter
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
type PrimitiveConstructor = typeof String | typeof Number | typeof Boolean | typeof BigInt | typeof Symbol;
|
|
15
|
+
/**
|
|
16
|
+
* String value from a .env file or environment variable
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
type BaseInput = string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Custom parser function type for environment variables
|
|
22
|
+
* @param raw - Raw string value from environment
|
|
23
|
+
* @param fallback - Fallback value if parsing fails
|
|
24
|
+
* @returns Parsed value of type T
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
type ConverterFunction<TFallback = unknown> = (raw: BaseInput, fallback?: TFallback) => TFallback;
|
|
28
|
+
/**
|
|
29
|
+
* Environment variable converter: a primitive constructor, a built-in scalar token, an `ArrayOf<...>`
|
|
30
|
+
* produced by {@link Converters.array}, or a custom parser function.
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
type EnvaptConverter<TFallback> = PrimitiveConstructor | BuiltInConverter | ArrayOf | ConverterFunction<TFallback>;
|
|
34
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
35
|
+
type JsonArray = JsonValue[];
|
|
36
|
+
interface JsonObject {
|
|
37
|
+
[key: string]: JsonValue;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* JSON value types for custom converters
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
type JsonValue = JsonPrimitive | JsonArray | JsonObject;
|
|
44
|
+
interface ConverterMap {
|
|
45
|
+
string: string;
|
|
46
|
+
number: number;
|
|
47
|
+
boolean: boolean;
|
|
48
|
+
bigint: bigint;
|
|
49
|
+
symbol: symbol;
|
|
50
|
+
integer: number;
|
|
51
|
+
float: number;
|
|
52
|
+
json: JsonValue;
|
|
53
|
+
url: URL;
|
|
54
|
+
regexp: RegExp;
|
|
55
|
+
date: Date;
|
|
56
|
+
time: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Type mapping for built-in scalar converters to their return types
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
type BuiltInConverterReturnType<ConverterKey extends BuiltInConverter> = ConverterMap[ConverterKey];
|
|
63
|
+
/**
|
|
64
|
+
* Return type for built-in converter functions
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
type ReturnValuesOfConverterFunctions = ConverterMap[BuiltInConverter];
|
|
68
|
+
/**
|
|
69
|
+
* Function type for built-in converter functions
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
type BuiltInConverterFunction = (...args: Parameters<(...args: any[]) => ReturnValuesOfConverterFunctions>) => ReturnValuesOfConverterFunctions | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Map of built-in converter functions
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
type MapOfConverterFunctions = Record<BuiltInConverter, BuiltInConverterFunction>;
|
|
78
|
+
/**
|
|
79
|
+
* Time unit types for duration conversions
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
type TimeUnit = 'ms' | 's' | 'm' | 'h' | 'd' | 'w';
|
|
83
|
+
/**
|
|
84
|
+
* Fallback type for time duration conversions
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
type TimeFallback = number | `${number}${TimeUnit}`;
|
|
88
|
+
/**
|
|
89
|
+
* Helper type for getter methods that conditionally return undefined based on whether a fallback is provided
|
|
90
|
+
* If fallback is provided, return ReturnType. If no fallback (undefined), return ReturnType | undefined.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
type ConditionalReturn<ReturnType, TFallback> = TFallback extends undefined ? ReturnType | undefined : ReturnType;
|
|
94
|
+
/**
|
|
95
|
+
* Inferred return type for a converter.
|
|
96
|
+
*
|
|
97
|
+
* - `ArrayOf<E>` resolves to the element type's return as an array. When `E` is a custom
|
|
98
|
+
* function, the function's return type drives the array element. When `E` is a scalar
|
|
99
|
+
* token, `ConverterMap` provides the element type.
|
|
100
|
+
* - Bare scalar tokens resolve through `ConverterMap`.
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
type InferConverterReturnType<TConverter> = TConverter extends ArrayOf<infer Element> ? Element extends BuiltInConverter ? ConverterMap[Element][] : Element extends CustomElementConverter<infer Returned> ? Returned[] : never : TConverter extends BuiltInConverter ? BuiltInConverterReturnType<TConverter> : never;
|
|
104
|
+
/**
|
|
105
|
+
* Type inference for the *fallback* slot of a converter. `Converters.Time` (scalar or array
|
|
106
|
+
* element) accepts {@link TimeFallback} / `TimeFallback[]`; everything else mirrors the
|
|
107
|
+
* return type. Add future asymmetric fallback/return converters to this conditional.
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
type InferConverterFallbackType<TConverter> = TConverter extends 'time' ? TimeFallback : TConverter extends ArrayOf<infer Element> ? Element extends 'time' ? TimeFallback[] : InferConverterReturnType<TConverter> : InferConverterReturnType<TConverter>;
|
|
111
|
+
/**
|
|
112
|
+
* Complete type inference for advanced converter methods
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
type AdvancedConverterReturn<TConverter, TFallback = undefined> = ConditionalReturn<InferConverterReturnType<TConverter>, TFallback>;
|
|
116
|
+
/**
|
|
117
|
+
* Type inference for primitive constructor return types
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
type InferPrimitiveReturnType<TConstructor extends PrimitiveConstructor> = TConstructor extends typeof String ? string : TConstructor extends typeof Number ? number : TConstructor extends typeof Boolean ? boolean : TConstructor extends typeof BigInt ? bigint : TConstructor extends typeof Symbol ? symbol : never;
|
|
121
|
+
/**
|
|
122
|
+
* Type inference for primitive fallback values
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
type InferPrimitiveFallbackType<TFallback extends string | number | boolean | bigint | symbol | undefined> = TFallback extends string ? string : TFallback extends number ? number : TFallback extends boolean ? boolean : TFallback extends bigint ? bigint : TFallback extends symbol ? symbol : undefined;
|
|
126
|
+
//#endregion
|
|
127
|
+
export type { AdvancedConverterReturn, BuiltInConverter, BuiltInConverterFunction, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveFallbackType, InferPrimitiveReturnType, JsonValue, MapOfConverterFunctions, PrimitiveConstructor, TimeFallback, TimeUnit };
|
|
128
|
+
//# sourceMappingURL=Conversion.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversion.d.mts","names":[],"sources":["../../src/types/Conversion.ts"],"mappings":";;;;;AAAgG;;;KAO3F,gBAAA,GAAmB,cAAc;AAAA;AAAA;;;AAAA,KAMjC,oBAAA,UAA8B,MAAA,UAAgB,MAAA,UAAgB,OAAA,UAAiB,MAAA,UAAgB,MAAA;;;;;KAM/F,SAAA;;;;;;;;KASA,iBAAA,yBAA0C,GAAA,EAAK,SAAA,EAAW,QAAA,GAAW,SAAA,KAAc,SAAA;AAfkB;;;;AAM5F;AAN4F,KAsBrG,eAAA,cAA6B,oBAAA,GAAuB,gBAAA,GAAmB,OAAA,GAAU,iBAAA,CAAkB,SAAA;AAAA,KAEnG,aAAA;AAAA,KACA,SAAA,GAAY,SAAS;AAAA,UAChB,UAAA;EAAA,CACL,GAAA,WAAc,SAAS;AAAA;;;;;KAOvB,SAAA,GAAY,aAAA,GAAgB,SAAA,GAAY,UAAA;AAAA,UAEnC,YAAA;EACN,MAAA;EACA,MAAA;EACA,OAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;EACA,KAAA;EACA,IAAA,EAAM,SAAA;EACN,GAAA,EAAK,GAAA;EACL,MAAA,EAAQ,MAAA;EACR,IAAA,EAAM,IAAA;EACN,IAAA;AAAA;;;;;KAOC,0BAAA,sBAAgD,gBAAA,IAAoB,YAAA,CAAa,YAAA;;;;AAjC2B;KAuC5G,gCAAA,GAAmC,YAAA,CAAa,gBAAgB;;;;AArCnD;KA2Cb,wBAAA,OACE,IAAA,EAAM,UAAA,KAAe,IAAA,YAAgB,gCAAA,MACvC,gCAAA;;;;AA5CqB;KAkDrB,uBAAA,GAA0B,MAAA,CAAO,gBAAA,EAAkB,wBAAA;;;;AAhD5B;KAsDvB,QAAA;;;;;KAMA,YAAA,wBAAoC,QAAQ;;;;;;KAO5C,iBAAA,0BAA2C,SAAA,qBAA8B,UAAA,eAAyB,UAAA;AA5DhD;AAAA;;;;;;;;AAAA,KAuElD,wBAAA,eACD,UAAA,SAAmB,OAAA,kBACb,OAAA,SAAgB,gBAAA,GACZ,YAAA,CAAa,OAAA,MACb,OAAA,SAAgB,sBAAA,mBACd,QAAA,aAEN,UAAA,SAAmB,gBAAA,GACjB,0BAAA,CAA2B,UAAA;;;;;;;KASlC,0BAAA,eAAyC,UAAA,kBACxC,YAAA,GACA,UAAA,SAAmB,OAAA,kBACjB,OAAA,kBACI,YAAA,KACA,wBAAA,CAAyB,UAAA,IAC7B,wBAAA,CAAyB,UAAA;;;;;KAM5B,uBAAA,sCAA6D,iBAAA,CAC9D,wBAAA,CAAyB,UAAA,GACzB,SAAA;;;;;KAOC,wBAAA,sBAA8C,oBAAA,IAAwB,YAAA,gBAA4B,MAAA,YAEjG,YAAA,gBAA4B,MAAA,YAE1B,YAAA,gBAA4B,OAAA,aAE1B,YAAA,gBAA4B,MAAA,YAE1B,YAAA,gBAA4B,MAAA;AAvGhC;AAAA;;;AAAA,KA+GH,0BAAA,8EACD,SAAA,2BAEM,SAAA,2BAEE,SAAA,6BAEE,SAAA,2BAEE,SAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/types/Env.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Accepted shape for environment variable lookups. Either a single key or an ordered list of keys.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
type EnvKeyInput = string | readonly [string, ...string[]];
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
interface EnvapterService {
|
|
11
|
+
getRaw(key: EnvKeyInput): string | undefined;
|
|
12
|
+
get(key: EnvKeyInput, def?: string): string | undefined;
|
|
13
|
+
isStrict(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export type { EnvKeyInput, EnvapterService };
|
|
17
|
+
//# sourceMappingURL=Env.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Env.d.cts","names":[],"sources":["../../src/types/Env.ts"],"mappings":";;;;;KAIK,WAAA;AAAW;AAAA;;AAAA,UAKN,eAAA;EACN,MAAA,CAAO,GAAA,EAAK,WAAA;EACZ,GAAA,CAAI,GAAA,EAAK,WAAW,EAAE,GAAA;EACtB,QAAA;AAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/types/Env.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Accepted shape for environment variable lookups. Either a single key or an ordered list of keys.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
type EnvKeyInput = string | readonly [string, ...string[]];
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
interface EnvapterService {
|
|
11
|
+
getRaw(key: EnvKeyInput): string | undefined;
|
|
12
|
+
get(key: EnvKeyInput, def?: string): string | undefined;
|
|
13
|
+
isStrict(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export type { EnvKeyInput, EnvapterService };
|
|
17
|
+
//# sourceMappingURL=Env.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Env.d.mts","names":[],"sources":["../../src/types/Env.ts"],"mappings":";;;;;KAIK,WAAA;AAAW;AAAA;;AAAA,UAKN,eAAA;EACN,MAAA,CAAO,GAAA,EAAK,WAAA;EACZ,GAAA,CAAI,GAAA,EAAK,WAAW,EAAE,GAAA;EACtB,QAAA;AAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EnvaptConverter } from "./Conversion.cjs";
|
|
2
|
+
import { Environment } from "../core/EnvironmentMethods.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/types/Options.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Options for the \@Envapt decorator (modern API). `required: true` is mutually exclusive
|
|
7
|
+
* with `fallback`; see the per-converter overloads in `Envapt.ts` for the type-level mutex.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
interface EnvaptOptions<TFallback = string> {
|
|
11
|
+
fallback?: TFallback;
|
|
12
|
+
converter?: EnvaptConverter<TFallback>;
|
|
13
|
+
required?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Per-environment profile entry passed to {@link configureProfiles}.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
interface EnvProfile {
|
|
20
|
+
/** One or more `.env` paths to load for this environment. Order matters: earlier paths take precedence. */
|
|
21
|
+
paths: string | string[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Configuration object for {@link configureProfiles}. Maps each `Environment` to an optional
|
|
25
|
+
* profile override. Unspecified environments fall through to the default cascade behavior
|
|
26
|
+
* (`.env.${env}.local`, `.env.local`, `.env.${env}`, `.env`).
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
type ProfilesConfig = Partial<Record<Environment, EnvProfile>> & {
|
|
30
|
+
/**
|
|
31
|
+
* When `false`, disables the default dotenv-flow cascade entirely. Only the explicitly
|
|
32
|
+
* configured paths are loaded. Defaults to `true` (cascade still runs, configured paths
|
|
33
|
+
* are layered on top with higher precedence).
|
|
34
|
+
*/
|
|
35
|
+
useDefaults?: boolean;
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
38
|
+
export type { EnvProfile, EnvaptOptions, ProfilesConfig };
|
|
39
|
+
//# sourceMappingURL=Options.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.d.cts","names":[],"sources":["../../src/types/Options.ts"],"mappings":";;;;;;AAC8D;;;UAOpD,aAAA;EACN,QAAA,GAAW,SAAA;EACX,SAAA,GAAY,eAAA,CAAgB,SAAA;EAC5B,QAAA;AAAA;;;;;UAOM,UAAA;EARsB;EAU5B,KAAK;AAAA;AATG;AAAA;;;;AASH;AATG,KAkBP,cAAA,GAAiB,OAAA,CAAQ,MAAA,CAAO,WAAA,EAAa,UAAA;EAA/B;;;;;EAMf,WAAA;AAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EnvaptConverter } from "./Conversion.mjs";
|
|
2
|
+
import { Environment } from "../core/EnvironmentMethods.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/types/Options.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Options for the \@Envapt decorator (modern API). `required: true` is mutually exclusive
|
|
7
|
+
* with `fallback`; see the per-converter overloads in `Envapt.ts` for the type-level mutex.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
interface EnvaptOptions<TFallback = string> {
|
|
11
|
+
fallback?: TFallback;
|
|
12
|
+
converter?: EnvaptConverter<TFallback>;
|
|
13
|
+
required?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Per-environment profile entry passed to {@link configureProfiles}.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
interface EnvProfile {
|
|
20
|
+
/** One or more `.env` paths to load for this environment. Order matters: earlier paths take precedence. */
|
|
21
|
+
paths: string | string[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Configuration object for {@link configureProfiles}. Maps each `Environment` to an optional
|
|
25
|
+
* profile override. Unspecified environments fall through to the default cascade behavior
|
|
26
|
+
* (`.env.${env}.local`, `.env.local`, `.env.${env}`, `.env`).
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
type ProfilesConfig = Partial<Record<Environment, EnvProfile>> & {
|
|
30
|
+
/**
|
|
31
|
+
* When `false`, disables the default dotenv-flow cascade entirely. Only the explicitly
|
|
32
|
+
* configured paths are loaded. Defaults to `true` (cascade still runs, configured paths
|
|
33
|
+
* are layered on top with higher precedence).
|
|
34
|
+
*/
|
|
35
|
+
useDefaults?: boolean;
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
38
|
+
export type { EnvProfile, EnvaptOptions, ProfilesConfig };
|
|
39
|
+
//# sourceMappingURL=Options.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.d.mts","names":[],"sources":["../../src/types/Options.ts"],"mappings":";;;;;;AAC8D;;;UAOpD,aAAA;EACN,QAAA,GAAW,SAAA;EACX,SAAA,GAAY,eAAA,CAAgB,SAAA;EAC5B,QAAA;AAAA;;;;;UAOM,UAAA;EARsB;EAU5B,KAAK;AAAA;AATG;AAAA;;;;AASH;AATG,KAkBP,cAAA,GAAiB,OAAA,CAAQ,MAAA,CAAO,WAAA,EAAa,UAAA;EAA/B;;;;;EAMf,WAAA;AAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StandardSchemaV1 } from "../StandardSchema.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/Schema.d.ts
|
|
4
|
+
declare const _envaptErrBrand: unique symbol;
|
|
5
|
+
type Err<Msg extends string> = Msg & {
|
|
6
|
+
readonly [_envaptErrBrand]: never;
|
|
7
|
+
};
|
|
8
|
+
type SchemaMustBeSync = Err<'Schema must be synchronous. envapt is boot-time config loading; async refinements (validate returning `Promise<Result>`) belong outside the env layer.'>;
|
|
9
|
+
type SchemaConstraint<Schema extends StandardSchemaV1> = ReturnType<Schema['~standard']['validate']> extends Promise<unknown> ? SchemaMustBeSync : Schema;
|
|
10
|
+
//#endregion
|
|
11
|
+
export type { Err, SchemaConstraint, SchemaMustBeSync };
|
|
12
|
+
//# sourceMappingURL=Schema.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.cts","names":[],"sources":["../../src/types/Schema.ts"],"mappings":";;;cAKc,eAAA;AAAA,KACT,GAAA,uBAA0B,GAAA;EAAA,UAAkB,eAAe;AAAA;AAAA,KAE3D,gBAAA,GACD,GAAG;AAAA,KAIF,gBAAA,gBAAgC,gBAAA,IACjC,UAAA,CAAW,MAAA,mCAAyC,OAAA,YAAmB,gBAAA,GAAmB,MAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StandardSchemaV1 } from "../StandardSchema.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/Schema.d.ts
|
|
4
|
+
declare const _envaptErrBrand: unique symbol;
|
|
5
|
+
type Err<Msg extends string> = Msg & {
|
|
6
|
+
readonly [_envaptErrBrand]: never;
|
|
7
|
+
};
|
|
8
|
+
type SchemaMustBeSync = Err<'Schema must be synchronous. envapt is boot-time config loading; async refinements (validate returning `Promise<Result>`) belong outside the env layer.'>;
|
|
9
|
+
type SchemaConstraint<Schema extends StandardSchemaV1> = ReturnType<Schema['~standard']['validate']> extends Promise<unknown> ? SchemaMustBeSync : Schema;
|
|
10
|
+
//#endregion
|
|
11
|
+
export type { Err, SchemaConstraint, SchemaMustBeSync };
|
|
12
|
+
//# sourceMappingURL=Schema.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.mts","names":[],"sources":["../../src/types/Schema.ts"],"mappings":";;;cAKc,eAAA;AAAA,KACT,GAAA,uBAA0B,GAAA;EAAA,UAAkB,eAAe;AAAA;AAAA,KAE3D,gBAAA,GACD,GAAG;AAAA,KAIF,gBAAA,gBAAgC,gBAAA,IACjC,UAAA,CAAW,MAAA,mCAAyC,OAAA,YAAmB,gBAAA,GAAmB,MAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "envapt",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.0
|
|
4
|
+
"version": "5.1.0",
|
|
5
5
|
"description": "Type-safe environment variables for TypeScript. Zero-dependency .env loader and parser with the same API on Node, Bun, and Deno. Decorators, converters, and Standard Schema (zod/valibot/arktype) validation.",
|
|
6
6
|
"types": "./dist/index.d.mts",
|
|
7
7
|
"exports": {
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("node:fs");c=s(c,1);let l=require("node:path"),u=require("node:process");u=s(u,1);let d=require("node:url");const f={String:`string`,Number:`number`,Boolean:`boolean`,Bigint:`bigint`,Symbol:`symbol`,Integer:`integer`,Float:`float`,Json:`json`,Url:`url`,Regexp:`regexp`,Date:`date`,Time:`time`};function p(e){return typeof e==`object`&&!!e&&`__envaptKind`in e&&e.__envaptKind===`array`}function m(e){return{__envaptKind:`array`,of:e?.of??f.String,delimiter:e?.delimiter??`,`}}const h={...f,array:m};let g=function(e){return e[e.InvalidFallback=101]=`InvalidFallback`,e[e.InvalidFallbackType=102]=`InvalidFallbackType`,e[e.ArrayFallbackElementTypeMismatch=103]=`ArrayFallbackElementTypeMismatch`,e[e.FallbackConverterTypeMismatch=104]=`FallbackConverterTypeMismatch`,e[e.MalformedTimeFallback=105]=`MalformedTimeFallback`,e[e.InvalidArrayConverterType=201]=`InvalidArrayConverterType`,e[e.InvalidBuiltInConverter=202]=`InvalidBuiltInConverter`,e[e.InvalidCustomConverter=203]=`InvalidCustomConverter`,e[e.InvalidConverterType=204]=`InvalidConverterType`,e[e.PrimitiveCoercionFailed=205]=`PrimitiveCoercionFailed`,e[e.ArrayElementConversionFailed=206]=`ArrayElementConversionFailed`,e[e.EmptyArrayElement=207]=`EmptyArrayElement`,e[e.SchemaValidationFailed=208]=`SchemaValidationFailed`,e[e.SchemaThrew=209]=`SchemaThrew`,e[e.MissingDelimiter=301]=`MissingDelimiter`,e[e.InvalidUserDefinedConfig=302]=`InvalidUserDefinedConfig`,e[e.EnvFilesNotFound=303]=`EnvFilesNotFound`,e[e.InvalidKeyInput=304]=`InvalidKeyInput`,e[e.MissingEnvValue=305]=`MissingEnvValue`,e}({});var _=class extends Error{code;issues;constructor(e,t,n){super(t,n?.cause===void 0?void 0:{cause:n.cause}),this.name=`EnvaptError [${e}]`,this.code=e,this.issues=n?.issues}};const v=1e3,y=60*v,b=60*y,x=24*b,ee={ms:1,s:v,m:y,h:b,d:x,w:7*x},S=new RegExp(String.raw`^(\d+(?:\.\d+)?)(ms|s|m|h|d|w)?$`,`u`),C=new RegExp(String.raw`^(\d+)(ms|s|m|h|d|w)$`,`u`);function w(e,t=!1){let n=e.match(t?C:S);if(!n)return;let[,r,i]=n;if(!r)return;let a=Number.parseFloat(r);if(!Number.isNaN(a))return a*ee[i??`ms`]}var T=class e{static string(e,t){return String(e)}static number(e,t){let n=Number(e);return Number.isNaN(n)?t:n}static boolean(e,t){let n=e.toLowerCase().trim();return[`1`,`yes`,`true`,`on`].includes(n)?!0:[`0`,`no`,`false`,`off`].includes(n)?!1:t}static bigint(e,t){try{return BigInt(e)}catch{return t}}static symbol(e,t){try{return e?Symbol.for(e):t}catch{return t}}static integer(e,t){let n=Number.parseInt(e,10);return Number.isNaN(n)?t:n}static float(e,t){let n=Number.parseFloat(e);return Number.isNaN(n)?t:n}static json(e,t){try{return JSON.parse(e)}catch{return t}}static url(e,t){try{return new URL(e)}catch{return t}}static regexp(e,t){try{let t=e.match(new RegExp(String.raw`^\/(.+)\/([gimsuvy]*)$`));return t?new RegExp(t[1],t[2]):new RegExp(e)}catch{return t}}static date(e,t){if(new RegExp(String.raw`^\d+$`).test(e)){let n=new Date(parseInt(e,10));return Number.isNaN(n.getTime())?t:n}if(!new RegExp(String.raw`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$`,`u`).test(e))return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:n}static time(e,t){let n=w(e);if(n!==void 0)return n;if(typeof t==`number`)return t;if(typeof t==`string`){let e=w(t,!0);if(e===void 0)throw new _(105,`Time-string fallback "${t}" is not a valid format. Expected <integer><unit> where unit is one of: ms, s, m, h, d, w.`);return e}}static processArrayConverter(t,n,r=!1){if(t.trim()===``)return[];let i=t.split(n.delimiter).map(e=>String(e).trim());if(r){let e=i.findIndex(e=>e===``);if(e!==-1)throw new _(207,`Array element at index ${e} is empty or whitespace only (strict mode).`)}let a=i.filter(Boolean);if(!a.length)return[];let o=n.of;if(typeof o==`function`)return a.map((e,t)=>{let n=o(e);if(n===void 0)throw new _(206,`Custom element converter returned undefined for item "${e}" at index ${t}.`);return n});let s=e.getConverter(o);return a.map((e,t)=>{let n=s(e,void 0);if(n===void 0)throw new _(206,`Element "${e}" at index ${t} could not be converted to ${o}.`);return n})}static getConverter(t){return{string:e.string,number:e.number,boolean:e.boolean,integer:e.integer,bigint:e.bigint,symbol:e.symbol,float:e.float,json:e.json,url:e.url,regexp:e.regexp,date:e.date,time:e.time}[t]}};const E=[`string`,`number`,`boolean`,`bigint`,`symbol`,`integer`,`float`,`json`,`url`,`regexp`,`date`,`time`],D={string:e=>typeof e==`string`,number:e=>typeof e==`number`,boolean:e=>typeof e==`boolean`,bigint:e=>typeof e==`bigint`,symbol:e=>typeof e==`symbol`,integer:e=>typeof e==`number`&&Number.isInteger(e),float:e=>typeof e==`number`,json:e=>{try{return JSON.parse(JSON.stringify(e)),!0}catch{return!1}},url:e=>e instanceof URL,regexp:e=>e instanceof RegExp,date:e=>e instanceof Date,time:e=>typeof e==`number`||typeof e==`string`};var O=class{static isBuiltInConverter(e){return typeof e==`string`?E.includes(e):!1}static isArrayConverter(e){return p(e)}static isStandardSchema(e){if(typeof e!=`object`||!e||!(`~standard`in e))return!1;let t=e[`~standard`];if(typeof t!=`object`||!t)return!1;let n=t;return n.version===1&&typeof n.validate==`function`}static customConvertor(e){if(typeof e!=`function`)throw new _(203,`Custom converter must be a function, got ${typeof e}.`)}static arrayConverter(e){if(!p(e))throw new _(201,`Expected an ArrayOf<...> token produced by Converters.array(...)`);if(typeof e.delimiter!=`string`||e.delimiter.length===0)throw new _(301,`ArrayOf<...> requires a non-empty string delimiter, got ${typeof e.delimiter}`);let t=e.of;if(!(typeof t==`string`&&E.includes(t))&&typeof t!=`function`)throw new _(201,`ArrayOf<...> element ("of") must be a built-in scalar token or a function, got ${typeof t}`)}static builtInConverter(e){if(typeof e!=`string`)throw new _(204,`Expected string, got ${typeof e}`);if(!E.includes(e))throw new _(202,`"${e}" is not a valid converter type. Valid types are: ${E.join(`,`)}`)}static validateBuiltInConverterFallback(e,t){let n=D[e];if(!n(t))throw new _(104,`Fallback type does not match converter "${e}". Expected ${e} compatible type.`)}static validateArrayFallbackElementTypes(e){if(e.length===0)return;let t=typeof e[0];if(e.some((e,n)=>n===0?!1:typeof e!==t))throw new _(103,`All elements in array fallback must have the same type. Found mixed types.`)}static validateArrayConverterElementTypeMatch(e,t){if(t.length===0||typeof e==`function`)return;let n=e;if(n===`time`){let e=t.every(e=>typeof e==`number`),n=t.every(e=>typeof e==`string`);if(!e&&!n)throw new _(103,`Time array fallback must be all numbers or all time-string entries.`);return}let r=D[n],i=t[0];if(!r(i))throw new _(103,`Array converter type "${n}" does not match fallback element type. Expected ${n} compatible elements.`)}static isPrimitiveConstructor(e){return e===String||e===Number||e===Boolean||e===BigInt||e===Symbol}static coercePrimitiveFallback(e,t){return this.isCorrectPrimitiveType(e,t)?t:this.performPrimitiveCoercion(e,t)}static isCorrectPrimitiveType(e,t){return e===String&&typeof t==`string`||e===Number&&typeof t==`number`||e===Boolean&&typeof t==`boolean`||e===BigInt&&typeof t==`bigint`||e===Symbol&&typeof t==`symbol`}static performPrimitiveCoercion(e,t){try{if(e===String)return String(t);if(e===Number)return Number(t);if(e===Boolean)return!!t;if(e===BigInt)return BigInt(t);if(e===Symbol)return Symbol.for(String(t))}catch(t){throw new _(205,`Failed to coerce fallback value using ${e.name}: ${t.message}`)}throw new _(205,`Unknown primitive converter: ${e.name}`)}static validateSyncProcessEnv(e){if(typeof e!=`boolean`)throw new _(302,`Envapter.syncProcessEnv must be a boolean, got ${typeof e}.`)}static validateEnvFileOptions(e){let t=new Set([`encoding`,`override`]),n=Object.keys(e).filter(e=>!t.has(e));if(n.length>0)throw new _(302,`Invalid envFileOptions: ${n.join(`, `)}. Allowed options: ${Array.from(t).join(`, `)}. For debug output, use Envapter.debug or the ENVAPT_DEBUG env var.`);return!0}static validateEnvFilesExist(e){let t=e.filter(e=>{try{return c.default.accessSync(e,c.default.constants.F_OK),!1}catch{return!0}});if(t.length>0)throw new _(303,`Environment file not found at path: ${t.join(`, `)}`)}};function k(e){return Array.isArray(e)?`[${e.join(`, `)}]`:String(e)}var A=class{envService;constructor(e){this.envService=e}convertValue(e,t,n,r){let i=this.resolveConverter(n,t),a=this.processFallbackForConverter(i,t);if(O.isArrayConverter(i))return this.processArrayConverter(e,a,i,r);if(O.isPrimitiveConstructor(i)){let t=this.convertPrimitiveToString(i);return this.processBuiltInConverter(e,a,t,r,!0)}return O.isBuiltInConverter(i)?this.processBuiltInConverter(e,a,i,r,!1):this.processCustomConverter(e,a,i,r)}processFallbackForConverter(e,t){return O.isPrimitiveConstructor(e)&&t!==void 0?O.coercePrimitiveFallback(e,t):t}convertPrimitiveToString(e){if(e===String)return`string`;if(e===Number)return`number`;if(e===Boolean)return`boolean`;if(e===BigInt)return`bigint`;if(e===Symbol)return`symbol`;throw new _(204,`Unknown primitive constructor`)}processBuiltInConverter(e,t,n,r,i){O.builtInConverter(n),r&&t!==void 0&&!i&&O.validateBuiltInConverterFallback(n,t);let a=this.envService.get(e,void 0);if(a===void 0)return r?n===`time`&&typeof t==`string`?T.getConverter(n)(``,t):t:null;let o=T.getConverter(n)(a,t);return o===void 0&&!r?null:o}processArrayConverter(e,t,n,r){if(O.arrayConverter(n),r&&t!==void 0&&!Array.isArray(t))throw new _(101,`ArrayOf<...> requires that the fallback be an array, got ${typeof t}`);r&&Array.isArray(t)&&(O.validateArrayFallbackElementTypes(t),O.validateArrayConverterElementTypeMatch(n.of,t));let i=this.envService.get(e,void 0);if(i===void 0){if(!r)return null;if(n.of===`time`&&Array.isArray(t)&&t.every(e=>typeof e==`string`)){let e=T.getConverter(`time`);return t.map(t=>e(``,t))}return t}return T.processArrayConverter(i,n,this.envService.isStrict())}processCustomConverter(e,t,n,r){return O.customConvertor(n),n(this.envService.get(e,void 0),t)}resolveConverter(e,t){if(e)return e;let n=typeof t;return n===`number`?`number`:n===`boolean`?`boolean`:n===`bigint`?`bigint`:n===`symbol`?`symbol`:`string`}convertWithSchema(e,t,n,r){let i=this.envService.get(e,void 0);if(i===void 0){if(r)return n;throw new _(305,`Required environment variable "${k(e)}" is missing or empty.`)}let a;try{a=t[`~standard`].validate(i)}catch(t){throw new _(209,`Schema for "${k(e)}" threw during validation: ${t.message}`,{cause:t})}if(a instanceof Promise)throw new _(302,`Schema for "${k(e)}" returned a Promise. envapt requires synchronous schemas; use a sync validator or perform async checks outside the env layer.`);if(a.issues!==void 0){let t=a.issues[0]?.message??`no issue message`;throw new _(208,`Schema validation failed for "${k(e)}": ${t}`,{issues:a.issues})}return a.value}};const j=new Set([`silent`,`warn`,`verbose`]);let M=`silent`,N=!1;function P(e){return e!==void 0&&j.has(e)}function F(){if(!N){let e=u.default.env.ENVAPT_DEBUG;M=P(e)?e:`silent`,N=!0}return M}function I(e){if(!P(e))throw new _(302,`Invalid debug level "${String(e)}". Expected 'silent' | 'warn' | 'verbose'.`);M=e,N=!0}function te(){return F()}function L(e){let t=F();(t===`warn`||t===`verbose`)&&u.default.stderr.write(`[envapt] ${e}\n`)}function R(e){F()===`verbose`&&u.default.stderr.write(`[envapt] ${e}\n`)}const z=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=(.*)$/u;function B(e){let t=new Map,n=e.split(/\r?\n/u);for(let e=0;e<n.length;e++){let r=V(n,e);e=r.endLine,r.entry&&t.set(r.entry.key,r.entry.value)}return t}function V(e,t){let n=e[t]??``,r=n.trim();if(r===``||r.startsWith(`#`))return{entry:void 0,endLine:t};let i=n.match(z);if(!i)return{entry:void 0,endLine:t};let a=i[1],o=(i[2]??``).replace(/^\s+/u,``),s=o[0];if(s===`"`||s===`'`||s==="`"){let n=H(o,e,t,s);return{entry:{key:a,value:n.value},endLine:n.endLine}}return{entry:{key:a,value:U(o)},endLine:t}}function H(e,t,n,r){let i=e,a=n,o=G(i,r);for(;o<0&&a<t.length-1;)a++,i+=`\n${t[a]??``}`,o=G(i,r);let s=o>0?i.slice(1,o):i.slice(1);return{value:r===`"`?K(s):s,endLine:a}}function U(e){let t=W(e);return(t===-1?e:e.slice(0,t)).trimEnd()}function W(e){for(let t=0;t<e.length;t++)if(e[t]===`#`&&(t===0||/\s/u.test(e[t-1])))return t;return-1}function G(e,t){for(let n=e.length-1;n>0;n--)if(e[n]===t){if(t===`"`){let t=0,r=n-1;for(;r>=0&&e[r]===`\\`;)t++,r--;if(t%2==1)continue}return n}return-1}function K(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(r!==`\\`||n===e.length-1){t+=r;continue}let i=e[n+1];switch(n++,i){case`n`:t+=`
|
|
2
|
-
`;break;case`r`:t+=`\r`;break;case`t`:t+=` `;break;case`\\`:t+=`\\`;break;case`"`:t+=`"`;break;default:t+=`\\${i??``}`}}return t}function q(e){let t=Array.isArray(e.path)?e.path:[e.path],n=e.encoding??`utf8`,r=e.override??!1,i=new Set;for(let a of t){let t;try{t=c.default.readFileSync(a,n)}catch{L(`could not read ${a}`);continue}let o=B(t);R(`loaded ${a}: ${o.size} ${o.size===1?`key`:`keys`}`);for(let[t,n]of o)(!Object.prototype.hasOwnProperty.call(e.processEnv,t)||r)&&(e.processEnv[t]=n,i.add(t),R(`${a} -> ${t}`))}return i}const J=new Map;var Y=class e{static _envPaths=[`.env`];static _envPathsExplicitlySet=!1;static _baseDir=void 0;static _userDefinedEnvFileOptions={};static _strict=!1;static _syncProcessEnv=!1;static _dotenvAddedKeys=new Set;static set strict(t){e._strict=t,this.refreshCache()}static get strict(){return e._strict}static set debug(e){I(e)}static get debug(){return te()}static set syncProcessEnv(t){O.validateSyncProcessEnv(t);let n=e._syncProcessEnv;e._syncProcessEnv=t,!n&&t&&J.size>0&&this.mirrorToProcessEnv()}static get syncProcessEnv(){return e._syncProcessEnv}static treatAsMissing(t){return!!(t===void 0||t===``||e._strict&&t.trim()===``)}static set envPaths(e){let t=Array.isArray(e)?e:[e];O.validateEnvFilesExist(t.map(e=>this.resolveAgainstBase(e))),this._envPaths=t,this._envPathsExplicitlySet=!0,this.refreshCache()}static get envPaths(){return this._envPaths}static set baseDir(t){e._baseDir=t===void 0?void 0:this.normalizeBaseDir(t),this.refreshCache()}static get baseDir(){return e._baseDir}static normalizeBaseDir(e){return e instanceof URL||e.startsWith(`file:`)?(0,l.dirname)((0,d.fileURLToPath)(e)):(0,l.resolve)(e)}static resolveAgainstBase(t){return e._baseDir===void 0||(0,l.isAbsolute)(t)?t:(0,l.join)(e._baseDir,t)}static set envFileOptions(e){O.validateEnvFileOptions(e),this._userDefinedEnvFileOptions=e,this.refreshCache()}static get envFileOptions(){return this._userDefinedEnvFileOptions}static refreshCache(){J.clear(),e._dotenvAddedKeys=new Set,R(`cache cleared, reloading config`),this.config}static mirrorToProcessEnv(){if(e._dotenvAddedKeys.size!==0){for(let t of e._dotenvAddedKeys){let e=J.get(t);typeof e==`string`&&(u.default.env[t]=e,R(`mirrored ${t} to process.env`))}R(`mirrored ${e._dotenvAddedKeys.size} keys to process.env`)}}static resolveEffectivePaths(){return this._envPaths.map(e=>this.resolveAgainstBase(e))}static resolveKeyInput(e){let t=Array.isArray(e)?e:[e];if(t.length===0)throw new _(304,`At least one environment key must be provided.`);if(t.some(e=>typeof e!=`string`))throw new _(304,`Environment keys must be strings.`);if(t.some(e=>e.trim()===``))throw new _(304,`Environment keys cannot be empty strings.`);for(let e of t){let t=this.config.get(e);if(t!==void 0)return{key:e,value:t}}return{key:t[0],value:void 0}}static get config(){if(J.size===0){let t={...u.default.env},n=this.resolveEffectivePaths();R(`effective .env paths: ${n.length===0?`(none)`:n.join(`, `)}`);let r=new Set;try{r=q({...this._userDefinedEnvFileOptions,path:n,processEnv:t})}catch{}e._dotenvAddedKeys=r;for(let[e,n]of Object.entries(t))J.set(e,n);R(`cache populated: ${J.size} keys total`),e._syncProcessEnv&&this.mirrorToProcessEnv()}return J}static load(){this.config}getRaw(t){return e.resolveKeyInput(t).value}};let X=function(e){return e[e.Development=0]=`Development`,e[e.Staging=1]=`Staging`,e[e.Production=2]=`Production`,e}({});var Z=class e extends Y{static _environment;static _environmentExplicitlySet=!1;static _profiles;static determineEnvironment(e){let t=e??this.getRawValue(`ENVIRONMENT`,this.getRawValue(`ENV`,this.getRawValue(`NODE_ENV`,`development`)));typeof t==`string`?this._environment=t.toLowerCase()===`production`?2:+(t===`staging`):this._environment=t,e!==void 0&&(this._environmentExplicitlySet=!0)}static getRawValue(e,t){return this.config.get(e)||t}static get environment(){return this._environment===void 0&&this.determineEnvironment(),this._environment}static set environment(e){this.determineEnvironment(e)}get environment(){return e.environment}set environment(t){e.determineEnvironment(t)}static get isProduction(){return this.environment===2}get isProduction(){return e.environment===2}static get isStaging(){return this.environment===1}get isStaging(){return e.environment===1}static get isDevelopment(){return this.environment===0}get isDevelopment(){return e.environment===0}static refreshCache(){this._environmentExplicitlySet||(this._environment=void 0),super.refreshCache()}static configureProfiles(e){this._profiles=e,this.refreshCache()}static resetProfiles(){this._profiles=void 0,this._envPaths=[`.env`],this._envPathsExplicitlySet=!1,this._environmentExplicitlySet=!1,this._environment=void 0,this.refreshCache()}static getCascadeEnvironment(){if(this._environment!==void 0)return this._environment;let e=(u.default.env.ENVIRONMENT??u.default.env.ENV??u.default.env.NODE_ENV??`development`).toLowerCase();return e===`production`?2:+(e===`staging`)}static buildCascadePaths(e){let t=X[e].toLowerCase();return[`.env.${t}.local`,`.env.${t}`,`.env.local`,`.env`].map(e=>this.resolveAgainstBase(e)).filter(e=>c.default.existsSync(e))}static normalizeProfilePaths(e){return e?Array.isArray(e.paths)?e.paths:[e.paths]:[]}static resolveEffectivePaths(){if(this._envPathsExplicitlySet)return this._envPaths.map(e=>this.resolveAgainstBase(e));let e=this.getCascadeEnvironment(),t=this._profiles?.[e],n=this.normalizeProfilePaths(t);if(n.length>0){let e=n.filter(e=>!c.default.existsSync(this.resolveAgainstBase(e)));if(e.length>0)throw new _(303,`Environment file not found at path: ${e.join(`, `)}`)}let r=this._profiles?.useDefaults===!1?[]:this.buildCascadePaths(e);return[...n.map(e=>this.resolveAgainstBase(e)),...r]}},ne=class{envService;TEMPLATE_REGEX=/\${\w*}/g;constructor(e){this.envService=e}resolveTemplate(e,t,n=new Set){n.add(e);let r=this.envService.isStrict(),i=t.replace(this.TEMPLATE_REGEX,t=>{let i=t.slice(2,-1);if(n.has(i))return t;let a=this.envService.getRaw(i);if(a===void 0||a===``||r&&a.trim()===``){if(r)throw new _(305,`Cannot resolve template variable "\${${i}}": value is missing or empty.`);return L(`unresolved template \${${i}} preserved as literal`),t}let o=this.resolveTemplate(i,a,new Set(n));return o.includes(`\${${e}}`)||o===a&&/\$\{[^}]*\}/.test(o)?t:o});return n.delete(e),i}},re=class e extends Z{static service=new e;static templateResolver=new ne(e.service);static valueConverter=new A(e.service);isStrict(){return Y.strict}static _get(e,t,n){let{key:r,value:i}=this.resolveKeyInput(e);if(this.treatAsMissing(i))return n!==void 0&&L(`${r} not found, using fallback ${String(n)}`),n;let a=i,o=this.templateResolver.resolveTemplate(r,String(a)),s;return s=t===1?T.number(o,n):t===2?T.boolean(o,n):t===3?T.bigint(o,n):t===4?T.symbol(o,n):T.string(o,n),s}static get(e,t){return this._get(e,0,t)}get(t,n){return e._get(t,0,n)}static getNumber(e,t){return this._get(e,1,t)}getNumber(t,n){return e._get(t,1,n)}static getBoolean(e,t){return this._get(e,2,t)}getBoolean(t,n){return e._get(t,2,n)}static getBigInt(e,t){return this._get(e,3,t)}getBigInt(t,n){return e._get(t,3,n)}static getSymbol(e,t){return this._get(e,4,t)}getSymbol(t,n){return e._get(t,4,n)}};function Q(e){return typeof e==`object`&&!!e&&`converter`in e}function $(e){return Array.isArray(e)?`[${e.join(`, `)}]`:String(e)}var ie=class e extends re{static getUsing(e,t,n){if(Q(t)){let n=t,{key:r,value:i}=this.resolveKeyInput(e);if(i===void 0||i.trim()===``)throw new _(305,`Required environment variable "${$(e)}" is missing or empty.`);return this.valueConverter.convertValue(r,void 0,n.converter,!1)}let r=t,{key:i,value:a}=this.resolveKeyInput(e);if(this.treatAsMissing(a)&&n===void 0)return;let o=n!==void 0;return this.valueConverter.convertValue(i,n,r,o)}getUsing(t,n,r){return e.getUsing(t,n,r)}static getWith(e,t,n){if(Q(t)){let n=t,{key:r,value:i}=this.resolveKeyInput(e);if(i===void 0||i.trim()===``)throw new _(305,`Required environment variable "${$(e)}" is missing or empty.`);return this.valueConverter.convertValue(r,void 0,n.converter,!1)}let{key:r,value:i}=this.resolveKeyInput(e);if(this.treatAsMissing(i))return n;let a=n!==void 0;return this.valueConverter.convertValue(r,n,t,a)}getWith(t,n,r){return e.getWith(t,n,r)}static parse(e,t,n){let r=arguments.length>2;return this.valueConverter.convertWithSchema(e,t,n,r)}parse(t,n,r){let i=arguments.length>2;return e.valueConverter.convertWithSchema(t,n,r,i)}},ae=class e extends ie{static resolve(t,...n){let r=e.strict;return t.reduce((e,t,i)=>{let a=n[i];if(!a)return e+t;let o=super.get(a,``);if(r&&o.trim()===``)throw new _(305,`Cannot resolve template variable "\${${a}}": value is missing or empty.`);return e+t+o},``)}resolve(t,...n){return e.resolve(t,...n)}static require(...t){let n=[];for(let r of t)e.resolveAndValidate(r)===void 0&&n.push(r);if(n.length>0)throw new _(305,`Missing required environment variables: ${n.join(`, `)}.`)}static resolveAndValidate(e){let{value:t}=this.resolveKeyInput(e);if(t===void 0)return;let n=this.templateResolver.resolveTemplate(e,t);if(n.trim()!==``)return n}require(...t){e.require(...t)}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ae}});
|
|
3
|
-
//# sourceMappingURL=Envapter-CBSM3v-5.cjs.map
|