@atlaspack/transformer-image 3.1.5-canary.35 → 3.1.5-canary.351

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/CHANGELOG.md CHANGED
@@ -1,5 +1,388 @@
1
1
  # @atlaspack/transformer-image
2
2
 
3
+ ## 12.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`695339e`](https://github.com/atlassian-labs/atlaspack/commit/695339e4fd46df9590013c2ef4de74cb22225927)]:
8
+ - @atlaspack/core@2.31.1
9
+ - @atlaspack/utils@3.2.8
10
+ - @atlaspack/workers@2.14.47
11
+ - @atlaspack/plugin@2.14.47
12
+
13
+ ## 12.0.0
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [[`02cc8b3`](https://github.com/atlassian-labs/atlaspack/commit/02cc8b32c06ca6b51806b33f6f707ca06e55e957), [`02cc8b3`](https://github.com/atlassian-labs/atlaspack/commit/02cc8b32c06ca6b51806b33f6f707ca06e55e957)]:
18
+ - @atlaspack/core@2.31.0
19
+ - @atlaspack/utils@3.2.7
20
+ - @atlaspack/plugin@2.14.46
21
+ - @atlaspack/workers@2.14.46
22
+
23
+ ## 11.0.2
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies []:
28
+ - @atlaspack/core@2.30.2
29
+ - @atlaspack/utils@3.2.6
30
+ - @atlaspack/plugin@2.14.45
31
+ - @atlaspack/workers@2.14.45
32
+
33
+ ## 11.0.1
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies []:
38
+ - @atlaspack/core@2.30.1
39
+ - @atlaspack/utils@3.2.5
40
+ - @atlaspack/workers@2.14.44
41
+ - @atlaspack/plugin@2.14.44
42
+
43
+ ## 11.0.0
44
+
45
+ ### Patch Changes
46
+
47
+ - Updated dependencies [[`00fa643`](https://github.com/atlassian-labs/atlaspack/commit/00fa6433202bfd3311479f6314c9ec878a789f2c)]:
48
+ - @atlaspack/core@2.30.0
49
+ - @atlaspack/plugin@2.14.43
50
+ - @atlaspack/utils@3.2.4
51
+ - @atlaspack/workers@2.14.43
52
+
53
+ ## 10.0.2
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies []:
58
+ - @atlaspack/core@2.29.2
59
+ - @atlaspack/utils@3.2.3
60
+ - @atlaspack/workers@2.14.42
61
+ - @atlaspack/plugin@2.14.42
62
+
63
+ ## 10.0.1
64
+
65
+ ### Patch Changes
66
+
67
+ - Updated dependencies [[`d98c992`](https://github.com/atlassian-labs/atlaspack/commit/d98c992a56121a4f9f6a011ced5e103f96fe3999)]:
68
+ - @atlaspack/core@2.29.1
69
+ - @atlaspack/utils@3.2.2
70
+ - @atlaspack/workers@2.14.41
71
+ - @atlaspack/plugin@2.14.41
72
+
73
+ ## 10.0.0
74
+
75
+ ### Patch Changes
76
+
77
+ - Updated dependencies [[`a884bd2`](https://github.com/atlassian-labs/atlaspack/commit/a884bd2a6bd6f37d088fb886dd9b88e85328501b), [`5710532`](https://github.com/atlassian-labs/atlaspack/commit/57105322b26ce42af2cbfcc0506cff929e50b630), [`6fac01d`](https://github.com/atlassian-labs/atlaspack/commit/6fac01dbb1bfc5b971176c1a1c008297bf4b8f91), [`432d571`](https://github.com/atlassian-labs/atlaspack/commit/432d571ea4e9fc67be12304fcafe8c445e844174), [`5710532`](https://github.com/atlassian-labs/atlaspack/commit/57105322b26ce42af2cbfcc0506cff929e50b630)]:
78
+ - @atlaspack/core@2.29.0
79
+ - @atlaspack/utils@3.2.1
80
+ - @atlaspack/workers@2.14.40
81
+ - @atlaspack/plugin@2.14.40
82
+
83
+ ## 9.0.0
84
+
85
+ ### Patch Changes
86
+
87
+ - Updated dependencies [[`7dd5bd8`](https://github.com/atlassian-labs/atlaspack/commit/7dd5bd89ff60c7b324347d772729eb4c3314f01e), [`8eb84ee`](https://github.com/atlassian-labs/atlaspack/commit/8eb84ee61a42bfe87c58079b610802b07a6a13e4), [`73168c2`](https://github.com/atlassian-labs/atlaspack/commit/73168c275a5d9abff9907bcf536b340bca1ed5f0), [`617a318`](https://github.com/atlassian-labs/atlaspack/commit/617a318ddc9419b38360257353fec50b9051ee13)]:
88
+ - @atlaspack/core@2.28.0
89
+ - @atlaspack/utils@3.2.0
90
+ - @atlaspack/plugin@2.14.39
91
+ - @atlaspack/workers@2.14.39
92
+
93
+ ## 8.0.0
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [[`ec3abe4`](https://github.com/atlassian-labs/atlaspack/commit/ec3abe4dffc98560a850fd2f71fb566577e6c99c), [`cfb4707`](https://github.com/atlassian-labs/atlaspack/commit/cfb4707087498e4fa4dcf10753fe984a248d196b), [`33d4c26`](https://github.com/atlassian-labs/atlaspack/commit/33d4c261ceb8d585d56b0a446ed6e28cf7f1126d), [`f31b041`](https://github.com/atlassian-labs/atlaspack/commit/f31b04107e9077c9946aadb99f6f91bb69703bb7), [`8180981`](https://github.com/atlassian-labs/atlaspack/commit/8180981be14c00f9570adb70d3f350bd91d6ec0a), [`119210b`](https://github.com/atlassian-labs/atlaspack/commit/119210b597eb993c50445df87a36b70bd49cd414), [`7d7a55d`](https://github.com/atlassian-labs/atlaspack/commit/7d7a55dd6395ec391a2e4c33b3dec0d1ea477d4c)]:
98
+ - @atlaspack/core@2.27.0
99
+ - @atlaspack/utils@3.1.2
100
+ - @atlaspack/workers@2.14.38
101
+ - @atlaspack/plugin@2.14.38
102
+
103
+ ## 7.0.2
104
+
105
+ ### Patch Changes
106
+
107
+ - Updated dependencies []:
108
+ - @atlaspack/core@2.26.2
109
+ - @atlaspack/utils@3.1.1
110
+ - @atlaspack/workers@2.14.37
111
+ - @atlaspack/plugin@2.14.37
112
+
113
+ ## 7.0.1
114
+
115
+ ### Patch Changes
116
+
117
+ - Updated dependencies [[`9cd9521`](https://github.com/atlassian-labs/atlaspack/commit/9cd9521978f783046e2ae4ce78f2de7aeb07d073), [`d0c7bea`](https://github.com/atlassian-labs/atlaspack/commit/d0c7bea04458255b4c5d4299600e734b5f919fe1), [`1086c6a`](https://github.com/atlassian-labs/atlaspack/commit/1086c6a2c59271b63b3fb78e6acdb9d3a0dbf354), [`5776be2`](https://github.com/atlassian-labs/atlaspack/commit/5776be21f70a3f2b9471ba33da3ba1a883f21f1a)]:
118
+ - @atlaspack/core@2.26.1
119
+ - @atlaspack/utils@3.1.0
120
+ - @atlaspack/workers@2.14.36
121
+ - @atlaspack/plugin@2.14.36
122
+
123
+ ## 7.0.0
124
+
125
+ ### Patch Changes
126
+
127
+ - Updated dependencies [[`ff8ac84`](https://github.com/atlassian-labs/atlaspack/commit/ff8ac84bd0be15caa7c7af21bf5b6e47b6d36438), [`3da8e69`](https://github.com/atlassian-labs/atlaspack/commit/3da8e690605472d81c531366b65fa9844f8ca337), [`c372f3f`](https://github.com/atlassian-labs/atlaspack/commit/c372f3fd6fce8200d5cf47f41bc7895c6cbb5558), [`17dfea9`](https://github.com/atlassian-labs/atlaspack/commit/17dfea9e9f3169807808520df9c09ebf70dc8b10), [`27fd73f`](https://github.com/atlassian-labs/atlaspack/commit/27fd73fa07d358653f1be6f2d15d72dc5d8fc2fd), [`3091fa3`](https://github.com/atlassian-labs/atlaspack/commit/3091fa36425ecffe3938e55247a035b08cda37a2)]:
128
+ - @atlaspack/core@2.26.0
129
+ - @atlaspack/utils@3.0.3
130
+ - @atlaspack/plugin@2.14.35
131
+ - @atlaspack/workers@2.14.35
132
+
133
+ ## 6.0.1
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [[`25cbee6`](https://github.com/atlassian-labs/atlaspack/commit/25cbee625fb47ac20423fe34ff37bc818a807245)]:
138
+ - @atlaspack/workers@2.14.34
139
+ - @atlaspack/core@2.25.1
140
+ - @atlaspack/utils@3.0.2
141
+ - @atlaspack/plugin@2.14.34
142
+
143
+ ## 6.0.0
144
+
145
+ ### Patch Changes
146
+
147
+ - Updated dependencies [[`236e546`](https://github.com/atlassian-labs/atlaspack/commit/236e5465863dca6044a7191e05260a5b924c342e), [`f07351a`](https://github.com/atlassian-labs/atlaspack/commit/f07351a2398b6a8e5155a2daad77e69b7dcb2b4b)]:
148
+ - @atlaspack/utils@3.0.1
149
+ - @atlaspack/core@2.25.0
150
+ - @atlaspack/workers@2.14.33
151
+ - @atlaspack/plugin@2.14.33
152
+
153
+ ## 5.0.2
154
+
155
+ ### Patch Changes
156
+
157
+ - Updated dependencies [[`10ee3fa`](https://github.com/atlassian-labs/atlaspack/commit/10ee3fa5b75a92acde8973673d9b3c5b6f3958e5), [`1180103`](https://github.com/atlassian-labs/atlaspack/commit/118010351ed444f8178988afb3f77807154dd933)]:
158
+ - @atlaspack/core@2.24.2
159
+ - @atlaspack/utils@3.0.0
160
+ - @atlaspack/workers@2.14.32
161
+ - @atlaspack/plugin@2.14.32
162
+
163
+ ## 5.0.1
164
+
165
+ ### Patch Changes
166
+
167
+ - [#785](https://github.com/atlassian-labs/atlaspack/pull/785) [`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922) Thanks [@matt-koko](https://github.com/matt-koko)! - We need to re-publish every package in Atlaspack with the corrected types field.
168
+
169
+ - Updated dependencies [[`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922), [`686a398`](https://github.com/atlassian-labs/atlaspack/commit/686a398faa1f9e19cbf9274add2c46e246bafba8)]:
170
+ - @atlaspack/core@2.24.1
171
+ - @atlaspack/plugin@2.14.31
172
+ - @atlaspack/utils@2.19.3
173
+ - @atlaspack/workers@2.14.31
174
+
175
+ ## 5.0.0
176
+
177
+ ### Patch Changes
178
+
179
+ - Updated dependencies [[`eedcbc4`](https://github.com/atlassian-labs/atlaspack/commit/eedcbc408fc1e86a2a8e25f1a41c57146d8529e1), [`5a0363f`](https://github.com/atlassian-labs/atlaspack/commit/5a0363f1086e81068959b87e92064bed5a11a9b4), [`038e87a`](https://github.com/atlassian-labs/atlaspack/commit/038e87a7858d39556d59d3a2d17db534d45f62c6), [`f6532d7`](https://github.com/atlassian-labs/atlaspack/commit/f6532d7a4f7f007bd4e5e36af04dd466f0b9f572), [`8604d2a`](https://github.com/atlassian-labs/atlaspack/commit/8604d2a49ace5e9194ec4f76e71f06b93610f6b4)]:
180
+ - @atlaspack/core@2.24.0
181
+ - @atlaspack/utils@2.19.2
182
+ - @atlaspack/plugin@2.14.30
183
+ - @atlaspack/workers@2.14.30
184
+
185
+ ## 4.0.5
186
+
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies []:
190
+ - @atlaspack/core@2.23.5
191
+ - @atlaspack/utils@2.19.1
192
+ - @atlaspack/plugin@2.14.29
193
+ - @atlaspack/workers@2.14.29
194
+
195
+ ## 4.0.4
196
+
197
+ ### Patch Changes
198
+
199
+ - Updated dependencies [[`f0349a6`](https://github.com/atlassian-labs/atlaspack/commit/f0349a6b9b04755088f121095ca6301a2ada3767)]:
200
+ - @atlaspack/utils@2.19.0
201
+ - @atlaspack/core@2.23.4
202
+ - @atlaspack/workers@2.14.28
203
+ - @atlaspack/plugin@2.14.28
204
+
205
+ ## 4.0.3
206
+
207
+ ### Patch Changes
208
+
209
+ - Updated dependencies []:
210
+ - @atlaspack/core@2.23.3
211
+ - @atlaspack/utils@2.18.4
212
+ - @atlaspack/plugin@2.14.27
213
+ - @atlaspack/workers@2.14.27
214
+
215
+ ## 4.0.2
216
+
217
+ ### Patch Changes
218
+
219
+ - [#742](https://github.com/atlassian-labs/atlaspack/pull/742) [`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd) Thanks [@yamadapc](https://github.com/yamadapc)! - Internal changes and bug fixes to environmentDeduplication flag
220
+
221
+ - Updated dependencies [[`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd), [`889c65c`](https://github.com/atlassian-labs/atlaspack/commit/889c65cd25b811045e26a117e7404f694dde77a2), [`b6e72b6`](https://github.com/atlassian-labs/atlaspack/commit/b6e72b6dd2b517cbb0e700fa69e63332d3eacb1e)]:
222
+ - @atlaspack/workers@2.14.26
223
+ - @atlaspack/plugin@2.14.26
224
+ - @atlaspack/utils@2.18.3
225
+ - @atlaspack/core@2.23.2
226
+
227
+ ## 4.0.1
228
+
229
+ ### Patch Changes
230
+
231
+ - Updated dependencies []:
232
+ - @atlaspack/core@2.23.1
233
+ - @atlaspack/utils@2.18.2
234
+ - @atlaspack/plugin@2.14.25
235
+ - @atlaspack/workers@2.14.25
236
+
237
+ ## 4.0.0
238
+
239
+ ### Patch Changes
240
+
241
+ - Updated dependencies [[`7f5841c`](https://github.com/atlassian-labs/atlaspack/commit/7f5841c39df049f9546cccbeea2a7337e0337b45)]:
242
+ - @atlaspack/core@2.23.0
243
+ - @atlaspack/utils@2.18.1
244
+ - @atlaspack/plugin@2.14.24
245
+ - @atlaspack/workers@2.14.24
246
+
247
+ ## 3.1.23
248
+
249
+ ### Patch Changes
250
+
251
+ - Updated dependencies [[`23d561e`](https://github.com/atlassian-labs/atlaspack/commit/23d561e51e68b0c38fd1ff4e4fb173e5e7b01cf2)]:
252
+ - @atlaspack/utils@2.18.0
253
+ - @atlaspack/workers@2.14.23
254
+ - @atlaspack/plugin@2.14.23
255
+
256
+ ## 3.1.22
257
+
258
+ ### Patch Changes
259
+
260
+ - [#720](https://github.com/atlassian-labs/atlaspack/pull/720) [`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94) Thanks [@alshdavid](https://github.com/alshdavid)! - Migrate to TypeScript
261
+
262
+ - Updated dependencies [[`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94)]:
263
+ - @atlaspack/workers@2.14.22
264
+ - @atlaspack/plugin@2.14.22
265
+ - @atlaspack/utils@2.17.4
266
+
267
+ ## 3.1.21
268
+
269
+ ### Patch Changes
270
+
271
+ - Updated dependencies []:
272
+ - @atlaspack/workers@2.14.21
273
+ - @atlaspack/utils@2.17.3
274
+ - @atlaspack/plugin@2.14.21
275
+
276
+ ## 3.1.20
277
+
278
+ ### Patch Changes
279
+
280
+ - [#702](https://github.com/atlassian-labs/atlaspack/pull/702) [`daaa768`](https://github.com/atlassian-labs/atlaspack/commit/daaa7688786772d7e3713b71c5bba6b89ec704aa) Thanks [@alshdavid](https://github.com/alshdavid)! - Fixes to Flow types
281
+
282
+ - Updated dependencies [[`daaa768`](https://github.com/atlassian-labs/atlaspack/commit/daaa7688786772d7e3713b71c5bba6b89ec704aa)]:
283
+ - @atlaspack/plugin@2.14.20
284
+ - @atlaspack/utils@2.17.2
285
+ - @atlaspack/workers@2.14.20
286
+
287
+ ## 3.1.19
288
+
289
+ ### Patch Changes
290
+
291
+ - Updated dependencies []:
292
+ - @atlaspack/utils@2.17.1
293
+ - @atlaspack/workers@2.14.19
294
+ - @atlaspack/plugin@2.14.19
295
+
296
+ ## 3.1.18
297
+
298
+ ### Patch Changes
299
+
300
+ - Updated dependencies [[`dbb4072`](https://github.com/atlassian-labs/atlaspack/commit/dbb40721ebeb45990a14ba04e6b44e7f836fb32d), [`de23e0c`](https://github.com/atlassian-labs/atlaspack/commit/de23e0ce49d5504fe3947ac26640a3d951087da3), [`18a57cf`](https://github.com/atlassian-labs/atlaspack/commit/18a57cf8a4789b2de5ad8e2676f317a26cc91417), [`a5ed1b4`](https://github.com/atlassian-labs/atlaspack/commit/a5ed1b414498560f393ff491af4da25b6e8dde56)]:
301
+ - @atlaspack/utils@2.17.0
302
+ - @atlaspack/workers@2.14.18
303
+ - @atlaspack/plugin@2.14.18
304
+
305
+ ## 3.1.17
306
+
307
+ ### Patch Changes
308
+
309
+ - Updated dependencies []:
310
+ - @atlaspack/utils@2.16.1
311
+ - @atlaspack/workers@2.14.17
312
+ - @atlaspack/plugin@2.14.17
313
+
314
+ ## 3.1.16
315
+
316
+ ### Patch Changes
317
+
318
+ - Updated dependencies [[`30ee2cf`](https://github.com/atlassian-labs/atlaspack/commit/30ee2cfcd34cf2646ded0eda13fdb80a2a5de529)]:
319
+ - @atlaspack/utils@2.16.0
320
+ - @atlaspack/workers@2.14.16
321
+ - @atlaspack/plugin@2.14.16
322
+
323
+ ## 3.1.15
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies []:
328
+ - @atlaspack/utils@2.15.3
329
+ - @atlaspack/workers@2.14.15
330
+ - @atlaspack/plugin@2.14.15
331
+
332
+ ## 3.1.14
333
+
334
+ ### Patch Changes
335
+
336
+ - Updated dependencies []:
337
+ - @atlaspack/utils@2.15.2
338
+ - @atlaspack/workers@2.14.14
339
+ - @atlaspack/plugin@2.14.14
340
+
341
+ ## 3.1.13
342
+
343
+ ### Patch Changes
344
+
345
+ - Updated dependencies [[`ef3d622`](https://github.com/atlassian-labs/atlaspack/commit/ef3d6228f4e006702198a19c61e051d194d325cb)]:
346
+ - @atlaspack/workers@2.14.13
347
+ - @atlaspack/utils@2.15.1
348
+ - @atlaspack/plugin@2.14.13
349
+
350
+ ## 3.1.12
351
+
352
+ ### Patch Changes
353
+
354
+ - Updated dependencies [[`e39c6cf`](https://github.com/atlassian-labs/atlaspack/commit/e39c6cf05f7e95ce5420dbcea66f401b1cbd397c)]:
355
+ - @atlaspack/utils@2.15.0
356
+ - @atlaspack/workers@2.14.12
357
+ - @atlaspack/plugin@2.14.12
358
+
359
+ ## 3.1.11
360
+
361
+ ### Patch Changes
362
+
363
+ - Updated dependencies []:
364
+ - @atlaspack/utils@2.14.11
365
+ - @atlaspack/workers@2.14.11
366
+ - @atlaspack/plugin@2.14.11
367
+
368
+ ## 3.1.10
369
+
370
+ ### Patch Changes
371
+
372
+ - Updated dependencies []:
373
+ - @atlaspack/workers@2.14.10
374
+ - @atlaspack/plugin@2.14.10
375
+ - @atlaspack/utils@2.14.10
376
+
377
+ ## 3.1.9
378
+
379
+ ### Patch Changes
380
+
381
+ - Updated dependencies []:
382
+ - @atlaspack/utils@2.14.9
383
+ - @atlaspack/workers@2.14.9
384
+ - @atlaspack/plugin@2.14.9
385
+
3
386
  ## 3.1.8
4
387
 
5
388
  ### Patch Changes
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const validateConfig_1 = require("./validateConfig");
7
+ const plugin_1 = require("@atlaspack/plugin");
8
+ const nullthrows_1 = __importDefault(require("nullthrows"));
9
+ const workers_1 = __importDefault(require("@atlaspack/workers"));
10
+ // @ts-expect-error TS1192
11
+ const loadSharp_1 = __importDefault(require("./loadSharp"));
12
+ // from https://github.com/lovell/sharp/blob/df7b8ba73808fc494be413e88cfb621b6279218c/lib/output.js#L6-L17
13
+ const FORMATS = new Map([
14
+ ['jpeg', 'jpeg'],
15
+ ['jpg', 'jpeg'],
16
+ ['png', 'png'],
17
+ ['webp', 'webp'],
18
+ ['gif', 'gif'],
19
+ ['tiff', 'tiff'],
20
+ ['avif', 'avif'],
21
+ ['heic', 'heif'],
22
+ ['heif', 'heif'],
23
+ ]);
24
+ let isSharpLoadedOnMainThread = false;
25
+ exports.default = new plugin_1.Transformer({
26
+ async loadConfig({ config }) {
27
+ let configFile = await config.getConfig(['sharp.config.json'], // '.sharprc', '.sharprc.json'
28
+ { packageKey: 'sharp' });
29
+ if (configFile?.contents) {
30
+ (0, validateConfig_1.validateConfig)(configFile.contents, configFile.filePath);
31
+ return configFile.contents;
32
+ }
33
+ else {
34
+ return {};
35
+ }
36
+ },
37
+ async transform({ config, asset, options }) {
38
+ asset.bundleBehavior = 'isolated';
39
+ const originalFormat = FORMATS.get(asset.type);
40
+ if (!originalFormat) {
41
+ throw new Error(`The image transformer does not support ${asset.type} images.`);
42
+ }
43
+ const width = asset.query.has('width')
44
+ ? // @ts-expect-error TS2345
45
+ parseInt(asset.query.get('width'), 10)
46
+ : null;
47
+ const height = asset.query.has('height')
48
+ ? // @ts-expect-error TS2345
49
+ parseInt(asset.query.get('height'), 10)
50
+ : null;
51
+ const quality = asset.query.has('quality')
52
+ ? // @ts-expect-error TS2345
53
+ parseInt(asset.query.get('quality'), 10)
54
+ : config.quality;
55
+ let targetFormat = asset.query.get('as')?.toLowerCase().trim();
56
+ if (targetFormat && !FORMATS.has(targetFormat)) {
57
+ throw new Error(`The image transformer does not support ${targetFormat} images.`);
58
+ }
59
+ const format = (0, nullthrows_1.default)(FORMATS.get(targetFormat || originalFormat));
60
+ const outputOptions = config[format];
61
+ if (width || height || quality || targetFormat || outputOptions) {
62
+ // Sharp must be required from the main thread as well to prevent errors when workers exit
63
+ // See https://sharp.pixelplumbing.com/install#worker-threads and https://github.com/lovell/sharp/issues/2263
64
+ if (workers_1.default.isWorker() && !isSharpLoadedOnMainThread) {
65
+ let api = workers_1.default.getWorkerApi();
66
+ await api.callMaster({
67
+ location: __dirname + '/loadSharp.js',
68
+ args: [
69
+ options.packageManager,
70
+ asset.filePath,
71
+ options.shouldAutoInstall,
72
+ ],
73
+ });
74
+ isSharpLoadedOnMainThread = true;
75
+ }
76
+ let inputBuffer = await asset.getBuffer();
77
+ let sharp = await (0, loadSharp_1.default)(options.packageManager, asset.filePath, options.shouldAutoInstall, true);
78
+ let imagePipeline = sharp(inputBuffer, { animated: true });
79
+ imagePipeline.withMetadata();
80
+ if (width || height) {
81
+ imagePipeline.resize(width, height);
82
+ }
83
+ imagePipeline.rotate();
84
+ const normalizedOutputOptions = outputOptions || {};
85
+ if (format === 'jpeg') {
86
+ normalizedOutputOptions.mozjpeg =
87
+ normalizedOutputOptions.mozjpeg ?? true;
88
+ }
89
+ imagePipeline[format]({
90
+ quality,
91
+ ...normalizedOutputOptions,
92
+ });
93
+ asset.type = format;
94
+ let buffer = await imagePipeline.toBuffer();
95
+ asset.setBuffer(buffer);
96
+ }
97
+ return [asset];
98
+ },
99
+ });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const SHARP_RANGE = '^0.31.1';
4
+ // This is used to load sharp on the main thread, which prevents errors when worker threads exit
5
+ // See https://sharp.pixelplumbing.com/install#worker-threads and https://github.com/lovell/sharp/issues/2263
6
+ module.exports = async (packageManager, filePath, shouldAutoInstall, shouldReturn) => {
7
+ let sharp = await packageManager.require('sharp', filePath, {
8
+ range: SHARP_RANGE,
9
+ shouldAutoInstall: shouldAutoInstall,
10
+ });
11
+ if (shouldReturn) {
12
+ return sharp;
13
+ }
14
+ };