@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.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../upload/types.ts"],"names":[],"mappings":"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"}
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;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,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,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,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,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAKlC,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;AAC1F,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CACJ,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,kBAAkB,EACxB,UAAU,CAAC,EAAE,sBAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
@@ -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;IAYtB,OAAO,CAAC,WAAW;IAXrB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,YAAY,CAAkC;IACtD,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,aAAa,CAA2D;gBAGtE,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAC3C,OAAO,GAAE,oBAAyB;IAWpC;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,OAAO;IA+BvC;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE;;OAEG;IACG,yBAAyB,CAC7B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAyEhB;;OAEG;YACW,cAAc;IA0C5B;;OAEG;YACW,aAAa;IAuE3B;;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;IAwB/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"}
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
- this.startUpload(uploadName, Array.from(files));
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
- // Otherwise, entries are stored and will be uploaded on form submit
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
- // Start upload (external or chunked)
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
- if (this.onComplete) {
160
- this.onComplete(entry.uploadName, [entry]);
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
- // Clear the file input to prevent re-upload of the same file
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
- if (this.onComplete) {
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
- if (entry.external) {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livetemplate/client",
3
- "version": "0.11.9",
3
+ "version": "0.13.0",
4
4
  "description": "TypeScript client for LiveTemplate tree-based updates",
5
5
  "main": "dist/livetemplate-client.js",
6
6
  "browser": "dist/livetemplate-client.browser.js",