@powerlines/plugin-env 0.16.297 → 0.16.299

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.
@@ -357,6 +357,7 @@ function EnvBuiltin(props) {
357
357
  "",
358
358
  "P\"2!\"2\"\"/#"
359
359
  ])) ?? []);
360
+ const parserCode = (0, _powerlines_schema.generateParserCode)(context.env.config.schema);
360
361
  return (0, _alloy_js_core_jsx_runtime.createComponent)(_powerlines_plugin_alloy_typescript_components.BuiltinFile, (0, _alloy_js_core_jsx_runtime.mergeProps)({
361
362
  id: "env",
362
363
  description: "The environment configuration module provides an interface to define environment configuration parameters."
@@ -394,6 +395,7 @@ function EnvBuiltin(props) {
394
395
  ];
395
396
  }
396
397
  }),
398
+ parserCode,
397
399
  (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
398
400
  get when() {
399
401
  return Boolean(context?.entryPath);
@@ -415,7 +417,7 @@ function EnvBuiltin(props) {
415
417
  return [
416
418
  _alloy_js_core.code`
417
419
  return new Proxy<Env>(
418
- deserializeEnv({
420
+ parse({
419
421
  ...initialEnv,
420
422
  ...environmentConfig
421
423
  } as Env),
@@ -1 +1 @@
1
- {"version":3,"file":"env-builtin.d.cts","names":[],"sources":["../../src/components/env-builtin.tsx"],"mappings":";;;;;;AA+DA;iBAAgB,iBAAA,IAAiB,QAAA;AAAA,UAwLhB,eAAA,SAAwB,IAAA,CAAK,gBAAA;EAC5C,aAAA,GAAgB,QAAA;AAAA;AADlB;;;AAAA,iBAUgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA"}
1
+ {"version":3,"file":"env-builtin.d.cts","names":[],"sources":["../../src/components/env-builtin.tsx"],"mappings":";;;;;;AAgEA;iBAAgB,iBAAA,IAAiB,QAAA;AAAA,UAwLhB,eAAA,SAAwB,IAAA,CAAK,gBAAA;EAC5C,aAAA,GAAgB,QAAA;AAAA;AADlB;;;AAAA,iBAUgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"env-builtin.d.mts","names":[],"sources":["../../src/components/env-builtin.tsx"],"mappings":";;;;;;AA+DA;iBAAgB,iBAAA,IAAiB,QAAA;AAAA,UAwLhB,eAAA,SAAwB,IAAA,CAAK,gBAAA;EAC5C,aAAA,GAAgB,QAAA;AAAA;AADlB;;;AAAA,iBAUgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA"}
1
+ {"version":3,"file":"env-builtin.d.mts","names":[],"sources":["../../src/components/env-builtin.tsx"],"mappings":";;;;;;AAgEA;iBAAgB,iBAAA,IAAiB,QAAA;AAAA,UAwLhB,eAAA,SAAwB,IAAA,CAAK,gBAAA;EAC5C,aAAA,GAAgB,QAAA;AAAA;AADlB;;;AAAA,iBAUgB,UAAA,CAAW,KAAA,EAAO,eAAA,GAAe,QAAA"}
@@ -2,7 +2,7 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { loadEnvFromContext } from "../helpers/load.mjs";
3
3
  import { createComponent, createIntrinsic, mergeProps } from "@alloy-js/core/jsx-runtime";
4
4
  import { getUnique } from "@stryke/helpers/get-unique";
5
- import { getPropertiesList } from "@powerlines/schema";
5
+ import { generateParserCode, getPropertiesList } from "@powerlines/schema";
6
6
  import { For, Show, code, computed, splitProps } from "@alloy-js/core";
7
7
  import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
8
8
  import { usePowerlines } from "@powerlines/plugin-alloy/core/contexts/context";
@@ -356,6 +356,7 @@ function EnvBuiltin(props) {
356
356
  "",
357
357
  "P\"2!\"2\"\"/#"
358
358
  ])) ?? []);
359
+ const parserCode = generateParserCode(context.env.config.schema);
359
360
  return createComponent(BuiltinFile, mergeProps({
360
361
  id: "env",
361
362
  description: "The environment configuration module provides an interface to define environment configuration parameters."
@@ -393,6 +394,7 @@ function EnvBuiltin(props) {
393
394
  ];
394
395
  }
395
396
  }),
397
+ parserCode,
396
398
  createComponent(Show, {
397
399
  get when() {
398
400
  return Boolean(context?.entryPath);
@@ -414,7 +416,7 @@ function EnvBuiltin(props) {
414
416
  return [
415
417
  code`
416
418
  return new Proxy<Env>(
417
- deserializeEnv({
419
+ parse({
418
420
  ...initialEnv,
419
421
  ...environmentConfig
420
422
  } as Env),
@@ -1 +1 @@
1
- {"version":3,"file":"env-builtin.mjs","names":[],"sources":["../../src/components/env-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n code,\n computed,\n For,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n InterfaceDeclaration as BaseInterfaceDeclaration,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { refkey } from \"@powerlines/plugin-alloy/helpers/refkey\";\nimport type { ComponentProps } from \"@powerlines/plugin-alloy/types/components\";\nimport {\n BuiltinFile,\n BuiltinFileProps,\n InterfaceDeclaration,\n InterfaceMember,\n ObjectDeclaration,\n TSDocSchemaProperty\n} from \"@powerlines/plugin-alloy/typescript/components\";\nimport {\n TSDoc,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns\n} from \"@powerlines/plugin-alloy/typescript/components/tsdoc\";\nimport {\n getPropertiesList,\n GetPropertiesResult,\n JsonSchema\n} from \"@powerlines/schema\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { loadEnvFromContext } from \"../helpers/load\";\nimport type { EnvPluginContext } from \"../types/plugin\";\n\n/**\n * Generates the environment configuration typescript definition for the Powerlines project.\n */\nexport function EnvTypeDefinition() {\n const context = usePowerlines<EnvPluginContext>();\n\n return (\n <>\n <InterfaceDeclaration\n name=\"UnprefixedEnv\"\n schema={context.env.config.schema}\n export\n />\n <Spacing />\n <TSDoc heading=\"The environment configuration object with prefixed keys.\">\n <TSDocRemarks>\n {`The \\`Env\\` type extends the \\`UnprefixedEnv\\` interface by including additional keys that are prefixed according to the project's configuration. This allows for flexibility in accessing environment variables with different naming conventions.`}\n </TSDocRemarks>\n </TSDoc>\n <BaseInterfaceDeclaration name=\"Env\" export extends=\"UnprefixedEnv\">\n <For\n each={getUnique(context.config.env.prefix).map(prefix =>\n prefix.replace(/_$/, \"\")\n )}\n doubleHardline>\n {prefix => (\n <For\n each={\n getPropertiesList(context.env.config.schema).filter(\n property => !property.ignore\n ) ?? []\n }\n doubleHardline>\n {property => (\n <>\n <TSDocSchemaProperty\n schema={property}\n defaultValue={property?.default}\n />\n <InterfaceMember\n name={`${prefix}_${property.name}`}\n type={`UnprefixedEnv[\"${property.name}\"]`}\n schema={property}\n required={property.required}\n readOnly={property.readOnly}\n />\n </>\n )}\n </For>\n )}\n </For>\n </BaseInterfaceDeclaration>\n <Spacing />\n </>\n );\n}\n\ninterface ConfigPropertyConditionalProps extends ComponentProps {\n context: EnvPluginContext;\n name: string;\n}\n\nfunction ConfigPropertyConditional(props: ConfigPropertyConditionalProps) {\n const [{ context, name }] = splitProps(props, [\"context\", \"name\"]);\n\n return code`propertyName === \"${name}\" || propertyName.replace(/^(${getUnique(\n context.config.env.prefix\n .sort((a, b) =>\n a.startsWith(b) ? -1 : b.startsWith(a) ? 1 : a.localeCompare(b)\n )\n .map(prefix => `${prefix.replace(/_$/, \"\")}_`)\n ).join(\"|\")})/g, \"\").toLowerCase().replace(/[\\\\s\\\\-_]+/g, \"\") === \"${name\n .toLowerCase()\n .replace(/[\\s\\-_]+/g, \"\")}\"`;\n}\n\ninterface ConfigPropertyProps extends ComponentProps {\n index: number;\n context: EnvPluginContext;\n name: string;\n property: JsonSchema;\n}\n\nfunction ConfigPropertyGet(props: ConfigPropertyProps) {\n const [{ context, name, property, index }] = splitProps(props, [\n \"context\",\n \"name\",\n \"property\",\n \"index\"\n ]);\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${name}\"];`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${name}\"];`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nfunction ConfigPropertySet(props: ConfigPropertyProps) {\n const [{ context, name, property, index }] = splitProps(props, [\n \"context\",\n \"name\",\n \"property\",\n \"index\"\n ]);\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${name}\"] = newValue;\n return true;\n`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${name}\"] = newValue;\n return true;\n`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nexport interface EnvBuiltinProps extends Omit<BuiltinFileProps, \"id\"> {\n defaultConfig?: Children;\n}\n\nconst createEnvRefkey = refkey(\"createEnv\");\nconst envRefkey = refkey(\"env\");\n\n/**\n * Generates the environment configuration module for the Powerlines project.\n */\nexport function EnvBuiltin(props: EnvBuiltinProps) {\n const [{ defaultConfig, children }, rest] = splitProps(props, [\n \"defaultConfig\",\n \"children\"\n ]);\n\n const context = usePowerlines<EnvPluginContext>();\n const defaultValue = computed(\n () => context && loadEnvFromContext(context, process.env)\n );\n\n const schemaGetProperties = computed(\n () =>\n (getPropertiesList(context.env.config)\n .filter(property => !property?.ignore && !property?.writeOnly)\n .sort((a, b) =>\n !a?.name && !b?.name\n ? 0\n : !a?.name\n ? 1\n : !b?.name\n ? -1\n : a?.name.localeCompare(b?.name)\n ) ?? []) as GetPropertiesResult[]\n );\n const schemaSetProperties = computed(\n () =>\n (getPropertiesList(context.env.config)\n .filter(property => !property?.ignore && !property?.readOnly)\n .sort((a, b) =>\n !a?.name && !b?.name\n ? 0\n : !a?.name\n ? 1\n : !b?.name\n ? -1\n : a?.name.localeCompare(b?.name)\n ) ?? []) as GetPropertiesResult[]\n );\n\n return (\n <BuiltinFile\n id=\"env\"\n description=\"The environment configuration module provides an interface to define environment configuration parameters.\"\n {...rest}>\n <Show when={Boolean(context.env.config.schema)}>\n <EnvTypeDefinition defaultValue={defaultValue} />\n <Spacing />\n </Show>\n <ObjectDeclaration\n name=\"initialEnv\"\n type=\"Partial<Env>\"\n schema={context.env.config.schema}\n export\n const\n doc=\"The initial environment configuration object values for the runtime.\"\n />\n <Spacing />\n <TSDoc heading=\"Initializes the Powerlines environment configuration module.\">\n <TSDocRemarks>\n {`This function initializes the Powerlines environment configuration object.`}\n </TSDocRemarks>\n <TSDocParam name=\"environmentConfig\">\n {`The dynamic/runtime configuration - this could include the current environment variables or any other environment-specific settings provided by the runtime.`}\n </TSDocParam>\n <TSDocReturns>\n {`The initialized Powerlines configuration object.`}\n </TSDocReturns>\n </TSDoc>\n <Show when={Boolean(context?.entryPath)}>\n <FunctionDeclaration\n refkey={createEnvRefkey}\n async={false}\n export\n name=\"createEnv\"\n parameters={[\n {\n name: \"environmentConfig\",\n type: `Partial<Env>`,\n optional: false,\n default: \"{}\"\n }\n ]}\n returnType=\"Env\">\n {code`\n return new Proxy<Env>(\n deserializeEnv({\n ...initialEnv,\n ...environmentConfig\n } as Env),\n {\n get: (target: UnprefixedEnv, propertyName: string) => { `}\n <hbr />\n <For each={schemaGetProperties.value}>\n {(property: GetPropertiesResult, index: number) => (\n <ConfigPropertyGet\n index={index}\n context={context}\n name={property.name}\n property={property}\n />\n )}\n </For>\n {code`\n return undefined;\n }, `}\n\n <Spacing />\n {code` set: (target: UnprefixedEnv, propertyName: string, newValue: any) => { `}\n <hbr />\n <For each={schemaSetProperties.value} ender={code` else `}>\n {(property: GetPropertiesResult, index: number) => (\n <ConfigPropertySet\n index={index}\n context={context}\n name={property.name}\n property={property}\n />\n )}\n </For>\n\n <hbr />\n {code`return false;\n }\n }\n );\n`}\n </FunctionDeclaration>\n </Show>\n <Spacing />\n <TSDoc heading=\"The environment configuration object.\">\n <TSDocRemarks>\n {`This object provides access to the environment configuration parameters in the application runtime.`}\n </TSDocRemarks>\n </TSDoc>\n <VarDeclaration\n refkey={envRefkey}\n name=\"env\"\n type=\"Env\"\n export\n const\n initializer={\n <>{code`createEnv(${defaultConfig || \"{}\"} as Partial<Env>);`}</>\n }\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isCI\"\n doc=\"Detect if the application is running in a continuous integration (CI) environment.\"\n initializer={code`Boolean(\n env.CI ||\n env.RUN_ID ||\n env.AGOLA_GIT_REF ||\n env.AC_APPCIRCLE ||\n env.APPVEYOR ||\n env.CODEBUILD ||\n env.TF_BUILD ||\n env.bamboo_planKey ||\n env.BITBUCKET_COMMIT ||\n env.BITRISE_IO ||\n env.BUDDY_WORKSPACE_ID ||\n env.BUILDKITE ||\n env.CIRCLECI ||\n env.CIRRUS_CI ||\n env.CF_BUILD_ID ||\n env.CM_BUILD_ID ||\n env.CI_NAME ||\n env.DRONE ||\n env.DSARI ||\n env.EARTHLY_CI ||\n env.EAS_BUILD ||\n env.GERRIT_PROJECT ||\n env.GITEA_ACTIONS ||\n env.GITHUB_ACTIONS ||\n env.GITLAB_CI ||\n env.GOCD ||\n env.BUILDER_OUTPUT ||\n env.HARNESS_BUILD_ID ||\n env.JENKINS_URL ||\n env.LAYERCI ||\n env.MAGNUM ||\n env.NETLIFY ||\n env.NEVERCODE ||\n env.PROW_JOB_ID ||\n env.RELEASE_BUILD_ID ||\n env.RENDER ||\n env.SAILCI ||\n env.HUDSON ||\n env.SCREWDRIVER ||\n env.SEMAPHORE ||\n env.SOURCEHUT ||\n env.STRIDER ||\n env.TASK_ID ||\n env.RUN_ID ||\n env.TEAMCITY_VERSION ||\n env.TRAVIS ||\n env.VELA ||\n env.NOW_BUILDER ||\n env.APPCENTER_BUILD_ID ||\n env.CI_XCODE_PROJECT ||\n env.XCS || false\n ); `}\n />\n <Spacing />\n\n <TSDoc heading=\"Detect the \\`mode\\` of the current runtime environment.\">\n <TSDocRemarks>\n {code`The \\`mode\\` is determined by the \\`MODE\\` environment variable, or falls back to the \\`NEXT_PUBLIC_VERCEL_ENV\\`, \\`NODE_ENV\\`, or defaults to \\`production\\`. While the value can potentially be any string, it is generally recommended to only allow a value in the following list:\n - \\`production\\`\n - \\`test\\`\n - \\`development\\`\n `}\n </TSDocRemarks>\n </TSDoc>\n <VarDeclaration\n export\n const\n name=\"mode\"\n initializer={code`String(env.MODE) || \"production\"; `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isProduction\"\n doc='Detect if the application is running in `\"production\"` mode'\n initializer={code`[\"prd\", \"prod\", \"production\"].includes(mode.toLowerCase()); `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isTest\"\n doc='Detect if the application is running in `\"test\"` mode'\n initializer={code`[\"tst\", \"test\", \"testing\", \"stg\", \"stage\", \"staging\"].includes(mode.toLowerCase()) || env.TEST; `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isDevelopment\"\n doc='Detect if the application is running in `\"development\"` mode'\n initializer={code`[\"dev\", \"development\"].includes(mode.toLowerCase()); `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isDebug\"\n doc=\"Detect if the application is currently being debugged\"\n initializer={code`Boolean(isDevelopment && env.DEBUG); `}\n />\n <Spacing />\n <Show when={Boolean(children)}>{children}</Show>\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"env-builtin.mjs","names":[],"sources":["../../src/components/env-builtin.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n code,\n computed,\n For,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n InterfaceDeclaration as BaseInterfaceDeclaration,\n ElseIfClause,\n FunctionDeclaration,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { usePowerlines } from \"@powerlines/plugin-alloy/core/contexts/context\";\nimport { refkey } from \"@powerlines/plugin-alloy/helpers/refkey\";\nimport type { ComponentProps } from \"@powerlines/plugin-alloy/types/components\";\nimport {\n BuiltinFile,\n BuiltinFileProps,\n InterfaceDeclaration,\n InterfaceMember,\n ObjectDeclaration,\n TSDocSchemaProperty\n} from \"@powerlines/plugin-alloy/typescript/components\";\nimport {\n TSDoc,\n TSDocParam,\n TSDocRemarks,\n TSDocReturns\n} from \"@powerlines/plugin-alloy/typescript/components/tsdoc\";\nimport {\n generateParserCode,\n getPropertiesList,\n GetPropertiesResult,\n JsonSchema\n} from \"@powerlines/schema\";\nimport { getUnique } from \"@stryke/helpers/get-unique\";\nimport { loadEnvFromContext } from \"../helpers/load\";\nimport type { EnvPluginContext } from \"../types/plugin\";\n\n/**\n * Generates the environment configuration typescript definition for the Powerlines project.\n */\nexport function EnvTypeDefinition() {\n const context = usePowerlines<EnvPluginContext>();\n\n return (\n <>\n <InterfaceDeclaration\n name=\"UnprefixedEnv\"\n schema={context.env.config.schema}\n export\n />\n <Spacing />\n <TSDoc heading=\"The environment configuration object with prefixed keys.\">\n <TSDocRemarks>\n {`The \\`Env\\` type extends the \\`UnprefixedEnv\\` interface by including additional keys that are prefixed according to the project's configuration. This allows for flexibility in accessing environment variables with different naming conventions.`}\n </TSDocRemarks>\n </TSDoc>\n <BaseInterfaceDeclaration name=\"Env\" export extends=\"UnprefixedEnv\">\n <For\n each={getUnique(context.config.env.prefix).map(prefix =>\n prefix.replace(/_$/, \"\")\n )}\n doubleHardline>\n {prefix => (\n <For\n each={\n getPropertiesList(context.env.config.schema).filter(\n property => !property.ignore\n ) ?? []\n }\n doubleHardline>\n {property => (\n <>\n <TSDocSchemaProperty\n schema={property}\n defaultValue={property?.default}\n />\n <InterfaceMember\n name={`${prefix}_${property.name}`}\n type={`UnprefixedEnv[\"${property.name}\"]`}\n schema={property}\n required={property.required}\n readOnly={property.readOnly}\n />\n </>\n )}\n </For>\n )}\n </For>\n </BaseInterfaceDeclaration>\n <Spacing />\n </>\n );\n}\n\ninterface ConfigPropertyConditionalProps extends ComponentProps {\n context: EnvPluginContext;\n name: string;\n}\n\nfunction ConfigPropertyConditional(props: ConfigPropertyConditionalProps) {\n const [{ context, name }] = splitProps(props, [\"context\", \"name\"]);\n\n return code`propertyName === \"${name}\" || propertyName.replace(/^(${getUnique(\n context.config.env.prefix\n .sort((a, b) =>\n a.startsWith(b) ? -1 : b.startsWith(a) ? 1 : a.localeCompare(b)\n )\n .map(prefix => `${prefix.replace(/_$/, \"\")}_`)\n ).join(\"|\")})/g, \"\").toLowerCase().replace(/[\\\\s\\\\-_]+/g, \"\") === \"${name\n .toLowerCase()\n .replace(/[\\s\\-_]+/g, \"\")}\"`;\n}\n\ninterface ConfigPropertyProps extends ComponentProps {\n index: number;\n context: EnvPluginContext;\n name: string;\n property: JsonSchema;\n}\n\nfunction ConfigPropertyGet(props: ConfigPropertyProps) {\n const [{ context, name, property, index }] = splitProps(props, [\n \"context\",\n \"name\",\n \"property\",\n \"index\"\n ]);\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${name}\"];`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`return target[\"${name}\"];`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nfunction ConfigPropertySet(props: ConfigPropertyProps) {\n const [{ context, name, property, index }] = splitProps(props, [\n \"context\",\n \"name\",\n \"property\",\n \"index\"\n ]);\n\n return (\n <>\n {index === 0 ? (\n <IfStatement\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${name}\"] = newValue;\n return true;\n`}\n </IfStatement>\n ) : (\n <ElseIfClause\n condition={\n <>\n <ConfigPropertyConditional name={name} context={context} />\n <Show when={property?.alias && property?.alias.length > 0}>\n {code` || `}\n <For each={property?.alias ?? []} joiner={code` || `}>\n {alias => (\n <ConfigPropertyConditional name={alias} context={context} />\n )}\n </For>\n </Show>\n </>\n }>\n {code`\n target[\"${name}\"] = newValue;\n return true;\n`}\n </ElseIfClause>\n )}\n </>\n );\n}\n\nexport interface EnvBuiltinProps extends Omit<BuiltinFileProps, \"id\"> {\n defaultConfig?: Children;\n}\n\nconst createEnvRefkey = refkey(\"createEnv\");\nconst envRefkey = refkey(\"env\");\n\n/**\n * Generates the environment configuration module for the Powerlines project.\n */\nexport function EnvBuiltin(props: EnvBuiltinProps) {\n const [{ defaultConfig, children }, rest] = splitProps(props, [\n \"defaultConfig\",\n \"children\"\n ]);\n\n const context = usePowerlines<EnvPluginContext>();\n const defaultValue = computed(\n () => context && loadEnvFromContext(context, process.env)\n );\n\n const schemaGetProperties = computed(\n () =>\n (getPropertiesList(context.env.config)\n .filter(property => !property?.ignore && !property?.writeOnly)\n .sort((a, b) =>\n !a?.name && !b?.name\n ? 0\n : !a?.name\n ? 1\n : !b?.name\n ? -1\n : a?.name.localeCompare(b?.name)\n ) ?? []) as GetPropertiesResult[]\n );\n const schemaSetProperties = computed(\n () =>\n (getPropertiesList(context.env.config)\n .filter(property => !property?.ignore && !property?.readOnly)\n .sort((a, b) =>\n !a?.name && !b?.name\n ? 0\n : !a?.name\n ? 1\n : !b?.name\n ? -1\n : a?.name.localeCompare(b?.name)\n ) ?? []) as GetPropertiesResult[]\n );\n\n const parserCode = generateParserCode(context.env.config.schema);\n\n return (\n <BuiltinFile\n id=\"env\"\n description=\"The environment configuration module provides an interface to define environment configuration parameters.\"\n {...rest}>\n <Show when={Boolean(context.env.config.schema)}>\n <EnvTypeDefinition defaultValue={defaultValue} />\n <Spacing />\n </Show>\n <ObjectDeclaration\n name=\"initialEnv\"\n type=\"Partial<Env>\"\n schema={context.env.config.schema}\n export\n const\n doc=\"The initial environment configuration object values for the runtime.\"\n />\n <Spacing />\n <TSDoc heading=\"Initializes the Powerlines environment configuration module.\">\n <TSDocRemarks>\n {`This function initializes the Powerlines environment configuration object.`}\n </TSDocRemarks>\n <TSDocParam name=\"environmentConfig\">\n {`The dynamic/runtime configuration - this could include the current environment variables or any other environment-specific settings provided by the runtime.`}\n </TSDocParam>\n <TSDocReturns>\n {`The initialized Powerlines configuration object.`}\n </TSDocReturns>\n </TSDoc>\n {parserCode}\n <Show when={Boolean(context?.entryPath)}>\n <FunctionDeclaration\n refkey={createEnvRefkey}\n async={false}\n export\n name=\"createEnv\"\n parameters={[\n {\n name: \"environmentConfig\",\n type: `Partial<Env>`,\n optional: false,\n default: \"{}\"\n }\n ]}\n returnType=\"Env\">\n {code`\n return new Proxy<Env>(\n parse({\n ...initialEnv,\n ...environmentConfig\n } as Env),\n {\n get: (target: UnprefixedEnv, propertyName: string) => { `}\n <hbr />\n <For each={schemaGetProperties.value}>\n {(property: GetPropertiesResult, index: number) => (\n <ConfigPropertyGet\n index={index}\n context={context}\n name={property.name}\n property={property}\n />\n )}\n </For>\n {code`\n return undefined;\n }, `}\n\n <Spacing />\n {code` set: (target: UnprefixedEnv, propertyName: string, newValue: any) => { `}\n <hbr />\n <For each={schemaSetProperties.value} ender={code` else `}>\n {(property: GetPropertiesResult, index: number) => (\n <ConfigPropertySet\n index={index}\n context={context}\n name={property.name}\n property={property}\n />\n )}\n </For>\n\n <hbr />\n {code`return false;\n }\n }\n );\n`}\n </FunctionDeclaration>\n </Show>\n <Spacing />\n <TSDoc heading=\"The environment configuration object.\">\n <TSDocRemarks>\n {`This object provides access to the environment configuration parameters in the application runtime.`}\n </TSDocRemarks>\n </TSDoc>\n <VarDeclaration\n refkey={envRefkey}\n name=\"env\"\n type=\"Env\"\n export\n const\n initializer={\n <>{code`createEnv(${defaultConfig || \"{}\"} as Partial<Env>);`}</>\n }\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isCI\"\n doc=\"Detect if the application is running in a continuous integration (CI) environment.\"\n initializer={code`Boolean(\n env.CI ||\n env.RUN_ID ||\n env.AGOLA_GIT_REF ||\n env.AC_APPCIRCLE ||\n env.APPVEYOR ||\n env.CODEBUILD ||\n env.TF_BUILD ||\n env.bamboo_planKey ||\n env.BITBUCKET_COMMIT ||\n env.BITRISE_IO ||\n env.BUDDY_WORKSPACE_ID ||\n env.BUILDKITE ||\n env.CIRCLECI ||\n env.CIRRUS_CI ||\n env.CF_BUILD_ID ||\n env.CM_BUILD_ID ||\n env.CI_NAME ||\n env.DRONE ||\n env.DSARI ||\n env.EARTHLY_CI ||\n env.EAS_BUILD ||\n env.GERRIT_PROJECT ||\n env.GITEA_ACTIONS ||\n env.GITHUB_ACTIONS ||\n env.GITLAB_CI ||\n env.GOCD ||\n env.BUILDER_OUTPUT ||\n env.HARNESS_BUILD_ID ||\n env.JENKINS_URL ||\n env.LAYERCI ||\n env.MAGNUM ||\n env.NETLIFY ||\n env.NEVERCODE ||\n env.PROW_JOB_ID ||\n env.RELEASE_BUILD_ID ||\n env.RENDER ||\n env.SAILCI ||\n env.HUDSON ||\n env.SCREWDRIVER ||\n env.SEMAPHORE ||\n env.SOURCEHUT ||\n env.STRIDER ||\n env.TASK_ID ||\n env.RUN_ID ||\n env.TEAMCITY_VERSION ||\n env.TRAVIS ||\n env.VELA ||\n env.NOW_BUILDER ||\n env.APPCENTER_BUILD_ID ||\n env.CI_XCODE_PROJECT ||\n env.XCS || false\n ); `}\n />\n <Spacing />\n\n <TSDoc heading=\"Detect the \\`mode\\` of the current runtime environment.\">\n <TSDocRemarks>\n {code`The \\`mode\\` is determined by the \\`MODE\\` environment variable, or falls back to the \\`NEXT_PUBLIC_VERCEL_ENV\\`, \\`NODE_ENV\\`, or defaults to \\`production\\`. While the value can potentially be any string, it is generally recommended to only allow a value in the following list:\n - \\`production\\`\n - \\`test\\`\n - \\`development\\`\n `}\n </TSDocRemarks>\n </TSDoc>\n <VarDeclaration\n export\n const\n name=\"mode\"\n initializer={code`String(env.MODE) || \"production\"; `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isProduction\"\n doc='Detect if the application is running in `\"production\"` mode'\n initializer={code`[\"prd\", \"prod\", \"production\"].includes(mode.toLowerCase()); `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isTest\"\n doc='Detect if the application is running in `\"test\"` mode'\n initializer={code`[\"tst\", \"test\", \"testing\", \"stg\", \"stage\", \"staging\"].includes(mode.toLowerCase()) || env.TEST; `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isDevelopment\"\n doc='Detect if the application is running in `\"development\"` mode'\n initializer={code`[\"dev\", \"development\"].includes(mode.toLowerCase()); `}\n />\n <Spacing />\n\n <VarDeclaration\n export\n const\n name=\"isDebug\"\n doc=\"Detect if the application is currently being debugged\"\n initializer={code`Boolean(isDevelopment && env.DEBUG); `}\n />\n <Spacing />\n <Show when={Boolean(children)}>{children}</Show>\n </BuiltinFile>\n );\n}\n"],"mappings":"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"}
@@ -24,7 +24,7 @@ declare function loadEnvFromContext(context: EnvPluginContext, parsed: DotenvPar
24
24
  ERROR_URL: string | undefined;
25
25
  ORGANIZATION: string | undefined;
26
26
  PLATFORM: "node" | "browser" | "neutral";
27
- MODE: "development" | "test" | "production";
27
+ MODE: "test" | "development" | "production";
28
28
  TEST: boolean;
29
29
  DEBUG: boolean;
30
30
  STACKTRACE: boolean;
@@ -24,7 +24,7 @@ declare function loadEnvFromContext(context: EnvPluginContext, parsed: DotenvPar
24
24
  ERROR_URL: string | undefined;
25
25
  ORGANIZATION: string | undefined;
26
26
  PLATFORM: "node" | "browser" | "neutral";
27
- MODE: "development" | "test" | "production";
27
+ MODE: "test" | "development" | "production";
28
28
  TEST: boolean;
29
29
  DEBUG: boolean;
30
30
  STACKTRACE: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-env",
3
- "version": "0.16.297",
3
+ "version": "0.16.299",
4
4
  "private": false,
5
5
  "description": "A package containing a Powerlines plugin for injecting static .env configuration values to the code so that they're accessible at runtime.",
6
6
  "keywords": ["dotenv", "powerlines", "storm-software", "powerlines-plugin"],
@@ -363,11 +363,11 @@
363
363
  "@babel/core": "8.0.0-rc.6",
364
364
  "@babel/types": "8.0.0-rc.6",
365
365
  "@powerlines/core": "^0.48.30",
366
- "@powerlines/plugin-alloy": "0.26.186",
367
- "@powerlines/plugin-automd": "0.1.555",
368
- "@powerlines/plugin-babel": "0.13.90",
369
- "@powerlines/plugin-plugin": "0.12.506",
370
- "@powerlines/schema": "^0.11.76",
366
+ "@powerlines/plugin-alloy": "0.26.188",
367
+ "@powerlines/plugin-automd": "0.1.557",
368
+ "@powerlines/plugin-babel": "0.13.92",
369
+ "@powerlines/plugin-plugin": "0.12.508",
370
+ "@powerlines/schema": "0.11.78",
371
371
  "@storm-software/config-tools": "^1.190.37",
372
372
  "@stryke/capnp": "^0.12.107",
373
373
  "@stryke/convert": "^0.7.12",
@@ -382,7 +382,7 @@
382
382
  "automd": "^0.4.3",
383
383
  "c12": "^3.3.4",
384
384
  "defu": "^6.1.7",
385
- "powerlines": "0.47.94"
385
+ "powerlines": "0.47.96"
386
386
  },
387
387
  "devDependencies": { "@types/node": "^25.9.1", "vite": "^8.0.14" },
388
388
  "publishConfig": { "access": "public" },
@@ -399,5 +399,5 @@
399
399
  "tinyrainbow": "3.1.0",
400
400
  "vitest": "4.1.7"
401
401
  },
402
- "gitHead": "32fed6e55a0fd40a0a0a110714025362afc672c4"
402
+ "gitHead": "500d0ab910cf2574f3718d96f04ecc2598175098"
403
403
  }