@mulingai-npm/redis 3.4.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/enums/redis-database.d.ts +5 -5
- package/dist/enums/redis-database.js +9 -9
- package/dist/loggers/mulingstream-chunk-logger.d.ts +20 -20
- package/dist/loggers/mulingstream-chunk-logger.js +84 -84
- package/dist/managers/mulingstream-chunk-manager.d.ts +112 -112
- package/dist/managers/mulingstream-chunk-manager.js +359 -359
- package/dist/managers/mulingstream-listener-manager.d.ts +29 -29
- package/dist/managers/mulingstream-listener-manager.js +169 -169
- package/dist/managers/mulingstream-speaker-manager.d.ts +44 -37
- package/dist/managers/mulingstream-speaker-manager.js +217 -225
- package/dist/redis-client.d.ts +47 -44
- package/dist/redis-client.js +150 -143
- package/dist/utils/finders.d.ts +1 -1
- package/dist/utils/finders.js +18 -18
- package/package.json +34 -34
package/dist/redis-client.js
CHANGED
|
@@ -1,143 +1,150 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RedisClient = void 0;
|
|
7
|
-
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
|
-
/**
|
|
9
|
-
* Thin wrapper around ioredis that exposes exactly the helpers used by the two
|
|
10
|
-
* managers. All helpers are 1
|
|
11
|
-
* change – this merely centralises typing and keeps the rest of the codebase
|
|
12
|
-
* clean.
|
|
13
|
-
*/
|
|
14
|
-
class RedisClient {
|
|
15
|
-
constructor(config) {
|
|
16
|
-
this.client = new ioredis_1.default({
|
|
17
|
-
host: config.host,
|
|
18
|
-
port: config.port,
|
|
19
|
-
password: config.password,
|
|
20
|
-
db: config.db
|
|
21
|
-
});
|
|
22
|
-
this.client.on('error', (err) => {
|
|
23
|
-
console.error('Redis error:', err);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
/* ----------------------------------------------------------------------- */
|
|
27
|
-
/* Primitive string helpers */
|
|
28
|
-
/* ----------------------------------------------------------------------- */
|
|
29
|
-
async set(key, value) {
|
|
30
|
-
await this.client.set(key, value);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/* ----------------------------------------------------------------------- */
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
/* ----------------------------------------------------------------------- */
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
/*
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return
|
|
119
|
-
}
|
|
120
|
-
async
|
|
121
|
-
const
|
|
122
|
-
return
|
|
123
|
-
}
|
|
124
|
-
async
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return this.client.
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RedisClient = void 0;
|
|
7
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
|
+
/**
|
|
9
|
+
* Thin wrapper around ioredis that exposes exactly the helpers used by the two
|
|
10
|
+
* managers. All helpers are 1-to-1 pass-through so there is no behavioural
|
|
11
|
+
* change – this merely centralises typing and keeps the rest of the codebase
|
|
12
|
+
* clean.
|
|
13
|
+
*/
|
|
14
|
+
class RedisClient {
|
|
15
|
+
constructor(config) {
|
|
16
|
+
this.client = new ioredis_1.default({
|
|
17
|
+
host: config.host,
|
|
18
|
+
port: config.port,
|
|
19
|
+
password: config.password,
|
|
20
|
+
db: config.db
|
|
21
|
+
});
|
|
22
|
+
this.client.on('error', (err) => {
|
|
23
|
+
console.error('Redis error:', err);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/* ----------------------------------------------------------------------- */
|
|
27
|
+
/* Primitive string helpers */
|
|
28
|
+
/* ----------------------------------------------------------------------- */
|
|
29
|
+
async set(key, value) {
|
|
30
|
+
await this.client.set(key, value);
|
|
31
|
+
}
|
|
32
|
+
/** Atomic SET with NX + EX.
|
|
33
|
+
* @returns true if the key was set, false when it already existed */
|
|
34
|
+
async setNxEx(key, value, expireSeconds) {
|
|
35
|
+
// correct order: 'EX', ttl, 'NX'
|
|
36
|
+
const res = (await this.client.set(key, value, 'EX', expireSeconds, 'NX'));
|
|
37
|
+
return res === 'OK';
|
|
38
|
+
}
|
|
39
|
+
async get(key) {
|
|
40
|
+
return this.client.get(key);
|
|
41
|
+
}
|
|
42
|
+
async del(key) {
|
|
43
|
+
return this.client.del(key);
|
|
44
|
+
}
|
|
45
|
+
async exists(key) {
|
|
46
|
+
return this.client.exists(key);
|
|
47
|
+
}
|
|
48
|
+
async expire(key, seconds) {
|
|
49
|
+
return this.client.expire(key, seconds);
|
|
50
|
+
}
|
|
51
|
+
/* ----------------------------------------------------------------------- */
|
|
52
|
+
/* Set helpers */
|
|
53
|
+
/* ----------------------------------------------------------------------- */
|
|
54
|
+
async sadd(key, ...values) {
|
|
55
|
+
return this.client.sadd(key, values);
|
|
56
|
+
}
|
|
57
|
+
async srem(key, ...values) {
|
|
58
|
+
return this.client.srem(key, values);
|
|
59
|
+
}
|
|
60
|
+
async smembers(key) {
|
|
61
|
+
return this.client.smembers(key);
|
|
62
|
+
}
|
|
63
|
+
/* ----------------------------------------------------------------------- */
|
|
64
|
+
/* Hash helpers */
|
|
65
|
+
/* ----------------------------------------------------------------------- */
|
|
66
|
+
async hset(key, data) {
|
|
67
|
+
return this.client.hset(key, data);
|
|
68
|
+
}
|
|
69
|
+
async hgetall(key) {
|
|
70
|
+
return this.client.hgetall(key);
|
|
71
|
+
}
|
|
72
|
+
/* ----------------------------------------------------------------------- */
|
|
73
|
+
/* Sorted-set helpers */
|
|
74
|
+
/* ----------------------------------------------------------------------- */
|
|
75
|
+
async zadd(key, score, member) {
|
|
76
|
+
return this.client.zadd(key, score, member);
|
|
77
|
+
}
|
|
78
|
+
async zrange(key, start, stop) {
|
|
79
|
+
return this.client.zrange(key, start, stop);
|
|
80
|
+
}
|
|
81
|
+
async zremrangebyrank(key, start, stop) {
|
|
82
|
+
return this.client.zremrangebyrank(key, start, stop);
|
|
83
|
+
}
|
|
84
|
+
async zrangebyscore(key, min, max) {
|
|
85
|
+
return this.client.zrangebyscore(key, min, max);
|
|
86
|
+
}
|
|
87
|
+
async zrem(key, ...members) {
|
|
88
|
+
return this.client.zrem(key, members);
|
|
89
|
+
}
|
|
90
|
+
/* ----------------------------------------------------------------------- */
|
|
91
|
+
/* Scan (pattern search) */
|
|
92
|
+
/* ----------------------------------------------------------------------- */
|
|
93
|
+
async scan(cursor, pattern, count = 1000) {
|
|
94
|
+
return this.client.scan(cursor, 'MATCH', pattern, 'COUNT', count);
|
|
95
|
+
}
|
|
96
|
+
async keys(pattern) {
|
|
97
|
+
return this.client.keys(pattern);
|
|
98
|
+
}
|
|
99
|
+
/* ----------------------------------------------------------------------- */
|
|
100
|
+
/* Pipeline */
|
|
101
|
+
/* ----------------------------------------------------------------------- */
|
|
102
|
+
pipeline() {
|
|
103
|
+
return this.client.pipeline();
|
|
104
|
+
}
|
|
105
|
+
/* ----------------------------------------------------------------------- */
|
|
106
|
+
/* Misc */
|
|
107
|
+
/* ----------------------------------------------------------------------- */
|
|
108
|
+
async unlink(...keys) {
|
|
109
|
+
// unlink exists on Redis ≥4 and is supported by ioredis but not typed in
|
|
110
|
+
// older versions – we cast to any.
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
112
|
+
// @ts-ignore – runtime command exists even if typings lag behind.
|
|
113
|
+
return this.client.unlink(...keys);
|
|
114
|
+
}
|
|
115
|
+
/* JSON commands (RedisJSON module) -------------------------------------- */
|
|
116
|
+
async jsonSet(key, path, value) {
|
|
117
|
+
const result = await this.client.call('JSON.SET', key, path, JSON.stringify(value));
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
async jsonGet(key, path) {
|
|
121
|
+
const raw = (await this.client.call('JSON.GET', key, path));
|
|
122
|
+
return raw ? JSON.parse(raw) : null;
|
|
123
|
+
}
|
|
124
|
+
async jsonDel(key, path) {
|
|
125
|
+
return Number(await this.client.call('JSON.DEL', key, path));
|
|
126
|
+
}
|
|
127
|
+
async jsonArrAppend(key, path, ...values) {
|
|
128
|
+
const stringified = values.map((v) => JSON.stringify(v));
|
|
129
|
+
return Number(await this.client.call('JSON.ARRAPPEND', key, path, ...stringified));
|
|
130
|
+
}
|
|
131
|
+
async jsonArrLen(key, path) {
|
|
132
|
+
const len = await this.client.call('JSON.ARRLEN', key, path);
|
|
133
|
+
return len === null ? null : Number(len);
|
|
134
|
+
}
|
|
135
|
+
async jsonArrPop(key, path, index) {
|
|
136
|
+
return index !== undefined ? this.client.call('JSON.ARRPOP', key, path, index) : this.client.call('JSON.ARRPOP', key, path);
|
|
137
|
+
}
|
|
138
|
+
/* ----------------------------------------------------------------------- */
|
|
139
|
+
/* Dangerous! – flush helpers */
|
|
140
|
+
/* ----------------------------------------------------------------------- */
|
|
141
|
+
async flushAll() {
|
|
142
|
+
console.warn('Flushing all Redis data!');
|
|
143
|
+
return this.client.flushall();
|
|
144
|
+
}
|
|
145
|
+
async flushDb() {
|
|
146
|
+
console.warn('Flushing current Redis DB!');
|
|
147
|
+
return this.client.flushdb();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.RedisClient = RedisClient;
|
package/dist/utils/finders.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getMappedLanguage(lang: string, targetLanguages: string[], shortCodeTargetLanguages: string[]): string | null;
|
|
1
|
+
export declare function getMappedLanguage(lang: string, targetLanguages: string[], shortCodeTargetLanguages: string[]): string | null;
|
package/dist/utils/finders.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMappedLanguage = void 0;
|
|
4
|
-
function getMappedLanguage(lang, targetLanguages, shortCodeTargetLanguages) {
|
|
5
|
-
// Full → short
|
|
6
|
-
let idx = targetLanguages.indexOf(lang);
|
|
7
|
-
if (idx !== -1) {
|
|
8
|
-
return shortCodeTargetLanguages[idx];
|
|
9
|
-
}
|
|
10
|
-
// Short → full
|
|
11
|
-
idx = shortCodeTargetLanguages.indexOf(lang);
|
|
12
|
-
if (idx !== -1) {
|
|
13
|
-
return targetLanguages[idx];
|
|
14
|
-
}
|
|
15
|
-
// No match
|
|
16
|
-
return '';
|
|
17
|
-
}
|
|
18
|
-
exports.getMappedLanguage = getMappedLanguage;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMappedLanguage = void 0;
|
|
4
|
+
function getMappedLanguage(lang, targetLanguages, shortCodeTargetLanguages) {
|
|
5
|
+
// Full → short
|
|
6
|
+
let idx = targetLanguages.indexOf(lang);
|
|
7
|
+
if (idx !== -1) {
|
|
8
|
+
return shortCodeTargetLanguages[idx];
|
|
9
|
+
}
|
|
10
|
+
// Short → full
|
|
11
|
+
idx = shortCodeTargetLanguages.indexOf(lang);
|
|
12
|
+
if (idx !== -1) {
|
|
13
|
+
return targetLanguages[idx];
|
|
14
|
+
}
|
|
15
|
+
// No match
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
exports.getMappedLanguage = getMappedLanguage;
|
package/package.json
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@mulingai-npm/redis",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"main": "dist/index.js",
|
|
5
|
-
"types": "dist/index.d.ts",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "https://github.com/mulingai/mulingai-backend.git"
|
|
9
|
-
},
|
|
10
|
-
"publishConfig": {
|
|
11
|
-
"registry": "https://registry.npmjs.org/"
|
|
12
|
-
},
|
|
13
|
-
"private": false,
|
|
14
|
-
"scripts": {
|
|
15
|
-
"dev": "rm -f tsconfig.tsbuildinfo && tsc --watch",
|
|
16
|
-
"build": "rm -f tsconfig.tsbuildinfo && tsc",
|
|
17
|
-
"prepublishOnly": "npm run build"
|
|
18
|
-
},
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"ioredis": "^5.6.0",
|
|
21
|
-
"uuid": "^11.1.0"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"concurrently": "^9.1.2",
|
|
25
|
-
"copyfiles": "^2.4.1",
|
|
26
|
-
"nodemon": "^3.1.9",
|
|
27
|
-
"typescript": "^4.9.5"
|
|
28
|
-
},
|
|
29
|
-
"files": [
|
|
30
|
-
"dist",
|
|
31
|
-
"package.json",
|
|
32
|
-
"README.md"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@mulingai-npm/redis",
|
|
3
|
+
"version": "3.5.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/mulingai/mulingai-backend.git"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"registry": "https://registry.npmjs.org/"
|
|
12
|
+
},
|
|
13
|
+
"private": false,
|
|
14
|
+
"scripts": {
|
|
15
|
+
"dev": "rm -f tsconfig.tsbuildinfo && tsc --watch",
|
|
16
|
+
"build": "rm -f tsconfig.tsbuildinfo && tsc",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"ioredis": "^5.6.0",
|
|
21
|
+
"uuid": "^11.1.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"concurrently": "^9.1.2",
|
|
25
|
+
"copyfiles": "^2.4.1",
|
|
26
|
+
"nodemon": "^3.1.9",
|
|
27
|
+
"typescript": "^4.9.5"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"package.json",
|
|
32
|
+
"README.md"
|
|
33
|
+
]
|
|
34
|
+
}
|