envapt 7.1.0 → 8.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -99
- package/README.md +1 -1
- 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/missing.cjs +2 -0
- package/dist/node/core/missing.cjs.map +1 -0
- package/dist/node/core/missing.mjs +2 -0
- package/dist/node/core/missing.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/legacy/Envapt.cjs.map +1 -1
- package/dist/node/decorators/legacy/Envapt.mjs.map +1 -1
- package/dist/node/decorators/legacy/SugarDecorators.cjs.map +1 -1
- package/dist/node/decorators/legacy/SugarDecorators.mjs.map +1 -1
- package/dist/node/decorators/modern/Envapt.cjs.map +1 -1
- package/dist/node/decorators/modern/Envapt.mjs.map +1 -1
- package/dist/node/decorators/modern/SugarDecorators.cjs.map +1 -1
- package/dist/node/decorators/modern/SugarDecorators.mjs.map +1 -1
- 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/Debug.cjs +1 -1
- package/dist/node/infra/Debug.cjs.map +1 -1
- package/dist/node/infra/Debug.mjs +1 -1
- package/dist/node/infra/Debug.mjs.map +1 -1
- package/dist/node/infra/Dotenv.cjs.map +1 -1
- package/dist/node/infra/Dotenv.mjs.map +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 +1 -1
- package/dist/node/infra/runtime.cjs.map +1 -1
- package/dist/node/infra/runtime.mjs +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/PortableSource.cjs.map +1 -1
- package/dist/node/sources/PortableSource.mjs.map +1 -1
- 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/node/sources/normalizeSource.cjs +2 -0
- package/dist/node/sources/normalizeSource.cjs.map +1 -0
- package/dist/node/sources/normalizeSource.mjs +2 -0
- package/dist/node/sources/normalizeSource.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/missing.mjs +2 -0
- package/dist/portable/core/missing.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/{workerd → portable}/decorators/legacy/Envapt.mjs.map +1 -1
- package/dist/portable/decorators/legacy/SugarDecorators.mjs.map +1 -0
- package/dist/{browser → portable}/decorators/modern/Envapt.mjs.map +1 -1
- package/dist/portable/decorators/modern/SugarDecorators.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/portable/infra/Debug.mjs +2 -0
- package/dist/portable/infra/Debug.mjs.map +1 -0
- package/dist/portable/infra/Dotenv.mjs.map +1 -0
- package/dist/{browser → portable}/infra/Error.mjs +1 -1
- package/dist/portable/infra/Error.mjs.map +1 -0
- package/dist/portable/infra/recase.mjs +2 -0
- package/dist/portable/infra/recase.mjs.map +1 -0
- package/dist/portable/infra/runtime.mjs +2 -0
- package/dist/portable/infra/runtime.mjs.map +1 -0
- 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/portable/sources/normalizeSource.mjs +2 -0
- package/dist/portable/sources/normalizeSource.mjs.map +1 -0
- package/dist/types/converters/Converters.d.mts +3 -24
- package/dist/types/core/AdvancedMethods.d.mts +40 -19
- package/dist/types/core/EnvapterBase.d.mts +21 -26
- package/dist/types/core/Environment.d.mts +26 -0
- package/dist/types/core/EnvironmentMethods.d.mts +8 -67
- package/dist/types/core/PrimitiveMethods.d.mts +7 -10
- package/dist/types/decorators/legacy/SugarDecorators.d.mts +5 -0
- package/dist/types/decorators/modern/SugarDecorators.d.mts +5 -0
- package/dist/types/engine/Envapter.d.mts +6 -5
- package/dist/types/engine/NodeEnvapter.d.mts +18 -9
- package/dist/types/engine/PortableEnvapter.d.mts +17 -5
- package/dist/types/index.d.mts +10 -14
- package/dist/types/index.portable.d.mts +9 -13
- package/dist/types/infra/Debug.d.mts +1 -0
- package/dist/types/infra/Dotenv.d.mts +1 -0
- package/dist/types/infra/Error.d.mts +5 -1
- package/dist/types/infra/StandardSchema.d.mts +2 -12
- package/dist/types/sources/{NodeEnvSource.d.mts → FileSource.d.mts} +6 -5
- package/dist/types/sources/PortableSource.d.mts +3 -2
- package/dist/types/sources/merge.d.mts +16 -0
- package/dist/types/types/Casing.d.mts +8 -0
- package/dist/types/types/Conversion.d.mts +12 -71
- 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 +13 -2
- package/dist/types/types/Schema.d.mts +1 -13
- package/dist/types/types/Source.d.mts +11 -33
- 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/legacy/Envapt.mjs.map +0 -1
- package/dist/browser/decorators/legacy/SugarDecorators.mjs.map +0 -1
- package/dist/browser/decorators/modern/SugarDecorators.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/Debug.mjs +0 -2
- package/dist/browser/infra/Debug.mjs.map +0 -1
- package/dist/browser/infra/Dotenv.mjs.map +0 -1
- package/dist/browser/infra/Error.mjs.map +0 -1
- package/dist/browser/infra/runtime.mjs +0 -2
- package/dist/browser/infra/runtime.mjs.map +0 -1
- package/dist/browser/sources/ManualEnvSource.mjs +0 -2
- package/dist/browser/sources/ManualEnvSource.mjs.map +0 -1
- package/dist/browser/sources/PortableSource.mjs.map +0 -1
- package/dist/browser/sources/UnboundEnvSource.mjs.map +0 -1
- package/dist/browser/sources/WorkerEnvSource.mjs +0 -2
- package/dist/browser/sources/WorkerEnvSource.mjs.map +0 -1
- package/dist/browser/sources/coerce.mjs.map +0 -1
- package/dist/node/sources/ManualEnvSource.cjs +0 -2
- 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 -12
- package/dist/types/sources/WorkerEnvSource.d.mts +0 -12
- 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/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/PortableSource.mjs +0 -2
- package/dist/workerd/sources/PortableSource.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/SugarDecorators.mjs +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/SugarDecorators.mjs +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/Dotenv.mjs +0 -0
- /package/dist/{browser → portable}/legacy.mjs +0 -0
- /package/dist/{browser → portable}/sources/PortableSource.mjs +0 -0
- /package/dist/{browser → portable}/sources/coerce.mjs +0 -0
|
@@ -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 {
|
|
@@ -20,10 +17,12 @@ declare class NodeEnvapter extends Envapter {
|
|
|
20
17
|
*
|
|
21
18
|
* When set, this takes absolute precedence. The dotenv-flow auto-cascade and any
|
|
22
19
|
* `Envapter.configureProfiles` configuration are ignored.
|
|
20
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#which-files-load}
|
|
23
21
|
*/
|
|
24
22
|
static set envPaths(paths: string[] | string);
|
|
25
23
|
/**
|
|
26
24
|
* Get currently configured .env file paths
|
|
25
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#which-files-load}
|
|
27
26
|
*/
|
|
28
27
|
static get envPaths(): string[];
|
|
29
28
|
/**
|
|
@@ -35,14 +34,22 @@ declare class NodeEnvapter extends Envapter {
|
|
|
35
34
|
*
|
|
36
35
|
* Set this before `envPaths` so relative `envPaths` validate against the right directory.
|
|
37
36
|
* Unset (`undefined`) restores `process.cwd()` resolution.
|
|
37
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#reading-from-a-fixed-directory}
|
|
38
38
|
*/
|
|
39
39
|
static set baseDir(value: string | URL | undefined);
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The configured base directory, or `undefined` when relative paths resolve against the working directory.
|
|
42
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#reading-from-a-fixed-directory}
|
|
43
|
+
*/
|
|
41
44
|
static get baseDir(): string | undefined;
|
|
42
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Set the env file loader options (`encoding`, `override`). Refreshes the cache.
|
|
47
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#which-files-load}
|
|
48
|
+
*/
|
|
43
49
|
static set envFileOptions(config: EnvFileOptions);
|
|
44
50
|
/**
|
|
45
51
|
* Get current env file loader options
|
|
52
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#which-files-load}
|
|
46
53
|
*/
|
|
47
54
|
static get envFileOptions(): EnvFileOptions;
|
|
48
55
|
/**
|
|
@@ -61,12 +68,14 @@ declare class NodeEnvapter extends Envapter {
|
|
|
61
68
|
* [Environment.Production]: { paths: ['config/prod.env', 'secrets/prod.env'] }
|
|
62
69
|
* });
|
|
63
70
|
* ```
|
|
71
|
+
* @see {@link https://envapt.materwelon.dev/docs/environment#custom-profiles}
|
|
64
72
|
*/
|
|
65
73
|
static configureProfiles(config: ProfilesConfig): void;
|
|
66
74
|
/**
|
|
67
75
|
* Reset all path-resolution configuration to defaults: clears any prior
|
|
68
76
|
* `Envapter.configureProfiles` call AND any explicit `Envapter.envPaths` assignment.
|
|
69
77
|
* Returns the resolver to the pure dotenv-flow cascade.
|
|
78
|
+
* @see {@link https://envapt.materwelon.dev/docs/environment#custom-profiles}
|
|
70
79
|
*/
|
|
71
80
|
static resetProfiles(): void;
|
|
72
81
|
}
|
|
@@ -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,20 +1,16 @@
|
|
|
1
|
+
import { Environment } from "./core/Environment.mjs";
|
|
1
2
|
import { DebugLevel } from "./infra/Debug.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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, Source } from "./types/Source.mjs";
|
|
11
|
-
import { EnvaptAccessorDecorator, EnvaptFieldDecorator } from "./types/Decorator.mjs";
|
|
3
|
+
import { Converters, CustomElementConverter } from "./converters/Converters.mjs";
|
|
4
|
+
import { ConverterFunction, 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";
|
|
12
8
|
import { PortableSource } from "./sources/PortableSource.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
9
|
+
import { merge } from "./sources/merge.mjs";
|
|
10
|
+
import { EnvFileOptions } from "./infra/Dotenv.mjs";
|
|
15
11
|
import { EnvaptError, EnvaptErrorCodes } from "./infra/Error.mjs";
|
|
16
12
|
import { Envapt } from "./decorators/modern/Envapt.mjs";
|
|
17
13
|
import { EnvBool, EnvNum, EnvStr, EnvTime, EnvUrl } from "./decorators/modern/SugarDecorators.mjs";
|
|
18
14
|
import { NodeEnvapter } from "./engine/NodeEnvapter.mjs";
|
|
19
|
-
import {
|
|
20
|
-
export { type
|
|
15
|
+
import { FileSource } from "./sources/FileSource.mjs";
|
|
16
|
+
export { type ConverterFunction, Converters, type CustomElementConverter, type DebugLevel, EnvBool, type EnvFileOptions, EnvNum, type EnvProfile, EnvStr, EnvTime, EnvUrl, Envapt, EnvaptError, EnvaptErrorCodes, type EnvaptOptions, NodeEnvapter as Envapter, Environment, type FileApiMode, FileSource, type JsonValue, PortableSource, type ProfilesConfig, type Source, type StandardSchemaV1, type TimeFallback, merge };
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
+
import { Environment } from "./core/Environment.mjs";
|
|
1
2
|
import { DebugLevel } from "./infra/Debug.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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, Source } from "./types/Source.mjs";
|
|
11
|
-
import { EnvaptAccessorDecorator, EnvaptFieldDecorator } from "./types/Decorator.mjs";
|
|
3
|
+
import { Converters, CustomElementConverter } from "./converters/Converters.mjs";
|
|
4
|
+
import { ConverterFunction, 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";
|
|
12
8
|
import { PortableSource } from "./sources/PortableSource.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
9
|
+
import { merge } from "./sources/merge.mjs";
|
|
10
|
+
import { EnvFileOptions } from "./infra/Dotenv.mjs";
|
|
15
11
|
import { EnvaptError, EnvaptErrorCodes } from "./infra/Error.mjs";
|
|
16
12
|
import { Envapt } from "./decorators/modern/Envapt.mjs";
|
|
17
13
|
import { EnvBool, EnvNum, EnvStr, EnvTime, EnvUrl } from "./decorators/modern/SugarDecorators.mjs";
|
|
18
14
|
import { PortableEnvapter } from "./engine/PortableEnvapter.mjs";
|
|
19
|
-
export { type
|
|
15
|
+
export { type ConverterFunction, Converters, type CustomElementConverter, type DebugLevel, EnvBool, type EnvFileOptions, EnvNum, type EnvProfile, EnvStr, EnvTime, EnvUrl, Envapt, EnvaptError, EnvaptErrorCodes, type EnvaptOptions, PortableEnvapter as Envapter, Environment, type FileApiMode, type JsonValue, PortableSource, type ProfilesConfig, type Source, type StandardSchemaV1, type TimeFallback, merge };
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* (whether it returns a fallback or `undefined`). `verbose` adds every loaded file,
|
|
7
7
|
* per-file key count, per-key load lines, and effective-paths / cache-rebuild notices.
|
|
8
8
|
* @public
|
|
9
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#debug-logging}
|
|
9
10
|
*/
|
|
10
11
|
type DebugLevel = 'silent' | 'warn' | 'verbose';
|
|
11
12
|
//#endregion
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* For debug output, use `Envapter.debug` (or the `ENVAPT_DEBUG` env var).
|
|
6
6
|
*
|
|
7
7
|
* @public
|
|
8
|
+
* @see {@link https://envapt.materwelon.dev/docs/configuration#which-files-load}
|
|
8
9
|
*/
|
|
9
10
|
interface EnvFileOptions {
|
|
10
11
|
/** Encoding for reading .env files. Defaults to 'utf8'. */
|
|
@@ -4,6 +4,7 @@ import { StandardSchemaV1 } from "./StandardSchema.mjs";
|
|
|
4
4
|
/**
|
|
5
5
|
* Numeric codes carried by {@link EnvaptError.code}, grouped by fallback (1xx), converter (2xx),
|
|
6
6
|
* and configuration (3xx) failures.
|
|
7
|
+
* @see {@link https://envapt.materwelon.dev/docs/errors#codes}
|
|
7
8
|
*/
|
|
8
9
|
declare enum EnvaptErrorCodes {
|
|
9
10
|
/** Thrown when an invalid fallback value is provided */
|
|
@@ -47,7 +48,9 @@ declare enum EnvaptErrorCodes {
|
|
|
47
48
|
/** Thrown when a file-based API (envPaths, baseDir, configureProfiles) is used on a source without filesystem support */
|
|
48
49
|
FileApiUnsupported = 306,
|
|
49
50
|
/** Thrown when an environment value is read before a source is bound via Envapter.useSource */
|
|
50
|
-
NoSourceBound = 307
|
|
51
|
+
NoSourceBound = 307,
|
|
52
|
+
/** Thrown when `merge` is called with no members, or with more than one filesystem-backed source */
|
|
53
|
+
InvalidMergedSource = 308
|
|
51
54
|
}
|
|
52
55
|
interface EnvaptErrorOptions {
|
|
53
56
|
issues?: readonly StandardSchemaV1.Issue[];
|
|
@@ -60,6 +63,7 @@ interface EnvaptErrorOptions {
|
|
|
60
63
|
* ```ts
|
|
61
64
|
* throw new EnvaptError(EnvaptErrorCodes.InvalidFallback, "Invalid fallback value provided for environment variable.");
|
|
62
65
|
* ```
|
|
66
|
+
* @see {@link https://envapt.materwelon.dev/docs/errors#the-error-shape}
|
|
63
67
|
*/
|
|
64
68
|
declare class EnvaptError extends Error {
|
|
65
69
|
/** The {@link EnvaptErrorCodes} value identifying what failed. */
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* `SchemaMustBeSync` brand in `Types.ts`) and at runtime by the Parser dispatch.
|
|
10
10
|
*
|
|
11
11
|
* @public
|
|
12
|
+
* @see {@link https://envapt.materwelon.dev/docs/standard-schema#any-conformant-validator-or-none}
|
|
12
13
|
*/
|
|
13
14
|
interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
14
15
|
/** The Standard Schema entry point holding the validator and the inferred input/output types. */
|
|
@@ -43,18 +44,7 @@ declare namespace StandardSchemaV1 {
|
|
|
43
44
|
type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
|
|
44
45
|
type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
|
|
45
46
|
}
|
|
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
47
|
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
48
|
//#endregion
|
|
59
|
-
export {
|
|
49
|
+
export { InferSchemaOutput, StandardSchemaV1 };
|
|
60
50
|
//# sourceMappingURL=StandardSchema.d.mts.map
|
|
@@ -1,13 +1,14 @@
|
|
|
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
|
+
* @see {@link https://envapt.materwelon.dev/docs/sources#the-providers}
|
|
9
10
|
*/
|
|
10
|
-
declare class
|
|
11
|
+
declare class FileSource implements FileCapableSource {
|
|
11
12
|
/** Always `true`. The engine layers the `.env` cascade and `baseDir` on top of `process.env`. */
|
|
12
13
|
readonly supportsFiles = true;
|
|
13
14
|
/** Returns a snapshot clone of `process.env` as plain strings. */
|
|
@@ -26,5 +27,5 @@ declare class NodeEnvSource implements FileEnvSource {
|
|
|
26
27
|
writeVars(vars: Record<string, string>): void;
|
|
27
28
|
}
|
|
28
29
|
//#endregion
|
|
29
|
-
export {
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
export { FileSource };
|
|
31
|
+
//# sourceMappingURL=FileSource.d.mts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BareSource } from "../types/Source.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/sources/PortableSource.d.ts
|
|
4
4
|
/**
|
|
@@ -9,8 +9,9 @@ import { BareEnvSource } from "../types/Source.mjs";
|
|
|
9
9
|
* still apply, which means they must be JSON-serializable. Without a filesystem the `.env` cascade and
|
|
10
10
|
* file APIs do not apply.
|
|
11
11
|
* @public
|
|
12
|
+
* @see {@link https://envapt.materwelon.dev/docs/sources#the-providers}
|
|
12
13
|
*/
|
|
13
|
-
declare class PortableSource implements
|
|
14
|
+
declare class PortableSource implements BareSource {
|
|
14
15
|
/** Always `false`. With no filesystem, the `.env` cascade and file APIs do not apply. */
|
|
15
16
|
readonly supportsFiles = false;
|
|
16
17
|
private readonly vars;
|
|
@@ -0,0 +1,16 @@
|
|
|
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 `readVars()` value overrides an
|
|
6
|
+
* earlier member's for the same key. A member may be a `(key) => string | undefined` reader for a
|
|
7
|
+
* source that reads one key at a time, and it fills a key missing from every snapshot. Bind the result
|
|
8
|
+
* with `Envapter.useSource`. Throws {@link EnvaptErrorCodes.InvalidMergedSource} with no members or with
|
|
9
|
+
* more than one file-backed member.
|
|
10
|
+
* @public
|
|
11
|
+
* @see {@link https://envapt.materwelon.dev/docs/sources#combining-sources}
|
|
12
|
+
*/
|
|
13
|
+
declare function merge(...members: (Source | ((key: string) => string | undefined))[]): Source;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { merge };
|
|
16
|
+
//# 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,35 +1,19 @@
|
|
|
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
|
-
* @
|
|
25
|
-
* @
|
|
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.
|
|
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`
|
|
31
13
|
* @public
|
|
14
|
+
* @see {@link https://envapt.materwelon.dev/docs/converters#custom-converters}
|
|
32
15
|
*/
|
|
16
|
+
type ConverterFunction<TFallback = unknown, TRaw extends BaseInput = BaseInput> = (raw: TRaw, fallback?: TFallback) => TFallback;
|
|
33
17
|
type EnvaptConverter<TFallback> = PrimitiveConstructor | BuiltInConverter | ArrayOf | ConverterFunction<TFallback>;
|
|
34
18
|
type JsonPrimitive = string | number | boolean | null;
|
|
35
19
|
type JsonArray = JsonValue[];
|
|
@@ -39,6 +23,7 @@ interface JsonObject {
|
|
|
39
23
|
/**
|
|
40
24
|
* JSON value types for custom converters
|
|
41
25
|
* @public
|
|
26
|
+
* @see {@link https://envapt.materwelon.dev/docs/converters#json}
|
|
42
27
|
*/
|
|
43
28
|
type JsonValue = JsonPrimitive | JsonArray | JsonObject;
|
|
44
29
|
interface ConverterMap {
|
|
@@ -55,26 +40,7 @@ interface ConverterMap {
|
|
|
55
40
|
date: Date;
|
|
56
41
|
time: number;
|
|
57
42
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Type mapping for built-in scalar converters to their return types
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
43
|
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
44
|
/**
|
|
79
45
|
* Time unit types for duration conversions
|
|
80
46
|
* @internal
|
|
@@ -83,41 +49,16 @@ type TimeUnit = 'ms' | 's' | 'm' | 'h' | 'd' | 'w';
|
|
|
83
49
|
/**
|
|
84
50
|
* Fallback type for time duration conversions
|
|
85
51
|
* @public
|
|
52
|
+
* @see {@link https://envapt.materwelon.dev/docs/converters#time-and-durations}
|
|
86
53
|
*/
|
|
87
54
|
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
55
|
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
56
|
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
|
-
*/
|
|
57
|
+
type RequiredSpec = Record<string, BuiltInConverter | ArrayOf | ConverterFunction<unknown, string>>;
|
|
58
|
+
type InferSpecField<TConverter> = TConverter extends BuiltInConverter | ArrayOf ? InferConverterReturnType<TConverter> : TConverter extends ((raw: string) => infer TReturn) ? TReturn : never;
|
|
110
59
|
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
60
|
type AdvancedConverterReturn<TConverter, TFallback = undefined> = ConditionalReturn<InferConverterReturnType<TConverter>, TFallback>;
|
|
116
|
-
/**
|
|
117
|
-
* Type inference for primitive constructor return types
|
|
118
|
-
* @internal
|
|
119
|
-
*/
|
|
120
61
|
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
62
|
//#endregion
|
|
122
|
-
export type { AdvancedConverterReturn, BuiltInConverter,
|
|
63
|
+
export type { AdvancedConverterReturn, BuiltInConverter, ConditionalReturn, ConverterFunction, EnvaptConverter, InferConverterFallbackType, InferConverterReturnType, InferPrimitiveReturnType, InferSpecField, JsonValue, PrimitiveConstructor, RequiredSpec, TimeFallback };
|
|
123
64
|
//# 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
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { Environment } from "../core/Environment.mjs";
|
|
1
2
|
import { EnvaptConverter } from "./Conversion.mjs";
|
|
2
|
-
import { Environment } from "../core/EnvironmentMethods.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/types/Options.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Options for the \@Envapt decorator (modern API). `required: true` is mutually exclusive
|
|
7
7
|
* with `fallback`; see the per-converter overloads in `Envapt.ts` for the type-level mutex.
|
|
8
8
|
* @public
|
|
9
|
+
* @see {@link https://envapt.materwelon.dev/docs/decorators#declaring-decorated-fields}
|
|
9
10
|
*/
|
|
10
11
|
interface EnvaptOptions<TFallback = string> {
|
|
11
12
|
/** Value returned when the variable is missing or empty. Mutually exclusive with `required: true`. */
|
|
@@ -18,6 +19,7 @@ interface EnvaptOptions<TFallback = string> {
|
|
|
18
19
|
/**
|
|
19
20
|
* Per-environment profile entry passed to `Envapter.configureProfiles`.
|
|
20
21
|
* @public
|
|
22
|
+
* @see {@link https://envapt.materwelon.dev/docs/environment#custom-profiles}
|
|
21
23
|
*/
|
|
22
24
|
interface EnvProfile {
|
|
23
25
|
/** One or more `.env` paths to load for this environment. Order matters: earlier paths take precedence. */
|
|
@@ -28,6 +30,7 @@ interface EnvProfile {
|
|
|
28
30
|
* profile override. Unspecified environments fall through to the default cascade behavior
|
|
29
31
|
* (`.env.${env}.local`, `.env.local`, `.env.${env}`, `.env`).
|
|
30
32
|
* @public
|
|
33
|
+
* @see {@link https://envapt.materwelon.dev/docs/environment#custom-profiles}
|
|
31
34
|
*/
|
|
32
35
|
type ProfilesConfig = Partial<Record<Environment, EnvProfile>> & {
|
|
33
36
|
/**
|
|
@@ -37,6 +40,14 @@ type ProfilesConfig = Partial<Record<Environment, EnvProfile>> & {
|
|
|
37
40
|
*/
|
|
38
41
|
useDefaults?: boolean;
|
|
39
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* How the portable build's filesystem-only config APIs behave when called. `'warn'` (the default)
|
|
45
|
+
* warns once and no-ops, `'throw'` throws `FileApiUnsupported`. The node build runs these APIs
|
|
46
|
+
* normally and is unaffected by this value.
|
|
47
|
+
* @public
|
|
48
|
+
* @see {@link https://envapt.materwelon.dev/docs/compatibility#binding-by-runtime}
|
|
49
|
+
*/
|
|
50
|
+
type FileApiMode = 'warn' | 'throw';
|
|
40
51
|
//#endregion
|
|
41
|
-
export type { EnvProfile, EnvaptOptions, ProfilesConfig };
|
|
52
|
+
export type { EnvProfile, EnvaptOptions, FileApiMode, ProfilesConfig };
|
|
42
53
|
//# sourceMappingURL=Options.d.mts.map
|
|
@@ -2,23 +2,11 @@ import { StandardSchemaV1 } from "../infra/StandardSchema.mjs";
|
|
|
2
2
|
|
|
3
3
|
//#region src/types/Schema.d.ts
|
|
4
4
|
declare const _envaptErrBrand: unique symbol;
|
|
5
|
-
/**
|
|
6
|
-
* A branded string carrying a compile-time error message. The `unique symbol` brand cannot be
|
|
7
|
-
* produced from user code, so the message string can't be copy-pasted to satisfy the type.
|
|
8
|
-
*/
|
|
9
5
|
type Err<Msg extends string> = Msg & {
|
|
10
6
|
readonly [_envaptErrBrand]: never;
|
|
11
7
|
};
|
|
12
|
-
/**
|
|
13
|
-
* The {@link Err} returned when a Standard Schema's `validate` is async. envapt loads config at boot,
|
|
14
|
-
* so async refinements are rejected at the type level.
|
|
15
|
-
*/
|
|
16
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.'>;
|
|
17
|
-
/**
|
|
18
|
-
* Resolves to the schema when its `validate` is synchronous, or {@link SchemaMustBeSync} when it
|
|
19
|
-
* returns a Promise.
|
|
20
|
-
*/
|
|
21
9
|
type SchemaConstraint<Schema extends StandardSchemaV1> = ReturnType<Schema['~standard']['validate']> extends Promise<unknown> ? SchemaMustBeSync : Schema;
|
|
22
10
|
//#endregion
|
|
23
|
-
export type {
|
|
11
|
+
export type { SchemaConstraint };
|
|
24
12
|
//# sourceMappingURL=Schema.d.mts.map
|
|
@@ -1,49 +1,27 @@
|
|
|
1
1
|
//#region src/types/Source.d.ts
|
|
2
|
-
|
|
3
|
-
* A source with no filesystem: an injected object on the browser, or the Cloudflare `env` binding on
|
|
4
|
-
* Workers. The `.env` cascade, profiles, and the `envPaths`/`baseDir`/`configureProfiles` APIs do not
|
|
5
|
-
* apply. Only `readVars()` populates the cache.
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
interface BareEnvSource {
|
|
9
|
-
/** Return every variable this source provides, as plain strings. */
|
|
2
|
+
interface BareSource {
|
|
10
3
|
readVars(): Record<string, string>;
|
|
11
|
-
/** Leave unset (or `false`) because a bare source has no filesystem. */
|
|
12
4
|
readonly supportsFiles?: false;
|
|
5
|
+
readVar?(key: string): string | undefined;
|
|
13
6
|
}
|
|
14
|
-
|
|
15
|
-
* A filesystem-backed source, like the default {@link NodeEnvSource}. Setting `supportsFiles` to
|
|
16
|
-
* `true` requires all four file capabilities, so the engine can load the `.env` cascade, resolve
|
|
17
|
-
* `baseDir`, and mirror loaded keys back to the ambient environment.
|
|
18
|
-
* @public
|
|
19
|
-
*/
|
|
20
|
-
interface FileEnvSource {
|
|
21
|
-
/** Return every variable this source provides, as plain strings. */
|
|
7
|
+
interface FileCapableSource {
|
|
22
8
|
readVars(): Record<string, string>;
|
|
23
|
-
/** When `true`, the engine loads the `.env` cascade, profiles, and `envPaths` through the methods below. */
|
|
24
9
|
readonly supportsFiles: true;
|
|
25
|
-
/** Read a file's text, or `undefined` when it is absent or unreadable. Backs the loader and existence checks. */
|
|
26
10
|
readFile(path: string, encoding: string): string | undefined;
|
|
27
|
-
/** Join a relative `.env` path onto `baseDir`. Absolute paths are returned unchanged. */
|
|
28
11
|
resolvePath(baseDir: string, candidate: string): string;
|
|
29
|
-
/** Normalize a `baseDir` value (a directory path, or a module / `file:` URL) to an absolute directory path. */
|
|
30
12
|
normalizeBaseDir(value: string | URL): string;
|
|
31
|
-
/** Mirror loaded keys back to the ambient environment (e.g. `process.env`), backing `Envapter.syncProcessEnv`. */
|
|
32
13
|
writeVars(vars: Record<string, string>): void;
|
|
14
|
+
readVar?(key: string): string | undefined;
|
|
33
15
|
}
|
|
34
16
|
/**
|
|
35
|
-
* A pluggable source of environment variables. The default {@link
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
type Source = BareEnvSource | FileEnvSource;
|
|
42
|
-
/**
|
|
17
|
+
* A pluggable source of environment variables. The default {@link FileSource} reads `process.env` plus
|
|
18
|
+
* the `.env` cascade. A {@link PortableSource} lets the same engine run where there is no ambient
|
|
19
|
+
* environment (an injected object on the browser, the Cloudflare `env` binding on Workers). Bind one
|
|
20
|
+
* with `Envapter.useSource`.
|
|
43
21
|
* @public
|
|
44
|
-
* @
|
|
22
|
+
* @see {@link https://envapt.materwelon.dev/docs/sources#any-object-can-be-a-source}
|
|
45
23
|
*/
|
|
46
|
-
type
|
|
24
|
+
type Source = BareSource | FileCapableSource;
|
|
47
25
|
//#endregion
|
|
48
|
-
export type {
|
|
26
|
+
export type { BareSource, FileCapableSource, Source };
|
|
49
27
|
//# sourceMappingURL=Source.d.mts.map
|