@adonis-agora/media 0.21.0 → 0.22.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.
- package/CHANGELOG.md +33 -0
- package/README.md +38 -5
- package/dist/providers/media_provider.d.ts.map +1 -1
- package/dist/providers/media_provider.js +7 -0
- package/dist/providers/media_provider.js.map +1 -1
- package/dist/src/define_config.d.ts +20 -1
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/delivery.d.ts +55 -1
- package/dist/src/delivery.d.ts.map +1 -1
- package/dist/src/delivery.js +19 -1
- package/dist/src/delivery.js.map +1 -1
- package/dist/src/delivery_signing.d.ts +70 -0
- package/dist/src/delivery_signing.d.ts.map +1 -0
- package/dist/src/delivery_signing.js +82 -0
- package/dist/src/delivery_signing.js.map +1 -0
- package/dist/src/errors.d.ts +28 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +47 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/image_processor.d.ts +57 -1
- package/dist/src/image_processor.d.ts.map +1 -1
- package/dist/src/image_processor.js +16 -1
- package/dist/src/image_processor.js.map +1 -1
- package/dist/src/index.d.ts +7 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/media_collection.d.ts +27 -0
- package/dist/src/media_collection.d.ts.map +1 -1
- package/dist/src/media_collection.js +26 -1
- package/dist/src/media_collection.js.map +1 -1
- package/dist/src/media_library.d.ts +114 -2
- package/dist/src/media_library.d.ts.map +1 -1
- package/dist/src/media_library.js +361 -16
- package/dist/src/media_library.js.map +1 -1
- package/dist/src/media_manager.d.ts +8 -1
- package/dist/src/media_manager.d.ts.map +1 -1
- package/dist/src/media_manager.js +5 -0
- package/dist/src/media_manager.js.map +1 -1
- package/dist/src/processors/sharp.d.ts +7 -2
- package/dist/src/processors/sharp.d.ts.map +1 -1
- package/dist/src/processors/sharp.js +105 -6
- package/dist/src/processors/sharp.js.map +1 -1
- package/dist/src/responsive_image.d.ts +88 -0
- package/dist/src/responsive_image.d.ts.map +1 -0
- package/dist/src/responsive_image.js +109 -0
- package/dist/src/responsive_image.js.map +1 -0
- package/dist/src/testing/fake_image_processor.d.ts +3 -2
- package/dist/src/testing/fake_image_processor.d.ts.map +1 -1
- package/dist/src/testing/fake_image_processor.js +2 -2
- package/dist/src/testing/fake_image_processor.js.map +1 -1
- package/package.json +2 -2
package/dist/src/errors.d.ts
CHANGED
|
@@ -231,4 +231,32 @@ export declare class UploadSessionStoreNotConfiguredError extends Error {
|
|
|
231
231
|
readonly code = "E_MEDIA_UPLOAD_SESSION_STORE_NOT_CONFIGURED";
|
|
232
232
|
constructor(name: string);
|
|
233
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* A resize was requested at a width or quality outside `delivery.images` — the whitelist that stops
|
|
236
|
+
* a client from filling the storage with one cached variant per arbitrary size. Map it to a 400.
|
|
237
|
+
*/
|
|
238
|
+
export declare class ImageSizeNotAllowedError extends Error {
|
|
239
|
+
readonly field: 'width' | 'quality';
|
|
240
|
+
readonly value: unknown;
|
|
241
|
+
readonly allowed: readonly number[];
|
|
242
|
+
readonly code = "E_MEDIA_IMAGE_SIZE_NOT_ALLOWED";
|
|
243
|
+
constructor(field: 'width' | 'quality', value: unknown, allowed: readonly number[]);
|
|
244
|
+
}
|
|
245
|
+
/** A resize (`?w=`) was requested for a record that is not a raster image. Map it to a 400. */
|
|
246
|
+
export declare class NotAnImageError extends Error {
|
|
247
|
+
readonly mediaId: string;
|
|
248
|
+
readonly mimeType: string;
|
|
249
|
+
readonly code = "E_MEDIA_NOT_AN_IMAGE";
|
|
250
|
+
constructor(mediaId: string, mimeType: string);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* A delivery request failed signature checking (`delivery.signing`): it carries no signature while
|
|
254
|
+
* one is required (`missing`), the signature does not match the request (`invalid` — any
|
|
255
|
+
* parameter changed, or a URL signed with another key), or it expired (`expired`). Map it to a 403.
|
|
256
|
+
*/
|
|
257
|
+
export declare class DeliverySignatureError extends Error {
|
|
258
|
+
readonly reason: 'missing' | 'invalid' | 'expired';
|
|
259
|
+
readonly code = "E_MEDIA_DELIVERY_SIGNATURE";
|
|
260
|
+
constructor(reason: 'missing' | 'invalid' | 'expired');
|
|
261
|
+
}
|
|
234
262
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/src/errors.js
CHANGED
|
@@ -342,4 +342,51 @@ export class UploadSessionStoreNotConfiguredError extends Error {
|
|
|
342
342
|
this.name = 'UploadSessionStoreNotConfiguredError';
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* A resize was requested at a width or quality outside `delivery.images` — the whitelist that stops
|
|
347
|
+
* a client from filling the storage with one cached variant per arbitrary size. Map it to a 400.
|
|
348
|
+
*/
|
|
349
|
+
export class ImageSizeNotAllowedError extends Error {
|
|
350
|
+
field;
|
|
351
|
+
value;
|
|
352
|
+
allowed;
|
|
353
|
+
code = 'E_MEDIA_IMAGE_SIZE_NOT_ALLOWED';
|
|
354
|
+
constructor(field, value, allowed) {
|
|
355
|
+
super(`Image ${field} ${JSON.stringify(value)} is not allowed. Allowed: ${allowed.join(', ')} (delivery.images.${field === 'width' ? 'widths' : 'qualities'}).`);
|
|
356
|
+
this.field = field;
|
|
357
|
+
this.value = value;
|
|
358
|
+
this.allowed = allowed;
|
|
359
|
+
this.name = 'ImageSizeNotAllowedError';
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/** A resize (`?w=`) was requested for a record that is not a raster image. Map it to a 400. */
|
|
363
|
+
export class NotAnImageError extends Error {
|
|
364
|
+
mediaId;
|
|
365
|
+
mimeType;
|
|
366
|
+
code = 'E_MEDIA_NOT_AN_IMAGE';
|
|
367
|
+
constructor(mediaId, mimeType) {
|
|
368
|
+
super(`Media "${mediaId}" is "${mimeType}", not an image that can be resized.`);
|
|
369
|
+
this.mediaId = mediaId;
|
|
370
|
+
this.mimeType = mimeType;
|
|
371
|
+
this.name = 'NotAnImageError';
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* A delivery request failed signature checking (`delivery.signing`): it carries no signature while
|
|
376
|
+
* one is required (`missing`), the signature does not match the request (`invalid` — any
|
|
377
|
+
* parameter changed, or a URL signed with another key), or it expired (`expired`). Map it to a 403.
|
|
378
|
+
*/
|
|
379
|
+
export class DeliverySignatureError extends Error {
|
|
380
|
+
reason;
|
|
381
|
+
code = 'E_MEDIA_DELIVERY_SIGNATURE';
|
|
382
|
+
constructor(reason) {
|
|
383
|
+
super(reason === 'missing'
|
|
384
|
+
? 'This media URL must be signed (delivery.signing.required).'
|
|
385
|
+
: reason === 'expired'
|
|
386
|
+
? 'This media URL has expired.'
|
|
387
|
+
: 'This media URL has an invalid signature.');
|
|
388
|
+
this.reason = reason;
|
|
389
|
+
this.name = 'DeliverySignatureError';
|
|
390
|
+
}
|
|
391
|
+
}
|
|
345
392
|
//# sourceMappingURL=errors.js.map
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAGjC,UAAU;IACV,QAAQ;IACR,QAAQ;IAJV,IAAI,GAAG,0BAA0B,CAAC;IAC3C,YACW,UAAkB,EAClB,QAAgB,EAChB,QAA2B;QAEpC,KAAK,CACH,cAAc,QAAQ,mCAAmC,UAAU,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzG,CAAC;0BANO,UAAU;wBACV,QAAQ;wBACR,QAAQ;QAKjB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAGtC,UAAU;IACV,gBAAgB;IAChB,gBAAgB;IAJlB,IAAI,GAAG,+BAA+B,CAAC;IAChD,YACW,UAAkB,EAClB,gBAAwB,EACxB,gBAAwB,EACjC,QAA2B;QAE3B,KAAK,CACH,+BAA+B,gBAAgB,2DAA2D,gBAAgB,kBAAkB,UAAU,cAAc,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5L,CAAC;0BAPO,UAAU;gCACV,gBAAgB;gCAChB,gBAAgB;QAMzB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAG/C,UAAU;IACV,gBAAgB;IAChB,QAAQ;IAJV,IAAI,GAAG,wCAAwC,CAAC;IACzD,YACW,UAAkB,EAClB,gBAAoC,EACpC,QAA2B;QAEpC,KAAK,CACH,gDACE,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,gBAAgB,GAAG,CAAC,CAAC,CAAC,EACjE,iBAAiB,UAAU,8CAA8C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,4EAA4E,CACzK,CAAC;0BARO,UAAU;gCACV,gBAAgB;wBAChB,QAAQ;QAOjB,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;IAClD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,yBAAyB,CAAC;IAC1C,YAAY,IAAY;QACtB,KAAK,CACH,wBAAwB,IAAI,yRAAyR,CACtT,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,0BAA0B,CAAC;IAC3C,YAAY,EAAU;QACpB,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,wBAAwB,CAAC;IACzC,YAAY,IAAY,EAAE,GAAW;QACnC,KAAK,CACH,qBAAqB,GAAG,cAAc,IAAI,+JAA+J,CAC1M,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,gCAAgC,CAAC;IACjD,YAAY,UAAkB,EAAE,UAAkB;QAChD,KAAK,CAAC,eAAe,UAAU,oCAAoC,UAAU,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,iCAAiC,CAAC;IAClD,YAAY,UAAkB,EAAE,WAAmB;QACjD,KAAK,CAAC,gBAAgB,WAAW,oCAAoC,UAAU,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAGpC,OAAO;IACP,WAAW;IAHb,IAAI,GAAG,6BAA6B,CAAC;IAC9C,YACW,OAAe,EACf,WAAmB;QAE5B,KAAK,CACH,eAAe,WAAW,eAAe,OAAO,iIAAiI,OAAO,OAAO,WAAW,kDAAkD,CAC7P,CAAC;uBALO,OAAO;2BACP,WAAW;QAKpB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,GAAG,8BAA8B,CAAC;IAC/C,YAAY,UAAkB,EAAE,IAAY;QAC1C,KAAK,CACH,eAAe,UAAU,4DAA4D,IAAI,0HAA0H,CACpN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAG5C,WAAW;IACX,WAAW;IAHb,IAAI,GAAG,qCAAqC,CAAC;IACtD,YACW,WAAmB,EACnB,WAAmB,EAC5B,IAAa;QAEb,KAAK,CACH,gBAAgB,WAAW,cAAc,WAAW,4CAA4C,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzH,CAAC;2BANO,WAAW;2BACX,WAAW;QAMpB,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,GAAG,oCAAoC,CAAC;IACrD,YAAY,WAAmB,EAAE,MAAc;QAC7C,KAAK,CAAC,gBAAgB,WAAW,iCAAiC,MAAM,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,GAAG,qCAAqC,CAAC;IACtD,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CACH,eAAe,UAAU,eAAe,OAAO,iGAAiG,UAAU,YAAY,CACvK,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,gCAAgC,CAAC;IACjD;;OAEG;IACH,YACE,OAAe,EACf,IAAI,GAAG,kQAAkQ;QAEzQ,KAAK,CAAC,4CAA4C,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG/B,MAAM;IACN,QAAQ;IACR,MAAM;IAJR,IAAI,GAAG,uBAAuB,CAAC;IACxC,YACW,MAAc,EACd,QAAuB,EACvB,MAAc;QAEvB,KAAK,CACH,GAAG,MAAM,UAAU,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,QAAQ,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5H,CAAC;sBANO,MAAM;wBACN,QAAQ;sBACR,MAAM;QAKf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,iCAAiC,CAAC;IAClD;QACE,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,2BAA2B,CAAC;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,8BAA8B,CAAC;IAC/C,YAAY,IAAY,EAAE,SAAS,GAAG,yBAAyB;QAC7D,KAAK,CACH,SAAS,IAAI,sBAAsB,SAAS,oFAAoF,CACjI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,kCAAkC,CAAC;IACnD,YAAY,EAAU;QACpB,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAGvC,QAAQ;IACR,QAAQ;IAHV,IAAI,GAAG,gCAAgC,CAAC;IACjD,YACW,QAAgB,EAChB,QAAgB;QAEzB,KAAK,CAAC,oCAAoC,QAAQ,cAAc,QAAQ,EAAE,CAAC,CAAC;wBAHnE,QAAQ;wBACR,QAAQ;QAGjB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,gCAAgC,CAAC;IACjD,YAAY,EAAU;QACpB,KAAK,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,0BAA0B,CAAC;IAC3C,YAAY,MAAc;QACxB,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,mHAAmH;AACnH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAGvC,UAAU;IACV,UAAU;IAHZ,IAAI,GAAG,kCAAkC,CAAC;IACnD,YACW,UAAkB,EAClB,UAAkB;QAE3B,KAAK,CACH,eAAe,UAAU,uCAAuC,UAAU,mFAAmF,CAC9J,CAAC;0BALO,UAAU;0BACV,UAAU;QAKnB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAGxC,SAAS;IACT,YAAY;IAHd,IAAI,GAAG,iCAAiC,CAAC;IAClD,YACW,SAAiB,EACjB,YAA+B;QAExC,KAAK,CACH,kCAAkC,SAAS,yBAAyB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gGAAgG,CAC5L,CAAC;yBALO,SAAS;4BACT,YAAY;QAKrB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEvB,QAAQ;IADpB,IAAI,GAAG,0BAA0B,CAAC;IAC3C,YAAqB,QAAgB;QACnC,KAAK,CACH,cAAc,QAAQ,sEAAsE;YAC1F,+EAA+E,CAClF,CAAC;wBAJiB,QAAQ;QAK3B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAAG,+BAA+B,CAAC;IAChD;QACE,KAAK,CACH,qNAAqN,CACtN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAClD,IAAI,GAAG,kCAAkC,CAAC;IACnD;QACE,KAAK,CACH,wNAAwN,CACzN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,8BAA8B,CAAC;IAC/C,YAAY,IAAY;QACtB,KAAK,CACH,+BAA+B,IAAI,gEAAgE,IAAI,2CAA2C,IAAI,sEAAsE,CAC7N,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,oCAAqC,SAAQ,KAAK;IACpD,IAAI,GAAG,6CAA6C,CAAC;IAC9D,YAAY,IAAY;QACtB,KAAK,CACH,iDAAiD,IAAI,oGAAoG,IAAI,2CAA2C,IAAI,sFAAsF,CACnS,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sCAAsC,CAAC;IACrD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The part of an image that must survive a crop, as fractions of the displayed image (EXIF
|
|
3
|
+
* orientation applied): `{ x: 0, y: 0 }` is the top-left corner, `{ x: 0.5, y: 0.5 }` the centre.
|
|
4
|
+
* Stored per record in `customProperties.focalPoint` (`media.library.setFocalPoint()`).
|
|
5
|
+
*/
|
|
6
|
+
export interface FocalPoint {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Where a cropping preset keeps the image: a gravity (`'top'`, `'left bottom'`, …), or a content
|
|
12
|
+
* strategy — `'attention'` keeps the most salient region (skin tones, saturation, luminance),
|
|
13
|
+
* `'entropy'` the most detailed one. A record's focal point, when set, wins over all of these.
|
|
14
|
+
*/
|
|
15
|
+
export type CropPosition = 'centre' | 'center' | 'top' | 'right top' | 'right' | 'right bottom' | 'bottom' | 'left bottom' | 'left' | 'left top' | 'attention' | 'entropy';
|
|
1
16
|
export interface ConversionPreset {
|
|
2
17
|
name: string;
|
|
3
18
|
width?: number;
|
|
@@ -10,6 +25,20 @@ export interface ConversionPreset {
|
|
|
10
25
|
* small `width` for a blurred low-res variant served as a file.
|
|
11
26
|
*/
|
|
12
27
|
blur?: number;
|
|
28
|
+
/** Never enlarge: an original narrower than `width` keeps its own size. */
|
|
29
|
+
withoutEnlargement?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Skip this conversion when it would not be narrower than the original — no same-size copy is
|
|
32
|
+
* stored; the conversion is recorded with `meta.skipped` and no artifact. What `responsive`
|
|
33
|
+
* collections use, so a 600px upload does not get 960/1280/1920 "versions" of itself. Needs a
|
|
34
|
+
* processor that implements {@link ImageProcessor.dimensions} (sharp does); otherwise ignored.
|
|
35
|
+
*/
|
|
36
|
+
onlyDownscale?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* What a crop (`fit: 'cover'` with `width` and `height`) keeps. Default `'centre'`. A record's
|
|
39
|
+
* focal point overrides it.
|
|
40
|
+
*/
|
|
41
|
+
position?: CropPosition;
|
|
13
42
|
/** Generate eagerly on attach instead of lazily on first access. */
|
|
14
43
|
eager?: boolean;
|
|
15
44
|
}
|
|
@@ -18,9 +47,36 @@ export interface ConversionResult {
|
|
|
18
47
|
/** Actual output format/extension (e.g. `webp`). */
|
|
19
48
|
format: string;
|
|
20
49
|
contentType: string;
|
|
50
|
+
/**
|
|
51
|
+
* Output dimensions in px, when the processor knows them. Persisted as the conversion's
|
|
52
|
+
* `meta.width`/`meta.height`, which is what lets {@link MediaLibrary.image} build a `srcset`.
|
|
53
|
+
*/
|
|
54
|
+
width?: number;
|
|
55
|
+
height?: number;
|
|
56
|
+
}
|
|
57
|
+
/** Per-record context for a conversion. */
|
|
58
|
+
export interface ConvertOptions {
|
|
59
|
+
/** The record's focal point: a crop keeps it as close to the centre as the image allows. */
|
|
60
|
+
focalPoint?: FocalPoint | undefined;
|
|
21
61
|
}
|
|
22
62
|
/** Pluggable image transform engine (default impl: `@adonis-agora/media/processors/sharp`). */
|
|
23
63
|
export interface ImageProcessor {
|
|
24
|
-
convert(input: Buffer, preset: ConversionPreset): Promise<ConversionResult>;
|
|
64
|
+
convert(input: Buffer, preset: ConversionPreset, options?: ConvertOptions): Promise<ConversionResult>;
|
|
65
|
+
/** Displayed size of an image (EXIF orientation applied), if it can be read. Optional. */
|
|
66
|
+
dimensions?(input: Buffer): Promise<{
|
|
67
|
+
width: number;
|
|
68
|
+
height: number;
|
|
69
|
+
} | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* The image without its metadata (EXIF — GPS position, camera, timestamps —, XMP, IPTC), same
|
|
72
|
+
* format, orientation baked into the pixels. `undefined` when there is nothing to strip (or the
|
|
73
|
+
* format is not handled): the original is then left untouched. Optional; what
|
|
74
|
+
* `stripMetadata: true` collections call.
|
|
75
|
+
*/
|
|
76
|
+
stripMetadata?(input: Buffer): Promise<Buffer | undefined>;
|
|
25
77
|
}
|
|
78
|
+
/** Does this preset crop (and so care about a focal point / position)? */
|
|
79
|
+
export declare function presetCrops(preset: ConversionPreset): boolean;
|
|
80
|
+
/** The record's focal point, if `customProperties.focalPoint` holds a valid one. */
|
|
81
|
+
export declare function focalPointOf(customProperties: Record<string, unknown>): FocalPoint | undefined;
|
|
26
82
|
//# sourceMappingURL=image_processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_processor.d.ts","sourceRoot":"","sources":["../../src/image_processor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"image_processor.d.ts","sourceRoot":"","sources":["../../src/image_processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,WAAW,GACX,OAAO,GACP,cAAc,GACd,QAAQ,GACR,aAAa,GACb,MAAM,GACN,UAAU,GACV,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACrC;AAED,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,OAAO,CACL,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,0FAA0F;IAC1F,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IACnF;;;;;OAKG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5D;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE7D;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,SAAS,CAO9F"}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/** Does this preset crop (and so care about a focal point / position)? */
|
|
2
|
+
export function presetCrops(preset) {
|
|
3
|
+
return Boolean(preset.width && preset.height && (preset.fit ?? 'cover') === 'cover');
|
|
4
|
+
}
|
|
5
|
+
/** The record's focal point, if `customProperties.focalPoint` holds a valid one. */
|
|
6
|
+
export function focalPointOf(customProperties) {
|
|
7
|
+
const point = customProperties.focalPoint;
|
|
8
|
+
if (!point || typeof point !== 'object')
|
|
9
|
+
return undefined;
|
|
10
|
+
const { x, y } = point;
|
|
11
|
+
if (typeof x !== 'number' || typeof y !== 'number')
|
|
12
|
+
return undefined;
|
|
13
|
+
if (!(x >= 0 && x <= 1 && y >= 0 && y <= 1))
|
|
14
|
+
return undefined;
|
|
15
|
+
return { x, y };
|
|
16
|
+
}
|
|
2
17
|
//# sourceMappingURL=image_processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_processor.js","sourceRoot":"","sources":["../../src/image_processor.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"image_processor.js","sourceRoot":"","sources":["../../src/image_processor.ts"],"names":[],"mappings":"AAgGA,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,gBAAyC;IACpE,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAsD,CAAC;IACtF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ export type { ContentVerdict } from './content_type.js';
|
|
|
5
5
|
export { detectMimeType, isClosedSignatureWhitelist, isDetectableMimeType, SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist, } from './content_type.js';
|
|
6
6
|
export type { DiskFactory, ImageProcessorFactory, InferConversions, InferTransformers, LucidStoreConfig, LucidUploadSessionStoreConfig, MediaConfig, MediaDeliveryConfig, MediaDirectUploadConfig, MediaResumableConfig, MediaUploadsConfig, S3Credentials, S3DiskConfig, StoreContext, StoreFactory, UploadMode, UploadSessionStoreContext, UploadSessionStoreFactory, } from './define_config.js';
|
|
7
7
|
export { defineConfig, disks, engines, processors, stores, transformers, uploadSessions, } from './define_config.js';
|
|
8
|
-
export type { DeliveryMode, DeliveryRequest, DeliveryResult, MediaDeliveryHandlerOptions, ResolvedDeliveryMode, } from './delivery.js';
|
|
9
|
-
export { DEFAULT_DELIVERY_SIGNED_TTL_SECONDS, MediaDeliveryHandler, resolveDeliveryMode, } from './delivery.js';
|
|
8
|
+
export type { DeliveryMode, DeliveryRequest, DeliveryResult, MediaDeliveryHandlerOptions, OnDemandImageConfig, ResolvedDeliveryMode, } from './delivery.js';
|
|
9
|
+
export { DEFAULT_DELIVERY_SIGNED_TTL_SECONDS, DEFAULT_IMAGE_QUALITIES, DEFAULT_IMAGE_WIDTHS, MediaDeliveryHandler, resolveDeliveryMode, } from './delivery.js';
|
|
10
|
+
export type { DeliverySigningConfig } from './delivery_signing.js';
|
|
11
|
+
export { DEFAULT_DELIVERY_SIGNING_TTL_SECONDS } from './delivery_signing.js';
|
|
10
12
|
export type { AttachmentCreatePayload, AttachmentDeletePayload, AttachPayload, ConversionPayload, DeletePayload, MediaDiagnosticEvent, MediaDiagnosticPayloads, UploadAbortPayload, UploadCompletePayload, UploadProgressPayload, UploadStartPayload, } from './diagnostics.js';
|
|
11
13
|
export type { DirectUploadCreatedSession, DirectUploadInitiateInput, DirectUploadManagerOptions, DirectUploadPartUrl, DirectUploadStatus, } from './direct_upload.js';
|
|
12
14
|
export { DEFAULT_DIRECT_PART_SIZE, DirectUploadManager, MAX_DIRECT_PARTS, MIN_DIRECT_PART_SIZE, } from './direct_upload.js';
|
|
@@ -16,14 +18,14 @@ export type { DriveBackedResolverOptions, DriveManagerLike, DriveServiceModule,
|
|
|
16
18
|
export { createDriveBackedResolver } from './disks/drive.js';
|
|
17
19
|
export type { PresignS3UrlInput, SigV4Credentials } from './disks/sigv4.js';
|
|
18
20
|
export { presignS3Url } from './disks/sigv4.js';
|
|
19
|
-
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
21
|
+
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
20
22
|
export { isExtendedDisk } from './extended_disk.js';
|
|
21
23
|
export { sanitizeFileName } from './file_name.js';
|
|
22
24
|
export type { HlsDeliveryHandlerOptions, HlsDeliveryRequest, HlsDeliveryResult, HlsFileRef, HlsUrlBuilder, } from './hls/delivery.js';
|
|
23
25
|
export { HlsDeliveryHandler } from './hls/delivery.js';
|
|
24
26
|
export type { HlsUriRef, HlsUriRewriter } from './hls/playlist.js';
|
|
25
27
|
export { classifyUri, HLS_PLAYLIST_CONTENT_TYPE, HLS_SEGMENT_CONTENT_TYPE, hlsArtifactContentType, isRelativeUri, resolvePackagePath, rewriteHlsPlaylist, } from './hls/playlist.js';
|
|
26
|
-
export type { ConversionPreset, ConversionResult, ImageProcessor } from './image_processor.js';
|
|
28
|
+
export type { ConversionPreset, ConversionResult, ConvertOptions, CropPosition, FocalPoint, ImageProcessor, } from './image_processor.js';
|
|
27
29
|
export type { MediaCollectionConfig } from './media_collection.js';
|
|
28
30
|
export { MediaCollectionRegistry } from './media_collection.js';
|
|
29
31
|
export type { AttachExistingInput, AttachInput, DeliverOptions, MediaLibraryOptions, MediaSignedUrlOptions, OwnerMediaBinding, } from './media_library.js';
|
|
@@ -34,6 +36,7 @@ export type { MediaConversion, MediaRecord } from './media_record.js';
|
|
|
34
36
|
export type { MediaCursor, MediaListOptions, MediaListPage, MediaStore } from './media_store.js';
|
|
35
37
|
export { clampMediaListLimit, DEFAULT_MEDIA_LIST_LIMIT, decodeMediaCursor, encodeMediaCursor, MAX_MEDIA_LIST_LIMIT, } from './media_store.js';
|
|
36
38
|
export { isMultipartCapable } from './multipart.js';
|
|
39
|
+
export type { ResponsiveImage, ResponsiveImageOptions } from './responsive_image.js';
|
|
37
40
|
export type { CreateUploadInput, ResumableUploadManagerOptions, UploadSession, UploadSessionListFilter, UploadSessionStore, } from './resumable_upload.js';
|
|
38
41
|
export { ResumableUploadManager } from './resumable_upload.js';
|
|
39
42
|
export type { StorageManagerOptions } from './storage_manager.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EACV,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mCAAmC,EACnC,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -7,7 +7,8 @@ export { Attachment, AttachmentManager, } from './attachment.js';
|
|
|
7
7
|
export { detectMimeType, isClosedSignatureWhitelist, isDetectableMimeType, SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist, } from './content_type.js';
|
|
8
8
|
export { defineConfig, disks, engines, processors, stores, transformers, uploadSessions, } from './define_config.js';
|
|
9
9
|
// Configurable delivery (the read-side counterpart to the upload modes)
|
|
10
|
-
export { DEFAULT_DELIVERY_SIGNED_TTL_SECONDS, MediaDeliveryHandler, resolveDeliveryMode, } from './delivery.js';
|
|
10
|
+
export { DEFAULT_DELIVERY_SIGNED_TTL_SECONDS, DEFAULT_IMAGE_QUALITIES, DEFAULT_IMAGE_WIDTHS, MediaDeliveryHandler, resolveDeliveryMode, } from './delivery.js';
|
|
11
|
+
export { DEFAULT_DELIVERY_SIGNING_TTL_SECONDS } from './delivery_signing.js';
|
|
11
12
|
// Session-backed direct uploads (browser→S3 multipart with a persisted, resumable session)
|
|
12
13
|
export { DEFAULT_DIRECT_PART_SIZE, DirectUploadManager, MAX_DIRECT_PARTS, MIN_DIRECT_PART_SIZE, } from './direct_upload.js';
|
|
13
14
|
export { DirectUploadHandler } from './direct_upload_handler.js';
|
|
@@ -17,7 +18,7 @@ export { createDriveBackedResolver } from './disks/drive.js';
|
|
|
17
18
|
// wiring presigned URLs outside the bundled disk)
|
|
18
19
|
export { presignS3Url } from './disks/sigv4.js';
|
|
19
20
|
// Errors
|
|
20
|
-
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
21
|
+
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
21
22
|
export { isExtendedDisk } from './extended_disk.js';
|
|
22
23
|
// Validates a client-supplied upload file name before it reaches a storage key; the same guard the
|
|
23
24
|
// built-in `keyFor` defaults and `MediaLibrary#layoutPath` run every file name through.
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,4FAA4F;AAC5F,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,EACL,UAAU,EACV,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EACL,YAAY,EACZ,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,4FAA4F;AAC5F,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,EACL,UAAU,EACV,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EACL,YAAY,EACZ,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAS5B,wEAAwE;AACxE,OAAO,EACL,mCAAmC,EACnC,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAsB7E,2FAA2F;AAC3F,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMjE,qGAAqG;AACrG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,6FAA6F;AAC7F,kDAAkD;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,SAAS;AACT,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,kCAAkC,EAClC,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,oCAAoC,EACpC,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,mGAAmG;AACnG,wFAAwF;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,6EAA6E;AAC7E,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAShE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AASpD,0BAA0B;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gGAAgG;AAChG,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAa9E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAOpG,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAMtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA8B3E,oDAAoD;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { ConversionPreset } from './image_processor.js';
|
|
2
2
|
import type { Transformer } from './transformer.js';
|
|
3
|
+
/** Widths a `responsive: true` collection generates (those below the original's width). */
|
|
4
|
+
export declare const DEFAULT_RESPONSIVE_WIDTHS: readonly number[];
|
|
5
|
+
/** `responsive` options. */
|
|
6
|
+
export interface ResponsiveImagesConfig {
|
|
7
|
+
/** Widths to generate. Default {@link DEFAULT_RESPONSIVE_WIDTHS}. */
|
|
8
|
+
widths?: readonly number[];
|
|
9
|
+
/** Output format. Default `webp`. */
|
|
10
|
+
format?: ConversionPreset['format'];
|
|
11
|
+
/** Output quality. */
|
|
12
|
+
quality?: number;
|
|
13
|
+
}
|
|
3
14
|
export interface MediaCollectionConfig {
|
|
4
15
|
name: string;
|
|
5
16
|
/** Single-file collection: attaching replaces any existing media. */
|
|
@@ -16,6 +27,22 @@ export interface MediaCollectionConfig {
|
|
|
16
27
|
* namespace — a collision throws {@link TransformerConflictError} at construction.
|
|
17
28
|
*/
|
|
18
29
|
transformers?: Transformer[];
|
|
30
|
+
/**
|
|
31
|
+
* Responsive images without hand-written presets (spatie's `withResponsiveImages()`): eager
|
|
32
|
+
* presets `responsive-<width>` at each width below the original's (wider ones are skipped, not
|
|
33
|
+
* stored as same-size copies), plus `transformers.placeholder()` if the collection has none —
|
|
34
|
+
* everything `media.library.image(id)` needs for a `srcset`, the intrinsic size and the blur-up.
|
|
35
|
+
*/
|
|
36
|
+
responsive?: boolean | ResponsiveImagesConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Strip the original's metadata on attach — EXIF (a phone photo carries the GPS position where
|
|
39
|
+
* it was taken, the device, the time), XMP and IPTC — keeping its format, colour profile and
|
|
40
|
+
* orientation (baked into the pixels). Conversions never carry metadata; this covers the
|
|
41
|
+
* original, which is otherwise served exactly as uploaded. The original is downloaded and
|
|
42
|
+
* rewritten (lossy formats re-encoded at high quality), so it costs a round trip per attach —
|
|
43
|
+
* also on `attachExisting`. Only images with something to strip are rewritten.
|
|
44
|
+
*/
|
|
45
|
+
stripMetadata?: boolean;
|
|
19
46
|
}
|
|
20
47
|
export declare class MediaCollectionRegistry {
|
|
21
48
|
private readonly map;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_collection.d.ts","sourceRoot":"","sources":["../../src/media_collection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"media_collection.d.ts","sourceRoot":"","sources":["../../src/media_collection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAsC,CAAC;AAE9F,4BAA4B;AAC5B,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,qCAAqC;IACrC,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC9C;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4C;IAEhE,YAAY,WAAW,GAAE,SAAS,qBAAqB,EAAO,EAM7D;IAED,mEAAmE;IACnE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAEvC;CACF"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { TransformerConflictError } from './errors.js';
|
|
2
|
+
import { PlaceholderTransformer } from './transformers/placeholder.js';
|
|
3
|
+
/** Widths a `responsive: true` collection generates (those below the original's width). */
|
|
4
|
+
export const DEFAULT_RESPONSIVE_WIDTHS = [320, 640, 960, 1280, 1920, 2560];
|
|
2
5
|
export class MediaCollectionRegistry {
|
|
3
6
|
map = new Map();
|
|
4
7
|
constructor(collections = []) {
|
|
5
|
-
for (const
|
|
8
|
+
for (const config of collections) {
|
|
9
|
+
const c = withResponsive(config);
|
|
6
10
|
assertDistinctDerivativeNames(c);
|
|
7
11
|
this.map.set(c.name, c);
|
|
8
12
|
}
|
|
@@ -31,4 +35,25 @@ function assertDistinctDerivativeNames(collection) {
|
|
|
31
35
|
seen.add(transformer.name);
|
|
32
36
|
}
|
|
33
37
|
}
|
|
38
|
+
/** Expand `responsive` into its presets (and the placeholder, when missing). */
|
|
39
|
+
function withResponsive(collection) {
|
|
40
|
+
if (!collection.responsive)
|
|
41
|
+
return collection;
|
|
42
|
+
const options = collection.responsive === true ? {} : collection.responsive;
|
|
43
|
+
const presets = [...(options.widths ?? DEFAULT_RESPONSIVE_WIDTHS)].map((width) => ({
|
|
44
|
+
name: `responsive-${width}`,
|
|
45
|
+
width,
|
|
46
|
+
eager: true,
|
|
47
|
+
onlyDownscale: true,
|
|
48
|
+
...(options.format ? { format: options.format } : {}),
|
|
49
|
+
...(options.quality !== undefined ? { quality: options.quality } : {}),
|
|
50
|
+
}));
|
|
51
|
+
const transformers = collection.transformers ?? [];
|
|
52
|
+
const hasPlaceholder = transformers.some((t) => t instanceof PlaceholderTransformer);
|
|
53
|
+
return {
|
|
54
|
+
...collection,
|
|
55
|
+
conversions: [...(collection.conversions ?? []), ...presets],
|
|
56
|
+
transformers: hasPlaceholder ? transformers : [...transformers, new PlaceholderTransformer()],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
34
59
|
//# sourceMappingURL=media_collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_collection.js","sourceRoot":"","sources":["../../src/media_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"media_collection.js","sourceRoot":"","sources":["../../src/media_collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
|
-
import { type DeliveryMode, type DeliveryResult } from './delivery.js';
|
|
3
|
-
import type
|
|
2
|
+
import { type DeliveryMode, type DeliveryResult, type OnDemandImageConfig } from './delivery.js';
|
|
3
|
+
import { type DeliverySigningConfig } from './delivery_signing.js';
|
|
4
|
+
import { type FocalPoint, type ImageProcessor } from './image_processor.js';
|
|
4
5
|
import { type MediaCollectionConfig, MediaCollectionRegistry } from './media_collection.js';
|
|
5
6
|
import type { MediaRecord } from './media_record.js';
|
|
6
7
|
import type { MediaStore } from './media_store.js';
|
|
8
|
+
import { type ResponsiveImage, type ResponsiveImageOptions } from './responsive_image.js';
|
|
7
9
|
import type { StorageManager } from './storage_manager.js';
|
|
8
10
|
import type { SignedUrlOptions } from './types.js';
|
|
9
11
|
export interface MediaLibraryOptions {
|
|
@@ -22,6 +24,12 @@ export interface MediaLibraryOptions {
|
|
|
22
24
|
deliveryMode?: DeliveryMode;
|
|
23
25
|
/** Signed-URL lifetime when delivery resolves to `signed`. Default 300s. */
|
|
24
26
|
deliverySignedTtlSeconds?: number;
|
|
27
|
+
/** On-demand resizing for `deliver(id, { width })` (`delivery.images`). */
|
|
28
|
+
deliveryImages?: OnDemandImageConfig;
|
|
29
|
+
/** Signed delivery URLs (`delivery.signing`). */
|
|
30
|
+
deliverySigning?: DeliverySigningConfig;
|
|
31
|
+
/** Route the app mounts `MediaDeliveryHandler` on, with `:id` (`delivery.path`). Default `/media/:id`. */
|
|
32
|
+
deliveryPath?: string;
|
|
25
33
|
}
|
|
26
34
|
export interface AttachInput {
|
|
27
35
|
ownerType: string;
|
|
@@ -88,6 +96,20 @@ export interface DeliverOptions {
|
|
|
88
96
|
mode?: DeliveryMode | undefined;
|
|
89
97
|
/** Override the configured signed-URL lifetime, when the resolved mode is `signed`. */
|
|
90
98
|
signedTtlSeconds?: number | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Deliver the image resized to this width (see {@link MediaLibrary.resized}). Wins over
|
|
101
|
+
* `conversion`. Strings (a query-string value) are parsed and validated.
|
|
102
|
+
*/
|
|
103
|
+
width?: number | string | undefined;
|
|
104
|
+
/** Quality of the resized image; defaults to the first of `delivery.images.qualities`. */
|
|
105
|
+
quality?: number | string | undefined;
|
|
106
|
+
/** The request's `Accept` header, to negotiate the resized image's format. */
|
|
107
|
+
accept?: string | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* The request was authorized by a valid delivery signature (`MediaDeliveryHandler` sets this):
|
|
110
|
+
* any `width`/`quality` is served, not just the `delivery.images` whitelist — the app chose it.
|
|
111
|
+
*/
|
|
112
|
+
trusted?: boolean | undefined;
|
|
91
113
|
}
|
|
92
114
|
/** Options for {@link MediaLibrary.signedUrl}: the disk's response headers, plus a conversion to sign instead of the original. */
|
|
93
115
|
export interface MediaSignedUrlOptions extends Omit<SignedUrlOptions, 'expiresIn'> {
|
|
@@ -125,6 +147,9 @@ export declare class MediaLibrary {
|
|
|
125
147
|
private readonly now;
|
|
126
148
|
private readonly deliveryMode;
|
|
127
149
|
private readonly deliverySignedTtlSeconds;
|
|
150
|
+
private readonly deliveryImages;
|
|
151
|
+
private readonly deliverySigning;
|
|
152
|
+
private readonly deliveryPath;
|
|
128
153
|
constructor(options: MediaLibraryOptions);
|
|
129
154
|
private emit;
|
|
130
155
|
attach(input: AttachInput): Promise<MediaRecord>;
|
|
@@ -151,6 +176,40 @@ export declare class MediaLibrary {
|
|
|
151
176
|
attachExisting(input: AttachExistingInput): Promise<MediaRecord>;
|
|
152
177
|
/** Generate (if absent) and persist a named conversion; returns the updated record. Lazy entry point. */
|
|
153
178
|
ensureConversion(id: string, conversionName: string): Promise<MediaRecord>;
|
|
179
|
+
/**
|
|
180
|
+
* Set (or clear, with `null`) the part of the image every crop must keep — a face in an avatar,
|
|
181
|
+
* the subject of a banner. Stored as `customProperties.focalPoint` (`{ x, y }`, fractions of the
|
|
182
|
+
* displayed image), handed to the processor for every cropping preset (`fit: 'cover'` with both
|
|
183
|
+
* sides), and returned by {@link image} so CSS crops (`object-fit: cover`) keep it too.
|
|
184
|
+
*
|
|
185
|
+
* The cropping conversions already generated are dropped — the eager ones regenerated at once,
|
|
186
|
+
* the lazy ones on next access — since they were cut around the old point.
|
|
187
|
+
*
|
|
188
|
+
* ```ts
|
|
189
|
+
* await media.library.setFocalPoint(user.avatarMediaId, { x: 0.42, y: 0.31 })
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
setFocalPoint(id: string, point: FocalPoint | null): Promise<MediaRecord>;
|
|
193
|
+
/**
|
|
194
|
+
* Resize the image to one of `delivery.images.widths`, on demand — the server half of a
|
|
195
|
+
* `next/image`-style loader (`?w=640&q=75`). Generated once and kept as the conversion
|
|
196
|
+
* `@w640q75`, so later requests (and `delete()`) treat it like any other conversion. Never
|
|
197
|
+
* enlarges: past the original's width it is the original's size, re-encoded.
|
|
198
|
+
*
|
|
199
|
+
* Returns the conversion to deliver, or `undefined` for an SVG (served as is: it scales by itself).
|
|
200
|
+
* Throws {@link ImageSizeNotAllowedError} outside the whitelist and {@link NotAnImageError} for a
|
|
201
|
+
* record that is not an image.
|
|
202
|
+
*/
|
|
203
|
+
resized(id: string, request: {
|
|
204
|
+
width: number | string;
|
|
205
|
+
quality?: number | string | undefined;
|
|
206
|
+
accept?: string | undefined;
|
|
207
|
+
/** Signed by the app: any width/quality in range, not just the whitelist. */
|
|
208
|
+
trusted?: boolean | undefined;
|
|
209
|
+
}): Promise<{
|
|
210
|
+
record: MediaRecord;
|
|
211
|
+
conversion: string | undefined;
|
|
212
|
+
}>;
|
|
154
213
|
/**
|
|
155
214
|
* Run a named {@link Transformer} of the record's collection and persist its output as
|
|
156
215
|
* `record.conversions[name]`. **Idempotent**: an already-generated conversion returns the record
|
|
@@ -188,6 +247,59 @@ export declare class MediaLibrary {
|
|
|
188
247
|
* requested and not yet generated, it is produced lazily (and cached) first.
|
|
189
248
|
*/
|
|
190
249
|
url(id: string, conversion?: string): Promise<string>;
|
|
250
|
+
/**
|
|
251
|
+
* Everything an `<img>` needs to render a stored image like `next/image`: `srcSet` from the
|
|
252
|
+
* collection's presets, the intrinsic `width`/`height` and the blur-up `placeholder` — as plain
|
|
253
|
+
* JSON, for a page prop. Render it with `<MediaImage>` from `@adonis-agora/media-react`.
|
|
254
|
+
*
|
|
255
|
+
* ```ts
|
|
256
|
+
* // config: presets at a few widths (eager, so they exist from the attach on) + the placeholder
|
|
257
|
+
* { name: 'banner', conversions: [{ name: 'sm', width: 640, eager: true }, { name: 'lg', width: 1280, eager: true }],
|
|
258
|
+
* transformers: [transformers.placeholder()] }
|
|
259
|
+
*
|
|
260
|
+
* return inertia.render('courses/show', { banner: await media.library.image(course.bannerMediaId) })
|
|
261
|
+
* ```
|
|
262
|
+
*
|
|
263
|
+
* The intrinsic size and the original-as-candidate come from the placeholder, so without
|
|
264
|
+
* `transformers.placeholder()` the result has no `width`/`height` and only the presets in
|
|
265
|
+
* `srcSet`. Like {@link url}, this answers "how", not "who": authorize the caller first.
|
|
266
|
+
*/
|
|
267
|
+
image(id: string, options?: ResponsiveImageOptions): Promise<ResponsiveImage>;
|
|
268
|
+
/**
|
|
269
|
+
* URL of the delivery route (`delivery.path`, default `/media/:id`) for a record — optionally a
|
|
270
|
+
* conversion, or resized (`width`/`quality`). With `delivery.signing` configured it is signed and
|
|
271
|
+
* expires, and `MediaDeliveryHandler` serves exactly what was signed (any width) and nothing else;
|
|
272
|
+
* without it, a plain route URL (widths limited to `delivery.images`).
|
|
273
|
+
*
|
|
274
|
+
* ```ts
|
|
275
|
+
* media.library.deliveryUrl(id) // /media/<id>?exp=…&sig=…
|
|
276
|
+
* media.library.deliveryUrl(id, { width: 640 }) // /media/<id>?w=640&exp=…&sig=…
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
deliveryUrl(id: string, options?: {
|
|
280
|
+
conversion?: string;
|
|
281
|
+
width?: number;
|
|
282
|
+
quality?: number;
|
|
283
|
+
/** Seconds; overrides `delivery.signing.expiresIn`. */
|
|
284
|
+
expiresIn?: number;
|
|
285
|
+
}): string;
|
|
286
|
+
/**
|
|
287
|
+
* Check a delivery request against `delivery.signing`: `true` when it is signed and valid (serve
|
|
288
|
+
* any size it names), `false` when signing is off or the request is unsigned and that is allowed.
|
|
289
|
+
* Throws {@link DeliverySignatureError} for an invalid or expired signature, or a missing one when
|
|
290
|
+
* `delivery.signing.required` (the default). `MediaDeliveryHandler` calls this for you.
|
|
291
|
+
*/
|
|
292
|
+
checkDeliverySignature(request: {
|
|
293
|
+
mediaId: string;
|
|
294
|
+
conversion?: string | undefined;
|
|
295
|
+
width?: number | string | undefined;
|
|
296
|
+
quality?: number | string | undefined;
|
|
297
|
+
expires?: number | string | undefined;
|
|
298
|
+
signature?: string | undefined;
|
|
299
|
+
}, options?: {
|
|
300
|
+
/** Override `delivery.signing.required` for this check (a route that authorizes by itself). */
|
|
301
|
+
required?: boolean;
|
|
302
|
+
}): boolean;
|
|
191
303
|
/**
|
|
192
304
|
* Resolve how a media record should reach the client, per the configured `delivery.mode` — the
|
|
193
305
|
* read-side counterpart to `uploads.mode`. Returns either a URL to redirect to (`public`/`signed`)
|