@paroicms/server-image-cache-engine 1.22.5 → 1.23.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.
Files changed (60) hide show
  1. package/ddl/image-cache.ddl.sql +16 -15
  2. package/dist/compute-variant-size.d.ts +4 -9
  3. package/dist/compute-variant-size.js +28 -38
  4. package/dist/compute-variant-size.js.map +1 -1
  5. package/dist/constants.d.ts +3 -0
  6. package/dist/constants.js +8 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/db-init/ddl-migration.d.ts +1 -1
  9. package/dist/db-init/ddl-migration.js +1 -1
  10. package/dist/db-init/ddl-migration.js.map +1 -1
  11. package/dist/default-bo-favicon.js +2 -2
  12. package/dist/default-bo-favicon.js.map +1 -1
  13. package/dist/engine-types.d.ts +42 -19
  14. package/dist/image-cache-engine.d.ts +42 -36
  15. package/dist/image-cache-engine.js +107 -138
  16. package/dist/image-cache-engine.js.map +1 -1
  17. package/dist/image-utils.d.ts +6 -0
  18. package/dist/image-utils.js +12 -0
  19. package/dist/image-utils.js.map +1 -0
  20. package/dist/{api.d.ts → index.d.ts} +2 -1
  21. package/dist/{api.js → index.js} +3 -2
  22. package/dist/index.js.map +1 -0
  23. package/dist/internal/engine-context.d.ts +12 -6
  24. package/dist/internal/engine-context.js +1 -2
  25. package/dist/internal/engine-context.js.map +1 -1
  26. package/dist/internal/internal.types.d.ts +36 -16
  27. package/dist/internal/queries.d.ts +64 -38
  28. package/dist/internal/queries.js +246 -106
  29. package/dist/internal/queries.js.map +1 -1
  30. package/dist/internal/resizer.d.ts +6 -6
  31. package/dist/internal/resizer.js +9 -9
  32. package/dist/internal/resizer.js.map +1 -1
  33. package/dist/internal/task-processor.js +37 -34
  34. package/dist/internal/task-processor.js.map +1 -1
  35. package/dist/internal/utils.d.ts +16 -0
  36. package/dist/internal/utils.js +34 -0
  37. package/dist/internal/utils.js.map +1 -0
  38. package/dist/original-images-processing.d.ts +2 -2
  39. package/dist/original-images-processing.js +27 -14
  40. package/dist/original-images-processing.js.map +1 -1
  41. package/dist/owner-transaction/make-t-image-available.d.ts +7 -0
  42. package/dist/owner-transaction/make-t-image-available.js +122 -0
  43. package/dist/owner-transaction/make-t-image-available.js.map +1 -0
  44. package/dist/owner-transaction/owner-batch.d.ts +10 -0
  45. package/dist/owner-transaction/owner-batch.js +85 -0
  46. package/dist/owner-transaction/owner-batch.js.map +1 -0
  47. package/dist/owner-transaction/owner-image-manager.d.ts +11 -0
  48. package/dist/owner-transaction/owner-image-manager.js +44 -0
  49. package/dist/owner-transaction/owner-image-manager.js.map +1 -0
  50. package/dist/owner-transaction/owner-transaction-types.d.ts +12 -0
  51. package/dist/owner-transaction/owner-transaction-types.js +2 -0
  52. package/dist/owner-transaction/owner-transaction-types.js.map +1 -0
  53. package/dist/owner-transaction/owner-transaction.d.ts +13 -0
  54. package/dist/owner-transaction/owner-transaction.js +60 -0
  55. package/dist/owner-transaction/owner-transaction.js.map +1 -0
  56. package/dist/owner-transaction/owner-utils.d.ts +1 -0
  57. package/dist/owner-transaction/owner-utils.js +10 -0
  58. package/dist/owner-transaction/owner-utils.js.map +1 -0
  59. package/package.json +12 -12
  60. package/dist/api.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  PRAGMA journal_mode = TRUNCATE;
2
2
  PRAGMA foreign_keys = 1;
3
3
 
4
- drop index if exists PaImageCacheUsed_usedKey_idx;
5
- drop table if exists PaImageCacheUsed;
4
+ drop index if exists PaImageCacheOwner_ownerHandle_idx;
5
+ drop table if exists PaImageCacheOwner;
6
6
  drop table if exists PaImageCache;
7
7
  drop table if exists PaMetadata;
8
8
 
@@ -13,29 +13,30 @@ create table PaMetadata (
13
13
  primary key (dbSchema, k)
14
14
  );
15
15
 
16
- insert into PaMetadata (dbSchema, k, val) values ('image-cache', 'dbSchemaVersion', '6');
16
+ insert into PaMetadata (dbSchema, k, val) values ('image-cache', 'dbSchemaVersion', '7');
17
17
 
18
18
  create table PaImageCache (
19
19
  id integer not null primary key autoincrement,
20
20
  resourceVersion varchar(100) not null,
21
- slug varchar(200),
22
- imageUid varchar(36) not null,
23
- variantName varchar(250) not null,
21
+ mediaId varchar(36) not null,
22
+ mTypeRSize varchar(100) not null,
24
23
  mediaType varchar(100) not null,
24
+ rawWidth integer not null,
25
+ rawHeight integer not null,
25
26
  weightB integer not null,
26
- width integer not null,
27
- height integer not null,
27
+ slug varchar(200),
28
28
  modifiedAt timestamp not null default current_timestamp,
29
- readAt timestamp not null default current_timestamp,
30
29
  binaryFile blob not null,
31
- unique (imageUid, variantName)
30
+ unique (mediaId, mTypeRSize)
32
31
  );
33
32
 
34
- create table PaImageCacheUsed (
33
+ create index PaImageCache_mediaIdMediaType_idx on PaImageCache (mediaId, mediaType);
34
+
35
+ create table PaImageCacheOwner (
35
36
  imageCacheId integer not null references PaImageCache (id) on delete cascade,
36
- usedKey varchar(250) not null,
37
- used tinyint(1) not null default 1,
38
- primary key (imageCacheId, usedKey)
37
+ ownerHandle varchar(250) not null,
38
+ rawResizeR varchar(50) not null,
39
+ primary key (imageCacheId, ownerHandle, rawResizeR)
39
40
  );
40
41
 
41
- create index PaImageCacheUsed_usedKey_idx on PaImageCacheUsed (usedKey);
42
+ create index PaImageCacheOwner_owner_idx on PaImageCacheOwner (ownerHandle, rawResizeR);
@@ -1,12 +1,7 @@
1
- import type { ImageSize, VariantName } from "@paroicms/public-anywhere-lib";
2
- import type { ImageRef, ParsedImageSizeWithVariant } from "./engine-types.js";
3
- export declare function findAuthorizedVariantSize(media: ImageRef, options: {
4
- authorisedImageSizes: ImageSize[];
5
- variantName: VariantName;
6
- }): ParsedImageSizeWithVariant | undefined;
1
+ import type { ImageVariantSize, SourceImageRef } from "./engine-types.js";
7
2
  export interface ComputeVariantSizeParams {
8
- imageRef: Pick<ImageRef, "width" | "height" | "avgWidth" | "avgHeight">;
9
- imageSize: string;
3
+ sourceImage: Pick<SourceImageRef, "rawWidth" | "rawHeight" | "avgRawWidth" | "avgRawHeight">;
4
+ rawResizeR: string;
10
5
  autoCrop?: boolean;
11
6
  }
12
- export declare function computeVariantSize({ imageRef, imageSize, autoCrop, }: ComputeVariantSizeParams): ParsedImageSizeWithVariant;
7
+ export declare function computeImageVariantSize({ sourceImage, rawResizeR, autoCrop, }: ComputeVariantSizeParams): ImageVariantSize;
@@ -1,81 +1,71 @@
1
1
  import { nbVal } from "@paroi/data-formatters-lib";
2
- import { isImageSize } from "@paroicms/public-server-lib";
3
- export function findAuthorizedVariantSize(media, options) {
4
- for (const imageSize of options.authorisedImageSizes) {
5
- const variantSize = computeVariantSize({
6
- imageSize,
7
- imageRef: media,
8
- });
9
- if (variantSize.variantName === options.variantName)
10
- return variantSize;
2
+ import { isResizeRule } from "@paroicms/public-anywhere-lib";
3
+ export function computeImageVariantSize({ sourceImage, rawResizeR, autoCrop, }) {
4
+ if (!isResizeRule(rawResizeR)) {
5
+ throw new Error(`This image size ${rawResizeR} is not handled.`);
11
6
  }
12
- }
13
- export function computeVariantSize({ imageRef, imageSize, autoCrop, }) {
14
- if (!isImageSize(imageSize)) {
15
- throw new Error(`This image size ${imageSize} is not handled.`);
16
- }
17
- const splitted = imageSize.split("x");
7
+ const splitted = rawResizeR.split("x");
18
8
  if (splitted.length === 3) {
19
9
  const value = splitted[1];
20
- if (imageRef.height > imageRef.width) {
21
- imageSize = `x${value}`;
10
+ if (sourceImage.rawHeight > sourceImage.rawWidth) {
11
+ rawResizeR = `x${value}`;
22
12
  }
23
- else if (imageRef.width > imageRef.height) {
24
- imageSize = `${value}x`;
13
+ else if (sourceImage.rawWidth > sourceImage.rawHeight) {
14
+ rawResizeR = `${value}x`;
25
15
  }
26
16
  else {
27
- imageSize = `${value}x`;
17
+ rawResizeR = `${value}x`;
28
18
  }
29
19
  }
30
- const [rawWidth, rawHeight] = imageSize.split("x");
20
+ const [rawWidth, rawHeight] = rawResizeR.split("x");
31
21
  const v = {
32
22
  width: rawWidth === "" ? undefined : nbVal(rawWidth),
33
23
  height: rawHeight === "" ? undefined : nbVal(rawHeight),
34
24
  };
35
25
  if (v.height !== undefined && v.width !== undefined) {
36
- return toParsedImageSizeWithVariant(reduceSizeIfNecessary({ width: v.width, height: v.height }, imageRef));
26
+ return toParsedResizeRuleWithVariant(reduceSizeIfNecessary({ rawWidth: v.width, rawHeight: v.height }, sourceImage));
37
27
  }
38
- const autoCropAvg = autoCrop && imageRef.avgHeight !== undefined && imageRef.avgWidth !== undefined
28
+ const autoCropAvg = autoCrop && sourceImage.avgRawHeight !== undefined && sourceImage.avgRawWidth !== undefined
39
29
  ? {
40
- width: imageRef.avgWidth,
41
- height: imageRef.avgHeight,
30
+ width: sourceImage.avgRawWidth,
31
+ height: sourceImage.avgRawHeight,
42
32
  }
43
33
  : undefined;
44
34
  if (v.width !== undefined && v.height === undefined) {
45
35
  const targetHeight = autoCropAvg
46
36
  ? Math.round((v.width * autoCropAvg.height) / autoCropAvg.width)
47
- : Math.round((v.width * imageRef.height) / imageRef.width);
48
- return toParsedImageSizeWithVariant(reduceSizeIfNecessary({ width: v.width, height: targetHeight }, imageRef));
37
+ : Math.round((v.width * sourceImage.rawHeight) / sourceImage.rawWidth);
38
+ return toParsedResizeRuleWithVariant(reduceSizeIfNecessary({ rawWidth: v.width, rawHeight: targetHeight }, sourceImage));
49
39
  }
50
40
  if (v.height !== undefined && v.width === undefined) {
51
41
  const targetWidth = autoCropAvg
52
42
  ? Math.round((v.height * autoCropAvg.width) / autoCropAvg.height)
53
- : Math.round((v.height * imageRef.width) / imageRef.height);
54
- return toParsedImageSizeWithVariant(reduceSizeIfNecessary({ width: targetWidth, height: v.height }, imageRef));
43
+ : Math.round((v.height * sourceImage.rawWidth) / sourceImage.rawHeight);
44
+ return toParsedResizeRuleWithVariant(reduceSizeIfNecessary({ rawWidth: targetWidth, rawHeight: v.height }, sourceImage));
55
45
  }
56
- throw new Error(`Invalid variant '${imageSize}'`);
46
+ throw new Error(`Invalid variant '${rawResizeR}'`);
57
47
  }
58
48
  function reduceSizeIfNecessary(preferredSize, actualSize) {
59
- const diffW = actualSize.width - preferredSize.width;
60
- const diffH = actualSize.height - preferredSize.height;
49
+ const diffW = actualSize.rawWidth - preferredSize.rawWidth;
50
+ const diffH = actualSize.rawHeight - preferredSize.rawHeight;
61
51
  if (diffW >= 0 && diffH >= 0) {
62
52
  return preferredSize;
63
53
  }
64
54
  if (diffW < diffH) {
65
55
  return {
66
- width: actualSize.width,
67
- height: Math.round((actualSize.width * preferredSize.height) / preferredSize.width),
56
+ rawWidth: actualSize.rawWidth,
57
+ rawHeight: Math.round((actualSize.rawWidth * preferredSize.rawHeight) / preferredSize.rawWidth),
68
58
  };
69
59
  }
70
60
  return {
71
- width: Math.round((actualSize.height * preferredSize.width) / preferredSize.height),
72
- height: actualSize.height,
61
+ rawWidth: Math.round((actualSize.rawHeight * preferredSize.rawWidth) / preferredSize.rawHeight),
62
+ rawHeight: actualSize.rawHeight,
73
63
  };
74
64
  }
75
- function toParsedImageSizeWithVariant(size) {
65
+ function toParsedResizeRuleWithVariant(size) {
76
66
  return {
77
67
  ...size,
78
- variantName: `${size.width}x${size.height}`,
68
+ rawSizeName: `${size.rawWidth}x${size.rawHeight}`,
79
69
  };
80
70
  }
81
71
  //# sourceMappingURL=compute-variant-size.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute-variant-size.js","sourceRoot":"","sources":["../src/compute-variant-size.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute-variant-size.js","sourceRoot":"","sources":["../src/compute-variant-size.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  export declare const packageDir: string;
2
2
  export type AuthorizedSharpType = "jpeg" | "webp" | "png" | "gif";
3
3
  export declare const authorizedMediaTypes: Set<string>;
4
+ export declare const mediaTypeByExtensions: {
5
+ [extension: string]: string;
6
+ };
package/dist/constants.js CHANGED
@@ -7,4 +7,12 @@ export const authorizedMediaTypes = new Set([
7
7
  "image/gif",
8
8
  "image/svg+xml",
9
9
  ]);
10
+ const fileExtensions = {
11
+ "image/jpeg": "jpeg",
12
+ "image/webp": "webp",
13
+ "image/png": "png",
14
+ "image/gif": "gif",
15
+ "image/svg+xml": "svg",
16
+ };
17
+ export const mediaTypeByExtensions = Object.fromEntries(Object.entries(fileExtensions).map(([mediaType, extension]) => [extension, mediaType]));
10
18
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAGpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,eAAe;CAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAGpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAoC;IACtD,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAoC,MAAM,CAAC,WAAW,CACtF,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CACvF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type BasicAppLogger } from "@paroicms/internal-server-lib";
2
2
  import type { Knex } from "knex";
3
3
  export declare const dbSchemaName = "image-cache";
4
- export declare const currentDbSchemaVersion = 6;
4
+ export declare const currentDbSchemaVersion = 7;
5
5
  export declare function migrateImageCacheDb(cn: Knex, { fromVersion, logger }: {
6
6
  fromVersion: number;
7
7
  logger: BasicAppLogger;
@@ -2,7 +2,7 @@ import { executeDdl, getMetadataDbSchemaVersion, } from "@paroicms/internal-serv
2
2
  import { join } from "node:path";
3
3
  import { packageDir } from "../constants.js";
4
4
  export const dbSchemaName = "image-cache";
5
- export const currentDbSchemaVersion = 6;
5
+ export const currentDbSchemaVersion = 7;
6
6
  export async function migrateImageCacheDb(cn, { fromVersion, logger }) {
7
7
  const toVersion = currentDbSchemaVersion;
8
8
  let currentVersion = fromVersion;
@@ -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,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
+ {"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;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,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"}
@@ -33,8 +33,8 @@ export async function createDefaultBoFavicon(binaryFile) {
33
33
  .toBuffer({ resolveWithObject: true }));
34
34
  const mediaType = convertSharpFormatToMediaType(result.info.format);
35
35
  return {
36
- width: result.info.width,
37
- height: result.info.height,
36
+ rawWidth: result.info.width,
37
+ rawHeight: result.info.height,
38
38
  weightB: result.data.byteLength,
39
39
  mediaType,
40
40
  lossless: mediaType === "image/png" || mediaType === "image/webp",
@@ -1 +1 @@
1
- {"version":3,"file":"default-bo-favicon.js","sourceRoot":"","sources":["../src/default-bo-favicon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-bo-favicon.js","sourceRoot":"","sources":["../src/default-bo-favicon.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,40 @@
1
- import type { VariantName } from "@paroicms/public-anywhere-lib";
1
+ import type { ResizeRule, SizeName } from "@paroicms/public-anywhere-lib";
2
2
  export interface ImageVariantStorage {
3
3
  type: "sqlite";
4
4
  file: string;
5
5
  }
6
- export type GetOriginalImage = (uid: string) => Promise<Buffer>;
7
- export interface NewImageProps {
8
- imageRef: ImageRef;
9
- imageSize: string;
6
+ export type GetOriginalImage = (mediaId: string) => Promise<Buffer>;
7
+ export interface RequestedImageVariantWithSize extends RequestedImageVariant, ImageVariantSize {
8
+ }
9
+ export interface RequestedImageVariant {
10
+ rawSizeName: SizeName;
11
+ mediaType: string;
12
+ }
13
+ export interface NewVariantInput {
14
+ rawResizeR: ResizeRule;
10
15
  autoCrop?: boolean;
11
16
  mediaType?: string;
12
- dependsOnUsedKey: string;
13
- slug?: string;
17
+ sourceImage: SourceImageRef;
14
18
  }
15
- export interface ImageRef {
16
- imageUid: string;
17
- height: number;
18
- width: number;
19
+ export interface SourceImageRef {
20
+ mediaId: string;
21
+ rawHeight: number;
22
+ rawWidth: number;
19
23
  mediaType: string;
20
- avgWidth?: number;
21
- avgHeight?: number;
24
+ slug: string | undefined;
25
+ avgRawWidth?: number;
26
+ avgRawHeight?: number;
22
27
  }
23
- export interface ParsedImageSizeWithVariant {
24
- width: number;
25
- height: number;
26
- variantName: VariantName;
28
+ export interface ImageVariantSize {
29
+ rawWidth: number;
30
+ rawHeight: number;
31
+ rawSizeName: SizeName;
27
32
  }
28
- export interface ImageVariant extends ParsedImageSizeWithVariant {
33
+ export interface ImageVariant extends ImageVariantSize {
34
+ mediaId: string;
35
+ mediaType: string;
29
36
  resourceVersion: string;
30
37
  slug?: string;
31
- mediaType: string;
32
38
  }
33
39
  export interface ImageVariantWithBinary extends ImageVariant {
34
40
  weightB: number;
@@ -38,3 +44,20 @@ export interface ImageVariantWithBinary extends ImageVariant {
38
44
  */
39
45
  lastModified: string;
40
46
  }
47
+ export interface ImageCacheOwnerTransaction {
48
+ makeImageAvailable(inputs: NewVariantInput[], options?: {
49
+ optimizeForBatch?: {
50
+ getMoreInputsForBatch: (filter: (input: NewVariantInput) => boolean) => NewVariantInput[];
51
+ };
52
+ }): Promise<ImageVariant[]>;
53
+ flush(): Promise<void>;
54
+ close(): Promise<void>;
55
+ }
56
+ export interface RawSize {
57
+ rawWidth: number;
58
+ rawHeight: number;
59
+ }
60
+ export interface UsedRawSize {
61
+ rawResizeR: ResizeRule;
62
+ rawSizeName: SizeName;
63
+ }
@@ -1,7 +1,46 @@
1
1
  import type { AppLogger } from "@paroicms/internal-server-lib";
2
- import type { ImageSize, ScImageCompressionQualityPolicyStep, VariantName } from "@paroicms/public-anywhere-lib";
3
- import type { GetOriginalImage, ImageRef, ImageVariant, ImageVariantStorage, ImageVariantWithBinary, NewImageProps } from "./engine-types.js";
4
- import { type VariantEngineContext } from "./internal/engine-context.js";
2
+ import type { ResizeRule, ScImageCompressionQualityPolicyStep } from "@paroicms/public-anywhere-lib";
3
+ import type { GetOriginalImage, ImageCacheOwnerTransaction, ImageVariant, ImageVariantStorage, ImageVariantWithBinary, NewVariantInput } from "./engine-types.js";
4
+ export interface ImageCacheEngine {
5
+ getImageVariantWithBinary(options: {
6
+ mediaId: string;
7
+ mediaType: string;
8
+ rawWidth: number;
9
+ rawHeight: number;
10
+ }): Promise<ImageVariantWithBinary | undefined>;
11
+ getImageVariantWithBinaryByOwner(options: {
12
+ mediaId: string;
13
+ mediaType: string;
14
+ ownerHandle: string;
15
+ rawResizeR: ResizeRule;
16
+ }): Promise<ImageVariantWithBinary | undefined>;
17
+ makeImageAvailable(input: NewVariantAndOwnerInput): Promise<ImageVariant>;
18
+ createOwnerTransaction(ownerHandle: string): ImageCacheOwnerTransaction;
19
+ invalidate(options: {
20
+ mediaId: string;
21
+ } | {
22
+ mediaIds: string[];
23
+ } | {
24
+ ownerHandles: string[];
25
+ }): Promise<void>;
26
+ /**
27
+ * Delete the images that have no ownerHandle and that have not been used recently.
28
+ */
29
+ cleanUnusedValues(): Promise<void>;
30
+ clearCache(): Promise<void>;
31
+ getUsedRawSizesByMedia(mediaId: string): Promise<import("./engine-types.js").UsedRawSize[]>;
32
+ close(): Promise<void>;
33
+ }
34
+ export interface NewVariantAndOwnerInput extends NewVariantInput {
35
+ ownerHandle: string;
36
+ isHandleReusable: boolean;
37
+ /**
38
+ * If `true`, the `ownerHandle` is used for a single variant with the same `mediaType` and
39
+ * `mediaId`. Also, `getImageVariantWithBinaryByOwner` can be safely used to fetch the image
40
+ * variant even when the variant is still being processed.
41
+ */
42
+ canBeRetrievedByOwner: boolean;
43
+ }
5
44
  export interface CreateImageCacheEngineOptions {
6
45
  storage: ImageVariantStorage;
7
46
  getOriginalImage: GetOriginalImage;
@@ -16,36 +55,3 @@ export declare function createImageCacheEngine(options: CreateImageCacheEngineOp
16
55
  imageCache: ImageCacheEngine;
17
56
  isCleared: boolean;
18
57
  }>;
19
- export declare class ImageCacheEngine {
20
- #private;
21
- constructor(context: VariantEngineContext);
22
- getImageVariantWithBinary({ imageUid, variantName, }: {
23
- imageUid: string;
24
- variantName: VariantName;
25
- }): Promise<ImageVariantWithBinary | undefined>;
26
- resetUsedKey(options: {
27
- usedKey: string;
28
- }): Promise<void>;
29
- makeImageAvailable(params: NewImageProps): Promise<ImageVariant>;
30
- getOrCreateImageWithBinary(params: NewImageProps): Promise<ImageVariantWithBinary | undefined>;
31
- conditionallyCreateImageVariantWithBinary(media: ImageRef, options: {
32
- authorisedImageSizes: ImageSize[];
33
- variantName: VariantName;
34
- dependsOnUsedKey: string;
35
- slug?: string;
36
- }): Promise<ImageVariantWithBinary | undefined>;
37
- invalidate(options: {
38
- imageUid: string;
39
- variantName?: string;
40
- } | {
41
- imageUids: string[];
42
- } | {
43
- usedKeys: string[];
44
- }): Promise<void>;
45
- /**
46
- * Delete the images that have no usedKey and that have not been used recently.
47
- */
48
- cleanUnusedValues(): Promise<void>;
49
- clearCache(): Promise<void>;
50
- close(): Promise<void>;
51
- }