@paroicms/server-database-media-storage 1.15.1 → 1.16.1
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 -3
- 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 +11 -10
- package/dist/db-init/ddl-migration.js.map +1 -1
- package/dist/media-storage-context.d.ts +2 -2
- package/dist/media-storage-context.js +1 -1
- package/dist/media-storage-context.js.map +1 -1
- package/dist/media.queries.d.ts +13 -13
- package/dist/media.queries.js +80 -133
- package/dist/media.queries.js.map +1 -1
- package/package.json +6 -6
- package/dist/entities/pa-image.model.d.ts +0 -6
- package/dist/entities/pa-image.model.js +0 -37
- package/dist/entities/pa-image.model.js.map +0 -1
- package/dist/entities/pa-media-handle.model.d.ts +0 -6
- package/dist/entities/pa-media-handle.model.js +0 -37
- package/dist/entities/pa-media-handle.model.js.map +0 -1
- package/dist/entities/pa-media.model.d.ts +0 -10
- package/dist/entities/pa-media.model.js +0 -57
- package/dist/entities/pa-media.model.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AppLogger } from "@paroicms/public-server-lib";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
export declare function createOrOpenMediasConnection({ sqliteFile, canCreate, logger, }: {
|
|
4
4
|
sqliteFile: string;
|
|
5
5
|
canCreate: boolean;
|
|
6
6
|
logger: AppLogger;
|
|
7
7
|
}): Promise<{
|
|
8
|
-
cn:
|
|
8
|
+
cn: Knex<any, any[]>;
|
|
9
9
|
logNextQuery: (count?: number) => void;
|
|
10
10
|
}>;
|
package/dist/db-init/db-init.js
CHANGED
|
@@ -3,15 +3,14 @@ import { join } from "node:path";
|
|
|
3
3
|
import { packageDir } from "../context.js";
|
|
4
4
|
import { currentDbSchemaVersion, dbSchemaName, migrateMediasDb } from "./ddl-migration.js";
|
|
5
5
|
export async function createOrOpenMediasConnection({ sqliteFile, canCreate, logger, }) {
|
|
6
|
-
const { logNextQuery,
|
|
6
|
+
const { logNextQuery, knexLogger } = createSqlLogger({ logger, dbSchemaName });
|
|
7
7
|
const { cn } = await createOrOpenSqliteConnection({
|
|
8
8
|
canCreate,
|
|
9
9
|
dbSchemaName,
|
|
10
10
|
sqliteFile,
|
|
11
11
|
ddlFile: join(packageDir, "ddl", "medias.ddl.sql"),
|
|
12
12
|
migrateDb,
|
|
13
|
-
|
|
14
|
-
typeOrmLogger,
|
|
13
|
+
knexLogger,
|
|
15
14
|
logger,
|
|
16
15
|
});
|
|
17
16
|
async function migrateDb(cn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-init.js","sourceRoot":"","sources":["../../src/db-init/db-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,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,EAEL,4BAA4B,EAC5B,eAAe,EACf,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3F,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,UAAU,EACV,SAAS,EACT,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,GAAG,MAAM,4BAA4B,CAAC;QAChD,SAAS;QACT,YAAY;QACZ,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,gBAAgB,CAAC;QAClD,SAAS;QACT,UAAU;QACV,MAAM;KACP,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,eAAe,CAAC,EAAE,EAAE;YACxB,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,CAAC;AAC9B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { AppLogger } from "@paroicms/public-server-lib";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
export declare const dbSchemaName = "medias";
|
|
4
4
|
export declare const currentDbSchemaVersion = 7;
|
|
5
|
-
export declare function migrateMediasDb(cn:
|
|
5
|
+
export declare function migrateMediasDb(cn: Knex, { fromVersion, logger }: {
|
|
6
6
|
fromVersion: number;
|
|
7
7
|
logger: AppLogger;
|
|
8
8
|
}): Promise<void>;
|
|
@@ -6,9 +6,8 @@ export async function migrateMediasDb(cn, { fromVersion, logger }) {
|
|
|
6
6
|
const toVersion = currentDbSchemaVersion;
|
|
7
7
|
let currentVersion = fromVersion;
|
|
8
8
|
if (currentVersion === 3) {
|
|
9
|
-
|
|
10
|
-
await cn.
|
|
11
|
-
const rows = await cn.query("select uid, modifiedTs, originalName from PaMedia");
|
|
9
|
+
await cn.raw("alter table PaMedia add resourceVersion varchar(100)");
|
|
10
|
+
const rows = await cn("PaMedia").select("uid", "modifiedTs", "originalName");
|
|
12
11
|
for (const row of rows) {
|
|
13
12
|
const uid = strVal(row.uid);
|
|
14
13
|
const modifiedTs = dateVal(row.modifiedTs);
|
|
@@ -18,13 +17,15 @@ export async function migrateMediasDb(cn, { fromVersion, logger }) {
|
|
|
18
17
|
originalName = Buffer.from(originalName, "latin1").toString("utf8");
|
|
19
18
|
}
|
|
20
19
|
originalName = removeExtensionFromFileName(originalName);
|
|
21
|
-
await cn.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
await cn("PaMedia").where("uid", uid).update({
|
|
21
|
+
resourceVersion: generateResourceVersion(),
|
|
22
|
+
originalName: originalName,
|
|
23
|
+
});
|
|
25
24
|
}
|
|
26
25
|
else {
|
|
27
|
-
await cn
|
|
26
|
+
await cn("PaMedia").where("uid", uid).update({
|
|
27
|
+
resourceVersion: generateResourceVersion(),
|
|
28
|
+
});
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 4 });
|
|
@@ -36,12 +37,12 @@ where uid = '${uid}'`, [originalName]);
|
|
|
36
37
|
currentVersion = 5;
|
|
37
38
|
}
|
|
38
39
|
if (currentVersion === 5) {
|
|
39
|
-
await cn.
|
|
40
|
+
await cn.raw("alter table PaMediaHandle rename column leafId to nodeId");
|
|
40
41
|
await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 6 });
|
|
41
42
|
currentVersion = 6;
|
|
42
43
|
}
|
|
43
44
|
if (currentVersion === 6) {
|
|
44
|
-
await cn.
|
|
45
|
+
await cn.raw("update PaMediaHandle set handle = replace(handle, 'leaf', 'node') where handle like 'leaf:%'");
|
|
45
46
|
await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 7 });
|
|
46
47
|
currentVersion = 7;
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAIpG,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,
|
|
1
|
+
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AppLogger } from "@paroicms/public-server-lib";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Knex } from "knex";
|
|
3
3
|
import type { MediaStorageOptions } from "./media-storage.js";
|
|
4
4
|
export declare class MediaStorageContext {
|
|
5
5
|
#private;
|
|
@@ -10,5 +10,5 @@ export declare class MediaStorageContext {
|
|
|
10
10
|
asyncQueue: <T extends () => Promise<any>>(task: T) => ReturnType<T>;
|
|
11
11
|
constructor(options: MediaStorageOptions);
|
|
12
12
|
init(): Promise<void>;
|
|
13
|
-
cn():
|
|
13
|
+
cn(): Knex<any, any[]>;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-storage-context.js","sourceRoot":"","sources":["../src/media-storage-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,OAAO,mBAAmB;IAC9B,MAAM,GAA0B,OAAO,CAAC;IACxC,SAAS,CAAU;IACnB,MAAM,CAAY;IAClB,YAAY,CAAuC;IACnD,UAAU,GAAG,gBAAgB,EAAE,CAAC;IAChC,cAAc,CAAS;IAEvB,GAAG,
|
|
1
|
+
{"version":3,"file":"media-storage-context.js","sourceRoot":"","sources":["../src/media-storage-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,OAAO,mBAAmB;IAC9B,MAAM,GAA0B,OAAO,CAAC;IACxC,SAAS,CAAU;IACnB,MAAM,CAAY;IAClB,YAAY,CAAuC;IACnD,UAAU,GAAG,gBAAgB,EAAE,CAAC;IAChC,cAAc,CAAS;IAEvB,GAAG,CAAQ;IAEX,YAAY,OAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,MAAM,4BAA4B,CAAC;YAC9D,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IAED,EAAE;QACA,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF"}
|
package/dist/media.queries.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Knex } from "knex";
|
|
2
2
|
import type { Image, ImageWithBinary, Media, MediaWithBinary } from "./data-types.js";
|
|
3
3
|
import type { MediaStorageContext } from "./media-storage-context.js";
|
|
4
4
|
import type { NewMediaWithHandle, ReorderMediasInput } from "./media-storage-types.js";
|
|
5
5
|
export declare function createMedia(ctx: MediaStorageContext, payload: NewMediaWithHandle): Promise<string>;
|
|
6
|
-
export declare function getFirstImageForHandle(cn:
|
|
7
|
-
export declare function getMediasByHandle(cn:
|
|
8
|
-
export declare function getMediasByHandles(cn:
|
|
9
|
-
export declare function getMedia(cn:
|
|
10
|
-
export declare function countMediasByNodeId(cn:
|
|
6
|
+
export declare function getFirstImageForHandle(cn: Knex, handle: string): Promise<Image | undefined>;
|
|
7
|
+
export declare function getMediasByHandle(cn: Knex, handle: string): Promise<(Image | Media)[]>;
|
|
8
|
+
export declare function getMediasByHandles(cn: Knex, handles: string[]): Promise<Map<string, Image | Media>>;
|
|
9
|
+
export declare function getMedia(cn: Knex, uid: string): Promise<Media | Image | undefined>;
|
|
10
|
+
export declare function countMediasByNodeId(cn: Knex, nodeId: string, options?: {
|
|
11
11
|
exceptHandle?: string;
|
|
12
12
|
}): Promise<number>;
|
|
13
|
-
export declare function getAttachedDocumentsWeight(cn:
|
|
14
|
-
export declare function getMediaByHandle(cn:
|
|
15
|
-
export declare function getMediaWithBinary(cn:
|
|
13
|
+
export declare function getAttachedDocumentsWeight(cn: Knex): Promise<number>;
|
|
14
|
+
export declare function getMediaByHandle(cn: Knex, handle: string): Promise<Media | Image | undefined>;
|
|
15
|
+
export declare function getMediaWithBinary(cn: Knex, uid: string): Promise<MediaWithBinary | ImageWithBinary | undefined>;
|
|
16
16
|
/**
|
|
17
17
|
* @returns the deleted media uid
|
|
18
18
|
*/
|
|
19
|
-
export declare function deleteHandle(cn:
|
|
19
|
+
export declare function deleteHandle(cn: Knex, handle: string): Promise<string[]>;
|
|
20
20
|
/**
|
|
21
21
|
* @returns the deleted media uids
|
|
22
22
|
*/
|
|
23
|
-
export declare function deleteHandles(cn:
|
|
24
|
-
export declare function deleteMediaWithHandle(cn:
|
|
23
|
+
export declare function deleteHandles(cn: Knex, handles: string[]): Promise<string[]>;
|
|
24
|
+
export declare function deleteMediaWithHandle(cn: Knex, { handle, uid }: {
|
|
25
25
|
handle: string;
|
|
26
26
|
uid: string;
|
|
27
27
|
}): Promise<string[]>;
|
|
28
|
-
export declare function updateAttachedData(cn:
|
|
28
|
+
export declare function updateAttachedData(cn: Knex, { mediaUid, values }: {
|
|
29
29
|
mediaUid: string;
|
|
30
30
|
values: string;
|
|
31
31
|
}): Promise<void>;
|
package/dist/media.queries.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { isDef, nbVal, nbValOrUndef, strVal } from "@paroi/data-formatters-lib";
|
|
2
|
-
import { generateResourceVersion
|
|
2
|
+
import { generateResourceVersion } from "@paroicms/internal-server-lib";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { formatImage, formatImageWithBinary, formatMedia, formatMediaWithBinary, } from "./helpers/data-formatters.helpers.js";
|
|
5
5
|
export async function createMedia(ctx, payload) {
|
|
6
6
|
const uid = randomUUID();
|
|
7
7
|
const resourceVersion = generateResourceVersion();
|
|
8
|
+
const maxNum = payload.replace ? await getMaxOrderNum(ctx.cn(), payload.handle) : undefined;
|
|
8
9
|
await ctx.cn().transaction(async (tx) => {
|
|
9
10
|
if (payload.replace)
|
|
10
11
|
await deleteHandle(tx, payload.handle);
|
|
11
|
-
await tx
|
|
12
|
-
.createQueryBuilder()
|
|
13
|
-
.insert()
|
|
14
|
-
.into("PaMedia")
|
|
15
|
-
.values({
|
|
12
|
+
await tx("PaMedia").insert({
|
|
16
13
|
uid,
|
|
17
14
|
resourceVersion,
|
|
18
15
|
binaryFile: payload.binaryFile,
|
|
@@ -20,61 +17,43 @@ export async function createMedia(ctx, payload) {
|
|
|
20
17
|
attachedData: payload.attachedData,
|
|
21
18
|
mediaType: payload.mediaType,
|
|
22
19
|
weightB: payload.weightB,
|
|
23
|
-
})
|
|
24
|
-
.execute();
|
|
20
|
+
});
|
|
25
21
|
if (payload.image) {
|
|
26
|
-
await tx
|
|
27
|
-
.createQueryBuilder()
|
|
28
|
-
.insert()
|
|
29
|
-
.into("PaImage")
|
|
30
|
-
.values({
|
|
22
|
+
await tx("PaImage").insert({
|
|
31
23
|
...payload.image,
|
|
32
24
|
uid,
|
|
33
|
-
})
|
|
34
|
-
.execute();
|
|
25
|
+
});
|
|
35
26
|
}
|
|
36
|
-
|
|
37
|
-
await tx
|
|
38
|
-
.createQueryBuilder()
|
|
39
|
-
.insert()
|
|
40
|
-
.into("PaMediaHandle")
|
|
41
|
-
.values({
|
|
27
|
+
await tx("PaMediaHandle").insert({
|
|
42
28
|
mediaUid: uid,
|
|
43
29
|
handle: payload.handle,
|
|
44
30
|
orderNum: maxNum === undefined ? 1 : maxNum + 1,
|
|
45
31
|
nodeId: payload.nodeId,
|
|
46
|
-
})
|
|
47
|
-
.execute();
|
|
32
|
+
});
|
|
48
33
|
});
|
|
49
34
|
return uid;
|
|
50
35
|
}
|
|
51
36
|
async function getMaxOrderNum(cn, handle) {
|
|
52
|
-
const row = await cn
|
|
53
|
-
.createQueryBuilder()
|
|
54
|
-
.select("max(h.orderNum)", "maxNum")
|
|
55
|
-
.from("PaMediaHandle", "h")
|
|
56
|
-
.andWhere("h.handle = :handle", { handle })
|
|
57
|
-
.getRawOne();
|
|
37
|
+
const row = await cn("PaMediaHandle").where("handle", handle).max("orderNum as maxNum").first();
|
|
58
38
|
return nbValOrUndef(row?.maxNum);
|
|
59
39
|
}
|
|
60
40
|
export async function getFirstImageForHandle(cn, handle) {
|
|
61
41
|
const row = await buildMediaQuery(cn, { onlyImage: true })
|
|
62
|
-
.
|
|
63
|
-
.
|
|
64
|
-
.orderBy("h.orderNum", "
|
|
65
|
-
.
|
|
42
|
+
.join("PaMediaHandle as h", "h.mediaUid", "m.uid")
|
|
43
|
+
.where("h.handle", handle)
|
|
44
|
+
.orderBy("h.orderNum", "asc")
|
|
45
|
+
.orderBy("m.modifiedTs", "asc")
|
|
66
46
|
.limit(1)
|
|
67
|
-
.
|
|
47
|
+
.first();
|
|
68
48
|
return row ? formatImage(row) : undefined;
|
|
69
49
|
}
|
|
70
50
|
export async function getMediasByHandle(cn, handle) {
|
|
71
51
|
const rows = await buildMediaQuery(cn)
|
|
72
|
-
.
|
|
73
|
-
.
|
|
74
|
-
.
|
|
75
|
-
.orderBy("h.orderNum", "
|
|
76
|
-
.
|
|
77
|
-
.getRawMany();
|
|
52
|
+
.select("h.orderNum")
|
|
53
|
+
.join("PaMediaHandle as h", "h.mediaUid", "m.uid")
|
|
54
|
+
.where("h.handle", handle)
|
|
55
|
+
.orderBy("h.orderNum", "asc")
|
|
56
|
+
.orderBy("m.modifiedTs", "asc");
|
|
78
57
|
const withOrderNum = [];
|
|
79
58
|
const withoutNotOrderNum = [];
|
|
80
59
|
rows.forEach((row) => {
|
|
@@ -90,10 +69,9 @@ export async function getMediasByHandle(cn, handle) {
|
|
|
90
69
|
}
|
|
91
70
|
export async function getMediasByHandles(cn, handles) {
|
|
92
71
|
const rows = await buildMediaQuery(cn)
|
|
93
|
-
.
|
|
94
|
-
.
|
|
95
|
-
.
|
|
96
|
-
.getRawMany();
|
|
72
|
+
.select("h.handle")
|
|
73
|
+
.join("PaMediaHandle as h", "h.mediaUid", "m.uid")
|
|
74
|
+
.whereIn("h.handle", handles);
|
|
97
75
|
const map = new Map();
|
|
98
76
|
for (const row of rows) {
|
|
99
77
|
const handle = strVal(row.handle);
|
|
@@ -102,46 +80,37 @@ export async function getMediasByHandles(cn, handles) {
|
|
|
102
80
|
return map;
|
|
103
81
|
}
|
|
104
82
|
export async function getMedia(cn, uid) {
|
|
105
|
-
const row = await buildMediaQuery(cn).
|
|
83
|
+
const row = await buildMediaQuery(cn).where("m.uid", uid).first();
|
|
106
84
|
if (!row)
|
|
107
85
|
return;
|
|
108
86
|
return isDef(row.width) ? formatImage(row) : formatMedia(row);
|
|
109
87
|
}
|
|
110
88
|
export async function countMediasByNodeId(cn, nodeId, options = {}) {
|
|
111
|
-
const query = cn
|
|
112
|
-
.createQueryBuilder()
|
|
113
|
-
.select("count(1)", "cnt")
|
|
114
|
-
.from("PaMediaHandle", "h")
|
|
115
|
-
.andWhere("h.nodeId = :nodeId", { nodeId });
|
|
89
|
+
const query = cn("PaMediaHandle as h").count("* as cnt").where("h.nodeId", nodeId);
|
|
116
90
|
if (options.exceptHandle) {
|
|
117
|
-
query.
|
|
91
|
+
query.whereNot("h.handle", options.exceptHandle);
|
|
118
92
|
}
|
|
119
|
-
const row = await query.
|
|
93
|
+
const row = await query.first();
|
|
120
94
|
return nbVal(row?.cnt);
|
|
121
95
|
}
|
|
122
96
|
export async function getAttachedDocumentsWeight(cn) {
|
|
123
|
-
const result = await cn
|
|
124
|
-
.
|
|
125
|
-
.
|
|
126
|
-
.
|
|
127
|
-
.andWhere("m.mediaType = :mediaType", { mediaType: "application/pdf" })
|
|
128
|
-
.getRawOne();
|
|
97
|
+
const result = await cn("PaMedia as m")
|
|
98
|
+
.sum("m.weightB as weightB")
|
|
99
|
+
.where("m.mediaType", "application/pdf")
|
|
100
|
+
.first();
|
|
129
101
|
return nbValOrUndef(result?.weightB) ?? 0;
|
|
130
102
|
}
|
|
131
103
|
export async function getMediaByHandle(cn, handle) {
|
|
132
104
|
const row = await buildMediaQuery(cn)
|
|
133
|
-
.
|
|
134
|
-
.
|
|
135
|
-
.
|
|
105
|
+
.join("PaMediaHandle as h", "h.mediaUid", "m.uid")
|
|
106
|
+
.where("h.handle", handle)
|
|
107
|
+
.first();
|
|
136
108
|
if (!row)
|
|
137
109
|
return;
|
|
138
110
|
return isDef(row.width) ? formatImage(row) : formatMedia(row);
|
|
139
111
|
}
|
|
140
112
|
export async function getMediaWithBinary(cn, uid) {
|
|
141
|
-
const row = await buildMediaQuery(cn)
|
|
142
|
-
.addSelect("m.binaryFile", "binaryFile")
|
|
143
|
-
.andWhere("m.uid = :uid", { uid })
|
|
144
|
-
.getRawOne();
|
|
113
|
+
const row = await buildMediaQuery(cn, { includeBinary: true }).where("m.uid", uid).first();
|
|
145
114
|
if (!row)
|
|
146
115
|
return;
|
|
147
116
|
return isDef(row.width) ? formatImageWithBinary(row) : formatMediaWithBinary(row);
|
|
@@ -150,13 +119,8 @@ export async function getMediaWithBinary(cn, uid) {
|
|
|
150
119
|
* @returns the deleted media uid
|
|
151
120
|
*/
|
|
152
121
|
export async function deleteHandle(cn, handle) {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
.delete()
|
|
156
|
-
.from("PaMediaHandle")
|
|
157
|
-
.andWhere("handle = :handle", { handle })
|
|
158
|
-
.execute();
|
|
159
|
-
if (res.affected === 0)
|
|
122
|
+
const rowsDeleted = await cn("PaMediaHandle").where("handle", handle).del();
|
|
123
|
+
if (rowsDeleted === 0)
|
|
160
124
|
return [];
|
|
161
125
|
return await deleteOrphanMedias(cn);
|
|
162
126
|
}
|
|
@@ -164,53 +128,35 @@ export async function deleteHandle(cn, handle) {
|
|
|
164
128
|
* @returns the deleted media uids
|
|
165
129
|
*/
|
|
166
130
|
export async function deleteHandles(cn, handles) {
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
.delete()
|
|
170
|
-
.from("PaMediaHandle")
|
|
171
|
-
.andWhere("handle in (:...handles)", { handles })
|
|
172
|
-
.execute();
|
|
173
|
-
if (res.affected === 0)
|
|
131
|
+
const rowsDeleted = await cn("PaMediaHandle").whereIn("handle", handles).del();
|
|
132
|
+
if (rowsDeleted === 0)
|
|
174
133
|
return [];
|
|
175
134
|
return await deleteOrphanMedias(cn);
|
|
176
135
|
}
|
|
177
136
|
export async function deleteMediaWithHandle(cn, { handle, uid }) {
|
|
178
|
-
await cn
|
|
179
|
-
.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
.
|
|
184
|
-
.execute();
|
|
137
|
+
await cn("PaMediaHandle")
|
|
138
|
+
.where({
|
|
139
|
+
mediaUid: uid,
|
|
140
|
+
handle: handle,
|
|
141
|
+
})
|
|
142
|
+
.del();
|
|
185
143
|
return await deleteOrphanMedias(cn);
|
|
186
144
|
}
|
|
187
145
|
async function deleteOrphanMedias(cn) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
.select("
|
|
191
|
-
.
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
const uids = rows.map((row) => strVal(row.uid));
|
|
199
|
-
await cn
|
|
200
|
-
.createQueryBuilder()
|
|
201
|
-
.delete()
|
|
202
|
-
.from("PaMedia")
|
|
203
|
-
.andWhere("uid in (:...uids)", { uids })
|
|
204
|
-
.execute();
|
|
146
|
+
// Find orphaned media (not referenced in PaMediaHandle)
|
|
147
|
+
const subquery = cn("PaMediaHandle as h")
|
|
148
|
+
.select("h.mediaUid")
|
|
149
|
+
.where("h.mediaUid", cn.ref("m.uid"));
|
|
150
|
+
const orphans = await cn("PaMedia as m").select("m.uid").whereNotExists(subquery);
|
|
151
|
+
const uids = orphans.map((row) => strVal(row.uid));
|
|
152
|
+
if (uids.length > 0) {
|
|
153
|
+
// Delete the orphaned media
|
|
154
|
+
await cn("PaMedia").whereIn("uid", uids).del();
|
|
155
|
+
}
|
|
205
156
|
return uids;
|
|
206
157
|
}
|
|
207
158
|
export async function updateAttachedData(cn, { mediaUid, values }) {
|
|
208
|
-
await cn
|
|
209
|
-
.createQueryBuilder()
|
|
210
|
-
.update("PaMedia")
|
|
211
|
-
.set({ attachedData: values })
|
|
212
|
-
.andWhere({ uid: mediaUid })
|
|
213
|
-
.execute();
|
|
159
|
+
await cn("PaMedia").where("uid", mediaUid).update({ attachedData: values });
|
|
214
160
|
}
|
|
215
161
|
export async function reorderMedias(ctx, { mediaUids: uids, handle }) {
|
|
216
162
|
const medias = await getMediasByHandle(ctx.cn(), handle);
|
|
@@ -231,35 +177,36 @@ export async function reorderMedias(ctx, { mediaUids: uids, handle }) {
|
|
|
231
177
|
}
|
|
232
178
|
await ctx.cn().transaction(async (tx) => {
|
|
233
179
|
for (const media of orderMedias) {
|
|
234
|
-
await tx
|
|
235
|
-
.
|
|
236
|
-
.
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
.
|
|
240
|
-
.execute();
|
|
180
|
+
await tx("PaMediaHandle")
|
|
181
|
+
.where({
|
|
182
|
+
mediaUid: media.mediaUid,
|
|
183
|
+
handle: media.handle,
|
|
184
|
+
})
|
|
185
|
+
.update({ orderNum: media.orderNum });
|
|
241
186
|
}
|
|
242
187
|
});
|
|
243
188
|
}
|
|
244
|
-
function buildMediaQuery(cn,
|
|
245
|
-
const query = cn
|
|
246
|
-
.
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
189
|
+
function buildMediaQuery(cn, options = {}) {
|
|
190
|
+
const query = cn("PaMedia as m").select([
|
|
191
|
+
"m.mediaType",
|
|
192
|
+
"m.uid",
|
|
193
|
+
"m.resourceVersion",
|
|
194
|
+
"m.modifiedTs",
|
|
195
|
+
"m.weightB",
|
|
196
|
+
"m.attachedData",
|
|
197
|
+
"m.originalName",
|
|
198
|
+
"i.height",
|
|
199
|
+
"i.width",
|
|
200
|
+
"i.lossless",
|
|
201
|
+
]);
|
|
202
|
+
if (options.includeBinary) {
|
|
203
|
+
query.select("m.binaryFile");
|
|
204
|
+
}
|
|
205
|
+
if (options.onlyImage) {
|
|
206
|
+
query.join("PaImage as i", "i.uid", "m.uid");
|
|
260
207
|
}
|
|
261
208
|
else {
|
|
262
|
-
query.leftJoin("PaImage
|
|
209
|
+
query.leftJoin("PaImage as i", "i.uid", "m.uid");
|
|
263
210
|
}
|
|
264
211
|
return query;
|
|
265
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.queries.js","sourceRoot":"","sources":["../src/media.queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,
|
|
1
|
+
{"version":3,"file":"media.queries.js","sourceRoot":"","sources":["../src/media.queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/server-database-media-storage",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.1",
|
|
4
4
|
"description": "A library to make back-end for media galleries.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"paroicms",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@paroi/async-lib": "~0.3.1",
|
|
35
35
|
"@paroi/data-formatters-lib": "~0.4.0",
|
|
36
|
-
"@paroicms/internal-anywhere-lib": "1.
|
|
37
|
-
"@paroicms/internal-server-lib": "1.
|
|
38
|
-
"@paroicms/public-
|
|
39
|
-
"@paroicms/public-
|
|
36
|
+
"@paroicms/internal-anywhere-lib": "1.26.0",
|
|
37
|
+
"@paroicms/internal-server-lib": "1.13.1",
|
|
38
|
+
"@paroicms/public-anywhere-lib": "0.20.0",
|
|
39
|
+
"@paroicms/public-server-lib": "0.29.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"
|
|
42
|
+
"knex": "~3.1.0"
|
|
43
43
|
},
|
|
44
44
|
"files": [
|
|
45
45
|
"ddl",
|
|
@@ -1,37 +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 PaImageEntity = class PaImageEntity {
|
|
12
|
-
uid;
|
|
13
|
-
width;
|
|
14
|
-
height;
|
|
15
|
-
lossless;
|
|
16
|
-
};
|
|
17
|
-
__decorate([
|
|
18
|
-
Column({ type: "varchar", length: 36, primary: true }),
|
|
19
|
-
__metadata("design:type", String)
|
|
20
|
-
], PaImageEntity.prototype, "uid", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
Column({ type: "integer" }),
|
|
23
|
-
__metadata("design:type", Number)
|
|
24
|
-
], PaImageEntity.prototype, "width", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
Column({ type: "integer" }),
|
|
27
|
-
__metadata("design:type", Number)
|
|
28
|
-
], PaImageEntity.prototype, "height", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
Column({ type: "boolean", nullable: true }),
|
|
31
|
-
__metadata("design:type", Boolean)
|
|
32
|
-
], PaImageEntity.prototype, "lossless", void 0);
|
|
33
|
-
PaImageEntity = __decorate([
|
|
34
|
-
Entity("PaImage")
|
|
35
|
-
], PaImageEntity);
|
|
36
|
-
export { PaImageEntity };
|
|
37
|
-
//# sourceMappingURL=pa-image.model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pa-image.model.js","sourceRoot":"","sources":["../../src/entities/pa-image.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,GAAG,CAAU;IAGb,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,QAAQ,CAAW;CACpB,CAAA;AAVC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;0CAC1C;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;4CACb;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;6CACZ;AAGhB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACzB;AAXR,aAAa;IADzB,MAAM,CAAC,SAAS,CAAC;GACL,aAAa,CAYzB"}
|
|
@@ -1,37 +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 PaMediaHandleEntity = class PaMediaHandleEntity {
|
|
12
|
-
mediaUid;
|
|
13
|
-
handle;
|
|
14
|
-
orderNum;
|
|
15
|
-
nodeId;
|
|
16
|
-
};
|
|
17
|
-
__decorate([
|
|
18
|
-
Column({ type: "varchar", length: 36, primary: true }),
|
|
19
|
-
__metadata("design:type", String)
|
|
20
|
-
], PaMediaHandleEntity.prototype, "mediaUid", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
Column({ type: "varchar", primary: true }),
|
|
23
|
-
__metadata("design:type", String)
|
|
24
|
-
], PaMediaHandleEntity.prototype, "handle", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
Column({ type: "integer", nullable: true }),
|
|
27
|
-
__metadata("design:type", Number)
|
|
28
|
-
], PaMediaHandleEntity.prototype, "orderNum", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
Column({ type: "bigint", nullable: true }),
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], PaMediaHandleEntity.prototype, "nodeId", void 0);
|
|
33
|
-
PaMediaHandleEntity = __decorate([
|
|
34
|
-
Entity("PaMediaHandle")
|
|
35
|
-
], PaMediaHandleEntity);
|
|
36
|
-
export { PaMediaHandleEntity };
|
|
37
|
-
//# sourceMappingURL=pa-media-handle.model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pa-media-handle.model.js","sourceRoot":"","sources":["../../src/entities/pa-media-handle.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,QAAQ,CAAU;IAGlB,MAAM,CAAU;CACjB,CAAA;AAVC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qDACrC;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;mDAC3B;AAGhB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC1B;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDAC3B;AAXL,mBAAmB;IAD/B,MAAM,CAAC,eAAe,CAAC;GACX,mBAAmB,CAY/B"}
|
|
@@ -1,57 +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 PaMediaEntity = class PaMediaEntity {
|
|
12
|
-
uid;
|
|
13
|
-
mediaType;
|
|
14
|
-
resourceVersion;
|
|
15
|
-
weightB;
|
|
16
|
-
modifiedTs;
|
|
17
|
-
binaryFile;
|
|
18
|
-
attachedData;
|
|
19
|
-
originalName;
|
|
20
|
-
};
|
|
21
|
-
__decorate([
|
|
22
|
-
Column({ type: "varchar", length: 36, primary: true }),
|
|
23
|
-
__metadata("design:type", String)
|
|
24
|
-
], PaMediaEntity.prototype, "uid", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
Column({ type: "varchar" }),
|
|
27
|
-
__metadata("design:type", String)
|
|
28
|
-
], PaMediaEntity.prototype, "mediaType", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
Column({ type: "varchar" }),
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], PaMediaEntity.prototype, "resourceVersion", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
Column({ type: "integer" }),
|
|
35
|
-
__metadata("design:type", Number)
|
|
36
|
-
], PaMediaEntity.prototype, "weightB", void 0);
|
|
37
|
-
__decorate([
|
|
38
|
-
Column({ type: "datetime", default: () => "current_timestamp", onUpdate: "current_timestamp" }),
|
|
39
|
-
__metadata("design:type", Date)
|
|
40
|
-
], PaMediaEntity.prototype, "modifiedTs", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
Column({ type: "blob" }),
|
|
43
|
-
__metadata("design:type", Buffer)
|
|
44
|
-
], PaMediaEntity.prototype, "binaryFile", void 0);
|
|
45
|
-
__decorate([
|
|
46
|
-
Column({ type: "text", nullable: true }),
|
|
47
|
-
__metadata("design:type", String)
|
|
48
|
-
], PaMediaEntity.prototype, "attachedData", void 0);
|
|
49
|
-
__decorate([
|
|
50
|
-
Column({ type: "varchar", nullable: true }),
|
|
51
|
-
__metadata("design:type", String)
|
|
52
|
-
], PaMediaEntity.prototype, "originalName", void 0);
|
|
53
|
-
PaMediaEntity = __decorate([
|
|
54
|
-
Entity("PaMedia")
|
|
55
|
-
], PaMediaEntity);
|
|
56
|
-
export { PaMediaEntity };
|
|
57
|
-
//# sourceMappingURL=pa-media.model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pa-media.model.js","sourceRoot":"","sources":["../../src/entities/pa-media.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,GAAG,CAAU;IAGb,SAAS,CAAU;IAGnB,eAAe,CAAU;IAGzB,OAAO,CAAU;IAGjB,UAAU,CAAQ;IAGlB,UAAU,CAAU;IAGpB,YAAY,CAAU;IAGtB,YAAY,CAAU;CACvB,CAAA;AAtBC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;0CAC1C;AAGb;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDACT;AAGnB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;sDACH;AAGzB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;8CACX;AAGjB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;8BACnF,IAAI;iDAAC;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8BACZ,MAAM;iDAAC;AAGpB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACnB;AAGtB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACtB;AAvBX,aAAa;IADzB,MAAM,CAAC,SAAS,CAAC;GACL,aAAa,CAwBzB"}
|