@livetemplate/client 0.11.9 → 0.13.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/dist/livetemplate-client.browser.js +5 -5
- package/dist/livetemplate-client.browser.js.map +3 -3
- package/dist/livetemplate-client.d.ts +14 -0
- package/dist/livetemplate-client.d.ts.map +1 -1
- package/dist/livetemplate-client.js +62 -0
- package/dist/livetemplate-client.js.map +1 -1
- package/dist/tests/upload-handler.test.js +135 -0
- package/dist/tests/upload-handler.test.js.map +1 -1
- package/dist/upload/types.d.ts +31 -0
- package/dist/upload/types.d.ts.map +1 -1
- package/dist/upload/upload-handler.d.ts +66 -1
- package/dist/upload/upload-handler.d.ts.map +1 -1
- package/dist/upload/upload-handler.js +317 -32
- package/dist/upload/upload-handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../upload/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../upload/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,34 @@ export declare class UploadHandler {
|
|
|
13
13
|
private sendMessage;
|
|
14
14
|
private entries;
|
|
15
15
|
private pendingFiles;
|
|
16
|
+
private pendingInputs;
|
|
16
17
|
private autoUploadConfig;
|
|
17
18
|
private chunkSize;
|
|
18
19
|
private uploaders;
|
|
19
20
|
private onProgress?;
|
|
20
21
|
private onComplete?;
|
|
21
22
|
private onError?;
|
|
23
|
+
private postMultipartUpload?;
|
|
24
|
+
private isConnected?;
|
|
25
|
+
private postUploadStart?;
|
|
26
|
+
private pendingHandshakes;
|
|
27
|
+
private pendingUploads;
|
|
28
|
+
private previewUrls;
|
|
22
29
|
private inputHandlers;
|
|
23
30
|
constructor(sendMessage: (message: any) => void, options?: UploadHandlerOptions);
|
|
31
|
+
/**
|
|
32
|
+
* Dispatch a valid upload entry to the transport its mode requires. The server
|
|
33
|
+
* declares the mode per-entry; existing entries that only carry `external`
|
|
34
|
+
* (no mode) fall back to the Direct path for backward compatibility.
|
|
35
|
+
*/
|
|
36
|
+
private dispatchUpload;
|
|
37
|
+
/**
|
|
38
|
+
* Mark an upload finished and run the shared post-completion steps: fire the
|
|
39
|
+
* onComplete callback, clear the file input, and schedule entry cleanup.
|
|
40
|
+
* Callers that talk to the server (chunked/external) send their own
|
|
41
|
+
* upload_complete message first.
|
|
42
|
+
*/
|
|
43
|
+
private finishUpload;
|
|
24
44
|
/**
|
|
25
45
|
* Initialize upload detection on file inputs with lvt-upload attribute
|
|
26
46
|
*/
|
|
@@ -28,7 +48,8 @@ export declare class UploadHandler {
|
|
|
28
48
|
/**
|
|
29
49
|
* Start upload process for selected files
|
|
30
50
|
*/
|
|
31
|
-
startUpload(uploadName: string, files: File[]): Promise<void>;
|
|
51
|
+
startUpload(uploadName: string, files: File[], sourceInput?: HTMLInputElement): Promise<void>;
|
|
52
|
+
private failStart;
|
|
32
53
|
/**
|
|
33
54
|
* Handle upload_start response from server
|
|
34
55
|
*/
|
|
@@ -37,6 +58,50 @@ export declare class UploadHandler {
|
|
|
37
58
|
* Upload file using external uploader (S3, etc.)
|
|
38
59
|
*/
|
|
39
60
|
private uploadExternal;
|
|
61
|
+
/**
|
|
62
|
+
* Upload a Proxied file as a single multipart POST to the live URL. The server
|
|
63
|
+
* streams the bytes straight to the app's OnUpload handler (zero local-disk
|
|
64
|
+
* staging) and dispatches the upload_<name>_complete action. Independent of
|
|
65
|
+
* the WebSocket, so it works with the socket disabled.
|
|
66
|
+
*/
|
|
67
|
+
private uploadProxied;
|
|
68
|
+
/**
|
|
69
|
+
* appendFormFields serializes the value fields of the form enclosing the
|
|
70
|
+
* upload's triggering input into formData, ahead of the file part — so a
|
|
71
|
+
* Proxied OnUpload handler can read them (e.g. a record id) mid-stream. Uses
|
|
72
|
+
* the browser's native form serialization (successful controls only), skipping
|
|
73
|
+
* File values (file inputs are sent as the streaming part) and the reserved
|
|
74
|
+
* lvt-action field. A no-op when the input is outside a form.
|
|
75
|
+
*
|
|
76
|
+
* A Proxied upload auto-fires on file selection (not an explicit submit), so it
|
|
77
|
+
* POSTs the whole enclosing form. Password inputs are excluded by name so
|
|
78
|
+
* credentials in a co-located form never ride along with an upload the user
|
|
79
|
+
* didn't deliberately submit; keep other sensitive controls out of a form that
|
|
80
|
+
* contains an auto-upload file input. (A broader opt-in model — only fields
|
|
81
|
+
* marked to travel — is tracked upstream as a safer-by-default follow-up.)
|
|
82
|
+
*
|
|
83
|
+
* Values are read here, at upload time (after the upload_start round-trip), not
|
|
84
|
+
* at file-selection time, so edits made between selecting the file and the
|
|
85
|
+
* upload completing are reflected — the freshest form state wins.
|
|
86
|
+
*/
|
|
87
|
+
private appendFormFields;
|
|
88
|
+
/**
|
|
89
|
+
* Preview mode: keep the file on the device and show it locally via an object
|
|
90
|
+
* URL. Nothing is uploaded — the server already has the file's metadata from
|
|
91
|
+
* the upload_start handshake. The blob URL is re-applied after server
|
|
92
|
+
* re-renders by hydratePreviews().
|
|
93
|
+
*/
|
|
94
|
+
private uploadPreview;
|
|
95
|
+
/** Point every preview placeholder for uploadName at the given object URL. */
|
|
96
|
+
private applyPreview;
|
|
97
|
+
/**
|
|
98
|
+
* Re-attach Preview-mode blob URLs after a DOM morph. The server re-renders
|
|
99
|
+
* the {{.lvt.UploadPreview}} placeholder with an empty src, so this restores
|
|
100
|
+
* the local object URL the visitor selected. Called by the client post-update.
|
|
101
|
+
*/
|
|
102
|
+
hydratePreviews(root: Element): void;
|
|
103
|
+
/** Revoke all preview object URLs. Called on teardown to avoid leaks. */
|
|
104
|
+
revokePreviews(): void;
|
|
40
105
|
/**
|
|
41
106
|
* Upload file in chunks via WebSocket
|
|
42
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-handler.d.ts","sourceRoot":"","sources":["../../upload/upload-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAKV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EAErB,mBAAmB,EACnB,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"upload-handler.d.ts","sourceRoot":"","sources":["../../upload/upload-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAKV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EAErB,mBAAmB,EACnB,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa;IAyBtB,OAAO,CAAC,WAAW;IAxBrB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAC,CAA+B;IAClD,OAAO,CAAC,UAAU,CAAC,CAAuD;IAC1E,OAAO,CAAC,OAAO,CAAC,CAA8C;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAGT;IACnB,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAC,CAGU;IAClC,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAA2D;gBAGtE,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAC3C,OAAO,GAAE,oBAAyB;IAcpC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,OAAO;IAgCvC;;OAEG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,IAAI,CAAC;IAiEhB,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACG,yBAAyB,CAC7B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IA8EhB;;OAEG;YACW,cAAc;IAiC5B;;;;;OAKG;YACW,aAAa;IA2C3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAerB,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAyBpB;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAmBpC,yEAAyE;IACzE,cAAc,IAAI,IAAI;IAkBtB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAY3D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAmBnC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE;IAU7C;;;OAGG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoB/C;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACH,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAa,GAAG,IAAI;IAoB/D;;OAEG;IACH,OAAO,CAAC,YAAY;CAarB"}
|
|
@@ -17,16 +17,78 @@ class UploadHandler {
|
|
|
17
17
|
this.sendMessage = sendMessage;
|
|
18
18
|
this.entries = new Map();
|
|
19
19
|
this.pendingFiles = new Map(); // uploadName -> files
|
|
20
|
+
this.pendingInputs = new Map(); // uploadName -> triggering input
|
|
20
21
|
this.autoUploadConfig = new Map(); // uploadName -> autoUpload
|
|
21
22
|
this.uploaders = new Map();
|
|
23
|
+
this.pendingHandshakes = new Set();
|
|
24
|
+
this.pendingUploads = new Set(); // in-flight proxied fetches
|
|
25
|
+
this.previewUrls = new Map(); // uploadName -> object URL
|
|
22
26
|
this.inputHandlers = new WeakMap();
|
|
23
27
|
this.chunkSize = options.chunkSize || 256 * 1024; // 256KB default
|
|
24
28
|
this.onProgress = options.onProgress;
|
|
25
29
|
this.onComplete = options.onComplete;
|
|
26
30
|
this.onError = options.onError;
|
|
31
|
+
this.postMultipartUpload = options.postMultipartUpload;
|
|
32
|
+
this.isConnected = options.isConnected;
|
|
33
|
+
this.postUploadStart = options.postUploadStart;
|
|
27
34
|
// Register default uploaders
|
|
28
35
|
this.uploaders.set("s3", new s3_uploader_1.S3Uploader());
|
|
29
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Dispatch a valid upload entry to the transport its mode requires. The server
|
|
39
|
+
* declares the mode per-entry; existing entries that only carry `external`
|
|
40
|
+
* (no mode) fall back to the Direct path for backward compatibility.
|
|
41
|
+
*/
|
|
42
|
+
dispatchUpload(entry) {
|
|
43
|
+
switch (entry.mode) {
|
|
44
|
+
case "preview":
|
|
45
|
+
this.uploadPreview(entry);
|
|
46
|
+
return;
|
|
47
|
+
case "proxied":
|
|
48
|
+
void this.uploadProxied(entry);
|
|
49
|
+
return;
|
|
50
|
+
case "direct":
|
|
51
|
+
if (entry.external) {
|
|
52
|
+
void this.uploadExternal(entry, entry.external);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Direct requires presign metadata; surface the misconfig instead of
|
|
56
|
+
// silently abandoning the entry.
|
|
57
|
+
const msg = "direct upload mode requires presigned upload metadata";
|
|
58
|
+
entry.error = msg;
|
|
59
|
+
if (this.onError)
|
|
60
|
+
this.onError(entry, msg);
|
|
61
|
+
this.cleanupEntries(entry.uploadName);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
case "volume":
|
|
65
|
+
default:
|
|
66
|
+
// entry.mode is normalized to a concrete mode at ingest (see
|
|
67
|
+
// handleUploadStartResponse), so the default is just the Volume path.
|
|
68
|
+
void this.uploadChunked(entry);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Mark an upload finished and run the shared post-completion steps: fire the
|
|
73
|
+
* onComplete callback, clear the file input, and schedule entry cleanup.
|
|
74
|
+
* Callers that talk to the server (chunked/external) send their own
|
|
75
|
+
* upload_complete message first.
|
|
76
|
+
*/
|
|
77
|
+
finishUpload(entry) {
|
|
78
|
+
entry.done = true;
|
|
79
|
+
entry.progress = 100;
|
|
80
|
+
// Emit a final 100% tick so every completed path (proxied included) sends it
|
|
81
|
+
// — a progress bar waiting on 100% won't hang. Idempotent for chunked/external
|
|
82
|
+
// which already reach 100% during transfer.
|
|
83
|
+
if (this.onProgress) {
|
|
84
|
+
this.onProgress(entry);
|
|
85
|
+
}
|
|
86
|
+
if (this.onComplete) {
|
|
87
|
+
this.onComplete(entry.uploadName, [entry]);
|
|
88
|
+
}
|
|
89
|
+
this.clearFileInput(entry.uploadName);
|
|
90
|
+
this.cleanupEntries(entry.uploadName);
|
|
91
|
+
}
|
|
30
92
|
/**
|
|
31
93
|
* Initialize upload detection on file inputs with lvt-upload attribute
|
|
32
94
|
*/
|
|
@@ -47,8 +109,9 @@ class UploadHandler {
|
|
|
47
109
|
if (!files || files.length === 0)
|
|
48
110
|
return;
|
|
49
111
|
// Always send upload_start to get validation and config
|
|
50
|
-
// But only proceed with chunks if autoUpload is true
|
|
51
|
-
|
|
112
|
+
// But only proceed with chunks if autoUpload is true. Pass the triggering
|
|
113
|
+
// input so a Proxied upload can serialize its enclosing form's fields.
|
|
114
|
+
this.startUpload(uploadName, Array.from(files), input);
|
|
52
115
|
};
|
|
53
116
|
input.addEventListener("change", handler);
|
|
54
117
|
// Store handler in WeakMap to prevent memory leaks
|
|
@@ -58,23 +121,78 @@ class UploadHandler {
|
|
|
58
121
|
/**
|
|
59
122
|
* Start upload process for selected files
|
|
60
123
|
*/
|
|
61
|
-
async startUpload(uploadName, files) {
|
|
124
|
+
async startUpload(uploadName, files, sourceInput) {
|
|
62
125
|
// Store files temporarily for when server response arrives
|
|
63
126
|
this.pendingFiles.set(uploadName, files);
|
|
127
|
+
if (sourceInput) {
|
|
128
|
+
this.pendingInputs.set(uploadName, sourceInput);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.pendingInputs.delete(uploadName);
|
|
132
|
+
}
|
|
64
133
|
// Create file metadata
|
|
65
134
|
const fileMetadata = files.map((file) => ({
|
|
66
135
|
name: file.name,
|
|
67
136
|
type: file.type || "application/octet-stream",
|
|
68
137
|
size: file.size,
|
|
69
138
|
}));
|
|
70
|
-
// Send upload_start message to server
|
|
71
139
|
const startMessage = {
|
|
72
140
|
action: "upload_start",
|
|
73
141
|
upload_name: uploadName,
|
|
74
142
|
files: fileMetadata,
|
|
75
143
|
};
|
|
144
|
+
// Over an open WebSocket the server replies with a separate
|
|
145
|
+
// UploadStartResponse message (routed to handleUploadStartResponse). With
|
|
146
|
+
// the socket down, post the handshake over HTTP and handle the response
|
|
147
|
+
// inline so mode dispatch (and Direct presign) still work.
|
|
148
|
+
const connected = this.isConnected ? this.isConnected() : true;
|
|
149
|
+
if (!connected) {
|
|
150
|
+
if (!this.postUploadStart) {
|
|
151
|
+
this.failStart(uploadName, files, "upload unavailable: WebSocket is closed and no HTTP fallback is configured");
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const controller = new AbortController();
|
|
155
|
+
this.pendingHandshakes.add(controller);
|
|
156
|
+
try {
|
|
157
|
+
const response = await this.postUploadStart(startMessage, controller.signal);
|
|
158
|
+
// Skip if teardown aborted us mid-flight, so we don't create a preview
|
|
159
|
+
// object URL after revokePreviews already ran.
|
|
160
|
+
if (!controller.signal.aborted) {
|
|
161
|
+
await this.handleUploadStartResponse(response);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
this.failStart(uploadName, files, error instanceof Error ? error.message : String(error));
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
this.pendingHandshakes.delete(controller);
|
|
169
|
+
}
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
76
172
|
this.sendMessage(startMessage);
|
|
77
173
|
}
|
|
174
|
+
// failStart reports a handshake failure on every selected file and clears the
|
|
175
|
+
// pending set, so a startUpload that can't reach the server isn't silent.
|
|
176
|
+
failStart(uploadName, files, message) {
|
|
177
|
+
this.pendingFiles.delete(uploadName);
|
|
178
|
+
this.pendingInputs.delete(uploadName);
|
|
179
|
+
const onError = this.onError;
|
|
180
|
+
if (!onError)
|
|
181
|
+
return;
|
|
182
|
+
// Distinct synthetic ids per file (no server entry exists yet) so a consumer
|
|
183
|
+
// keying per-file error state doesn't collapse a multi-file failure.
|
|
184
|
+
files.forEach((file, i) => {
|
|
185
|
+
onError({
|
|
186
|
+
id: `pending-${uploadName}-${i}`,
|
|
187
|
+
file,
|
|
188
|
+
uploadName,
|
|
189
|
+
progress: 0,
|
|
190
|
+
bytesUploaded: 0,
|
|
191
|
+
valid: false,
|
|
192
|
+
done: false,
|
|
193
|
+
}, message);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
78
196
|
/**
|
|
79
197
|
* Handle upload_start response from server
|
|
80
198
|
*/
|
|
@@ -92,6 +210,10 @@ class UploadHandler {
|
|
|
92
210
|
}
|
|
93
211
|
// Clear pending files
|
|
94
212
|
this.pendingFiles.delete(upload_name);
|
|
213
|
+
// The input that triggered this upload (if any), so a Proxied entry can
|
|
214
|
+
// serialize its enclosing form's fields. Consumed once, like pendingFiles.
|
|
215
|
+
const sourceInput = this.pendingInputs.get(upload_name);
|
|
216
|
+
this.pendingInputs.delete(upload_name);
|
|
95
217
|
// Build a map from file name to file object for lookup
|
|
96
218
|
const fileMap = new Map();
|
|
97
219
|
for (const file of files) {
|
|
@@ -114,7 +236,12 @@ class UploadHandler {
|
|
|
114
236
|
valid: info.valid,
|
|
115
237
|
done: false,
|
|
116
238
|
error: info.error,
|
|
239
|
+
// Normalize legacy responses (no mode) at the ingest boundary: a
|
|
240
|
+
// presigned entry is Direct, otherwise server-side Volume. Downstream
|
|
241
|
+
// dispatch then only ever sees a concrete mode.
|
|
242
|
+
mode: info.mode ?? (info.external ? "direct" : "volume"),
|
|
117
243
|
external: info.external,
|
|
244
|
+
sourceInput,
|
|
118
245
|
};
|
|
119
246
|
this.entries.set(entry.id, entry);
|
|
120
247
|
entries.push(entry);
|
|
@@ -125,16 +252,10 @@ class UploadHandler {
|
|
|
125
252
|
}
|
|
126
253
|
continue;
|
|
127
254
|
}
|
|
128
|
-
// Only start upload immediately if autoUpload is true
|
|
129
|
-
//
|
|
255
|
+
// Only start upload immediately if autoUpload is true; otherwise the entry
|
|
256
|
+
// waits for an explicit form-submit trigger.
|
|
130
257
|
if (info.auto_upload) {
|
|
131
|
-
|
|
132
|
-
if (info.external) {
|
|
133
|
-
this.uploadExternal(entry, info.external);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
this.uploadChunked(entry);
|
|
137
|
-
}
|
|
258
|
+
this.dispatchUpload(entry);
|
|
138
259
|
}
|
|
139
260
|
}
|
|
140
261
|
}
|
|
@@ -156,23 +277,198 @@ class UploadHandler {
|
|
|
156
277
|
entry_ids: [entry.id],
|
|
157
278
|
};
|
|
158
279
|
this.sendMessage(completeMessage);
|
|
159
|
-
|
|
160
|
-
|
|
280
|
+
this.finishUpload(entry);
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
284
|
+
entry.error = errorMsg;
|
|
285
|
+
if (this.onError) {
|
|
286
|
+
this.onError(entry, errorMsg);
|
|
161
287
|
}
|
|
162
|
-
//
|
|
163
|
-
this.clearFileInput(entry.uploadName);
|
|
164
|
-
// Schedule cleanup after completion
|
|
288
|
+
// Schedule cleanup after error
|
|
165
289
|
this.cleanupEntries(entry.uploadName);
|
|
166
290
|
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Upload a Proxied file as a single multipart POST to the live URL. The server
|
|
294
|
+
* streams the bytes straight to the app's OnUpload handler (zero local-disk
|
|
295
|
+
* staging) and dispatches the upload_<name>_complete action. Independent of
|
|
296
|
+
* the WebSocket, so it works with the socket disabled.
|
|
297
|
+
*/
|
|
298
|
+
async uploadProxied(entry) {
|
|
299
|
+
if (!this.postMultipartUpload) {
|
|
300
|
+
const msg = "Proxied upload unavailable: no multipart transport configured";
|
|
301
|
+
entry.error = msg;
|
|
302
|
+
if (this.onError)
|
|
303
|
+
this.onError(entry, msg);
|
|
304
|
+
this.cleanupEntries(entry.uploadName);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
entry.abortController = new AbortController();
|
|
308
|
+
this.pendingUploads.add(entry.abortController);
|
|
309
|
+
// A single fetch has no native upload progress, so emit a start event (0%)
|
|
310
|
+
// and let finishUpload emit 100% — a progress bar won't sit frozen with no
|
|
311
|
+
// signal at all.
|
|
312
|
+
if (this.onProgress)
|
|
313
|
+
this.onProgress(entry);
|
|
314
|
+
try {
|
|
315
|
+
const formData = new FormData();
|
|
316
|
+
// Write value fields BEFORE the file part so the server resolves the
|
|
317
|
+
// action regardless of multipart part ordering.
|
|
318
|
+
formData.set("lvt-action", `upload_${entry.uploadName}_complete`);
|
|
319
|
+
// Then the triggering input's enclosing form fields (e.g. a record id), so
|
|
320
|
+
// the server can associate the streamed bytes with a record in OnUpload.
|
|
321
|
+
this.appendFormFields(formData, entry);
|
|
322
|
+
formData.set(entry.uploadName, entry.file, entry.file.name);
|
|
323
|
+
await this.postMultipartUpload(formData, entry.abortController.signal);
|
|
324
|
+
this.finishUpload(entry);
|
|
325
|
+
}
|
|
167
326
|
catch (error) {
|
|
168
327
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
169
328
|
entry.error = errorMsg;
|
|
170
329
|
if (this.onError) {
|
|
171
330
|
this.onError(entry, errorMsg);
|
|
172
331
|
}
|
|
173
|
-
// Schedule cleanup after error
|
|
174
332
|
this.cleanupEntries(entry.uploadName);
|
|
175
333
|
}
|
|
334
|
+
finally {
|
|
335
|
+
if (entry.abortController)
|
|
336
|
+
this.pendingUploads.delete(entry.abortController);
|
|
337
|
+
// Release the DOM reference once the upload is done — the entry may linger
|
|
338
|
+
// until the cleanup timer fires, and only uploadProxied ever reads it.
|
|
339
|
+
entry.sourceInput = undefined;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* appendFormFields serializes the value fields of the form enclosing the
|
|
344
|
+
* upload's triggering input into formData, ahead of the file part — so a
|
|
345
|
+
* Proxied OnUpload handler can read them (e.g. a record id) mid-stream. Uses
|
|
346
|
+
* the browser's native form serialization (successful controls only), skipping
|
|
347
|
+
* File values (file inputs are sent as the streaming part) and the reserved
|
|
348
|
+
* lvt-action field. A no-op when the input is outside a form.
|
|
349
|
+
*
|
|
350
|
+
* A Proxied upload auto-fires on file selection (not an explicit submit), so it
|
|
351
|
+
* POSTs the whole enclosing form. Password inputs are excluded by name so
|
|
352
|
+
* credentials in a co-located form never ride along with an upload the user
|
|
353
|
+
* didn't deliberately submit; keep other sensitive controls out of a form that
|
|
354
|
+
* contains an auto-upload file input. (A broader opt-in model — only fields
|
|
355
|
+
* marked to travel — is tracked upstream as a safer-by-default follow-up.)
|
|
356
|
+
*
|
|
357
|
+
* Values are read here, at upload time (after the upload_start round-trip), not
|
|
358
|
+
* at file-selection time, so edits made between selecting the file and the
|
|
359
|
+
* upload completing are reflected — the freshest form state wins.
|
|
360
|
+
*/
|
|
361
|
+
appendFormFields(formData, entry) {
|
|
362
|
+
const form = entry.sourceInput?.form;
|
|
363
|
+
if (!form)
|
|
364
|
+
return;
|
|
365
|
+
// Collect password field names to exclude. Casting to HTMLInputElement is safe
|
|
366
|
+
// for the type check: only <input> has type="password"; <select>/<textarea>
|
|
367
|
+
// simply never match and are serialized normally by FormData below.
|
|
368
|
+
const passwordFields = new Set();
|
|
369
|
+
for (const el of Array.from(form.elements)) {
|
|
370
|
+
const input = el;
|
|
371
|
+
if (input.type === "password" && input.name)
|
|
372
|
+
passwordFields.add(input.name);
|
|
373
|
+
}
|
|
374
|
+
for (const [name, value] of new FormData(form).entries()) {
|
|
375
|
+
if (name === "lvt-action" || value instanceof File || passwordFields.has(name)) {
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
formData.append(name, value);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Preview mode: keep the file on the device and show it locally via an object
|
|
383
|
+
* URL. Nothing is uploaded — the server already has the file's metadata from
|
|
384
|
+
* the upload_start handshake. The blob URL is re-applied after server
|
|
385
|
+
* re-renders by hydratePreviews().
|
|
386
|
+
*/
|
|
387
|
+
uploadPreview(entry) {
|
|
388
|
+
// Revoke any prior preview for this field to avoid leaking object URLs.
|
|
389
|
+
const prev = this.previewUrls.get(entry.uploadName);
|
|
390
|
+
if (prev)
|
|
391
|
+
URL.revokeObjectURL(prev);
|
|
392
|
+
const url = URL.createObjectURL(entry.file);
|
|
393
|
+
this.previewUrls.set(entry.uploadName, url);
|
|
394
|
+
this.applyPreview(entry.uploadName, url);
|
|
395
|
+
// Share the completion path with every other mode (progress 100% tick,
|
|
396
|
+
// onComplete, input clear, cleanup). The blob URL lives in previewUrls, not
|
|
397
|
+
// the input, so it survives the clear.
|
|
398
|
+
this.finishUpload(entry);
|
|
399
|
+
}
|
|
400
|
+
/** Point every preview placeholder for uploadName at the given object URL. */
|
|
401
|
+
applyPreview(uploadName, url) {
|
|
402
|
+
// Escape the field name so a name with a quote/bracket can't break or inject
|
|
403
|
+
// into the selector. Prefer CSS.escape; without it, only proceed for a simple
|
|
404
|
+
// identifier (the normal case) and otherwise skip rather than run a
|
|
405
|
+
// possibly-broken selector (hydratePreviews still re-applies via attr reads).
|
|
406
|
+
let safeName;
|
|
407
|
+
if (typeof CSS !== "undefined" && CSS.escape) {
|
|
408
|
+
safeName = CSS.escape(uploadName);
|
|
409
|
+
}
|
|
410
|
+
else if (/^[\w-]+$/.test(uploadName)) {
|
|
411
|
+
safeName = uploadName;
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
const els = document.querySelectorAll(`[data-lvt-upload-preview="${safeName}"]`);
|
|
417
|
+
els.forEach((el) => {
|
|
418
|
+
if (el instanceof HTMLImageElement) {
|
|
419
|
+
if (el.src !== url)
|
|
420
|
+
el.src = url;
|
|
421
|
+
}
|
|
422
|
+
else if (el.getAttribute("src") !== url) {
|
|
423
|
+
el.setAttribute("src", url);
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Re-attach Preview-mode blob URLs after a DOM morph. The server re-renders
|
|
429
|
+
* the {{.lvt.UploadPreview}} placeholder with an empty src, so this restores
|
|
430
|
+
* the local object URL the visitor selected. Called by the client post-update.
|
|
431
|
+
*/
|
|
432
|
+
hydratePreviews(root) {
|
|
433
|
+
const apply = (el) => {
|
|
434
|
+
const name = el.getAttribute("data-lvt-upload-preview");
|
|
435
|
+
if (!name)
|
|
436
|
+
return;
|
|
437
|
+
const url = this.previewUrls.get(name);
|
|
438
|
+
if (!url)
|
|
439
|
+
return;
|
|
440
|
+
if (el instanceof HTMLImageElement) {
|
|
441
|
+
if (el.src !== url)
|
|
442
|
+
el.src = url;
|
|
443
|
+
}
|
|
444
|
+
else if (el.getAttribute("src") !== url) {
|
|
445
|
+
el.setAttribute("src", url);
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
// querySelectorAll skips the root itself, so match it explicitly.
|
|
449
|
+
if (root.matches("[data-lvt-upload-preview]"))
|
|
450
|
+
apply(root);
|
|
451
|
+
root
|
|
452
|
+
.querySelectorAll("[data-lvt-upload-preview]")
|
|
453
|
+
.forEach(apply);
|
|
454
|
+
}
|
|
455
|
+
/** Revoke all preview object URLs. Called on teardown to avoid leaks. */
|
|
456
|
+
revokePreviews() {
|
|
457
|
+
// Abort in-flight offline handshakes and proxied upload fetches first, so a
|
|
458
|
+
// late resolution doesn't create a preview URL or apply a tree update after
|
|
459
|
+
// the client has torn down.
|
|
460
|
+
for (const controller of this.pendingHandshakes) {
|
|
461
|
+
controller.abort();
|
|
462
|
+
}
|
|
463
|
+
this.pendingHandshakes.clear();
|
|
464
|
+
for (const controller of this.pendingUploads) {
|
|
465
|
+
controller.abort();
|
|
466
|
+
}
|
|
467
|
+
this.pendingUploads.clear();
|
|
468
|
+
for (const url of this.previewUrls.values()) {
|
|
469
|
+
URL.revokeObjectURL(url);
|
|
470
|
+
}
|
|
471
|
+
this.previewUrls.clear();
|
|
176
472
|
}
|
|
177
473
|
/**
|
|
178
474
|
* Upload file in chunks via WebSocket
|
|
@@ -218,13 +514,7 @@ class UploadHandler {
|
|
|
218
514
|
entry_ids: [id],
|
|
219
515
|
};
|
|
220
516
|
this.sendMessage(completeMessage);
|
|
221
|
-
|
|
222
|
-
this.onComplete(entry.uploadName, [entry]);
|
|
223
|
-
}
|
|
224
|
-
// Clear the file input to prevent re-upload of the same file
|
|
225
|
-
this.clearFileInput(entry.uploadName);
|
|
226
|
-
// Schedule cleanup after completion
|
|
227
|
-
this.cleanupEntries(entry.uploadName);
|
|
517
|
+
this.finishUpload(entry);
|
|
228
518
|
}
|
|
229
519
|
catch (error) {
|
|
230
520
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -297,12 +587,7 @@ class UploadHandler {
|
|
|
297
587
|
}
|
|
298
588
|
// Start uploads
|
|
299
589
|
for (const entry of pendingEntries) {
|
|
300
|
-
|
|
301
|
-
this.uploadExternal(entry, entry.external);
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
this.uploadChunked(entry);
|
|
305
|
-
}
|
|
590
|
+
this.dispatchUpload(entry);
|
|
306
591
|
}
|
|
307
592
|
}
|
|
308
593
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-handler.js","sourceRoot":"","sources":["../../upload/upload-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload-handler.js","sourceRoot":"","sources":["../../upload/upload-handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED