@powerlines/plugin-env 0.14.21 → 0.14.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.cjs +37 -1
- package/dist/_virtual/rolldown_runtime.mjs +29 -1
- package/dist/babel/index.cjs +1 -1
- package/dist/babel/index.mjs +3 -1
- package/dist/babel/plugin.cjs +120 -4
- package/dist/babel/plugin.d.cts +2 -3
- package/dist/babel/plugin.d.mts +3 -2
- package/dist/babel/plugin.mjs +118 -4
- package/dist/components/docs.cjs +71 -1
- package/dist/components/docs.mjs +70 -1
- package/dist/components/env.cjs +432 -11
- package/dist/components/env.mjs +430 -9
- package/dist/components/index.cjs +6 -1
- package/dist/components/index.mjs +4 -1
- package/dist/deepkit/schemas/reflection.cjs +3940 -1
- package/dist/deepkit/schemas/reflection.mjs +3938 -1
- package/dist/deepkit/schemas/reflection2.cjs +4112 -1
- package/dist/deepkit/schemas/reflection2.mjs +4110 -1
- package/dist/deepkit/src/capnp.cjs +913 -1
- package/dist/deepkit/src/capnp.mjs +911 -1
- package/dist/deepkit/src/esbuild-plugin.cjs +47 -4
- package/dist/deepkit/src/esbuild-plugin.mjs +46 -4
- package/dist/deepkit/src/reflect-type.cjs +22 -1
- package/dist/deepkit/src/reflect-type.mjs +20 -1
- package/dist/deepkit/src/resolve-reflections.cjs +16 -1
- package/dist/deepkit/src/resolve-reflections.mjs +15 -1
- package/dist/deepkit/src/transformer.cjs +52 -1
- package/dist/deepkit/src/transformer.mjs +49 -1
- package/dist/deepkit/src/transpile.cjs +29 -1
- package/dist/deepkit/src/transpile.mjs +27 -1
- package/dist/deepkit/src/utilities.cjs +66 -1
- package/dist/deepkit/src/utilities.mjs +65 -1
- package/dist/deepkit/src/vendor/type-compiler/index.cjs +38 -1
- package/dist/deepkit/src/vendor/type-compiler/index.mjs +19 -1
- package/dist/deepkit/src/vendor/type.cjs +20 -1
- package/dist/deepkit/src/vendor/type.mjs +11 -1
- package/dist/helpers/automd-generator.cjs +22 -1
- package/dist/helpers/automd-generator.mjs +21 -1
- package/dist/helpers/create-reflection-resource.cjs +55 -1
- package/dist/helpers/create-reflection-resource.mjs +54 -1
- package/dist/helpers/index.cjs +6 -1
- package/dist/helpers/index.mjs +8 -1
- package/dist/helpers/load.cjs +83 -1
- package/dist/helpers/load.d.cts +2 -2
- package/dist/helpers/load.d.mts +3 -2
- package/dist/helpers/load.mjs +80 -1
- package/dist/helpers/persistence.cjs +214 -1
- package/dist/helpers/persistence.d.cts +1 -1
- package/dist/helpers/persistence.d.mts +1 -1
- package/dist/helpers/persistence.mjs +202 -1
- package/dist/helpers/reflect.cjs +111 -1
- package/dist/helpers/reflect.mjs +103 -1
- package/dist/helpers/source-file-env.cjs +28 -1
- package/dist/helpers/source-file-env.mjs +26 -1
- package/dist/helpers/template-helpers.cjs +42 -1
- package/dist/helpers/template-helpers.mjs +41 -1
- package/dist/index.cjs +203 -5
- package/dist/index.d.cts +1 -3
- package/dist/index.d.mts +2 -1
- package/dist/index.mjs +170 -5
- package/dist/plugin-alloy/src/core/components/output.cjs +45 -1
- package/dist/plugin-alloy/src/core/components/output.mjs +44 -1
- package/dist/plugin-alloy/src/core/contexts/context.cjs +11 -1
- package/dist/plugin-alloy/src/core/contexts/context.mjs +10 -1
- package/dist/plugin-alloy/src/index.cjs +93 -1
- package/dist/plugin-alloy/src/index.mjs +91 -1
- package/dist/plugin-alloy/src/types/plugin.d.cts +2 -2
- package/dist/plugin-alloy/src/types/plugin.d.mts +2 -2
- package/dist/plugin-automd/src/index.cjs +101 -1
- package/dist/plugin-automd/src/index.mjs +98 -1
- package/dist/plugin-automd/src/types/plugin.d.mts +2 -2
- package/dist/plugin-babel/src/helpers/ast-utils.cjs +10 -1
- package/dist/plugin-babel/src/helpers/ast-utils.mjs +9 -1
- package/dist/plugin-babel/src/helpers/create-plugin.cjs +41 -1
- package/dist/plugin-babel/src/helpers/create-plugin.mjs +39 -1
- package/dist/plugin-babel/src/helpers/filters.cjs +23 -1
- package/dist/plugin-babel/src/helpers/filters.mjs +21 -1
- package/dist/plugin-babel/src/helpers/index.cjs +5 -1
- package/dist/plugin-babel/src/helpers/index.mjs +7 -1
- package/dist/plugin-babel/src/helpers/module-helpers.cjs +38 -1
- package/dist/plugin-babel/src/helpers/module-helpers.mjs +35 -1
- package/dist/plugin-babel/src/helpers/options.cjs +50 -1
- package/dist/plugin-babel/src/helpers/options.mjs +47 -1
- package/dist/plugin-babel/src/index.cjs +91 -1
- package/dist/plugin-babel/src/index.mjs +89 -1
- package/dist/plugin-babel/src/types/plugin.d.cts +2 -2
- package/dist/plugin-babel/src/types/plugin.d.mts +2 -2
- package/dist/powerlines/schemas/fs.d.mts +1 -0
- package/dist/powerlines/src/api.d.mts +7 -0
- package/dist/powerlines/src/index.d.mts +12 -0
- package/dist/powerlines/src/internal/helpers/hooks.d.mts +5 -0
- package/dist/powerlines/src/lib/build/esbuild.cjs +102 -14
- package/dist/powerlines/src/lib/build/esbuild.mjs +100 -14
- package/dist/powerlines/src/lib/entry.cjs +12 -1
- package/dist/powerlines/src/lib/entry.mjs +14 -1
- package/dist/powerlines/src/lib/logger.cjs +41 -1
- package/dist/powerlines/src/lib/logger.mjs +39 -1
- package/dist/powerlines/src/lib/utilities/bundle.cjs +35 -1
- package/dist/powerlines/src/lib/utilities/bundle.mjs +34 -1
- package/dist/powerlines/src/lib/utilities/resolve.cjs +30 -1
- package/dist/powerlines/src/lib/utilities/resolve.mjs +29 -1
- package/dist/powerlines/src/plugin-utils/paths.cjs +1 -1
- package/dist/powerlines/src/plugin-utils/paths.mjs +3 -1
- package/dist/powerlines/src/types/api.d.mts +5 -0
- package/dist/powerlines/src/types/babel.d.cts +3 -2
- package/dist/powerlines/src/types/babel.d.mts +3 -2
- package/dist/powerlines/src/types/commands.d.cts +1 -1
- package/dist/powerlines/src/types/commands.d.mts +2 -2
- package/dist/powerlines/src/types/config.d.cts +5 -5
- package/dist/powerlines/src/types/config.d.mts +6 -6
- package/dist/powerlines/src/types/context.d.cts +28 -4
- package/dist/powerlines/src/types/context.d.mts +30 -6
- package/dist/powerlines/src/types/fs.d.cts +1 -1
- package/dist/powerlines/src/types/fs.d.mts +1 -1
- package/dist/powerlines/src/types/index.d.mts +12 -0
- package/dist/powerlines/src/types/plugin.d.cts +3 -3
- package/dist/powerlines/src/types/plugin.d.mts +4 -4
- package/dist/powerlines/src/types/resolved.d.cts +1 -1
- package/dist/powerlines/src/types/resolved.d.mts +2 -2
- package/dist/powerlines/src/types/tsconfig.d.mts +1 -1
- package/dist/powerlines/src/types/unplugin.d.mts +7 -0
- package/dist/types/index.mjs +1 -1
- package/dist/types/plugin.d.cts +1 -1
- package/dist/types/plugin.mjs +1 -1
- package/dist/types/runtime.mjs +1 -1
- package/package.json +15 -15
- package/dist/babel/index.d.cts +0 -1
- package/dist/helpers/index.d.cts +0 -6
|
@@ -1 +1,21 @@
|
|
|
1
|
-
import{joinPaths
|
|
1
|
+
import { joinPaths } from "@stryke/path/join-paths";
|
|
2
|
+
import { defineGenerator } from "automd";
|
|
3
|
+
|
|
4
|
+
//#region src/helpers/automd-generator.ts
|
|
5
|
+
/**
|
|
6
|
+
* AutoMD generator to generate environment variable documentation
|
|
7
|
+
*
|
|
8
|
+
* @param context - The generator context.
|
|
9
|
+
* @returns The generated documentation content.
|
|
10
|
+
*/
|
|
11
|
+
const env = (context) => defineGenerator({
|
|
12
|
+
name: "env",
|
|
13
|
+
async generate() {
|
|
14
|
+
const envDocFile = joinPaths(context.config.projectRoot, "docs", "generated", "env.md");
|
|
15
|
+
if (!context.fs.existsSync(envDocFile)) return { contents: "" };
|
|
16
|
+
return { contents: await context.fs.read(envDocFile) || "" };
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { env };
|
|
@@ -1 +1,55 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_type = require('../deepkit/src/vendor/type.cjs');
|
|
3
|
+
const require_persistence = require('./persistence.cjs');
|
|
4
|
+
const require_load = require('./load.cjs');
|
|
5
|
+
let __alloy_js_core = require("@alloy-js/core");
|
|
6
|
+
let __stryke_string_format_title_case = require("@stryke/string-format/title-case");
|
|
7
|
+
|
|
8
|
+
//#region src/helpers/create-reflection-resource.ts
|
|
9
|
+
/**
|
|
10
|
+
* Creates a reflection resource for the environment configuration.
|
|
11
|
+
*
|
|
12
|
+
* @param context - The environment plugin context.
|
|
13
|
+
* @returns A resource that provides the reflection of the environment configuration.
|
|
14
|
+
*/
|
|
15
|
+
function createReflectionResource(context) {
|
|
16
|
+
const defaultValue = (0, __alloy_js_core.computed)(() => context && require_load.loadEnvFromContext(context, process.env));
|
|
17
|
+
return (0, __alloy_js_core.createResource)(async () => {
|
|
18
|
+
if (!context) return new require_type.type_exports.ReflectionClass({
|
|
19
|
+
kind: require_type.type_exports.ReflectionKind.objectLiteral,
|
|
20
|
+
description: `The initial environment configuration state for the Powerlines project.`,
|
|
21
|
+
types: []
|
|
22
|
+
});
|
|
23
|
+
const result = await require_persistence.readEnvTypeReflection(context, "env");
|
|
24
|
+
result.getProperties().forEach((prop) => {
|
|
25
|
+
prop.getAlias().filter(Boolean).forEach((alias) => {
|
|
26
|
+
result.addProperty({
|
|
27
|
+
name: alias,
|
|
28
|
+
optional: prop.isOptional() ? true : void 0,
|
|
29
|
+
readonly: prop.isReadonly() ? true : void 0,
|
|
30
|
+
description: prop.getDescription(),
|
|
31
|
+
visibility: prop.getVisibility(),
|
|
32
|
+
type: prop.getType(),
|
|
33
|
+
default: prop.getDefaultValue(),
|
|
34
|
+
tags: {
|
|
35
|
+
hidden: prop.isHidden(),
|
|
36
|
+
ignore: prop.isIgnored(),
|
|
37
|
+
internal: prop.isInternal(),
|
|
38
|
+
alias: prop.getAlias().filter((a) => a !== alias).concat(prop.name),
|
|
39
|
+
title: prop.getTitle() || (0, __stryke_string_format_title_case.titleCase)(prop.name),
|
|
40
|
+
readonly: prop.isReadonly(),
|
|
41
|
+
permission: prop.getPermission(),
|
|
42
|
+
domain: prop.getDomain()
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
result.getProperties().forEach((prop) => {
|
|
48
|
+
prop.setDefaultValue(defaultValue.value?.[prop.getNameAsString()] ?? prop.getAlias().reduce((ret, alias) => ret ?? defaultValue.value?.[alias], void 0) ?? prop.getDefaultValue());
|
|
49
|
+
});
|
|
50
|
+
return result;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.createReflectionResource = createReflectionResource;
|
|
@@ -1 +1,54 @@
|
|
|
1
|
-
import{type_exports
|
|
1
|
+
import { type_exports } from "../deepkit/src/vendor/type.mjs";
|
|
2
|
+
import { readEnvTypeReflection } from "./persistence.mjs";
|
|
3
|
+
import { loadEnvFromContext } from "./load.mjs";
|
|
4
|
+
import { computed, createResource } from "@alloy-js/core";
|
|
5
|
+
import { titleCase } from "@stryke/string-format/title-case";
|
|
6
|
+
|
|
7
|
+
//#region src/helpers/create-reflection-resource.ts
|
|
8
|
+
/**
|
|
9
|
+
* Creates a reflection resource for the environment configuration.
|
|
10
|
+
*
|
|
11
|
+
* @param context - The environment plugin context.
|
|
12
|
+
* @returns A resource that provides the reflection of the environment configuration.
|
|
13
|
+
*/
|
|
14
|
+
function createReflectionResource(context) {
|
|
15
|
+
const defaultValue = computed(() => context && loadEnvFromContext(context, process.env));
|
|
16
|
+
return createResource(async () => {
|
|
17
|
+
if (!context) return new type_exports.ReflectionClass({
|
|
18
|
+
kind: type_exports.ReflectionKind.objectLiteral,
|
|
19
|
+
description: `The initial environment configuration state for the Powerlines project.`,
|
|
20
|
+
types: []
|
|
21
|
+
});
|
|
22
|
+
const result = await readEnvTypeReflection(context, "env");
|
|
23
|
+
result.getProperties().forEach((prop) => {
|
|
24
|
+
prop.getAlias().filter(Boolean).forEach((alias) => {
|
|
25
|
+
result.addProperty({
|
|
26
|
+
name: alias,
|
|
27
|
+
optional: prop.isOptional() ? true : void 0,
|
|
28
|
+
readonly: prop.isReadonly() ? true : void 0,
|
|
29
|
+
description: prop.getDescription(),
|
|
30
|
+
visibility: prop.getVisibility(),
|
|
31
|
+
type: prop.getType(),
|
|
32
|
+
default: prop.getDefaultValue(),
|
|
33
|
+
tags: {
|
|
34
|
+
hidden: prop.isHidden(),
|
|
35
|
+
ignore: prop.isIgnored(),
|
|
36
|
+
internal: prop.isInternal(),
|
|
37
|
+
alias: prop.getAlias().filter((a) => a !== alias).concat(prop.name),
|
|
38
|
+
title: prop.getTitle() || titleCase(prop.name),
|
|
39
|
+
readonly: prop.isReadonly(),
|
|
40
|
+
permission: prop.getPermission(),
|
|
41
|
+
domain: prop.getDomain()
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
result.getProperties().forEach((prop) => {
|
|
47
|
+
prop.setDefaultValue(defaultValue.value?.[prop.getNameAsString()] ?? prop.getAlias().reduce((ret, alias) => ret ?? defaultValue.value?.[alias], void 0) ?? prop.getDefaultValue());
|
|
48
|
+
});
|
|
49
|
+
return result;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { createReflectionResource };
|
package/dist/helpers/index.cjs
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_reflect = require('./reflect.cjs');
|
|
2
|
+
const require_persistence = require('./persistence.cjs');
|
|
3
|
+
const require_source_file_env = require('./source-file-env.cjs');
|
|
4
|
+
const require_load = require('./load.cjs');
|
|
5
|
+
const require_create_reflection_resource = require('./create-reflection-resource.cjs');
|
|
6
|
+
const require_template_helpers = require('./template-helpers.cjs');
|
package/dist/helpers/index.mjs
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BaseEnv, BaseSecrets, createEnvReflection, createSecretsReflection, mergeEnvReflections, mergeSecretsReflections, reflectEnv, reflectSecrets } from "./reflect.mjs";
|
|
2
|
+
import { getEnvDefaultTypeDefinition, getEnvReflectionsPath, getEnvTypeReflectionsPath, getSecretsDefaultTypeDefinition, readEnvReflection, readEnvTypeReflection, readSecretsReflection, resolveRuntimeTypeFile, writeEnvReflection, writeEnvReflectionSync, writeEnvTypeReflection } from "./persistence.mjs";
|
|
3
|
+
import { formatEnvField, removeEnvPrefix } from "./source-file-env.mjs";
|
|
4
|
+
import { loadEnv, loadEnvFromContext } from "./load.mjs";
|
|
5
|
+
import { createReflectionResource } from "./create-reflection-resource.mjs";
|
|
6
|
+
import { createTemplateReflection } from "./template-helpers.mjs";
|
|
7
|
+
|
|
8
|
+
export { };
|
package/dist/helpers/load.cjs
CHANGED
|
@@ -1 +1,83 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_source_file_env = require('./source-file-env.cjs');
|
|
3
|
+
let __stryke_path_join_paths = require("@stryke/path/join-paths");
|
|
4
|
+
let c12 = require("c12");
|
|
5
|
+
let defu = require("defu");
|
|
6
|
+
defu = require_rolldown_runtime.__toESM(defu);
|
|
7
|
+
let __stryke_type_checks_is_set_object = require("@stryke/type-checks/is-set-object");
|
|
8
|
+
let __stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
|
|
9
|
+
let __stryke_string_format_kebab_case = require("@stryke/string-format/kebab-case");
|
|
10
|
+
let __stryke_env_load_env = require("@stryke/env/load-env");
|
|
11
|
+
|
|
12
|
+
//#region src/helpers/load.ts
|
|
13
|
+
async function loadEnvFiles(options, mode, cwd) {
|
|
14
|
+
let env = await (0, __stryke_env_load_env.loadEnv)(cwd, mode);
|
|
15
|
+
if (options.additionalFiles && options.additionalFiles?.length > 0) {
|
|
16
|
+
const additionalEnvFiles = await Promise.all(options.additionalFiles.map(async (additionalEnvFile) => (0, __stryke_env_load_env.loadEnvFile)(additionalEnvFile, cwd)));
|
|
17
|
+
for (const additionalEnvFile of additionalEnvFiles) env = (0, defu.default)(additionalEnvFile, env);
|
|
18
|
+
}
|
|
19
|
+
return require_source_file_env.removeEnvPrefix(env);
|
|
20
|
+
}
|
|
21
|
+
async function loadEnvDirectory(options, directory, mode, cacheDir, packageJson, workspaceConfig) {
|
|
22
|
+
const [envResult, c12Result] = await Promise.all([loadEnvFiles(options, mode, directory), (0, c12.loadConfig)({
|
|
23
|
+
cwd: directory,
|
|
24
|
+
name: "storm",
|
|
25
|
+
envName: mode,
|
|
26
|
+
defaults: {
|
|
27
|
+
NAME: packageJson.name?.replace(`@${workspaceConfig.namespace}/`, ""),
|
|
28
|
+
MODE: mode,
|
|
29
|
+
ORG: workspaceConfig.organization
|
|
30
|
+
},
|
|
31
|
+
globalRc: true,
|
|
32
|
+
packageJson: true,
|
|
33
|
+
dotenv: true,
|
|
34
|
+
jitiOptions: {
|
|
35
|
+
fsCache: (0, __stryke_path_join_paths.joinPaths)(cacheDir, "jiti"),
|
|
36
|
+
moduleCache: true
|
|
37
|
+
}
|
|
38
|
+
})]);
|
|
39
|
+
return (0, defu.default)(envResult, c12Result.config, workspaceConfig);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Retrieves various dotenv configuration parameters from the context.
|
|
43
|
+
*
|
|
44
|
+
* @param context - The context to retrieve the dotenv configuration from.
|
|
45
|
+
* @param parsed - The parsed dotenv configuration.
|
|
46
|
+
* @returns An object containing the dotenv configuration.
|
|
47
|
+
*/
|
|
48
|
+
function loadEnvFromContext(context, parsed) {
|
|
49
|
+
return (0, defu.default)({
|
|
50
|
+
APP_NAME: (0, __stryke_string_format_kebab_case.kebabCase)(context.config.name || context.packageJson.name?.replace(`/${context.workspaceConfig.namespace}`, "")),
|
|
51
|
+
APP_VERSION: context.packageJson.version,
|
|
52
|
+
BUILD_ID: context.meta.buildId,
|
|
53
|
+
BUILD_TIMESTAMP: new Date(context.meta.timestamp).toISOString(),
|
|
54
|
+
BUILD_CHECKSUM: context.meta.checksum,
|
|
55
|
+
RELEASE_ID: context.meta.releaseId,
|
|
56
|
+
RELEASE_TAG: `${(0, __stryke_string_format_kebab_case.kebabCase)(context.config.name)}@${context.packageJson.version}`,
|
|
57
|
+
DEFAULT_LOCALE: context.workspaceConfig.locale,
|
|
58
|
+
DEFAULT_TIMEZONE: context.workspaceConfig.timezone,
|
|
59
|
+
LOG_LEVEL: context.config.logLevel,
|
|
60
|
+
ERROR_URL: context.workspaceConfig.error?.url,
|
|
61
|
+
ORGANIZATION: (0, __stryke_type_checks_is_set_string.isSetString)(context.workspaceConfig.organization) ? context.workspaceConfig.organization : context.workspaceConfig.organization?.name,
|
|
62
|
+
PLATFORM: context.config.build.platform,
|
|
63
|
+
MODE: context.workspaceConfig.mode,
|
|
64
|
+
DEBUG: context.workspaceConfig.mode === "development",
|
|
65
|
+
STACKTRACE: context.workspaceConfig.mode === "development",
|
|
66
|
+
ENVIRONMENT: context.environment
|
|
67
|
+
}, (0, __stryke_type_checks_is_set_object.isSetObject)(context?.env?.types?.env) ? context.env.types.env?.getProperties().reduce((ret, prop) => {
|
|
68
|
+
ret[prop.name] = parsed[prop.name] ?? prop.getDefaultValue();
|
|
69
|
+
return ret;
|
|
70
|
+
}, {}) : {});
|
|
71
|
+
}
|
|
72
|
+
async function loadEnv(context, options) {
|
|
73
|
+
const [project, workspace, config] = await Promise.all([
|
|
74
|
+
loadEnvDirectory(options, context.config.projectRoot, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig),
|
|
75
|
+
loadEnvDirectory(options, context.workspaceConfig.workspaceRoot, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig),
|
|
76
|
+
loadEnvDirectory(options, context.envPaths.config, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig)
|
|
77
|
+
]);
|
|
78
|
+
return (0, defu.default)(loadEnvFromContext(context, process.env), project, workspace, config);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
exports.loadEnv = loadEnv;
|
|
83
|
+
exports.loadEnvFromContext = loadEnvFromContext;
|
package/dist/helpers/load.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { EnvironmentResolvedConfig } from "../powerlines/src/types/resolved.cjs";
|
|
1
2
|
import { EnvPluginContext, EnvPluginOptions } from "../types/plugin.cjs";
|
|
2
|
-
import * as powerlines0 from "powerlines";
|
|
3
3
|
import { DotenvParseOutput } from "@stryke/env/types";
|
|
4
4
|
|
|
5
5
|
//#region src/helpers/load.d.ts
|
|
@@ -28,7 +28,7 @@ declare function loadEnvFromContext(context: EnvPluginContext, parsed: DotenvPar
|
|
|
28
28
|
MODE: "test" | "development" | "production" | undefined;
|
|
29
29
|
DEBUG: boolean;
|
|
30
30
|
STACKTRACE: boolean;
|
|
31
|
-
ENVIRONMENT:
|
|
31
|
+
ENVIRONMENT: EnvironmentResolvedConfig;
|
|
32
32
|
};
|
|
33
33
|
declare function loadEnv<TEnv extends DotenvParseOutput = DotenvParseOutput>(context: EnvPluginContext, options: EnvPluginOptions): Promise<TEnv>;
|
|
34
34
|
//#endregion
|
package/dist/helpers/load.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { EnvironmentResolvedConfig } from "../powerlines/src/types/resolved.mjs";
|
|
2
|
+
import "../powerlines/src/index.mjs";
|
|
1
3
|
import { EnvPluginContext, EnvPluginOptions } from "../types/plugin.mjs";
|
|
2
4
|
import { DotenvParseOutput } from "@stryke/env/types";
|
|
3
|
-
import * as powerlines0 from "powerlines";
|
|
4
5
|
|
|
5
6
|
//#region src/helpers/load.d.ts
|
|
6
7
|
|
|
@@ -28,7 +29,7 @@ declare function loadEnvFromContext(context: EnvPluginContext, parsed: DotenvPar
|
|
|
28
29
|
MODE: "test" | "development" | "production" | undefined;
|
|
29
30
|
DEBUG: boolean;
|
|
30
31
|
STACKTRACE: boolean;
|
|
31
|
-
ENVIRONMENT:
|
|
32
|
+
ENVIRONMENT: EnvironmentResolvedConfig;
|
|
32
33
|
};
|
|
33
34
|
declare function loadEnv<TEnv extends DotenvParseOutput = DotenvParseOutput>(context: EnvPluginContext, options: EnvPluginOptions): Promise<TEnv>;
|
|
34
35
|
//#endregion
|
package/dist/helpers/load.mjs
CHANGED
|
@@ -1 +1,80 @@
|
|
|
1
|
-
import{removeEnvPrefix
|
|
1
|
+
import { removeEnvPrefix } from "./source-file-env.mjs";
|
|
2
|
+
import { joinPaths } from "@stryke/path/join-paths";
|
|
3
|
+
import { loadConfig } from "c12";
|
|
4
|
+
import defu from "defu";
|
|
5
|
+
import { isSetObject } from "@stryke/type-checks/is-set-object";
|
|
6
|
+
import { isSetString } from "@stryke/type-checks/is-set-string";
|
|
7
|
+
import { kebabCase } from "@stryke/string-format/kebab-case";
|
|
8
|
+
import { loadEnv, loadEnvFile } from "@stryke/env/load-env";
|
|
9
|
+
|
|
10
|
+
//#region src/helpers/load.ts
|
|
11
|
+
async function loadEnvFiles(options, mode, cwd) {
|
|
12
|
+
let env = await loadEnv(cwd, mode);
|
|
13
|
+
if (options.additionalFiles && options.additionalFiles?.length > 0) {
|
|
14
|
+
const additionalEnvFiles = await Promise.all(options.additionalFiles.map(async (additionalEnvFile) => loadEnvFile(additionalEnvFile, cwd)));
|
|
15
|
+
for (const additionalEnvFile of additionalEnvFiles) env = defu(additionalEnvFile, env);
|
|
16
|
+
}
|
|
17
|
+
return removeEnvPrefix(env);
|
|
18
|
+
}
|
|
19
|
+
async function loadEnvDirectory(options, directory, mode, cacheDir, packageJson, workspaceConfig) {
|
|
20
|
+
const [envResult, c12Result] = await Promise.all([loadEnvFiles(options, mode, directory), loadConfig({
|
|
21
|
+
cwd: directory,
|
|
22
|
+
name: "storm",
|
|
23
|
+
envName: mode,
|
|
24
|
+
defaults: {
|
|
25
|
+
NAME: packageJson.name?.replace(`@${workspaceConfig.namespace}/`, ""),
|
|
26
|
+
MODE: mode,
|
|
27
|
+
ORG: workspaceConfig.organization
|
|
28
|
+
},
|
|
29
|
+
globalRc: true,
|
|
30
|
+
packageJson: true,
|
|
31
|
+
dotenv: true,
|
|
32
|
+
jitiOptions: {
|
|
33
|
+
fsCache: joinPaths(cacheDir, "jiti"),
|
|
34
|
+
moduleCache: true
|
|
35
|
+
}
|
|
36
|
+
})]);
|
|
37
|
+
return defu(envResult, c12Result.config, workspaceConfig);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Retrieves various dotenv configuration parameters from the context.
|
|
41
|
+
*
|
|
42
|
+
* @param context - The context to retrieve the dotenv configuration from.
|
|
43
|
+
* @param parsed - The parsed dotenv configuration.
|
|
44
|
+
* @returns An object containing the dotenv configuration.
|
|
45
|
+
*/
|
|
46
|
+
function loadEnvFromContext(context, parsed) {
|
|
47
|
+
return defu({
|
|
48
|
+
APP_NAME: kebabCase(context.config.name || context.packageJson.name?.replace(`/${context.workspaceConfig.namespace}`, "")),
|
|
49
|
+
APP_VERSION: context.packageJson.version,
|
|
50
|
+
BUILD_ID: context.meta.buildId,
|
|
51
|
+
BUILD_TIMESTAMP: new Date(context.meta.timestamp).toISOString(),
|
|
52
|
+
BUILD_CHECKSUM: context.meta.checksum,
|
|
53
|
+
RELEASE_ID: context.meta.releaseId,
|
|
54
|
+
RELEASE_TAG: `${kebabCase(context.config.name)}@${context.packageJson.version}`,
|
|
55
|
+
DEFAULT_LOCALE: context.workspaceConfig.locale,
|
|
56
|
+
DEFAULT_TIMEZONE: context.workspaceConfig.timezone,
|
|
57
|
+
LOG_LEVEL: context.config.logLevel,
|
|
58
|
+
ERROR_URL: context.workspaceConfig.error?.url,
|
|
59
|
+
ORGANIZATION: isSetString(context.workspaceConfig.organization) ? context.workspaceConfig.organization : context.workspaceConfig.organization?.name,
|
|
60
|
+
PLATFORM: context.config.build.platform,
|
|
61
|
+
MODE: context.workspaceConfig.mode,
|
|
62
|
+
DEBUG: context.workspaceConfig.mode === "development",
|
|
63
|
+
STACKTRACE: context.workspaceConfig.mode === "development",
|
|
64
|
+
ENVIRONMENT: context.environment
|
|
65
|
+
}, isSetObject(context?.env?.types?.env) ? context.env.types.env?.getProperties().reduce((ret, prop) => {
|
|
66
|
+
ret[prop.name] = parsed[prop.name] ?? prop.getDefaultValue();
|
|
67
|
+
return ret;
|
|
68
|
+
}, {}) : {});
|
|
69
|
+
}
|
|
70
|
+
async function loadEnv$1(context, options) {
|
|
71
|
+
const [project, workspace, config] = await Promise.all([
|
|
72
|
+
loadEnvDirectory(options, context.config.projectRoot, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig),
|
|
73
|
+
loadEnvDirectory(options, context.workspaceConfig.workspaceRoot, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig),
|
|
74
|
+
loadEnvDirectory(options, context.envPaths.config, context.config.mode, context.cachePath, context.packageJson, context.workspaceConfig)
|
|
75
|
+
]);
|
|
76
|
+
return defu(loadEnvFromContext(context, process.env), project, workspace, config);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
//#endregion
|
|
80
|
+
export { loadEnv$1 as loadEnv, loadEnvFromContext };
|
|
@@ -1 +1,214 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_type = require('../deepkit/src/vendor/type.cjs');
|
|
3
|
+
const require_capnp = require('../deepkit/src/capnp.cjs');
|
|
4
|
+
const require_reflection = require('../deepkit/schemas/reflection2.cjs');
|
|
5
|
+
const require_resolve_reflections = require('../deepkit/src/resolve-reflections.cjs');
|
|
6
|
+
const require_reflect = require('./reflect.cjs');
|
|
7
|
+
let __stryke_path_join_paths = require("@stryke/path/join-paths");
|
|
8
|
+
let __stryke_capnp = require("@stryke/capnp");
|
|
9
|
+
__stryke_capnp = require_rolldown_runtime.__toESM(__stryke_capnp);
|
|
10
|
+
let __stryke_fs_buffer = require("@stryke/fs/buffer");
|
|
11
|
+
let node_fs = require("node:fs");
|
|
12
|
+
let __stryke_fs_resolve = require("@stryke/fs/resolve");
|
|
13
|
+
let __stryke_type_checks_is_empty_object = require("@stryke/type-checks/is-empty-object");
|
|
14
|
+
|
|
15
|
+
//#region src/helpers/persistence.ts
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the runtime type definition file for the environment variables.
|
|
18
|
+
*
|
|
19
|
+
* @param context - The plugin context.
|
|
20
|
+
* @returns The runtime type definition file for the environment variables.
|
|
21
|
+
*/
|
|
22
|
+
async function resolveRuntimeTypeFile(context) {
|
|
23
|
+
return (0, __stryke_fs_resolve.resolvePackage)("@powerlines/plugin-env/types/runtime", { paths: [context.workspaceConfig.workspaceRoot, (0, __stryke_path_join_paths.joinPaths)(context.workspaceConfig.workspaceRoot, context.config.projectRoot)] });
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Gets the default type definition for the environment variables.
|
|
27
|
+
*
|
|
28
|
+
* @param context - The plugin context.
|
|
29
|
+
* @returns The default type definition for the environment variables.
|
|
30
|
+
*/
|
|
31
|
+
async function getEnvDefaultTypeDefinition(context) {
|
|
32
|
+
return {
|
|
33
|
+
file: await resolveRuntimeTypeFile(context),
|
|
34
|
+
name: "EnvInterface"
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Gets the default type definition for the environment secrets.
|
|
38
|
+
*
|
|
39
|
+
* @param context - The plugin context.
|
|
40
|
+
* @returns The default type definition for the environment secrets.
|
|
41
|
+
*/
|
|
42
|
+
async function getSecretsDefaultTypeDefinition(context) {
|
|
43
|
+
return {
|
|
44
|
+
file: await resolveRuntimeTypeFile(context),
|
|
45
|
+
name: "SecretsInterface"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets the path to the environment type reflections.
|
|
50
|
+
*
|
|
51
|
+
* @param context - The plugin context.
|
|
52
|
+
* @param name - The name of the type reflections.
|
|
53
|
+
* @returns The path to the environment type reflections.
|
|
54
|
+
*/
|
|
55
|
+
function getEnvTypeReflectionsPath(context, name = "env") {
|
|
56
|
+
return (0, __stryke_path_join_paths.joinPaths)(require_resolve_reflections.getReflectionsPath(context), "env", `${name}-types.bin`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reads the environment type reflection from the file system.
|
|
60
|
+
*
|
|
61
|
+
* @param context - The plugin context.
|
|
62
|
+
* @param name - The name of the type reflections.
|
|
63
|
+
* @returns The environment type reflection.
|
|
64
|
+
*/
|
|
65
|
+
async function readEnvTypeReflection(context, name = "env") {
|
|
66
|
+
const filePath = getEnvTypeReflectionsPath(context, name);
|
|
67
|
+
if (!(0, node_fs.existsSync)(filePath)) {
|
|
68
|
+
if (!context.env.types.env || (0, __stryke_type_checks_is_empty_object.isEmptyObject)(context.env.types.env)) {
|
|
69
|
+
const reflection$1 = require_reflect.createEnvReflection(context);
|
|
70
|
+
const message = new __stryke_capnp.Message();
|
|
71
|
+
reflection$1.messageRoot = message.initRoot(require_reflection.SerializedTypes);
|
|
72
|
+
reflection$1.dataBuffer = message.toArrayBuffer();
|
|
73
|
+
context.env.types.env = reflection$1;
|
|
74
|
+
await writeEnvTypeReflection(context, context.env.types.env, name);
|
|
75
|
+
}
|
|
76
|
+
return context.env.types.env;
|
|
77
|
+
}
|
|
78
|
+
const buffer = await (0, __stryke_fs_buffer.readFileBuffer)(filePath);
|
|
79
|
+
const messageRoot = new __stryke_capnp.Message(buffer, false).getRoot(require_reflection.SerializedTypes);
|
|
80
|
+
const reflection = (0, require_type.type_exports.resolveClassType)((0, require_type.type_exports.deserializeType)(require_capnp.convertFromCapnp(messageRoot.types)));
|
|
81
|
+
context.env.types[name] = reflection;
|
|
82
|
+
context.env.types[name].messageRoot = messageRoot;
|
|
83
|
+
context.env.types[name].dataBuffer = buffer;
|
|
84
|
+
return reflection;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Writes the environment type reflection to the file system.
|
|
88
|
+
*
|
|
89
|
+
* @param context - The plugin context.
|
|
90
|
+
* @param reflection - The environment type reflection to write.
|
|
91
|
+
* @param name - The name of the type reflections.
|
|
92
|
+
*/
|
|
93
|
+
async function writeEnvTypeReflection(context, reflection, name = "env") {
|
|
94
|
+
const serialized = reflection.serializeType();
|
|
95
|
+
const message = new __stryke_capnp.Message();
|
|
96
|
+
require_capnp.convertToCapnp(serialized, message.initRoot(require_reflection.SerializedTypes)._initTypes(serialized.length));
|
|
97
|
+
await (0, __stryke_fs_buffer.writeFileBuffer)(getEnvTypeReflectionsPath(context, name), message.toArrayBuffer());
|
|
98
|
+
}
|
|
99
|
+
function getEnvReflectionsPath(context, name) {
|
|
100
|
+
return (0, __stryke_path_join_paths.joinPaths)(require_resolve_reflections.getReflectionsPath(context), "env", `${name}.bin`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Reads the environment reflection data from the file system.
|
|
104
|
+
*
|
|
105
|
+
* @param context - The plugin context.
|
|
106
|
+
* @returns The environment reflection data.
|
|
107
|
+
*/
|
|
108
|
+
async function readEnvReflection(context) {
|
|
109
|
+
const filePath = getEnvReflectionsPath(context, "env");
|
|
110
|
+
if (!(0, node_fs.existsSync)(filePath)) {
|
|
111
|
+
if (!context.env.types.env) context.env.types.env = await readEnvTypeReflection(context, "env");
|
|
112
|
+
if (!context.env.used.env || (0, __stryke_type_checks_is_empty_object.isEmptyObject)(context.env.used.env)) {
|
|
113
|
+
const reflection$1 = require_reflect.createEnvReflection(context, {
|
|
114
|
+
type: {
|
|
115
|
+
kind: require_type.type_exports.ReflectionKind.objectLiteral,
|
|
116
|
+
typeName: "Env",
|
|
117
|
+
description: `An object containing the environment configuration parameters that are used (at least once) by the ${context.config.name ? `${context.config.name} application` : "application"}.`,
|
|
118
|
+
types: []
|
|
119
|
+
},
|
|
120
|
+
superReflection: context.env.types.env
|
|
121
|
+
});
|
|
122
|
+
reflection$1.name = "Env";
|
|
123
|
+
const message = new __stryke_capnp.Message();
|
|
124
|
+
reflection$1.messageRoot = message.initRoot(require_reflection.SerializedTypes);
|
|
125
|
+
reflection$1.dataBuffer = message.toArrayBuffer();
|
|
126
|
+
context.env.used.env = reflection$1;
|
|
127
|
+
await writeEnvReflection(context, context.env.used.env, "env");
|
|
128
|
+
}
|
|
129
|
+
return context.env.used.env;
|
|
130
|
+
}
|
|
131
|
+
const buffer = await (0, __stryke_fs_buffer.readFileBuffer)(filePath);
|
|
132
|
+
const messageRoot = new __stryke_capnp.Message(buffer, false).getRoot(require_reflection.SerializedTypes);
|
|
133
|
+
const reflection = (0, require_type.type_exports.resolveClassType)((0, require_type.type_exports.deserializeType)(require_capnp.convertFromCapnp(messageRoot.types)));
|
|
134
|
+
context.env.used.env = reflection;
|
|
135
|
+
context.env.used.env.messageRoot = messageRoot;
|
|
136
|
+
context.env.used.env.dataBuffer = buffer;
|
|
137
|
+
return reflection;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Reads the secret environment reflection data from the file system.
|
|
141
|
+
*
|
|
142
|
+
* @param context - The plugin context.
|
|
143
|
+
* @returns The environment reflection data.
|
|
144
|
+
*/
|
|
145
|
+
async function readSecretsReflection(context) {
|
|
146
|
+
const filePath = getEnvReflectionsPath(context, "secrets");
|
|
147
|
+
if (!(0, node_fs.existsSync)(filePath)) {
|
|
148
|
+
if (!context.env.types.secrets) context.env.types.secrets = await readEnvTypeReflection(context, "secrets");
|
|
149
|
+
if (!context.env.used.secrets || (0, __stryke_type_checks_is_empty_object.isEmptyObject)(context.env.used.secrets)) {
|
|
150
|
+
const reflection$1 = require_reflect.createEnvReflection(context, {
|
|
151
|
+
type: {
|
|
152
|
+
kind: require_type.type_exports.ReflectionKind.objectLiteral,
|
|
153
|
+
typeName: "Secrets",
|
|
154
|
+
description: `An object containing the secret configuration parameters that are used (at least once) by the ${context.config.name ? `${context.config.name} application` : "application"}.`,
|
|
155
|
+
types: []
|
|
156
|
+
},
|
|
157
|
+
superReflection: context.env.types.secrets
|
|
158
|
+
});
|
|
159
|
+
reflection$1.name = "Secrets";
|
|
160
|
+
const message = new __stryke_capnp.Message();
|
|
161
|
+
reflection$1.messageRoot = message.initRoot(require_reflection.SerializedTypes);
|
|
162
|
+
reflection$1.dataBuffer = message.toArrayBuffer();
|
|
163
|
+
context.env.used.secrets = reflection$1;
|
|
164
|
+
await writeEnvReflection(context, context.env.used.secrets, "secrets");
|
|
165
|
+
}
|
|
166
|
+
return context.env.used.secrets;
|
|
167
|
+
}
|
|
168
|
+
const buffer = await (0, __stryke_fs_buffer.readFileBuffer)(filePath);
|
|
169
|
+
const messageRoot = new __stryke_capnp.Message(buffer, false).getRoot(require_reflection.SerializedTypes);
|
|
170
|
+
const reflection = (0, require_type.type_exports.resolveClassType)((0, require_type.type_exports.deserializeType)(require_capnp.convertFromCapnp(messageRoot.types)));
|
|
171
|
+
context.env.used.secrets = reflection;
|
|
172
|
+
context.env.used.secrets.messageRoot = messageRoot;
|
|
173
|
+
context.env.used.secrets.dataBuffer = buffer;
|
|
174
|
+
return reflection;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Writes the environment reflection data to the file system.
|
|
178
|
+
*
|
|
179
|
+
* @param context - The plugin context.
|
|
180
|
+
* @param reflection - The reflection data to write.
|
|
181
|
+
* @param name - The name of the reflection (either "env" or "secrets").
|
|
182
|
+
*/
|
|
183
|
+
async function writeEnvReflection(context, reflection, name = "env") {
|
|
184
|
+
const serialized = reflection.serializeType();
|
|
185
|
+
const message = new __stryke_capnp.Message();
|
|
186
|
+
require_capnp.convertToCapnp(serialized, message.initRoot(require_reflection.SerializedTypes)._initTypes(serialized.length));
|
|
187
|
+
await (0, __stryke_fs_buffer.writeFileBuffer)(getEnvReflectionsPath(context, name), message.toArrayBuffer());
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Writes the environment reflection data to the file system.
|
|
191
|
+
*
|
|
192
|
+
* @param context - The plugin context.
|
|
193
|
+
* @param reflection - The reflection data to write.
|
|
194
|
+
* @param name - The name of the reflection (either "env" or "secrets").
|
|
195
|
+
*/
|
|
196
|
+
function writeEnvReflectionSync(context, reflection, name = "env") {
|
|
197
|
+
const serialized = reflection.serializeType();
|
|
198
|
+
const message = new __stryke_capnp.Message();
|
|
199
|
+
require_capnp.convertToCapnp(serialized, message.initRoot(require_reflection.SerializedTypes)._initTypes(serialized.length));
|
|
200
|
+
(0, __stryke_fs_buffer.writeFileBufferSync)(getEnvReflectionsPath(context, name), message.toArrayBuffer());
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
//#endregion
|
|
204
|
+
exports.getEnvDefaultTypeDefinition = getEnvDefaultTypeDefinition;
|
|
205
|
+
exports.getEnvReflectionsPath = getEnvReflectionsPath;
|
|
206
|
+
exports.getEnvTypeReflectionsPath = getEnvTypeReflectionsPath;
|
|
207
|
+
exports.getSecretsDefaultTypeDefinition = getSecretsDefaultTypeDefinition;
|
|
208
|
+
exports.readEnvReflection = readEnvReflection;
|
|
209
|
+
exports.readEnvTypeReflection = readEnvTypeReflection;
|
|
210
|
+
exports.readSecretsReflection = readSecretsReflection;
|
|
211
|
+
exports.resolveRuntimeTypeFile = resolveRuntimeTypeFile;
|
|
212
|
+
exports.writeEnvReflection = writeEnvReflection;
|
|
213
|
+
exports.writeEnvReflectionSync = writeEnvReflectionSync;
|
|
214
|
+
exports.writeEnvTypeReflection = writeEnvTypeReflection;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type_d_exports } from "../deepkit/src/vendor/type.cjs";
|
|
2
1
|
import { Context, UnresolvedContext } from "../powerlines/src/types/context.cjs";
|
|
2
|
+
import { type_d_exports } from "../deepkit/src/vendor/type.cjs";
|
|
3
3
|
import { EnvPluginContext, EnvPluginResolvedConfig, EnvType } from "../types/plugin.cjs";
|
|
4
4
|
import { TypeDefinition } from "@stryke/types/configuration";
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type_d_exports } from "../deepkit/src/vendor/type.mjs";
|
|
2
1
|
import { Context, UnresolvedContext } from "../powerlines/src/types/context.mjs";
|
|
2
|
+
import { type_d_exports } from "../deepkit/src/vendor/type.mjs";
|
|
3
3
|
import { EnvPluginContext, EnvPluginResolvedConfig, EnvType } from "../types/plugin.mjs";
|
|
4
4
|
import { TypeDefinition } from "@stryke/types/configuration";
|
|
5
5
|
|