canopycms-cdk 0.0.65 → 0.0.66-int.82

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 (35) hide show
  1. package/lambda/asset-transform/dist/handler.js +3 -0
  2. package/lambda/asset-transform/dist/node_modules/.package-lock.json +39 -39
  3. package/lambda/asset-transform/dist/node_modules/@img/sharp-libvips-linux-arm64/lib/glib-2.0/include/glibconfig.h +1 -1
  4. package/lambda/asset-transform/dist/node_modules/@img/sharp-libvips-linux-arm64/lib/{libvips-cpp.so.8.18.3 → libvips-cpp.so.8.18.6} +0 -0
  5. package/lambda/asset-transform/dist/node_modules/@img/sharp-libvips-linux-arm64/package.json +2 -2
  6. package/lambda/asset-transform/dist/node_modules/@img/sharp-libvips-linux-arm64/versions.json +13 -13
  7. package/lambda/asset-transform/dist/node_modules/@img/sharp-linux-arm64/index.cjs +1 -1
  8. package/lambda/asset-transform/dist/node_modules/@img/sharp-linux-arm64/lib/{sharp-linux-arm64-0.35.3.node → sharp-linux-arm64-0.35.4.node} +0 -0
  9. package/lambda/asset-transform/dist/node_modules/@img/sharp-linux-arm64/package.json +2 -2
  10. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/index.cjs +1 -1
  11. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/lib/sharp-wasm32-0.35.4.node.js +1 -0
  12. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/lib/{sharp-wasm32-0.35.3.node.wasm → sharp-wasm32-0.35.4.node.wasm} +0 -0
  13. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/package.json +2 -2
  14. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/versions.json +9 -9
  15. package/lambda/asset-transform/dist/node_modules/sharp/dist/composite.cjs +6 -6
  16. package/lambda/asset-transform/dist/node_modules/sharp/dist/composite.mjs +6 -6
  17. package/lambda/asset-transform/dist/node_modules/sharp/dist/constructor.cjs +1 -1
  18. package/lambda/asset-transform/dist/node_modules/sharp/dist/constructor.mjs +1 -1
  19. package/lambda/asset-transform/dist/node_modules/sharp/dist/index.d.cts +2 -2
  20. package/lambda/asset-transform/dist/node_modules/sharp/dist/index.d.mts +2 -2
  21. package/lambda/asset-transform/dist/node_modules/sharp/dist/input.cjs +20 -15
  22. package/lambda/asset-transform/dist/node_modules/sharp/dist/input.mjs +20 -15
  23. package/lambda/asset-transform/dist/node_modules/sharp/dist/operation.cjs +4 -0
  24. package/lambda/asset-transform/dist/node_modules/sharp/dist/operation.mjs +4 -0
  25. package/lambda/asset-transform/dist/node_modules/sharp/dist/output.cjs +4 -7
  26. package/lambda/asset-transform/dist/node_modules/sharp/dist/output.mjs +4 -7
  27. package/lambda/asset-transform/dist/node_modules/sharp/dist/resize.cjs +8 -8
  28. package/lambda/asset-transform/dist/node_modules/sharp/dist/resize.mjs +8 -8
  29. package/lambda/asset-transform/dist/node_modules/sharp/lib/index.d.ts +2 -2
  30. package/lambda/asset-transform/dist/node_modules/sharp/package.json +38 -38
  31. package/lambda/asset-transform/dist/node_modules/sharp/src/common.cc +7 -4
  32. package/lambda/asset-transform/dist/node_modules/sharp/src/common.h +2 -2
  33. package/package.json +4 -4
  34. package/worker/dist/index.js +1684 -1764
  35. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/lib/sharp-wasm32-0.35.3.node.js +0 -1
@@ -531,11 +531,6 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
531
531
  function _write (chunk, _encoding, callback) {
532
532
  if (Array.isArray(this.options.input.buffer)) {
533
533
  if (is.buffer(chunk)) {
534
- if (this.options.input.buffer.length === 0) {
535
- this.on('finish', () => {
536
- this.streamInFinished = true;
537
- });
538
- }
539
534
  this.options.input.buffer.push(chunk);
540
535
  callback();
541
536
  } else {
@@ -565,6 +560,20 @@ function _isStreamInput () {
565
560
  return Array.isArray(this.options.input.buffer);
566
561
  }
567
562
 
563
+ /**
564
+ * Call fn when the Writable side of Stream-based input has finished,
565
+ * or immediately when it already has, as 'finish' is emitted only once.
566
+ * @private
567
+ * @param {Function} fn
568
+ */
569
+ function _whenStreamInFinished (fn) {
570
+ if (this.writableFinished) {
571
+ fn();
572
+ } else {
573
+ this.once('finish', fn);
574
+ }
575
+ }
576
+
568
577
  /**
569
578
  * Fast access to (uncached) image metadata without decoding any compressed pixel data.
570
579
  *
@@ -642,7 +651,7 @@ function metadata (callback) {
642
651
  const stack = Error();
643
652
  if (is.fn(callback)) {
644
653
  if (this._isStreamInput()) {
645
- this.on('finish', () => {
654
+ this._whenStreamInFinished(() => {
646
655
  this._flattenBufferIn();
647
656
  sharp.metadata(this.options, (err, metadata) => {
648
657
  if (err) {
@@ -665,7 +674,7 @@ function metadata (callback) {
665
674
  } else {
666
675
  if (this._isStreamInput()) {
667
676
  return new Promise((resolve, reject) => {
668
- const finished = () => {
677
+ this._whenStreamInFinished(() => {
669
678
  this._flattenBufferIn();
670
679
  sharp.metadata(this.options, (err, metadata) => {
671
680
  if (err) {
@@ -674,12 +683,7 @@ function metadata (callback) {
674
683
  resolve(metadata);
675
684
  }
676
685
  });
677
- };
678
- if (this.writableFinished) {
679
- finished();
680
- } else {
681
- this.once('finish', finished);
682
- }
686
+ });
683
687
  });
684
688
  } else {
685
689
  return new Promise((resolve, reject) => {
@@ -744,7 +748,7 @@ function stats (callback) {
744
748
  const stack = Error();
745
749
  if (is.fn(callback)) {
746
750
  if (this._isStreamInput()) {
747
- this.on('finish', () => {
751
+ this._whenStreamInFinished(() => {
748
752
  this._flattenBufferIn();
749
753
  sharp.stats(this.options, (err, stats) => {
750
754
  if (err) {
@@ -767,7 +771,7 @@ function stats (callback) {
767
771
  } else {
768
772
  if (this._isStreamInput()) {
769
773
  return new Promise((resolve, reject) => {
770
- this.on('finish', function () {
774
+ this._whenStreamInFinished(() => {
771
775
  this._flattenBufferIn();
772
776
  sharp.stats(this.options, (err, stats) => {
773
777
  if (err) {
@@ -805,6 +809,7 @@ module.exports = (Sharp) => {
805
809
  _write,
806
810
  _flattenBufferIn,
807
811
  _isStreamInput,
812
+ _whenStreamInFinished,
808
813
  // Public
809
814
  metadata,
810
815
  stats
@@ -531,11 +531,6 @@ function _createInputDescriptor (input, inputOptions, containerOptions) {
531
531
  function _write (chunk, _encoding, callback) {
532
532
  if (Array.isArray(this.options.input.buffer)) {
533
533
  if (is.buffer(chunk)) {
534
- if (this.options.input.buffer.length === 0) {
535
- this.on('finish', () => {
536
- this.streamInFinished = true;
537
- });
538
- }
539
534
  this.options.input.buffer.push(chunk);
540
535
  callback();
541
536
  } else {
@@ -565,6 +560,20 @@ function _isStreamInput () {
565
560
  return Array.isArray(this.options.input.buffer);
566
561
  }
567
562
 
563
+ /**
564
+ * Call fn when the Writable side of Stream-based input has finished,
565
+ * or immediately when it already has, as 'finish' is emitted only once.
566
+ * @private
567
+ * @param {Function} fn
568
+ */
569
+ function _whenStreamInFinished (fn) {
570
+ if (this.writableFinished) {
571
+ fn();
572
+ } else {
573
+ this.once('finish', fn);
574
+ }
575
+ }
576
+
568
577
  /**
569
578
  * Fast access to (uncached) image metadata without decoding any compressed pixel data.
570
579
  *
@@ -642,7 +651,7 @@ function metadata (callback) {
642
651
  const stack = Error();
643
652
  if (is.fn(callback)) {
644
653
  if (this._isStreamInput()) {
645
- this.on('finish', () => {
654
+ this._whenStreamInFinished(() => {
646
655
  this._flattenBufferIn();
647
656
  sharp.metadata(this.options, (err, metadata) => {
648
657
  if (err) {
@@ -665,7 +674,7 @@ function metadata (callback) {
665
674
  } else {
666
675
  if (this._isStreamInput()) {
667
676
  return new Promise((resolve, reject) => {
668
- const finished = () => {
677
+ this._whenStreamInFinished(() => {
669
678
  this._flattenBufferIn();
670
679
  sharp.metadata(this.options, (err, metadata) => {
671
680
  if (err) {
@@ -674,12 +683,7 @@ function metadata (callback) {
674
683
  resolve(metadata);
675
684
  }
676
685
  });
677
- };
678
- if (this.writableFinished) {
679
- finished();
680
- } else {
681
- this.once('finish', finished);
682
- }
686
+ });
683
687
  });
684
688
  } else {
685
689
  return new Promise((resolve, reject) => {
@@ -744,7 +748,7 @@ function stats (callback) {
744
748
  const stack = Error();
745
749
  if (is.fn(callback)) {
746
750
  if (this._isStreamInput()) {
747
- this.on('finish', () => {
751
+ this._whenStreamInFinished(() => {
748
752
  this._flattenBufferIn();
749
753
  sharp.stats(this.options, (err, stats) => {
750
754
  if (err) {
@@ -767,7 +771,7 @@ function stats (callback) {
767
771
  } else {
768
772
  if (this._isStreamInput()) {
769
773
  return new Promise((resolve, reject) => {
770
- this.on('finish', function () {
774
+ this._whenStreamInFinished(() => {
771
775
  this._flattenBufferIn();
772
776
  sharp.stats(this.options, (err, stats) => {
773
777
  if (err) {
@@ -805,6 +809,7 @@ export default (Sharp) => {
805
809
  _write,
806
810
  _flattenBufferIn,
807
811
  _isStreamInput,
812
+ _whenStreamInFinished,
808
813
  // Public
809
814
  metadata,
810
815
  stats
@@ -78,6 +78,10 @@ function rotate (angle, options) {
78
78
  * Auto-orient based on the EXIF `Orientation` tag, then remove the tag.
79
79
  * Mirroring is supported and may infer the use of a flip operation.
80
80
  *
81
+ * Only the EXIF `Orientation` tag is considered; orientation carried in other
82
+ * places, such as an XMP `tiff:Orientation` element, is left untouched and
83
+ * remains the responsibility of the consumer.
84
+ *
81
85
  * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()`
82
86
  * will logically occur after auto-orientation, regardless of call order.
83
87
  *
@@ -78,6 +78,10 @@ function rotate (angle, options) {
78
78
  * Auto-orient based on the EXIF `Orientation` tag, then remove the tag.
79
79
  * Mirroring is supported and may infer the use of a flip operation.
80
80
  *
81
+ * Only the EXIF `Orientation` tag is considered; orientation carried in other
82
+ * places, such as an XMP `tiff:Orientation` element, is left untouched and
83
+ * remains the responsibility of the consumer.
84
+ *
81
85
  * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()`
82
86
  * will logically occur after auto-orientation, regardless of call order.
83
87
  *
@@ -33,7 +33,7 @@ const jp2Regex = /\.(jp[2x]|j2[kc])$/i;
33
33
 
34
34
  const errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG');
35
35
 
36
- const bitdepthFromColourCount = (colours) => 1 << 31 - Math.clz32(Math.ceil(Math.log2(colours)));
36
+ const bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1);
37
37
 
38
38
  /**
39
39
  * Write output image data to a file.
@@ -1649,7 +1649,7 @@ function _pipeline (callback, stack) {
1649
1649
  // output=file/buffer
1650
1650
  if (this._isStreamInput()) {
1651
1651
  // output=file/buffer, input=stream
1652
- this.on('finish', () => {
1652
+ this._whenStreamInFinished(() => {
1653
1653
  this._flattenBufferIn();
1654
1654
  sharp.pipeline(this.options, (err, data, info) => {
1655
1655
  if (err) {
@@ -1674,7 +1674,7 @@ function _pipeline (callback, stack) {
1674
1674
  // output=stream
1675
1675
  if (this._isStreamInput()) {
1676
1676
  // output=stream, input=stream
1677
- this.once('finish', () => {
1677
+ this._whenStreamInFinished(() => {
1678
1678
  this._flattenBufferIn();
1679
1679
  sharp.pipeline(this.options, (err, data, info) => {
1680
1680
  if (err) {
@@ -1687,9 +1687,6 @@ function _pipeline (callback, stack) {
1687
1687
  this.on('end', () => this.emit('close'));
1688
1688
  });
1689
1689
  });
1690
- if (this.streamInFinished) {
1691
- this.emit('finish');
1692
- }
1693
1690
  } else {
1694
1691
  // output=stream, input=file/buffer
1695
1692
  sharp.pipeline(this.options, (err, data, info) => {
@@ -1709,7 +1706,7 @@ function _pipeline (callback, stack) {
1709
1706
  if (this._isStreamInput()) {
1710
1707
  // output=promise, input=stream
1711
1708
  return new Promise((resolve, reject) => {
1712
- this.once('finish', () => {
1709
+ this._whenStreamInFinished(() => {
1713
1710
  this._flattenBufferIn();
1714
1711
  sharp.pipeline(this.options, (err, data, info) => {
1715
1712
  if (err) {
@@ -33,7 +33,7 @@ const jp2Regex = /\.(jp[2x]|j2[kc])$/i;
33
33
 
34
34
  const errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG');
35
35
 
36
- const bitdepthFromColourCount = (colours) => 1 << 31 - Math.clz32(Math.ceil(Math.log2(colours)));
36
+ const bitdepthFromColourCount = (colours) => 1 << 32 - Math.clz32(Math.ceil(Math.log2(colours)) - 1);
37
37
 
38
38
  /**
39
39
  * Write output image data to a file.
@@ -1649,7 +1649,7 @@ function _pipeline (callback, stack) {
1649
1649
  // output=file/buffer
1650
1650
  if (this._isStreamInput()) {
1651
1651
  // output=file/buffer, input=stream
1652
- this.on('finish', () => {
1652
+ this._whenStreamInFinished(() => {
1653
1653
  this._flattenBufferIn();
1654
1654
  sharp.pipeline(this.options, (err, data, info) => {
1655
1655
  if (err) {
@@ -1674,7 +1674,7 @@ function _pipeline (callback, stack) {
1674
1674
  // output=stream
1675
1675
  if (this._isStreamInput()) {
1676
1676
  // output=stream, input=stream
1677
- this.once('finish', () => {
1677
+ this._whenStreamInFinished(() => {
1678
1678
  this._flattenBufferIn();
1679
1679
  sharp.pipeline(this.options, (err, data, info) => {
1680
1680
  if (err) {
@@ -1687,9 +1687,6 @@ function _pipeline (callback, stack) {
1687
1687
  this.on('end', () => this.emit('close'));
1688
1688
  });
1689
1689
  });
1690
- if (this.streamInFinished) {
1691
- this.emit('finish');
1692
- }
1693
1690
  } else {
1694
1691
  // output=stream, input=file/buffer
1695
1692
  sharp.pipeline(this.options, (err, data, info) => {
@@ -1709,7 +1706,7 @@ function _pipeline (callback, stack) {
1709
1706
  if (this._isStreamInput()) {
1710
1707
  // output=promise, input=stream
1711
1708
  return new Promise((resolve, reject) => {
1712
- this.once('finish', () => {
1709
+ this._whenStreamInFinished(() => {
1713
1710
  this._flattenBufferIn();
1714
1711
  sharp.pipeline(this.options, (err, data, info) => {
1715
1712
  if (err) {
@@ -265,19 +265,19 @@ function resize (widthOrOptions, height, options) {
265
265
  if (is.defined(widthOrOptions)) {
266
266
  if (is.object(widthOrOptions) && !is.defined(options)) {
267
267
  options = widthOrOptions;
268
- } else if (is.integer(widthOrOptions) && widthOrOptions > 0) {
268
+ } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) {
269
269
  this.options.width = widthOrOptions;
270
270
  } else {
271
- throw is.invalidParameterError('width', 'positive integer', widthOrOptions);
271
+ throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions);
272
272
  }
273
273
  } else {
274
274
  this.options.width = -1;
275
275
  }
276
276
  if (is.defined(height)) {
277
- if (is.integer(height) && height > 0) {
277
+ if (is.integer(height) && is.inRange(height, 1, 100000000)) {
278
278
  this.options.height = height;
279
279
  } else {
280
- throw is.invalidParameterError('height', 'positive integer', height);
280
+ throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height);
281
281
  }
282
282
  } else {
283
283
  this.options.height = -1;
@@ -285,18 +285,18 @@ function resize (widthOrOptions, height, options) {
285
285
  if (is.object(options)) {
286
286
  // Width
287
287
  if (is.defined(options.width)) {
288
- if (is.integer(options.width) && options.width > 0) {
288
+ if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) {
289
289
  this.options.width = options.width;
290
290
  } else {
291
- throw is.invalidParameterError('width', 'positive integer', options.width);
291
+ throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width);
292
292
  }
293
293
  }
294
294
  // Height
295
295
  if (is.defined(options.height)) {
296
- if (is.integer(options.height) && options.height > 0) {
296
+ if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) {
297
297
  this.options.height = options.height;
298
298
  } else {
299
- throw is.invalidParameterError('height', 'positive integer', options.height);
299
+ throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height);
300
300
  }
301
301
  }
302
302
  // Fit
@@ -265,19 +265,19 @@ function resize (widthOrOptions, height, options) {
265
265
  if (is.defined(widthOrOptions)) {
266
266
  if (is.object(widthOrOptions) && !is.defined(options)) {
267
267
  options = widthOrOptions;
268
- } else if (is.integer(widthOrOptions) && widthOrOptions > 0) {
268
+ } else if (is.integer(widthOrOptions) && is.inRange(widthOrOptions, 1, 100000000)) {
269
269
  this.options.width = widthOrOptions;
270
270
  } else {
271
- throw is.invalidParameterError('width', 'positive integer', widthOrOptions);
271
+ throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', widthOrOptions);
272
272
  }
273
273
  } else {
274
274
  this.options.width = -1;
275
275
  }
276
276
  if (is.defined(height)) {
277
- if (is.integer(height) && height > 0) {
277
+ if (is.integer(height) && is.inRange(height, 1, 100000000)) {
278
278
  this.options.height = height;
279
279
  } else {
280
- throw is.invalidParameterError('height', 'positive integer', height);
280
+ throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', height);
281
281
  }
282
282
  } else {
283
283
  this.options.height = -1;
@@ -285,18 +285,18 @@ function resize (widthOrOptions, height, options) {
285
285
  if (is.object(options)) {
286
286
  // Width
287
287
  if (is.defined(options.width)) {
288
- if (is.integer(options.width) && options.width > 0) {
288
+ if (is.integer(options.width) && is.inRange(options.width, 1, 100000000)) {
289
289
  this.options.width = options.width;
290
290
  } else {
291
- throw is.invalidParameterError('width', 'positive integer', options.width);
291
+ throw is.invalidParameterError('width', 'positive integer between 1 and 100000000', options.width);
292
292
  }
293
293
  }
294
294
  // Height
295
295
  if (is.defined(options.height)) {
296
- if (is.integer(options.height) && options.height > 0) {
296
+ if (is.integer(options.height) && is.inRange(options.height, 1, 100000000)) {
297
297
  this.options.height = options.height;
298
298
  } else {
299
- throw is.invalidParameterError('height', 'positive integer', options.height);
299
+ throw is.invalidParameterError('height', 'positive integer between 1 and 100000000', options.height);
300
300
  }
301
301
  }
302
302
  // Fit
@@ -1693,9 +1693,9 @@ declare namespace sharp {
1693
1693
  blend?: Blend | undefined;
1694
1694
  /** gravity at which to place the overlay. (optional, default 'centre') */
1695
1695
  gravity?: Gravity | undefined;
1696
- /** the pixel offset from the top edge. */
1696
+ /** the pixel offset from the top edge, an integer between -100000000 and 100000000. */
1697
1697
  top?: number | undefined;
1698
- /** the pixel offset from the left edge. */
1698
+ /** the pixel offset from the left edge, an integer between -100000000 and 100000000. */
1699
1699
  left?: number | undefined;
1700
1700
  /** set to true to repeat the overlay image across the entire image with the given gravity. (optional, default false) */
1701
1701
  tile?: boolean | undefined;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sharp",
3
3
  "description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",
4
- "version": "0.35.3",
4
+ "version": "0.35.4",
5
5
  "author": "Lovell Fuller <npm@lovell.info>",
6
6
  "homepage": "https://sharp.pixelplumbing.com",
7
7
  "contributors": [
@@ -163,31 +163,31 @@
163
163
  "semver": "^7.8.5"
164
164
  },
165
165
  "optionalDependencies": {
166
- "@img/sharp-darwin-arm64": "0.35.3",
167
- "@img/sharp-darwin-x64": "0.35.3",
168
- "@img/sharp-freebsd-wasm32": "0.35.3",
169
- "@img/sharp-libvips-darwin-arm64": "1.3.2",
170
- "@img/sharp-libvips-darwin-x64": "1.3.2",
171
- "@img/sharp-libvips-linux-arm": "1.3.2",
172
- "@img/sharp-libvips-linux-arm64": "1.3.2",
173
- "@img/sharp-libvips-linux-ppc64": "1.3.2",
174
- "@img/sharp-libvips-linux-riscv64": "1.3.2",
175
- "@img/sharp-libvips-linux-s390x": "1.3.2",
176
- "@img/sharp-libvips-linux-x64": "1.3.2",
177
- "@img/sharp-libvips-linuxmusl-arm64": "1.3.2",
178
- "@img/sharp-libvips-linuxmusl-x64": "1.3.2",
179
- "@img/sharp-linux-arm": "0.35.3",
180
- "@img/sharp-linux-arm64": "0.35.3",
181
- "@img/sharp-linux-ppc64": "0.35.3",
182
- "@img/sharp-linux-riscv64": "0.35.3",
183
- "@img/sharp-linux-s390x": "0.35.3",
184
- "@img/sharp-linux-x64": "0.35.3",
185
- "@img/sharp-linuxmusl-arm64": "0.35.3",
186
- "@img/sharp-linuxmusl-x64": "0.35.3",
187
- "@img/sharp-webcontainers-wasm32": "0.35.3",
188
- "@img/sharp-win32-arm64": "0.35.3",
189
- "@img/sharp-win32-ia32": "0.35.3",
190
- "@img/sharp-win32-x64": "0.35.3"
166
+ "@img/sharp-darwin-arm64": "0.35.4",
167
+ "@img/sharp-darwin-x64": "0.35.4",
168
+ "@img/sharp-freebsd-wasm32": "0.35.4",
169
+ "@img/sharp-libvips-darwin-arm64": "1.3.3",
170
+ "@img/sharp-libvips-darwin-x64": "1.3.3",
171
+ "@img/sharp-libvips-linux-arm": "1.3.3",
172
+ "@img/sharp-libvips-linux-arm64": "1.3.3",
173
+ "@img/sharp-libvips-linux-ppc64": "1.3.3",
174
+ "@img/sharp-libvips-linux-riscv64": "1.3.3",
175
+ "@img/sharp-libvips-linux-s390x": "1.3.3",
176
+ "@img/sharp-libvips-linux-x64": "1.3.3",
177
+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.3",
178
+ "@img/sharp-libvips-linuxmusl-x64": "1.3.3",
179
+ "@img/sharp-linux-arm": "0.35.4",
180
+ "@img/sharp-linux-arm64": "0.35.4",
181
+ "@img/sharp-linux-ppc64": "0.35.4",
182
+ "@img/sharp-linux-riscv64": "0.35.4",
183
+ "@img/sharp-linux-s390x": "0.35.4",
184
+ "@img/sharp-linux-x64": "0.35.4",
185
+ "@img/sharp-linuxmusl-arm64": "0.35.4",
186
+ "@img/sharp-linuxmusl-x64": "0.35.4",
187
+ "@img/sharp-webcontainers-wasm32": "0.35.4",
188
+ "@img/sharp-win32-arm64": "0.35.4",
189
+ "@img/sharp-win32-ia32": "0.35.4",
190
+ "@img/sharp-win32-x64": "0.35.4"
191
191
  },
192
192
  "peerDependenciesMeta": {
193
193
  "@types/node": {
@@ -195,22 +195,22 @@
195
195
  }
196
196
  },
197
197
  "devDependencies": {
198
- "@biomejs/biome": "^2.5.1",
198
+ "@biomejs/biome": "^2.5.10",
199
199
  "@cpplint/cli": "^0.1.0",
200
- "@emnapi/runtime": "^1.11.1",
201
- "@img/sharp-libvips-dev": "1.3.2",
202
- "@img/sharp-libvips-dev-wasm32": "1.3.2",
203
- "@img/sharp-libvips-win32-arm64": "1.3.2",
204
- "@img/sharp-libvips-win32-ia32": "1.3.2",
205
- "@img/sharp-libvips-win32-x64": "1.3.2",
200
+ "@emnapi/runtime": "^1.11.3",
201
+ "@img/sharp-libvips-dev": "1.3.3",
202
+ "@img/sharp-libvips-dev-wasm32": "1.3.3",
203
+ "@img/sharp-libvips-win32-arm64": "1.3.3",
204
+ "@img/sharp-libvips-win32-ia32": "1.3.3",
205
+ "@img/sharp-libvips-win32-x64": "1.3.3",
206
206
  "@types/node": "*",
207
- "emnapi": "^1.11.1",
207
+ "emnapi": "^1.11.3",
208
208
  "exif-reader": "^2.0.3",
209
- "extract-zip": "^2.0.1",
209
+ "yauzl": "^3.4.0",
210
210
  "icc": "^4.0.0",
211
- "node-addon-api": "^8.9.0",
211
+ "node-addon-api": "^8.9.2",
212
212
  "node-gyp": "^12.4.0",
213
- "publint": "^0.3.21",
213
+ "publint": "^0.3.24",
214
214
  "tar-fs": "^3.1.3",
215
215
  "tsd": "^0.33.0"
216
216
  },
@@ -219,7 +219,7 @@
219
219
  "node": ">=20.9.0"
220
220
  },
221
221
  "config": {
222
- "libvips": ">=8.18.3"
222
+ "libvips": ">=8.18.6"
223
223
  },
224
224
  "funding": {
225
225
  "url": "https://opencollective.com/libvips"
@@ -118,7 +118,7 @@ namespace sharp {
118
118
  descriptor->openSlideLevel = AttrAsUint32(input, "openSlideLevel");
119
119
  }
120
120
  // subIFD (OME-TIFF)
121
- if (HasAttr(input, "subifd")) {
121
+ if (HasAttr(input, "tiffSubifd")) {
122
122
  descriptor->tiffSubifd = AttrAsInt32(input, "tiffSubifd");
123
123
  }
124
124
  // // PDF background color
@@ -711,9 +711,12 @@ namespace sharp {
711
711
  bool hasDelay = !delay.empty();
712
712
  VImage copy = image.copy();
713
713
 
714
- // Only set page-height if we have more than one page, or this could
715
- // accidentally turn into an animated image later.
716
- if (nPages > 1) copy.set(VIPS_META_PAGE_HEIGHT, pageHeight);
714
+ // Only set page-height and n-pages if we have more than one page, or this
715
+ // could accidentally turn into an animated image later.
716
+ if (nPages > 1) {
717
+ copy.set(VIPS_META_PAGE_HEIGHT, pageHeight);
718
+ copy.set(VIPS_META_N_PAGES, nPages);
719
+ }
717
720
  if (hasDelay) {
718
721
  if (delay.size() == 1) {
719
722
  // We have just one delay, repeat that value for all frames.
@@ -19,8 +19,8 @@
19
19
 
20
20
  #if (VIPS_MAJOR_VERSION < 8) || \
21
21
  (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION < 18) || \
22
- (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION == 18 && VIPS_MICRO_VERSION < 3)
23
- #error "libvips version 8.18.3+ is required - please see https://sharp.pixelplumbing.com/install"
22
+ (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION == 18 && VIPS_MICRO_VERSION < 6)
23
+ #error "libvips version 8.18.6+ is required - please see https://sharp.pixelplumbing.com/install"
24
24
  #endif
25
25
 
26
26
  #if defined(__has_include)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canopycms-cdk",
3
- "version": "0.0.65",
3
+ "version": "0.0.66-int.82",
4
4
  "description": "AWS CDK constructs and EC2 worker for CanopyCMS deployment",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "aws-cdk-lib": "^2.260.0",
32
32
  "constructs": "^10.0.0",
33
- "canopycms": "0.0.65"
33
+ "canopycms": "0.0.66-int.82"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "aws-cdk-lib": {
@@ -54,8 +54,8 @@
54
54
  "tsx": "^4.19.0",
55
55
  "typescript": "^5.6.3",
56
56
  "vitest": "^4.1.0",
57
- "canopycms": "0.0.65",
58
- "canopycms-auth-clerk": "0.0.65"
57
+ "canopycms": "0.0.66-int.82",
58
+ "canopycms-auth-clerk": "0.0.66-int.82"
59
59
  },
60
60
  "scripts": {
61
61
  "build": "rm -rf dist && tsc && node ../../scripts/add-js-extensions.mjs dist",