@adalo/metrics 0.1.126 → 0.1.128

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,8 +1,3 @@
1
- declare namespace _default {
2
- export { createHealthCheckWorkerClient };
3
- export { createHealthCheckEndpointClient };
4
- }
5
- export default _default;
6
1
  /**
7
2
  * Creates a health check client for worker process.
8
3
  * Worker needs database config to perform health checks and store results in Redis.
@@ -17,7 +12,7 @@ export default _default;
17
12
  * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds
18
13
  * @returns {HealthCheckClient} Configured health check client instance for worker
19
14
  */
20
- declare function createHealthCheckWorkerClient(options: {
15
+ export function createHealthCheckWorkerClient(options: {
21
16
  databaseUrl: string;
22
17
  databaseName: string;
23
18
  redisClient: any;
@@ -38,7 +33,7 @@ declare function createHealthCheckWorkerClient(options: {
38
33
  * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds
39
34
  * @returns {HealthCheckClient} Configured health check client instance for endpoints
40
35
  */
41
- declare function createHealthCheckEndpointClient(options: {
36
+ export function createHealthCheckEndpointClient(options: {
42
37
  redisClient: any;
43
38
  includeRedisCheck?: boolean | undefined;
44
39
  cacheTtlMs?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"healthCheckUtils.d.ts","sourceRoot":"","sources":["../../src/health/healthCheckUtils.js"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;GAaG;AACH;IAT2B,WAAW,EAA3B,MAAM;IACU,YAAY,EAA5B,MAAM;IACO,WAAW,EAAxB,GAAG;IACc,OAAO;IACS,sBAAsB;;;IACrC,iBAAiB;IAClB,UAAU;IACzB,iBAAiB,CA+B7B;AAED;;;;;;;;;GASG;AACH;IALwB,WAAW,EAAxB,GAAG;IACe,iBAAiB;IAClB,UAAU;IACzB,iBAAiB,CAiB7B"}
1
+ {"version":3,"file":"healthCheckUtils.d.ts","sourceRoot":"","sources":["../../src/health/healthCheckUtils.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH;IAT2B,WAAW,EAA3B,MAAM;IACU,YAAY,EAA5B,MAAM;IACO,WAAW,EAAxB,GAAG;IACc,OAAO;IACS,sBAAsB;;;IACrC,iBAAiB;IAClB,UAAU;IACzB,iBAAiB,CA+B7B;AAED;;;;;;;;;GASG;AACH;IALwB,WAAW,EAAxB,GAAG;IACe,iBAAiB;IAClB,UAAU;IACzB,iBAAiB,CAiB7B"}
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _healthCheckClient = require("./healthCheckClient");
3
+ const {
4
+ HealthCheckClient
5
+ } = require('./healthCheckClient');
6
+
8
7
  /**
9
8
  * Creates a health check client for worker process.
10
9
  * Worker needs database config to perform health checks and store results in Redis.
@@ -43,7 +42,7 @@ function createHealthCheckWorkerClient(options) {
43
42
  if (additionalDatabaseUrls) {
44
43
  clientOptions.additionalDatabaseUrls = additionalDatabaseUrls;
45
44
  }
46
- return new _healthCheckClient.HealthCheckClient(clientOptions);
45
+ return new HealthCheckClient(clientOptions);
47
46
  }
48
47
 
49
48
  /**
@@ -65,14 +64,14 @@ function createHealthCheckEndpointClient(options) {
65
64
  if (!redisClient) {
66
65
  throw new Error('redisClient is required for createHealthCheckEndpointClient');
67
66
  }
68
- return new _healthCheckClient.HealthCheckClient({
67
+ return new HealthCheckClient({
69
68
  appName: process.env.BUILD_APP_NAME || 'unknown-app',
70
69
  redisClient,
71
70
  cacheTtlMs,
72
71
  includeRedisCheck
73
72
  });
74
73
  }
75
- var _default = exports.default = {
74
+ module.exports = {
76
75
  createHealthCheckWorkerClient,
77
76
  createHealthCheckEndpointClient
78
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"healthCheckUtils.js","names":["_healthCheckClient","require","createHealthCheckWorkerClient","options","databaseUrl","databaseName","redisClient","appName","additionalDatabaseUrls","includeRedisCheck","cacheTtlMs","Error","clientOptions","process","env","BUILD_APP_NAME","HealthCheckClient","createHealthCheckEndpointClient","_default","exports","default"],"sources":["../../src/health/healthCheckUtils.js"],"sourcesContent":["import { HealthCheckClient } from './healthCheckClient'\n\n/**\n * Creates a health check client for worker process.\n * Worker needs database config to perform health checks and store results in Redis.\n *\n * @param {Object} options\n * @param {string} options.databaseUrl - Main database URL\n * @param {string} options.databaseName - Database name\n * @param {any} options.redisClient - Redis client instance (from service config with appropriate name)\n * @param {string} [options.appName] - Application name (defaults to BUILD_APP_NAME)\n * @param {Object<string, string>} [options.additionalDatabaseUrls] - Additional database clusters (for database service)\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n * @returns {HealthCheckClient} Configured health check client instance for worker\n */\nfunction createHealthCheckWorkerClient(options) {\n const {\n databaseUrl,\n databaseName,\n redisClient,\n appName,\n additionalDatabaseUrls,\n includeRedisCheck = false,\n cacheTtlMs = 60000,\n } = options\n\n if (!redisClient) {\n throw new Error('redisClient is required for createHealthCheckWorkerClient')\n }\n\n const clientOptions = {\n databaseUrl,\n databaseName,\n appName: appName || process.env.BUILD_APP_NAME || 'unknown-app',\n redisClient,\n includeRedisCheck,\n cacheTtlMs,\n }\n\n if (additionalDatabaseUrls) {\n clientOptions.additionalDatabaseUrls = additionalDatabaseUrls\n }\n\n return new HealthCheckClient(clientOptions)\n}\n\n/**\n * Creates a health check client for endpoint handlers.\n * Endpoints only read from cache, so they only need Redis client (no database config).\n *\n * @param {Object} options\n * @param {any} options.redisClient - Existing Redis client instance (from system) - REQUIRED\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response (for backend)\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n * @returns {HealthCheckClient} Configured health check client instance for endpoints\n */\nfunction createHealthCheckEndpointClient(options) {\n const { redisClient, includeRedisCheck = false, cacheTtlMs = 60000 } = options\n\n if (!redisClient) {\n throw new Error(\n 'redisClient is required for createHealthCheckEndpointClient'\n )\n }\n\n return new HealthCheckClient({\n appName: process.env.BUILD_APP_NAME || 'unknown-app',\n redisClient,\n cacheTtlMs,\n includeRedisCheck,\n })\n}\n\nexport default {\n createHealthCheckWorkerClient,\n createHealthCheckEndpointClient,\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,6BAA6BA,CAACC,OAAO,EAAE;EAC9C,MAAM;IACJC,WAAW;IACXC,YAAY;IACZC,WAAW;IACXC,OAAO;IACPC,sBAAsB;IACtBC,iBAAiB,GAAG,KAAK;IACzBC,UAAU,GAAG;EACf,CAAC,GAAGP,OAAO;EAEX,IAAI,CAACG,WAAW,EAAE;IAChB,MAAM,IAAIK,KAAK,CAAC,2DAA2D,CAAC;EAC9E;EAEA,MAAMC,aAAa,GAAG;IACpBR,WAAW;IACXC,YAAY;IACZE,OAAO,EAAEA,OAAO,IAAIM,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;IAC/DT,WAAW;IACXG,iBAAiB;IACjBC;EACF,CAAC;EAED,IAAIF,sBAAsB,EAAE;IAC1BI,aAAa,CAACJ,sBAAsB,GAAGA,sBAAsB;EAC/D;EAEA,OAAO,IAAIQ,oCAAiB,CAACJ,aAAa,CAAC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,+BAA+BA,CAACd,OAAO,EAAE;EAChD,MAAM;IAAEG,WAAW;IAAEG,iBAAiB,GAAG,KAAK;IAAEC,UAAU,GAAG;EAAM,CAAC,GAAGP,OAAO;EAE9E,IAAI,CAACG,WAAW,EAAE;IAChB,MAAM,IAAIK,KAAK,CACb,6DACF,CAAC;EACH;EAEA,OAAO,IAAIK,oCAAiB,CAAC;IAC3BT,OAAO,EAAEM,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;IACpDT,WAAW;IACXI,UAAU;IACVD;EACF,CAAC,CAAC;AACJ;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACblB,6BAA6B;EAC7Be;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"healthCheckUtils.js","names":["HealthCheckClient","require","createHealthCheckWorkerClient","options","databaseUrl","databaseName","redisClient","appName","additionalDatabaseUrls","includeRedisCheck","cacheTtlMs","Error","clientOptions","process","env","BUILD_APP_NAME","createHealthCheckEndpointClient","module","exports"],"sources":["../../src/health/healthCheckUtils.js"],"sourcesContent":["const { HealthCheckClient } = require('./healthCheckClient')\n\n/**\n * Creates a health check client for worker process.\n * Worker needs database config to perform health checks and store results in Redis.\n *\n * @param {Object} options\n * @param {string} options.databaseUrl - Main database URL\n * @param {string} options.databaseName - Database name\n * @param {any} options.redisClient - Redis client instance (from service config with appropriate name)\n * @param {string} [options.appName] - Application name (defaults to BUILD_APP_NAME)\n * @param {Object<string, string>} [options.additionalDatabaseUrls] - Additional database clusters (for database service)\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n * @returns {HealthCheckClient} Configured health check client instance for worker\n */\nfunction createHealthCheckWorkerClient(options) {\n const {\n databaseUrl,\n databaseName,\n redisClient,\n appName,\n additionalDatabaseUrls,\n includeRedisCheck = false,\n cacheTtlMs = 60000,\n } = options\n\n if (!redisClient) {\n throw new Error('redisClient is required for createHealthCheckWorkerClient')\n }\n\n const clientOptions = {\n databaseUrl,\n databaseName,\n appName: appName || process.env.BUILD_APP_NAME || 'unknown-app',\n redisClient,\n includeRedisCheck,\n cacheTtlMs,\n }\n\n if (additionalDatabaseUrls) {\n clientOptions.additionalDatabaseUrls = additionalDatabaseUrls\n }\n\n return new HealthCheckClient(clientOptions)\n}\n\n/**\n * Creates a health check client for endpoint handlers.\n * Endpoints only read from cache, so they only need Redis client (no database config).\n *\n * @param {Object} options\n * @param {any} options.redisClient - Existing Redis client instance (from system) - REQUIRED\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response (for backend)\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n * @returns {HealthCheckClient} Configured health check client instance for endpoints\n */\nfunction createHealthCheckEndpointClient(options) {\n const { redisClient, includeRedisCheck = false, cacheTtlMs = 60000 } = options\n\n if (!redisClient) {\n throw new Error(\n 'redisClient is required for createHealthCheckEndpointClient'\n )\n }\n\n return new HealthCheckClient({\n appName: process.env.BUILD_APP_NAME || 'unknown-app',\n redisClient,\n cacheTtlMs,\n includeRedisCheck,\n })\n}\n\nmodule.exports = {\n createHealthCheckWorkerClient,\n createHealthCheckEndpointClient,\n}\n"],"mappings":";;AAAA,MAAM;EAAEA;AAAkB,CAAC,GAAGC,OAAO,CAAC,qBAAqB,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,6BAA6BA,CAACC,OAAO,EAAE;EAC9C,MAAM;IACJC,WAAW;IACXC,YAAY;IACZC,WAAW;IACXC,OAAO;IACPC,sBAAsB;IACtBC,iBAAiB,GAAG,KAAK;IACzBC,UAAU,GAAG;EACf,CAAC,GAAGP,OAAO;EAEX,IAAI,CAACG,WAAW,EAAE;IAChB,MAAM,IAAIK,KAAK,CAAC,2DAA2D,CAAC;EAC9E;EAEA,MAAMC,aAAa,GAAG;IACpBR,WAAW;IACXC,YAAY;IACZE,OAAO,EAAEA,OAAO,IAAIM,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;IAC/DT,WAAW;IACXG,iBAAiB;IACjBC;EACF,CAAC;EAED,IAAIF,sBAAsB,EAAE;IAC1BI,aAAa,CAACJ,sBAAsB,GAAGA,sBAAsB;EAC/D;EAEA,OAAO,IAAIR,iBAAiB,CAACY,aAAa,CAAC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,+BAA+BA,CAACb,OAAO,EAAE;EAChD,MAAM;IAAEG,WAAW;IAAEG,iBAAiB,GAAG,KAAK;IAAEC,UAAU,GAAG;EAAM,CAAC,GAAGP,OAAO;EAE9E,IAAI,CAACG,WAAW,EAAE;IAChB,MAAM,IAAIK,KAAK,CACb,6DACF,CAAC;EACH;EAEA,OAAO,IAAIX,iBAAiB,CAAC;IAC3BO,OAAO,EAAEM,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;IACpDT,WAAW;IACXI,UAAU;IACVD;EACF,CAAC,CAAC;AACJ;AAEAQ,MAAM,CAACC,OAAO,GAAG;EACfhB,6BAA6B;EAC7Bc;AACF,CAAC","ignoreList":[]}
@@ -22,7 +22,7 @@ exports.createHealthCheckWorker = createHealthCheckWorker;
22
22
  */
23
23
  const {
24
24
  createHealthCheckWorkerClient
25
- } = require('./healthCheckUtils').default;
25
+ } = require('./healthCheckUtils');
26
26
  function createHealthCheckWorker(options) {
27
27
  const {
28
28
  refreshIntervalMs = 60000,
@@ -1 +1 @@
1
- {"version":3,"file":"healthCheckWorker.js","names":["createHealthCheckWorkerClient","require","default","createHealthCheckWorker","options","refreshIntervalMs","workerClientOptions","appName","process","env","BUILD_APP_NAME","dynoId","HOSTNAME","processType","BUILD_DYNO_PROCESS_TYPE","logValues","HEALTH_LOG_VALUES","prefixLogs","healthCheckClient","runHealthCheckWorker","console","log","refreshCache","err","error","interval","setInterval","result","timestamp","status","on","clearInterval","cleanup","finally","exit"],"sources":["../../src/health/healthCheckWorker.js"],"sourcesContent":["/**\n * Shared health check worker utility.\n * This runs as a separate process and periodically refreshes the health check cache,\n * preventing HTTP requests from triggering database queries.\n * Uses Redis client from service config (should be created with name 'healthcheck-worker').\n *\n * @param {Object} options\n * @param {string} options.databaseUrl - Main database URL\n * @param {string} options.databaseName - Database name\n * @param {any} options.redisClient - Redis client instance (from service config with name 'healthcheck-worker')\n * @param {string} [options.appName] - Application name (defaults to BUILD_APP_NAME)\n * @param {Object<string, string>} [options.additionalDatabaseUrls] - Additional database clusters (for database service)\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response\n * @param {number} [options.refreshIntervalMs=60000] - Refresh interval in milliseconds (default: 1 minute)\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n */\nconst { createHealthCheckWorkerClient } = require('./healthCheckUtils').default\n\nexport function createHealthCheckWorker(options) {\n const { refreshIntervalMs = 60000, ...workerClientOptions } = options\n\n const appName =\n workerClientOptions.appName || process.env.BUILD_APP_NAME || 'unknown-app'\n const dynoId = process.env.HOSTNAME || 'unknown-dyno'\n const processType =\n process.env.BUILD_DYNO_PROCESS_TYPE || 'health-check-worker'\n const logValues = process.env.HEALTH_LOG_VALUES === 'true'\n const prefixLogs = `[${processType}] [${appName}] [${dynoId}] [HealthCheck]`\n\n const healthCheckClient = createHealthCheckWorkerClient(workerClientOptions)\n\n return async function runHealthCheckWorker() {\n console.log(`${prefixLogs} Starting health check worker...`)\n console.log(`${prefixLogs} Refresh interval: ${refreshIntervalMs}ms`)\n\n try {\n await healthCheckClient.refreshCache()\n if (logValues) {\n console.log(`${prefixLogs} Initial health check completed`)\n }\n } catch (err) {\n console.error(`${prefixLogs} Initial health check failed:`, err)\n }\n\n const interval = setInterval(async () => {\n try {\n const result = await healthCheckClient.refreshCache()\n if (logValues) {\n console.log(\n `${prefixLogs} Health check refreshed at ${result.timestamp}, status: ${result.status}`\n )\n }\n } catch (err) {\n console.error(`${prefixLogs} Health check refresh failed:`, err)\n }\n }, refreshIntervalMs)\n\n process.on('SIGTERM', () => {\n console.log(`${prefixLogs} Received SIGTERM, shutting down...`)\n clearInterval(interval)\n healthCheckClient.cleanup().finally(() => {\n process.exit(0)\n })\n })\n\n process.on('SIGINT', () => {\n console.log(`${prefixLogs} Received SIGINT, shutting down...`)\n clearInterval(interval)\n healthCheckClient.cleanup().finally(() => {\n process.exit(0)\n })\n })\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEA;AAA8B,CAAC,GAAGC,OAAO,CAAC,oBAAoB,CAAC,CAACC,OAAO;AAExE,SAASC,uBAAuBA,CAACC,OAAO,EAAE;EAC/C,MAAM;IAAEC,iBAAiB,GAAG,KAAK;IAAE,GAAGC;EAAoB,CAAC,GAAGF,OAAO;EAErE,MAAMG,OAAO,GACXD,mBAAmB,CAACC,OAAO,IAAIC,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;EAC5E,MAAMC,MAAM,GAAGH,OAAO,CAACC,GAAG,CAACG,QAAQ,IAAI,cAAc;EACrD,MAAMC,WAAW,GACfL,OAAO,CAACC,GAAG,CAACK,uBAAuB,IAAI,qBAAqB;EAC9D,MAAMC,SAAS,GAAGP,OAAO,CAACC,GAAG,CAACO,iBAAiB,KAAK,MAAM;EAC1D,MAAMC,UAAU,GAAG,IAAIJ,WAAW,MAAMN,OAAO,MAAMI,MAAM,iBAAiB;EAE5E,MAAMO,iBAAiB,GAAGlB,6BAA6B,CAACM,mBAAmB,CAAC;EAE5E,OAAO,eAAea,oBAAoBA,CAAA,EAAG;IAC3CC,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,kCAAkC,CAAC;IAC5DG,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,sBAAsBZ,iBAAiB,IAAI,CAAC;IAErE,IAAI;MACF,MAAMa,iBAAiB,CAACI,YAAY,CAAC,CAAC;MACtC,IAAIP,SAAS,EAAE;QACbK,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,iCAAiC,CAAC;MAC7D;IACF,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZH,OAAO,CAACI,KAAK,CAAC,GAAGP,UAAU,+BAA+B,EAAEM,GAAG,CAAC;IAClE;IAEA,MAAME,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,IAAI;QACF,MAAMC,MAAM,GAAG,MAAMT,iBAAiB,CAACI,YAAY,CAAC,CAAC;QACrD,IAAIP,SAAS,EAAE;UACbK,OAAO,CAACC,GAAG,CACT,GAAGJ,UAAU,8BAA8BU,MAAM,CAACC,SAAS,aAAaD,MAAM,CAACE,MAAM,EACvF,CAAC;QACH;MACF,CAAC,CAAC,OAAON,GAAG,EAAE;QACZH,OAAO,CAACI,KAAK,CAAC,GAAGP,UAAU,+BAA+B,EAAEM,GAAG,CAAC;MAClE;IACF,CAAC,EAAElB,iBAAiB,CAAC;IAErBG,OAAO,CAACsB,EAAE,CAAC,SAAS,EAAE,MAAM;MAC1BV,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,qCAAqC,CAAC;MAC/Dc,aAAa,CAACN,QAAQ,CAAC;MACvBP,iBAAiB,CAACc,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACxCzB,OAAO,CAAC0B,IAAI,CAAC,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF1B,OAAO,CAACsB,EAAE,CAAC,QAAQ,EAAE,MAAM;MACzBV,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,oCAAoC,CAAC;MAC9Dc,aAAa,CAACN,QAAQ,CAAC;MACvBP,iBAAiB,CAACc,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACxCzB,OAAO,CAAC0B,IAAI,CAAC,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"healthCheckWorker.js","names":["createHealthCheckWorkerClient","require","createHealthCheckWorker","options","refreshIntervalMs","workerClientOptions","appName","process","env","BUILD_APP_NAME","dynoId","HOSTNAME","processType","BUILD_DYNO_PROCESS_TYPE","logValues","HEALTH_LOG_VALUES","prefixLogs","healthCheckClient","runHealthCheckWorker","console","log","refreshCache","err","error","interval","setInterval","result","timestamp","status","on","clearInterval","cleanup","finally","exit"],"sources":["../../src/health/healthCheckWorker.js"],"sourcesContent":["/**\n * Shared health check worker utility.\n * This runs as a separate process and periodically refreshes the health check cache,\n * preventing HTTP requests from triggering database queries.\n * Uses Redis client from service config (should be created with name 'healthcheck-worker').\n *\n * @param {Object} options\n * @param {string} options.databaseUrl - Main database URL\n * @param {string} options.databaseName - Database name\n * @param {any} options.redisClient - Redis client instance (from service config with name 'healthcheck-worker')\n * @param {string} [options.appName] - Application name (defaults to BUILD_APP_NAME)\n * @param {Object<string, string>} [options.additionalDatabaseUrls] - Additional database clusters (for database service)\n * @param {boolean} [options.includeRedisCheck=false] - Include Redis health check in response\n * @param {number} [options.refreshIntervalMs=60000] - Refresh interval in milliseconds (default: 1 minute)\n * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds\n */\nconst { createHealthCheckWorkerClient } = require('./healthCheckUtils')\n\nexport function createHealthCheckWorker(options) {\n const { refreshIntervalMs = 60000, ...workerClientOptions } = options\n\n const appName =\n workerClientOptions.appName || process.env.BUILD_APP_NAME || 'unknown-app'\n const dynoId = process.env.HOSTNAME || 'unknown-dyno'\n const processType =\n process.env.BUILD_DYNO_PROCESS_TYPE || 'health-check-worker'\n const logValues = process.env.HEALTH_LOG_VALUES === 'true'\n const prefixLogs = `[${processType}] [${appName}] [${dynoId}] [HealthCheck]`\n\n const healthCheckClient = createHealthCheckWorkerClient(workerClientOptions)\n\n return async function runHealthCheckWorker() {\n console.log(`${prefixLogs} Starting health check worker...`)\n console.log(`${prefixLogs} Refresh interval: ${refreshIntervalMs}ms`)\n\n try {\n await healthCheckClient.refreshCache()\n if (logValues) {\n console.log(`${prefixLogs} Initial health check completed`)\n }\n } catch (err) {\n console.error(`${prefixLogs} Initial health check failed:`, err)\n }\n\n const interval = setInterval(async () => {\n try {\n const result = await healthCheckClient.refreshCache()\n if (logValues) {\n console.log(\n `${prefixLogs} Health check refreshed at ${result.timestamp}, status: ${result.status}`\n )\n }\n } catch (err) {\n console.error(`${prefixLogs} Health check refresh failed:`, err)\n }\n }, refreshIntervalMs)\n\n process.on('SIGTERM', () => {\n console.log(`${prefixLogs} Received SIGTERM, shutting down...`)\n clearInterval(interval)\n healthCheckClient.cleanup().finally(() => {\n process.exit(0)\n })\n })\n\n process.on('SIGINT', () => {\n console.log(`${prefixLogs} Received SIGINT, shutting down...`)\n clearInterval(interval)\n healthCheckClient.cleanup().finally(() => {\n process.exit(0)\n })\n })\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEA;AAA8B,CAAC,GAAGC,OAAO,CAAC,oBAAoB,CAAC;AAEhE,SAASC,uBAAuBA,CAACC,OAAO,EAAE;EAC/C,MAAM;IAAEC,iBAAiB,GAAG,KAAK;IAAE,GAAGC;EAAoB,CAAC,GAAGF,OAAO;EAErE,MAAMG,OAAO,GACXD,mBAAmB,CAACC,OAAO,IAAIC,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,aAAa;EAC5E,MAAMC,MAAM,GAAGH,OAAO,CAACC,GAAG,CAACG,QAAQ,IAAI,cAAc;EACrD,MAAMC,WAAW,GACfL,OAAO,CAACC,GAAG,CAACK,uBAAuB,IAAI,qBAAqB;EAC9D,MAAMC,SAAS,GAAGP,OAAO,CAACC,GAAG,CAACO,iBAAiB,KAAK,MAAM;EAC1D,MAAMC,UAAU,GAAG,IAAIJ,WAAW,MAAMN,OAAO,MAAMI,MAAM,iBAAiB;EAE5E,MAAMO,iBAAiB,GAAGjB,6BAA6B,CAACK,mBAAmB,CAAC;EAE5E,OAAO,eAAea,oBAAoBA,CAAA,EAAG;IAC3CC,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,kCAAkC,CAAC;IAC5DG,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,sBAAsBZ,iBAAiB,IAAI,CAAC;IAErE,IAAI;MACF,MAAMa,iBAAiB,CAACI,YAAY,CAAC,CAAC;MACtC,IAAIP,SAAS,EAAE;QACbK,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,iCAAiC,CAAC;MAC7D;IACF,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZH,OAAO,CAACI,KAAK,CAAC,GAAGP,UAAU,+BAA+B,EAAEM,GAAG,CAAC;IAClE;IAEA,MAAME,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,IAAI;QACF,MAAMC,MAAM,GAAG,MAAMT,iBAAiB,CAACI,YAAY,CAAC,CAAC;QACrD,IAAIP,SAAS,EAAE;UACbK,OAAO,CAACC,GAAG,CACT,GAAGJ,UAAU,8BAA8BU,MAAM,CAACC,SAAS,aAAaD,MAAM,CAACE,MAAM,EACvF,CAAC;QACH;MACF,CAAC,CAAC,OAAON,GAAG,EAAE;QACZH,OAAO,CAACI,KAAK,CAAC,GAAGP,UAAU,+BAA+B,EAAEM,GAAG,CAAC;MAClE;IACF,CAAC,EAAElB,iBAAiB,CAAC;IAErBG,OAAO,CAACsB,EAAE,CAAC,SAAS,EAAE,MAAM;MAC1BV,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,qCAAqC,CAAC;MAC/Dc,aAAa,CAACN,QAAQ,CAAC;MACvBP,iBAAiB,CAACc,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACxCzB,OAAO,CAAC0B,IAAI,CAAC,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF1B,OAAO,CAACsB,EAAE,CAAC,QAAQ,EAAE,MAAM;MACzBV,OAAO,CAACC,GAAG,CAAC,GAAGJ,UAAU,oCAAoC,CAAC;MAC9Dc,aAAa,CAACN,QAAQ,CAAC;MACvBP,iBAAiB,CAACc,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACxCzB,OAAO,CAAC0B,IAAI,CAAC,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adalo/metrics",
3
- "version": "0.1.126",
3
+ "version": "0.1.128",
4
4
  "description": "Reusable metrics utilities for Node.js and Laravel apps",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -1,4 +1,4 @@
1
- import { HealthCheckClient } from './healthCheckClient'
1
+ const { HealthCheckClient } = require('./healthCheckClient')
2
2
 
3
3
  /**
4
4
  * Creates a health check client for worker process.
@@ -72,7 +72,7 @@ function createHealthCheckEndpointClient(options) {
72
72
  })
73
73
  }
74
74
 
75
- export default {
75
+ module.exports = {
76
76
  createHealthCheckWorkerClient,
77
77
  createHealthCheckEndpointClient,
78
78
  }
@@ -14,7 +14,7 @@
14
14
  * @param {number} [options.refreshIntervalMs=60000] - Refresh interval in milliseconds (default: 1 minute)
15
15
  * @param {number} [options.cacheTtlMs=60000] - Cache TTL in milliseconds
16
16
  */
17
- const { createHealthCheckWorkerClient } = require('./healthCheckUtils').default
17
+ const { createHealthCheckWorkerClient } = require('./healthCheckUtils')
18
18
 
19
19
  export function createHealthCheckWorker(options) {
20
20
  const { refreshIntervalMs = 60000, ...workerClientOptions } = options