@opentelemetry/configuration 0.300.0 → 0.301.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +23 -136
  2. package/dist/index.cjs +5 -6
  3. package/dist/index.d.cts +2 -4
  4. package/dist/index.d.mts +2 -4
  5. package/dist/index.mjs +2 -3
  6. package/dist/{FileConfigFactory.cjs → parse.cjs} +23 -26
  7. package/dist/parse.cjs.map +1 -0
  8. package/dist/{FileConfigFactory.d.cts → parse.d.cts} +5 -4
  9. package/dist/parse.d.cts.map +1 -0
  10. package/dist/{FileConfigFactory.d.mts → parse.d.mts} +5 -4
  11. package/dist/parse.d.mts.map +1 -0
  12. package/dist/{FileConfigFactory.mjs → parse.mjs} +22 -25
  13. package/dist/parse.mjs.map +1 -0
  14. package/dist/utils.cjs +0 -60
  15. package/dist/utils.cjs.map +1 -1
  16. package/dist/utils.mjs +1 -55
  17. package/dist/utils.mjs.map +1 -1
  18. package/package.json +5 -5
  19. package/dist/ConfigFactory.cjs +0 -12
  20. package/dist/ConfigFactory.cjs.map +0 -1
  21. package/dist/ConfigFactory.d.cts +0 -6
  22. package/dist/ConfigFactory.d.cts.map +0 -1
  23. package/dist/ConfigFactory.d.mts +0 -6
  24. package/dist/ConfigFactory.d.mts.map +0 -1
  25. package/dist/ConfigFactory.mjs +0 -12
  26. package/dist/ConfigFactory.mjs.map +0 -1
  27. package/dist/EnvDefinition.cjs +0 -34
  28. package/dist/EnvDefinition.cjs.map +0 -1
  29. package/dist/EnvDefinition.mjs +0 -33
  30. package/dist/EnvDefinition.mjs.map +0 -1
  31. package/dist/EnvReader.cjs +0 -37
  32. package/dist/EnvReader.cjs.map +0 -1
  33. package/dist/EnvReader.mjs +0 -36
  34. package/dist/EnvReader.mjs.map +0 -1
  35. package/dist/EnvironmentConfigFactory.cjs +0 -354
  36. package/dist/EnvironmentConfigFactory.cjs.map +0 -1
  37. package/dist/EnvironmentConfigFactory.mjs +0 -347
  38. package/dist/EnvironmentConfigFactory.mjs.map +0 -1
  39. package/dist/FileConfigFactory.cjs.map +0 -1
  40. package/dist/FileConfigFactory.d.cts.map +0 -1
  41. package/dist/FileConfigFactory.d.mts.map +0 -1
  42. package/dist/FileConfigFactory.mjs.map +0 -1
  43. package/dist/IConfigFactory.d.cts +0 -13
  44. package/dist/IConfigFactory.d.cts.map +0 -1
  45. package/dist/IConfigFactory.d.mts +0 -13
  46. package/dist/IConfigFactory.d.mts.map +0 -1
package/dist/utils.mjs CHANGED
@@ -69,61 +69,7 @@ function yamlScalarCoerce(value) {
69
69
  if (coerced === null || type === "number" || type === "boolean") return coerced;
70
70
  else return value;
71
71
  }
72
- function getGrpcTlsConfig(certificateFile, clientKeyFile, clientCertificateFile, insecure) {
73
- if (certificateFile || clientKeyFile || clientCertificateFile) {
74
- const tls = {};
75
- if (certificateFile) tls.ca_file = certificateFile;
76
- if (clientKeyFile) tls.key_file = clientKeyFile;
77
- if (clientCertificateFile) tls.cert_file = clientCertificateFile;
78
- if (insecure !== void 0) tls.insecure = insecure;
79
- return tls;
80
- }
81
- }
82
- function initializeDefaultConfiguration() {
83
- return {
84
- disabled: false,
85
- log_level: "info",
86
- resource: {},
87
- attribute_limits: { attribute_count_limit: 128 }
88
- };
89
- }
90
- function initializeDefaultTracerProviderConfiguration() {
91
- return {
92
- processors: [],
93
- limits: {
94
- attribute_count_limit: 128,
95
- event_count_limit: 128,
96
- link_count_limit: 128,
97
- event_attribute_count_limit: 128,
98
- link_attribute_count_limit: 128
99
- },
100
- sampler: { parent_based: { root: { always_on: null } } }
101
- };
102
- }
103
- function initializeDefaultMeterProviderConfiguration() {
104
- return {
105
- readers: [],
106
- views: [],
107
- exemplar_filter: "trace_based"
108
- };
109
- }
110
- function initializeDefaultLoggerProviderConfiguration() {
111
- return {
112
- processors: [],
113
- limits: { attribute_count_limit: 128 },
114
- "logger_configurator/development": {}
115
- };
116
- }
117
- function getHttpTlsConfig(certificateFile, clientKeyFile, clientCertificateFile) {
118
- if (certificateFile || clientKeyFile || clientCertificateFile) {
119
- const tls = {};
120
- if (certificateFile) tls.ca_file = certificateFile;
121
- if (clientKeyFile) tls.key_file = clientKeyFile;
122
- if (clientCertificateFile) tls.cert_file = clientCertificateFile;
123
- return tls;
124
- }
125
- }
126
72
  //#endregion
127
- export { getGrpcTlsConfig, getHttpTlsConfig, initializeDefaultConfiguration, initializeDefaultLoggerProviderConfiguration, initializeDefaultMeterProviderConfiguration, initializeDefaultTracerProviderConfiguration, substituteEnvVars };
73
+ export { substituteEnvVars };
128
74
 
129
75
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as yaml from 'yaml';\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport type { ConfigurationModel, GrpcTls, HttpTls } from './generated/types';\n\n/**\n * Handle (Environment) variable substitution per\n * https://opentelemetry.io/docs/specs/otel/configuration/data-model/#environment-variable-substitution\n *\n * This changes the yaml.Document in-place.\n * This must work with a yaml.Document, rather than a raw JS object from\n * `yaml.parse()`, to distinguish between `foo: ${BAR}` and `foo: \"${BAR}\"`.\n *\n * Exported for testing.\n */\nexport function substituteEnvVars(doc: yaml.Document) {\n // Visit each scalar string value in the document. These are\n // the candidates for env var substitution.\n yaml.visit(doc, {\n Scalar: (key, node, _path) => {\n if (key === 'key') return; // skip mapping keys\n if (typeof node.value !== 'string') return;\n let subbed: string | null | number | boolean = envVarSubst(node.value);\n if (subbed !== node.value && node.type === yaml.Scalar.PLAIN) {\n // \"PLAIN\" here is a simple YAML value (e.g. 42 in `foo: 42`).\n // I.e., not quoted (`foo: \"42\"`) or in a block.\n subbed = yamlScalarCoerce(subbed);\n }\n node.value = subbed;\n },\n });\n}\n\n// ENV_SUBSTITUTION_RE *mostly* matches the `ENV-SUBSTITUTION` ABNF from the\n// spec with the exception of the DEFAULT-VALUE: we are using `[^\\n}]*`\n// (copying the OTel Java regex) rather than a regex closer to ABNF\n// `*(VCHAR-WSP-NO-RBRACE)` (which is slightly ambiguous on what whitespace is\n// allowed in WSP).\nconst ENV_SUBSTITUTION_RE = /^([a-zA-Z_][a-zA-Z0-9_]*)(?::-([^\\n}]*))?$/;\n\n/**\n * Do environment variable substitution for the given string value.\n */\nfunction envVarSubst(s: string): string {\n const ESCAPE_RE = /(\\$\\$)/;\n const chunks = s.split(ESCAPE_RE);\n for (let i = 0; i < chunks.length; ++i) {\n if (i % 2 === 1) {\n // Odd chunks are matched escape sequences, i.e. '$$'.\n chunks[i] = '$';\n continue;\n }\n\n // Even chunks are processed for possible substition matches.\n const SUBSTITUTION_REF_RE = /\\$\\{(?:env:)?([^}]+)\\}/g;\n let chunk = '';\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n while ((match = SUBSTITUTION_REF_RE.exec(chunks[i])) !== null) {\n chunk += chunks[i].slice(lastIndex, match.index);\n const envMatch = ENV_SUBSTITUTION_RE.exec(match[1]);\n if (!envMatch) {\n // E.g.: `key: ${STRING_VALUE:?error}` test case\n throw new Error(\n `parse error: invalid env var substitution: ${match[0]}`\n );\n }\n const envName = envMatch[1];\n const defaultValue = envMatch[2] ?? '';\n chunk += getStringFromEnv(envName) || defaultValue;\n lastIndex = SUBSTITUTION_REF_RE.lastIndex;\n }\n chunk += chunks[i].slice(lastIndex);\n chunks[i] = chunk;\n }\n\n const result = chunks.join('');\n return result;\n}\n\n/**\n * Re-interpret a string value from env var substitution as a possible\n * YAML number, boolean, or null value.\n *\n * If the interpretted value is any other type, we return the original\n * string:\n * - sequences and mappings may not result from env var substitution, per the spec\n * - a re-parsed YAML string normalizes whitespace, which we do not want\n */\nfunction yamlScalarCoerce(value: string): string | null | number | boolean {\n let coerced;\n try {\n coerced = yaml.parse(value, { version: '1.2' });\n } catch {\n return value;\n }\n const type = typeof coerced;\n if (coerced === null || type === 'number' || type === 'boolean') {\n return coerced;\n } else {\n return value;\n }\n}\n\nexport function getGrpcTlsConfig(\n certificateFile?: string,\n clientKeyFile?: string,\n clientCertificateFile?: string,\n insecure?: boolean\n): GrpcTls | undefined {\n if (certificateFile || clientKeyFile || clientCertificateFile) {\n const tls: GrpcTls = {};\n if (certificateFile) {\n tls.ca_file = certificateFile;\n }\n if (clientKeyFile) {\n tls.key_file = clientKeyFile;\n }\n if (clientCertificateFile) {\n tls.cert_file = clientCertificateFile;\n }\n if (insecure !== undefined) {\n tls.insecure = insecure;\n }\n return tls;\n }\n return undefined;\n}\n\nexport function initializeDefaultConfiguration(): ConfigurationModel {\n return {\n disabled: false,\n log_level: 'info',\n resource: {},\n attribute_limits: {\n attribute_count_limit: 128,\n },\n };\n}\n\nexport function initializeDefaultTracerProviderConfiguration(): NonNullable<\n ConfigurationModel['tracer_provider']\n> {\n return {\n processors: [],\n limits: {\n attribute_count_limit: 128,\n event_count_limit: 128,\n link_count_limit: 128,\n event_attribute_count_limit: 128,\n link_attribute_count_limit: 128,\n },\n sampler: {\n parent_based: {\n root: { always_on: null },\n },\n },\n };\n}\n\nexport function initializeDefaultMeterProviderConfiguration(): NonNullable<\n ConfigurationModel['meter_provider']\n> {\n return {\n readers: [],\n views: [],\n exemplar_filter: 'trace_based',\n };\n}\n\nexport function initializeDefaultLoggerProviderConfiguration(): NonNullable<\n ConfigurationModel['logger_provider']\n> {\n return {\n processors: [],\n limits: { attribute_count_limit: 128 },\n 'logger_configurator/development': {},\n };\n}\n\nexport function getHttpTlsConfig(\n certificateFile?: string,\n clientKeyFile?: string,\n clientCertificateFile?: string\n): HttpTls | undefined {\n if (certificateFile || clientKeyFile || clientCertificateFile) {\n const tls: HttpTls = {};\n if (certificateFile) {\n tls.ca_file = certificateFile;\n }\n if (clientKeyFile) {\n tls.key_file = clientKeyFile;\n }\n if (clientCertificateFile) {\n tls.cert_file = clientCertificateFile;\n }\n return tls;\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,kBAAkB,KAAoB;CAGpD,KAAK,MAAM,KAAK,EACd,SAAS,KAAK,MAAM,UAAU;EAC5B,IAAI,QAAQ,OAAO;EACnB,IAAI,OAAO,KAAK,UAAU,UAAU;EACpC,IAAI,SAA2C,YAAY,KAAK,KAAK;EACrE,IAAI,WAAW,KAAK,SAAS,KAAK,SAAS,KAAK,OAAO,OAGrD,SAAS,iBAAiB,MAAM;EAElC,KAAK,QAAQ;CACf,EACF,CAAC;AACH;AAOA,MAAM,sBAAsB;;;;AAK5B,SAAS,YAAY,GAAmB;CAEtC,MAAM,SAAS,EAAE,MAAM,QAAS;CAChC,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;EACtC,IAAI,IAAI,MAAM,GAAG;GAEf,OAAO,KAAK;GACZ;EACF;EAGA,MAAM,sBAAsB;EAC5B,IAAI,QAAQ;EACZ,IAAI,YAAY;EAChB,IAAI;EACJ,QAAQ,QAAQ,oBAAoB,KAAK,OAAO,EAAE,OAAO,MAAM;GAC7D,SAAS,OAAO,EAAE,CAAC,MAAM,WAAW,MAAM,KAAK;GAC/C,MAAM,WAAW,oBAAoB,KAAK,MAAM,EAAE;GAClD,IAAI,CAAC,UAEH,MAAM,IAAI,MACR,8CAA8C,MAAM,IACtD;GAEF,MAAM,UAAU,SAAS;GACzB,MAAM,eAAe,SAAS,MAAM;GACpC,SAAS,iBAAiB,OAAO,KAAK;GACtC,YAAY,oBAAoB;EAClC;EACA,SAAS,OAAO,EAAE,CAAC,MAAM,SAAS;EAClC,OAAO,KAAK;CACd;CAGA,OADe,OAAO,KAAK,EACf;AACd;;;;;;;;;;AAWA,SAAS,iBAAiB,OAAiD;CACzE,IAAI;CACJ,IAAI;EACF,UAAU,KAAK,MAAM,OAAO,EAAE,SAAS,MAAM,CAAC;CAChD,QAAQ;EACN,OAAO;CACT;CACA,MAAM,OAAO,OAAO;CACpB,IAAI,YAAY,QAAQ,SAAS,YAAY,SAAS,WACpD,OAAO;MAEP,OAAO;AAEX;AAEA,SAAgB,iBACd,iBACA,eACA,uBACA,UACqB;CACrB,IAAI,mBAAmB,iBAAiB,uBAAuB;EAC7D,MAAM,MAAe,CAAC;EACtB,IAAI,iBACF,IAAI,UAAU;EAEhB,IAAI,eACF,IAAI,WAAW;EAEjB,IAAI,uBACF,IAAI,YAAY;EAElB,IAAI,aAAa,KAAA,GACf,IAAI,WAAW;EAEjB,OAAO;CACT;AAEF;AAEA,SAAgB,iCAAqD;CACnE,OAAO;EACL,UAAU;EACV,WAAW;EACX,UAAU,CAAC;EACX,kBAAkB,EAChB,uBAAuB,IACzB;CACF;AACF;AAEA,SAAgB,+CAEd;CACA,OAAO;EACL,YAAY,CAAC;EACb,QAAQ;GACN,uBAAuB;GACvB,mBAAmB;GACnB,kBAAkB;GAClB,6BAA6B;GAC7B,4BAA4B;EAC9B;EACA,SAAS,EACP,cAAc,EACZ,MAAM,EAAE,WAAW,KAAK,EAC1B,EACF;CACF;AACF;AAEA,SAAgB,8CAEd;CACA,OAAO;EACL,SAAS,CAAC;EACV,OAAO,CAAC;EACR,iBAAiB;CACnB;AACF;AAEA,SAAgB,+CAEd;CACA,OAAO;EACL,YAAY,CAAC;EACb,QAAQ,EAAE,uBAAuB,IAAI;EACrC,mCAAmC,CAAC;CACtC;AACF;AAEA,SAAgB,iBACd,iBACA,eACA,uBACqB;CACrB,IAAI,mBAAmB,iBAAiB,uBAAuB;EAC7D,MAAM,MAAe,CAAC;EACtB,IAAI,iBACF,IAAI,UAAU;EAEhB,IAAI,eACF,IAAI,WAAW;EAEjB,IAAI,uBACF,IAAI,YAAY;EAElB,OAAO;CACT;AAEF"}
1
+ {"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as yaml from 'yaml';\nimport { getStringFromEnv } from '@opentelemetry/core';\n\n/**\n * Handle (Environment) variable substitution per\n * https://opentelemetry.io/docs/specs/otel/configuration/data-model/#environment-variable-substitution\n *\n * This changes the yaml.Document in-place.\n * This must work with a yaml.Document, rather than a raw JS object from\n * `yaml.parse()`, to distinguish between `foo: ${BAR}` and `foo: \"${BAR}\"`.\n *\n * Exported for testing.\n */\nexport function substituteEnvVars(doc: yaml.Document) {\n // Visit each scalar string value in the document. These are\n // the candidates for env var substitution.\n yaml.visit(doc, {\n Scalar: (key, node, _path) => {\n if (key === 'key') return; // skip mapping keys\n if (typeof node.value !== 'string') return;\n let subbed: string | null | number | boolean = envVarSubst(node.value);\n if (subbed !== node.value && node.type === yaml.Scalar.PLAIN) {\n // \"PLAIN\" here is a simple YAML value (e.g. 42 in `foo: 42`).\n // I.e., not quoted (`foo: \"42\"`) or in a block.\n subbed = yamlScalarCoerce(subbed);\n }\n node.value = subbed;\n },\n });\n}\n\n// ENV_SUBSTITUTION_RE *mostly* matches the `ENV-SUBSTITUTION` ABNF from the\n// spec with the exception of the DEFAULT-VALUE: we are using `[^\\n}]*`\n// (copying the OTel Java regex) rather than a regex closer to ABNF\n// `*(VCHAR-WSP-NO-RBRACE)` (which is slightly ambiguous on what whitespace is\n// allowed in WSP).\nconst ENV_SUBSTITUTION_RE = /^([a-zA-Z_][a-zA-Z0-9_]*)(?::-([^\\n}]*))?$/;\n\n/**\n * Do environment variable substitution for the given string value.\n */\nfunction envVarSubst(s: string): string {\n const ESCAPE_RE = /(\\$\\$)/;\n const chunks = s.split(ESCAPE_RE);\n for (let i = 0; i < chunks.length; ++i) {\n if (i % 2 === 1) {\n // Odd chunks are matched escape sequences, i.e. '$$'.\n chunks[i] = '$';\n continue;\n }\n\n // Even chunks are processed for possible substition matches.\n const SUBSTITUTION_REF_RE = /\\$\\{(?:env:)?([^}]+)\\}/g;\n let chunk = '';\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n while ((match = SUBSTITUTION_REF_RE.exec(chunks[i])) !== null) {\n chunk += chunks[i].slice(lastIndex, match.index);\n const envMatch = ENV_SUBSTITUTION_RE.exec(match[1]);\n if (!envMatch) {\n // E.g.: `key: ${STRING_VALUE:?error}` test case\n throw new Error(\n `parse error: invalid env var substitution: ${match[0]}`\n );\n }\n const envName = envMatch[1];\n const defaultValue = envMatch[2] ?? '';\n chunk += getStringFromEnv(envName) || defaultValue;\n lastIndex = SUBSTITUTION_REF_RE.lastIndex;\n }\n chunk += chunks[i].slice(lastIndex);\n chunks[i] = chunk;\n }\n\n const result = chunks.join('');\n return result;\n}\n\n/**\n * Re-interpret a string value from env var substitution as a possible\n * YAML number, boolean, or null value.\n *\n * If the interpretted value is any other type, we return the original\n * string:\n * - sequences and mappings may not result from env var substitution, per the spec\n * - a re-parsed YAML string normalizes whitespace, which we do not want\n */\nfunction yamlScalarCoerce(value: string): string | null | number | boolean {\n let coerced;\n try {\n coerced = yaml.parse(value, { version: '1.2' });\n } catch {\n return value;\n }\n const type = typeof coerced;\n if (coerced === null || type === 'number' || type === 'boolean') {\n return coerced;\n } else {\n return value;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkBA,SAAgB,kBAAkB,KAAoB;CAGpD,KAAK,MAAM,KAAK,EACd,SAAS,KAAK,MAAM,UAAU;EAC5B,IAAI,QAAQ,OAAO;EACnB,IAAI,OAAO,KAAK,UAAU,UAAU;EACpC,IAAI,SAA2C,YAAY,KAAK,KAAK;EACrE,IAAI,WAAW,KAAK,SAAS,KAAK,SAAS,KAAK,OAAO,OAGrD,SAAS,iBAAiB,MAAM;EAElC,KAAK,QAAQ;CACf,EACF,CAAC;AACH;AAOA,MAAM,sBAAsB;;;;AAK5B,SAAS,YAAY,GAAmB;CAEtC,MAAM,SAAS,EAAE,MAAM,QAAS;CAChC,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;EACtC,IAAI,IAAI,MAAM,GAAG;GAEf,OAAO,KAAK;GACZ;EACF;EAGA,MAAM,sBAAsB;EAC5B,IAAI,QAAQ;EACZ,IAAI,YAAY;EAChB,IAAI;EACJ,QAAQ,QAAQ,oBAAoB,KAAK,OAAO,EAAE,OAAO,MAAM;GAC7D,SAAS,OAAO,EAAE,CAAC,MAAM,WAAW,MAAM,KAAK;GAC/C,MAAM,WAAW,oBAAoB,KAAK,MAAM,EAAE;GAClD,IAAI,CAAC,UAEH,MAAM,IAAI,MACR,8CAA8C,MAAM,IACtD;GAEF,MAAM,UAAU,SAAS;GACzB,MAAM,eAAe,SAAS,MAAM;GACpC,SAAS,iBAAiB,OAAO,KAAK;GACtC,YAAY,oBAAoB;EAClC;EACA,SAAS,OAAO,EAAE,CAAC,MAAM,SAAS;EAClC,OAAO,KAAK;CACd;CAGA,OADe,OAAO,KAAK,EACf;AACd;;;;;;;;;;AAWA,SAAS,iBAAiB,OAAiD;CACzE,IAAI;CACJ,IAAI;EACF,UAAU,KAAK,MAAM,OAAO,EAAE,SAAS,MAAM,CAAC;CAChD,QAAQ;EACN,OAAO;CACT;CACA,MAAM,OAAO,OAAO;CACpB,IAAI,YAAY,QAAQ,SAAS,YAAY,SAAS,WACpD,OAAO;MAEP,OAAO;AAEX"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentelemetry/configuration",
3
- "version": "0.300.0",
3
+ "version": "0.301.0",
4
4
  "description": "OpenTelemetry Configuration",
5
5
  "main": "./dist/index.cjs",
6
6
  "types": "./dist/index.d.cts",
@@ -48,14 +48,14 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@opentelemetry/core": "3.0.0",
51
+ "@opentelemetry/core": "3.1.0",
52
52
  "yaml": "^2.8.3"
53
53
  },
54
54
  "peerDependencies": {
55
- "@opentelemetry/api": "^1.9.0"
55
+ "@opentelemetry/api": "^1.10.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@opentelemetry/api": "^1.9.0",
58
+ "@opentelemetry/api": "^1.10.0",
59
59
  "@types/mocha": "10.0.10",
60
60
  "@types/node": "18.19.130",
61
61
  "@types/sinon": "17.0.4",
@@ -69,5 +69,5 @@
69
69
  },
70
70
  "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/configuration",
71
71
  "sideEffects": false,
72
- "gitHead": "12a5817ad147c186a0e45a6637abd5abf423727a"
72
+ "gitHead": "9985264933cc7d93bfa4cbd02f1de562a050e9ce"
73
73
  }
@@ -1,12 +0,0 @@
1
- const require_EnvironmentConfigFactory = require("./EnvironmentConfigFactory.cjs");
2
- const require_FileConfigFactory = require("./FileConfigFactory.cjs");
3
- let _opentelemetry_core = require("@opentelemetry/core");
4
- //#region src/ConfigFactory.ts
5
- function createConfigFactory() {
6
- if ((0, _opentelemetry_core.getStringFromEnv)("OTEL_CONFIG_FILE")) return new require_FileConfigFactory.FileConfigFactory();
7
- return new require_EnvironmentConfigFactory.EnvironmentConfigFactory();
8
- }
9
- //#endregion
10
- exports.createConfigFactory = createConfigFactory;
11
-
12
- //# sourceMappingURL=ConfigFactory.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigFactory.cjs","names":["getStringFromEnv","FileConfigFactory","EnvironmentConfigFactory"],"sources":["../src/ConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n const configFile = getStringFromEnv('OTEL_CONFIG_FILE');\n if (configFile) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"],"mappings":";;;;AAUA,SAAgB,sBAAqC;CAEnD,KAAA,GADmBA,oBAAAA,iBAAAA,CAAiB,kBACvB,GACX,OAAO,IAAIC,0BAAAA,kBAAkB;CAE/B,OAAO,IAAIC,iCAAAA,yBAAyB;AACtC"}
@@ -1,6 +0,0 @@
1
- import { ConfigFactory } from "./IConfigFactory.cjs";
2
- //#region src/ConfigFactory.d.ts
3
- declare function createConfigFactory(): ConfigFactory;
4
- //#endregion
5
- export { createConfigFactory };
6
- //# sourceMappingURL=ConfigFactory.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigFactory.d.cts","names":[],"sources":["../src/ConfigFactory.d.ts"],"mappings":";;iBACwB,uBAAuB"}
@@ -1,6 +0,0 @@
1
- import { ConfigFactory } from "./IConfigFactory.mjs";
2
- //#region src/ConfigFactory.d.ts
3
- declare function createConfigFactory(): ConfigFactory;
4
- //#endregion
5
- export { createConfigFactory };
6
- //# sourceMappingURL=ConfigFactory.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigFactory.d.mts","names":[],"sources":["../src/ConfigFactory.d.ts"],"mappings":";;iBACwB,uBAAuB"}
@@ -1,12 +0,0 @@
1
- import { EnvironmentConfigFactory } from "./EnvironmentConfigFactory.mjs";
2
- import { FileConfigFactory } from "./FileConfigFactory.mjs";
3
- import { getStringFromEnv } from "@opentelemetry/core";
4
- //#region src/ConfigFactory.ts
5
- function createConfigFactory() {
6
- if (getStringFromEnv("OTEL_CONFIG_FILE")) return new FileConfigFactory();
7
- return new EnvironmentConfigFactory();
8
- }
9
- //#endregion
10
- export { createConfigFactory };
11
-
12
- //# sourceMappingURL=ConfigFactory.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigFactory.mjs","names":[],"sources":["../src/ConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n const configFile = getStringFromEnv('OTEL_CONFIG_FILE');\n if (configFile) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"],"mappings":";;;;AAUA,SAAgB,sBAAqC;CAEnD,IADmB,iBAAiB,kBACvB,GACX,OAAO,IAAI,kBAAkB;CAE/B,OAAO,IAAI,yBAAyB;AACtC"}
@@ -1,34 +0,0 @@
1
- //#region src/EnvDefinition.ts
2
- let SamplerType = /* @__PURE__ */ function(SamplerType) {
3
- SamplerType["AlwaysOn"] = "always_on";
4
- SamplerType["AlwaysOff"] = "always_off";
5
- SamplerType["TraceIdRatio"] = "traceidratio";
6
- SamplerType["ParentBasedAlwaysOn"] = "parentbased_always_on";
7
- SamplerType["ParentBasedAlwaysOff"] = "parentbased_always_off";
8
- SamplerType["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
9
- return SamplerType;
10
- }({});
11
- const ENV_DEFS = {
12
- OTEL_SDK_DISABLED: {
13
- key: "OTEL_SDK_DISABLED",
14
- type: "boolean",
15
- description: "Disable the SDK",
16
- defaultValue: false
17
- },
18
- OTEL_TRACES_SAMPLER: {
19
- key: "OTEL_TRACES_SAMPLER",
20
- type: "string",
21
- description: "Traces sampler",
22
- allowedValues: Object.values(SamplerType)
23
- },
24
- OTEL_TRACES_SAMPLER_ARG: {
25
- key: "OTEL_TRACES_SAMPLER_ARG",
26
- type: "string",
27
- description: "Traces sampler argument"
28
- }
29
- };
30
- //#endregion
31
- exports.ENV_DEFS = ENV_DEFS;
32
- exports.SamplerType = SamplerType;
33
-
34
- //# sourceMappingURL=EnvDefinition.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvDefinition.cjs","names":[],"sources":["../src/EnvDefinition.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { BooleanEnvVar, StringEnvVar } from './EnvReader';\n\nexport enum SamplerType {\n AlwaysOn = 'always_on',\n AlwaysOff = 'always_off',\n TraceIdRatio = 'traceidratio',\n ParentBasedAlwaysOn = 'parentbased_always_on',\n ParentBasedAlwaysOff = 'parentbased_always_off',\n ParentBasedTraceIdRatio = 'parentbased_traceidratio',\n}\n\nexport const ENV_DEFS = {\n OTEL_SDK_DISABLED: {\n key: 'OTEL_SDK_DISABLED',\n type: 'boolean',\n description: 'Disable the SDK',\n defaultValue: false,\n } as BooleanEnvVar,\n\n OTEL_TRACES_SAMPLER: {\n key: 'OTEL_TRACES_SAMPLER',\n type: 'string',\n description: 'Traces sampler',\n allowedValues: Object.values(SamplerType),\n } as StringEnvVar,\n\n OTEL_TRACES_SAMPLER_ARG: {\n key: 'OTEL_TRACES_SAMPLER_ARG',\n type: 'string',\n description: 'Traces sampler argument',\n } as StringEnvVar,\n} as const;\n"],"mappings":";AAOA,IAAY,cAAL,yBAAA,aAAA;CACL,YAAA,cAAA;CACA,YAAA,eAAA;CACA,YAAA,kBAAA;CACA,YAAA,yBAAA;CACA,YAAA,0BAAA;CACA,YAAA,6BAAA;;AACF,EAAA,CAAA,CAAA;AAEA,MAAa,WAAW;CACtB,mBAAmB;EACjB,KAAK;EACL,MAAM;EACN,aAAa;EACb,cAAc;CAChB;CAEA,qBAAqB;EACnB,KAAK;EACL,MAAM;EACN,aAAa;EACb,eAAe,OAAO,OAAO,WAAW;CAC1C;CAEA,yBAAyB;EACvB,KAAK;EACL,MAAM;EACN,aAAa;CACf;AACF"}
@@ -1,33 +0,0 @@
1
- //#region src/EnvDefinition.ts
2
- let SamplerType = /* @__PURE__ */ function(SamplerType) {
3
- SamplerType["AlwaysOn"] = "always_on";
4
- SamplerType["AlwaysOff"] = "always_off";
5
- SamplerType["TraceIdRatio"] = "traceidratio";
6
- SamplerType["ParentBasedAlwaysOn"] = "parentbased_always_on";
7
- SamplerType["ParentBasedAlwaysOff"] = "parentbased_always_off";
8
- SamplerType["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
9
- return SamplerType;
10
- }({});
11
- const ENV_DEFS = {
12
- OTEL_SDK_DISABLED: {
13
- key: "OTEL_SDK_DISABLED",
14
- type: "boolean",
15
- description: "Disable the SDK",
16
- defaultValue: false
17
- },
18
- OTEL_TRACES_SAMPLER: {
19
- key: "OTEL_TRACES_SAMPLER",
20
- type: "string",
21
- description: "Traces sampler",
22
- allowedValues: Object.values(SamplerType)
23
- },
24
- OTEL_TRACES_SAMPLER_ARG: {
25
- key: "OTEL_TRACES_SAMPLER_ARG",
26
- type: "string",
27
- description: "Traces sampler argument"
28
- }
29
- };
30
- //#endregion
31
- export { ENV_DEFS, SamplerType };
32
-
33
- //# sourceMappingURL=EnvDefinition.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvDefinition.mjs","names":[],"sources":["../src/EnvDefinition.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { BooleanEnvVar, StringEnvVar } from './EnvReader';\n\nexport enum SamplerType {\n AlwaysOn = 'always_on',\n AlwaysOff = 'always_off',\n TraceIdRatio = 'traceidratio',\n ParentBasedAlwaysOn = 'parentbased_always_on',\n ParentBasedAlwaysOff = 'parentbased_always_off',\n ParentBasedTraceIdRatio = 'parentbased_traceidratio',\n}\n\nexport const ENV_DEFS = {\n OTEL_SDK_DISABLED: {\n key: 'OTEL_SDK_DISABLED',\n type: 'boolean',\n description: 'Disable the SDK',\n defaultValue: false,\n } as BooleanEnvVar,\n\n OTEL_TRACES_SAMPLER: {\n key: 'OTEL_TRACES_SAMPLER',\n type: 'string',\n description: 'Traces sampler',\n allowedValues: Object.values(SamplerType),\n } as StringEnvVar,\n\n OTEL_TRACES_SAMPLER_ARG: {\n key: 'OTEL_TRACES_SAMPLER_ARG',\n type: 'string',\n description: 'Traces sampler argument',\n } as StringEnvVar,\n} as const;\n"],"mappings":";AAOA,IAAY,cAAL,yBAAA,aAAA;CACL,YAAA,cAAA;CACA,YAAA,eAAA;CACA,YAAA,kBAAA;CACA,YAAA,yBAAA;CACA,YAAA,0BAAA;CACA,YAAA,6BAAA;;AACF,EAAA,CAAA,CAAA;AAEA,MAAa,WAAW;CACtB,mBAAmB;EACjB,KAAK;EACL,MAAM;EACN,aAAa;EACb,cAAc;CAChB;CAEA,qBAAqB;EACnB,KAAK;EACL,MAAM;EACN,aAAa;EACb,eAAe,OAAO,OAAO,WAAW;CAC1C;CAEA,yBAAyB;EACvB,KAAK;EACL,MAAM;EACN,aAAa;CACf;AACF"}
@@ -1,37 +0,0 @@
1
- const require_EnvDefinition = require("./EnvDefinition.cjs");
2
- let _opentelemetry_core = require("@opentelemetry/core");
3
- let _opentelemetry_api = require("@opentelemetry/api");
4
- //#region src/EnvReader.ts
5
- function readStringEnv(def) {
6
- const value = (0, _opentelemetry_core.getStringFromEnv)(def.key);
7
- if (value == null) return def.defaultValue;
8
- if (def.allowedValues && !def.allowedValues.includes(value)) {
9
- _opentelemetry_api.diag.warn(`Invalid value "${value}" for ${def.description} (env: ${def.key}). Expected one of: ${def.allowedValues.join(", ")}. ` + (def.defaultValue != null ? `Falling back to "${def.defaultValue}".` : "Value will be ignored."));
10
- return def.defaultValue;
11
- }
12
- return value;
13
- }
14
- function readBooleanEnv(def) {
15
- const raw = (0, _opentelemetry_core.getStringFromEnv)(def.key)?.trim().toLowerCase();
16
- if (raw == null || raw === "") return def.defaultValue;
17
- if (raw === "true") return true;
18
- if (raw === "false") return false;
19
- _opentelemetry_api.diag.warn(`Invalid value "${raw}" for ${def.description} (env: ${def.key}). Expected 'true' or 'false'. Falling back to "${def.defaultValue}".`);
20
- return def.defaultValue;
21
- }
22
- function readEnvVar(def) {
23
- switch (def.type) {
24
- case "string": return readStringEnv(def);
25
- case "boolean": return readBooleanEnv(def);
26
- }
27
- }
28
- function readAllEnvVars() {
29
- const result = {};
30
- for (const [name, def] of Object.entries(require_EnvDefinition.ENV_DEFS)) result[name] = readEnvVar(def);
31
- return result;
32
- }
33
- //#endregion
34
- exports.readAllEnvVars = readAllEnvVars;
35
- exports.readEnvVar = readEnvVar;
36
-
37
- //# sourceMappingURL=EnvReader.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvReader.cjs","names":["getStringFromEnv","ENV_DEFS"],"sources":["../src/EnvReader.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport { ENV_DEFS } from './EnvDefinition';\n\n/** Base definition shared by all env var types. */\ninterface EnvVarBase<T> {\n key: string;\n description: string;\n defaultValue?: T;\n}\n\nexport interface StringEnvVar extends EnvVarBase<string> {\n type: 'string';\n allowedValues?: readonly string[];\n}\n\nexport interface BooleanEnvVar extends EnvVarBase<boolean> {\n type: 'boolean';\n defaultValue: boolean;\n}\n\nexport type EnvVarDefinition = StringEnvVar | BooleanEnvVar;\n\ntype ResolvedType<D extends EnvVarDefinition> = D extends StringEnvVar\n ? string | undefined\n : D extends BooleanEnvVar\n ? boolean\n : never;\n\nfunction readStringEnv(def: StringEnvVar): string | undefined {\n const value = getStringFromEnv(def.key);\n if (value == null) {\n return def.defaultValue;\n }\n if (def.allowedValues && !def.allowedValues.includes(value)) {\n diag.warn(\n `Invalid value \"${value}\" for ${def.description} (env: ${def.key}). ` +\n `Expected one of: ${def.allowedValues.join(', ')}. ` +\n (def.defaultValue != null\n ? `Falling back to \"${def.defaultValue}\".`\n : 'Value will be ignored.')\n );\n return def.defaultValue;\n }\n return value;\n}\n\nfunction readBooleanEnv(def: BooleanEnvVar): boolean {\n const raw = getStringFromEnv(def.key)?.trim().toLowerCase();\n // Handle the case where the env var is not set (no warning).\n if (raw == null || raw === '') {\n return def.defaultValue;\n }\n if (raw === 'true') {\n return true;\n }\n if (raw === 'false') {\n return false;\n }\n // If set to an unrecognized value, warn and fall back to the default.\n diag.warn(\n `Invalid value \"${raw}\" for ${def.description} (env: ${def.key}). ` +\n `Expected 'true' or 'false'. Falling back to \"${def.defaultValue}\".`\n );\n return def.defaultValue;\n}\n\nexport function readEnvVar<D extends EnvVarDefinition>(\n def: D\n): ResolvedType<D> {\n switch (def.type) {\n case 'string':\n return readStringEnv(def) as ResolvedType<D>;\n case 'boolean':\n return readBooleanEnv(def) as ResolvedType<D>;\n }\n}\n\nexport type EnvValues = {\n [K in keyof typeof ENV_DEFS]: ResolvedType<(typeof ENV_DEFS)[K]>;\n};\n\nexport function readAllEnvVars(): EnvValues {\n const result = {} as Record<string, unknown>;\n for (const [name, def] of Object.entries(ENV_DEFS)) {\n result[name] = readEnvVar(def);\n }\n return result as EnvValues;\n}\n"],"mappings":";;;;AAkCA,SAAS,cAAc,KAAuC;CAC5D,MAAM,SAAA,GAAQA,oBAAAA,iBAAAA,CAAiB,IAAI,GAAG;CACtC,IAAI,SAAS,MACX,OAAO,IAAI;CAEb,IAAI,IAAI,iBAAiB,CAAC,IAAI,cAAc,SAAS,KAAK,GAAG;EAC3D,mBAAA,KAAK,KACH,kBAAkB,MAAM,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,sBAC3C,IAAI,cAAc,KAAK,IAAI,EAAE,OAChD,IAAI,gBAAgB,OACjB,oBAAoB,IAAI,aAAa,MACrC,yBACR;EACA,OAAO,IAAI;CACb;CACA,OAAO;AACT;AAEA,SAAS,eAAe,KAA6B;CACnD,MAAM,OAAA,GAAMA,oBAAAA,iBAAAA,CAAiB,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;CAE1D,IAAI,OAAO,QAAQ,QAAQ,IACzB,OAAO,IAAI;CAEb,IAAI,QAAQ,QACV,OAAO;CAET,IAAI,QAAQ,SACV,OAAO;CAGT,mBAAA,KAAK,KACH,kBAAkB,IAAI,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,kDACb,IAAI,aAAa,GACrE;CACA,OAAO,IAAI;AACb;AAEA,SAAgB,WACd,KACiB;CACjB,QAAQ,IAAI,MAAZ;EACE,KAAK,UACH,OAAO,cAAc,GAAG;EAC1B,KAAK,WACH,OAAO,eAAe,GAAG;CAC7B;AACF;AAMA,SAAgB,iBAA4B;CAC1C,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQC,sBAAAA,QAAQ,GAC/C,OAAO,QAAQ,WAAW,GAAG;CAE/B,OAAO;AACT"}
@@ -1,36 +0,0 @@
1
- import { ENV_DEFS } from "./EnvDefinition.mjs";
2
- import { getStringFromEnv } from "@opentelemetry/core";
3
- import { diag } from "@opentelemetry/api";
4
- //#region src/EnvReader.ts
5
- function readStringEnv(def) {
6
- const value = getStringFromEnv(def.key);
7
- if (value == null) return def.defaultValue;
8
- if (def.allowedValues && !def.allowedValues.includes(value)) {
9
- diag.warn(`Invalid value "${value}" for ${def.description} (env: ${def.key}). Expected one of: ${def.allowedValues.join(", ")}. ` + (def.defaultValue != null ? `Falling back to "${def.defaultValue}".` : "Value will be ignored."));
10
- return def.defaultValue;
11
- }
12
- return value;
13
- }
14
- function readBooleanEnv(def) {
15
- const raw = getStringFromEnv(def.key)?.trim().toLowerCase();
16
- if (raw == null || raw === "") return def.defaultValue;
17
- if (raw === "true") return true;
18
- if (raw === "false") return false;
19
- diag.warn(`Invalid value "${raw}" for ${def.description} (env: ${def.key}). Expected 'true' or 'false'. Falling back to "${def.defaultValue}".`);
20
- return def.defaultValue;
21
- }
22
- function readEnvVar(def) {
23
- switch (def.type) {
24
- case "string": return readStringEnv(def);
25
- case "boolean": return readBooleanEnv(def);
26
- }
27
- }
28
- function readAllEnvVars() {
29
- const result = {};
30
- for (const [name, def] of Object.entries(ENV_DEFS)) result[name] = readEnvVar(def);
31
- return result;
32
- }
33
- //#endregion
34
- export { readAllEnvVars, readEnvVar };
35
-
36
- //# sourceMappingURL=EnvReader.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvReader.mjs","names":[],"sources":["../src/EnvReader.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport { ENV_DEFS } from './EnvDefinition';\n\n/** Base definition shared by all env var types. */\ninterface EnvVarBase<T> {\n key: string;\n description: string;\n defaultValue?: T;\n}\n\nexport interface StringEnvVar extends EnvVarBase<string> {\n type: 'string';\n allowedValues?: readonly string[];\n}\n\nexport interface BooleanEnvVar extends EnvVarBase<boolean> {\n type: 'boolean';\n defaultValue: boolean;\n}\n\nexport type EnvVarDefinition = StringEnvVar | BooleanEnvVar;\n\ntype ResolvedType<D extends EnvVarDefinition> = D extends StringEnvVar\n ? string | undefined\n : D extends BooleanEnvVar\n ? boolean\n : never;\n\nfunction readStringEnv(def: StringEnvVar): string | undefined {\n const value = getStringFromEnv(def.key);\n if (value == null) {\n return def.defaultValue;\n }\n if (def.allowedValues && !def.allowedValues.includes(value)) {\n diag.warn(\n `Invalid value \"${value}\" for ${def.description} (env: ${def.key}). ` +\n `Expected one of: ${def.allowedValues.join(', ')}. ` +\n (def.defaultValue != null\n ? `Falling back to \"${def.defaultValue}\".`\n : 'Value will be ignored.')\n );\n return def.defaultValue;\n }\n return value;\n}\n\nfunction readBooleanEnv(def: BooleanEnvVar): boolean {\n const raw = getStringFromEnv(def.key)?.trim().toLowerCase();\n // Handle the case where the env var is not set (no warning).\n if (raw == null || raw === '') {\n return def.defaultValue;\n }\n if (raw === 'true') {\n return true;\n }\n if (raw === 'false') {\n return false;\n }\n // If set to an unrecognized value, warn and fall back to the default.\n diag.warn(\n `Invalid value \"${raw}\" for ${def.description} (env: ${def.key}). ` +\n `Expected 'true' or 'false'. Falling back to \"${def.defaultValue}\".`\n );\n return def.defaultValue;\n}\n\nexport function readEnvVar<D extends EnvVarDefinition>(\n def: D\n): ResolvedType<D> {\n switch (def.type) {\n case 'string':\n return readStringEnv(def) as ResolvedType<D>;\n case 'boolean':\n return readBooleanEnv(def) as ResolvedType<D>;\n }\n}\n\nexport type EnvValues = {\n [K in keyof typeof ENV_DEFS]: ResolvedType<(typeof ENV_DEFS)[K]>;\n};\n\nexport function readAllEnvVars(): EnvValues {\n const result = {} as Record<string, unknown>;\n for (const [name, def] of Object.entries(ENV_DEFS)) {\n result[name] = readEnvVar(def);\n }\n return result as EnvValues;\n}\n"],"mappings":";;;;AAkCA,SAAS,cAAc,KAAuC;CAC5D,MAAM,QAAQ,iBAAiB,IAAI,GAAG;CACtC,IAAI,SAAS,MACX,OAAO,IAAI;CAEb,IAAI,IAAI,iBAAiB,CAAC,IAAI,cAAc,SAAS,KAAK,GAAG;EAC3D,KAAK,KACH,kBAAkB,MAAM,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,sBAC3C,IAAI,cAAc,KAAK,IAAI,EAAE,OAChD,IAAI,gBAAgB,OACjB,oBAAoB,IAAI,aAAa,MACrC,yBACR;EACA,OAAO,IAAI;CACb;CACA,OAAO;AACT;AAEA,SAAS,eAAe,KAA6B;CACnD,MAAM,MAAM,iBAAiB,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;CAE1D,IAAI,OAAO,QAAQ,QAAQ,IACzB,OAAO,IAAI;CAEb,IAAI,QAAQ,QACV,OAAO;CAET,IAAI,QAAQ,SACV,OAAO;CAGT,KAAK,KACH,kBAAkB,IAAI,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,kDACb,IAAI,aAAa,GACrE;CACA,OAAO,IAAI;AACb;AAEA,SAAgB,WACd,KACiB;CACjB,QAAQ,IAAI,MAAZ;EACE,KAAK,UACH,OAAO,cAAc,GAAG;EAC1B,KAAK,WACH,OAAO,eAAe,GAAG;CAC7B;AACF;AAMA,SAAgB,iBAA4B;CAC1C,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQ,QAAQ,GAC/C,OAAO,QAAQ,WAAW,GAAG;CAE/B,OAAO;AACT"}