@sera4/essentia 3.0.12 → 3.0.13

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 (87) hide show
  1. package/package.json +9 -3
  2. package/package.tar.gz +0 -0
  3. package/scripts/publish.sh +46 -0
  4. package/dist/ts/cache/index.d.ts +0 -33
  5. package/dist/ts/cache/index.js +0 -171
  6. package/dist/ts/cache/index.js.map +0 -1
  7. package/dist/ts/configurations/server-config.d.ts +0 -4
  8. package/dist/ts/configurations/server-config.js +0 -2
  9. package/dist/ts/configurations/server-config.js.map +0 -1
  10. package/dist/ts/constants/index.d.ts +0 -7
  11. package/dist/ts/constants/index.js +0 -8
  12. package/dist/ts/constants/index.js.map +0 -1
  13. package/dist/ts/cycle/index.d.ts +0 -53
  14. package/dist/ts/cycle/index.js +0 -169
  15. package/dist/ts/cycle/index.js.map +0 -1
  16. package/dist/ts/dns/DnsCache.d.ts +0 -50
  17. package/dist/ts/dns/DnsCache.js +0 -137
  18. package/dist/ts/dns/DnsCache.js.map +0 -1
  19. package/dist/ts/dns/index.d.ts +0 -4
  20. package/dist/ts/dns/index.js +0 -4
  21. package/dist/ts/dns/index.js.map +0 -1
  22. package/dist/ts/formatter/index.d.ts +0 -44
  23. package/dist/ts/formatter/index.js +0 -76
  24. package/dist/ts/formatter/index.js.map +0 -1
  25. package/dist/ts/hal/index.d.ts +0 -26
  26. package/dist/ts/hal/index.js +0 -70
  27. package/dist/ts/hal/index.js.map +0 -1
  28. package/dist/ts/health/index.d.ts +0 -53
  29. package/dist/ts/health/index.js +0 -165
  30. package/dist/ts/health/index.js.map +0 -1
  31. package/dist/ts/helpers/index.d.ts +0 -1
  32. package/dist/ts/helpers/index.js +0 -2
  33. package/dist/ts/helpers/index.js.map +0 -1
  34. package/dist/ts/helpers/test-server-wrapper.d.ts +0 -56
  35. package/dist/ts/helpers/test-server-wrapper.js +0 -144
  36. package/dist/ts/helpers/test-server-wrapper.js.map +0 -1
  37. package/dist/ts/index.d.ts +0 -22
  38. package/dist/ts/index.js +0 -27
  39. package/dist/ts/index.js.map +0 -1
  40. package/dist/ts/last-commit/index.d.ts +0 -12
  41. package/dist/ts/last-commit/index.js +0 -82
  42. package/dist/ts/last-commit/index.js.map +0 -1
  43. package/dist/ts/logger/index.d.ts +0 -3
  44. package/dist/ts/logger/index.js +0 -4
  45. package/dist/ts/logger/index.js.map +0 -1
  46. package/dist/ts/logger/s4-logger.d.ts +0 -23
  47. package/dist/ts/logger/s4-logger.js +0 -105
  48. package/dist/ts/logger/s4-logger.js.map +0 -1
  49. package/dist/ts/paginator/index.d.ts +0 -2
  50. package/dist/ts/paginator/index.js +0 -3
  51. package/dist/ts/paginator/index.js.map +0 -1
  52. package/dist/ts/paginator/s4-pagination.d.ts +0 -26
  53. package/dist/ts/paginator/s4-pagination.js +0 -49
  54. package/dist/ts/paginator/s4-pagination.js.map +0 -1
  55. package/dist/ts/paginator/sql-pagination.d.ts +0 -52
  56. package/dist/ts/paginator/sql-pagination.js +0 -157
  57. package/dist/ts/paginator/sql-pagination.js.map +0 -1
  58. package/dist/ts/paper-trail/helpers.d.ts +0 -14
  59. package/dist/ts/paper-trail/helpers.js +0 -74
  60. package/dist/ts/paper-trail/helpers.js.map +0 -1
  61. package/dist/ts/paper-trail/index.d.ts +0 -54
  62. package/dist/ts/paper-trail/index.js +0 -236
  63. package/dist/ts/paper-trail/index.js.map +0 -1
  64. package/dist/ts/prompts/index.d.ts +0 -21
  65. package/dist/ts/prompts/index.js +0 -68
  66. package/dist/ts/prompts/index.js.map +0 -1
  67. package/dist/ts/queue/index.d.ts +0 -232
  68. package/dist/ts/queue/index.js +0 -451
  69. package/dist/ts/queue/index.js.map +0 -1
  70. package/dist/ts/queue/publisher.d.ts +0 -41
  71. package/dist/ts/queue/publisher.js +0 -84
  72. package/dist/ts/queue/publisher.js.map +0 -1
  73. package/dist/ts/queue/queue-logger.d.ts +0 -10
  74. package/dist/ts/queue/queue-logger.js +0 -35
  75. package/dist/ts/queue/queue-logger.js.map +0 -1
  76. package/dist/ts/queue/subscriber.d.ts +0 -55
  77. package/dist/ts/queue/subscriber.js +0 -98
  78. package/dist/ts/queue/subscriber.js.map +0 -1
  79. package/dist/ts/safe-proxy/index.d.ts +0 -35
  80. package/dist/ts/safe-proxy/index.js +0 -54
  81. package/dist/ts/safe-proxy/index.js.map +0 -1
  82. package/dist/ts/serializer/index.d.ts +0 -52
  83. package/dist/ts/serializer/index.js +0 -83
  84. package/dist/ts/serializer/index.js.map +0 -1
  85. package/dist/ts/utils/index.d.ts +0 -49
  86. package/dist/ts/utils/index.js +0 -157
  87. package/dist/ts/utils/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sera4/essentia",
3
- "version": "3.0.12",
3
+ "version": "3.0.13",
4
4
  "description": "A library of utilities for Teleporte Web Services",
5
5
  "main": "dist/ts/index.js",
6
6
  "type": "module",
@@ -34,7 +34,8 @@
34
34
  "last-commit": "node last-commit.js",
35
35
  "build": "tsc",
36
36
  "build:watch": "tsc -w",
37
- "clean": "rm -rf dist"
37
+ "clean": "rm -rf dist",
38
+ "publish:package": "scripts/publish.sh"
38
39
  },
39
40
  "author": "Dev DM <dev@sera4.com>",
40
41
  "repository": {
@@ -43,6 +44,7 @@
43
44
  },
44
45
  "license": "UNLICENSED",
45
46
  "devDependencies": {
47
+ "@types/amqplib": "^0.10.8",
46
48
  "@types/argparse": "^2.0.17",
47
49
  "@types/chai": "^4.3.11",
48
50
  "@types/express": "^4.17.21",
@@ -50,9 +52,12 @@
50
52
  "@types/mocha": "^10.0.10",
51
53
  "@types/morgan": "^1.9.9",
52
54
  "@types/node": "^20.17.32",
55
+ "@types/node-cron": "^3.0.11",
53
56
  "@types/prompt": "^1.1.9",
54
57
  "@types/sinon": "^10.0.20",
55
58
  "@types/sinon-chai": "^4.0.0",
59
+ "@types/url-parse": "^1.4.11",
60
+ "@types/uuid": "^10.0.0",
56
61
  "c8": "^8.0.1",
57
62
  "chai": "^5.2.0",
58
63
  "express": "^4.17.1",
@@ -67,7 +72,7 @@
67
72
  "typescript": "^5.3.3"
68
73
  },
69
74
  "dependencies": {
70
- "amqplib": "^0.10.7",
75
+ "amqplib": "^0.10.9",
71
76
  "argparse": "^2.0.1",
72
77
  "async": "^3.2.2",
73
78
  "axios": "^1.7.7",
@@ -77,6 +82,7 @@
77
82
  "git-rev": "^0.2.1",
78
83
  "lodash": "^4.17.21",
79
84
  "morgan": "^1.10.0",
85
+ "node-cron": "^4.2.1",
80
86
  "prompt": "^1.3.0",
81
87
  "recursive-iterator": "^3.3.0",
82
88
  "url-parse": "^1.5.10",
package/package.tar.gz CHANGED
Binary file
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
5
+ cd "$ROOT"
6
+
7
+ # ── Version resolution ────────────────────────────────────────────────────────
8
+ VERSION="${BUILD_VERSION:-}"
9
+
10
+ if [ -z "$VERSION" ]; then
11
+ VERSION=$(node -p "require('./package.json').version")
12
+ fi
13
+
14
+ if [ -z "$VERSION" ] || [ "$VERSION" = "0.0.0" ]; then
15
+ echo "error: no version specified — set BUILD_VERSION or package.json version" >&2
16
+ exit 1
17
+ fi
18
+
19
+ PACKAGE=$(node -p "require('./package.json').name")
20
+ echo "publishing $PACKAGE@$VERSION"
21
+
22
+ # ── Stamp version, restore on exit ───────────────────────────────────────────
23
+ ORIGINAL_VERSION=$(node -p "require('./package.json').version")
24
+ restore_version() {
25
+ npm pkg set version="$ORIGINAL_VERSION" --silent
26
+ }
27
+ trap restore_version EXIT
28
+
29
+ npm pkg set version="$VERSION" --silent
30
+
31
+ # ── Build ─────────────────────────────────────────────────────────────────────
32
+ echo "building..."
33
+ npm run build
34
+
35
+ # ── Dist-tag: prerelease versions get 'next', stable versions get 'latest' ───
36
+ if [[ "$VERSION" =~ -[a-zA-Z] ]]; then
37
+ DIST_TAG="next"
38
+ else
39
+ DIST_TAG="latest"
40
+ fi
41
+
42
+ # ── Publish ───────────────────────────────────────────────────────────────────
43
+ echo "publishing with tag: $DIST_TAG"
44
+ npm publish --access public --tag "$DIST_TAG"
45
+
46
+ echo "done: $PACKAGE@$VERSION"
@@ -1,33 +0,0 @@
1
- interface CacheConfig {
2
- password?: string;
3
- database?: number;
4
- host?: string;
5
- port?: number;
6
- fake?: boolean;
7
- [key: string]: any;
8
- }
9
- declare class CacheConfigError extends Error {
10
- constructor(message: string);
11
- }
12
- declare class Cache {
13
- private redisClient;
14
- private servicePrefix;
15
- constructor(config: CacheConfig, servicePrefix: string);
16
- ping(): Promise<string>;
17
- properKey(key: string, path?: string): string;
18
- writeHash(path: string, key: string, value: any): Promise<number>;
19
- writeHashBlocking(path: string, key: string, value: any): void;
20
- writeMultiHash(path: string, j: Record<string, any>): Promise<string>;
21
- readHashKey(obj: string, key: string, autoConvert?: boolean): Promise<any>;
22
- readHash(path: string): Promise<Record<string, any> | null>;
23
- deleteHashKey(hash: string, key: string): Promise<void>;
24
- get(key: string): Promise<string | null>;
25
- getAsync(key: string): Promise<string | null>;
26
- writeKey(key: string, value: any, expiry?: number): Promise<string>;
27
- deleteKey(key: string): Promise<number>;
28
- expire(path: string, expiry: number): Promise<number>;
29
- exists(path: string): Promise<number>;
30
- deleteAllKeys(): Promise<string>;
31
- }
32
- export default function (config: CacheConfig, servicePrefix: string): Cache;
33
- export { Cache, CacheConfigError };
@@ -1,171 +0,0 @@
1
- import { promisify } from "util";
2
- import { S4Logger } from "../logger/s4-logger.js";
3
- const logger = new S4Logger();
4
- const isEmpty = (obj) => {
5
- return [Object, Array].includes((obj || {}).constructor) && !Object.entries((obj || {})).length;
6
- };
7
- class CacheConfigError extends Error {
8
- constructor(message) {
9
- super(message);
10
- this.name = "CacheConfigError";
11
- }
12
- }
13
- /* Redis cache helper
14
- * Example use: Place the following code in your project to setup redis use
15
- *
16
- * import { cache } from "@sera4/essentia";
17
- * const cacheHelper = cache({ password: .., database: .., host: .., port: .. }, "service:"));
18
- *
19
- */
20
- const convertRedisKeyValueToJson = (v) => {
21
- return (v && v.length > 0 && v[0] !== null) ? JSON.parse(v) : null;
22
- };
23
- const convertRedisHashToJson = (v) => {
24
- if (v) {
25
- const result = {};
26
- for (const k in v) {
27
- if (v.hasOwnProperty(k)) {
28
- result[k] = JSON.parse(v[k]);
29
- }
30
- }
31
- return result;
32
- }
33
- else {
34
- return null;
35
- }
36
- };
37
- function convertJsonToRedisValue(j) {
38
- const result = {};
39
- for (const key in j) {
40
- if (j.hasOwnProperty(key)) {
41
- result[key] = JSON.stringify(j[key]);
42
- }
43
- }
44
- return result;
45
- }
46
- class Cache {
47
- constructor(config, servicePrefix) {
48
- if ((config == undefined) || isEmpty(config)) {
49
- throw new CacheConfigError("Invalid cache configuration");
50
- }
51
- if (servicePrefix == null) {
52
- throw new CacheConfigError("Invalid service prefix");
53
- }
54
- if (config.fake) {
55
- // used in testing
56
- this.redisClient = require("fakeredis").createClient("fake backend");
57
- }
58
- else {
59
- this.redisClient = require("redis").createClient(config);
60
- }
61
- this.redisClient.on("error", (err) => {
62
- logger.error("Cache/Redis error: ", err);
63
- });
64
- this.servicePrefix = servicePrefix;
65
- }
66
- ping() {
67
- return this.redisClient.ping();
68
- }
69
- properKey(key, path) {
70
- let p = this.servicePrefix + key;
71
- if (path) {
72
- p += path;
73
- }
74
- return p;
75
- }
76
- writeHash(path, key, value) {
77
- return this.redisClient.hsetAsync(this.properKey(key), key, value);
78
- }
79
- writeHashBlocking(path, key, value) {
80
- return this.redisClient.hset(this.properKey(key), key, value);
81
- }
82
- // write multiple hash keys and stringify every value
83
- writeMultiHash(path, j) {
84
- return this.redisClient.hmsetAsync(this.properKey(path), convertJsonToRedisValue(j));
85
- }
86
- readHashKey(obj, key, autoConvert = true) {
87
- return new Promise((resolve, reject) => {
88
- this.redisClient.hget(this.properKey(key, obj), key, (e, r) => {
89
- if (e) {
90
- logger.error("Redis hmget error:", e);
91
- reject(e);
92
- }
93
- else {
94
- resolve(autoConvert ? convertRedisKeyValueToJson(r) : r);
95
- }
96
- });
97
- });
98
- }
99
- readHash(path) {
100
- return new Promise((resolve, reject) => {
101
- this.redisClient.hgetall(this.properKey(path), (e, r) => {
102
- if (e) {
103
- console.log("Redis hget error:", e);
104
- reject(e);
105
- }
106
- else {
107
- resolve(convertRedisHashToJson(r));
108
- }
109
- });
110
- });
111
- }
112
- deleteHashKey(hash, key) {
113
- return new Promise((resolve, reject) => {
114
- this.redisClient.hdel(this.properKey(key, hash), key, (err) => {
115
- if (err) {
116
- logger.error("Redis hdel error:", err);
117
- reject(err);
118
- }
119
- else {
120
- resolve();
121
- }
122
- });
123
- });
124
- }
125
- get(key) {
126
- return this.redisClient.getAsync(this.properKey(key));
127
- }
128
- getAsync(key) {
129
- return promisify(this.redisClient.get.bind(this.redisClient))(this.properKey(key));
130
- }
131
- /* a single key write with optional expiry */
132
- // returns bluebird promise
133
- writeKey(key, value, expiry) {
134
- const fullKey = this.servicePrefix + key;
135
- if (expiry) {
136
- return this.redisClient.setAsync(fullKey, value, "EX", expiry);
137
- }
138
- else {
139
- return this.redisClient.setAsync(fullKey, value);
140
- }
141
- }
142
- deleteKey(key) {
143
- return this.redisClient.delAsync(this.properKey(key));
144
- }
145
- expire(path, expiry) {
146
- return this.redisClient.expire(path, expiry);
147
- }
148
- exists(path) {
149
- return this.redisClient.exists(path);
150
- }
151
- deleteAllKeys() {
152
- return new Promise((resolve, reject) => {
153
- if (process.env.NODE_ENV === "production") {
154
- throw new Error("Clearing system cache is not permitted in production");
155
- }
156
- this.redisClient.flushdb((err, res) => {
157
- if (err) {
158
- reject(err);
159
- }
160
- else {
161
- resolve(res);
162
- }
163
- });
164
- });
165
- }
166
- }
167
- export default function (config, servicePrefix) {
168
- return new Cache(config, servicePrefix);
169
- }
170
- export { Cache, CacheConfigError };
171
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/cache/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export interface ServerConfig {
2
- s4_identity_endpoint: string;
3
- debug_dns?: boolean;
4
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=server-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../../ts/configurations/server-config.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export declare const TWS_ROUTE_TYPES: Readonly<{
2
- readonly web: 1;
3
- readonly mobile: 2;
4
- readonly api: 3;
5
- readonly other: 4;
6
- }>;
7
- export type TWSRouteType = typeof TWS_ROUTE_TYPES[keyof typeof TWS_ROUTE_TYPES];
@@ -1,8 +0,0 @@
1
- // indicate what target URL was used for a request
2
- export const TWS_ROUTE_TYPES = Object.freeze({
3
- 'web': 1,
4
- 'mobile': 2,
5
- 'api': 3,
6
- 'other': 4
7
- });
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/constants/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACF,CAAC,CAAC"}
@@ -1,53 +0,0 @@
1
- export declare class CycleDeploymentWatcher {
2
- private static instance;
3
- private readonly metadataPath;
4
- private watcher;
5
- private currentTags;
6
- private listeners;
7
- private readonly deploymentVersion;
8
- private constructor();
9
- static getInstance(): CycleDeploymentWatcher;
10
- private initializeWatcher;
11
- private readAndParseFile;
12
- private notifyListeners;
13
- /**
14
- * Get all tags for a specific deployment version
15
- * @param version - The deployment version to find tags for (e.g., 'gwy-20250505-UTC18:54:32')
16
- * @returns Array of tag names that match the version
17
- */
18
- getTagsForVersion(version: string): string[];
19
- /**
20
- * Get the current version for a specific service
21
- * @param service - The service name (e.g., 'gateway', 'apm', etc.)
22
- * @returns The current version or undefined if not found
23
- */
24
- getCurrentVersion(service: string): string | undefined;
25
- /**
26
- * Get the legacy version for a specific service
27
- * @param service - The service name (e.g., 'gateway', 'apm', etc.)
28
- * @returns The legacy version or undefined if not found
29
- */
30
- getLegacyVersion(service: string): string | undefined;
31
- /**
32
- * Get the current deployment version
33
- * @returns The current deployment version from environment, or empty string if not available
34
- */
35
- getDeploymentVersion(): string;
36
- /**
37
- * Get all tags for the current deployment version
38
- * @returns Array of tag names that match the current deployment version
39
- */
40
- getCurrentDeploymentTags(): string[];
41
- /**
42
- * Add a listener for tag changes
43
- * @param listener - Function to call when tags change
44
- * @returns Function to remove the listener
45
- */
46
- addListener(listener: (tags: Record<string, string>) => void): () => void;
47
- /**
48
- * Clean up resources
49
- */
50
- destroy(): void;
51
- }
52
- declare const _default: CycleDeploymentWatcher;
53
- export default _default;
@@ -1,169 +0,0 @@
1
- import fs from 'node:fs';
2
- import { S4Logger } from '../logger/index.js';
3
- const logger = new S4Logger();
4
- export class CycleDeploymentWatcher {
5
- constructor() {
6
- this.watcher = null;
7
- this.currentTags = {};
8
- this.listeners = new Set();
9
- // 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';
12
- this.currentTags = {};
13
- this.initializeWatcher();
14
- }
15
- static getInstance() {
16
- if (!CycleDeploymentWatcher.instance) {
17
- CycleDeploymentWatcher.instance = new CycleDeploymentWatcher();
18
- }
19
- return CycleDeploymentWatcher.instance;
20
- }
21
- initializeWatcher() {
22
- try {
23
- // Check if file exists
24
- if (!fs.existsSync(this.metadataPath)) {
25
- logger.info('Cycle metadata file does not exist:', this.metadataPath);
26
- return;
27
- }
28
- // Initial read
29
- this.readAndParseFile();
30
- // Set up watcher
31
- this.watcher = fs.watch(this.metadataPath, (eventType) => {
32
- if (eventType === 'change') {
33
- this.readAndParseFile();
34
- }
35
- });
36
- // Handle watcher errors
37
- this.watcher.on('error', (error) => {
38
- logger.error('Error watching Cycle metadata file:', error);
39
- // Attempt to reinitialize watcher after a delay
40
- setTimeout(() => this.initializeWatcher(), 5000);
41
- });
42
- }
43
- catch (error) {
44
- logger.error('Failed to initialize Cycle metadata watcher:', error);
45
- }
46
- }
47
- readAndParseFile() {
48
- try {
49
- // Check if file exists before reading
50
- if (!fs.existsSync(this.metadataPath)) {
51
- logger.info('Cycle metadata file does not exist:', this.metadataPath);
52
- this.currentTags = {};
53
- this.notifyListeners();
54
- return;
55
- }
56
- const data = fs.readFileSync(this.metadataPath, 'utf8');
57
- try {
58
- const environment = JSON.parse(data);
59
- this.currentTags = environment.deployments.tags;
60
- // Log matching tags if deployment version is available
61
- if (this.deploymentVersion) {
62
- const matchingTags = this.getTagsForVersion(this.deploymentVersion);
63
- if (matchingTags.length > 0) {
64
- logger.info(`Current deployment version ${this.deploymentVersion} has the following tags:`, matchingTags);
65
- }
66
- }
67
- this.notifyListeners();
68
- }
69
- catch (parseError) {
70
- if (data === 'invalid json') {
71
- // This is a test error, don't log it
72
- this.currentTags = {};
73
- this.notifyListeners();
74
- return;
75
- }
76
- logger.error('Error parsing Cycle metadata file:', parseError);
77
- this.currentTags = {};
78
- this.notifyListeners();
79
- }
80
- }
81
- catch (error) {
82
- if (error instanceof Error && error.message === 'File read error') {
83
- // This is a test error, don't log it
84
- this.currentTags = {};
85
- this.notifyListeners();
86
- return;
87
- }
88
- logger.error('Error reading Cycle metadata file:', error);
89
- this.currentTags = {};
90
- this.notifyListeners();
91
- }
92
- }
93
- notifyListeners() {
94
- for (const listener of this.listeners) {
95
- try {
96
- listener(this.currentTags);
97
- }
98
- catch (error) {
99
- logger.error('Error notifying listener:', error);
100
- }
101
- }
102
- }
103
- /**
104
- * Get all tags for a specific deployment version
105
- * @param version - The deployment version to find tags for (e.g., 'gwy-20250505-UTC18:54:32')
106
- * @returns Array of tag names that match the version
107
- */
108
- getTagsForVersion(version) {
109
- return Object.entries(this.currentTags)
110
- .filter(([_, value]) => value === version)
111
- .map(([key]) => key);
112
- }
113
- /**
114
- * Get the current version for a specific service
115
- * @param service - The service name (e.g., 'gateway', 'apm', etc.)
116
- * @returns The current version or undefined if not found
117
- */
118
- getCurrentVersion(service) {
119
- return this.currentTags[`current-${service}`];
120
- }
121
- /**
122
- * Get the legacy version for a specific service
123
- * @param service - The service name (e.g., 'gateway', 'apm', etc.)
124
- * @returns The legacy version or undefined if not found
125
- */
126
- getLegacyVersion(service) {
127
- return this.currentTags[`legacy-${service}`];
128
- }
129
- /**
130
- * Get the current deployment version
131
- * @returns The current deployment version from environment, or empty string if not available
132
- */
133
- getDeploymentVersion() {
134
- return this.deploymentVersion;
135
- }
136
- /**
137
- * Get all tags for the current deployment version
138
- * @returns Array of tag names that match the current deployment version
139
- */
140
- getCurrentDeploymentTags() {
141
- return this.getTagsForVersion(this.deploymentVersion);
142
- }
143
- /**
144
- * Add a listener for tag changes
145
- * @param listener - Function to call when tags change
146
- * @returns Function to remove the listener
147
- */
148
- addListener(listener) {
149
- this.listeners.add(listener);
150
- // Call listener immediately with current tags
151
- listener(this.currentTags);
152
- return () => this.listeners.delete(listener);
153
- }
154
- /**
155
- * Clean up resources
156
- */
157
- destroy() {
158
- if (this.watcher) {
159
- this.watcher.close();
160
- this.watcher = null;
161
- }
162
- this.listeners.clear();
163
- CycleDeploymentWatcher.instance = null;
164
- }
165
- }
166
- CycleDeploymentWatcher.instance = null;
167
- // Export a default instance
168
- export default CycleDeploymentWatcher.getInstance();
169
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/cycle/index.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- interface DnsCacheConfig {
2
- cacheTtlMs?: number;
3
- purgeIntervalMs?: number;
4
- debug?: boolean;
5
- forceTestMode?: boolean;
6
- }
7
- export declare class DnsCache {
8
- private static instance;
9
- private readonly cache;
10
- private readonly ongoingLookups;
11
- private readonly cacheTtlMs;
12
- private readonly purgeIntervalMs;
13
- private readonly debug;
14
- private readonly forceTestMode;
15
- private readonly logger;
16
- private constructor();
17
- static getInstance(config?: DnsCacheConfig): DnsCache;
18
- /**
19
- * Resolves a target URL or hostname to its IP address
20
- * @param urlOrHostname - The URL or hostname to resolve
21
- * @param keepPath - Whether to keep the path in the returned URL
22
- * @returns The resolved URL with IP address
23
- */
24
- resolveTarget(urlOrHostname: string, keepPath?: boolean): Promise<string>;
25
- /**
26
- * Purges expired entries from the DNS cache
27
- */
28
- purgeExpiredCache(): void;
29
- /**
30
- * Forces a cache purge for a specific hostname or all entries
31
- * @param hostname - Optional hostname to purge, if not provided purges all entries
32
- */
33
- forceCachePurge(hostname?: string): void;
34
- /**
35
- * Performs a DNS lookup with caching
36
- * @param target - The target hostname or URL to lookup
37
- * @returns The resolved IP address
38
- */
39
- private lookupWithCache;
40
- /**
41
- * Gets the current cache size
42
- */
43
- getCacheSize(): number;
44
- /**
45
- * Gets the current number of ongoing lookups
46
- */
47
- getOngoingLookupsCount(): number;
48
- }
49
- declare const _default: DnsCache;
50
- export default _default;