@adonis-agora/media 0.15.0 → 0.16.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 +52 -0
- package/dist/providers/dashboard_provider.d.ts.map +1 -1
- package/dist/providers/dashboard_provider.js +8 -1
- package/dist/providers/dashboard_provider.js.map +1 -1
- package/dist/src/attachment.d.ts.map +1 -1
- package/dist/src/attachment.js +6 -1
- package/dist/src/attachment.js.map +1 -1
- package/dist/src/dashboard/define_config.d.ts +12 -0
- package/dist/src/dashboard/define_config.d.ts.map +1 -1
- package/dist/src/dashboard/define_config.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +2 -0
- package/dist/src/dashboard/index.d.ts.map +1 -1
- package/dist/src/dashboard/index.js +2 -0
- package/dist/src/dashboard/index.js.map +1 -1
- package/dist/src/dashboard/object_urls.d.ts +36 -0
- package/dist/src/dashboard/object_urls.d.ts.map +1 -0
- package/dist/src/dashboard/object_urls.js +13 -0
- package/dist/src/dashboard/object_urls.js.map +1 -0
- package/dist/src/dashboard/service.d.ts +18 -4
- package/dist/src/dashboard/service.d.ts.map +1 -1
- package/dist/src/dashboard/service.js +19 -6
- package/dist/src/dashboard/service.js.map +1 -1
- package/dist/src/direct_upload_handler.d.ts.map +1 -1
- package/dist/src/direct_upload_handler.js +7 -2
- package/dist/src/direct_upload_handler.js.map +1 -1
- package/dist/src/errors.d.ts +16 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +21 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/file_name.d.ts +21 -0
- package/dist/src/file_name.d.ts.map +1 -0
- package/dist/src/file_name.js +33 -0
- package/dist/src/file_name.js.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/media_library.d.ts.map +1 -1
- package/dist/src/media_library.js +8 -2
- package/dist/src/media_library.js.map +1 -1
- package/dist/src/tus.d.ts.map +1 -1
- package/dist/src/tus.js +15 -3
- package/dist/src/tus.js.map +1 -1
- package/dist/stubs/config/media_dashboard.stub +6 -0
- package/package.json +1 -1
package/dist/src/tus.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist } from './content_type.js';
|
|
3
|
-
import { UploadOffsetConflictError, UploadSessionExpiredError, UploadSessionNotFoundError, } from './errors.js';
|
|
3
|
+
import { UnsafeFileNameError, UploadOffsetConflictError, UploadSessionExpiredError, UploadSessionNotFoundError, } from './errors.js';
|
|
4
|
+
import { sanitizeFileName } from './file_name.js';
|
|
4
5
|
/** The TUS protocol version this server implements. */
|
|
5
6
|
export const TUS_VERSION = '1.0.0';
|
|
6
7
|
/** Parse a TUS `Upload-Metadata` header (`key b64val,key2 b64val2`). */
|
|
@@ -65,7 +66,8 @@ export class TusUploadHandler {
|
|
|
65
66
|
: undefined;
|
|
66
67
|
this.basePath = (options.basePath ?? '/uploads').replace(/\/+$/, '');
|
|
67
68
|
this.maxSize = options.maxSize;
|
|
68
|
-
this.keyFor =
|
|
69
|
+
this.keyFor =
|
|
70
|
+
options.keyFor ?? ((filename, token) => `uploads/${token}/${sanitizeFileName(filename)}`);
|
|
69
71
|
this.newId = options.idGenerator ?? (() => randomUUID());
|
|
70
72
|
}
|
|
71
73
|
async handle(req) {
|
|
@@ -98,9 +100,19 @@ export class TusUploadHandler {
|
|
|
98
100
|
}
|
|
99
101
|
const filename = metadata.filename ?? 'upload';
|
|
100
102
|
const token = this.newId();
|
|
103
|
+
let key;
|
|
104
|
+
try {
|
|
105
|
+
key = this.keyFor(filename, token, metadata);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
if (err instanceof UnsafeFileNameError) {
|
|
109
|
+
return { status: 400, headers: base, body: err.message };
|
|
110
|
+
}
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
101
113
|
const input = {
|
|
102
114
|
disk: this.disk,
|
|
103
|
-
key
|
|
115
|
+
key,
|
|
104
116
|
metadata,
|
|
105
117
|
};
|
|
106
118
|
if (Number.isFinite(length))
|
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,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACxF,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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"}
|
|
@@ -21,6 +21,12 @@ export default defineConfig({
|
|
|
21
21
|
// disks: ['s3', 'backups'], // default: derived from config/media.ts
|
|
22
22
|
// middleware: middleware.auth(), // gate the whole console — SPA + API
|
|
23
23
|
|
|
24
|
+
// Where the 'url' the console reports for an object points: 'auto' (default) signs a URL straight
|
|
25
|
+
// to the store; 'proxy' routes it through this app's own '<apiBasePath>/object/raw'. Use 'proxy'
|
|
26
|
+
// when the store is not reachable from a browser (private bucket / internal hostname / no CORS) --
|
|
27
|
+
// a signed URL for an internal endpoint resolves nowhere in a browser.
|
|
28
|
+
// objectUrls: 'proxy',
|
|
29
|
+
|
|
24
30
|
// Built-in session-cookie login, independent of (and composable with) 'middleware'. At least one of
|
|
25
31
|
// 'login'/'session' is required when 'auth' is set.
|
|
26
32
|
// auth: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/media",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Media-library for AdonisJS — owner collections (MIME whitelist, single-file replace, ordering), image conversions (eager/lazy), pluggable content transformers (HLS video via mediabunny, metadata probe), 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": {
|