@paroicms/server-database-media-storage 1.16.2 → 1.17.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/ddl/medias.ddl.sql +5 -2
- package/dist/db-init/ddl-migration.d.ts +1 -1
- package/dist/db-init/ddl-migration.js +7 -1
- package/dist/db-init/ddl-migration.js.map +1 -1
- package/dist/helpers/data-formatters.helpers.d.ts +1 -1
- package/dist/helpers/media-hash.helper.d.ts +6 -0
- package/dist/helpers/media-hash.helper.js +10 -0
- package/dist/helpers/media-hash.helper.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +8 -0
- package/dist/internal-types.js +2 -0
- package/dist/internal-types.js.map +1 -0
- package/dist/media-storage.d.ts +4 -3
- package/dist/media-storage.js +44 -3
- package/dist/media-storage.js.map +1 -1
- package/dist/media.queries.d.ts +4 -3
- package/dist/media.queries.js +45 -0
- package/dist/media.queries.js.map +1 -1
- package/dist/public-types.d.ts +57 -0
- package/dist/public-types.js +2 -0
- package/dist/public-types.js.map +1 -0
- package/package.json +1 -1
- package/dist/data-types.d.ts +0 -24
- package/dist/data-types.js +0 -2
- package/dist/data-types.js.map +0 -1
- package/dist/media-storage-types.d.ts +0 -22
- package/dist/media-storage-types.js +0 -2
- package/dist/media-storage-types.js.map +0 -1
package/ddl/medias.ddl.sql
CHANGED
|
@@ -8,7 +8,7 @@ create table PaMetadata (
|
|
|
8
8
|
primary key (dbSchema, k)
|
|
9
9
|
);
|
|
10
10
|
|
|
11
|
-
insert into PaMetadata (dbSchema, k, val) values ('medias', 'dbSchemaVersion', '
|
|
11
|
+
insert into PaMetadata (dbSchema, k, val) values ('medias', 'dbSchemaVersion', '8');
|
|
12
12
|
|
|
13
13
|
create table PaMedia (
|
|
14
14
|
uid char(36) not null primary key,
|
|
@@ -18,9 +18,12 @@ create table PaMedia (
|
|
|
18
18
|
modifiedTs timestamp not null default current_timestamp,
|
|
19
19
|
binaryFile blob not null,
|
|
20
20
|
attachedData text,
|
|
21
|
-
originalName varchar(200)
|
|
21
|
+
originalName varchar(200),
|
|
22
|
+
originalHash varchar(200)
|
|
22
23
|
);
|
|
23
24
|
|
|
25
|
+
create index PaMedia_originalHash_idx on PaMedia (originalHash);
|
|
26
|
+
|
|
24
27
|
create table PaImage (
|
|
25
28
|
uid char(36) not null primary key references PaMedia (uid) on delete cascade,
|
|
26
29
|
width integer not null,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppLogger } from "@paroicms/public-server-lib";
|
|
2
2
|
import type { Knex } from "knex";
|
|
3
3
|
export declare const dbSchemaName = "medias";
|
|
4
|
-
export declare const currentDbSchemaVersion =
|
|
4
|
+
export declare const currentDbSchemaVersion = 8;
|
|
5
5
|
export declare function migrateMediasDb(cn: Knex, { fromVersion, logger }: {
|
|
6
6
|
fromVersion: number;
|
|
7
7
|
logger: AppLogger;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dateVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
2
|
import { generateResourceVersion, setMetadataDbSchemaVersion } from "@paroicms/internal-server-lib";
|
|
3
3
|
export const dbSchemaName = "medias";
|
|
4
|
-
export const currentDbSchemaVersion =
|
|
4
|
+
export const currentDbSchemaVersion = 8;
|
|
5
5
|
export async function migrateMediasDb(cn, { fromVersion, logger }) {
|
|
6
6
|
const toVersion = currentDbSchemaVersion;
|
|
7
7
|
let currentVersion = fromVersion;
|
|
@@ -46,6 +46,12 @@ export async function migrateMediasDb(cn, { fromVersion, logger }) {
|
|
|
46
46
|
await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 7 });
|
|
47
47
|
currentVersion = 7;
|
|
48
48
|
}
|
|
49
|
+
if (currentVersion === 7) {
|
|
50
|
+
await cn.raw("alter table PaMedia add originalHash varchar(200)");
|
|
51
|
+
await cn.raw("create index PaMedia_originalHash_idx on PaMedia (originalHash)");
|
|
52
|
+
await setMetadataDbSchemaVersion(cn, { dbSchemaName, value: 8 });
|
|
53
|
+
currentVersion = 8;
|
|
54
|
+
}
|
|
49
55
|
if (currentVersion !== toVersion) {
|
|
50
56
|
throw new Error(`version of ${dbSchemaName} database should be '${toVersion}', but is '${currentVersion}'`);
|
|
51
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../src/db-init/ddl-migration.ts"],"names":[],"mappings":"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"}
|
|
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,EAAQ,EACR,EAAE,WAAW,EAAE,MAAM,EAA8C;IAEnE,MAAM,SAAS,GAAG,sBAAsB,CAAC;IACzC,IAAI,cAAc,GAAG,WAAW,CAAC;IAEjC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QAErE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAC7E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5D,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtE,CAAC;gBACD,YAAY,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;gBACzD,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;oBAC3C,eAAe,EAAE,uBAAuB,EAAE;oBAC1C,YAAY,EAAE,YAAY;iBAC3B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;oBAC3C,eAAe,EAAE,uBAAuB,EAAE;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,oEAAoE;QACpE,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACzE,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,CACV,8FAA8F,CAC/F,CAAC;QACF,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAChF,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,cAAc,GAAG,CAAC,CAAC;IACrB,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;AAED,SAAS,2BAA2B,CAAC,QAAgB;IACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Image, ImageWithBinary, Media, MediaWithBinary } from "../
|
|
1
|
+
import type { Image, ImageWithBinary, Media, MediaWithBinary } from "../public-types.js";
|
|
2
2
|
export declare function formatMedia(row: any): Media;
|
|
3
3
|
export declare function formatImage(row: any): Image;
|
|
4
4
|
export declare function formatMediaWithBinary(row: any): MediaWithBinary;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Calculate SHA-256 hash for a binary buffer
|
|
4
|
+
* @param buffer The file content
|
|
5
|
+
* @returns Hexadecimal string representation of the hash
|
|
6
|
+
*/
|
|
7
|
+
export function calculateMediaHash(buffer) {
|
|
8
|
+
return createHash("sha256").update(buffer).digest("hex");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=media-hash.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-hash.helper.js","sourceRoot":"","sources":["../../src/helpers/media-hash.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-types.js","sourceRoot":"","sources":["../src/internal-types.ts"],"names":[],"mappings":""}
|
package/dist/media-storage.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AppLogger } from "@paroicms/public-server-lib";
|
|
2
|
-
import type { Image, ImageWithBinary, Media, MediaWithBinary } from "./
|
|
3
|
-
import type { NewMediaWithHandle, ReorderMediasInput } from "./media-storage-types.js";
|
|
2
|
+
import type { Image, ImageConverterFn, ImageWithBinary, Media, MediaWithBinary, NewMediaWithHandle, ReorderMediasInput } from "./public-types.js";
|
|
4
3
|
export interface MediaStorageOptions {
|
|
5
4
|
canCreate: boolean;
|
|
6
5
|
storage: MediaStorageConf;
|
|
@@ -15,7 +14,9 @@ export declare class MediaStorage {
|
|
|
15
14
|
#private;
|
|
16
15
|
constructor(options: MediaStorageOptions);
|
|
17
16
|
initialise(): Promise<void>;
|
|
18
|
-
addMedia(
|
|
17
|
+
addMedia(original: NewMediaWithHandle, { imageConverter, }?: {
|
|
18
|
+
imageConverter?: ImageConverterFn;
|
|
19
|
+
}): Promise<Media | Image>;
|
|
19
20
|
getFirstImage(options: {
|
|
20
21
|
handle: string;
|
|
21
22
|
}): Promise<Image | undefined>;
|
package/dist/media-storage.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { calculateMediaHash } from "./helpers/media-hash.helper.js";
|
|
1
2
|
import { MediaStorageContext } from "./media-storage-context.js";
|
|
2
|
-
import { countMediasByNodeId, createMedia, deleteHandle, deleteHandles, deleteMediaWithHandle, getAttachedDocumentsWeight, getFirstImageForHandle, getMedia, getMediaByHandle, getMediaWithBinary, getMediasByHandle, getMediasByHandles, reorderMedias, updateAttachedData, } from "./media.queries.js";
|
|
3
|
+
import { countMediasByNodeId, createMedia, deleteHandle, deleteHandles, deleteMediaWithHandle, findMediaByOriginalHash, getAttachedDocumentsWeight, getFirstImageForHandle, getMedia, getMediaByHandle, getMediaWithBinary, getMediasByHandle, getMediasByHandles, reorderMedias, updateAttachedData, } from "./media.queries.js";
|
|
3
4
|
export async function createMediaStorage(options) {
|
|
4
5
|
const mediaStorage = new MediaStorage(options);
|
|
5
6
|
await mediaStorage.initialise();
|
|
@@ -14,9 +15,46 @@ export class MediaStorage {
|
|
|
14
15
|
this.#checkStatus();
|
|
15
16
|
await this.#context.init();
|
|
16
17
|
}
|
|
17
|
-
async addMedia(
|
|
18
|
+
async addMedia(original, { imageConverter, } = {}) {
|
|
18
19
|
this.#checkStatus();
|
|
19
|
-
const
|
|
20
|
+
const originalHash = calculateMediaHash(original.binaryFile);
|
|
21
|
+
this.#context.logger.debug(`Calculated hash for ${original.originalName || "unnamed media"}: ${originalHash}`);
|
|
22
|
+
const existingMedia = await findMediaByOriginalHash(this.#context.cn(), originalHash);
|
|
23
|
+
let input = {
|
|
24
|
+
...original,
|
|
25
|
+
originalHash,
|
|
26
|
+
existingMediaUid: existingMedia?.uid,
|
|
27
|
+
};
|
|
28
|
+
if (original.mediaType.startsWith("image/")) {
|
|
29
|
+
if (existingMedia) {
|
|
30
|
+
if (!isImage(existingMedia))
|
|
31
|
+
throw new Error("existing media should be an image");
|
|
32
|
+
input = {
|
|
33
|
+
...input,
|
|
34
|
+
image: {
|
|
35
|
+
width: existingMedia.width,
|
|
36
|
+
height: existingMedia.height,
|
|
37
|
+
lossless: existingMedia.lossless,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else if (imageConverter) {
|
|
42
|
+
const { binaryFile, width, height, mediaType, lossless, weightB } = await imageConverter({
|
|
43
|
+
binaryFile: original.binaryFile,
|
|
44
|
+
mediaType: original.mediaType,
|
|
45
|
+
});
|
|
46
|
+
input = {
|
|
47
|
+
...input,
|
|
48
|
+
binaryFile,
|
|
49
|
+
mediaType,
|
|
50
|
+
weightB,
|
|
51
|
+
image: { width, height, lossless },
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (!input.image)
|
|
55
|
+
throw new Error("Image data is required for image media");
|
|
56
|
+
}
|
|
57
|
+
const uid = await this.#context.asyncQueue(() => createMedia(this.#context, input));
|
|
20
58
|
const media = await getMedia(this.#context.cn(), uid);
|
|
21
59
|
if (!media)
|
|
22
60
|
throw new Error(`should have a media '${uid}'`);
|
|
@@ -88,4 +126,7 @@ export class MediaStorage {
|
|
|
88
126
|
}
|
|
89
127
|
}
|
|
90
128
|
}
|
|
129
|
+
function isImage(media) {
|
|
130
|
+
return "width" in media && "height" in media;
|
|
131
|
+
}
|
|
91
132
|
//# sourceMappingURL=media-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-storage.js","sourceRoot":"","sources":["../src/media-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media-storage.js","sourceRoot":"","sources":["../src/media-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/media.queries.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Knex } from "knex";
|
|
2
|
-
import type {
|
|
2
|
+
import type { InternalNewMediaWithHandle } from "./internal-types.js";
|
|
3
3
|
import type { MediaStorageContext } from "./media-storage-context.js";
|
|
4
|
-
import type {
|
|
5
|
-
export declare function createMedia(ctx: MediaStorageContext, payload:
|
|
4
|
+
import type { Image, ImageWithBinary, Media, MediaWithBinary, ReorderMediasInput } from "./public-types.js";
|
|
5
|
+
export declare function createMedia(ctx: MediaStorageContext, payload: InternalNewMediaWithHandle): Promise<string>;
|
|
6
6
|
export declare function getFirstImageForHandle(cn: Knex, handle: string): Promise<Image | undefined>;
|
|
7
7
|
export declare function getMediasByHandle(cn: Knex, handle: string): Promise<(Image | Media)[]>;
|
|
8
8
|
export declare function getMediasByHandles(cn: Knex, handles: string[]): Promise<Map<string, Image | Media>>;
|
|
@@ -12,6 +12,7 @@ export declare function countMediasByNodeId(cn: Knex, nodeId: string, options?:
|
|
|
12
12
|
}): Promise<number>;
|
|
13
13
|
export declare function getAttachedDocumentsWeight(cn: Knex): Promise<number>;
|
|
14
14
|
export declare function getMediaByHandle(cn: Knex, handle: string): Promise<Media | Image | undefined>;
|
|
15
|
+
export declare function findMediaByOriginalHash(cn: Knex, originalHash: string): Promise<Media | Image | undefined>;
|
|
15
16
|
export declare function getMediaWithBinary(cn: Knex, uid: string): Promise<MediaWithBinary | ImageWithBinary | undefined>;
|
|
16
17
|
/**
|
|
17
18
|
* @returns the deleted media uid
|
package/dist/media.queries.js
CHANGED
|
@@ -3,6 +3,44 @@ 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
|
+
// If we already have the existingMediaUid from the earlier check, use it directly
|
|
7
|
+
if (payload.existingMediaUid) {
|
|
8
|
+
return await reuseExistingMedia(ctx, payload.existingMediaUid, payload);
|
|
9
|
+
}
|
|
10
|
+
// Create new media if no match was found
|
|
11
|
+
return await createNewMedia(ctx, payload);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Reuse existing media by adding a new handle to it if needed
|
|
15
|
+
*/
|
|
16
|
+
async function reuseExistingMedia(ctx, existingMediaUid, payload) {
|
|
17
|
+
ctx.logger.debug(`Reusing existing media ${existingMediaUid} with hash ${payload.originalHash}`);
|
|
18
|
+
// Check if handle already exists for this media
|
|
19
|
+
const handleExists = await ctx
|
|
20
|
+
.cn()
|
|
21
|
+
.from("PaMediaHandle")
|
|
22
|
+
.where({ mediaUid: existingMediaUid, handle: payload.handle })
|
|
23
|
+
.first();
|
|
24
|
+
if (!handleExists) {
|
|
25
|
+
// Add new handle to existing media
|
|
26
|
+
const maxNum = payload.replace ? await getMaxOrderNum(ctx.cn(), payload.handle) : undefined;
|
|
27
|
+
if (payload.replace)
|
|
28
|
+
await deleteHandle(ctx.cn(), payload.handle);
|
|
29
|
+
await ctx
|
|
30
|
+
.cn()("PaMediaHandle")
|
|
31
|
+
.insert({
|
|
32
|
+
mediaUid: existingMediaUid,
|
|
33
|
+
handle: payload.handle,
|
|
34
|
+
orderNum: maxNum === undefined ? 1 : maxNum + 1,
|
|
35
|
+
nodeId: payload.nodeId,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return existingMediaUid;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a new media record
|
|
42
|
+
*/
|
|
43
|
+
async function createNewMedia(ctx, payload) {
|
|
6
44
|
const uid = randomUUID();
|
|
7
45
|
const resourceVersion = generateResourceVersion();
|
|
8
46
|
const maxNum = payload.replace ? await getMaxOrderNum(ctx.cn(), payload.handle) : undefined;
|
|
@@ -17,6 +55,7 @@ export async function createMedia(ctx, payload) {
|
|
|
17
55
|
attachedData: payload.attachedData,
|
|
18
56
|
mediaType: payload.mediaType,
|
|
19
57
|
weightB: payload.weightB,
|
|
58
|
+
originalHash: payload.originalHash,
|
|
20
59
|
});
|
|
21
60
|
if (payload.image) {
|
|
22
61
|
await tx("PaImage").insert({
|
|
@@ -109,6 +148,12 @@ export async function getMediaByHandle(cn, handle) {
|
|
|
109
148
|
return;
|
|
110
149
|
return isDef(row.width) ? formatImage(row) : formatMedia(row);
|
|
111
150
|
}
|
|
151
|
+
export async function findMediaByOriginalHash(cn, originalHash) {
|
|
152
|
+
const row = await buildMediaQuery(cn).where({ originalHash }).first();
|
|
153
|
+
if (!row)
|
|
154
|
+
return;
|
|
155
|
+
return isDef(row.width) ? formatImage(row) : formatMedia(row);
|
|
156
|
+
}
|
|
112
157
|
export async function getMediaWithBinary(cn, uid) {
|
|
113
158
|
const row = await buildMediaQuery(cn, { includeBinary: true }).where("m.uid", uid).first();
|
|
114
159
|
if (!row)
|
|
@@ -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,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"media.queries.js","sourceRoot":"","sources":["../src/media.queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface ReorderMediasInput {
|
|
2
|
+
handle: string;
|
|
3
|
+
mediaUids: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface NewMediaPayload {
|
|
6
|
+
mediaType: string;
|
|
7
|
+
weightB: number;
|
|
8
|
+
binaryFile: Buffer;
|
|
9
|
+
attachedData?: string;
|
|
10
|
+
originalName?: string;
|
|
11
|
+
image?: ImageProperties;
|
|
12
|
+
}
|
|
13
|
+
export interface ImageProperties {
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
lossless?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface NewMediaWithHandle extends NewMediaPayload {
|
|
19
|
+
handle: string;
|
|
20
|
+
replace?: boolean;
|
|
21
|
+
nodeId: string;
|
|
22
|
+
}
|
|
23
|
+
export type ImageConverterFn = (image: {
|
|
24
|
+
binaryFile: Buffer;
|
|
25
|
+
mediaType: string;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
binaryFile: Buffer;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
weightB: number;
|
|
31
|
+
mediaType: string;
|
|
32
|
+
lossless: boolean | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
export interface MediaBase {
|
|
35
|
+
uid: string;
|
|
36
|
+
resourceVersion: string;
|
|
37
|
+
mediaType: string;
|
|
38
|
+
modifiedTs: Date;
|
|
39
|
+
weightB: number;
|
|
40
|
+
attachedData?: string;
|
|
41
|
+
originalName?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface Media extends MediaBase {
|
|
44
|
+
kind: "media";
|
|
45
|
+
}
|
|
46
|
+
export interface Image extends MediaBase {
|
|
47
|
+
kind: "image";
|
|
48
|
+
height: number;
|
|
49
|
+
width: number;
|
|
50
|
+
lossless?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface MediaWithBinary extends Media {
|
|
53
|
+
binaryFile: Buffer;
|
|
54
|
+
}
|
|
55
|
+
export interface ImageWithBinary extends Image {
|
|
56
|
+
binaryFile: Buffer;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-types.js","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
package/dist/data-types.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export interface MediaBase {
|
|
2
|
-
uid: string;
|
|
3
|
-
resourceVersion: string;
|
|
4
|
-
mediaType: string;
|
|
5
|
-
modifiedTs: Date;
|
|
6
|
-
weightB: number;
|
|
7
|
-
attachedData?: string;
|
|
8
|
-
originalName?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface Media extends MediaBase {
|
|
11
|
-
kind: "media";
|
|
12
|
-
}
|
|
13
|
-
export interface Image extends MediaBase {
|
|
14
|
-
kind: "image";
|
|
15
|
-
height: number;
|
|
16
|
-
width: number;
|
|
17
|
-
lossless?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface MediaWithBinary extends Media {
|
|
20
|
-
binaryFile: Buffer;
|
|
21
|
-
}
|
|
22
|
-
export interface ImageWithBinary extends Image {
|
|
23
|
-
binaryFile: Buffer;
|
|
24
|
-
}
|
package/dist/data-types.js
DELETED
package/dist/data-types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-types.js","sourceRoot":"","sources":["../src/data-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface ReorderMediasInput {
|
|
2
|
-
handle: string;
|
|
3
|
-
mediaUids: string[];
|
|
4
|
-
}
|
|
5
|
-
export interface NewMediaPayload {
|
|
6
|
-
mediaType: string;
|
|
7
|
-
weightB: number;
|
|
8
|
-
binaryFile: Buffer;
|
|
9
|
-
attachedData?: string;
|
|
10
|
-
originalName?: string;
|
|
11
|
-
image?: ImageProperties;
|
|
12
|
-
}
|
|
13
|
-
export interface ImageProperties {
|
|
14
|
-
width: number;
|
|
15
|
-
height: number;
|
|
16
|
-
lossless?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export interface NewMediaWithHandle extends NewMediaPayload {
|
|
19
|
-
handle: string;
|
|
20
|
-
replace?: boolean;
|
|
21
|
-
nodeId: string;
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media-storage-types.js","sourceRoot":"","sources":["../src/media-storage-types.ts"],"names":[],"mappings":""}
|