@b4moss/ss-cachian 0.8.0 → 0.9.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 +16 -4
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +223 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
TypeScript / JavaScript port of [ss-cachian](https://github.com/b4moss/ss-cachian).
|
|
4
4
|
|
|
5
|
-
Semantics match the Go package at `go/sscachian` (**v0.
|
|
6
|
-
write-back, Exact Purge, Memory
|
|
5
|
+
Semantics match the Go package at `go/sscachian` (**v0.9.0**): versioned keys, multilayer
|
|
6
|
+
write-back, Exact Purge, Memory / Firestore drivers, and **config-driven** `loadTypes`.
|
|
7
|
+
Specs: [docs/specs](../../docs/specs/).
|
|
7
8
|
|
|
8
9
|
## Install
|
|
9
10
|
|
|
@@ -26,6 +27,17 @@ await cache.set(kc, "alice");
|
|
|
26
27
|
const got = await cache.get(kc); // { ok: true, value: "alice" }
|
|
27
28
|
```
|
|
28
29
|
|
|
30
|
+
### Config-driven (v0.9.0)
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { createRegistry, loadTypes } from "@b4moss/ss-cachian";
|
|
34
|
+
|
|
35
|
+
const reg = createRegistry();
|
|
36
|
+
reg.registerLoader("load_users", async () => "alice");
|
|
37
|
+
const types = await loadTypes(reg, "./sscachian.yaml");
|
|
38
|
+
const cache = types.get("users");
|
|
39
|
+
```
|
|
40
|
+
|
|
29
41
|
Firestore (Emulator / GCP):
|
|
30
42
|
|
|
31
43
|
```ts
|
|
@@ -47,5 +59,5 @@ npm test
|
|
|
47
59
|
|
|
48
60
|
## Publish
|
|
49
61
|
|
|
50
|
-
Tags `v*` on `main`
|
|
51
|
-
See [
|
|
62
|
+
Tags `v*` on `main` (or Actions → **npm publish** → Run workflow) publish via
|
|
63
|
+
**npm Trusted Publisher (OIDC)**. See [.github/CI.md](../../.github/CI.md).
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CacheType } from "./cache.js";
|
|
2
|
+
import { type DurationMs, type KeyBuilder, type Loader } from "./types.js";
|
|
3
|
+
export type Registry = {
|
|
4
|
+
registerKeyBuilder(name: string, kb: KeyBuilder): void;
|
|
5
|
+
registerLoader<T>(name: string, loader: Loader<T>): void;
|
|
6
|
+
/** @internal */
|
|
7
|
+
lookupKeyBuilder(name: string): KeyBuilder | undefined;
|
|
8
|
+
/** @internal */
|
|
9
|
+
lookupLoader(name: string): Loader<unknown> | undefined;
|
|
10
|
+
};
|
|
11
|
+
export declare function createRegistry(): Registry;
|
|
12
|
+
/** Go time.ParseDuration-compatible parser (ns/us/ms/s/m/h). */
|
|
13
|
+
export declare function parseDuration(s: string): DurationMs;
|
|
14
|
+
export declare function loadTypesYAML<T = unknown>(reg: Registry, data: string | Uint8Array): Promise<Map<string, CacheType<T>>>;
|
|
15
|
+
export declare function loadTypesJSON<T = unknown>(reg: Registry, data: string | Uint8Array): Promise<Map<string, CacheType<T>>>;
|
|
16
|
+
export declare function loadTypes<T = unknown>(reg: Registry, filePath: string): Promise<Map<string, CacheType<T>>>;
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAU,MAAM,YAAY,CAAC;AAG/C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;IACvD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,gBAAgB;IAChB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,gBAAgB;IAChB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,wBAAgB,cAAc,IAAI,QAAQ,CAsBzC;AAqBD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CA2BnD;AAoID,wBAAsB,aAAa,CAAC,CAAC,GAAG,OAAO,EAC7C,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CASpC;AAED,wBAAsB,aAAa,CAAC,CAAC,GAAG,OAAO,EAC7C,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CASpC;AAED,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EACzC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAMpC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { parse as parseYaml } from "yaml";
|
|
4
|
+
import { define } from "./cache.js";
|
|
5
|
+
import { newFirestoreStore } from "./driver/firestore.js";
|
|
6
|
+
import { newMemoryStore } from "./driver/memory.js";
|
|
7
|
+
import { ErrInvalidConfig, ErrNegativeTTL, defaultKeyBuilder, } from "./types.js";
|
|
8
|
+
const SCHEMA_VERSION = "0.9";
|
|
9
|
+
export function createRegistry() {
|
|
10
|
+
const keyBuilders = new Map([["default", defaultKeyBuilder]]);
|
|
11
|
+
const loaders = new Map();
|
|
12
|
+
return {
|
|
13
|
+
registerKeyBuilder(name, kb) {
|
|
14
|
+
if (!name)
|
|
15
|
+
throw new Error(`${ErrInvalidConfig.message}: empty key builder name`);
|
|
16
|
+
if (kb == null)
|
|
17
|
+
throw new Error(`${ErrInvalidConfig.message}: nil key builder`);
|
|
18
|
+
keyBuilders.set(name, kb);
|
|
19
|
+
},
|
|
20
|
+
registerLoader(name, loader) {
|
|
21
|
+
if (!name)
|
|
22
|
+
throw new Error(`${ErrInvalidConfig.message}: empty loader name`);
|
|
23
|
+
if (loader == null)
|
|
24
|
+
throw new Error(`${ErrInvalidConfig.message}: nil loader`);
|
|
25
|
+
loaders.set(name, loader);
|
|
26
|
+
},
|
|
27
|
+
lookupKeyBuilder(name) {
|
|
28
|
+
return keyBuilders.get(name);
|
|
29
|
+
},
|
|
30
|
+
lookupLoader(name) {
|
|
31
|
+
return loaders.get(name);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Go time.ParseDuration-compatible parser (ns/us/ms/s/m/h). */
|
|
36
|
+
export function parseDuration(s) {
|
|
37
|
+
if (s === "" || s === "0")
|
|
38
|
+
return 0;
|
|
39
|
+
const re = /(-?\d+(?:\.\d+)?)(ns|us|µs|μs|ms|s|m|h)/g;
|
|
40
|
+
let total = 0;
|
|
41
|
+
let matched = 0;
|
|
42
|
+
let m;
|
|
43
|
+
const units = {
|
|
44
|
+
ns: 1e-6,
|
|
45
|
+
us: 0.001,
|
|
46
|
+
µs: 0.001,
|
|
47
|
+
μs: 0.001,
|
|
48
|
+
ms: 1,
|
|
49
|
+
s: 1000,
|
|
50
|
+
m: 60_000,
|
|
51
|
+
h: 3_600_000,
|
|
52
|
+
};
|
|
53
|
+
while ((m = re.exec(s)) !== null) {
|
|
54
|
+
matched += m[0].length;
|
|
55
|
+
const n = Number(m[1]);
|
|
56
|
+
const u = m[2];
|
|
57
|
+
total += n * (units[u] ?? 0);
|
|
58
|
+
}
|
|
59
|
+
if (matched !== s.length || Number.isNaN(total)) {
|
|
60
|
+
throw new Error(`${ErrInvalidConfig.message}: invalid ttl ${JSON.stringify(s)}`);
|
|
61
|
+
}
|
|
62
|
+
if (total < 0)
|
|
63
|
+
throw ErrNegativeTTL;
|
|
64
|
+
return total;
|
|
65
|
+
}
|
|
66
|
+
function optionalTTL(v) {
|
|
67
|
+
if (v == null)
|
|
68
|
+
return { set: false, ms: 0 };
|
|
69
|
+
if (typeof v !== "string") {
|
|
70
|
+
throw new Error(`${ErrInvalidConfig.message}: ttl must be a string duration`);
|
|
71
|
+
}
|
|
72
|
+
if (v === "")
|
|
73
|
+
return { set: false, ms: 0 };
|
|
74
|
+
return { set: true, ms: parseDuration(v) };
|
|
75
|
+
}
|
|
76
|
+
function schemaVersion(v) {
|
|
77
|
+
if (v == null || v === "") {
|
|
78
|
+
throw new Error(`${ErrInvalidConfig.message}: schema_version is required`);
|
|
79
|
+
}
|
|
80
|
+
if (typeof v !== "string") {
|
|
81
|
+
throw new Error(`${ErrInvalidConfig.message}: schema_version must be a string`);
|
|
82
|
+
}
|
|
83
|
+
return v;
|
|
84
|
+
}
|
|
85
|
+
function stringOptions(opts) {
|
|
86
|
+
if (opts == null)
|
|
87
|
+
return {};
|
|
88
|
+
if (typeof opts !== "object" || Array.isArray(opts)) {
|
|
89
|
+
throw new Error(`${ErrInvalidConfig.message}: options must be a map`);
|
|
90
|
+
}
|
|
91
|
+
const out = {};
|
|
92
|
+
for (const [k, v] of Object.entries(opts)) {
|
|
93
|
+
if (typeof v !== "string") {
|
|
94
|
+
throw new Error(`${ErrInvalidConfig.message}: option ${JSON.stringify(k)} must be a string`);
|
|
95
|
+
}
|
|
96
|
+
out[k] = v;
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
async function buildLayer(rl) {
|
|
101
|
+
const driver = rl.driver;
|
|
102
|
+
if (typeof driver !== "string" || driver === "") {
|
|
103
|
+
throw new Error(`${ErrInvalidConfig.message}: driver must not be empty`);
|
|
104
|
+
}
|
|
105
|
+
const opts = stringOptions(rl.options);
|
|
106
|
+
if (driver === "memory") {
|
|
107
|
+
for (const k of Object.keys(opts)) {
|
|
108
|
+
throw new Error(`${ErrInvalidConfig.message}: unknown memory option ${JSON.stringify(k)}`);
|
|
109
|
+
}
|
|
110
|
+
return newMemoryStore();
|
|
111
|
+
}
|
|
112
|
+
if (driver === "firestore") {
|
|
113
|
+
const projectId = opts.project_id;
|
|
114
|
+
const collection = opts.collection;
|
|
115
|
+
for (const k of Object.keys(opts)) {
|
|
116
|
+
if (k !== "project_id" && k !== "collection") {
|
|
117
|
+
throw new Error(`${ErrInvalidConfig.message}: unknown firestore option ${JSON.stringify(k)}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return newFirestoreStore({ projectId, collection });
|
|
121
|
+
}
|
|
122
|
+
throw new Error(`${ErrInvalidConfig.message}: unknown driver ${JSON.stringify(driver)}`);
|
|
123
|
+
}
|
|
124
|
+
async function buildOneType(reg, rt) {
|
|
125
|
+
if (typeof rt.name !== "string" || rt.name === "") {
|
|
126
|
+
throw new Error(`${ErrInvalidConfig.message}: type name must not be empty`);
|
|
127
|
+
}
|
|
128
|
+
if (!Array.isArray(rt.layers) || rt.layers.length === 0) {
|
|
129
|
+
throw new Error(`${ErrInvalidConfig.message}: type ${JSON.stringify(rt.name)}: layers must not be empty`);
|
|
130
|
+
}
|
|
131
|
+
const kbName = rt.key_builder == null || rt.key_builder === ""
|
|
132
|
+
? "default"
|
|
133
|
+
: typeof rt.key_builder === "string"
|
|
134
|
+
? rt.key_builder
|
|
135
|
+
: null;
|
|
136
|
+
if (kbName == null) {
|
|
137
|
+
throw new Error(`${ErrInvalidConfig.message}: key_builder must be a string`);
|
|
138
|
+
}
|
|
139
|
+
const kb = reg.lookupKeyBuilder(kbName);
|
|
140
|
+
if (!kb) {
|
|
141
|
+
throw new Error(`${ErrInvalidConfig.message}: unknown key_builder ${JSON.stringify(kbName)}`);
|
|
142
|
+
}
|
|
143
|
+
let loader;
|
|
144
|
+
if (rt.loader != null && rt.loader !== "") {
|
|
145
|
+
if (typeof rt.loader !== "string") {
|
|
146
|
+
throw new Error(`${ErrInvalidConfig.message}: loader must be a string`);
|
|
147
|
+
}
|
|
148
|
+
const found = reg.lookupLoader(rt.loader);
|
|
149
|
+
if (!found) {
|
|
150
|
+
throw new Error(`${ErrInvalidConfig.message}: unknown loader ${JSON.stringify(rt.loader)}`);
|
|
151
|
+
}
|
|
152
|
+
loader = found;
|
|
153
|
+
}
|
|
154
|
+
const typeTTL = optionalTTL(rt.ttl);
|
|
155
|
+
const layers = [];
|
|
156
|
+
const ttls = [];
|
|
157
|
+
for (let i = 0; i < rt.layers.length; i++) {
|
|
158
|
+
const rl = rt.layers[i];
|
|
159
|
+
layers.push(await buildLayer(rl));
|
|
160
|
+
const layerTTL = optionalTTL(rl.ttl);
|
|
161
|
+
if (layerTTL.set)
|
|
162
|
+
ttls.push(layerTTL.ms);
|
|
163
|
+
else if (typeTTL.set)
|
|
164
|
+
ttls.push(typeTTL.ms);
|
|
165
|
+
else
|
|
166
|
+
ttls.push(0);
|
|
167
|
+
}
|
|
168
|
+
const b = define(rt.name).withLayers(...layers).withKeyBuilder(kb).withLayerTTLs(...ttls);
|
|
169
|
+
if (loader)
|
|
170
|
+
b.withLoader(loader);
|
|
171
|
+
return b.build();
|
|
172
|
+
}
|
|
173
|
+
async function buildTypes(reg, raw) {
|
|
174
|
+
const ver = schemaVersion(raw.schema_version);
|
|
175
|
+
if (ver !== SCHEMA_VERSION) {
|
|
176
|
+
throw new Error(`${ErrInvalidConfig.message}: unsupported schema_version ${JSON.stringify(ver)}`);
|
|
177
|
+
}
|
|
178
|
+
if (!Array.isArray(raw.types) || raw.types.length === 0) {
|
|
179
|
+
throw new Error(`${ErrInvalidConfig.message}: types must not be empty`);
|
|
180
|
+
}
|
|
181
|
+
const out = new Map();
|
|
182
|
+
for (const rt of raw.types) {
|
|
183
|
+
const name = typeof rt.name === "string" ? rt.name : "";
|
|
184
|
+
if (out.has(name)) {
|
|
185
|
+
throw new Error(`${ErrInvalidConfig.message}: duplicate type name ${JSON.stringify(name)}`);
|
|
186
|
+
}
|
|
187
|
+
const ct = await buildOneType(reg, rt);
|
|
188
|
+
out.set(ct.name(), ct);
|
|
189
|
+
}
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
192
|
+
export async function loadTypesYAML(reg, data) {
|
|
193
|
+
const text = typeof data === "string" ? data : Buffer.from(data).toString("utf8");
|
|
194
|
+
let raw;
|
|
195
|
+
try {
|
|
196
|
+
raw = parseYaml(text);
|
|
197
|
+
}
|
|
198
|
+
catch (e) {
|
|
199
|
+
throw new Error(`${ErrInvalidConfig.message}: yaml: ${e instanceof Error ? e.message : e}`);
|
|
200
|
+
}
|
|
201
|
+
return buildTypes(reg, raw ?? {});
|
|
202
|
+
}
|
|
203
|
+
export async function loadTypesJSON(reg, data) {
|
|
204
|
+
const text = typeof data === "string" ? data : Buffer.from(data).toString("utf8");
|
|
205
|
+
let raw;
|
|
206
|
+
try {
|
|
207
|
+
raw = JSON.parse(text);
|
|
208
|
+
}
|
|
209
|
+
catch (e) {
|
|
210
|
+
throw new Error(`${ErrInvalidConfig.message}: json: ${e instanceof Error ? e.message : e}`);
|
|
211
|
+
}
|
|
212
|
+
return buildTypes(reg, raw ?? {});
|
|
213
|
+
}
|
|
214
|
+
export async function loadTypes(reg, filePath) {
|
|
215
|
+
const data = await fs.readFile(filePath);
|
|
216
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
217
|
+
if (ext === ".json")
|
|
218
|
+
return loadTypesJSON(reg, data);
|
|
219
|
+
if (ext === ".yaml" || ext === ".yml")
|
|
220
|
+
return loadTypesYAML(reg, data);
|
|
221
|
+
throw new Error(`${ErrInvalidConfig.message}: unsupported config extension ${JSON.stringify(ext)}`);
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @b4moss/ss-cachian — Node.js / TypeScript port of ss-cachian (Go v0.7.0 parity).
|
|
2
|
+
* @b4moss/ss-cachian — Node.js / TypeScript port of ss-cachian (Go v0.7.0+ parity).
|
|
3
3
|
*/
|
|
4
4
|
export declare const SSCACHIAN_RUNTIME: "node";
|
|
5
|
-
export { ErrEmptyKey, ErrNegativeTTL, ErrNotInteger, ErrIncrOverflow, ErrNoLayer, ErrNoKeyBuilder, ErrInvalidVersion, ErrNoLoader, ErrTypeMismatch, ErrInvalidContext, ErrCorruptVersion, ErrInvalidLayerIndex, SscachianError, isVersionDataKey, defaultKeyBuilder, type Entry, type Layer, type DurationMs, type KeyContext, type KeyBuilder, type Loader, type TypeGuard, } from "./types.js";
|
|
5
|
+
export { ErrEmptyKey, ErrNegativeTTL, ErrNotInteger, ErrIncrOverflow, ErrNoLayer, ErrNoKeyBuilder, ErrInvalidVersion, ErrNoLoader, ErrTypeMismatch, ErrInvalidContext, ErrCorruptVersion, ErrInvalidLayerIndex, ErrInvalidConfig, SscachianError, isVersionDataKey, defaultKeyBuilder, type Entry, type Layer, type DurationMs, type KeyContext, type KeyBuilder, type Loader, type TypeGuard, } from "./types.js";
|
|
6
6
|
export { define, Builder, CacheType } from "./cache.js";
|
|
7
7
|
export { MemoryStore, newMemoryStore } from "./driver/memory.js";
|
|
8
8
|
export { FirestoreStore, newFirestoreStore, type FirestoreOptions, } from "./driver/firestore.js";
|
|
9
|
+
export { createRegistry, loadTypes, loadTypesYAML, loadTypesJSON, parseDuration, type Registry, } from "./config.js";
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,EAAG,MAAe,CAAC;AAEjD,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,SAAS,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,EAAG,MAAe,CAAC;AAEjD,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,SAAS,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @b4moss/ss-cachian — Node.js / TypeScript port of ss-cachian (Go v0.7.0 parity).
|
|
2
|
+
* @b4moss/ss-cachian — Node.js / TypeScript port of ss-cachian (Go v0.7.0+ parity).
|
|
3
3
|
*/
|
|
4
4
|
export const SSCACHIAN_RUNTIME = "node";
|
|
5
|
-
export { ErrEmptyKey, ErrNegativeTTL, ErrNotInteger, ErrIncrOverflow, ErrNoLayer, ErrNoKeyBuilder, ErrInvalidVersion, ErrNoLoader, ErrTypeMismatch, ErrInvalidContext, ErrCorruptVersion, ErrInvalidLayerIndex, SscachianError, isVersionDataKey, defaultKeyBuilder, } from "./types.js";
|
|
5
|
+
export { ErrEmptyKey, ErrNegativeTTL, ErrNotInteger, ErrIncrOverflow, ErrNoLayer, ErrNoKeyBuilder, ErrInvalidVersion, ErrNoLoader, ErrTypeMismatch, ErrInvalidContext, ErrCorruptVersion, ErrInvalidLayerIndex, ErrInvalidConfig, SscachianError, isVersionDataKey, defaultKeyBuilder, } from "./types.js";
|
|
6
6
|
export { define, Builder, CacheType } from "./cache.js";
|
|
7
7
|
export { MemoryStore, newMemoryStore } from "./driver/memory.js";
|
|
8
8
|
export { FirestoreStore, newFirestoreStore, } from "./driver/firestore.js";
|
|
9
|
+
export { createRegistry, loadTypes, loadTypesYAML, loadTypesJSON, parseDuration, } from "./config.js";
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAe,CAAC;AAEjD,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAQlB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAe,CAAC;AAEjD,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAQlB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GAEd,MAAM,aAAa,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare const ErrTypeMismatch: SscachianError;
|
|
|
14
14
|
export declare const ErrInvalidContext: SscachianError;
|
|
15
15
|
export declare const ErrCorruptVersion: SscachianError;
|
|
16
16
|
export declare const ErrInvalidLayerIndex: SscachianError;
|
|
17
|
+
export declare const ErrInvalidConfig: SscachianError;
|
|
17
18
|
/** On-Layer storage wrapper. */
|
|
18
19
|
export type Entry = {
|
|
19
20
|
value: unknown;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,WAAW,gBAA6C,CAAC;AACtE,eAAO,MAAM,cAAc,gBAAgD,CAAC;AAC5E,eAAO,MAAM,aAAa,gBAA2D,CAAC;AACtF,eAAO,MAAM,eAAe,gBAAiD,CAAC;AAC9E,eAAO,MAAM,UAAU,gBAAwD,CAAC;AAChF,eAAO,MAAM,eAAe,gBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,gBAAwD,CAAC;AACvF,eAAO,MAAM,WAAW,gBAAyD,CAAC;AAClF,eAAO,MAAM,eAAe,gBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,gBAAuD,CAAC;AACtF,eAAO,MAAM,iBAAiB,gBAAiE,CAAC;AAChG,eAAO,MAAM,oBAAoB,gBAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,WAAW,gBAA6C,CAAC;AACtE,eAAO,MAAM,cAAc,gBAAgD,CAAC;AAC5E,eAAO,MAAM,aAAa,gBAA2D,CAAC;AACtF,eAAO,MAAM,eAAe,gBAAiD,CAAC;AAC9E,eAAO,MAAM,UAAU,gBAAwD,CAAC;AAChF,eAAO,MAAM,eAAe,gBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,gBAAwD,CAAC;AACvF,eAAO,MAAM,WAAW,gBAAyD,CAAC;AAClF,eAAO,MAAM,eAAe,gBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,gBAAuD,CAAC;AACtF,eAAO,MAAM,iBAAiB,gBAAiE,CAAC;AAChG,eAAO,MAAM,oBAAoB,gBAAuD,CAAC;AACzF,eAAO,MAAM,gBAAgB,gBAAkD,CAAC;AAEhF,gCAAgC;AAChC,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,wDAAwD;IACxD,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,OAAa,GAAG,OAAO,CAI3E;AAED,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAU5E;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC5F,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAKxD"}
|
package/dist/types.js
CHANGED
|
@@ -17,6 +17,7 @@ export const ErrTypeMismatch = new SscachianError("sscachian: cached value type
|
|
|
17
17
|
export const ErrInvalidContext = new SscachianError("sscachian: invalid key context");
|
|
18
18
|
export const ErrCorruptVersion = new SscachianError("sscachian: corrupt current-version value");
|
|
19
19
|
export const ErrInvalidLayerIndex = new SscachianError("sscachian: invalid layer index");
|
|
20
|
+
export const ErrInvalidConfig = new SscachianError("sscachian: invalid config");
|
|
20
21
|
export function noExpiry() {
|
|
21
22
|
return null;
|
|
22
23
|
}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,yBAAyB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,0BAA0B,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,kCAAkC,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,0CAA0C,CAAC,CAAC;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,yBAAyB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,0BAA0B,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,kCAAkC,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,0CAA0C,CAAC,CAAC;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAC,2BAA2B,CAAC,CAAC;AAUhF,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAsB,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IAChE,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAChD,CAAC;AAaD,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,GAAW;IACjE,IAAI,aAAa,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,IAAI,GAAG,GAAG,aAAa,GAAG,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAYD,MAAM,UAAU,iBAAiB,CAAC,EAAc;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,iBAAiB,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,EAAE,CAAC,OAAO,UAAU,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b4moss/ss-cachian",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Server-side cache strategy library (TypeScript/JavaScript).
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Server-side cache strategy library (TypeScript/JavaScript). Config-driven Cache Types (v0.9.0) with Go parity.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -49,10 +49,11 @@
|
|
|
49
49
|
"versioned-cache"
|
|
50
50
|
],
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "^22.
|
|
52
|
+
"@types/node": "^22.20.4",
|
|
53
53
|
"typescript": "^5.8.2"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@google-cloud/firestore": "^7.11.6"
|
|
56
|
+
"@google-cloud/firestore": "^7.11.6",
|
|
57
|
+
"yaml": "^2.7.0"
|
|
57
58
|
}
|
|
58
59
|
}
|