@paroicms/server-image-cache-engine 1.22.5 → 1.23.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.
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 +8 -8
  60. package/dist/api.js.map +0 -1
@@ -1,11 +1,12 @@
1
- import { dateVal, nbVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
2
- import { isSameTimeUnit } from "@paroicms/internal-anywhere-lib";
3
- export async function insertIntoImageVariant(cn, data, usedKey) {
1
+ import { dateVal, isDef, nbVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
2
+ export async function insertIntoImageVariant(ctx, data, owners) {
3
+ const { cn } = ctx;
4
+ const mTypeRSize = makeMTypeRSizeKey(data);
4
5
  const existingRow = await cn("PaImageCache")
5
6
  .select("id")
6
7
  .where({
7
- imageUid: data.imageUid,
8
- variantName: data.variantName,
8
+ mediaId: data.mediaId,
9
+ mTypeRSize,
9
10
  })
10
11
  .first();
11
12
  let imageCacheId = existingRow ? strVal(existingRow.id) : undefined;
@@ -14,16 +15,15 @@ export async function insertIntoImageVariant(cn, data, usedKey) {
14
15
  const [inserted] = await cn("PaImageCache")
15
16
  .insert({
16
17
  resourceVersion: data.resourceVersion,
17
- imageUid: data.imageUid,
18
- variantName: data.variantName,
19
- slug: data.slug,
18
+ mediaId: data.mediaId,
19
+ mTypeRSize,
20
20
  mediaType: data.mediaType,
21
- width: data.width,
22
- height: data.height,
21
+ rawWidth: data.rawWidth,
22
+ rawHeight: data.rawHeight,
23
23
  weightB: data.weightB,
24
24
  binaryFile: data.binaryFile,
25
+ slug: data.slug,
25
26
  modifiedAt: cn.fn.now(),
26
- readAt: cn.fn.now(),
27
27
  })
28
28
  .returning(["id", "modifiedAt"]);
29
29
  imageCacheId = strVal(inserted.id);
@@ -35,13 +35,9 @@ export async function insertIntoImageVariant(cn, data, usedKey) {
35
35
  id: imageCacheId,
36
36
  })
37
37
  .update({
38
- mediaType: data.mediaType,
39
- width: data.width,
40
- height: data.height,
41
38
  weightB: data.weightB,
42
39
  binaryFile: data.binaryFile,
43
40
  modifiedAt: cn.fn.now(),
44
- readAt: cn.fn.now(),
45
41
  });
46
42
  const row = await cn("PaImageCache")
47
43
  .select("modifiedAt")
@@ -51,166 +47,310 @@ export async function insertIntoImageVariant(cn, data, usedKey) {
51
47
  throw new Error(`missing cache row: ${imageCacheId}`);
52
48
  modifiedAt = dateVal(row.modifiedAt);
53
49
  }
54
- // Insert into PaImageCacheUsed if it doesn't exist
55
- const usedCountRow = await cn("PaImageCacheUsed")
56
- .count("* as cnt")
57
- .where({
58
- imageCacheId,
59
- usedKey,
60
- })
61
- .first();
62
- if (!usedCountRow || usedCountRow.cnt === 0) {
63
- await cn("PaImageCacheUsed").insert({
64
- imageCacheId,
65
- usedKey,
66
- });
67
- }
68
- return { newId: imageCacheId, lastModified: modifiedAt.toISOString() };
69
- }
70
- export async function deleteVariants(cn, options) {
71
- if ("imageUids" in options) {
72
- await cn("PaImageCache").whereIn("imageUid", options.imageUids).delete();
73
- }
74
- else {
75
- const query = cn("PaImageCache").where("imageUid", options.imageUid);
76
- if (options.variantName) {
77
- query.where("variantName", options.variantName);
78
- }
79
- await query.delete();
80
- }
50
+ await insertIntoPaImageCacheOwner(ctx, { imageCacheId, owners });
51
+ return { imageCacheId, lastModified: modifiedAt.toISOString() };
81
52
  }
82
- /**
83
- * @returns the list of cache usedKeys that were deleted
84
- */
85
- export async function deleteVariantsByDependencies(cn, options) {
86
- const rows = await cn("PaImageCacheUsed as k")
87
- .select("k.imageCacheId")
88
- .whereIn("k.usedKey", options.usedKeys);
89
- const imageCacheIds = rows.map((row) => strVal(row.imageCacheId));
90
- if (imageCacheIds.length > 0) {
91
- await cn("PaImageCache").whereIn("id", imageCacheIds).delete();
53
+ export async function insertIntoPaImageCacheOwner(ctx, input) {
54
+ const { cn } = ctx;
55
+ const { imageCacheId, owners } = input;
56
+ if (owners.length === 0)
57
+ return;
58
+ for (const { ownerHandle, rawResizeR } of owners) {
59
+ await cn("PaImageCacheOwner")
60
+ .insert({
61
+ imageCacheId,
62
+ ownerHandle,
63
+ rawResizeR,
64
+ })
65
+ .onConflict(["imageCacheId", "ownerHandle", "rawResizeR"])
66
+ .ignore();
92
67
  }
93
- return imageCacheIds.length;
94
68
  }
95
- export async function fetchImageVariant(ctx, { imageUid, variantName, }) {
69
+ export async function fetchImageVariant(ctx, input) {
70
+ const { mediaId, rawWidth, rawHeight } = input;
96
71
  const row = await ctx
97
72
  .cn("PaImageCache as v")
98
73
  .select([
99
74
  "v.id",
100
75
  "v.mediaType",
101
- "v.width",
102
- "v.height",
76
+ "v.rawWidth",
77
+ "v.rawHeight",
103
78
  "v.modifiedAt",
104
79
  "v.resourceVersion",
105
80
  "v.slug",
106
- "v.readAt",
107
81
  ])
108
82
  .where({
109
- "v.imageUid": imageUid,
110
- "v.variantName": variantName,
83
+ "v.mediaId": mediaId,
84
+ "v.mTypeRSize": makeMTypeRSizeKey(input),
111
85
  })
112
86
  .first();
113
87
  if (!row)
114
88
  return;
115
89
  const id = strVal(row.id);
116
- const readAt = dateVal(row.readAt);
117
- await updateReadAtOfImageVariant(ctx, {
118
- id,
119
- readAt,
120
- imageUid,
121
- variantName,
122
- });
123
90
  return {
124
91
  id,
125
92
  variant: {
93
+ mediaId,
126
94
  resourceVersion: strVal(row.resourceVersion),
127
95
  slug: strValOrUndef(row.slug),
128
96
  mediaType: strVal(row.mediaType),
129
- width: nbVal(row.width),
130
- height: nbVal(row.height),
131
- variantName,
97
+ rawWidth: nbVal(row.rawWidth),
98
+ rawHeight: nbVal(row.rawHeight),
99
+ rawSizeName: `${rawWidth}x${rawHeight}`,
132
100
  },
133
101
  };
134
102
  }
135
- export async function fetchImageVariantWithBinary(ctx, { imageUid, variantName, }) {
103
+ export async function fetchImageVariantWithBinary(ctx, input) {
104
+ const { mediaId } = input;
136
105
  const row = await ctx
137
106
  .cn("PaImageCache as v")
138
107
  .select([
139
108
  "v.id",
109
+ "v.resourceVersion",
110
+ "v.rawWidth",
111
+ "v.rawHeight",
140
112
  "v.mediaType",
141
- "v.width",
142
- "v.height",
143
113
  "v.weightB",
144
114
  "v.binaryFile",
145
115
  "v.modifiedAt",
146
- "v.readAt",
147
- "v.resourceVersion",
148
116
  "v.slug",
149
117
  ])
150
118
  .where({
151
- "v.imageUid": imageUid,
152
- "v.variantName": variantName,
119
+ "v.mediaId": mediaId,
120
+ "v.mTypeRSize": makeMTypeRSizeKey(input),
153
121
  })
154
122
  .first();
155
123
  if (!row)
156
124
  return;
157
125
  const id = strVal(row.id);
158
- const readAt = dateVal(row.readAt);
159
- await updateReadAtOfImageVariant(ctx, { id, readAt, imageUid, variantName });
126
+ const rawWidth = nbVal(row.rawWidth);
127
+ const rawHeight = nbVal(row.rawHeight);
160
128
  return {
161
129
  id,
162
130
  variant: {
131
+ mediaId,
163
132
  resourceVersion: strVal(row.resourceVersion),
164
133
  slug: strValOrUndef(row.slug),
165
134
  mediaType: strVal(row.mediaType),
166
- width: nbVal(row.width),
167
- height: nbVal(row.height),
135
+ rawWidth,
136
+ rawHeight,
168
137
  weightB: nbVal(row.weightB),
169
138
  binaryFile: row.binaryFile,
170
139
  lastModified: dateVal(row.modifiedAt).toISOString(),
171
- variantName,
140
+ rawSizeName: `${rawWidth}x${rawHeight}`,
172
141
  },
173
142
  };
174
143
  }
175
- async function updateReadAtOfImageVariant(ctx, { id, readAt, imageUid, variantName, }) {
176
- const { cn, timeToIdleDays, logger } = ctx;
177
- if (timeToIdleDays === undefined || isSameTimeUnit(readAt, "day"))
144
+ export async function fetchImageVariantWithBinaryByOwner(ctx, input) {
145
+ const { mediaId, mediaType, ownerHandle, rawResizeR } = input;
146
+ const row = await ctx
147
+ .cn("PaImageCache as v")
148
+ .innerJoin("PaImageCacheOwner as o", "o.imageCacheId", "v.id")
149
+ .select([
150
+ "v.id",
151
+ "v.mediaId",
152
+ "v.resourceVersion",
153
+ "v.rawWidth",
154
+ "v.rawHeight",
155
+ "v.mediaType",
156
+ "v.weightB",
157
+ "v.binaryFile",
158
+ "v.modifiedAt",
159
+ "v.slug",
160
+ ])
161
+ .where({
162
+ "v.mediaId": mediaId,
163
+ "v.mediaType": mediaType,
164
+ "o.ownerHandle": ownerHandle,
165
+ "o.rawResizeR": rawResizeR,
166
+ })
167
+ .first();
168
+ if (!row)
178
169
  return;
179
- logger.debug(`updating readAt of image cache: ${imageUid}, ${variantName}`);
180
- await cn("PaImageCache").where("id", id).update({
181
- readAt: cn.fn.now(),
182
- });
170
+ const id = strVal(row.id);
171
+ const rawWidth = nbVal(row.rawWidth);
172
+ const rawHeight = nbVal(row.rawHeight);
173
+ return {
174
+ id,
175
+ variant: {
176
+ mediaId: strVal(row.mediaId),
177
+ resourceVersion: strVal(row.resourceVersion),
178
+ slug: strValOrUndef(row.slug),
179
+ mediaType: strVal(row.mediaType),
180
+ rawWidth,
181
+ rawHeight,
182
+ weightB: nbVal(row.weightB),
183
+ binaryFile: row.binaryFile,
184
+ lastModified: dateVal(row.modifiedAt).toISOString(),
185
+ rawSizeName: `${rawWidth}x${rawHeight}`,
186
+ },
187
+ };
188
+ }
189
+ export async function deleteVariants(ctx, options) {
190
+ const { cn } = ctx;
191
+ if ("mediaIds" in options) {
192
+ await cn("PaImageCache").whereIn("mediaId", options.mediaIds).delete();
193
+ }
194
+ else {
195
+ await cn("PaImageCache").where("mediaId", options.mediaId);
196
+ }
197
+ }
198
+ /**
199
+ * @returns the list of cache ownerHandles that were deleted
200
+ */
201
+ export async function deleteVariantsByDependencies(ctx, options) {
202
+ const { cn } = ctx;
203
+ await cn("PaImageCacheOwner as o").whereIn("o.ownerHandle", options.ownerHandles).delete();
204
+ await deleteOrphanVariants(ctx);
183
205
  }
184
206
  /**
185
- * Delete the images that have no usedKey and that have not been used recently.
207
+ * Delete the images that have no ownerHandle and that have not been used recently.
186
208
  * @returns the number of cache identifiers that were deleted
187
209
  */
188
- export async function deleteUnusedVariants({ cn, timeToIdleDays, }) {
210
+ export async function deleteOrphanVariants(ctx) {
211
+ const { cn } = ctx;
189
212
  // Find records to delete
190
- const subquery = cn("PaImageCacheUsed as k")
213
+ const subquery = cn("PaImageCacheOwner as k")
191
214
  .select(1)
192
- .whereRaw("k.imageCacheId = PaImageCache.id")
193
- .where("k.used", 1);
215
+ .whereRaw("k.imageCacheId = PaImageCache.id");
194
216
  const result = await cn("PaImageCache")
195
- .whereRaw(`date(readAt) < date(current_timestamp, '-${timeToIdleDays} day')`)
196
217
  .whereNotExists(subquery)
218
+ .andWhereRaw(`date(modifiedAt) < date(current_timestamp, '-7 day')`)
197
219
  .delete();
198
220
  return result;
199
221
  }
200
- export async function markOneUsedKeyAsUsed(ctx, { imageCacheId, usedKey, }) {
201
- await ctx
202
- .cn("PaImageCacheUsed")
203
- .where({
204
- imageCacheId,
205
- usedKey,
206
- })
207
- .update({ used: 1 });
222
+ export async function associateOwnerToImages(ctx, { ownerHandle, cacheImages, isHandleReusable, }) {
223
+ const { cn } = ctx;
224
+ await cn.transaction(async (tx) => {
225
+ const prevRows = await tx("PaImageCacheOwner")
226
+ .select(["imageCacheId", "rawResizeR"])
227
+ .where({ ownerHandle });
228
+ const prevOwnedItems = new Map(prevRows.map((row) => {
229
+ const item = {
230
+ imageCacheId: strVal(row.imageCacheId),
231
+ rawResizeR: strVal(row.rawResizeR),
232
+ };
233
+ return [makeCacheImageKey(item), item];
234
+ }));
235
+ const newCacheImages = new Map(cacheImages.map((i) => [makeCacheImageKey(i), i.rawResizeR]));
236
+ // Insert new items
237
+ const toInsert = cacheImages.filter((item) => !prevOwnedItems.has(makeCacheImageKey(item)));
238
+ if (toInsert.length > 0) {
239
+ await tx("PaImageCacheOwner").insert(toInsert.map(({ imageCacheId, rawResizeR }) => ({
240
+ imageCacheId,
241
+ ownerHandle,
242
+ rawResizeR,
243
+ })));
244
+ }
245
+ // Delete obsolete items
246
+ if (!isHandleReusable) {
247
+ const toDelete = Array.from(prevOwnedItems.entries())
248
+ .filter(([key]) => !newCacheImages.has(key))
249
+ .map(([_, item]) => item);
250
+ if (toDelete.length > 0) {
251
+ const query = tx("PaImageCacheOwner").where({ ownerHandle });
252
+ for (const item of toDelete) {
253
+ query.orWhere({
254
+ imageCacheId: item.imageCacheId,
255
+ rawResizeR: item.rawResizeR,
256
+ });
257
+ }
258
+ await query.delete();
259
+ }
260
+ }
261
+ });
262
+ }
263
+ function makeCacheImageKey({ imageCacheId, rawResizeR, }) {
264
+ return `${imageCacheId}:${rawResizeR}`;
265
+ }
266
+ export async function fetchStoredCacheItems(ctx, ownerHandle) {
267
+ const { cn } = ctx;
268
+ const query = cn("PaImageCache as v")
269
+ .select([
270
+ "v.id",
271
+ "v.mediaId",
272
+ "v.mediaType",
273
+ "v.rawWidth",
274
+ "v.rawHeight",
275
+ "v.modifiedAt",
276
+ "v.resourceVersion",
277
+ "v.slug",
278
+ ])
279
+ .join("PaImageCacheOwner as o", "o.imageCacheId", "v.id")
280
+ .where("o.ownerHandle", ownerHandle);
281
+ const rows = await query;
282
+ return rows.map((row) => ({
283
+ imageCacheId: strVal(row.id),
284
+ variant: formatImageVariant(row),
285
+ alreadyOwned: true,
286
+ }));
208
287
  }
209
- export async function markUsedKeyAsUnused(ctx, { usedKey, }) {
210
- await ctx.cn("PaImageCacheUsed").where({ usedKey }).update({ used: 0 });
288
+ export async function fetchBatchOfStoredCacheItems(ctx, groups, alreadyOwnedBy) {
289
+ if (groups.length === 0)
290
+ return [];
291
+ const { cn } = ctx;
292
+ const query = cn("PaImageCache as v")
293
+ .select([
294
+ "v.id",
295
+ "v.mediaId",
296
+ "v.mediaType",
297
+ "v.rawWidth",
298
+ "v.rawHeight",
299
+ "v.modifiedAt",
300
+ "v.resourceVersion",
301
+ "v.slug",
302
+ "o.ownerHandle",
303
+ ])
304
+ .leftJoin("PaImageCacheOwner as o", {
305
+ "o.imageCacheId": "v.id",
306
+ "o.ownerHandle": cn.raw("?", [alreadyOwnedBy]),
307
+ });
308
+ query.where((qb) => {
309
+ for (const { mediaIds, requestedVariants } of groups) {
310
+ if (mediaIds.length === 0 || requestedVariants.length === 0)
311
+ continue;
312
+ qb.orWhere((subQb) => {
313
+ subQb.whereIn("v.mediaId", mediaIds).whereIn("v.mTypeRSize", requestedVariants.map((v) => makeMTypeRSizeKey(v)));
314
+ });
315
+ }
316
+ });
317
+ const rows = await query;
318
+ return rows.map((row) => ({
319
+ imageCacheId: strVal(row.id),
320
+ variant: formatImageVariant(row),
321
+ alreadyOwned: isDef(row.ownerHandle),
322
+ }));
211
323
  }
212
- export async function clearVariantCache({ cn }) {
213
- await cn("PaImageCacheUsed").delete();
324
+ export async function clearAll({ cn }) {
325
+ await cn("PaImageCacheOwner").delete();
214
326
  await cn("PaImageCache").delete();
215
327
  }
328
+ function makeMTypeRSizeKey(image) {
329
+ return `${image.rawWidth}x${image.rawHeight}:${image.mediaType}`;
330
+ }
331
+ function formatImageVariant(row) {
332
+ return {
333
+ mediaId: strVal(row.mediaId),
334
+ resourceVersion: strVal(row.resourceVersion),
335
+ slug: strValOrUndef(row.slug),
336
+ mediaType: strVal(row.mediaType),
337
+ rawWidth: nbVal(row.rawWidth),
338
+ rawHeight: nbVal(row.rawHeight),
339
+ rawSizeName: `${nbVal(row.rawWidth)}x${nbVal(row.rawHeight)}`,
340
+ };
341
+ }
342
+ export async function fetchUsedRawSizesByMedia(ctx, mediaId) {
343
+ const { cn } = ctx;
344
+ const rows = await cn("PaImageCache as v")
345
+ .innerJoin("PaImageCacheOwner as o", "o.imageCacheId", "v.id")
346
+ .select(["o.rawResizeR", "v.rawWidth", "v.rawHeight"])
347
+ .where("v.mediaId", mediaId)
348
+ .orderBy("v.rawWidth", "asc")
349
+ .orderBy("v.rawHeight", "asc")
350
+ .distinct();
351
+ return rows.map((row) => ({
352
+ rawResizeR: strVal(row.rawResizeR),
353
+ rawSizeName: `${nbVal(row.rawWidth)}x${nbVal(row.rawHeight)}`,
354
+ }));
355
+ }
216
356
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/internal/queries.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import type { ScImageCompressionQualityPolicyStep } from "@paroicms/public-anywhere-lib";
2
- import type { ImageSize } from "./internal.types.js";
2
+ import type { RawSize } from "../engine-types.js";
3
3
  export interface UnsavedImageVariantWithBinary {
4
- width: number;
5
- height: number;
4
+ rawWidth: number;
5
+ rawHeight: number;
6
6
  mediaType: string;
7
7
  weightB: number;
8
8
  binaryFile: Buffer;
9
9
  }
10
10
  export declare function resizeImage(options: {
11
11
  binaryFile: Buffer;
12
- imageSize: ImageSize;
12
+ rawSize: RawSize;
13
13
  formatTo?: {
14
14
  mediaType: string;
15
15
  lossless?: boolean;
@@ -18,7 +18,7 @@ export declare function resizeImage(options: {
18
18
  }): Promise<UnsavedImageVariantWithBinary>;
19
19
  export declare function resizeIcoImage(options: {
20
20
  binaryFile: Buffer;
21
- imageSize: ImageSize;
21
+ rawSize: RawSize;
22
22
  }): Promise<UnsavedImageVariantWithBinary>;
23
23
  export declare function convertSharpFormatToMediaType(format: string): string;
24
- export declare function getQuality({ width, height }: ImageSize, qualityPolicy?: ScImageCompressionQualityPolicyStep[]): number;
24
+ export declare function getQuality({ rawWidth, rawHeight }: RawSize, qualityPolicy?: ScImageCompressionQualityPolicyStep[]): number;
@@ -9,15 +9,15 @@ export async function resizeImage(options) {
9
9
  ? convertMediaTypeToSharpFormat(options.formatTo.mediaType)
10
10
  : "webp";
11
11
  const sharpInst = sharp(options.binaryFile)
12
- .resize(options.imageSize)
12
+ .resize({ width: options.rawSize.rawWidth, height: options.rawSize.rawHeight })
13
13
  .toFormat(sharpFormat, {
14
- quality: getQuality(options.imageSize),
14
+ quality: getQuality(options.rawSize),
15
15
  lossless: options.formatTo?.lossless,
16
16
  });
17
17
  const { data, info } = await sharpQueue(() => sharpInst.toBuffer({ resolveWithObject: true }));
18
18
  return {
19
- width: info.width,
20
- height: info.height,
19
+ rawWidth: info.width,
20
+ rawHeight: info.height,
21
21
  weightB: data.byteLength,
22
22
  mediaType: convertSharpFormatToMediaType(info.format),
23
23
  binaryFile: data,
@@ -25,13 +25,13 @@ export async function resizeImage(options) {
25
25
  }
26
26
  export async function resizeIcoImage(options) {
27
27
  const { data, info } = await sharpQueue(() => sharp(options.binaryFile)
28
- .resize(options.imageSize)
28
+ .resize({ width: options.rawSize.rawWidth, height: options.rawSize.rawHeight })
29
29
  .toFormat("png")
30
30
  .toBuffer({ resolveWithObject: true }));
31
31
  const binaryFile = icoEndec.encode([data]);
32
32
  return {
33
- width: info.width,
34
- height: info.height,
33
+ rawWidth: info.width,
34
+ rawHeight: info.height,
35
35
  weightB: binaryFile.byteLength,
36
36
  mediaType: "image/x-icon",
37
37
  binaryFile,
@@ -48,8 +48,8 @@ export function convertSharpFormatToMediaType(format) {
48
48
  return "image/svg+xml"; // Sharp omit +xml
49
49
  return `image/${format}`;
50
50
  }
51
- export function getQuality({ width, height }, qualityPolicy) {
52
- const area = width * height;
51
+ export function getQuality({ rawWidth, rawHeight }, qualityPolicy) {
52
+ const area = rawWidth * rawHeight;
53
53
  for (const { quality, areaLimitPx } of qualityPolicy ?? []) {
54
54
  if (areaLimitPx === undefined || area <= areaLimitPx)
55
55
  return quality;
@@ -1 +1 @@
1
- {"version":3,"file":"resizer.js","sourceRoot":"","sources":["../../src/internal/resizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resizer.js","sourceRoot":"","sources":["../../src/internal/resizer.ts"],"names":[],"mappings":"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"}