@sera4/essentia 3.0.14 → 3.1.0-rc.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.
Files changed (75) hide show
  1. package/README.md +93 -308
  2. package/dist/ts/cache/index.d.ts +2 -2
  3. package/dist/ts/cache/index.js +13 -9
  4. package/dist/ts/cache/index.js.map +1 -1
  5. package/dist/ts/constants/index.d.ts +1 -1
  6. package/dist/ts/constants/index.js +4 -4
  7. package/dist/ts/constants/index.js.map +1 -1
  8. package/dist/ts/cycle/index.js +22 -20
  9. package/dist/ts/cycle/index.js.map +1 -1
  10. package/dist/ts/dns/{DnsCache.js → dns-cache.js} +17 -10
  11. package/dist/ts/dns/dns-cache.js.map +1 -0
  12. package/dist/ts/dns/index.d.ts +1 -1
  13. package/dist/ts/dns/index.js +1 -1
  14. package/dist/ts/dns/index.js.map +1 -1
  15. package/dist/ts/formatter/index.d.ts +19 -18
  16. package/dist/ts/formatter/index.js +32 -26
  17. package/dist/ts/formatter/index.js.map +1 -1
  18. package/dist/ts/hal/index.d.ts +1 -1
  19. package/dist/ts/hal/index.js +4 -4
  20. package/dist/ts/hal/index.js.map +1 -1
  21. package/dist/ts/health/index.d.ts +2 -3
  22. package/dist/ts/health/index.js +44 -39
  23. package/dist/ts/health/index.js.map +1 -1
  24. package/dist/ts/helpers/test-server-wrapper.d.ts +2 -2
  25. package/dist/ts/helpers/test-server-wrapper.js +17 -8
  26. package/dist/ts/helpers/test-server-wrapper.js.map +1 -1
  27. package/dist/ts/index.d.ts +14 -16
  28. package/dist/ts/index.js +16 -18
  29. package/dist/ts/index.js.map +1 -1
  30. package/dist/ts/last-commit/index.js +11 -11
  31. package/dist/ts/last-commit/index.js.map +1 -1
  32. package/dist/ts/logger/index.d.ts +2 -1
  33. package/dist/ts/logger/index.js +2 -1
  34. package/dist/ts/logger/index.js.map +1 -1
  35. package/dist/ts/logger/s4-logger.d.ts +19 -1
  36. package/dist/ts/logger/s4-logger.js +45 -16
  37. package/dist/ts/logger/s4-logger.js.map +1 -1
  38. package/dist/ts/paginator/s4-pagination.d.ts +13 -11
  39. package/dist/ts/paginator/s4-pagination.js +10 -10
  40. package/dist/ts/paginator/s4-pagination.js.map +1 -1
  41. package/dist/ts/paginator/sql-pagination.js +35 -16
  42. package/dist/ts/paginator/sql-pagination.js.map +1 -1
  43. package/dist/ts/paper-trail/helpers.js +22 -24
  44. package/dist/ts/paper-trail/helpers.js.map +1 -1
  45. package/dist/ts/paper-trail/index.d.ts +1 -1
  46. package/dist/ts/paper-trail/index.js +62 -63
  47. package/dist/ts/paper-trail/index.js.map +1 -1
  48. package/dist/ts/prompts/index.d.ts +2 -2
  49. package/dist/ts/prompts/index.js +9 -9
  50. package/dist/ts/prompts/index.js.map +1 -1
  51. package/dist/ts/queue/index.d.ts +1 -1
  52. package/dist/ts/queue/index.js +22 -16
  53. package/dist/ts/queue/index.js.map +1 -1
  54. package/dist/ts/queue/publisher.js +5 -2
  55. package/dist/ts/queue/publisher.js.map +1 -1
  56. package/dist/ts/queue/queue-logger.js +1 -1
  57. package/dist/ts/queue/subscriber.js +7 -1
  58. package/dist/ts/queue/subscriber.js.map +1 -1
  59. package/dist/ts/safe-proxy/index.d.ts +3 -14
  60. package/dist/ts/safe-proxy/index.js +4 -8
  61. package/dist/ts/safe-proxy/index.js.map +1 -1
  62. package/dist/ts/serializer/index.d.ts +1 -1
  63. package/dist/ts/serializer/index.js +4 -4
  64. package/dist/ts/serializer/index.js.map +1 -1
  65. package/dist/ts/task-scheduler/index.js +9 -7
  66. package/dist/ts/task-scheduler/index.js.map +1 -1
  67. package/dist/ts/utils/index.d.ts +2 -2
  68. package/dist/ts/utils/index.js +33 -28
  69. package/dist/ts/utils/index.js.map +1 -1
  70. package/last-commit.ts +12 -0
  71. package/package.json +28 -11
  72. package/dist/ts/dns/DnsCache.js.map +0 -1
  73. package/index.js +0 -17
  74. package/package.tar.gz +0 -0
  75. /package/dist/ts/dns/{DnsCache.d.ts → dns-cache.d.ts} +0 -0
@@ -1,14 +1,17 @@
1
- import fs from 'node:fs';
2
- import { S4Logger } from '../logger/index.js';
1
+ import fs from "node:fs";
2
+ import { S4Logger } from "../logger/index.js";
3
3
  const logger = new S4Logger();
4
4
  export class CycleDeploymentWatcher {
5
+ static instance = null;
6
+ metadataPath;
7
+ watcher = null;
8
+ currentTags = {};
9
+ listeners = new Set();
10
+ deploymentVersion;
5
11
  constructor() {
6
- this.watcher = null;
7
- this.currentTags = {};
8
- this.listeners = new Set();
9
12
  // Get deployment version from environment, default to empty string if not available
10
- this.deploymentVersion = process.env.CYCLE_DEPLOYMENT_VERSION || '';
11
- this.metadataPath = '/var/run/cycle/metadata/environment.json';
13
+ this.deploymentVersion = process.env.CYCLE_DEPLOYMENT_VERSION || "";
14
+ this.metadataPath = "/var/run/cycle/metadata/environment.json";
12
15
  this.currentTags = {};
13
16
  this.initializeWatcher();
14
17
  }
@@ -22,38 +25,38 @@ export class CycleDeploymentWatcher {
22
25
  try {
23
26
  // Check if file exists
24
27
  if (!fs.existsSync(this.metadataPath)) {
25
- logger.info('Cycle metadata file does not exist:', this.metadataPath);
28
+ logger.info("Cycle metadata file does not exist:", this.metadataPath);
26
29
  return;
27
30
  }
28
31
  // Initial read
29
32
  this.readAndParseFile();
30
33
  // Set up watcher
31
34
  this.watcher = fs.watch(this.metadataPath, (eventType) => {
32
- if (eventType === 'change') {
35
+ if (eventType === "change") {
33
36
  this.readAndParseFile();
34
37
  }
35
38
  });
36
39
  // Handle watcher errors
37
- this.watcher.on('error', (error) => {
38
- logger.error('Error watching Cycle metadata file:', error);
40
+ this.watcher.on("error", (error) => {
41
+ logger.error("Error watching Cycle metadata file:", error);
39
42
  // Attempt to reinitialize watcher after a delay
40
43
  setTimeout(() => this.initializeWatcher(), 5000);
41
44
  });
42
45
  }
43
46
  catch (error) {
44
- logger.error('Failed to initialize Cycle metadata watcher:', error);
47
+ logger.error("Failed to initialize Cycle metadata watcher:", error);
45
48
  }
46
49
  }
47
50
  readAndParseFile() {
48
51
  try {
49
52
  // Check if file exists before reading
50
53
  if (!fs.existsSync(this.metadataPath)) {
51
- logger.info('Cycle metadata file does not exist:', this.metadataPath);
54
+ logger.info("Cycle metadata file does not exist:", this.metadataPath);
52
55
  this.currentTags = {};
53
56
  this.notifyListeners();
54
57
  return;
55
58
  }
56
- const data = fs.readFileSync(this.metadataPath, 'utf8');
59
+ const data = fs.readFileSync(this.metadataPath, "utf8");
57
60
  try {
58
61
  const environment = JSON.parse(data);
59
62
  this.currentTags = environment.deployments.tags;
@@ -67,25 +70,25 @@ export class CycleDeploymentWatcher {
67
70
  this.notifyListeners();
68
71
  }
69
72
  catch (parseError) {
70
- if (data === 'invalid json') {
73
+ if (data === "invalid json") {
71
74
  // This is a test error, don't log it
72
75
  this.currentTags = {};
73
76
  this.notifyListeners();
74
77
  return;
75
78
  }
76
- logger.error('Error parsing Cycle metadata file:', parseError);
79
+ logger.error("Error parsing Cycle metadata file:", parseError);
77
80
  this.currentTags = {};
78
81
  this.notifyListeners();
79
82
  }
80
83
  }
81
84
  catch (error) {
82
- if (error instanceof Error && error.message === 'File read error') {
85
+ if (error instanceof Error && error.message === "File read error") {
83
86
  // This is a test error, don't log it
84
87
  this.currentTags = {};
85
88
  this.notifyListeners();
86
89
  return;
87
90
  }
88
- logger.error('Error reading Cycle metadata file:', error);
91
+ logger.error("Error reading Cycle metadata file:", error);
89
92
  this.currentTags = {};
90
93
  this.notifyListeners();
91
94
  }
@@ -96,7 +99,7 @@ export class CycleDeploymentWatcher {
96
99
  listener(this.currentTags);
97
100
  }
98
101
  catch (error) {
99
- logger.error('Error notifying listener:', error);
102
+ logger.error("Error notifying listener:", error);
100
103
  }
101
104
  }
102
105
  }
@@ -163,7 +166,6 @@ export class CycleDeploymentWatcher {
163
166
  CycleDeploymentWatcher.instance = null;
164
167
  }
165
168
  }
166
- CycleDeploymentWatcher.instance = null;
167
169
  // Export a default instance
168
170
  export default CycleDeploymentWatcher.getInstance();
169
171
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/cycle/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/cycle/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
- import { S4Logger } from '../logger/index.js';
2
- import dns from 'node:dns';
1
+ import dns from "node:dns";
2
+ import { S4Logger } from "../logger/index.js";
3
3
  export class DnsCache {
4
+ static instance = null;
5
+ cache;
6
+ ongoingLookups;
7
+ cacheTtlMs;
8
+ purgeIntervalMs;
9
+ debug;
10
+ forceTestMode;
11
+ logger;
4
12
  constructor(config = {}) {
5
13
  this.cache = new Map();
6
14
  this.ongoingLookups = new Map();
@@ -9,10 +17,10 @@ export class DnsCache {
9
17
  this.debug = config.debug ?? false;
10
18
  this.forceTestMode = config.forceTestMode ?? false;
11
19
  this.logger = new S4Logger();
12
- this.logger.configure({ service: 'dns-cache' });
20
+ this.logger.configure({ service: "dns-cache" });
13
21
  }
14
22
  static getInstance(config = {}) {
15
- DnsCache.instance ?? (DnsCache.instance = new DnsCache(config));
23
+ DnsCache.instance ??= new DnsCache(config);
16
24
  return DnsCache.instance;
17
25
  }
18
26
  /**
@@ -26,11 +34,11 @@ export class DnsCache {
26
34
  try {
27
35
  // Only return localhost if explicitly in test mode
28
36
  if (this.forceTestMode) {
29
- return `${parsed.protocol}//localhost:${parsed.port || 80}${keepPath ? parsed.pathname : ''}`;
37
+ return `${parsed.protocol}//localhost:${parsed.port || 80}${keepPath ? parsed.pathname : ""}`;
30
38
  }
31
39
  const ip = await this.lookupWithCache(parsed.hostname);
32
- let hostPart = ip.includes(':') ? `[${ip}]` : ip; // wrap IPv6
33
- return `${parsed.protocol}//${hostPart}:${parsed.port || 80}${keepPath ? parsed.pathname : ''}`;
40
+ const hostPart = ip.includes(":") ? `[${ip}]` : ip; // wrap IPv6
41
+ return `${parsed.protocol}//${hostPart}:${parsed.port || 80}${keepPath ? parsed.pathname : ""}`;
34
42
  }
35
43
  catch (e) {
36
44
  if (this.forceTestMode) {
@@ -83,7 +91,7 @@ export class DnsCache {
83
91
  const now = Date.now();
84
92
  const cached = this.cache.get(target);
85
93
  // Check for valid cache entry first
86
- if (cached && (now - cached.timestamp < this.cacheTtlMs)) {
94
+ if (cached && now - cached.timestamp < this.cacheTtlMs) {
87
95
  this.logger.debug(`DNS cache hit for ${target}`);
88
96
  return cached.address;
89
97
  }
@@ -131,7 +139,6 @@ export class DnsCache {
131
139
  return this.ongoingLookups.size;
132
140
  }
133
141
  }
134
- DnsCache.instance = null;
135
142
  // Export a default instance with default configuration
136
143
  export default DnsCache.getInstance();
137
- //# sourceMappingURL=DnsCache.js.map
144
+ //# sourceMappingURL=dns-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns-cache.js","sourceRoot":"","sources":["../../../ts/dns/dns-cache.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DnsCache } from './DnsCache.js';
1
+ import { DnsCache } from "./dns-cache.js";
2
2
  export { DnsCache };
3
3
  declare const _default: DnsCache;
4
4
  export default _default;
@@ -1,4 +1,4 @@
1
- import { DnsCache } from './DnsCache.js';
1
+ import { DnsCache } from "./dns-cache.js";
2
2
  export { DnsCache };
3
3
  export default DnsCache.getInstance();
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/dns/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/dns/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC,WAAW,EAAE,CAAC"}
@@ -8,8 +8,9 @@ interface FormattedError {
8
8
  }
9
9
  interface ErrorInput {
10
10
  status?: number | string;
11
- error?: string;
11
+ error?: string | string[];
12
12
  errors?: string[] | Record<string, any>;
13
+ [key: string]: any;
13
14
  }
14
15
  declare class FormatError extends Error {
15
16
  constructor(message: string);
@@ -20,25 +21,25 @@ declare class S4Formatter {
20
21
  private _isArray;
21
22
  private _fromHash;
22
23
  /**
23
- * Desired Response format
24
- *{
25
- * "error": {
26
- * "status": 422,
27
- * "errors": {
28
- * "password": {
29
- * "location": "body",
30
- * "param": "password",
31
- * "value": "mypassword",
32
- * "msg": "weak"
33
- * }
34
- * }
35
- * },
36
- * "error_id": "a2ddf895-2aaf-4189-88a2-8e11f6843f91"
37
- *}
38
- */
24
+ * Desired Response format
25
+ *{
26
+ * "error": {
27
+ * "status": 422,
28
+ * "errors": {
29
+ * "password": {
30
+ * "location": "body",
31
+ * "param": "password",
32
+ * "value": "mypassword",
33
+ * "msg": "weak"
34
+ * }
35
+ * }
36
+ * },
37
+ * "error_id": "a2ddf895-2aaf-4189-88a2-8e11f6843f91"
38
+ *}
39
+ */
39
40
  formatError(error: ErrorInput | null): ErrorResponse;
40
41
  }
41
42
  declare const formatter: S4Formatter;
42
43
  export default formatter;
43
- export type { ErrorResponse, FormattedError, ErrorInput };
44
+ export type { ErrorInput, ErrorResponse, FormattedError };
44
45
  export { FormatError };
@@ -6,25 +6,31 @@ class FormatError extends Error {
6
6
  }
7
7
  // helps to clean up response formats for services responding to rest requests
8
8
  class S4Formatter {
9
+ defaults;
9
10
  constructor() {
10
11
  this.defaults = {
11
12
  status: 422,
12
- errors: {}
13
+ errors: {},
13
14
  };
14
15
  }
15
16
  _isArray(value) {
16
- return value && typeof value === 'object' && value.constructor === Array;
17
+ return value && typeof value === "object" && value.constructor === Array;
17
18
  }
18
19
  _fromHash(error) {
19
- const response = Object.assign({}, this.defaults);
20
+ const response = { status: this.defaults.status, errors: {} };
20
21
  if (error.status) {
21
- const errorStatus = parseInt(error.status.toString());
22
- if ((errorStatus >= 200) && (errorStatus < 522)) {
22
+ const errorStatus = parseInt(error.status.toString(), 10);
23
+ if (errorStatus >= 200 && errorStatus < 522) {
23
24
  response.status = errorStatus;
24
25
  }
25
26
  }
26
- if (error.error && (typeof (error.error) === "string")) {
27
- response.errors["generic"] = { msg: error.error };
27
+ if (error.error && typeof error.error === "string") {
28
+ response.errors.generic = { msg: error.error };
29
+ }
30
+ else if (error.error && this._isArray(error.error)) {
31
+ error.error.forEach((el, index) => {
32
+ response.errors[`generic_${index}`] = { msg: el };
33
+ });
28
34
  }
29
35
  else if (error.errors) {
30
36
  if (this._isArray(error.errors)) {
@@ -33,35 +39,35 @@ class S4Formatter {
33
39
  response.errors[`generic_${index}`] = { msg: el };
34
40
  });
35
41
  }
36
- else if (typeof (error.errors) === "object") {
42
+ else if (typeof error.errors === "object") {
37
43
  response.errors = error.errors;
38
44
  }
39
45
  }
40
46
  return response;
41
47
  }
42
48
  /**
43
- * Desired Response format
44
- *{
45
- * "error": {
46
- * "status": 422,
47
- * "errors": {
48
- * "password": {
49
- * "location": "body",
50
- * "param": "password",
51
- * "value": "mypassword",
52
- * "msg": "weak"
53
- * }
54
- * }
55
- * },
56
- * "error_id": "a2ddf895-2aaf-4189-88a2-8e11f6843f91"
57
- *}
58
- */
49
+ * Desired Response format
50
+ *{
51
+ * "error": {
52
+ * "status": 422,
53
+ * "errors": {
54
+ * "password": {
55
+ * "location": "body",
56
+ * "param": "password",
57
+ * "value": "mypassword",
58
+ * "msg": "weak"
59
+ * }
60
+ * }
61
+ * },
62
+ * "error_id": "a2ddf895-2aaf-4189-88a2-8e11f6843f91"
63
+ *}
64
+ */
59
65
  formatError(error) {
60
66
  let response;
61
67
  if (error === null) {
62
- response = this.defaults;
68
+ response = { status: this.defaults.status, errors: {} };
63
69
  }
64
- else if (typeof (error) === "object") {
70
+ else if (typeof error === "object") {
65
71
  response = this._fromHash(error);
66
72
  }
67
73
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/formatter/index.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAY,SAAQ,KAAK;IAC7B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,WAAW;IAGf;QACE,IAAI,CAAC,QAAQ,GAAG;YACd,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,KAAU;QACzB,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;IAC3E,CAAC;IAEO,SAAS,CAAC,KAAiB;QACjC,MAAM,QAAQ,GAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtD,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,OAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,yDAAyD;gBACzD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,KAAa,EAAE,EAAE;oBAC9C,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC7C,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;MAgBE;IACF,WAAW,CAAC,KAAwB;QAClC,IAAI,QAAuB,CAAC;QAE5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,CAAC;aAAM,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAG,CAAC;YACvC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC;AACpC,eAAe,SAAS,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/formatter/index.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,4 @@ declare class HalDecorator {
23
23
  }
24
24
  declare const halDecorator: HalDecorator;
25
25
  export default halDecorator;
26
- export type { HalOptions, ModelInstance, LinkData };
26
+ export type { HalOptions, LinkData, ModelInstance };
@@ -1,5 +1,5 @@
1
1
  function lastElement(arr) {
2
- if (arr && arr.length) {
2
+ if (arr?.length) {
3
3
  return arr[arr.length - 1];
4
4
  }
5
5
  else {
@@ -26,12 +26,12 @@ class HalDecorator {
26
26
  const linkData = {};
27
27
  if (links) {
28
28
  for (const key in links) {
29
- if (links.hasOwnProperty(key)) {
29
+ if (Object.hasOwn(links, key)) {
30
30
  const link = links[key];
31
31
  const method = lastElement(Object.keys(link));
32
32
  if (method) {
33
33
  let url = link[method];
34
- const paramPattern = /\:([a-zA-z_0-9]*)/;
34
+ const paramPattern = /:([a-zA-z_0-9]*)/;
35
35
  const arr = paramPattern.exec(url);
36
36
  if (arr) {
37
37
  // Replace parameters
@@ -51,7 +51,7 @@ class HalDecorator {
51
51
  Model.prototype.toJSON = function () {
52
52
  const values = Object.assign({}, this.get());
53
53
  if (exclude) {
54
- exclude.forEach(element => {
54
+ exclude.forEach((element) => {
55
55
  delete values[element];
56
56
  });
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/hal/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/hal/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Request, Response } from 'express';
1
+ import type { Request, Response } from "express";
2
2
  interface HealthCheckResult {
3
3
  name: string;
4
- result: 'success' | 'fail';
4
+ result: "success" | "fail";
5
5
  critical?: boolean;
6
6
  status?: number;
7
7
  }
@@ -34,7 +34,6 @@ export declare class HealthCheck {
34
34
  private readonly logger;
35
35
  private readonly defaultResponse;
36
36
  private readonly defaultPathRoute;
37
- private suppressLogs;
38
37
  private lastCallId;
39
38
  private pathPrefix;
40
39
  private healthChecks;