@paroicms/server-image-cache-engine 1.19.0 → 1.20.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.d.ts +2 -2
- package/dist/db-init/db-init.js +2 -5
- package/dist/db-init/db-init.js.map +1 -1
- package/dist/db-init/ddl-migration.d.ts +2 -2
- package/dist/db-init/ddl-migration.js +1 -1
- package/dist/db-init/ddl-migration.js.map +1 -1
- package/dist/internal/engine-context.d.ts +2 -2
- package/dist/internal/queries.d.ts +4 -4
- package/dist/internal/queries.js +126 -120
- package/dist/internal/queries.js.map +1 -1
- package/package.json +7 -6
- package/dist/db-init/entities/PaImageCache.entity.d.ts +0 -14
- package/dist/db-init/entities/PaImageCache.entity.js +0 -78
- package/dist/db-init/entities/PaImageCache.entity.js.map +0 -1
- package/dist/db-init/entities/PaImageCacheUsed.entity.d.ts +0 -5
- package/dist/db-init/entities/PaImageCacheUsed.entity.js +0 -32
- package/dist/db-init/entities/PaImageCacheUsed.entity.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type BasicAppLogger } from "@paroicms/internal-server-lib";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
export declare function createOrOpenConnection({ sqliteFile, logger, }: {
|
|
4
4
|
sqliteFile: string;
|
|
5
5
|
logger: BasicAppLogger;
|
|
6
6
|
}): Promise<{
|
|
7
|
-
cn:
|
|
7
|
+
cn: Knex<any, any[]>;
|
|
8
8
|
logNextQuery: (count?: number) => void;
|
|
9
9
|
isCleared: boolean;
|
|
10
10
|
}>;
|
package/dist/db-init/db-init.js
CHANGED
|
@@ -2,19 +2,16 @@ import { createOrOpenSqliteConnection, createSqlLogger, getMetadataDbSchemaVersi
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { packageDir } from "../constants.js";
|
|
4
4
|
import { currentDbSchemaVersion, dbSchemaName, migrateImageCacheDb } from "./ddl-migration.js";
|
|
5
|
-
import { PaImageCacheEntity } from "./entities/PaImageCache.entity.js";
|
|
6
|
-
import { PaImageCacheUsedEntity } from "./entities/PaImageCacheUsed.entity.js";
|
|
7
5
|
export async function createOrOpenConnection({ sqliteFile, logger, }) {
|
|
8
|
-
const { logNextQuery,
|
|
6
|
+
const { logNextQuery, knexLogger } = createSqlLogger({ logger, dbSchemaName });
|
|
9
7
|
const { cn, isNewDatabase, migrationReport } = await createOrOpenSqliteConnection({
|
|
10
8
|
canCreate: true,
|
|
11
9
|
dbSchemaName,
|
|
12
10
|
sqliteFile,
|
|
13
11
|
ddlFile: join(packageDir, "ddl", "image-cache.ddl.sql"),
|
|
14
12
|
migrateDb,
|
|
15
|
-
entities: [PaImageCacheEntity, PaImageCacheUsedEntity],
|
|
16
|
-
typeOrmLogger,
|
|
17
13
|
logger,
|
|
14
|
+
knexLogger,
|
|
18
15
|
});
|
|
19
16
|
async function migrateDb(cn) {
|
|
20
17
|
const dbVersion = await getMetadataDbSchemaVersion(cn, { dbSchemaName });
|
|
@@ -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,GAC3B,MAAM,+BAA+B,CAAC;
|
|
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,GAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,UAAU,EACV,MAAM,GACyC;IAC/C,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,qBAAqB,CAAC;QACvD,SAAS;QACT,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,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,mBAAmB,CAAC,EAAE,EAAE;YAC5B,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,aAAa,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type BasicAppLogger } from "@paroicms/internal-server-lib";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
export declare const dbSchemaName = "image-cache";
|
|
4
4
|
export declare const currentDbSchemaVersion = 6;
|
|
5
|
-
export declare function migrateImageCacheDb(cn:
|
|
5
|
+
export declare function migrateImageCacheDb(cn: Knex, { fromVersion, logger }: {
|
|
6
6
|
fromVersion: number;
|
|
7
7
|
logger: BasicAppLogger;
|
|
8
8
|
}): Promise<void>;
|
|
@@ -7,7 +7,7 @@ export async function migrateImageCacheDb(cn, { fromVersion, logger }) {
|
|
|
7
7
|
const toVersion = currentDbSchemaVersion;
|
|
8
8
|
let currentVersion = fromVersion;
|
|
9
9
|
if (currentVersion === 4) {
|
|
10
|
-
await cn.
|
|
10
|
+
await cn.schema.dropTableIfExists("PaImageCacheKey");
|
|
11
11
|
}
|
|
12
12
|
// We don't care losing cache data
|
|
13
13
|
// Warning: don't reset the image cache until the text cache is reset too
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,
|
|
1
|
+
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAQ,EACR,EAAE,WAAW,EAAE,MAAM,EAAmD;IAExE,MAAM,SAAS,GAAG,sBAAsB,CAAC;IACzC,IAAI,cAAc,GAAG,WAAW,CAAC;IAEjC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,kCAAkC;IAClC,yEAAyE;IACzE,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACrE,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;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,+BAA+B,WAAW,OAAO,cAAc,EAAE,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PromiseToHandle } from "@paroi/async-lib";
|
|
2
2
|
import type { BasicAppLogger } from "@paroicms/internal-server-lib";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Knex } from "knex";
|
|
4
4
|
import type { ImageVariantWithBinary } from "../engine-types.js";
|
|
5
5
|
import type { CreateImageCacheEngineOptions } from "../image-cache-engine.js";
|
|
6
6
|
import type { TaskData, TaskKey } from "./internal.types.js";
|
|
@@ -9,7 +9,7 @@ export interface VariantEngineContext extends Omit<CreateImageCacheEngineOptions
|
|
|
9
9
|
logger: BasicAppLogger;
|
|
10
10
|
queue: TaskData[];
|
|
11
11
|
pendingTasks: Map<TaskKey, PromiseToHandle<ImageVariantWithBinary>>;
|
|
12
|
-
cn:
|
|
12
|
+
cn: Knex;
|
|
13
13
|
logNextQuery: (count?: number) => void;
|
|
14
14
|
timeToIdleDays?: number;
|
|
15
15
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { QueryBuilderConnection } from "@paroicms/internal-server-lib";
|
|
2
1
|
import type { VariantName } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
import type { ImageVariant, ImageVariantWithBinary } from "../engine-types.js";
|
|
4
4
|
import type { VariantEngineContext } from "../internal/engine-context.js";
|
|
5
|
-
export declare function insertIntoImageVariant(cn:
|
|
5
|
+
export declare function insertIntoImageVariant(cn: Knex, data: {
|
|
6
6
|
resourceVersion: string;
|
|
7
7
|
imageUid: string;
|
|
8
8
|
variantName: VariantName;
|
|
@@ -16,7 +16,7 @@ export declare function insertIntoImageVariant(cn: QueryBuilderConnection, data:
|
|
|
16
16
|
newId: string;
|
|
17
17
|
lastModified: string;
|
|
18
18
|
}>;
|
|
19
|
-
export declare function deleteVariants(cn:
|
|
19
|
+
export declare function deleteVariants(cn: Knex, options: {
|
|
20
20
|
imageUid: string;
|
|
21
21
|
variantName?: string;
|
|
22
22
|
} | {
|
|
@@ -25,7 +25,7 @@ export declare function deleteVariants(cn: QueryBuilderConnection, options: {
|
|
|
25
25
|
/**
|
|
26
26
|
* @returns the list of cache usedKeys that were deleted
|
|
27
27
|
*/
|
|
28
|
-
export declare function deleteVariantsByDependencies(cn:
|
|
28
|
+
export declare function deleteVariantsByDependencies(cn: Knex, options: {
|
|
29
29
|
usedKeys: string[];
|
|
30
30
|
}): Promise<number>;
|
|
31
31
|
export declare function fetchImageVariant(ctx: Pick<VariantEngineContext, "cn" | "timeToIdleDays" | "logger">, { imageUid, variantName, }: {
|
package/dist/internal/queries.js
CHANGED
|
@@ -1,97 +1,112 @@
|
|
|
1
1
|
import { dateVal, nbVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
2
|
import { isSameTimeUnit } from "@paroicms/internal-anywhere-lib";
|
|
3
3
|
export async function insertIntoImageVariant(cn, data, usedKey) {
|
|
4
|
-
const
|
|
5
|
-
.
|
|
6
|
-
.
|
|
7
|
-
.
|
|
8
|
-
.
|
|
9
|
-
...data,
|
|
10
|
-
modifiedAt: () => "current_timestamp",
|
|
11
|
-
readAt: () => "current_timestamp",
|
|
4
|
+
const existingRow = await cn("PaImageCache")
|
|
5
|
+
.select("id")
|
|
6
|
+
.where({
|
|
7
|
+
imageUid: data.imageUid,
|
|
8
|
+
variantName: data.variantName,
|
|
12
9
|
})
|
|
13
|
-
.
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
if (
|
|
17
|
-
const
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
.
|
|
10
|
+
.first();
|
|
11
|
+
let imageCacheId = existingRow ? strVal(existingRow.id) : undefined;
|
|
12
|
+
let modifiedAt;
|
|
13
|
+
if (imageCacheId === undefined) {
|
|
14
|
+
const [inserted] = await cn("PaImageCache")
|
|
15
|
+
.insert({
|
|
16
|
+
resourceVersion: data.resourceVersion,
|
|
17
|
+
imageUid: data.imageUid,
|
|
18
|
+
variantName: data.variantName,
|
|
19
|
+
slug: data.slug,
|
|
20
|
+
mediaType: data.mediaType,
|
|
21
|
+
width: data.width,
|
|
22
|
+
height: data.height,
|
|
23
|
+
weightB: data.weightB,
|
|
24
|
+
binaryFile: data.binaryFile,
|
|
25
|
+
modifiedAt: cn.fn.now(),
|
|
26
|
+
readAt: cn.fn.now(),
|
|
27
|
+
})
|
|
28
|
+
.returning(["id", "modifiedAt"]);
|
|
29
|
+
imageCacheId = strVal(inserted.id);
|
|
30
|
+
modifiedAt = dateVal(inserted.modifiedAt);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await cn("PaImageCache")
|
|
34
|
+
.where({
|
|
35
|
+
id: imageCacheId,
|
|
36
|
+
})
|
|
37
|
+
.update({
|
|
38
|
+
mediaType: data.mediaType,
|
|
39
|
+
width: data.width,
|
|
40
|
+
height: data.height,
|
|
41
|
+
weightB: data.weightB,
|
|
42
|
+
binaryFile: data.binaryFile,
|
|
43
|
+
modifiedAt: cn.fn.now(),
|
|
44
|
+
readAt: cn.fn.now(),
|
|
45
|
+
});
|
|
46
|
+
const row = await cn("PaImageCache").select("modifiedAt").where("id", imageCacheId).first();
|
|
24
47
|
if (!row)
|
|
25
|
-
throw new Error(`
|
|
26
|
-
|
|
48
|
+
throw new Error(`missing cache row: ${imageCacheId}`);
|
|
49
|
+
modifiedAt = dateVal(row.modifiedAt);
|
|
27
50
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.
|
|
31
|
-
.
|
|
32
|
-
|
|
33
|
-
imageCacheId: newId,
|
|
51
|
+
// Insert into PaImageCacheUsed if it doesn't exist
|
|
52
|
+
const usedCountRow = await cn("PaImageCacheUsed")
|
|
53
|
+
.count("* as cnt")
|
|
54
|
+
.where({
|
|
55
|
+
imageCacheId,
|
|
34
56
|
usedKey,
|
|
35
57
|
})
|
|
36
|
-
.
|
|
37
|
-
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
throw new Error(`missing cache row: ${newId}`);
|
|
45
|
-
const lastModified = dateVal(row.modifiedAt).toISOString();
|
|
46
|
-
return { newId, lastModified };
|
|
58
|
+
.first();
|
|
59
|
+
if (!usedCountRow || usedCountRow.cnt === 0) {
|
|
60
|
+
await cn("PaImageCacheUsed").insert({
|
|
61
|
+
imageCacheId,
|
|
62
|
+
usedKey,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return { newId: imageCacheId, lastModified: modifiedAt.toISOString() };
|
|
47
66
|
}
|
|
48
67
|
export async function deleteVariants(cn, options) {
|
|
49
|
-
const query = cn.createQueryBuilder().delete().from("PaImageCache");
|
|
50
68
|
if ("imageUids" in options) {
|
|
51
|
-
|
|
69
|
+
await cn("PaImageCache").whereIn("imageUid", options.imageUids).delete();
|
|
52
70
|
}
|
|
53
71
|
else {
|
|
54
|
-
query.
|
|
72
|
+
const query = cn("PaImageCache").where("imageUid", options.imageUid);
|
|
55
73
|
if (options.variantName) {
|
|
56
|
-
query.
|
|
74
|
+
query.where("variantName", options.variantName);
|
|
57
75
|
}
|
|
76
|
+
await query.delete();
|
|
58
77
|
}
|
|
59
|
-
await query.execute();
|
|
60
78
|
}
|
|
61
79
|
/**
|
|
62
80
|
* @returns the list of cache usedKeys that were deleted
|
|
63
81
|
*/
|
|
64
82
|
export async function deleteVariantsByDependencies(cn, options) {
|
|
65
|
-
const rows = await cn
|
|
66
|
-
.
|
|
67
|
-
.
|
|
68
|
-
.from("PaImageCacheUsed", "k")
|
|
69
|
-
.andWhere("k.usedKey in (:...usedKeys)", { usedKeys: options.usedKeys })
|
|
70
|
-
.getRawMany();
|
|
83
|
+
const rows = await cn("PaImageCacheUsed as k")
|
|
84
|
+
.select("k.imageCacheId")
|
|
85
|
+
.whereIn("k.usedKey", options.usedKeys);
|
|
71
86
|
const imageCacheIds = rows.map((row) => strVal(row.imageCacheId));
|
|
72
|
-
|
|
73
|
-
.
|
|
74
|
-
|
|
75
|
-
.from("PaImageCache")
|
|
76
|
-
.andWhere("id in (:...imageCacheIds)", { imageCacheIds: imageCacheIds })
|
|
77
|
-
.execute();
|
|
87
|
+
if (imageCacheIds.length > 0) {
|
|
88
|
+
await cn("PaImageCache").whereIn("id", imageCacheIds).delete();
|
|
89
|
+
}
|
|
78
90
|
return imageCacheIds.length;
|
|
79
91
|
}
|
|
80
92
|
export async function fetchImageVariant(ctx, { imageUid, variantName, }) {
|
|
81
|
-
const row = await ctx
|
|
82
|
-
.
|
|
83
|
-
.select(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.
|
|
92
|
-
|
|
93
|
-
.
|
|
94
|
-
.
|
|
93
|
+
const row = await ctx
|
|
94
|
+
.cn("PaImageCache as v")
|
|
95
|
+
.select([
|
|
96
|
+
"v.id",
|
|
97
|
+
"v.mediaType",
|
|
98
|
+
"v.width",
|
|
99
|
+
"v.height",
|
|
100
|
+
"v.modifiedAt",
|
|
101
|
+
"v.resourceVersion",
|
|
102
|
+
"v.slug",
|
|
103
|
+
"v.readAt",
|
|
104
|
+
])
|
|
105
|
+
.where({
|
|
106
|
+
"v.imageUid": imageUid,
|
|
107
|
+
"v.variantName": variantName,
|
|
108
|
+
})
|
|
109
|
+
.first();
|
|
95
110
|
if (!row)
|
|
96
111
|
return;
|
|
97
112
|
const id = strVal(row.id);
|
|
@@ -115,22 +130,25 @@ export async function fetchImageVariant(ctx, { imageUid, variantName, }) {
|
|
|
115
130
|
};
|
|
116
131
|
}
|
|
117
132
|
export async function fetchImageVariantWithBinary(ctx, { imageUid, variantName, }) {
|
|
118
|
-
const row = await ctx
|
|
119
|
-
.
|
|
120
|
-
.select(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
.
|
|
131
|
-
|
|
132
|
-
.
|
|
133
|
-
.
|
|
133
|
+
const row = await ctx
|
|
134
|
+
.cn("PaImageCache as v")
|
|
135
|
+
.select([
|
|
136
|
+
"v.id",
|
|
137
|
+
"v.mediaType",
|
|
138
|
+
"v.width",
|
|
139
|
+
"v.height",
|
|
140
|
+
"v.weightB",
|
|
141
|
+
"v.binaryFile",
|
|
142
|
+
"v.modifiedAt",
|
|
143
|
+
"v.readAt",
|
|
144
|
+
"v.resourceVersion",
|
|
145
|
+
"v.slug",
|
|
146
|
+
])
|
|
147
|
+
.where({
|
|
148
|
+
"v.imageUid": imageUid,
|
|
149
|
+
"v.variantName": variantName,
|
|
150
|
+
})
|
|
151
|
+
.first();
|
|
134
152
|
if (!row)
|
|
135
153
|
return;
|
|
136
154
|
const id = strVal(row.id);
|
|
@@ -156,52 +174,40 @@ async function updateReadAtOfImageVariant(ctx, { id, readAt, imageUid, variantNa
|
|
|
156
174
|
if (timeToIdleDays === undefined || isSameTimeUnit(readAt, "day"))
|
|
157
175
|
return;
|
|
158
176
|
logger.debug(`updating readAt of image cache: ${imageUid}, ${variantName}`);
|
|
159
|
-
await cn
|
|
160
|
-
.
|
|
161
|
-
|
|
162
|
-
.set({
|
|
163
|
-
readAt: () => "current_timestamp",
|
|
164
|
-
})
|
|
165
|
-
.andWhere("id = :id", { id })
|
|
166
|
-
.execute();
|
|
177
|
+
await cn("PaImageCache").where("id", id).update({
|
|
178
|
+
readAt: cn.fn.now(),
|
|
179
|
+
});
|
|
167
180
|
}
|
|
168
181
|
/**
|
|
169
182
|
* Delete the images that have no usedKey and that have not been used recently.
|
|
170
183
|
* @returns the number of cache identifiers that were deleted
|
|
171
184
|
*/
|
|
172
185
|
export async function deleteUnusedVariants({ cn, timeToIdleDays, }) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
.
|
|
176
|
-
.
|
|
177
|
-
.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
.execute();
|
|
184
|
-
return result.affected ?? undefined;
|
|
186
|
+
// Find records to delete
|
|
187
|
+
const subquery = cn("PaImageCacheUsed as k")
|
|
188
|
+
.select(1)
|
|
189
|
+
.whereRaw("k.imageCacheId = PaImageCache.id")
|
|
190
|
+
.where("k.used", 1);
|
|
191
|
+
const result = await cn("PaImageCache")
|
|
192
|
+
.whereRaw(`date(readAt) < date(current_timestamp, '-${timeToIdleDays} day')`)
|
|
193
|
+
.whereNotExists(subquery)
|
|
194
|
+
.delete();
|
|
195
|
+
return result;
|
|
185
196
|
}
|
|
186
197
|
export async function markOneUsedKeyAsUsed(ctx, { imageCacheId, usedKey, }) {
|
|
187
|
-
await ctx
|
|
188
|
-
.
|
|
189
|
-
.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
.
|
|
198
|
+
await ctx
|
|
199
|
+
.cn("PaImageCacheUsed")
|
|
200
|
+
.where({
|
|
201
|
+
imageCacheId,
|
|
202
|
+
usedKey,
|
|
203
|
+
})
|
|
204
|
+
.update({ used: 1 });
|
|
194
205
|
}
|
|
195
206
|
export async function markUsedKeyAsUnused(ctx, { usedKey, }) {
|
|
196
|
-
await ctx.cn
|
|
197
|
-
.createQueryBuilder()
|
|
198
|
-
.update("PaImageCacheUsed")
|
|
199
|
-
.set({ used: 0 })
|
|
200
|
-
.andWhere("usedKey = :usedKey", { usedKey })
|
|
201
|
-
.execute();
|
|
207
|
+
await ctx.cn("PaImageCacheUsed").where({ usedKey }).update({ used: 0 });
|
|
202
208
|
}
|
|
203
209
|
export async function clearVariantCache({ cn }) {
|
|
204
|
-
await cn
|
|
205
|
-
await cn
|
|
210
|
+
await cn("PaImageCacheUsed").delete();
|
|
211
|
+
await cn("PaImageCache").delete();
|
|
206
212
|
}
|
|
207
213
|
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMjE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/server-image-cache-engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "The image variant engine that we use at Paroi.",
|
|
5
5
|
"author": "Paroi Team",
|
|
6
6
|
"keywords": [
|
|
@@ -35,15 +35,16 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@paroi/async-lib": "~0.3.1",
|
|
37
37
|
"@paroi/data-formatters-lib": "~0.4.0",
|
|
38
|
-
"@paroicms/internal-anywhere-lib": "1.
|
|
39
|
-
"@paroicms/
|
|
40
|
-
"@paroicms/public-
|
|
41
|
-
"@paroicms/
|
|
38
|
+
"@paroicms/internal-anywhere-lib": "1.26.0",
|
|
39
|
+
"@paroicms/internal-server-lib": "1.13.0",
|
|
40
|
+
"@paroicms/public-anywhere-lib": "0.20.0",
|
|
41
|
+
"@paroicms/public-server-lib": "0.28.0",
|
|
42
42
|
"ico-endec": "~0.1.6",
|
|
43
43
|
"sharp": "~0.33.4"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"
|
|
46
|
+
"knex": "~3.1.0",
|
|
47
|
+
"sqlite3": "^5.1.7"
|
|
47
48
|
},
|
|
48
49
|
"files": [
|
|
49
50
|
"ddl",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare class PaImageCacheEntity {
|
|
2
|
-
id: string;
|
|
3
|
-
resourceVersion: string;
|
|
4
|
-
imageUid: string;
|
|
5
|
-
variantName: string;
|
|
6
|
-
mediaType: string;
|
|
7
|
-
width: number;
|
|
8
|
-
height: number;
|
|
9
|
-
weightB: number;
|
|
10
|
-
modifiedAt: Date;
|
|
11
|
-
readAt: Date;
|
|
12
|
-
binaryFile: Buffer;
|
|
13
|
-
slug?: string;
|
|
14
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { Column, Entity, PrimaryGeneratedColumn, Unique } from "typeorm";
|
|
11
|
-
let PaImageCacheEntity = class PaImageCacheEntity {
|
|
12
|
-
id;
|
|
13
|
-
resourceVersion;
|
|
14
|
-
imageUid;
|
|
15
|
-
variantName;
|
|
16
|
-
mediaType;
|
|
17
|
-
width;
|
|
18
|
-
height;
|
|
19
|
-
weightB;
|
|
20
|
-
modifiedAt;
|
|
21
|
-
readAt;
|
|
22
|
-
binaryFile;
|
|
23
|
-
slug;
|
|
24
|
-
};
|
|
25
|
-
__decorate([
|
|
26
|
-
PrimaryGeneratedColumn(),
|
|
27
|
-
__metadata("design:type", String)
|
|
28
|
-
], PaImageCacheEntity.prototype, "id", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
Column({ type: "varchar" }),
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], PaImageCacheEntity.prototype, "resourceVersion", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
Column(),
|
|
35
|
-
__metadata("design:type", String)
|
|
36
|
-
], PaImageCacheEntity.prototype, "imageUid", void 0);
|
|
37
|
-
__decorate([
|
|
38
|
-
Column(),
|
|
39
|
-
__metadata("design:type", String)
|
|
40
|
-
], PaImageCacheEntity.prototype, "variantName", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
Column(),
|
|
43
|
-
__metadata("design:type", String)
|
|
44
|
-
], PaImageCacheEntity.prototype, "mediaType", void 0);
|
|
45
|
-
__decorate([
|
|
46
|
-
Column({ type: "integer" }),
|
|
47
|
-
__metadata("design:type", Number)
|
|
48
|
-
], PaImageCacheEntity.prototype, "width", void 0);
|
|
49
|
-
__decorate([
|
|
50
|
-
Column({ type: "integer" }),
|
|
51
|
-
__metadata("design:type", Number)
|
|
52
|
-
], PaImageCacheEntity.prototype, "height", void 0);
|
|
53
|
-
__decorate([
|
|
54
|
-
Column({ type: "integer" }),
|
|
55
|
-
__metadata("design:type", Number)
|
|
56
|
-
], PaImageCacheEntity.prototype, "weightB", void 0);
|
|
57
|
-
__decorate([
|
|
58
|
-
Column({ type: "datetime", default: () => "current_timestamp" }),
|
|
59
|
-
__metadata("design:type", Date)
|
|
60
|
-
], PaImageCacheEntity.prototype, "modifiedAt", void 0);
|
|
61
|
-
__decorate([
|
|
62
|
-
Column({ type: "datetime", default: () => "current_timestamp" }),
|
|
63
|
-
__metadata("design:type", Date)
|
|
64
|
-
], PaImageCacheEntity.prototype, "readAt", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
Column({ type: "blob" }),
|
|
67
|
-
__metadata("design:type", Buffer)
|
|
68
|
-
], PaImageCacheEntity.prototype, "binaryFile", void 0);
|
|
69
|
-
__decorate([
|
|
70
|
-
Column({ type: "varchar", nullable: true }),
|
|
71
|
-
__metadata("design:type", String)
|
|
72
|
-
], PaImageCacheEntity.prototype, "slug", void 0);
|
|
73
|
-
PaImageCacheEntity = __decorate([
|
|
74
|
-
Entity("PaImageCache"),
|
|
75
|
-
Unique(["imageUid", "variantName"])
|
|
76
|
-
], PaImageCacheEntity);
|
|
77
|
-
export { PaImageCacheEntity };
|
|
78
|
-
//# sourceMappingURL=PaImageCache.entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PaImageCache.entity.js","sourceRoot":"","sources":["../../../src/db-init/entities/PaImageCache.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIlE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAE7B,EAAE,CAAU;IAGZ,eAAe,CAAU;IAGzB,QAAQ,CAAU;IAGlB,WAAW,CAAU;IAGrB,SAAS,CAAU;IAGnB,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,OAAO,CAAU;IAGjB,UAAU,CAAQ;IAGlB,MAAM,CAAQ;IAGd,UAAU,CAAU;IAGpB,IAAI,CAAU;CACf,CAAA;AAlCC;IADC,sBAAsB,EAAE;;8CACb;AAGZ;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;2DACH;AAGzB;IADC,MAAM,EAAE;;oDACS;AAGlB;IADC,MAAM,EAAE;;uDACY;AAGrB;IADC,MAAM,EAAE;;qDACU;AAGnB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDACb;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDACZ;AAGhB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACX;AAGjB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACpD,IAAI;sDAAC;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACxD,IAAI;kDAAC;AAGd;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8BACZ,MAAM;sDAAC;AAGpB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC9B;AAnCH,kBAAkB;IAF9B,MAAM,CAAC,cAAc,CAAC;IACtB,MAAM,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;GACvB,kBAAkB,CAoC9B"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { Column, Entity } from "typeorm";
|
|
11
|
-
let PaImageCacheUsedEntity = class PaImageCacheUsedEntity {
|
|
12
|
-
imageCacheId;
|
|
13
|
-
usedKey;
|
|
14
|
-
used;
|
|
15
|
-
};
|
|
16
|
-
__decorate([
|
|
17
|
-
Column({ type: "integer", primary: true }),
|
|
18
|
-
__metadata("design:type", String)
|
|
19
|
-
], PaImageCacheUsedEntity.prototype, "imageCacheId", void 0);
|
|
20
|
-
__decorate([
|
|
21
|
-
Column({ primary: true }),
|
|
22
|
-
__metadata("design:type", String)
|
|
23
|
-
], PaImageCacheUsedEntity.prototype, "usedKey", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
Column({ type: "boolean", default: true }),
|
|
26
|
-
__metadata("design:type", Boolean)
|
|
27
|
-
], PaImageCacheUsedEntity.prototype, "used", void 0);
|
|
28
|
-
PaImageCacheUsedEntity = __decorate([
|
|
29
|
-
Entity("PaImageCacheUsed")
|
|
30
|
-
], PaImageCacheUsedEntity);
|
|
31
|
-
export { PaImageCacheUsedEntity };
|
|
32
|
-
//# sourceMappingURL=PaImageCacheUsed.entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PaImageCacheUsed.entity.js","sourceRoot":"","sources":["../../../src/db-init/entities/PaImageCacheUsed.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEjC,YAAY,CAAU;IAGtB,OAAO,CAAU;IAGjB,IAAI,CAAW;CAChB,CAAA;AAPC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;4DACrB;AAGtB;IADC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;uDACT;AAGjB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oDAC5B;AARJ,sBAAsB;IADlC,MAAM,CAAC,kBAAkB,CAAC;GACd,sBAAsB,CASlC"}
|