@map-colonies/config 2.0.0 → 2.2.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.
package/README.md CHANGED
@@ -147,6 +147,8 @@ The package supports merging configurations from multiple sources (local, remote
147
147
  ### Environment Variables
148
148
 
149
149
  Configuration options can be overridden by setting the corresponding environment variables as described in schema using the `x-env-value` key.
150
+ If an environment variable is set, it takes precedence over the value from the remote or local configuration.,
151
+ If the value of the `x-env-format` key is `json`, the environment variable value is parsed as JSON.
150
152
 
151
153
  ### Merging Configurations
152
154
 
package/dist/config.js CHANGED
@@ -7,7 +7,7 @@ exports.config = config;
7
7
  const deepmerge_1 = __importDefault(require("deepmerge"));
8
8
  const symbol_1 = require("@map-colonies/schemas/build/schemas/symbol");
9
9
  const config_1 = __importDefault(require("config"));
10
- const semver_1 = __importDefault(require("semver"));
10
+ const semver_1 = require("semver");
11
11
  const lodash_1 = __importDefault(require("lodash"));
12
12
  const env_1 = require("./env");
13
13
  const schemas_1 = require("./schemas");
@@ -41,7 +41,7 @@ async function config(options) {
41
41
  debug('handling fetching remote data');
42
42
  // check if the server is using an older version of the schemas package
43
43
  const capabilitiesResponse = await (0, httpClient_1.getServerCapabilities)();
44
- if (ignoreServerIsOlderVersionError !== true && semver_1.default.gt(constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION, capabilitiesResponse.schemasPackageVersion)) {
44
+ if (ignoreServerIsOlderVersionError !== true && (0, semver_1.gt)(constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION, capabilitiesResponse.schemasPackageVersion)) {
45
45
  debug('server is using an older version of the schemas package. local: %s, remote: %s', constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION, capabilitiesResponse.schemasPackageVersion);
46
46
  throw (0, errors_1.createConfigError)('schemasPackageVersionMismatchError', 'The server is using an older version of the schemas package. Please update the server to the latest version or ignore this error by setting the CONFIG_IGNORE_SERVER_IS_OLDER_VERSION_ERROR environment variable.', {
47
47
  localPackageVersion: constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION,
@@ -66,7 +66,6 @@ async function config(options) {
66
66
  const envConfig = (0, env_1.getEnvValues)(dereferencedSchema);
67
67
  debug('env config: %j', envConfig);
68
68
  // merge all the configs into one object with the following priority: localConfig < remoteConfig < envConfig
69
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
70
69
  const mergedConfig = deepmerge_1.default.all([localConfig, remoteConfig, envConfig], { arrayMerge });
71
70
  debug('merged config: %j', mergedConfig);
72
71
  // validate the merged config
@@ -80,7 +79,6 @@ async function config(options) {
80
79
  (0, helpers_1.deepFreeze)(validatedConfig);
81
80
  function get(path) {
82
81
  debug('get called with path: %s', path);
83
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
84
82
  return lodash_1.default.get(validatedConfig, path);
85
83
  }
86
84
  function getAll() {
@@ -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":";;;;;AA8BA,wBAwGC;AAtID,0DAAkC;AAClC,uEAAwE;AACxE,oDAA+B;AAC/B,mCAA4B;AAE5B,oDAAmD;AACnD,+BAAqC;AAErC,uCAAuC;AACvC,uCAA0D;AAC1D,6CAAsE;AACtE,2CAA2D;AAC3D,yCAA4C;AAC5C,2CAA4D;AAC5D,qCAA6C;AAC7C,uCAA2E;AAC3E,6CAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,MAAM,UAAU,GAAoC,CAAC,gBAAgB,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC;AAEnG;;;;;;GAMG;AACI,KAAK,UAAU,MAAM,CAC1B,OAAyB;IAEzB,yBAAyB;IACzB,KAAK,CAAC,gCAAgC,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAC/E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,+BAA+B,EAAE,GAAG,IAAA,2BAAiB,EAAC,kBAAkB,CAAC,CAAC;IAEpH,IAAI,YAAY,GAAe,EAAE,CAAC;IAElC,IAAI,oBAAoB,GAAuB,SAAS,CAAC;IACzD,uBAAuB;IACvB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACvC,uEAAuE;QACvE,MAAM,oBAAoB,GAAG,MAAM,IAAA,kCAAqB,GAAE,CAAC;QAE3D,IAAI,+BAA+B,KAAK,IAAI,IAAI,IAAA,WAAE,EAAC,yCAA6B,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC9H,KAAK,CACH,gFAAgF,EAChF,yCAA6B,EAC7B,oBAAoB,CAAC,qBAAqB,CAC3C,CAAC;YACF,MAAM,IAAA,0BAAiB,EACrB,oCAAoC,EACpC,mNAAmN,EACnN;gBACE,mBAAmB,EAAE,yCAA6B;gBAClD,oBAAoB,EAAE,oBAAoB,CAAC,qBAAqB;aACjE,CACF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,oBAAoB,GAAG,MAAM,IAAA,4BAAe,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAElE,IAAI,oBAAoB,CAAC,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;YACrD,KAAK,CAAC,gDAAgD,EAAE,UAAU,CAAC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACvG,MAAM,IAAA,0BAAiB,EACrB,4BAA4B,EAC5B,+FAA+F,EAC/F;gBACE,kBAAkB,EAAE,UAAU,CAAC,GAAG;gBAClC,mBAAmB,EAAE,oBAAoB,CAAC,QAAQ;aACnD,CACF,CAAC;QACJ,CAAC;QAED,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,kBAAkB,GAAG,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,gBAAS,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAA+B,CAAC;IAC1G,KAAK,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,kBAAkB,CAAC,CAAC;IACnD,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEnC,4GAA4G;IAC5G,MAAM,YAAY,GAAG,mBAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3F,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAA,oBAAQ,EAAC,8BAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;IACjG,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAA,0BAAiB,EAAC,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnC,uEAAuE;IACvE,IAAA,oBAAU,EAAC,eAAe,CAAC,CAAC;IAE5B,SAAS,GAAG,CAAuB,IAAW;QAC5C,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,gBAAM,CAAC,GAAG,CAAC,eAAyD,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,SAAS,MAAM;QACb,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,SAAS,cAAc;QACrB,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/B,OAAO;YACL,WAAW;YACX,MAAM,EAAE,YAAY;YACpB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB;QACzB,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnC,OAAO,IAAA,oBAAU,GAAE,CAAC;IACtB,CAAC;IAED,SAAS,iBAAiB,CAAC,QAAkB;QAC3C,IAAA,2BAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAChF,CAAC"}
package/dist/constants.js CHANGED
@@ -11,5 +11,5 @@ exports.LOCAL_SCHEMAS_PACKAGE_VERSION = (0, read_pkg_1.readPackageJsonSync)(node
11
11
  exports.PACKAGE_NAME = (0, read_pkg_1.readPackageJsonSync)('package.json').name ?? 'package-name-not-defined';
12
12
  exports.SCHEMA_DOMAIN = 'https://mapcolonies.com/';
13
13
  exports.SCHEMAS_PACKAGE_RESOLVED_PATH = require.resolve('@map-colonies/schemas');
14
- exports.SCHEMA_BASE_PATH = exports.SCHEMAS_PACKAGE_RESOLVED_PATH.substring(0, exports.SCHEMAS_PACKAGE_RESOLVED_PATH.lastIndexOf('/'));
14
+ exports.SCHEMA_BASE_PATH = exports.SCHEMAS_PACKAGE_RESOLVED_PATH.substring(0, exports.SCHEMAS_PACKAGE_RESOLVED_PATH.lastIndexOf(node_path_1.default.sep));
15
15
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,qDAA6D;AAE7D,MAAM,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACxI,QAAA,6BAA6B,GAAG,IAAA,8BAAmB,EAAC,mBAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC,CAAC,OAAiB,CAAC;AAC9H,QAAA,YAAY,GAAG,IAAA,8BAAmB,EAAC,cAAc,CAAC,CAAC,IAAI,IAAI,0BAA0B,CAAC;AAEtF,QAAA,aAAa,GAAG,0BAA0B,CAAC;AAE3C,QAAA,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACzE,QAAA,gBAAgB,GAAG,qCAA6B,CAAC,SAAS,CAAC,CAAC,EAAE,qCAA6B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,qDAA6D;AAE7D,MAAM,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACxI,QAAA,6BAA6B,GAAG,IAAA,8BAAmB,EAAC,mBAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC,CAAC,OAAiB,CAAC;AAC9H,QAAA,YAAY,GAAG,IAAA,8BAAmB,EAAC,cAAc,CAAC,CAAC,IAAI,IAAI,0BAA0B,CAAC;AAEtF,QAAA,aAAa,GAAG,0BAA0B,CAAC;AAE3C,QAAA,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACzE,QAAA,gBAAgB,GAAG,qCAA6B,CAAC,SAAS,CAAC,CAAC,EAAE,qCAA6B,CAAC,WAAW,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,CAAC"}
package/dist/env.js CHANGED
@@ -11,14 +11,24 @@ const schemaCompositionKeys = ['oneOf', 'anyOf', 'allOf'];
11
11
  function parseSchemaEnv(schema) {
12
12
  debug('parsing schema for env values');
13
13
  const fromEnv = {};
14
- function handlePrimitive(schema, type, path) {
15
- debug('handling primitive %s at path %s', type, path);
16
- // eslint-disable-next-line @typescript-eslint/naming-convention
17
- const xFrom = schema['x-env-value'];
18
- debug('value of xFrom: %s as path %s', xFrom, path);
19
- if (xFrom !== undefined) {
20
- fromEnv[xFrom] = {
21
- type,
14
+ function handlePossibleEnvValue(schema, path) {
15
+ debug('handling possible env value at path %s', path);
16
+ const xEnvValueFrom = schema['x-env-value'];
17
+ const isPrimitive = ['string', 'number', 'integer', 'boolean', 'null'].includes(schema.type);
18
+ const isFormatJson = schema['x-env-format'] === 'json';
19
+ if (xEnvValueFrom === undefined) {
20
+ return;
21
+ }
22
+ if (isFormatJson) {
23
+ fromEnv[xEnvValueFrom] = {
24
+ type: 'json',
25
+ path,
26
+ };
27
+ return;
28
+ }
29
+ if (isPrimitive) {
30
+ fromEnv[xEnvValueFrom] = {
31
+ type: schema.type,
22
32
  path,
23
33
  };
24
34
  }
@@ -26,9 +36,7 @@ function parseSchemaEnv(schema) {
26
36
  function iterateOverSchemaObject(schema, path) {
27
37
  debug('iterating over schema object at path %s', path);
28
38
  const type = schema.type;
29
- if (type === 'number' || type === 'string' || type === 'boolean' || type === 'integer' || type === 'null') {
30
- return handlePrimitive(schema, type, path);
31
- }
39
+ handlePossibleEnvValue(schema, path);
32
40
  if (type === 'array' || type === 'any') {
33
41
  debug('array or any type at path %s', path);
34
42
  return;
@@ -78,9 +86,19 @@ function getEnvValues(schema) {
78
86
  case 'null':
79
87
  value = null;
80
88
  break;
89
+ case 'string':
90
+ value = unparsedValue;
91
+ break;
92
+ case 'json':
93
+ value = JSON.parse(unparsedValue);
94
+ break;
81
95
  default:
82
96
  value = unparsedValue;
83
97
  }
98
+ if (details.path === '') {
99
+ Object.assign(res, value);
100
+ continue;
101
+ }
84
102
  lodash_1.default.set(res, details.path, value);
85
103
  }
86
104
  }
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import $RefParser, { JSONSchema } from '@apidevtools/json-schema-ref-parser';
1
+ import { JSONSchema, $RefParser } from '@apidevtools/json-schema-ref-parser';
2
2
  declare const refParser: $RefParser<JSONSchema, {
3
3
  parse?: {
4
4
  [x: string]: boolean | {
package/dist/schemas.js CHANGED
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.loadSchema = loadSchema;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
- const json_schema_ref_parser_1 = __importDefault(require("@apidevtools/json-schema-ref-parser"));
9
+ const json_schema_ref_parser_1 = require("@apidevtools/json-schema-ref-parser");
10
10
  const constants_1 = require("./constants");
11
11
  const debug_1 = require("./utils/debug");
12
12
  const errors_1 = require("./errors");
13
13
  const debug = (0, debug_1.createDebug)('schemas');
14
- const refParser = new json_schema_ref_parser_1.default();
14
+ const refParser = new json_schema_ref_parser_1.$RefParser();
15
15
  function loadSpecificSchema(relativePath) {
16
16
  debug('loading specific schema at path %s', relativePath);
17
17
  const fullPath = node_path_1.default.join(constants_1.SCHEMA_BASE_PATH, relativePath + '.schema.json');
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":";;;;;AA2BA,gCAqBC;AAhDD,0DAA6B;AAC7B,sDAAyB;AACzB,iGAA6E;AAC7E,2CAA8D;AAC9D,yCAA4C;AAC5C,qCAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAG,IAAI,gCAAU,EAAE,CAAC;AAEnC,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,KAAK,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,4BAAgB,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;IAE5E,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAA,0BAAiB,EAAC,qBAAqB,EAAE,0BAA0B,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAe,CAAC;IAE1F,qFAAqF;IACrF,OAAO,MAAM,CAAC,GAAG,CAAC;IAElB,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAkB;IACjD,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;QAC7D,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;QAChC,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC,IAAsD,EAAE,EAAE;oBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,MAAM,IAAA,0BAAiB,EAAC,qBAAqB,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtG,CAAC;oBAED,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;aACF;SACF;KACF,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":";;;;;AA2BA,gCAqBC;AAhDD,0DAA6B;AAC7B,sDAAyB;AACzB,gFAA6E;AAC7E,2CAA8D;AAC9D,yCAA4C;AAC5C,qCAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;AAErC,MAAM,SAAS,GAAG,IAAI,mCAAU,EAAE,CAAC;AAEnC,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,KAAK,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,4BAAgB,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;IAE5E,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAA,0BAAiB,EAAC,qBAAqB,EAAE,0BAA0B,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAe,CAAC;IAE1F,qFAAqF;IACrF,OAAO,MAAM,CAAC,GAAG,CAAC;IAElB,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAkB;IACjD,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;QAC7D,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;QAChC,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC,IAAsD,EAAE,EAAE;oBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,MAAM,IAAA,0BAAiB,EAAC,qBAAqB,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtG,CAAC;oBAED,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;aACF;SACF;KACF,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -6,7 +6,7 @@ type Prettify<T> = {
6
6
  } & {};
7
7
  export type EnvType = 'number' | 'string' | 'boolean' | 'integer' | 'null';
8
8
  export interface EnvDetails {
9
- type: EnvType;
9
+ type: EnvType | 'json';
10
10
  path: string;
11
11
  }
12
12
  export type EnvMap = Record<string, EnvDetails>;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,uEAAwE;AAwF3D,QAAA,aAAa,GAAgC;IACxD,QAAQ,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC;IACtD,oBAAoB,EAAE,KAAK;IAC3B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;aAChC;SACF;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,+BAA+B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzE;CACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,uEAAwE;AAuF3D,QAAA,aAAa,GAAgC;IACxD,QAAQ,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC;IACtD,oBAAoB,EAAE,KAAK;IAC3B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;aAChC;SACF;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,+BAA+B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzE;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
- import Ajv, { SchemaObject } from 'ajv/dist/2019';
1
+ import ajv, { SchemaObject } from 'ajv/dist/2019';
2
2
  import { ValidationError } from '@apideck/better-ajv-errors';
3
3
  declare const ajvConfigValidator: import("ajv/dist/core").default;
4
4
  export { ajvConfigValidator };
5
- export declare const ajvOptionsValidator: Ajv;
6
- export declare function validate<T>(ajv: Ajv, schema: SchemaObject, data: unknown): [ValidationError[], undefined] | [undefined, T];
5
+ export declare const ajvOptionsValidator: ajv;
6
+ export declare function validate<T>(ajv: ajv, schema: SchemaObject, data: unknown): [ValidationError[], undefined] | [undefined, T];
package/dist/validator.js CHANGED
@@ -18,10 +18,29 @@ const ajvConfigValidator = (0, ajv_formats_1.default)(new _2019_1.default({
18
18
  allErrors: true,
19
19
  verbose: true,
20
20
  discriminator: true,
21
- keywords: ['x-env-value'],
21
+ keywords: ['x-env-value', 'x-env-format'],
22
22
  }));
23
23
  exports.ajvConfigValidator = ajvConfigValidator;
24
24
  ajvConfigValidator.addMetaSchema(draft7MetaSchema, 'http://json-schema.org/draft-07/schema#');
25
+ function enrichErrors(betterErrors, errors) {
26
+ return betterErrors.map((error, index) => {
27
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
28
+ switch (error.context.errorType) {
29
+ case 'unevaluatedProperties': {
30
+ const originalError = errors[index];
31
+ if (!originalError || originalError.keyword !== 'unevaluatedProperties') {
32
+ return error;
33
+ }
34
+ return {
35
+ ...error,
36
+ params: originalError.params,
37
+ };
38
+ }
39
+ default:
40
+ return error;
41
+ }
42
+ });
43
+ }
25
44
  exports.ajvOptionsValidator = new _2019_1.default({
26
45
  useDefaults: true,
27
46
  coerceTypes: true,
@@ -34,9 +53,8 @@ function validate(ajv, schema, data) {
34
53
  const valid = ajv.validate(schema, clonedData);
35
54
  if (!valid) {
36
55
  debug('validation failed with errors %j', ajv.errors);
37
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
38
56
  const betterErrors = (0, better_ajv_errors_1.betterAjvErrors)({ schema: schema, data, errors: ajv.errors });
39
- return [betterErrors, undefined];
57
+ return [enrichErrors(betterErrors, ajv.errors), undefined];
40
58
  }
41
59
  debug('validation successful');
42
60
  return [undefined, clonedData];
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":";;;;;;AAkCA,4BAcC;AAhDD,qCAAuC;AACvC,0DAAmE;AACnE,8DAAqC;AACrC,oDAA4B;AAC5B,kEAA8E;AAC9E,yCAA4C;AAE5C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;AAEvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CACjC,IAAA,sBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAC7E,CAAC;AAErB,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EACnC,IAAI,eAAG,CAAC;IACN,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,CAAC,aAAa,CAAC;CAC1B,CAAC,CACH,CAAC;AAIO,gDAAkB;AAF3B,kBAAkB,CAAC,aAAa,CAAC,gBAAgB,EAAE,yCAAyC,CAAC,CAAC;AAIjF,QAAA,mBAAmB,GAAG,IAAI,eAAG,CAAC;IACzC,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,SAAgB,QAAQ,CAAI,GAAQ,EAAE,MAAoB,EAAE,IAAa;IACvE,KAAK,CAAC,mCAAmC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAA,mCAAe,EAAC,EAAE,MAAM,EAAE,MAAyD,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACtI,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/B,OAAO,CAAC,SAAS,EAAE,UAAe,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":";;;;;;AAsDA,4BAcC;AApED,qCAAuC;AACvC,0DAAgF;AAChF,8DAAqC;AACrC,oDAA4B;AAC5B,kEAA8E;AAC9E,yCAA4C;AAE5C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,WAAW,CAAC,CAAC;AAEvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CACjC,IAAA,sBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAC7E,CAAC;AAErB,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EACnC,IAAI,eAAG,CAAC;IACN,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;CAC1C,CAAC,CACH,CAAC;AAwBO,gDAAkB;AAtB3B,kBAAkB,CAAC,aAAa,CAAC,gBAAgB,EAAE,yCAAyC,CAAC,CAAC;AAE9F,SAAS,YAAY,CAAC,YAA+B,EAAE,MAAqB;IAC1E,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvC,0EAA0E;QAC1E,QAAQ,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAChC,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,uBAAuB,EAAE,CAAC;oBACxE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO;oBACL,GAAG,KAAK;oBACR,MAAM,EAAE,aAAa,CAAC,MAAM;iBAC7B,CAAC;YACJ,CAAC;YACD;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAIY,QAAA,mBAAmB,GAAG,IAAI,eAAG,CAAC;IACzC,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,SAAgB,QAAQ,CAAI,GAAQ,EAAE,MAAoB,EAAE,IAAa;IACvE,KAAK,CAAC,mCAAmC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAA,mCAAe,EAAC,EAAE,MAAM,EAAE,MAAyD,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACtI,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,MAAuB,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/B,OAAO,CAAC,SAAS,EAAE,UAAe,CAAC,CAAC;AACtC,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const PACKAGE_VERSION = "2.0.0";
1
+ export declare const PACKAGE_VERSION = "2.2.0";
package/dist/version.js CHANGED
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_VERSION = void 0;
4
4
  /* prettier-ignore */
5
5
  /* eslint-disable*/
6
- exports.PACKAGE_VERSION = '2.0.0';
6
+ exports.PACKAGE_VERSION = '2.2.0';
7
7
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@map-colonies/config",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Config package for MapColonies with support for central config management",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
7
7
  ".": {
8
8
  "require": "./dist/index.js",
9
+ "import": "./dist/index.js",
9
10
  "types": "./dist/index.d.ts"
10
11
  }
11
12
  },
@@ -72,27 +73,30 @@
72
73
  },
73
74
  "devDependencies": {
74
75
  "@commitlint/cli": "^19.6.1",
75
- "@map-colonies/infra-copilot-instructions": "^1.0.0",
76
76
  "@map-colonies/commitlint-config": "^1.1.0",
77
- "@map-colonies/eslint-config": "^4.0.0",
77
+ "@map-colonies/eslint-config": "^6.0.0",
78
+ "@map-colonies/infra-copilot-instructions": "^1.0.0",
79
+ "@map-colonies/tsconfig": "^1.0.0",
80
+ "@swc/core": "^1.7.26",
81
+ "@swc/jest": "^0.2.36",
78
82
  "@types/config": "^3.3.4",
79
83
  "@types/debug": "^4.1.12",
80
84
  "@types/jest": "^29.5.12",
81
85
  "@types/node": "^14.14.12",
86
+ "@types/semver": "^7.5.8",
82
87
  "commitlint": "^19.6.1",
83
88
  "cross-env": "^7.0.3",
84
89
  "cz-conventional-changelog": "^3.3.0",
85
- "eslint": "^8.56.0",
90
+ "eslint": "^9.22.0",
91
+ "eslint-plugin-jest": "^28.11.0",
86
92
  "husky": "^9.1.7",
87
93
  "jest": "^29.7.0",
94
+ "jest-extended": "^4.0.2",
88
95
  "prettier": "^3.4.2",
89
96
  "pretty-quick": "^4.0.0",
90
- "typescript": "^5.4.5",
91
97
  "prom-client": "^15.0.0",
92
- "jest-extended": "^4.0.2",
93
- "@map-colonies/tsconfig": "^1.0.0",
94
- "@swc/core": "^1.7.26",
95
- "@swc/jest": "^0.2.36",
96
- "typedoc": "0.27.6"
98
+ "rimraf": "^6.0.1",
99
+ "typedoc": "0.27.6",
100
+ "typescript": "^5.4.5"
97
101
  }
98
102
  }