@adonis-agora/media 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/providers/media_provider.d.ts.map +1 -1
- package/dist/providers/media_provider.js +22 -9
- package/dist/providers/media_provider.js.map +1 -1
- package/dist/src/content_type.d.ts +65 -0
- package/dist/src/content_type.d.ts.map +1 -0
- package/dist/src/content_type.js +101 -0
- package/dist/src/content_type.js.map +1 -0
- package/dist/src/contents.d.ts +27 -1
- package/dist/src/contents.d.ts.map +1 -1
- package/dist/src/contents.js +63 -0
- package/dist/src/contents.js.map +1 -1
- package/dist/src/define_config.d.ts +30 -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 +91 -0
- package/dist/src/delivery.d.ts.map +1 -0
- package/dist/src/delivery.js +62 -0
- package/dist/src/delivery.js.map +1 -0
- package/dist/src/disks/drive.d.ts +46 -0
- package/dist/src/disks/drive.d.ts.map +1 -0
- package/dist/src/disks/drive.js +28 -0
- package/dist/src/disks/drive.js.map +1 -0
- package/dist/src/disks/factory.d.ts +5 -0
- package/dist/src/disks/factory.d.ts.map +1 -1
- package/dist/src/disks/factory.js +1 -0
- package/dist/src/disks/factory.js.map +1 -1
- package/dist/src/disks/s3.d.ts +14 -0
- package/dist/src/disks/s3.d.ts.map +1 -1
- package/dist/src/disks/s3.js +10 -0
- package/dist/src/disks/s3.js.map +1 -1
- package/dist/src/errors.d.ts +41 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +56 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +9 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/media_library.d.ts +40 -2
- package/dist/src/media_library.d.ts.map +1 -1
- package/dist/src/media_library.js +124 -23
- package/dist/src/media_library.js.map +1 -1
- package/dist/src/media_manager.d.ts +12 -1
- package/dist/src/media_manager.d.ts.map +1 -1
- package/dist/src/media_manager.js +12 -0
- package/dist/src/media_manager.js.map +1 -1
- package/dist/src/resumable_upload.d.ts +6 -1
- package/dist/src/resumable_upload.d.ts.map +1 -1
- package/dist/src/resumable_upload.js +11 -2
- package/dist/src/resumable_upload.js.map +1 -1
- package/dist/src/testing/in_memory_disk.d.ts +14 -2
- package/dist/src/testing/in_memory_disk.d.ts.map +1 -1
- package/dist/src/testing/in_memory_disk.js +15 -3
- package/dist/src/testing/in_memory_disk.js.map +1 -1
- package/dist/src/testing/index.d.ts +1 -0
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/tus.d.ts +33 -0
- package/dist/src/tus.d.ts.map +1 -1
- package/dist/src/tus.js +66 -1
- package/dist/src/tus.js.map +1 -1
- package/dist/src/types.d.ts +7 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/stubs/config/media.stub +8 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumable_upload.js","sourceRoot":"","sources":["../../src/resumable_upload.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resumable_upload.js","sourceRoot":"","sources":["../../src/resumable_upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Readable } from 'node:stream';
|
|
2
2
|
import type { Disk, DiskMetaData, DiskResolver, DiskWriteOptions, SignedUrlOptions } from '../types.js';
|
|
3
|
+
/** Visibility an {@link InMemoryDisk} reports — or `'unknown'` for a disk with no such signal. */
|
|
4
|
+
export type DiskVisibility = 'public' | 'private' | 'unknown';
|
|
3
5
|
interface StoredFile {
|
|
4
6
|
data: Buffer;
|
|
5
7
|
contentType?: string | undefined;
|
|
@@ -25,9 +27,17 @@ export declare class InMemoryDisk implements Disk {
|
|
|
25
27
|
readonly files: Map<string, StoredFile>;
|
|
26
28
|
/** Options from the most recent `getSignedUrl` call, so tests can assert the contract. */
|
|
27
29
|
lastSignedUrlOptions: SignedUrlOptions | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Reports the object visibility `delivery.mode: 'auto'` branches on. Defined as an own property
|
|
32
|
+
* rather than a prototype method so `'unknown'` genuinely REMOVES it — that is the "disk that
|
|
33
|
+
* cannot answer" case, which `resolveDeliveryMode` detects by probing for the method.
|
|
34
|
+
*/
|
|
35
|
+
readonly getVisibility?: (key: string) => Promise<'public' | 'private'>;
|
|
28
36
|
constructor(
|
|
29
37
|
/** Used to render `getUrl`/`getSignedUrl`. */
|
|
30
|
-
baseUrl?: string
|
|
38
|
+
baseUrl?: string,
|
|
39
|
+
/** What `getVisibility` reports; `'unknown'` omits the method entirely. */
|
|
40
|
+
visibility?: DiskVisibility);
|
|
31
41
|
put(key: string, contents: Uint8Array, options?: DiskWriteOptions): Promise<void>;
|
|
32
42
|
putStream(key: string, contents: Readable, options?: DiskWriteOptions): Promise<void>;
|
|
33
43
|
getBytes(key: string): Promise<Uint8Array>;
|
|
@@ -48,7 +58,9 @@ export declare class InMemoryDisk implements Disk {
|
|
|
48
58
|
* const storage = new StorageManager({ default: 'fs', resolve })
|
|
49
59
|
* ```
|
|
50
60
|
*/
|
|
51
|
-
export declare function inMemoryDiskResolver(names?: string[]
|
|
61
|
+
export declare function inMemoryDiskResolver(names?: string[],
|
|
62
|
+
/** Visibility every disk reports; `'unknown'` builds disks with no `getVisibility` at all. */
|
|
63
|
+
visibility?: DiskVisibility): {
|
|
52
64
|
resolve: DiskResolver;
|
|
53
65
|
disks: Record<string, InMemoryDisk>;
|
|
54
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in_memory_disk.d.ts","sourceRoot":"","sources":["../../../src/testing/in_memory_disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,IAAI,CAAC;IACnB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,IAAI;
|
|
1
|
+
{"version":3,"file":"in_memory_disk.d.ts","sourceRoot":"","sources":["../../../src/testing/in_memory_disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,kGAAkG;AAClG,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9D,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,IAAI,CAAC;IACnB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,IAAI;IAcrC,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,QAAQ,CAAC,KAAK,0BAAiC;IAE/C,0FAA0F;IAC1F,oBAAoB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;;IAGtE,8CAA8C;IAC7B,OAAO,SAAkB;IAC1C,2EAA2E;IAC3E,UAAU,GAAE,cAA0B;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASrD,OAAO,CAAC,OAAO;CAKhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,GAAE,MAAM,EAAgB;AAC7B,8FAA8F;AAC9F,UAAU,GAAE,cAA0B,GACrC;IACD,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC,CAWA"}
|
|
@@ -9,10 +9,20 @@ export class InMemoryDisk {
|
|
|
9
9
|
files = new Map();
|
|
10
10
|
/** Options from the most recent `getSignedUrl` call, so tests can assert the contract. */
|
|
11
11
|
lastSignedUrlOptions;
|
|
12
|
+
/**
|
|
13
|
+
* Reports the object visibility `delivery.mode: 'auto'` branches on. Defined as an own property
|
|
14
|
+
* rather than a prototype method so `'unknown'` genuinely REMOVES it — that is the "disk that
|
|
15
|
+
* cannot answer" case, which `resolveDeliveryMode` detects by probing for the method.
|
|
16
|
+
*/
|
|
17
|
+
getVisibility;
|
|
12
18
|
constructor(
|
|
13
19
|
/** Used to render `getUrl`/`getSignedUrl`. */
|
|
14
|
-
baseUrl = 'memory://disk'
|
|
20
|
+
baseUrl = 'memory://disk',
|
|
21
|
+
/** What `getVisibility` reports; `'unknown'` omits the method entirely. */
|
|
22
|
+
visibility = 'private') {
|
|
15
23
|
this.baseUrl = baseUrl;
|
|
24
|
+
if (visibility !== 'unknown')
|
|
25
|
+
this.getVisibility = async () => visibility;
|
|
16
26
|
}
|
|
17
27
|
async put(key, contents, options) {
|
|
18
28
|
this.files.set(key, {
|
|
@@ -77,10 +87,12 @@ export class InMemoryDisk {
|
|
|
77
87
|
* const storage = new StorageManager({ default: 'fs', resolve })
|
|
78
88
|
* ```
|
|
79
89
|
*/
|
|
80
|
-
export function inMemoryDiskResolver(names = ['default']
|
|
90
|
+
export function inMemoryDiskResolver(names = ['default'],
|
|
91
|
+
/** Visibility every disk reports; `'unknown'` builds disks with no `getVisibility` at all. */
|
|
92
|
+
visibility = 'private') {
|
|
81
93
|
const disks = {};
|
|
82
94
|
for (const name of names)
|
|
83
|
-
disks[name] = new InMemoryDisk(`memory://${name}
|
|
95
|
+
disks[name] = new InMemoryDisk(`memory://${name}`, visibility);
|
|
84
96
|
const fallback = names[0] ?? 'default';
|
|
85
97
|
const resolve = (name) => {
|
|
86
98
|
const key = name ?? fallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in_memory_disk.js","sourceRoot":"","sources":["../../../src/testing/in_memory_disk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"in_memory_disk.js","sourceRoot":"","sources":["../../../src/testing/in_memory_disk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { InMemoryMediaStore } from './in_memory_media_store.js';
|
|
2
2
|
export { InMemoryUploadSessionStore } from './in_memory_upload_session_store.js';
|
|
3
3
|
export { InMemoryDisk, inMemoryDiskResolver } from './in_memory_disk.js';
|
|
4
|
+
export type { DiskVisibility } from './in_memory_disk.js';
|
|
4
5
|
export { FakeImageProcessor } from './fake_image_processor.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/src/tus.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MediaCollectionRegistry } from './media_collection.js';
|
|
1
2
|
import type { ResumableUploadManager } from './resumable_upload.js';
|
|
2
3
|
/** The TUS protocol version this server implements. */
|
|
3
4
|
export declare const TUS_VERSION = "1.0.0";
|
|
@@ -19,6 +20,17 @@ export interface TusUploadHandlerOptions {
|
|
|
19
20
|
manager: ResumableUploadManager;
|
|
20
21
|
/** Disk uploads land on. */
|
|
21
22
|
disk: string;
|
|
23
|
+
/**
|
|
24
|
+
* Collection this endpoint uploads into. When set (together with {@link collections}), its
|
|
25
|
+
* `acceptsMimeTypes` is enforced at `POST` and on the first `PATCH` — see the class docs. The
|
|
26
|
+
* collection config stays the single source of truth: nothing here restates the MIME list.
|
|
27
|
+
*/
|
|
28
|
+
collection?: string;
|
|
29
|
+
/**
|
|
30
|
+
* The collection registry to read {@link collection} from — `media.collections` in an app. Passed
|
|
31
|
+
* rather than the resolved list precisely so the app cannot drift from `config/media.ts`.
|
|
32
|
+
*/
|
|
33
|
+
collections?: MediaCollectionRegistry;
|
|
22
34
|
/** Base path the upload resources are exposed at, for the `Location` header. Default `/uploads`. */
|
|
23
35
|
basePath?: string;
|
|
24
36
|
/** Reject creations whose `Upload-Length` exceeds this. */
|
|
@@ -41,10 +53,31 @@ export declare function parseTusMetadata(header?: string): Record<string, string
|
|
|
41
53
|
* - `PATCH` — append at `Upload-Offset` with `Content-Type: application/offset+octet-stream`;
|
|
42
54
|
* auto-completes at the declared length.
|
|
43
55
|
* - `DELETE` — terminate (abort) an in-flight upload.
|
|
56
|
+
*
|
|
57
|
+
* ## Collection-aware MIME validation (optional)
|
|
58
|
+
*
|
|
59
|
+
* Given a `collection` + `collections` registry, the handler enforces that collection's
|
|
60
|
+
* `acceptsMimeTypes` at the two earliest moments the protocol allows, so a client learns it sent the
|
|
61
|
+
* wrong file *before* spending the bandwidth a resumable upload exists to protect:
|
|
62
|
+
*
|
|
63
|
+
* 1. **`POST`** — the declared `filetype` in `Upload-Metadata`, if present, must be whitelisted.
|
|
64
|
+
* Rejected with `415 Unsupported Media Type`, before a single byte is uploaded.
|
|
65
|
+
* 2. **first `PATCH`** — the real magic-byte signature of the leading bytes is checked with
|
|
66
|
+
* {@link verifyContentAgainstWhitelist}. This catches a client that lied in `filetype`. Also
|
|
67
|
+
* `415`, and the session plus any partial object are aborted so nothing is left behind.
|
|
68
|
+
*
|
|
69
|
+
* This is **bandwidth economy and fast feedback, not the security boundary**. The storage invariant
|
|
70
|
+
* is still guaranteed by `MediaLibrary.attach` / `attachExisting`, which re-validate the assembled
|
|
71
|
+
* object at attach time and remain the final barrier — the TUS checks only see the first chunk, and
|
|
72
|
+
* an endpoint configured without a `collection` performs no MIME validation at all.
|
|
44
73
|
*/
|
|
45
74
|
export declare class TusUploadHandler {
|
|
75
|
+
#private;
|
|
46
76
|
private readonly manager;
|
|
47
77
|
private readonly disk;
|
|
78
|
+
private readonly collection;
|
|
79
|
+
/** Resolved from the collection registry at construction; `undefined` ⇒ no MIME gate here. */
|
|
80
|
+
private readonly accepts;
|
|
48
81
|
private readonly basePath;
|
|
49
82
|
private readonly maxSize;
|
|
50
83
|
private readonly keyFor;
|
package/dist/src/tus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tus.d.ts","sourceRoot":"","sources":["../../src/tus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tus.d.ts","sourceRoot":"","sources":["../../src/tus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,uDAAuD;AACvD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,iGAAiG;AACjG,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzD,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,iGAAiG;AACjG,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACvF,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,gBAAgB;;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8D;IACrF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,OAAO,EAAE,uBAAuB;IActC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA6InD,yFAAyF;IACzF,OAAO,CAAC,QAAQ;CAMjB"}
|
package/dist/src/tus.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist } from './content_type.js';
|
|
2
3
|
import { UploadOffsetConflictError, UploadSessionExpiredError, UploadSessionNotFoundError, } from './errors.js';
|
|
3
4
|
/** The TUS protocol version this server implements. */
|
|
4
5
|
export const TUS_VERSION = '1.0.0';
|
|
@@ -26,10 +27,30 @@ export function parseTusMetadata(header) {
|
|
|
26
27
|
* - `PATCH` — append at `Upload-Offset` with `Content-Type: application/offset+octet-stream`;
|
|
27
28
|
* auto-completes at the declared length.
|
|
28
29
|
* - `DELETE` — terminate (abort) an in-flight upload.
|
|
30
|
+
*
|
|
31
|
+
* ## Collection-aware MIME validation (optional)
|
|
32
|
+
*
|
|
33
|
+
* Given a `collection` + `collections` registry, the handler enforces that collection's
|
|
34
|
+
* `acceptsMimeTypes` at the two earliest moments the protocol allows, so a client learns it sent the
|
|
35
|
+
* wrong file *before* spending the bandwidth a resumable upload exists to protect:
|
|
36
|
+
*
|
|
37
|
+
* 1. **`POST`** — the declared `filetype` in `Upload-Metadata`, if present, must be whitelisted.
|
|
38
|
+
* Rejected with `415 Unsupported Media Type`, before a single byte is uploaded.
|
|
39
|
+
* 2. **first `PATCH`** — the real magic-byte signature of the leading bytes is checked with
|
|
40
|
+
* {@link verifyContentAgainstWhitelist}. This catches a client that lied in `filetype`. Also
|
|
41
|
+
* `415`, and the session plus any partial object are aborted so nothing is left behind.
|
|
42
|
+
*
|
|
43
|
+
* This is **bandwidth economy and fast feedback, not the security boundary**. The storage invariant
|
|
44
|
+
* is still guaranteed by `MediaLibrary.attach` / `attachExisting`, which re-validate the assembled
|
|
45
|
+
* object at attach time and remain the final barrier — the TUS checks only see the first chunk, and
|
|
46
|
+
* an endpoint configured without a `collection` performs no MIME validation at all.
|
|
29
47
|
*/
|
|
30
48
|
export class TusUploadHandler {
|
|
31
49
|
manager;
|
|
32
50
|
disk;
|
|
51
|
+
collection;
|
|
52
|
+
/** Resolved from the collection registry at construction; `undefined` ⇒ no MIME gate here. */
|
|
53
|
+
accepts;
|
|
33
54
|
basePath;
|
|
34
55
|
maxSize;
|
|
35
56
|
keyFor;
|
|
@@ -37,6 +58,11 @@ export class TusUploadHandler {
|
|
|
37
58
|
constructor(options) {
|
|
38
59
|
this.manager = options.manager;
|
|
39
60
|
this.disk = options.disk;
|
|
61
|
+
this.collection = options.collection;
|
|
62
|
+
this.accepts =
|
|
63
|
+
options.collection !== undefined && options.collections !== undefined
|
|
64
|
+
? options.collections.get(options.collection).acceptsMimeTypes
|
|
65
|
+
: undefined;
|
|
40
66
|
this.basePath = (options.basePath ?? '/uploads').replace(/\/+$/, '');
|
|
41
67
|
this.maxSize = options.maxSize;
|
|
42
68
|
this.keyFor = options.keyFor ?? ((filename, token) => `uploads/${token}/${filename}`);
|
|
@@ -61,6 +87,15 @@ export class TusUploadHandler {
|
|
|
61
87
|
return { status: 413, headers: base, body: 'Upload exceeds maximum size' };
|
|
62
88
|
}
|
|
63
89
|
const metadata = parseTusMetadata(req.headers['upload-metadata']);
|
|
90
|
+
// Cheapest possible rejection: the client already told us what it is about to send, so a
|
|
91
|
+
// wrong `filetype` costs zero bytes. Absent metadata just defers the call to the first PATCH.
|
|
92
|
+
if (this.accepts && metadata.filetype && !this.accepts.includes(metadata.filetype)) {
|
|
93
|
+
return {
|
|
94
|
+
status: 415,
|
|
95
|
+
headers: base,
|
|
96
|
+
body: `Content type "${metadata.filetype}" is not accepted by collection "${this.collection}" (accepts: ${this.accepts.join(', ')})`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
64
99
|
const filename = metadata.filename ?? 'upload';
|
|
65
100
|
const token = this.newId();
|
|
66
101
|
const input = {
|
|
@@ -104,8 +139,12 @@ export class TusUploadHandler {
|
|
|
104
139
|
return { status: 415, headers: base, body: 'Unsupported Media Type' };
|
|
105
140
|
}
|
|
106
141
|
const offset = Number(req.headers['upload-offset']);
|
|
142
|
+
const body = req.body ?? new Uint8Array();
|
|
107
143
|
try {
|
|
108
|
-
const
|
|
144
|
+
const rejection = await this.#rejectMistypedFirstChunk(req.uploadId ?? '', offset, body, base);
|
|
145
|
+
if (rejection)
|
|
146
|
+
return rejection;
|
|
147
|
+
const result = await this.manager.writeChunk(req.uploadId ?? '', offset, body);
|
|
109
148
|
const status = await this.manager.status(req.uploadId ?? '');
|
|
110
149
|
if (status.size != null && result.offset >= status.size) {
|
|
111
150
|
await this.manager.complete(req.uploadId ?? '');
|
|
@@ -129,6 +168,32 @@ export class TusUploadHandler {
|
|
|
129
168
|
return { status: 405, headers: base };
|
|
130
169
|
}
|
|
131
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Sniff the FIRST chunk against the collection's `acceptsMimeTypes` and, on a contradiction, throw
|
|
173
|
+
* the whole upload away: the session and any partial object are aborted, so a liar pays for one
|
|
174
|
+
* chunk instead of the whole file and leaves nothing behind.
|
|
175
|
+
*
|
|
176
|
+
* Only the first chunk (`offset === 0`) is inspected, and only its leading
|
|
177
|
+
* {@link SIGNATURE_HEAD_BYTES} — a signature lives at the head of the file or nowhere. Returns
|
|
178
|
+
* `undefined` when the upload may proceed.
|
|
179
|
+
*/
|
|
180
|
+
async #rejectMistypedFirstChunk(id, offset, body, base) {
|
|
181
|
+
if (this.accepts === undefined || offset !== 0 || body.byteLength === 0)
|
|
182
|
+
return undefined;
|
|
183
|
+
const status = await this.manager.status(id);
|
|
184
|
+
const verdict = verifyContentAgainstWhitelist(body.subarray(0, SIGNATURE_HEAD_BYTES), this.accepts, status.contentType);
|
|
185
|
+
if (verdict.outcome === 'accepted')
|
|
186
|
+
return undefined;
|
|
187
|
+
await this.manager.abort(id);
|
|
188
|
+
const detail = verdict.outcome === 'unrecognized'
|
|
189
|
+
? 'its contents match no accepted signature'
|
|
190
|
+
: `its contents are actually "${verdict.detected}"`;
|
|
191
|
+
return {
|
|
192
|
+
status: 415,
|
|
193
|
+
headers: base,
|
|
194
|
+
body: `Upload rejected: ${detail}, which collection "${this.collection}" does not accept (accepts: ${this.accepts.join(', ')}). The upload has been discarded.`,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
132
197
|
/** Map storage errors onto TUS status codes (409 conflict, 410 expired, 404 unknown). */
|
|
133
198
|
mapError(err, base) {
|
|
134
199
|
if (err instanceof UploadOffsetConflictError)
|
package/dist/src/tus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tus.js","sourceRoot":"","sources":["../../src/tus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tus.js","sourceRoot":"","sources":["../../src/tus.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -24,6 +24,13 @@ export interface Disk {
|
|
|
24
24
|
getUrl(key: string): Promise<string>;
|
|
25
25
|
getSignedUrl(key: string, options?: SignedUrlOptions): Promise<string>;
|
|
26
26
|
getMetaData(key: string): Promise<DiskMetaData>;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the object is readable without credentials. Every `@adonisjs/drive` disk exposes it, but
|
|
29
|
+
* it stays OPTIONAL here so the minimal structural contract (and the in-memory test disk) need not
|
|
30
|
+
* implement it. Read only by `delivery.mode: 'auto'`, which falls back to `signed` when a disk
|
|
31
|
+
* cannot answer — see {@link resolveDeliveryMode}.
|
|
32
|
+
*/
|
|
33
|
+
getVisibility?(key: string): Promise<'public' | 'private'>;
|
|
27
34
|
}
|
|
28
35
|
export interface DiskWriteOptions {
|
|
29
36
|
contentType?: string;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF;;;;OAIG;IACH,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,14 @@ export default defineConfig({
|
|
|
34
34
|
},
|
|
35
35
|
],
|
|
36
36
|
|
|
37
|
+
// How stored media is served back — the read-side counterpart to 'uploads.mode'.
|
|
38
|
+
// 'public' redirects to the disk's raw URL, 'signed' to a time-limited signed URL, and 'proxy'
|
|
39
|
+
// streams the bytes through the app (for a private bucket the internet cannot reach). The default
|
|
40
|
+
// 'auto' asks the disk for the object's visibility: public => 'public', otherwise => 'signed'.
|
|
41
|
+
// No route is mounted for this: serving a record is an authorization decision, so mount your own
|
|
42
|
+
// route with your own middleware and delegate to MediaDeliveryHandler (or library.deliver).
|
|
43
|
+
// delivery: { mode: 'proxy', signedTtlSeconds: 300 },
|
|
44
|
+
|
|
37
45
|
// Resumable (TUS) uploads — opt-in. Mounts the TUS protocol under 'routes.prefix' and persists
|
|
38
46
|
// upload sessions so a dropped connection resumes. Select 'lucid' and run 'node ace migration:run'
|
|
39
47
|
// for durable, multi-process sessions; the default in-memory store is single-process only.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/media",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Media-library for AdonisJS — owner collections (MIME whitelist, single-file replace, ordering), image conversions (eager/lazy), and column attachments, all on top of @adonisjs/drive. Pluggable MediaStore (in-memory + Lucid) and ImageProcessor (sharp). Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|