@paroicms/server-text-cache-system 1.16.3 → 1.18.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/dist/db-init/db-init.js +1 -1
- package/dist/db-init/db-init.js.map +1 -1
- package/dist/db-init/ddl-migration.js +1 -1
- package/dist/db-init/ddl-migration.js.map +1 -1
- package/dist/internal/queries.js +25 -10
- package/dist/internal/queries.js.map +1 -1
- package/dist/internal/scheduled-invalidation-queries.js +18 -7
- package/dist/internal/scheduled-invalidation-queries.js.map +1 -1
- package/package.json +6 -6
package/dist/db-init/db-init.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersion, getMetadataValue, setMetadataValue, } from "@paroicms/internal-server-lib";
|
|
2
1
|
import { join } from "node:path";
|
|
2
|
+
import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersion, getMetadataValue, setMetadataValue, } from "@paroicms/internal-server-lib";
|
|
3
3
|
import { packageDir } from "../constants.js";
|
|
4
4
|
import { clearCacheValues } from "../internal/queries.js";
|
|
5
5
|
import { currentDbSchemaVersion, dbSchemaName, migrateTextCacheDb } from "./ddl-migration.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-init.js","sourceRoot":"","sources":["../../src/db-init/db-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,4BAA4B,EAC5B,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"db-init.js","sourceRoot":"","sources":["../../src/db-init/db-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAGL,4BAA4B,EAC5B,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE9F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,UAAU,EACV,UAAU,EACV,MAAM,GACwD;IAC9D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAE/E,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,MAAM,4BAA4B,CAAC;QAChF,SAAS,EAAE,IAAI;QACf,YAAY;QACZ,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC;QACtD,SAAS;QACT,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,aAAa,IAAI,eAAe,CAAC,QAAQ,CAAC;IAE1D,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IACzF,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,MAAM,gBAAgB,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACnF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CACT,qDAAqD,gBAAgB,OAAO,UAAU,EAAE,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,EAAQ;QAC/B,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QACzE,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;YACzC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,SAAS;aACzB,CAAC;QACJ,CAAC;QACD,MAAM,kBAAkB,CAAC,EAAE,EAAE;YAC3B,WAAW,EAAE,SAAS;YACtB,MAAM;SACP,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,sBAAsB;SACtC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { executeDdl, getMetadataDbSchemaVersion } from "@paroicms/internal-server-lib";
|
|
2
1
|
import { join } from "node:path";
|
|
2
|
+
import { executeDdl, getMetadataDbSchemaVersion } from "@paroicms/internal-server-lib";
|
|
3
3
|
import { packageDir } from "../constants.js";
|
|
4
4
|
export const dbSchemaName = "text-cache";
|
|
5
5
|
export const currentDbSchemaVersion = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAGvF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAQ,EACR,EAAE,WAAW,EAAE,MAAM,EAA8C;IAEnE,MAAM,SAAS,GAAG,sBAAsB,CAAC;IACzC,IAAI,cAAc,GAAG,WAAW,CAAC;IAEjC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;QACtE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAC7E,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACpE,cAAc,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,cAAc,YAAY,wBAAwB,SAAS,cAAc,cAAc,GAAG,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,+BAA+B,WAAW,OAAO,cAAc,EAAE,CAAC,CAAC;AAChG,CAAC"}
|
package/dist/internal/queries.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { dateVal, strVal } from "@paroi/data-formatters-lib";
|
|
2
1
|
import { isSameTimeUnit } from "@paroicms/internal-anywhere-lib";
|
|
3
|
-
import { generateResourceVersion } from "@paroicms/internal-server-lib";
|
|
2
|
+
import { generateResourceVersion, parseSqliteDateTime, } from "@paroicms/internal-server-lib";
|
|
3
|
+
import { type } from "arktype";
|
|
4
4
|
import { dbSchemaName } from "../db-init/ddl-migration.js";
|
|
5
5
|
export async function insertOrUpdateCacheValue(cn, data, tracker) {
|
|
6
6
|
const resourceVersion = generateResourceVersion();
|
|
@@ -29,6 +29,18 @@ export async function insertOrUpdateCacheValue(cn, data, tracker) {
|
|
|
29
29
|
value: data.value,
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
+
const TextCacheRowAT = type({
|
|
33
|
+
k: "string",
|
|
34
|
+
val: "string",
|
|
35
|
+
resourceVersion: "string",
|
|
36
|
+
readAt: "string|number|Date",
|
|
37
|
+
"+": "reject",
|
|
38
|
+
}).pipe((r) => ({
|
|
39
|
+
k: r.k,
|
|
40
|
+
val: r.val,
|
|
41
|
+
resourceVersion: r.resourceVersion,
|
|
42
|
+
readAt: parseSqliteDateTime(r.readAt),
|
|
43
|
+
}));
|
|
32
44
|
export async function getCacheValue({ cn, timeToIdleDays, logger }, cacheKey, tracker) {
|
|
33
45
|
const query = cn("PaTextCache as c").select(["c.val", "c.resourceVersion", "c.readAt", "c.k"]);
|
|
34
46
|
if (Array.isArray(cacheKey)) {
|
|
@@ -41,12 +53,7 @@ export async function getCacheValue({ cn, timeToIdleDays, logger }, cacheKey, tr
|
|
|
41
53
|
tracker.trackAccess(dbSchemaName, "PaTextCache", "read");
|
|
42
54
|
if (rows.length === 0)
|
|
43
55
|
return;
|
|
44
|
-
const items = rows.map((row) => (
|
|
45
|
-
k: strVal(row.k),
|
|
46
|
-
val: strVal(row.val),
|
|
47
|
-
resourceVersion: strVal(row.resourceVersion),
|
|
48
|
-
readAt: dateVal(row.readAt),
|
|
49
|
-
}));
|
|
56
|
+
const items = rows.map((row) => TextCacheRowAT.assert(row));
|
|
50
57
|
const item = Array.isArray(cacheKey) ? getFirstMatchingRow(cacheKey, items) : items[0];
|
|
51
58
|
if (timeToIdleDays !== undefined && !isSameTimeUnit(item.readAt, "day")) {
|
|
52
59
|
logger.debug(`updating readAt of cache: ${cacheKey}`);
|
|
@@ -68,14 +75,22 @@ function getFirstMatchingRow(cacheKeys, items) {
|
|
|
68
75
|
}
|
|
69
76
|
throw new Error(`No matching row found for cache keys: ${cacheKeys.join(", ")}`);
|
|
70
77
|
}
|
|
78
|
+
const TextCacheDependencyAT = type({
|
|
79
|
+
depK: "string",
|
|
80
|
+
"+": "reject",
|
|
81
|
+
});
|
|
71
82
|
export async function getDependencyKeys({ cn }, cacheKey, tracker) {
|
|
72
83
|
const rows = await cn("PaTextCacheDependency as d")
|
|
73
84
|
.select("d.depK")
|
|
74
85
|
.join("PaTextCache as c", "c.k", "d.cacheK")
|
|
75
86
|
.where("c.k", cacheKey);
|
|
76
87
|
tracker.trackAccess(dbSchemaName, "PaTextCacheDependency", "read");
|
|
77
|
-
return rows.map((row) =>
|
|
88
|
+
return rows.map((row) => TextCacheDependencyAT.assert(row).depK);
|
|
78
89
|
}
|
|
90
|
+
const TextCacheDeletedAT = type({
|
|
91
|
+
k: "string",
|
|
92
|
+
"+": "reject",
|
|
93
|
+
});
|
|
79
94
|
/**
|
|
80
95
|
* @returns the list of cache cacheKeys that were deleted
|
|
81
96
|
*/
|
|
@@ -84,7 +99,7 @@ export async function deleteCacheValues(cn, options) {
|
|
|
84
99
|
.select("c.k")
|
|
85
100
|
.join("PaTextCacheDependency as d", "d.cacheK", "c.k")
|
|
86
101
|
.whereIn("d.depK", options.dependencyKeys);
|
|
87
|
-
const cacheKeys = rows.map((row) =>
|
|
102
|
+
const cacheKeys = rows.map((row) => TextCacheDeletedAT.assert(row).k);
|
|
88
103
|
if (cacheKeys.length === 0)
|
|
89
104
|
return [];
|
|
90
105
|
await cn("PaTextCache").whereIn("k", cacheKeys).delete();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,37 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseSqliteDateTime } from "@paroicms/internal-server-lib";
|
|
2
|
+
import { type } from "arktype";
|
|
3
|
+
const ScheduledDateRowAT = type({
|
|
4
|
+
scheduledAt: "string|number|Date",
|
|
5
|
+
"+": "reject",
|
|
6
|
+
}).pipe((r) => ({
|
|
7
|
+
scheduledAt: parseSqliteDateTime(r.scheduledAt),
|
|
8
|
+
}));
|
|
2
9
|
export async function getNextScheduledDate({ cn, }) {
|
|
3
10
|
const row = await cn("PaTextCacheScheduledInvalidation as s")
|
|
4
11
|
.select("s.scheduledAt")
|
|
5
12
|
.orderBy("s.scheduledAt")
|
|
6
13
|
.limit(1)
|
|
7
14
|
.first();
|
|
8
|
-
return row ?
|
|
15
|
+
return row ? ScheduledDateRowAT.assert(row).scheduledAt : undefined;
|
|
9
16
|
}
|
|
17
|
+
const ScheduledInvalidationRowAT = type({
|
|
18
|
+
eventK: "string",
|
|
19
|
+
depK: "string",
|
|
20
|
+
"+": "reject",
|
|
21
|
+
});
|
|
10
22
|
export async function getScheduledInvalidationEventsToFire({ cn, }) {
|
|
11
23
|
const rows = await cn("PaTextCacheScheduledInvalidation as s")
|
|
12
24
|
.select(["s.eventK", "s.depK"])
|
|
13
25
|
.whereRaw("s.scheduledAt <= current_timestamp");
|
|
14
26
|
const events = new Map();
|
|
15
27
|
for (const row of rows) {
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const dependencyKeys = events.get(eventKey);
|
|
28
|
+
const { eventK, depK } = ScheduledInvalidationRowAT.assert(row);
|
|
29
|
+
const dependencyKeys = events.get(eventK);
|
|
19
30
|
if (dependencyKeys) {
|
|
20
|
-
dependencyKeys.push(
|
|
31
|
+
dependencyKeys.push(depK);
|
|
21
32
|
}
|
|
22
33
|
else {
|
|
23
|
-
events.set(
|
|
34
|
+
events.set(eventK, [depK]);
|
|
24
35
|
}
|
|
25
36
|
}
|
|
26
37
|
return Array.from(events.entries()).map(([eventKey, dependencyKeys]) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-invalidation-queries.js","sourceRoot":"","sources":["../../src/internal/scheduled-invalidation-queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scheduled-invalidation-queries.js","sourceRoot":"","sources":["../../src/internal/scheduled-invalidation-queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/server-text-cache-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "Cache system.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"paroicms",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@paroi/async-lib": "~0.3.1",
|
|
31
|
-
"@
|
|
32
|
-
"@paroicms/internal-
|
|
33
|
-
"@paroicms/
|
|
34
|
-
"@paroicms/public-
|
|
35
|
-
"
|
|
31
|
+
"@paroicms/internal-anywhere-lib": "1.31.0",
|
|
32
|
+
"@paroicms/internal-server-lib": "1.18.0",
|
|
33
|
+
"@paroicms/public-anywhere-lib": "0.25.0",
|
|
34
|
+
"@paroicms/public-server-lib": "0.37.0",
|
|
35
|
+
"arktype": "~2.1.20"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "~24.0.1",
|