envapt 7.0.3 → 8.0.0-next.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 +32 -101
- package/README.md +5 -5
- package/dist/node/converters/BuiltInConverters.cjs +1 -1
- package/dist/node/converters/BuiltInConverters.cjs.map +1 -1
- package/dist/node/converters/BuiltInConverters.mjs +1 -1
- package/dist/node/converters/BuiltInConverters.mjs.map +1 -1
- package/dist/node/converters/Converters.cjs.map +1 -1
- package/dist/node/converters/Converters.mjs.map +1 -1
- package/dist/node/converters/ValueConverter.cjs +1 -1
- package/dist/node/converters/ValueConverter.cjs.map +1 -1
- package/dist/node/converters/ValueConverter.mjs +1 -1
- package/dist/node/converters/ValueConverter.mjs.map +1 -1
- package/dist/node/core/AdvancedMethods.cjs +1 -1
- package/dist/node/core/AdvancedMethods.cjs.map +1 -1
- package/dist/node/core/AdvancedMethods.mjs +1 -1
- package/dist/node/core/AdvancedMethods.mjs.map +1 -1
- package/dist/node/core/EnvapterBase.cjs +1 -1
- package/dist/node/core/EnvapterBase.cjs.map +1 -1
- package/dist/node/core/EnvapterBase.mjs +1 -1
- package/dist/node/core/EnvapterBase.mjs.map +1 -1
- package/dist/node/core/Environment.cjs +2 -0
- package/dist/node/core/Environment.cjs.map +1 -0
- package/dist/node/core/Environment.mjs +2 -0
- package/dist/node/core/Environment.mjs.map +1 -0
- package/dist/node/core/EnvironmentMethods.cjs +1 -1
- package/dist/node/core/EnvironmentMethods.cjs.map +1 -1
- package/dist/node/core/EnvironmentMethods.mjs +1 -1
- package/dist/node/core/EnvironmentMethods.mjs.map +1 -1
- package/dist/node/core/PrimitiveMethods.cjs +1 -1
- package/dist/node/core/PrimitiveMethods.cjs.map +1 -1
- package/dist/node/core/PrimitiveMethods.mjs +1 -1
- package/dist/node/core/PrimitiveMethods.mjs.map +1 -1
- package/dist/node/core/engine.cjs +2 -0
- package/dist/node/core/engine.cjs.map +1 -0
- package/dist/node/core/engine.mjs +2 -0
- package/dist/node/core/engine.mjs.map +1 -0
- package/dist/node/core/paths.cjs +2 -0
- package/dist/node/core/paths.cjs.map +1 -0
- package/dist/node/core/paths.mjs +2 -0
- package/dist/node/core/paths.mjs.map +1 -0
- package/dist/node/core/state.cjs +2 -0
- package/dist/node/core/state.cjs.map +1 -0
- package/dist/node/core/state.mjs +2 -0
- package/dist/node/core/state.mjs.map +1 -0
- package/dist/node/decorators/resolveDecoratorValue.cjs +1 -1
- package/dist/node/decorators/resolveDecoratorValue.cjs.map +1 -1
- package/dist/node/decorators/resolveDecoratorValue.mjs +1 -1
- package/dist/node/decorators/resolveDecoratorValue.mjs.map +1 -1
- package/dist/node/engine/Envapter.cjs +1 -1
- package/dist/node/engine/Envapter.cjs.map +1 -1
- package/dist/node/engine/Envapter.mjs +1 -1
- package/dist/node/engine/Envapter.mjs.map +1 -1
- package/dist/node/engine/NodeEnvapter.cjs +1 -1
- package/dist/node/engine/NodeEnvapter.cjs.map +1 -1
- package/dist/node/engine/NodeEnvapter.mjs +1 -1
- package/dist/node/engine/NodeEnvapter.mjs.map +1 -1
- package/dist/node/engine/TemplateResolver.cjs +1 -1
- package/dist/node/engine/TemplateResolver.cjs.map +1 -1
- package/dist/node/engine/TemplateResolver.mjs +1 -1
- package/dist/node/engine/TemplateResolver.mjs.map +1 -1
- package/dist/node/engine/Validators.cjs +1 -1
- package/dist/node/engine/Validators.cjs.map +1 -1
- package/dist/node/engine/Validators.mjs +1 -1
- package/dist/node/engine/Validators.mjs.map +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/node/infra/Error.cjs +1 -1
- package/dist/node/infra/Error.cjs.map +1 -1
- package/dist/node/infra/Error.mjs +1 -1
- package/dist/node/infra/Error.mjs.map +1 -1
- package/dist/node/infra/recase.cjs +2 -0
- package/dist/node/infra/recase.cjs.map +1 -0
- package/dist/node/infra/recase.mjs +2 -0
- package/dist/node/infra/recase.mjs.map +1 -0
- package/dist/node/infra/runtime.cjs.map +1 -1
- package/dist/node/infra/runtime.mjs.map +1 -1
- package/dist/node/sources/{NodeEnvSource.cjs → FileSource.cjs} +2 -2
- package/dist/node/sources/FileSource.cjs.map +1 -0
- package/dist/node/sources/{NodeEnvSource.mjs → FileSource.mjs} +2 -2
- package/dist/node/sources/FileSource.mjs.map +1 -0
- package/dist/node/sources/{ManualEnvSource.cjs → PortableSource.cjs} +2 -2
- package/dist/node/sources/PortableSource.cjs.map +1 -0
- package/dist/{browser/sources/ManualEnvSource.mjs → node/sources/PortableSource.mjs} +2 -2
- package/dist/node/sources/PortableSource.mjs.map +1 -0
- package/dist/node/sources/{UnboundEnvSource.cjs → UnboundSource.cjs} +2 -2
- package/dist/node/sources/UnboundSource.cjs.map +1 -0
- package/dist/{browser/sources/UnboundEnvSource.mjs → node/sources/UnboundSource.mjs} +2 -2
- package/dist/node/sources/UnboundSource.mjs.map +1 -0
- package/dist/node/sources/coerce.cjs.map +1 -1
- package/dist/node/sources/coerce.mjs.map +1 -1
- package/dist/node/sources/merge.cjs +2 -0
- package/dist/node/sources/merge.cjs.map +1 -0
- package/dist/node/sources/merge.mjs +2 -0
- package/dist/node/sources/merge.mjs.map +1 -0
- package/dist/portable/converters/BuiltInConverters.mjs +2 -0
- package/dist/portable/converters/BuiltInConverters.mjs.map +1 -0
- package/dist/portable/converters/Converters.mjs.map +1 -0
- package/dist/portable/converters/ValueConverter.mjs +2 -0
- package/dist/portable/converters/ValueConverter.mjs.map +1 -0
- package/dist/portable/core/AdvancedMethods.mjs +2 -0
- package/dist/portable/core/AdvancedMethods.mjs.map +1 -0
- package/dist/portable/core/EnvapterBase.mjs +2 -0
- package/dist/portable/core/EnvapterBase.mjs.map +1 -0
- package/dist/portable/core/Environment.mjs +2 -0
- package/dist/portable/core/Environment.mjs.map +1 -0
- package/dist/portable/core/EnvironmentMethods.mjs +2 -0
- package/dist/portable/core/EnvironmentMethods.mjs.map +1 -0
- package/dist/portable/core/PrimitiveMethods.mjs +2 -0
- package/dist/portable/core/PrimitiveMethods.mjs.map +1 -0
- package/dist/portable/core/engine.mjs +2 -0
- package/dist/portable/core/engine.mjs.map +1 -0
- package/dist/portable/core/paths.mjs +2 -0
- package/dist/portable/core/paths.mjs.map +1 -0
- package/dist/portable/core/state.mjs +2 -0
- package/dist/portable/core/state.mjs.map +1 -0
- package/dist/portable/decorators/resolveDecoratorValue.mjs +2 -0
- package/dist/portable/decorators/resolveDecoratorValue.mjs.map +1 -0
- package/dist/portable/engine/Envapter.mjs +2 -0
- package/dist/portable/engine/Envapter.mjs.map +1 -0
- package/dist/portable/engine/PortableEnvapter.mjs +2 -0
- package/dist/portable/engine/PortableEnvapter.mjs.map +1 -0
- package/dist/portable/engine/TemplateResolver.mjs +2 -0
- package/dist/portable/engine/TemplateResolver.mjs.map +1 -0
- package/dist/portable/engine/Validators.mjs +2 -0
- package/dist/portable/engine/Validators.mjs.map +1 -0
- package/dist/portable/engine/fileApiStub.mjs +2 -0
- package/dist/portable/engine/fileApiStub.mjs.map +1 -0
- package/dist/portable/index.mjs +1 -0
- package/dist/{browser → portable}/infra/Error.mjs +1 -1
- package/dist/{browser → portable}/infra/Error.mjs.map +1 -1
- package/dist/portable/infra/recase.mjs +2 -0
- package/dist/portable/infra/recase.mjs.map +1 -0
- package/dist/portable/infra/runtime.mjs.map +1 -0
- package/dist/{browser/sources/WorkerEnvSource.mjs → portable/sources/PortableSource.mjs} +2 -2
- package/dist/portable/sources/PortableSource.mjs.map +1 -0
- package/dist/{node/sources/UnboundEnvSource.mjs → portable/sources/UnboundSource.mjs} +2 -2
- package/dist/portable/sources/UnboundSource.mjs.map +1 -0
- package/dist/portable/sources/coerce.mjs.map +1 -0
- package/dist/portable/sources/merge.mjs +2 -0
- package/dist/portable/sources/merge.mjs.map +1 -0
- package/dist/types/converters/Converters.d.mts +1 -15
- package/dist/types/core/AdvancedMethods.d.mts +31 -19
- package/dist/types/core/EnvapterBase.d.mts +16 -30
- package/dist/types/core/Environment.d.mts +25 -0
- package/dist/types/core/EnvironmentMethods.d.mts +2 -67
- package/dist/types/core/PrimitiveMethods.d.mts +2 -10
- package/dist/types/engine/Envapter.d.mts +2 -3
- package/dist/types/engine/NodeEnvapter.d.mts +4 -7
- package/dist/types/engine/PortableEnvapter.d.mts +17 -5
- package/dist/types/index.d.mts +10 -13
- package/dist/types/index.portable.d.mts +9 -12
- package/dist/types/infra/Error.d.mts +3 -1
- package/dist/types/infra/StandardSchema.d.mts +1 -12
- package/dist/types/sources/{NodeEnvSource.d.mts → FileSource.d.mts} +5 -5
- package/dist/types/sources/PortableSource.d.mts +24 -0
- package/dist/types/sources/merge.d.mts +13 -0
- package/dist/types/types/Casing.d.mts +8 -0
- package/dist/types/types/Conversion.d.mts +9 -66
- package/dist/types/types/Decorator.d.mts +0 -14
- package/dist/types/types/Env.d.mts +1 -10
- package/dist/types/types/Options.d.mts +9 -2
- package/dist/types/types/Schema.d.mts +1 -13
- package/dist/types/types/Source.d.mts +8 -28
- package/package.json +62 -19
- package/aliases/browser.d.mts +0 -7
- package/aliases/browser.mjs +0 -4
- package/aliases/workerd.d.mts +0 -7
- package/aliases/workerd.mjs +0 -4
- package/dist/browser/converters/BuiltInConverters.mjs +0 -2
- package/dist/browser/converters/BuiltInConverters.mjs.map +0 -1
- package/dist/browser/converters/Converters.mjs.map +0 -1
- package/dist/browser/converters/ValueConverter.mjs +0 -2
- package/dist/browser/converters/ValueConverter.mjs.map +0 -1
- package/dist/browser/core/AdvancedMethods.mjs +0 -2
- package/dist/browser/core/AdvancedMethods.mjs.map +0 -1
- package/dist/browser/core/EnvapterBase.mjs +0 -2
- package/dist/browser/core/EnvapterBase.mjs.map +0 -1
- package/dist/browser/core/EnvironmentMethods.mjs +0 -2
- package/dist/browser/core/EnvironmentMethods.mjs.map +0 -1
- package/dist/browser/core/PrimitiveMethods.mjs +0 -2
- package/dist/browser/core/PrimitiveMethods.mjs.map +0 -1
- package/dist/browser/decorators/resolveDecoratorValue.mjs +0 -2
- package/dist/browser/decorators/resolveDecoratorValue.mjs.map +0 -1
- package/dist/browser/engine/Envapter.mjs +0 -2
- package/dist/browser/engine/Envapter.mjs.map +0 -1
- package/dist/browser/engine/PortableEnvapter.mjs +0 -2
- package/dist/browser/engine/PortableEnvapter.mjs.map +0 -1
- package/dist/browser/engine/TemplateResolver.mjs +0 -2
- package/dist/browser/engine/TemplateResolver.mjs.map +0 -1
- package/dist/browser/engine/Validators.mjs +0 -2
- package/dist/browser/engine/Validators.mjs.map +0 -1
- package/dist/browser/engine/installFileApiStubs.mjs +0 -2
- package/dist/browser/engine/installFileApiStubs.mjs.map +0 -1
- package/dist/browser/index.mjs +0 -1
- package/dist/browser/infra/runtime.mjs.map +0 -1
- package/dist/browser/sources/ManualEnvSource.mjs.map +0 -1
- package/dist/browser/sources/UnboundEnvSource.mjs.map +0 -1
- package/dist/browser/sources/WorkerEnvSource.mjs.map +0 -1
- package/dist/browser/sources/coerce.mjs.map +0 -1
- package/dist/node/sources/ManualEnvSource.cjs.map +0 -1
- package/dist/node/sources/ManualEnvSource.mjs +0 -2
- package/dist/node/sources/ManualEnvSource.mjs.map +0 -1
- package/dist/node/sources/NodeEnvSource.cjs.map +0 -1
- package/dist/node/sources/NodeEnvSource.mjs.map +0 -1
- package/dist/node/sources/UnboundEnvSource.cjs.map +0 -1
- package/dist/node/sources/UnboundEnvSource.mjs.map +0 -1
- package/dist/node/sources/WorkerEnvSource.cjs +0 -2
- package/dist/node/sources/WorkerEnvSource.cjs.map +0 -1
- package/dist/node/sources/WorkerEnvSource.mjs +0 -2
- package/dist/node/sources/WorkerEnvSource.mjs.map +0 -1
- package/dist/types/converters/ValueConverter.d.mts +0 -25
- package/dist/types/engine/TemplateResolver.d.mts +0 -17
- package/dist/types/sources/ManualEnvSource.d.mts +0 -22
- package/dist/types/sources/WorkerEnvSource.d.mts +0 -22
- package/dist/workerd/converters/BuiltInConverters.mjs +0 -2
- package/dist/workerd/converters/BuiltInConverters.mjs.map +0 -1
- package/dist/workerd/converters/Converters.mjs +0 -2
- package/dist/workerd/converters/Converters.mjs.map +0 -1
- package/dist/workerd/converters/ListOfBuiltInConverters.mjs +0 -2
- package/dist/workerd/converters/ListOfBuiltInConverters.mjs.map +0 -1
- package/dist/workerd/converters/ValueConverter.mjs +0 -2
- package/dist/workerd/converters/ValueConverter.mjs.map +0 -1
- package/dist/workerd/core/AdvancedMethods.mjs +0 -2
- package/dist/workerd/core/AdvancedMethods.mjs.map +0 -1
- package/dist/workerd/core/EnvapterBase.mjs +0 -2
- package/dist/workerd/core/EnvapterBase.mjs.map +0 -1
- package/dist/workerd/core/EnvironmentMethods.mjs +0 -2
- package/dist/workerd/core/EnvironmentMethods.mjs.map +0 -1
- package/dist/workerd/core/PrimitiveMethods.mjs +0 -2
- package/dist/workerd/core/PrimitiveMethods.mjs.map +0 -1
- package/dist/workerd/decorators/legacy/Envapt.mjs +0 -2
- package/dist/workerd/decorators/legacy/Envapt.mjs.map +0 -1
- package/dist/workerd/decorators/legacy/SugarDecorators.mjs +0 -2
- package/dist/workerd/decorators/legacy/SugarDecorators.mjs.map +0 -1
- package/dist/workerd/decorators/legacy/createPropertyDecorator.mjs +0 -2
- package/dist/workerd/decorators/legacy/createPropertyDecorator.mjs.map +0 -1
- package/dist/workerd/decorators/modern/Envapt.mjs +0 -2
- package/dist/workerd/decorators/modern/Envapt.mjs.map +0 -1
- package/dist/workerd/decorators/modern/SugarDecorators.mjs +0 -2
- package/dist/workerd/decorators/modern/SugarDecorators.mjs.map +0 -1
- package/dist/workerd/decorators/modern/createAccessorDecorator.mjs +0 -2
- package/dist/workerd/decorators/modern/createAccessorDecorator.mjs.map +0 -1
- package/dist/workerd/decorators/parseEnvaptOptions.mjs +0 -2
- package/dist/workerd/decorators/parseEnvaptOptions.mjs.map +0 -1
- package/dist/workerd/decorators/resolveDecoratorValue.mjs +0 -2
- package/dist/workerd/decorators/resolveDecoratorValue.mjs.map +0 -1
- package/dist/workerd/engine/Envapter.mjs +0 -2
- package/dist/workerd/engine/Envapter.mjs.map +0 -1
- package/dist/workerd/engine/PortableEnvapter.mjs +0 -2
- package/dist/workerd/engine/PortableEnvapter.mjs.map +0 -1
- package/dist/workerd/engine/TemplateResolver.mjs +0 -2
- package/dist/workerd/engine/TemplateResolver.mjs.map +0 -1
- package/dist/workerd/engine/Validators.mjs +0 -2
- package/dist/workerd/engine/Validators.mjs.map +0 -1
- package/dist/workerd/engine/installFileApiStubs.mjs +0 -2
- package/dist/workerd/engine/installFileApiStubs.mjs.map +0 -1
- package/dist/workerd/index.mjs +0 -1
- package/dist/workerd/infra/Debug.mjs +0 -2
- package/dist/workerd/infra/Debug.mjs.map +0 -1
- package/dist/workerd/infra/Dotenv.mjs +0 -3
- package/dist/workerd/infra/Dotenv.mjs.map +0 -1
- package/dist/workerd/infra/Error.mjs +0 -2
- package/dist/workerd/infra/Error.mjs.map +0 -1
- package/dist/workerd/infra/runtime.mjs +0 -2
- package/dist/workerd/infra/runtime.mjs.map +0 -1
- package/dist/workerd/legacy.mjs +0 -1
- package/dist/workerd/sources/ManualEnvSource.mjs +0 -2
- package/dist/workerd/sources/ManualEnvSource.mjs.map +0 -1
- package/dist/workerd/sources/UnboundEnvSource.mjs +0 -2
- package/dist/workerd/sources/UnboundEnvSource.mjs.map +0 -1
- package/dist/workerd/sources/WorkerEnvSource.mjs +0 -2
- package/dist/workerd/sources/WorkerEnvSource.mjs.map +0 -1
- package/dist/workerd/sources/coerce.mjs +0 -2
- package/dist/workerd/sources/coerce.mjs.map +0 -1
- /package/dist/{browser → portable}/converters/Converters.mjs +0 -0
- /package/dist/{browser → portable}/converters/ListOfBuiltInConverters.mjs +0 -0
- /package/dist/{browser → portable}/converters/ListOfBuiltInConverters.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/legacy/Envapt.mjs +0 -0
- /package/dist/{browser → portable}/decorators/legacy/Envapt.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/legacy/SugarDecorators.mjs +0 -0
- /package/dist/{browser → portable}/decorators/legacy/SugarDecorators.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/legacy/createPropertyDecorator.mjs +0 -0
- /package/dist/{browser → portable}/decorators/legacy/createPropertyDecorator.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/modern/Envapt.mjs +0 -0
- /package/dist/{browser → portable}/decorators/modern/Envapt.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/modern/SugarDecorators.mjs +0 -0
- /package/dist/{browser → portable}/decorators/modern/SugarDecorators.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/modern/createAccessorDecorator.mjs +0 -0
- /package/dist/{browser → portable}/decorators/modern/createAccessorDecorator.mjs.map +0 -0
- /package/dist/{browser → portable}/decorators/parseEnvaptOptions.mjs +0 -0
- /package/dist/{browser → portable}/decorators/parseEnvaptOptions.mjs.map +0 -0
- /package/dist/{browser → portable}/infra/Debug.mjs +0 -0
- /package/dist/{browser → portable}/infra/Debug.mjs.map +0 -0
- /package/dist/{browser → portable}/infra/Dotenv.mjs +0 -0
- /package/dist/{browser → portable}/infra/Dotenv.mjs.map +0 -0
- /package/dist/{browser → portable}/infra/runtime.mjs +0 -0
- /package/dist/{browser → portable}/legacy.mjs +0 -0
- /package/dist/{browser → portable}/sources/coerce.mjs +0 -0
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { DebugLevel } from "../infra/Debug.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { FileApiMode } from "../types/Options.mjs";
|
|
3
3
|
import { EnvKeyInput } from "../types/Env.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { Source } from "../types/Source.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/core/EnvapterBase.d.ts
|
|
7
7
|
/** @internal */
|
|
8
8
|
declare abstract class EnvapterBase {
|
|
9
|
-
protected static _envPaths: string[];
|
|
10
|
-
protected static _envPathsExplicitlySet: boolean;
|
|
11
|
-
protected static _baseDir: string | undefined;
|
|
12
|
-
protected static _userDefinedEnvFileOptions: EnvFileOptions;
|
|
13
|
-
protected static _strict: boolean;
|
|
14
|
-
protected static _syncProcessEnv: boolean;
|
|
15
|
-
protected static _dotenvAddedKeys: Set<string>;
|
|
16
|
-
protected static _source: EnvSource;
|
|
17
9
|
/**
|
|
18
10
|
* Enable or disable strict mode. Default `false`. Setting refreshes the cache so
|
|
19
11
|
* previously-cached converted values get re-evaluated under the new rule.
|
|
@@ -22,7 +14,7 @@ declare abstract class EnvapterBase {
|
|
|
22
14
|
static get strict(): boolean;
|
|
23
15
|
/**
|
|
24
16
|
* Set the debug log level. Defaults to `silent`. When unset, reads `ENVAPT_DEBUG` from the
|
|
25
|
-
* bound source on first access
|
|
17
|
+
* bound source on first access. The setter overrides any env-var value. Output goes to stderr
|
|
26
18
|
* on Node (the console elsewhere), prefixed with `[envapt]`.
|
|
27
19
|
*/
|
|
28
20
|
static set debug(level: DebugLevel);
|
|
@@ -32,7 +24,7 @@ declare abstract class EnvapterBase {
|
|
|
32
24
|
*
|
|
33
25
|
* Only keys the loader actually wrote are mirrored, so collision behavior follows
|
|
34
26
|
* `envFileOptions.override`: with the default `false`, pre-existing `process.env` values
|
|
35
|
-
* are preserved
|
|
27
|
+
* are preserved. With `true`, the file value wins in both the cache and the mirror.
|
|
36
28
|
*
|
|
37
29
|
* Flipping `false → true` mirrors the existing tracked delta immediately (no cache
|
|
38
30
|
* refresh). Flipping `true → false` is one-way: previously mirrored keys remain in
|
|
@@ -40,19 +32,14 @@ declare abstract class EnvapterBase {
|
|
|
40
32
|
*/
|
|
41
33
|
static set syncProcessEnv(value: boolean);
|
|
42
34
|
static get syncProcessEnv(): boolean;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
protected static resolveKeyInput(keyInput: EnvKeyInput): {
|
|
52
|
-
key: string;
|
|
53
|
-
value: string | undefined;
|
|
54
|
-
};
|
|
55
|
-
protected static get config(): Map<string, unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* On the portable build, this controls the filesystem-only config APIs (`envPaths`, `baseDir`,
|
|
37
|
+
* `envFileOptions`, `configureProfiles`, `resetProfiles`). `'warn'` (the default) warns once and
|
|
38
|
+
* no-ops, `'throw'` throws {@link EnvaptError} `FileApiUnsupported`. The node build runs these
|
|
39
|
+
* APIs normally and this value has no effect there.
|
|
40
|
+
*/
|
|
41
|
+
static set fileApiMode(mode: FileApiMode);
|
|
42
|
+
static get fileApiMode(): FileApiMode;
|
|
56
43
|
/**
|
|
57
44
|
* Eagerly load the `.env` cascade now instead of lazily on the first read. Idempotent: a no-op
|
|
58
45
|
* once the cache is built. Useful before mirroring to `process.env` (see {@link syncProcessEnv}),
|
|
@@ -60,12 +47,11 @@ declare abstract class EnvapterBase {
|
|
|
60
47
|
*/
|
|
61
48
|
static load(): void;
|
|
62
49
|
/**
|
|
63
|
-
* Bind the environment {@link
|
|
64
|
-
* (a `process.env` snapshot plus the `.env` cascade)
|
|
65
|
-
* `
|
|
66
|
-
* the cache.
|
|
50
|
+
* Bind the environment {@link Source}. On Node the entry binds {@link FileSource} for you
|
|
51
|
+
* (a `process.env` snapshot plus the `.env` cascade). On the browser or Workers, pass a
|
|
52
|
+
* `PortableSource` (or any `Source`) before reading. Clears and rebuilds the cache.
|
|
67
53
|
*/
|
|
68
|
-
static useSource(source:
|
|
54
|
+
static useSource(source: Source): void;
|
|
69
55
|
/**
|
|
70
56
|
* Read an environment variable as its raw string, skipping parsing and conversion.
|
|
71
57
|
*/
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/core/Environment.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Environment types supported by Envapter
|
|
4
|
+
*
|
|
5
|
+
* The following keys are checked in order until the first with a non-empty value is found, or defaulting to development if none are set:
|
|
6
|
+
* - `ENVIRONMENT`
|
|
7
|
+
* - `ENV`
|
|
8
|
+
* - `NODE_ENV`
|
|
9
|
+
* - `MODE`
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
declare enum Environment {
|
|
14
|
+
/** The default when no environment variable names a known environment. */
|
|
15
|
+
Development = 0,
|
|
16
|
+
/** Selected when an environment variable reads `staging`. */
|
|
17
|
+
Staging = 1,
|
|
18
|
+
/** Selected when an environment variable reads `production`. */
|
|
19
|
+
Production = 2,
|
|
20
|
+
/** Selected when an environment variable reads `test`. */
|
|
21
|
+
Test = 3
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Environment };
|
|
25
|
+
//# sourceMappingURL=Environment.d.mts.map
|
|
@@ -1,38 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Environment } from "./Environment.mjs";
|
|
2
2
|
import { EnvapterBase } from "./EnvapterBase.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/core/EnvironmentMethods.d.ts
|
|
5
|
-
/**
|
|
6
|
-
* Environment types supported by Envapter
|
|
7
|
-
*
|
|
8
|
-
* The following keys are checked in order until the first with a non-empty value is found, or defaulting to development if none are set:
|
|
9
|
-
* - `ENVIRONMENT`
|
|
10
|
-
* - `ENV`
|
|
11
|
-
* - `NODE_ENV`
|
|
12
|
-
* - `MODE`
|
|
13
|
-
*
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
declare enum Environment {
|
|
17
|
-
/** The default when no environment variable names a known environment. */
|
|
18
|
-
Development = 0,
|
|
19
|
-
/** Selected when an environment variable reads `staging`. */
|
|
20
|
-
Staging = 1,
|
|
21
|
-
/** Selected when an environment variable reads `production`. */
|
|
22
|
-
Production = 2,
|
|
23
|
-
/** Selected when an environment variable reads `test`. */
|
|
24
|
-
Test = 3
|
|
25
|
-
}
|
|
26
5
|
/**
|
|
27
6
|
* Mixin for environment detection and checking methods
|
|
28
7
|
* @internal
|
|
29
8
|
*/
|
|
30
9
|
declare class EnvironmentMethods extends EnvapterBase {
|
|
31
|
-
protected static _environment: Environment | undefined;
|
|
32
|
-
protected static _environmentExplicitlySet: boolean;
|
|
33
|
-
protected static _profiles: ProfilesConfig | undefined;
|
|
34
|
-
protected static determineEnvironment(env?: string | Environment): void;
|
|
35
|
-
private static firstEnvKeyValue;
|
|
36
10
|
/**
|
|
37
11
|
* Get the current application environment
|
|
38
12
|
*/
|
|
@@ -81,46 +55,7 @@ declare class EnvironmentMethods extends EnvapterBase {
|
|
|
81
55
|
* @see {@link EnvironmentMethods.isTest}
|
|
82
56
|
*/
|
|
83
57
|
get isTest(): boolean;
|
|
84
|
-
protected static refreshCache(): void;
|
|
85
|
-
/**
|
|
86
|
-
* Reads the source's raw vars (not `this.config`, which would recurse: cascade selection runs
|
|
87
|
-
* before the `.env` load). `Envapter.environment` may differ post-load if a file sets `ENVIRONMENT`.
|
|
88
|
-
* @internal
|
|
89
|
-
*/
|
|
90
|
-
protected static getCascadeEnvironment(): Environment;
|
|
91
|
-
/**
|
|
92
|
-
* Build the dotenv-flow cascade for a given environment, in dotenv first-wins precedence
|
|
93
|
-
* order (highest precedence first). Missing files are silently filtered.
|
|
94
|
-
*
|
|
95
|
-
* Precedence is **most-specific-wins** (matches Vite / Astro / Vocs):
|
|
96
|
-
* `.env.${env}.local` \> `.env.${env}` \> `.env.local` \> `.env`
|
|
97
|
-
*
|
|
98
|
-
* This differs from dotenv-flow / Next.js convention which puts `.env.local` above
|
|
99
|
-
* `.env.${env}`. We chose the most-specific-wins order so committed env-specific files
|
|
100
|
-
* (`.env.production`) are authoritative for that environment regardless of whether a
|
|
101
|
-
* stray `.env.local` is present.
|
|
102
|
-
* @internal
|
|
103
|
-
*/
|
|
104
|
-
protected static buildCascadePaths(env: Environment): string[];
|
|
105
|
-
private static normalizeProfilePaths;
|
|
106
|
-
/**
|
|
107
|
-
* Override the base implementation to layer the dotenv-flow cascade + any
|
|
108
|
-
* `Envapter.configureProfiles` overrides on top of `_envPaths` when the user has NOT
|
|
109
|
-
* explicitly set `envPaths`.
|
|
110
|
-
*
|
|
111
|
-
* Precedence (passed to dotenv with first-wins semantics):
|
|
112
|
-
* 1. profile-configured paths for the current env (if any)
|
|
113
|
-
* 2. `.env.${env}.local`
|
|
114
|
-
* 3. `.env.${env}`
|
|
115
|
-
* 4. `.env.local`
|
|
116
|
-
* 5. `.env`
|
|
117
|
-
*
|
|
118
|
-
* If `useDefaults: false` is set on the profiles config, only (1) is loaded, no cascade.
|
|
119
|
-
* If `envPaths` was explicitly set, only `envPaths` is loaded (everything else ignored).
|
|
120
|
-
* @internal
|
|
121
|
-
*/
|
|
122
|
-
protected static resolveEffectivePaths(): string[];
|
|
123
58
|
}
|
|
124
59
|
//#endregion
|
|
125
|
-
export {
|
|
60
|
+
export { EnvironmentMethods };
|
|
126
61
|
//# sourceMappingURL=EnvironmentMethods.d.mts.map
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { ConditionalReturn } from "../types/Conversion.mjs";
|
|
2
|
+
import { EnvKeyInput } from "../types/Env.mjs";
|
|
2
3
|
import { EnvironmentMethods } from "./EnvironmentMethods.mjs";
|
|
3
|
-
import { EnvKeyInput, EnvapterService } from "../types/Env.mjs";
|
|
4
|
-
import { ValueConverter } from "../converters/ValueConverter.mjs";
|
|
5
|
-
import { TemplateResolver } from "../engine/TemplateResolver.mjs";
|
|
6
4
|
|
|
7
5
|
//#region src/core/PrimitiveMethods.d.ts
|
|
8
6
|
/**
|
|
9
7
|
* @internal
|
|
10
8
|
*/
|
|
11
|
-
declare class PrimitiveMethods extends EnvironmentMethods
|
|
12
|
-
private static readonly service;
|
|
13
|
-
protected static readonly templateResolver: TemplateResolver;
|
|
14
|
-
protected static readonly valueConverter: ValueConverter;
|
|
15
|
-
isStrict(): boolean;
|
|
16
|
-
protected static resolveForMirror(key: string, value: string): string;
|
|
17
|
-
private static _get;
|
|
9
|
+
declare class PrimitiveMethods extends EnvironmentMethods {
|
|
18
10
|
/**
|
|
19
11
|
* Get a string environment variable with optional fallback.
|
|
20
12
|
* Supports template variable resolution using `${VAR}` syntax.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Environment } from "../core/
|
|
1
|
+
import { Environment } from "../core/Environment.mjs";
|
|
2
2
|
import { AdvancedMethods } from "../core/AdvancedMethods.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/engine/Envapter.d.ts
|
|
@@ -50,7 +50,7 @@ declare class Envapter extends AdvancedMethods {
|
|
|
50
50
|
* Assert that one or more environment variables are present and non-empty (post-trim,
|
|
51
51
|
* after template resolution). Throws `MissingEnvValue` listing every missing key.
|
|
52
52
|
*
|
|
53
|
-
* For typed
|
|
53
|
+
* For a typed required read in functional code, use `Envapter.getRequired(key, converter)`.
|
|
54
54
|
*
|
|
55
55
|
* @example
|
|
56
56
|
* ```ts
|
|
@@ -59,7 +59,6 @@ declare class Envapter extends AdvancedMethods {
|
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
61
|
static require(...keys: [string, ...string[]]): void;
|
|
62
|
-
private static resolveAndValidate;
|
|
63
62
|
/**
|
|
64
63
|
* @see {@link Envapter.require}
|
|
65
64
|
*/
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { EnvFileOptions } from "../infra/Dotenv.mjs";
|
|
2
1
|
import { ProfilesConfig } from "../types/Options.mjs";
|
|
3
2
|
import { Envapter } from "./Envapter.mjs";
|
|
3
|
+
import { EnvFileOptions } from "../infra/Dotenv.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/engine/NodeEnvapter.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* The Node/Bun/Deno facade: {@link Envapter} plus the filesystem-only configuration APIs (`.env`
|
|
8
|
-
* path selection, base directory, dotenv options, and per-environment profiles).
|
|
9
|
-
* Workers
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Writes target the state-owning class (`EnvapterBase`/`EnvironmentMethods`), not `this`: the engine
|
|
13
|
-
* reads that state through `EnvapterBase`-anchored paths, so a subclass own-property would be invisible.
|
|
8
|
+
* path selection, base directory, dotenv options, and per-environment profiles). On the portable
|
|
9
|
+
* build (Workers, the browser, edge) these same APIs warn once and no-op by default, controlled by
|
|
10
|
+
* `Envapter.fileApiMode`.
|
|
14
11
|
* @public
|
|
15
12
|
*/
|
|
16
13
|
declare class NodeEnvapter extends Envapter {
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
+
import { ProfilesConfig } from "../types/Options.mjs";
|
|
1
2
|
import { Envapter } from "./Envapter.mjs";
|
|
3
|
+
import { EnvFileOptions } from "../infra/Dotenv.mjs";
|
|
2
4
|
|
|
3
5
|
//#region src/engine/PortableEnvapter.d.ts
|
|
4
6
|
/**
|
|
5
|
-
* The browser/Workers facade. {@link Envapter} with the filesystem-only
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* The browser/Workers/edge facade. {@link Envapter} with the filesystem-only config APIs present in
|
|
8
|
+
* the type but inert at runtime by default. Under the default `fileApiMode` of `'warn'` they warn once
|
|
9
|
+
* and no-op (getters return an empty default matching their type, setters do nothing). `'throw'` restores
|
|
10
|
+
* the {@link EnvaptError} `FileApiUnsupported`. The read side still throws `NoSourceBound` on first read
|
|
11
|
+
* until `useSource` binds a source.
|
|
9
12
|
* @public
|
|
10
13
|
*/
|
|
11
|
-
declare class PortableEnvapter extends Envapter {
|
|
14
|
+
declare class PortableEnvapter extends Envapter {
|
|
15
|
+
static get envPaths(): string[];
|
|
16
|
+
static set envPaths(_paths: string[] | string);
|
|
17
|
+
static get baseDir(): string | undefined;
|
|
18
|
+
static set baseDir(_value: string | URL | undefined);
|
|
19
|
+
static get envFileOptions(): EnvFileOptions;
|
|
20
|
+
static set envFileOptions(_config: EnvFileOptions);
|
|
21
|
+
static configureProfiles(_config: ProfilesConfig): void;
|
|
22
|
+
static resetProfiles(): void;
|
|
23
|
+
}
|
|
12
24
|
//#endregion
|
|
13
25
|
export { PortableEnvapter };
|
|
14
26
|
//# sourceMappingURL=PortableEnvapter.d.mts.map
|
package/dist/types/index.d.mts
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
+
import { Environment } from "./core/Environment.mjs";
|
|
1
2
|
import { DebugLevel } from "./infra/Debug.mjs";
|
|
3
|
+
import { ConverterToken, Converters, CustomElementConverter, isArrayOf } from "./converters/Converters.mjs";
|
|
4
|
+
import { ConverterFunction, EnvaptConverter, JsonValue, TimeFallback } from "./types/Conversion.mjs";
|
|
5
|
+
import { StandardSchemaV1 } from "./infra/StandardSchema.mjs";
|
|
6
|
+
import { EnvProfile, EnvaptOptions, FileApiMode, ProfilesConfig } from "./types/Options.mjs";
|
|
7
|
+
import { Source } from "./types/Source.mjs";
|
|
8
|
+
import { PortableSource } from "./sources/PortableSource.mjs";
|
|
9
|
+
import { merge } from "./sources/merge.mjs";
|
|
2
10
|
import { EnvFileOptions } from "./infra/Dotenv.mjs";
|
|
3
|
-
import { ArrayElement, ArrayOf, ConverterToken, Converters, CustomElementConverter, isArrayOf } from "./converters/Converters.mjs";
|
|
4
|
-
import { AdvancedConverterReturn, BuiltInConverter, BuiltInConverterFunction, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveReturnType, JsonValue, MapOfConverterFunctions, PrimitiveConstructor, TimeFallback, TimeUnit } from "./types/Conversion.mjs";
|
|
5
|
-
import { InferSchemaInput, InferSchemaOutput, StandardSchemaV1 } from "./infra/StandardSchema.mjs";
|
|
6
|
-
import { Err, SchemaConstraint, SchemaMustBeSync } from "./types/Schema.mjs";
|
|
7
|
-
import { Environment } from "./core/EnvironmentMethods.mjs";
|
|
8
|
-
import { EnvProfile, EnvaptOptions, ProfilesConfig } from "./types/Options.mjs";
|
|
9
|
-
import { EnvKeyInput } from "./types/Env.mjs";
|
|
10
|
-
import { BareEnvSource, EnvSource, FileEnvSource } from "./types/Source.mjs";
|
|
11
|
-
import { EnvaptAccessorDecorator, EnvaptFieldDecorator } from "./types/Decorator.mjs";
|
|
12
|
-
import { ManualEnvSource } from "./sources/ManualEnvSource.mjs";
|
|
13
|
-
import { WorkerEnvSource } from "./sources/WorkerEnvSource.mjs";
|
|
14
11
|
import { EnvaptError, EnvaptErrorCodes } from "./infra/Error.mjs";
|
|
15
12
|
import { Envapt } from "./decorators/modern/Envapt.mjs";
|
|
16
13
|
import { EnvBool, EnvNum, EnvStr, EnvTime, EnvUrl } from "./decorators/modern/SugarDecorators.mjs";
|
|
17
14
|
import { NodeEnvapter } from "./engine/NodeEnvapter.mjs";
|
|
18
|
-
import {
|
|
19
|
-
export { type
|
|
15
|
+
import { FileSource } from "./sources/FileSource.mjs";
|
|
16
|
+
export { type ConverterFunction, type ConverterToken, Converters, type CustomElementConverter, type DebugLevel, EnvBool, type EnvFileOptions, EnvNum, type EnvProfile, EnvStr, EnvTime, EnvUrl, Envapt, type EnvaptConverter, EnvaptError, EnvaptErrorCodes, type EnvaptOptions, NodeEnvapter as Envapter, Environment, type FileApiMode, FileSource, type JsonValue, PortableSource, type ProfilesConfig, type Source, type StandardSchemaV1, type TimeFallback, isArrayOf, merge };
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
+
import { Environment } from "./core/Environment.mjs";
|
|
1
2
|
import { DebugLevel } from "./infra/Debug.mjs";
|
|
3
|
+
import { ConverterToken, Converters, CustomElementConverter, isArrayOf } from "./converters/Converters.mjs";
|
|
4
|
+
import { ConverterFunction, EnvaptConverter, JsonValue, TimeFallback } from "./types/Conversion.mjs";
|
|
5
|
+
import { StandardSchemaV1 } from "./infra/StandardSchema.mjs";
|
|
6
|
+
import { EnvProfile, EnvaptOptions, FileApiMode, ProfilesConfig } from "./types/Options.mjs";
|
|
7
|
+
import { Source } from "./types/Source.mjs";
|
|
8
|
+
import { PortableSource } from "./sources/PortableSource.mjs";
|
|
9
|
+
import { merge } from "./sources/merge.mjs";
|
|
2
10
|
import { EnvFileOptions } from "./infra/Dotenv.mjs";
|
|
3
|
-
import { ArrayElement, ArrayOf, ConverterToken, Converters, CustomElementConverter, isArrayOf } from "./converters/Converters.mjs";
|
|
4
|
-
import { AdvancedConverterReturn, BuiltInConverter, BuiltInConverterFunction, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveReturnType, JsonValue, MapOfConverterFunctions, PrimitiveConstructor, TimeFallback, TimeUnit } from "./types/Conversion.mjs";
|
|
5
|
-
import { InferSchemaInput, InferSchemaOutput, StandardSchemaV1 } from "./infra/StandardSchema.mjs";
|
|
6
|
-
import { Err, SchemaConstraint, SchemaMustBeSync } from "./types/Schema.mjs";
|
|
7
|
-
import { Environment } from "./core/EnvironmentMethods.mjs";
|
|
8
|
-
import { EnvProfile, EnvaptOptions, ProfilesConfig } from "./types/Options.mjs";
|
|
9
|
-
import { EnvKeyInput } from "./types/Env.mjs";
|
|
10
|
-
import { BareEnvSource, EnvSource, FileEnvSource } from "./types/Source.mjs";
|
|
11
|
-
import { EnvaptAccessorDecorator, EnvaptFieldDecorator } from "./types/Decorator.mjs";
|
|
12
|
-
import { ManualEnvSource } from "./sources/ManualEnvSource.mjs";
|
|
13
|
-
import { WorkerEnvSource } from "./sources/WorkerEnvSource.mjs";
|
|
14
11
|
import { EnvaptError, EnvaptErrorCodes } from "./infra/Error.mjs";
|
|
15
12
|
import { Envapt } from "./decorators/modern/Envapt.mjs";
|
|
16
13
|
import { EnvBool, EnvNum, EnvStr, EnvTime, EnvUrl } from "./decorators/modern/SugarDecorators.mjs";
|
|
17
14
|
import { PortableEnvapter } from "./engine/PortableEnvapter.mjs";
|
|
18
|
-
export { type
|
|
15
|
+
export { type ConverterFunction, type ConverterToken, Converters, type CustomElementConverter, type DebugLevel, EnvBool, type EnvFileOptions, EnvNum, type EnvProfile, EnvStr, EnvTime, EnvUrl, Envapt, type EnvaptConverter, EnvaptError, EnvaptErrorCodes, type EnvaptOptions, PortableEnvapter as Envapter, Environment, type FileApiMode, type JsonValue, PortableSource, type ProfilesConfig, type Source, type StandardSchemaV1, type TimeFallback, isArrayOf, merge };
|
|
@@ -47,7 +47,9 @@ declare enum EnvaptErrorCodes {
|
|
|
47
47
|
/** Thrown when a file-based API (envPaths, baseDir, configureProfiles) is used on a source without filesystem support */
|
|
48
48
|
FileApiUnsupported = 306,
|
|
49
49
|
/** Thrown when an environment value is read before a source is bound via Envapter.useSource */
|
|
50
|
-
NoSourceBound = 307
|
|
50
|
+
NoSourceBound = 307,
|
|
51
|
+
/** Thrown when `merge` is called with no members, or with more than one filesystem-backed source */
|
|
52
|
+
InvalidMergedSource = 308
|
|
51
53
|
}
|
|
52
54
|
interface EnvaptErrorOptions {
|
|
53
55
|
issues?: readonly StandardSchemaV1.Issue[];
|
|
@@ -43,18 +43,7 @@ declare namespace StandardSchemaV1 {
|
|
|
43
43
|
type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
|
|
44
44
|
type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
|
|
45
45
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Envapt-side alias for {@link StandardSchemaV1.InferOutput}. Re-exported under a friendlier
|
|
48
|
-
* name so consumers writing `static readonly x: InferSchemaOutput<typeof mySchema>`
|
|
49
|
-
* don't need the namespace path.
|
|
50
|
-
* @public
|
|
51
|
-
*/
|
|
52
46
|
type InferSchemaOutput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferOutput<Schema>;
|
|
53
|
-
/**
|
|
54
|
-
* Envapt-side alias for {@link StandardSchemaV1.InferInput}.
|
|
55
|
-
* @public
|
|
56
|
-
*/
|
|
57
|
-
type InferSchemaInput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferInput<Schema>;
|
|
58
47
|
//#endregion
|
|
59
|
-
export {
|
|
48
|
+
export { InferSchemaOutput, StandardSchemaV1 };
|
|
60
49
|
//# sourceMappingURL=StandardSchema.d.mts.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FileCapableSource } from "../types/Source.mjs";
|
|
2
2
|
|
|
3
|
-
//#region src/sources/
|
|
3
|
+
//#region src/sources/FileSource.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Default environment source on Node, Bun, and Deno: a snapshot of `process.env`. Its
|
|
6
6
|
* `supportsFiles` is `true`, so the engine also layers the `.env` cascade on top, resolves
|
|
7
7
|
* `baseDir`, and can mirror loaded keys back to `process.env`.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
declare class
|
|
10
|
+
declare class FileSource implements FileCapableSource {
|
|
11
11
|
/** Always `true`. The engine layers the `.env` cascade and `baseDir` on top of `process.env`. */
|
|
12
12
|
readonly supportsFiles = true;
|
|
13
13
|
/** Returns a snapshot clone of `process.env` as plain strings. */
|
|
@@ -26,5 +26,5 @@ declare class NodeEnvSource implements FileEnvSource {
|
|
|
26
26
|
writeVars(vars: Record<string, string>): void;
|
|
27
27
|
}
|
|
28
28
|
//#endregion
|
|
29
|
-
export {
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
export { FileSource };
|
|
30
|
+
//# sourceMappingURL=FileSource.d.mts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BareSource } from "../types/Source.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/sources/PortableSource.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Environment source seeded from an object you provide, for every runtime without a filesystem. The
|
|
6
|
+
* config your bundler injects into a browser build (Vite's `import.meta.env`, a webpack `DefinePlugin`
|
|
7
|
+
* global), the Cloudflare `env` binding, a Vercel Edge or Fastly config object, a test fixture, or any
|
|
8
|
+
* plain object. Pass it straight through. Non-string values are JSON-stringified so the converters
|
|
9
|
+
* still apply, which means they must be JSON-serializable. Without a filesystem the `.env` cascade and
|
|
10
|
+
* file APIs do not apply.
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
declare class PortableSource implements BareSource {
|
|
14
|
+
/** Always `false`. With no filesystem, the `.env` cascade and file APIs do not apply. */
|
|
15
|
+
readonly supportsFiles = false;
|
|
16
|
+
private readonly vars;
|
|
17
|
+
/** Seed the source from `vars`. Non-string values are JSON-stringified so the converters still apply. */
|
|
18
|
+
constructor(vars: object);
|
|
19
|
+
/** Returns a snapshot clone of the provided object as plain strings. */
|
|
20
|
+
readVars(): Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { PortableSource };
|
|
24
|
+
//# sourceMappingURL=PortableSource.d.mts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Source } from "../types/Source.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/sources/merge.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Compose several sources into one, read last-wins. A later member's value overrides an earlier
|
|
6
|
+
* member's value for the same key. Bind the result with `Envapter.useSource`. Throws
|
|
7
|
+
* {@link EnvaptErrorCodes.InvalidMergedSource} with no members or with more than one file-backed member.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
declare function merge(...members: Source[]): Source;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { merge };
|
|
13
|
+
//# sourceMappingURL=merge.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/types/Casing.d.ts
|
|
2
|
+
type KeyCasing = 'camelCase' | 'PascalCase' | 'kebab-case';
|
|
3
|
+
type SnakeToPascal<Str extends string> = Str extends `${infer Head}_${infer Tail}` ? `${Capitalize<Lowercase<Head>>}${SnakeToPascal<Tail>}` : Capitalize<Lowercase<Str>>;
|
|
4
|
+
type SnakeToKebab<Str extends string, Acc extends string = ''> = Str extends `${infer Head}_${infer Tail}` ? SnakeToKebab<Tail, Head extends '' ? Acc : Acc extends '' ? Lowercase<Head> : `${Acc}-${Lowercase<Head>}`> : Str extends '' ? Acc : Acc extends '' ? Lowercase<Str> : `${Acc}-${Lowercase<Str>}`;
|
|
5
|
+
type RecaseKey<Key extends string, Casing> = Casing extends 'camelCase' ? Uncapitalize<SnakeToPascal<Key>> : Casing extends 'PascalCase' ? SnakeToPascal<Key> : Casing extends 'kebab-case' ? SnakeToKebab<Key> : Key;
|
|
6
|
+
//#endregion
|
|
7
|
+
export type { KeyCasing, RecaseKey };
|
|
8
|
+
//# sourceMappingURL=Casing.d.mts.map
|
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
import { ArrayOf, ConverterToken, CustomElementConverter } from "../converters/Converters.mjs";
|
|
2
2
|
|
|
3
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
4
|
type BuiltInConverter = ConverterToken;
|
|
10
|
-
/**
|
|
11
|
-
* Primitive types supported by Envapter
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
5
|
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
6
|
type BaseInput = string | undefined;
|
|
20
7
|
/**
|
|
21
|
-
* Custom parser function
|
|
22
|
-
*
|
|
23
|
-
* @param
|
|
24
|
-
* @
|
|
8
|
+
* Custom parser function for an environment variable. `TRaw` is the raw input, `string | undefined` by
|
|
9
|
+
* default, narrowed to `string` by the readers that guarantee a present value (`getRequired`, `getRequiredAll`).
|
|
10
|
+
* @param raw - Raw value from the environment
|
|
11
|
+
* @param fallback - Fallback value when parsing is skipped
|
|
12
|
+
* @returns Parsed value of type `TFallback`
|
|
25
13
|
* @public
|
|
26
14
|
*/
|
|
27
|
-
type ConverterFunction<TFallback = unknown> = (raw:
|
|
15
|
+
type ConverterFunction<TFallback = unknown, TRaw extends BaseInput = BaseInput> = (raw: TRaw, fallback?: TFallback) => TFallback;
|
|
28
16
|
/**
|
|
29
17
|
* Environment variable converter: a primitive constructor, a built-in scalar token, an `ArrayOf<...>`
|
|
30
18
|
* produced by {@link Converters.array}, or a custom parser function.
|
|
@@ -55,26 +43,7 @@ interface ConverterMap {
|
|
|
55
43
|
date: Date;
|
|
56
44
|
time: number;
|
|
57
45
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Type mapping for built-in scalar converters to their return types
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
46
|
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
47
|
/**
|
|
79
48
|
* Time unit types for duration conversions
|
|
80
49
|
* @internal
|
|
@@ -85,39 +54,13 @@ type TimeUnit = 'ms' | 's' | 'm' | 'h' | 'd' | 'w';
|
|
|
85
54
|
* @public
|
|
86
55
|
*/
|
|
87
56
|
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
57
|
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
58
|
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
|
-
|
|
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
|
-
*/
|
|
59
|
+
type RequiredSpec = Record<string, BuiltInConverter | ArrayOf | ConverterFunction<unknown, string>>;
|
|
60
|
+
type InferSpecField<TConverter> = TConverter extends BuiltInConverter | ArrayOf ? InferConverterReturnType<TConverter> : TConverter extends ((raw: string) => infer TReturn) ? TReturn : never;
|
|
110
61
|
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
62
|
type AdvancedConverterReturn<TConverter, TFallback = undefined> = ConditionalReturn<InferConverterReturnType<TConverter>, TFallback>;
|
|
116
|
-
/**
|
|
117
|
-
* Type inference for primitive constructor return types
|
|
118
|
-
* @internal
|
|
119
|
-
*/
|
|
120
63
|
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
64
|
//#endregion
|
|
122
|
-
export type { AdvancedConverterReturn, BuiltInConverter,
|
|
65
|
+
export type { AdvancedConverterReturn, BuiltInConverter, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveReturnType, InferSpecField, JsonValue, PrimitiveConstructor, RequiredSpec, TimeFallback };
|
|
123
66
|
//# sourceMappingURL=Conversion.d.mts.map
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
//#region src/types/Decorator.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* A legacy (experimentalDecorators) property decorator that also constrains the decorated field's
|
|
4
|
-
* declared type. `Output` is the value the decorator produces. The field must be wide enough to hold
|
|
5
|
-
* it, so a field narrower than `Output` fails to compile while a wider or nullable field is accepted.
|
|
6
|
-
* The tuple wrap stops `Output` from distributing when it is a union.
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
2
|
type EnvaptFieldDecorator<Output> = <Target, Key extends keyof Target>(target: Target, key: [Output] extends [Target[Key]] ? Key : {
|
|
10
3
|
'[envapt] field type must hold the converter output': Output;
|
|
11
4
|
}) => void;
|
|
12
|
-
/**
|
|
13
|
-
* A modern (TC39 Stage 3) accessor decorator that also constrains the decorated `accessor`'s
|
|
14
|
-
* declared type. `Output` is the value the decorator produces. The accessor must be wide enough to
|
|
15
|
-
* hold it, so an accessor narrower than `Output` fails to compile while a wider or nullable one is
|
|
16
|
-
* accepted. The tuple wrap stops `Output` from distributing when it is a union.
|
|
17
|
-
* @public
|
|
18
|
-
*/
|
|
19
5
|
type EnvaptAccessorDecorator<Output> = <This, Value>(target: ClassAccessorDecoratorTarget<This, [Output] extends [Value] ? Value : {
|
|
20
6
|
'[envapt] field type must hold the converter output': Output;
|
|
21
7
|
}>, context: ClassAccessorDecoratorContext<This, [Output] extends [Value] ? Value : {
|
|
@@ -1,17 +1,8 @@
|
|
|
1
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
2
|
type EnvKeyInput = string | readonly [string, ...string[]];
|
|
7
3
|
/**
|
|
8
4
|
* @internal
|
|
9
5
|
*/
|
|
10
|
-
interface EnvapterService {
|
|
11
|
-
getRaw(key: EnvKeyInput): string | undefined;
|
|
12
|
-
get(key: EnvKeyInput, def?: string): string | undefined;
|
|
13
|
-
isStrict(): boolean;
|
|
14
|
-
}
|
|
15
6
|
//#endregion
|
|
16
|
-
export type { EnvKeyInput
|
|
7
|
+
export type { EnvKeyInput };
|
|
17
8
|
//# sourceMappingURL=Env.d.mts.map
|