@map-colonies/config 1.2.0 → 1.3.1

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
@@ -62,6 +62,10 @@ The `ConfigInstance` interface represents the your way to interact with the conf
62
62
  - **Description**: Retrieves the resolved options from the configuration object. Useful for debugging.
63
63
  - **Returns**: The resolved options, which are an instance of `BaseOptions`.
64
64
 
65
+ ##### `initializeMetrics(registry: promClient.Registry): void`
66
+ - **Description**: Initializes the metrics for the configuration.
67
+ - **Parameters**:
68
+ - `registry` (`promClient.Registry`): The prometheus registry to use for the metrics.
65
69
 
66
70
  # Configuration Options
67
71
 
@@ -243,6 +247,11 @@ try {
243
247
  ```
244
248
  - **Description**: This error occurs when there is a version mismatch between the remote and local schemas. The payload includes the versions of both the remote and local schemas.
245
249
 
250
+ ### `promClientNotInstalledError`
251
+ - **Code**: `8`
252
+ - **Payload**: `Error`
253
+ - **Description**: This error occurs when the `prom-client` package is not installed. The payload contains the error object.
254
+
246
255
  # Debugging
247
256
  If for some reason you want to debug the package you can either use the `getConfigParts` or the `getResolvedOptions` functions described in the API or use the more powerful debug logger.
248
257
 
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAKxE,OAAO,EAAe,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAcrE;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS;IAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC3E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAmG/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAMxE,OAAO,EAAe,aAAa,EAAE,cAAc,EAAU,MAAM,SAAS,CAAC;AAgB7E;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS;IAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC3E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAwG/C"}
package/dist/config.js CHANGED
@@ -17,6 +17,8 @@ const validator_1 = require("./validator");
17
17
  const debug_1 = require("./utils/debug");
18
18
  const constants_1 = require("./constants");
19
19
  const errors_1 = require("./errors");
20
+ const metrics_1 = require("./metrics");
21
+ const helpers_1 = require("./utils/helpers");
20
22
  const debug = (0, debug_1.createDebug)('config');
21
23
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
22
24
  const arrayMerge = (destinationArray, sourceArray) => sourceArray;
@@ -30,9 +32,10 @@ const arrayMerge = (destinationArray, sourceArray) => sourceArray;
30
32
  async function config(options) {
31
33
  // handle package options
32
34
  debug('config called with options: %j', { ...options, schema: options.schema.$id });
33
- const { schema: baseSchema, ...unvalidatedOptions } = options;
35
+ const { schema: baseSchema, metricsRegistry, ...unvalidatedOptions } = options;
34
36
  const { configName, offlineMode, version, ignoreServerIsOlderVersionError } = (0, options_1.initializeOptions)(unvalidatedOptions);
35
37
  let remoteConfig = {};
38
+ let serverConfigResponse = undefined;
36
39
  // handle remote config
37
40
  if (offlineMode !== true) {
38
41
  debug('handling fetching remote data');
@@ -46,7 +49,7 @@ async function config(options) {
46
49
  });
47
50
  }
48
51
  // get the remote config
49
- const serverConfigResponse = await (0, httpClient_1.getRemoteConfig)(configName, version);
52
+ serverConfigResponse = await (0, httpClient_1.getRemoteConfig)(configName, version);
50
53
  if (serverConfigResponse.schemaId !== baseSchema.$id) {
51
54
  debug('schema version mismatch. local: %s, remote: %s', baseSchema.$id, serverConfigResponse.schemaId);
52
55
  throw (0, errors_1.createConfigError)('schemaVersionMismatchError', 'The schema version of the remote config does not match the schema version of the local config', {
@@ -74,7 +77,7 @@ async function config(options) {
74
77
  }
75
78
  debug('freezing validated config');
76
79
  // freeze the merged config so it can't be modified by the package user
77
- Object.freeze(validatedConfig);
80
+ (0, helpers_1.deepFreeze)(validatedConfig);
78
81
  function get(path) {
79
82
  debug('get called with path: %s', path);
80
83
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -96,7 +99,10 @@ async function config(options) {
96
99
  debug('getResolvedOptions called');
97
100
  return (0, options_1.getOptions)();
98
101
  }
99
- return { get, getAll, getConfigParts, getResolvedOptions };
102
+ function initializeMetrics(registry) {
103
+ (0, metrics_1.initializeMetrics)(registry, baseSchema.$id, serverConfigResponse?.version);
104
+ }
105
+ return { get, getAll, getConfigParts, getResolvedOptions, initializeMetrics };
100
106
  }
101
107
  exports.config = config;
102
108
  //# 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/dist/errors.d.ts CHANGED
@@ -39,6 +39,12 @@ declare const configErrors: {
39
39
  localSchemaVersion: string;
40
40
  };
41
41
  };
42
+ readonly promClientNotInstalledError: {
43
+ readonly code: 8;
44
+ readonly payload: {
45
+ message: string;
46
+ };
47
+ };
42
48
  };
43
49
  /**
44
50
  * Represents the configuration errors.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;kBAG+F,MAAM;;;;;;;;;;wBAExD,MAAM;;;;;;kCACmB,MAAM;iCAAuB,MAAM;;;;;;iCAC5C,MAAM;gCAAsB,MAAM;;;CAE9C,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAE,SAAQ,KAAK;aAUnD,OAAO,EAAE,OAAO,GAAG,SAAS;IATjG,SAAgB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAEtD;;;;;;OAMG;gBACgB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAkB,OAAO,EAAE,OAAO,GAAG,SAAS;CAKlG;AAED,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,SAAS,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EACxH,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAEjC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,CAMzI"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;kBAG+F,MAAM;;;;;;;;;;wBAExD,MAAM;;;;;;kCACmB,MAAM;iCAAuB,MAAM;;;;;;iCAC5C,MAAM;gCAAsB,MAAM;;;;;;qBAC7C,MAAM;;;CAEP,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAE,SAAQ,KAAK;aAUnD,OAAO,EAAE,OAAO,GAAG,SAAS;IATjG,SAAgB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAEtD;;;;;;OAMG;gBACgB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAkB,OAAO,EAAE,OAAO,GAAG,SAAS;CAKlG;AAED,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,SAAS,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EACxH,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAEjC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,CAMzI"}
package/dist/errors.js CHANGED
@@ -9,6 +9,7 @@ const configErrors = {
9
9
  schemaNotFoundError: { code: 5, payload: {} },
10
10
  schemasPackageVersionMismatchError: { code: 6, payload: {} },
11
11
  schemaVersionMismatchError: { code: 7, payload: {} },
12
+ promClientNotInstalledError: { code: 8, payload: {} },
12
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
14
  };
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG;IACnB,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAgF,EAAE;IACzH,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAW,EAAE;IACnD,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAA4B,EAAE;IACvE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAmE,EAAE;IAC7H,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAiE,EAAE;IACnH,8DAA8D;CACG,CAAC;AAOpE;;;;;GAKG;AACH,MAAa,WAAgG,SAAQ,KAAK;IAUnD;IATrD,IAAI,CAAkC;IAEtD;;;;;;OAMG;IACH,YAAmB,IAAe,EAAE,OAAe,EAAkB,OAA4B;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QADoD,YAAO,GAAP,OAAO,CAAqB;QAE/F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF;AAfD,kCAeC;AAED,SAAgB,iBAAiB,CAC/B,IAAe,EACf,OAAe,EACf,OAAgB;IAEhB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAND,8CAMC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAuC,KAAc,EAAE,SAAoB;IACtG,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAND,sCAMC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG;IACnB,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAgF,EAAE;IACzH,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAW,EAAE;IACnD,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAA4B,EAAE;IACvE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAmE,EAAE;IAC7H,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAiE,EAAE;IACnH,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAyB,EAAE;IAC5E,8DAA8D;CACG,CAAC;AAOpE;;;;;GAKG;AACH,MAAa,WAAgG,SAAQ,KAAK;IAUnD;IATrD,IAAI,CAAkC;IAEtD;;;;;;OAMG;IACH,YAAmB,IAAe,EAAE,OAAe,EAAkB,OAA4B;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QADoD,YAAO,GAAP,OAAO,CAAqB;QAE/F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF;AAfD,kCAeC;AAED,SAAgB,iBAAiB,CAC/B,IAAe,EACf,OAAe,EACf,OAAgB;IAEhB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAND,8CAMC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAuC,KAAc,EAAE,SAAoB;IACtG,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAND,sCAMC"}
@@ -0,0 +1,3 @@
1
+ import type { Registry } from 'prom-client';
2
+ export declare function initializeMetrics(registry: Registry, schemaId: string, actualVersion: number | undefined): void;
3
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0B5C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CA8B/G"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeMetrics = void 0;
4
+ const options_1 = require("./options");
5
+ const version_1 = require("./version");
6
+ const constants_1 = require("./constants");
7
+ const debug_1 = require("./utils/debug");
8
+ const errors_1 = require("./errors");
9
+ const debug = (0, debug_1.createDebug)('metrics');
10
+ const MILLISECONDS_PER_SECOND = 1000;
11
+ let promClient;
12
+ function loadPromClient() {
13
+ if (promClient !== undefined) {
14
+ return;
15
+ }
16
+ debug('loading prom-client');
17
+ try {
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
19
+ promClient = require('prom-client');
20
+ }
21
+ catch (error) {
22
+ throw (0, errors_1.createConfigError)('promClientNotInstalledError', 'prom-client is not installed and metrics was initialized', error);
23
+ }
24
+ }
25
+ function initializeMetrics(registry, schemaId, actualVersion) {
26
+ debug('initializing metrics');
27
+ loadPromClient();
28
+ if (promClient === undefined) {
29
+ return;
30
+ }
31
+ const { offlineMode, configName, version } = (0, options_1.getOptions)();
32
+ const gauge = new promClient.Gauge({
33
+ name: 'config_time_of_last_fetch_unix_timestamp',
34
+ help: 'The time of the last fetch of the configuration in unix timestamp',
35
+ labelNames: ['name', 'request_version', 'actual_version', 'offline_mode', 'schemas_package_version', 'package_version', 'schema_id'],
36
+ registers: [registry],
37
+ });
38
+ /* eslint-disable @typescript-eslint/naming-convention */
39
+ gauge.set({
40
+ name: configName,
41
+ request_version: version,
42
+ actual_version: actualVersion,
43
+ offline_mode: String(offlineMode ?? false),
44
+ schemas_package_version: constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION,
45
+ package_version: version_1.PACKAGE_VERSION,
46
+ schema_id: schemaId,
47
+ }, Math.round(Date.now() / MILLISECONDS_PER_SECOND));
48
+ }
49
+ exports.initializeMetrics = initializeMetrics;
50
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AACvC,uCAA4C;AAC5C,2CAA4D;AAC5D,yCAA4C;AAC5C,qCAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;AACrC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,IAAI,UAAoD,CAAC;AAEzD,SAAS,cAAc;IACrB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,mEAAmE;QACnE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,0BAAiB,EAAC,6BAA6B,EAAE,0DAA0D,EAAE,KAAc,CAAC,CAAC;IACrI,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAkB,EAAE,QAAgB,EAAE,aAAiC;IACvG,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9B,cAAc,EAAE,CAAC;IAEjB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;QACjC,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,mEAAmE;QACzE,UAAU,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,WAAW,CAAC;QACpI,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAC;IAEH,yDAAyD;IACzD,KAAK,CAAC,GAAG,CACP;QACE,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,OAAO;QACxB,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;QAC1C,uBAAuB,EAAE,yCAA6B;QACtD,eAAe,EAAE,yBAAe;QAChC,SAAS,EAAE,QAAQ;KACpB,EAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC,CACjD,CAAC;AACJ,CAAC;AA9BD,8CA8BC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="lodash" />
2
2
  import { typeSymbol } from '@map-colonies/schemas/build/schemas/symbol';
3
3
  import { JSONSchemaType } from 'ajv';
4
+ import type { Registry } from 'prom-client';
4
5
  type Prettify<T> = {
5
6
  [K in keyof T]: T[K];
6
7
  } & {};
@@ -67,6 +68,11 @@ export type ConfigOptions<T extends SchemaWithType> = Prettify<Partial<BaseOptio
67
68
  * The schema of the configuration object.
68
69
  */
69
70
  schema: T;
71
+ /**
72
+ * The registry for the metrics. If not provided, the metrics will not be registered.
73
+ * Depends on the prom-client package being installed.
74
+ */
75
+ metricsRegistry?: Registry;
70
76
  }>;
71
77
  export declare const optionsSchema: JSONSchemaType<BaseOptions>;
72
78
  /**
@@ -100,6 +106,11 @@ export interface ConfigInstance<T> {
100
106
  * @returns The resolved options.
101
107
  */
102
108
  getResolvedOptions: () => BaseOptions;
109
+ /**
110
+ * Initializes the metrics for the configuration object.
111
+ * @param registry - The registry for the metrics.
112
+ */
113
+ initializeMetrics: (registry: Registry) => void;
103
114
  }
104
115
  export {};
105
116
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAErC,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAErB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEhD,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,QAAQ,CAC5D,OAAO,CAAC,WAAW,CAAC,GAAG;IACrB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;CACX,CACF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,WAAW,CAiBrD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAErE;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhB;;;OAGG;IACH,cAAc,EAAE,MAAM;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;OAGG;IACH,kBAAkB,EAAE,MAAM,WAAW,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAErB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEhD,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,QAAQ,CAC5D,OAAO,CAAC,WAAW,CAAC,GAAG;IACrB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B,CACF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,WAAW,CAiBrD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAErE;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhB;;;OAGG;IACH,cAAc,EAAE,MAAM;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;OAGG;IACH,kBAAkB,EAAE,MAAM,WAAW,CAAC;IAEtC;;;OAGG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CACjD"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,uEAAwE;AAkF3D,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;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"}
@@ -0,0 +1,2 @@
1
+ export declare function deepFreeze<T>(obj: T): void;
2
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAS1C"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepFreeze = void 0;
4
+ function deepFreeze(obj) {
5
+ const propNames = Object.getOwnPropertyNames(obj);
6
+ for (const name of propNames) {
7
+ const value = obj[name];
8
+ if (typeof value === 'object') {
9
+ deepFreeze(value);
10
+ }
11
+ }
12
+ Object.freeze(obj);
13
+ }
14
+ exports.deepFreeze = deepFreeze;
15
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAI,GAAM;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAe,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AATD,gCASC"}
@@ -0,0 +1,2 @@
1
+ export declare const PACKAGE_VERSION = "1.3.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PACKAGE_VERSION = void 0;
4
+ /* prettier-ignore */
5
+ /* eslint-disable*/
6
+ exports.PACKAGE_VERSION = '1.3.1';
7
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,mBAAmB;AACN,QAAA,eAAe,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@map-colonies/config",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Config package for MapColonies with support for central config management",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -16,12 +16,14 @@
16
16
  "prelint": "npm run format",
17
17
  "lint": "eslint .",
18
18
  "lint:fix": "eslint --fix .",
19
+ "pretest": "npm run generate:version",
19
20
  "test": "cross-env SUPPRESS_NO_CONFIG_WARNING=true NODE_CONFIG_STRICT_MODE=false jest --config=./tests/configurations/jest.config.js",
20
- "prebuild": "npm run clean",
21
+ "prebuild": "npm run clean && npm run generate:version",
21
22
  "build": "tsc --project tsconfig.build.json",
22
23
  "start": "npm run build && cd dist && node ./index.js",
23
24
  "clean": "rimraf dist",
24
- "prepublish": "npm run build"
25
+ "prepublish": "npm run build",
26
+ "generate:version": "node scripts/generateVersionFile.mjs"
25
27
  },
26
28
  "repository": {
27
29
  "type": "git",
@@ -61,7 +63,13 @@
61
63
  "undici": "^6.18.2"
62
64
  },
63
65
  "peerDependencies": {
64
- "@map-colonies/schemas": "^1.0.0"
66
+ "@map-colonies/schemas": "^1.0.0",
67
+ "prom-client": "^15.0.0"
68
+ },
69
+ "peerDependenciesMeta": {
70
+ "prom-client": {
71
+ "optional": true
72
+ }
65
73
  },
66
74
  "devDependencies": {
67
75
  "@commitlint/cli": "^11.0.0",
@@ -80,6 +88,8 @@
80
88
  "prettier": "^2.2.1",
81
89
  "pretty-quick": "^3.1.0",
82
90
  "ts-jest": "^29.1.5",
83
- "typescript": "^5.4.5"
91
+ "typescript": "^5.4.5",
92
+ "prom-client": "^15.0.0",
93
+ "jest-extended": "^4.0.2"
84
94
  }
85
95
  }