valkyries 0.1.0 → 0.1.2
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 +2 -0
- package/dist/cache/mutations.d.mts.map +1 -1
- package/dist/cache/mutations.mjs +8 -6
- package/dist/cache/mutations.mjs.map +1 -1
- package/dist/clients.d.mts.map +1 -1
- package/dist/clients.mjs +16 -5
- package/dist/clients.mjs.map +1 -1
- package/dist/delete.d.mts.map +1 -1
- package/dist/delete.mjs +1 -3
- package/dist/delete.mjs.map +1 -1
- package/dist/dynamic-config/fields.d.mts.map +1 -1
- package/dist/dynamic-config/fields.mjs +35 -7
- package/dist/dynamic-config/fields.mjs.map +1 -1
- package/dist/rate-limiter.d.mts.map +1 -1
- package/dist/rate-limiter.mjs +4 -0
- package/dist/rate-limiter.mjs.map +1 -1
- package/docs/api.md +40 -0
- package/docs/bloom-filters.md +219 -0
- package/docs/cache.md +191 -0
- package/docs/clients.md +98 -0
- package/docs/dynamic-config.md +132 -0
- package/docs/events-and-metrics.md +99 -0
- package/docs/lua-scripts.md +45 -0
- package/docs/rate-limiter.md +136 -0
- package/docs/utilities.md +65 -0
- package/package.json +23 -22
package/README.md
CHANGED
|
@@ -109,6 +109,7 @@ Call `closeValkeyClients()` to close package-managed clients.
|
|
|
109
109
|
## Documentation
|
|
110
110
|
|
|
111
111
|
- [Configuration](docs/configuration.md)
|
|
112
|
+
- [API reference](docs/api.md)
|
|
112
113
|
- [Clients](docs/clients.md)
|
|
113
114
|
- [Cache](docs/cache.md)
|
|
114
115
|
- [Bloom filters](docs/bloom-filters.md)
|
|
@@ -116,5 +117,6 @@ Call `closeValkeyClients()` to close package-managed clients.
|
|
|
116
117
|
- [Rate limiter](docs/rate-limiter.md)
|
|
117
118
|
- [Events and metrics](docs/events-and-metrics.md)
|
|
118
119
|
- [Lua scripts](docs/lua-scripts.md)
|
|
120
|
+
- [Utilities](docs/utilities.md)
|
|
119
121
|
- [Testing and CI](docs/testing-and-ci.md)
|
|
120
122
|
- [Migration guide](docs/migration.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.mts","sourceRoot":"","sources":["../../cache/mutations.mts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9E,WAAW,CAAC,CAAC,EACjB,OAAO,EAAE,CAAC,EAAE,EACZ,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAkCpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM;IAMlC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mutations.d.mts","sourceRoot":"","sources":["../../cache/mutations.mts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC9E,WAAW,CAAC,CAAC,EACjB,OAAO,EAAE,CAAC,EAAE,EACZ,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACpD,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAkCpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM;IAMlC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cA8BvE,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;cAUA,kCAAkC,CAChD,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;cASA,wBAAwB,CACtC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACvD,OAAO,CAAC,IAAI,CAAC;IAuBhB,OAAO,CAAC,kBAAkB;YAMZ,oCAAoC;IAoBlD,OAAO,CAAC,qBAAqB;YAYf,sBAAsB;IASpC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,0BAA0B;CAInC"}
|
package/dist/cache/mutations.mjs
CHANGED
|
@@ -69,12 +69,14 @@ export class ValkeyCacheMutations extends ValkeyCacheBatchRead {
|
|
|
69
69
|
}
|
|
70
70
|
if (writtenKeys.length === 0)
|
|
71
71
|
return;
|
|
72
|
-
|
|
73
|
-
.exec(batch, false)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
try {
|
|
73
|
+
await this.client.exec(batch, false);
|
|
74
|
+
}
|
|
75
|
+
catch (cause) {
|
|
76
|
+
handleValkeyError(cause);
|
|
77
|
+
throw cause;
|
|
78
|
+
}
|
|
79
|
+
emitValkeyEvent("cache:set", { cacheName: this.prefix, keys: writtenKeys });
|
|
78
80
|
}
|
|
79
81
|
async setBySerializedKey(serializedKey, value, ttl) {
|
|
80
82
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.mjs","sourceRoot":"","sources":["../../cache/mutations.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mutations.mjs","sourceRoot":"","sources":["../../cache/mutations.mts"],"names":[],"mappings":"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"}
|
package/dist/clients.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.d.mts","sourceRoot":"","sources":["../clients.mts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EAEX,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAM9B,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,eAAe,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,0BAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"clients.d.mts","sourceRoot":"","sources":["../clients.mts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EAEX,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAM9B,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,eAAe,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAG5D,eAAO,MAAM,iBAAiB,aAE5B,CAAC;AACH,eAAO,MAAM,uBAAuB,aAElC,CAAC;AACH,eAAO,MAAM,yBAAyB,aAEpC,CAAC;AAIH,KAAK,oBAAoB,GAAG,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;AAGrD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE3E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE9E;AAED,wBAAgB,2CAA2C,IAAI,OAAO,CAAC,WAAW,CAAC,CAclF;AAED,wBAAsB,0CAA0C,IAAI,OAAO,CAAC,IAAI,CAAC,CAShF;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAEjD;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;;;;;;;;;;;;EAwB5E;AAED,wBAAgB,0CAA0C,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;EAUrE"}
|
package/dist/clients.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { config } from "./config.mjs";
|
|
|
4
4
|
import { handleValkeyError } from "./errors.mjs";
|
|
5
5
|
const CLIENT_CLOSE_SETTLE_MS = 100;
|
|
6
6
|
export const urlsToClients = new Map();
|
|
7
|
+
const urlsToClientPromises = new Map();
|
|
7
8
|
export const cacheValkeyClient = await upsertValkeyClientByUrl(config.cache_url, {
|
|
8
9
|
readFrom: "preferReplica",
|
|
9
10
|
});
|
|
@@ -52,9 +53,19 @@ export async function upsertValkeyClientByUrl(url, options) {
|
|
|
52
53
|
const existing = urlsToClients.get(cacheKey);
|
|
53
54
|
if (existing)
|
|
54
55
|
return existing;
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const inFlight = urlsToClientPromises.get(cacheKey);
|
|
57
|
+
if (inFlight)
|
|
58
|
+
return inFlight;
|
|
59
|
+
const clientPromise = GlideClient.createClient(glideConfigFromUrl(url, options))
|
|
60
|
+
.then((client) => {
|
|
61
|
+
urlsToClients.set(cacheKey, client);
|
|
62
|
+
return client;
|
|
63
|
+
})
|
|
64
|
+
.finally(() => {
|
|
65
|
+
urlsToClientPromises.delete(cacheKey);
|
|
66
|
+
});
|
|
67
|
+
urlsToClientPromises.set(cacheKey, clientPromise);
|
|
68
|
+
return await clientPromise;
|
|
58
69
|
}
|
|
59
70
|
export function glideConfigFromUrl(url, options) {
|
|
60
71
|
try {
|
|
@@ -69,8 +80,8 @@ export function glideConfigFromUrl(url, options) {
|
|
|
69
80
|
useTLS: parsed.protocol === "rediss:",
|
|
70
81
|
credentials: parsed.password
|
|
71
82
|
? {
|
|
72
|
-
...(parsed.username ? { username: parsed.username } : {}),
|
|
73
|
-
password: parsed.password,
|
|
83
|
+
...(parsed.username ? { username: decodeURIComponent(parsed.username) } : {}),
|
|
84
|
+
password: decodeURIComponent(parsed.password),
|
|
74
85
|
}
|
|
75
86
|
: undefined,
|
|
76
87
|
readFrom: options?.readFrom,
|
package/dist/clients.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.mjs","sourceRoot":"","sources":["../clients.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AASnC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"clients.mjs","sourceRoot":"","sources":["../clients.mts"],"names":[],"mappings":"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"}
|
package/dist/delete.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.mts","sourceRoot":"","sources":["../delete.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,oBAAoB,GAAU,QAAQ,WAAW,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"delete.d.mts","sourceRoot":"","sources":["../delete.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,oBAAoB,GAAU,QAAQ,WAAW,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAmB7F,CAAC"}
|
package/dist/delete.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { handleValkeyError } from "./errors.mjs";
|
|
2
2
|
export const deleteKeysWithPrefix = async (client, pattern) => {
|
|
3
|
-
const deletionPromises = [];
|
|
4
3
|
let cursor = "0";
|
|
5
4
|
do {
|
|
6
5
|
try {
|
|
@@ -10,7 +9,7 @@ export const deleteKeysWithPrefix = async (client, pattern) => {
|
|
|
10
9
|
cursor = result[0];
|
|
11
10
|
const keys = result[1];
|
|
12
11
|
if (keys.length > 0) {
|
|
13
|
-
|
|
12
|
+
await client.unlink(keys);
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
catch (err) {
|
|
@@ -18,6 +17,5 @@ export const deleteKeysWithPrefix = async (client, pattern) => {
|
|
|
18
17
|
throw err;
|
|
19
18
|
}
|
|
20
19
|
} while (cursor !== "0");
|
|
21
|
-
await Promise.all(deletionPromises);
|
|
22
20
|
};
|
|
23
21
|
//# sourceMappingURL=delete.mjs.map
|
package/dist/delete.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.mjs","sourceRoot":"","sources":["../delete.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAmB,EAAE,OAAe,EAAiB,EAAE;IAChG,
|
|
1
|
+
{"version":3,"file":"delete.mjs","sourceRoot":"","sources":["../delete.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAmB,EAAE,OAAe,EAAiB,EAAE;IAChG,IAAI,MAAM,GAAG,GAAG,CAAC;IAEjB,GAAG,CAAC;QACF,IAAI,CAAC;YACH,iFAAiF;YACjF,qCAAqC;YACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAa,CAAC;YAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;AAC3B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.mts","sourceRoot":"","sources":["../../dynamic-config/fields.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE/E,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"fields.d.mts","sourceRoot":"","sources":["../../dynamic-config/fields.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE/E,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAkBlD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,kBAAkB,GACxB,kBAAkB,CAapB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAK9F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAK1F"}
|
|
@@ -9,6 +9,9 @@ export function validateFieldTypes(fieldTypes, defaultFields) {
|
|
|
9
9
|
if (type === "number" && typeof defaultValue !== "number") {
|
|
10
10
|
throw new Error(`Default field ${name} is not of type number`);
|
|
11
11
|
}
|
|
12
|
+
if (type === "number" && !Number.isFinite(defaultValue)) {
|
|
13
|
+
throw new Error(`Default field ${name} must be a finite number`);
|
|
14
|
+
}
|
|
12
15
|
if (type === "boolean" && typeof defaultValue !== "boolean") {
|
|
13
16
|
throw new Error(`Default field ${name} is not of type boolean`);
|
|
14
17
|
}
|
|
@@ -18,15 +21,19 @@ export function processFieldValue(type, value) {
|
|
|
18
21
|
if (type === "string")
|
|
19
22
|
return value.toString();
|
|
20
23
|
if (type === "number")
|
|
21
|
-
return
|
|
24
|
+
return parseFiniteNumber(value);
|
|
22
25
|
if (type === "boolean") {
|
|
23
26
|
if (typeof value === "boolean")
|
|
24
27
|
return value;
|
|
25
28
|
if (typeof value === "string")
|
|
26
|
-
return value
|
|
27
|
-
if (typeof value === "number")
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
return parseBooleanString(value);
|
|
30
|
+
if (typeof value === "number") {
|
|
31
|
+
if (value === 1)
|
|
32
|
+
return true;
|
|
33
|
+
if (value === 0)
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Invalid boolean field value: ${String(value)}`);
|
|
30
37
|
}
|
|
31
38
|
throw new Error("Unknown field type");
|
|
32
39
|
}
|
|
@@ -42,9 +49,30 @@ export function parseField(type, value) {
|
|
|
42
49
|
if (type === "string")
|
|
43
50
|
return value;
|
|
44
51
|
if (type === "number")
|
|
45
|
-
return
|
|
52
|
+
return parseFiniteNumber(value);
|
|
46
53
|
if (type === "boolean")
|
|
47
|
-
return value
|
|
54
|
+
return parseBooleanString(value);
|
|
48
55
|
throw new Error("Unknown field type");
|
|
49
56
|
}
|
|
57
|
+
function parseFiniteNumber(value) {
|
|
58
|
+
if (typeof value === "boolean") {
|
|
59
|
+
throw new Error(`Invalid number field value: ${String(value)}`);
|
|
60
|
+
}
|
|
61
|
+
if (typeof value === "string" && value.trim() === "") {
|
|
62
|
+
throw new Error("Invalid number field value: empty string");
|
|
63
|
+
}
|
|
64
|
+
const numberValue = Number(value);
|
|
65
|
+
if (!Number.isFinite(numberValue)) {
|
|
66
|
+
throw new Error(`Invalid number field value: ${String(value)}`);
|
|
67
|
+
}
|
|
68
|
+
return numberValue;
|
|
69
|
+
}
|
|
70
|
+
function parseBooleanString(value) {
|
|
71
|
+
const normalized = value.trim().toLowerCase();
|
|
72
|
+
if (normalized === "1" || normalized === "true")
|
|
73
|
+
return true;
|
|
74
|
+
if (normalized === "0" || normalized === "false")
|
|
75
|
+
return false;
|
|
76
|
+
throw new Error(`Invalid boolean field value: ${value}`);
|
|
77
|
+
}
|
|
50
78
|
//# sourceMappingURL=fields.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.mjs","sourceRoot":"","sources":["../../dynamic-config/fields.mts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAChC,UAAkD,EAClD,aAAiD;IAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAA4B,EAC5B,KAAyB;IAEzB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"fields.mjs","sourceRoot":"","sources":["../../dynamic-config/fields.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.mts","sourceRoot":"","sources":["../rate-limiter.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAcxD,qBAAa,WAAW;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAgC,EAAE,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.mts","sourceRoot":"","sources":["../rate-limiter.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAcxD,qBAAa,WAAW;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAgC,EAAE,EAAE,kBAAkB;IAQlF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE;IAUvB;;;;;;;;;;;OAWG;IACG,WAAW,CACf,GAAG,EAAE,MAAM,EAAE,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,SAAW,GACpB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IA8BlD;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9F;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,SAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB5D,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE;IAU7B,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,UAAU;WAIG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,cAA0B;CAQzE"}
|
package/dist/rate-limiter.mjs
CHANGED
|
@@ -13,6 +13,10 @@ export class RateLimiter {
|
|
|
13
13
|
ttl;
|
|
14
14
|
client;
|
|
15
15
|
constructor({ prefix, ttlSeconds, client = rateLimiterValkeyClient }) {
|
|
16
|
+
if (!prefix)
|
|
17
|
+
throw new Error("RateLimiter requires a prefix");
|
|
18
|
+
if (!(ttlSeconds > 0))
|
|
19
|
+
throw new Error("RateLimiter: ttlSeconds must be greater than 0");
|
|
16
20
|
this.prefix = prefix;
|
|
17
21
|
this.ttl = ttlSeconds;
|
|
18
22
|
this.client = client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.mjs","sourceRoot":"","sources":["../rate-limiter.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rate-limiter.mjs","sourceRoot":"","sources":["../rate-limiter.mts"],"names":[],"mappings":"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"}
|
package/docs/api.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
This is the entry point for the public `valkyries` API. Detailed API documentation lives with each relevant class or topic.
|
|
4
|
+
|
|
5
|
+
## Classes
|
|
6
|
+
|
|
7
|
+
- [`ValkeyCache`](cache.md) - read-through cache helpers, direct get/set APIs, invalidation, stale refresh, and Bloom-filter integration.
|
|
8
|
+
- [`ValkeyBloomFilter`](bloom-filters.md) - Bloom filter lookup, writes, readiness markers, streaming rebuilds, and key helpers.
|
|
9
|
+
- [`DynamicConfig`](dynamic-config.md) - distributed runtime fields backed by Valkey hashes and pub/sub updates.
|
|
10
|
+
- [`RateLimiter`](rate-limiter.md) - sliding-window rate limiting backed by sorted sets and Lua scripts.
|
|
11
|
+
|
|
12
|
+
## Supporting APIs
|
|
13
|
+
|
|
14
|
+
- [Clients](clients.md) - default clients, client injection, URL parsing, pub/sub client management, and shutdown.
|
|
15
|
+
- [Events and metrics](events-and-metrics.md) - `valkeyEvents`, cache metrics, event payloads, and error handling hooks.
|
|
16
|
+
- [Lua scripts](lua-scripts.md) - packaged Lua scripts and script-loading helpers.
|
|
17
|
+
- [Configuration](configuration.md) - environment variables and connection behavior.
|
|
18
|
+
- [Utilities](utilities.md) - key normalization, cache serialization helpers, TTL/count normalization, and timing helpers.
|
|
19
|
+
|
|
20
|
+
## Package Entry Points
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import {
|
|
24
|
+
ValkeyCache,
|
|
25
|
+
ValkeyBloomFilter,
|
|
26
|
+
DynamicConfig,
|
|
27
|
+
RateLimiter,
|
|
28
|
+
closeValkeyClients,
|
|
29
|
+
} from "valkyries";
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Supported subpath exports:
|
|
33
|
+
|
|
34
|
+
- `valkyries`
|
|
35
|
+
- `valkyries/cache`
|
|
36
|
+
- `valkyries/bloom-filter`
|
|
37
|
+
- `valkyries/dynamic-config`
|
|
38
|
+
- `valkyries/rate-limiter`
|
|
39
|
+
|
|
40
|
+
`valkyries` is ESM-only and requires Node.js 24 or newer.
|
package/docs/bloom-filters.md
CHANGED
|
@@ -10,3 +10,222 @@ Important behavior:
|
|
|
10
10
|
- `rebuildFromStream()` builds under `bloom-filter:{name}:building` and renames it over the live key.
|
|
11
11
|
|
|
12
12
|
Large Lua-backed calls are clamped to `LUA_UNPACK_BATCH_SIZE` to avoid Valkey Lua argument limits.
|
|
13
|
+
|
|
14
|
+
## Import
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { ValkeyBloomFilter } from "valkyries";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
or:
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { ValkeyBloomFilter } from "valkyries/bloom-filter";
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Constructor
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
const filter = new ValkeyBloomFilter({
|
|
30
|
+
name: "users",
|
|
31
|
+
capacity: 1_000_000,
|
|
32
|
+
errorRate: 0.01,
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
type ValkeyBloomFilterOptions = {
|
|
38
|
+
name: string;
|
|
39
|
+
capacity: number;
|
|
40
|
+
errorRate: number;
|
|
41
|
+
batchSize?: number;
|
|
42
|
+
expansionRate?: number;
|
|
43
|
+
client?: GlideClient;
|
|
44
|
+
};
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- `name`: filter namespace. The live key is `bloom-filter:${name}`.
|
|
48
|
+
- `capacity`: expected item count.
|
|
49
|
+
- `errorRate`: target false-positive rate between `0` and `1`.
|
|
50
|
+
- `batchSize`: write/read chunk size. Defaults to `10_000`; Lua paths clamp large chunks internally.
|
|
51
|
+
- `expansionRate`: Bloom filter expansion rate. Defaults to `2`.
|
|
52
|
+
- `client`: optional `@valkey/valkey-glide` client. Defaults to the package cache client.
|
|
53
|
+
|
|
54
|
+
The constructor throws when `name` is empty, `capacity` is not positive, `errorRate` is not between `0` and `1`, `expansionRate` is not positive, or `batchSize` is not positive.
|
|
55
|
+
|
|
56
|
+
## `ensureExists(capacity?)`
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
filter.ensureExists(capacity?: number): Promise<void>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Creates the live Bloom filter when it does not already exist. `capacity` overrides the configured capacity for this call.
|
|
63
|
+
|
|
64
|
+
## `exists(item)`
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
filter.exists(item: string): Promise<boolean | null>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Checks one item.
|
|
71
|
+
|
|
72
|
+
- `true`: the item may exist.
|
|
73
|
+
- `false`: the item definitely does not exist.
|
|
74
|
+
- `null`: the filter is missing; callers should fall back to the authoritative store.
|
|
75
|
+
|
|
76
|
+
## `mexists(items)`
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
filter.mexists(items: string[]): Promise<Array<boolean | null>>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Checks multiple items. Output order and length match input.
|
|
83
|
+
|
|
84
|
+
## `existsIfReady(readyKey, item)`
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
filter.existsIfReady(readyKey: string, item: string): Promise<boolean | null>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Checks one item only when both the ready marker and live filter exist. Returns `null` when either key is absent.
|
|
91
|
+
|
|
92
|
+
## `mexistsIfReady(readyKey, items)`
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
filter.mexistsIfReady(
|
|
96
|
+
readyKey: string,
|
|
97
|
+
items: string[],
|
|
98
|
+
): Promise<Array<boolean | null>>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Batch version of `existsIfReady`.
|
|
102
|
+
|
|
103
|
+
## `add(items)`
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
filter.add(items: string[]): Promise<void>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Adds items in chunks. Errors are routed to the configured Valkey error handler.
|
|
110
|
+
|
|
111
|
+
If neither the live key nor the building key exists, this is a no-op to avoid auto-creating an undersized filter.
|
|
112
|
+
|
|
113
|
+
## `addOrThrow(items)`
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
filter.addOrThrow(items: string[]): Promise<void>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Same write path as `add()`, but propagates write errors.
|
|
120
|
+
|
|
121
|
+
## `addStream(batches)`
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
filter.addStream(batches: AsyncIterable<string[]>): Promise<void>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Adds streamed batches and propagates errors.
|
|
128
|
+
|
|
129
|
+
## `rebuild(items)`
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
filter.rebuild(items: string[]): Promise<void>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Rebuilds from a complete list using a building key and atomic rename.
|
|
136
|
+
|
|
137
|
+
## `rebuildFromStream(batches, capacityOverride?)`
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
filter.rebuildFromStream(
|
|
141
|
+
batches: AsyncIterable<string[]>,
|
|
142
|
+
capacityOverride?: number,
|
|
143
|
+
): Promise<void>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Rebuilds from streamed batches. `capacityOverride` is useful when the live row count is known at rebuild time.
|
|
147
|
+
|
|
148
|
+
## `delete()`
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
filter.delete(): Promise<void>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Deletes the live and building keys.
|
|
155
|
+
|
|
156
|
+
## `deleteWithAdditionalKeys(additionalKeys)`
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
filter.deleteWithAdditionalKeys(additionalKeys: string[]): Promise<void>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Deletes the live key, building key, and additional caller-owned keys such as readiness markers.
|
|
163
|
+
|
|
164
|
+
## `keyExists()`
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
filter.keyExists(): Promise<boolean>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Returns whether the live filter key exists.
|
|
171
|
+
|
|
172
|
+
## `isReady(readyKey)`
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
filter.isReady(readyKey: string): Promise<boolean>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Returns `true` only when both the live filter key and `readyKey` exist.
|
|
179
|
+
|
|
180
|
+
## `getKey()`
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
filter.getKey(): string
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Returns the live filter key.
|
|
187
|
+
|
|
188
|
+
## `getBuildingKey()`
|
|
189
|
+
|
|
190
|
+
```ts
|
|
191
|
+
filter.getBuildingKey(): string
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Returns the staging key used by rebuilds.
|
|
195
|
+
|
|
196
|
+
## `getConfig()`
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
filter.getConfig(): {
|
|
200
|
+
name: string;
|
|
201
|
+
capacity: number;
|
|
202
|
+
errorRate: number;
|
|
203
|
+
batchSize: number;
|
|
204
|
+
liveKey: string;
|
|
205
|
+
buildingKey: string;
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Returns runtime configuration values.
|
|
210
|
+
|
|
211
|
+
## Helper Exports
|
|
212
|
+
|
|
213
|
+
```ts
|
|
214
|
+
import {
|
|
215
|
+
LUA_UNPACK_BATCH_SIZE,
|
|
216
|
+
isBloomMissingKeyError,
|
|
217
|
+
normalizeBloomCheckResult,
|
|
218
|
+
} from "valkyries";
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
- `LUA_UNPACK_BATCH_SIZE`: maximum Lua unpack batch size used internally.
|
|
222
|
+
- `isBloomMissingKeyError(error)`: detects missing Bloom filter errors.
|
|
223
|
+
- `normalizeBloomCheckResult(result)`: normalizes Valkey Bloom return values to booleans.
|
|
224
|
+
|
|
225
|
+
## Events
|
|
226
|
+
|
|
227
|
+
The Bloom filter emits:
|
|
228
|
+
|
|
229
|
+
- `bloom-filter:exists` with `{ name, item, result }`.
|
|
230
|
+
- `bloom-filter:mexists` with `{ name, items, results }`.
|
|
231
|
+
- `bloom-filter:add` with `{ name, items }`.
|