@sera4/essentia 3.0.13-rc.1 → 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.
- package/package.json +1 -1
- package/package.tar.gz +0 -0
- package/dist/cache/index.d.ts +0 -22
- package/dist/cache/index.js +0 -166
- package/dist/cache/index.js.map +0 -1
- package/dist/constants/index.d.ts +0 -6
- package/dist/constants/index.js +0 -9
- package/dist/constants/index.js.map +0 -1
- package/dist/formatter/index.d.ts +0 -37
- package/dist/formatter/index.js +0 -75
- package/dist/formatter/index.js.map +0 -1
- package/dist/hal/index.d.ts +0 -5
- package/dist/hal/index.js +0 -69
- package/dist/hal/index.js.map +0 -1
- package/dist/health/health-logger.d.ts +0 -9
- package/dist/health/health-logger.js +0 -34
- package/dist/health/health-logger.js.map +0 -1
- package/dist/health/index.d.ts +0 -19
- package/dist/health/index.js +0 -175
- package/dist/health/index.js.map +0 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +0 -2
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/test-server-wrapper.d.ts +0 -120
- package/dist/helpers/test-server-wrapper.js +0 -165
- package/dist/helpers/test-server-wrapper.js.map +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -17
- package/dist/index.js.map +0 -1
- package/dist/last-commit.d.ts +0 -1
- package/dist/last-commit.js.map +0 -1
- package/dist/last_commit/index.d.ts +0 -7
- package/dist/last_commit/index.js +0 -83
- package/dist/last_commit/index.js.map +0 -1
- package/dist/paginator/s4-pagination.d.ts +0 -9
- package/dist/paginator/s4-pagination.js +0 -49
- package/dist/paginator/s4-pagination.js.map +0 -1
- package/dist/paginator/sql-pagination.d.ts +0 -27
- package/dist/paginator/sql-pagination.js +0 -166
- package/dist/paginator/sql-pagination.js.map +0 -1
- package/dist/paper-trail/helpers.d.ts +0 -11
- package/dist/paper-trail/helpers.js +0 -74
- package/dist/paper-trail/helpers.js.map +0 -1
- package/dist/paper-trail/index.d.ts +0 -13
- package/dist/paper-trail/index.js +0 -662
- package/dist/paper-trail/index.js.map +0 -1
- package/dist/prompts/index.d.ts +0 -14
- package/dist/prompts/index.js +0 -63
- package/dist/prompts/index.js.map +0 -1
- package/dist/queue/index.d.ts +0 -166
- package/dist/queue/index.js +0 -371
- package/dist/queue/index.js.map +0 -1
- package/dist/queue/publisher.d.ts +0 -31
- package/dist/queue/publisher.js +0 -84
- package/dist/queue/publisher.js.map +0 -1
- package/dist/queue/queue-logger.d.ts +0 -9
- package/dist/queue/queue-logger.js +0 -35
- package/dist/queue/queue-logger.js.map +0 -1
- package/dist/queue/subscriber.d.ts +0 -39
- package/dist/queue/subscriber.js +0 -97
- package/dist/queue/subscriber.js.map +0 -1
- package/dist/safe_proxy/index.d.ts +0 -13
- package/dist/safe_proxy/index.js +0 -54
- package/dist/safe_proxy/index.js.map +0 -1
- package/dist/serializer/index.d.ts +0 -5
- package/dist/serializer/index.js +0 -83
- package/dist/serializer/index.js.map +0 -1
- package/dist/ts/cache/index.d.ts +0 -33
- package/dist/ts/cache/index.js +0 -171
- package/dist/ts/cache/index.js.map +0 -1
- package/dist/ts/configurations/server-config.d.ts +0 -4
- package/dist/ts/configurations/server-config.js +0 -2
- package/dist/ts/configurations/server-config.js.map +0 -1
- package/dist/ts/constants/index.d.ts +0 -7
- package/dist/ts/constants/index.js +0 -8
- package/dist/ts/constants/index.js.map +0 -1
- package/dist/ts/cycle/index.d.ts +0 -53
- package/dist/ts/cycle/index.js +0 -169
- package/dist/ts/cycle/index.js.map +0 -1
- package/dist/ts/dns/DnsCache.d.ts +0 -50
- package/dist/ts/dns/DnsCache.js +0 -137
- package/dist/ts/dns/DnsCache.js.map +0 -1
- package/dist/ts/dns/index.d.ts +0 -4
- package/dist/ts/dns/index.js +0 -4
- package/dist/ts/dns/index.js.map +0 -1
- package/dist/ts/formatter/index.d.ts +0 -44
- package/dist/ts/formatter/index.js +0 -76
- package/dist/ts/formatter/index.js.map +0 -1
- package/dist/ts/hal/index.d.ts +0 -26
- package/dist/ts/hal/index.js +0 -70
- package/dist/ts/hal/index.js.map +0 -1
- package/dist/ts/health/index.d.ts +0 -53
- package/dist/ts/health/index.js +0 -165
- package/dist/ts/health/index.js.map +0 -1
- package/dist/ts/helpers/index.d.ts +0 -1
- package/dist/ts/helpers/index.js +0 -2
- package/dist/ts/helpers/index.js.map +0 -1
- package/dist/ts/helpers/test-server-wrapper.d.ts +0 -56
- package/dist/ts/helpers/test-server-wrapper.js +0 -144
- package/dist/ts/helpers/test-server-wrapper.js.map +0 -1
- package/dist/ts/index.d.ts +0 -22
- package/dist/ts/index.js +0 -27
- package/dist/ts/index.js.map +0 -1
- package/dist/ts/last-commit/index.d.ts +0 -12
- package/dist/ts/last-commit/index.js +0 -82
- package/dist/ts/last-commit/index.js.map +0 -1
- package/dist/ts/logger/index.d.ts +0 -3
- package/dist/ts/logger/index.js +0 -4
- package/dist/ts/logger/index.js.map +0 -1
- package/dist/ts/logger/s4-logger.d.ts +0 -23
- package/dist/ts/logger/s4-logger.js +0 -105
- package/dist/ts/logger/s4-logger.js.map +0 -1
- package/dist/ts/paginator/index.d.ts +0 -2
- package/dist/ts/paginator/index.js +0 -3
- package/dist/ts/paginator/index.js.map +0 -1
- package/dist/ts/paginator/s4-pagination.d.ts +0 -26
- package/dist/ts/paginator/s4-pagination.js +0 -49
- package/dist/ts/paginator/s4-pagination.js.map +0 -1
- package/dist/ts/paginator/sql-pagination.d.ts +0 -52
- package/dist/ts/paginator/sql-pagination.js +0 -157
- package/dist/ts/paginator/sql-pagination.js.map +0 -1
- package/dist/ts/paper-trail/helpers.d.ts +0 -14
- package/dist/ts/paper-trail/helpers.js +0 -74
- package/dist/ts/paper-trail/helpers.js.map +0 -1
- package/dist/ts/paper-trail/index.d.ts +0 -54
- package/dist/ts/paper-trail/index.js +0 -236
- package/dist/ts/paper-trail/index.js.map +0 -1
- package/dist/ts/prompts/index.d.ts +0 -21
- package/dist/ts/prompts/index.js +0 -68
- package/dist/ts/prompts/index.js.map +0 -1
- package/dist/ts/queue/index.d.ts +0 -232
- package/dist/ts/queue/index.js +0 -440
- package/dist/ts/queue/index.js.map +0 -1
- package/dist/ts/queue/publisher.d.ts +0 -41
- package/dist/ts/queue/publisher.js +0 -84
- package/dist/ts/queue/publisher.js.map +0 -1
- package/dist/ts/queue/queue-logger.d.ts +0 -10
- package/dist/ts/queue/queue-logger.js +0 -35
- package/dist/ts/queue/queue-logger.js.map +0 -1
- package/dist/ts/queue/subscriber.d.ts +0 -55
- package/dist/ts/queue/subscriber.js +0 -98
- package/dist/ts/queue/subscriber.js.map +0 -1
- package/dist/ts/safe-proxy/index.d.ts +0 -35
- package/dist/ts/safe-proxy/index.js +0 -54
- package/dist/ts/safe-proxy/index.js.map +0 -1
- package/dist/ts/serializer/index.d.ts +0 -52
- package/dist/ts/serializer/index.js +0 -83
- package/dist/ts/serializer/index.js.map +0 -1
- package/dist/ts/task-scheduler/index.d.ts +0 -130
- package/dist/ts/task-scheduler/index.js +0 -259
- package/dist/ts/task-scheduler/index.js.map +0 -1
- package/dist/ts/utils/index.d.ts +0 -49
- package/dist/ts/utils/index.js +0 -157
- package/dist/ts/utils/index.js.map +0 -1
package/dist/ts/cache/index.js
DELETED
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../../ts/configurations/server-config.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|
package/dist/ts/cycle/index.d.ts
DELETED
|
@@ -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;
|
package/dist/ts/cycle/index.js
DELETED
|
@@ -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;
|
package/dist/ts/dns/DnsCache.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { S4Logger } from '../logger/index.js';
|
|
2
|
-
import dns from 'node:dns';
|
|
3
|
-
export class DnsCache {
|
|
4
|
-
constructor(config = {}) {
|
|
5
|
-
this.cache = new Map();
|
|
6
|
-
this.ongoingLookups = new Map();
|
|
7
|
-
this.cacheTtlMs = config.cacheTtlMs ?? 5000; // 5 seconds default
|
|
8
|
-
this.purgeIntervalMs = config.purgeIntervalMs ?? 60 * 2 * 1000; // 2 minutes default
|
|
9
|
-
this.debug = config.debug ?? false;
|
|
10
|
-
this.forceTestMode = config.forceTestMode ?? false;
|
|
11
|
-
this.logger = new S4Logger();
|
|
12
|
-
this.logger.configure({ service: 'dns-cache' });
|
|
13
|
-
}
|
|
14
|
-
static getInstance(config = {}) {
|
|
15
|
-
DnsCache.instance ?? (DnsCache.instance = new DnsCache(config));
|
|
16
|
-
return DnsCache.instance;
|
|
17
|
-
}
|
|
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
|
-
async resolveTarget(urlOrHostname, keepPath = false) {
|
|
25
|
-
const parsed = new URL(urlOrHostname);
|
|
26
|
-
try {
|
|
27
|
-
// Only return localhost if explicitly in test mode
|
|
28
|
-
if (this.forceTestMode) {
|
|
29
|
-
return `${parsed.protocol}//localhost:${parsed.port || 80}${keepPath ? parsed.pathname : ''}`;
|
|
30
|
-
}
|
|
31
|
-
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 : ''}`;
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
if (this.forceTestMode) {
|
|
37
|
-
return urlOrHostname;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
throw e;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Purges expired entries from the DNS cache
|
|
46
|
-
*/
|
|
47
|
-
purgeExpiredCache() {
|
|
48
|
-
const now = Date.now();
|
|
49
|
-
const purgedInstances = new Map();
|
|
50
|
-
for (const [hostname, entry] of this.cache.entries()) {
|
|
51
|
-
if (now - entry.timestamp >= this.cacheTtlMs) {
|
|
52
|
-
purgedInstances.set(hostname, entry);
|
|
53
|
-
this.cache.delete(hostname);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (this.debug && purgedInstances.size > 0) {
|
|
57
|
-
console.log("Purged", purgedInstances.size, "expired DNS cache entries", purgedInstances.keys());
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Forces a cache purge for a specific hostname or all entries
|
|
62
|
-
* @param hostname - Optional hostname to purge, if not provided purges all entries
|
|
63
|
-
*/
|
|
64
|
-
forceCachePurge(hostname) {
|
|
65
|
-
if (!hostname) {
|
|
66
|
-
this.cache.clear();
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// if hostname is specified then purge all entries that match
|
|
70
|
-
for (const [key] of this.cache.entries()) {
|
|
71
|
-
if (key.includes(hostname)) {
|
|
72
|
-
this.cache.delete(key);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Performs a DNS lookup with caching
|
|
79
|
-
* @param target - The target hostname or URL to lookup
|
|
80
|
-
* @returns The resolved IP address
|
|
81
|
-
*/
|
|
82
|
-
async lookupWithCache(target) {
|
|
83
|
-
const now = Date.now();
|
|
84
|
-
const cached = this.cache.get(target);
|
|
85
|
-
// Check for valid cache entry first
|
|
86
|
-
if (cached && (now - cached.timestamp < this.cacheTtlMs)) {
|
|
87
|
-
this.logger.debug(`DNS cache hit for ${target}`);
|
|
88
|
-
return cached.address;
|
|
89
|
-
}
|
|
90
|
-
// If cache TTL is 0, always do a new lookup
|
|
91
|
-
if (this.cacheTtlMs === 0) {
|
|
92
|
-
this.logger.debug(`DNS cache miss for ${target} (TTL=0)`);
|
|
93
|
-
const { address } = await dns.promises.lookup(target);
|
|
94
|
-
this.cache.set(target, { address, timestamp: now });
|
|
95
|
-
this.logger.debug(`Cached ${target}: ${address}`);
|
|
96
|
-
return address;
|
|
97
|
-
}
|
|
98
|
-
// Check if there's already a lookup in progress for this hostname
|
|
99
|
-
if (this.ongoingLookups.has(target)) {
|
|
100
|
-
this.logger.debug(`Waiting for ongoing DNS lookup for ${target}`);
|
|
101
|
-
return this.ongoingLookups.get(target);
|
|
102
|
-
}
|
|
103
|
-
// Create a new lookup promise
|
|
104
|
-
const lookupPromise = (async () => {
|
|
105
|
-
try {
|
|
106
|
-
this.logger.debug(`DNS cache miss for ${target}`);
|
|
107
|
-
const { address } = await dns.promises.lookup(target);
|
|
108
|
-
this.cache.set(target, { address, timestamp: now });
|
|
109
|
-
this.logger.debug(`Cached ${target}: ${address}`);
|
|
110
|
-
return address;
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
// Clean up the ongoing lookup
|
|
114
|
-
this.ongoingLookups.delete(target);
|
|
115
|
-
}
|
|
116
|
-
})();
|
|
117
|
-
// Store the promise in the ongoing lookups map
|
|
118
|
-
this.ongoingLookups.set(target, lookupPromise);
|
|
119
|
-
return lookupPromise;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Gets the current cache size
|
|
123
|
-
*/
|
|
124
|
-
getCacheSize() {
|
|
125
|
-
return this.cache.size;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Gets the current number of ongoing lookups
|
|
129
|
-
*/
|
|
130
|
-
getOngoingLookupsCount() {
|
|
131
|
-
return this.ongoingLookups.size;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
DnsCache.instance = null;
|
|
135
|
-
// Export a default instance with default configuration
|
|
136
|
-
export default DnsCache.getInstance();
|
|
137
|
-
//# sourceMappingURL=DnsCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DnsCache.js","sourceRoot":"","sources":["../../../ts/dns/DnsCache.ts"],"names":[],"mappings":"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"}
|
package/dist/ts/dns/index.d.ts
DELETED
package/dist/ts/dns/index.js
DELETED
package/dist/ts/dns/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|