@avijs/core 0.5.1 → 0.5.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACxD,2EAA2E;IAC3E,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACpD;AAED,2FAA2F;AAC3F,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACvD,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,wEAAwE;IACxE,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB;AAID,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAE3E;AAED,+FAA+F;AAC/F,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;gBAArE,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,EAC9E,IAAI,EAAE,MAAM;CAOf;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EACrD,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,aAAkB,GAC1B,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAmC7B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACxD,2EAA2E;IAC3E,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACpD;AAED,2FAA2F;AAC3F,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACvD,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,wEAAwE;IACxE,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB;AAID,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAE3E;AAED,+FAA+F;AAC/F,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;gBAArE,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,EAC9E,IAAI,EAAE,MAAM;CAOf;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EACrD,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,aAAkB,GAC1B,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA2C7B"}
package/dist/config.js CHANGED
@@ -34,7 +34,12 @@ export function defineConfig(schema, options = {}) {
34
34
  if (value !== undefined)
35
35
  env[key] = value;
36
36
  }
37
- const result = await schema['~standard'].validate(env);
37
+ const result = await Promise.resolve()
38
+ .then(() => schema['~standard'].validate(env))
39
+ .catch(() => {
40
+ // A throwing transform's message may quote the value: not kept, not even as cause.
41
+ throw new ConfigError([{ key: '(config)', message: 'the schema threw while reading the variables' }], name);
42
+ });
38
43
  if (!result.issues)
39
44
  return result.value;
40
45
  throw new ConfigError(result.issues.map((issue) => {
@@ -62,8 +67,11 @@ async function readEnvFile(path, required) {
62
67
  }
63
68
  return parseEnv(text);
64
69
  }
65
- // Some libraries quote the received value in their messages; config values can be secrets.
70
+ // Libraries quote the received value in messages, often after a transform changed it, and config
71
+ // values can be secrets. Every quoted text goes, and the raw value wherever it still appears.
66
72
  function redact(message, value) {
67
- return value ? message.replaceAll(value, '[redacted]') : message;
73
+ const unquoted = message.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, '"[redacted]"');
74
+ // Very short values would match inside other words and numbers.
75
+ return value && value.length >= 4 ? unquoted.replaceAll(value, '[redacted]') : unquoted;
68
76
  }
69
77
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avijs/core",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Avi.js public API: application factory, modules and controllers.",
5
5
  "keywords": [
6
6
  "avi",
@@ -43,9 +43,9 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@avijs/di": "0.5.1",
47
- "@avijs/http": "0.5.1",
48
- "@avijs/validation": "0.5.1"
46
+ "@avijs/di": "0.5.3",
47
+ "@avijs/http": "0.5.3",
48
+ "@avijs/validation": "0.5.3"
49
49
  },
50
50
  "devDependencies": {
51
51
  "valibot": "1.5.0"
package/src/config.ts CHANGED
@@ -68,7 +68,15 @@ export function defineConfig<S extends StandardSchemaV1>(
68
68
  if (value !== undefined) env[key] = value;
69
69
  }
70
70
 
71
- const result = await schema['~standard'].validate(env);
71
+ const result = await Promise.resolve()
72
+ .then(() => schema['~standard'].validate(env))
73
+ .catch(() => {
74
+ // A throwing transform's message may quote the value: not kept, not even as cause.
75
+ throw new ConfigError(
76
+ [{ key: '(config)', message: 'the schema threw while reading the variables' }],
77
+ name,
78
+ );
79
+ });
72
80
  if (!result.issues) return result.value;
73
81
  throw new ConfigError(
74
82
  result.issues.map((issue) => {
@@ -101,7 +109,10 @@ async function readEnvFile(path: string, required: boolean): Promise<Record<stri
101
109
  return parseEnv(text) as Record<string, string>;
102
110
  }
103
111
 
104
- // Some libraries quote the received value in their messages; config values can be secrets.
112
+ // Libraries quote the received value in messages, often after a transform changed it, and config
113
+ // values can be secrets. Every quoted text goes, and the raw value wherever it still appears.
105
114
  function redact(message: string, value: string | undefined): string {
106
- return value ? message.replaceAll(value, '[redacted]') : message;
115
+ const unquoted = message.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, '"[redacted]"');
116
+ // Very short values would match inside other words and numbers.
117
+ return value && value.length >= 4 ? unquoted.replaceAll(value, '[redacted]') : unquoted;
107
118
  }