@livetemplate/client 0.11.8 → 0.12.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.
@@ -13,12 +13,23 @@ export interface UploadConfig {
13
13
  autoUpload?: boolean;
14
14
  chunkSize?: number;
15
15
  }
16
+ /**
17
+ * UploadMode mirrors the server's UploadConfig.Mode. It is chosen purely by
18
+ * server config and delivered per-entry in the upload_start response; the client
19
+ * dispatches the matching transport.
20
+ * - "volume": WebSocket-chunked staging to the server's disk
21
+ * - "direct": browser → cloud via a presigned URL (carries `external`)
22
+ * - "proxied": one multipart POST per file → server streams to remote storage
23
+ * - "preview": file stays on device; only metadata is sent
24
+ */
25
+ export type UploadMode = "volume" | "direct" | "proxied" | "preview";
16
26
  export interface UploadEntryInfo {
17
27
  entry_id: string;
18
28
  client_name: string;
19
29
  valid: boolean;
20
30
  error?: string;
21
31
  auto_upload: boolean;
32
+ mode?: UploadMode;
22
33
  external?: ExternalUploadMeta;
23
34
  }
24
35
  export interface ExternalUploadMeta {
@@ -79,6 +90,7 @@ export interface UploadEntry {
79
90
  valid: boolean;
80
91
  done: boolean;
81
92
  error?: string;
93
+ mode?: UploadMode;
82
94
  external?: ExternalUploadMeta;
83
95
  abortController?: AbortController;
84
96
  }
@@ -90,6 +102,24 @@ export interface UploadHandlerOptions {
90
102
  onProgress?: UploadProgressCallback;
91
103
  onComplete?: UploadCompleteCallback;
92
104
  onError?: UploadErrorCallback;
105
+ /**
106
+ * Posts a Proxied upload's multipart body (file + action fields) to the live
107
+ * URL and applies the server's tree response. Injected by the LiveTemplate
108
+ * client so the upload handler stays transport-agnostic. Resolves when the
109
+ * POST completes; rejects on a non-2xx response.
110
+ */
111
+ postMultipartUpload?: (formData: FormData, signal?: AbortSignal) => Promise<void>;
112
+ /**
113
+ * Reports whether the WebSocket is currently usable. When false, the upload
114
+ * handshake is sent over HTTP instead (see postUploadStart).
115
+ */
116
+ isConnected?: () => boolean;
117
+ /**
118
+ * Posts an upload_start handshake over HTTP and returns the parsed response.
119
+ * Used when the WebSocket is down so mode dispatch (and Direct presign) still
120
+ * work. Injected by the LiveTemplate client; rejects on a non-2xx response.
121
+ */
122
+ postUploadStart?: (message: UploadStartMessage, signal?: AbortSignal) => Promise<UploadStartResponse>;
93
123
  }
94
124
  export interface Uploader {
95
125
  upload(entry: UploadEntry, meta: ExternalUploadMeta, onProgress?: UploadProgressCallback): Promise<void>;
@@ -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;CACnC;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"}
@@ -19,8 +19,27 @@ export declare class UploadHandler {
19
19
  private onProgress?;
20
20
  private onComplete?;
21
21
  private onError?;
22
+ private postMultipartUpload?;
23
+ private isConnected?;
24
+ private postUploadStart?;
25
+ private pendingHandshakes;
26
+ private pendingUploads;
27
+ private previewUrls;
22
28
  private inputHandlers;
23
29
  constructor(sendMessage: (message: any) => void, options?: UploadHandlerOptions);
30
+ /**
31
+ * Dispatch a valid upload entry to the transport its mode requires. The server
32
+ * declares the mode per-entry; existing entries that only carry `external`
33
+ * (no mode) fall back to the Direct path for backward compatibility.
34
+ */
35
+ private dispatchUpload;
36
+ /**
37
+ * Mark an upload finished and run the shared post-completion steps: fire the
38
+ * onComplete callback, clear the file input, and schedule entry cleanup.
39
+ * Callers that talk to the server (chunked/external) send their own
40
+ * upload_complete message first.
41
+ */
42
+ private finishUpload;
24
43
  /**
25
44
  * Initialize upload detection on file inputs with lvt-upload attribute
26
45
  */
@@ -29,6 +48,7 @@ export declare class UploadHandler {
29
48
  * Start upload process for selected files
30
49
  */
31
50
  startUpload(uploadName: string, files: File[]): Promise<void>;
51
+ private failStart;
32
52
  /**
33
53
  * Handle upload_start response from server
34
54
  */
@@ -37,6 +57,30 @@ export declare class UploadHandler {
37
57
  * Upload file using external uploader (S3, etc.)
38
58
  */
39
59
  private uploadExternal;
60
+ /**
61
+ * Upload a Proxied file as a single multipart POST to the live URL. The server
62
+ * streams the bytes straight to the app's OnUpload handler (zero local-disk
63
+ * staging) and dispatches the upload_<name>_complete action. Independent of
64
+ * the WebSocket, so it works with the socket disabled.
65
+ */
66
+ private uploadProxied;
67
+ /**
68
+ * Preview mode: keep the file on the device and show it locally via an object
69
+ * URL. Nothing is uploaded — the server already has the file's metadata from
70
+ * the upload_start handshake. The blob URL is re-applied after server
71
+ * re-renders by hydratePreviews().
72
+ */
73
+ private uploadPreview;
74
+ /** Point every preview placeholder for uploadName at the given object URL. */
75
+ private applyPreview;
76
+ /**
77
+ * Re-attach Preview-mode blob URLs after a DOM morph. The server re-renders
78
+ * the {{.lvt.UploadPreview}} placeholder with an empty src, so this restores
79
+ * the local object URL the visitor selected. Called by the client post-update.
80
+ */
81
+ hydratePreviews(root: Element): void;
82
+ /** Revoke all preview object URLs. Called on teardown to avoid leaks. */
83
+ revokePreviews(): void;
40
84
  /**
41
85
  * Upload file in chunks via WebSocket
42
86
  */
@@ -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;IAwBtB,OAAO,CAAC,WAAW;IAvBrB,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,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;IA+BvC;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DnE,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACG,yBAAyB,CAC7B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAwEhB;;OAEG;YACW,cAAc;IAiC5B;;;;;OAKG;YACW,aAAa;IAqC3B;;;;;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"}
@@ -19,14 +19,75 @@ class UploadHandler {
19
19
  this.pendingFiles = new Map(); // uploadName -> files
20
20
  this.autoUploadConfig = new Map(); // uploadName -> autoUpload
21
21
  this.uploaders = new Map();
22
+ this.pendingHandshakes = new Set();
23
+ this.pendingUploads = new Set(); // in-flight proxied fetches
24
+ this.previewUrls = new Map(); // uploadName -> object URL
22
25
  this.inputHandlers = new WeakMap();
23
26
  this.chunkSize = options.chunkSize || 256 * 1024; // 256KB default
24
27
  this.onProgress = options.onProgress;
25
28
  this.onComplete = options.onComplete;
26
29
  this.onError = options.onError;
30
+ this.postMultipartUpload = options.postMultipartUpload;
31
+ this.isConnected = options.isConnected;
32
+ this.postUploadStart = options.postUploadStart;
27
33
  // Register default uploaders
28
34
  this.uploaders.set("s3", new s3_uploader_1.S3Uploader());
29
35
  }
36
+ /**
37
+ * Dispatch a valid upload entry to the transport its mode requires. The server
38
+ * declares the mode per-entry; existing entries that only carry `external`
39
+ * (no mode) fall back to the Direct path for backward compatibility.
40
+ */
41
+ dispatchUpload(entry) {
42
+ switch (entry.mode) {
43
+ case "preview":
44
+ this.uploadPreview(entry);
45
+ return;
46
+ case "proxied":
47
+ void this.uploadProxied(entry);
48
+ return;
49
+ case "direct":
50
+ if (entry.external) {
51
+ void this.uploadExternal(entry, entry.external);
52
+ }
53
+ else {
54
+ // Direct requires presign metadata; surface the misconfig instead of
55
+ // silently abandoning the entry.
56
+ const msg = "direct upload mode requires presigned upload metadata";
57
+ entry.error = msg;
58
+ if (this.onError)
59
+ this.onError(entry, msg);
60
+ this.cleanupEntries(entry.uploadName);
61
+ }
62
+ return;
63
+ case "volume":
64
+ default:
65
+ // entry.mode is normalized to a concrete mode at ingest (see
66
+ // handleUploadStartResponse), so the default is just the Volume path.
67
+ void this.uploadChunked(entry);
68
+ }
69
+ }
70
+ /**
71
+ * Mark an upload finished and run the shared post-completion steps: fire the
72
+ * onComplete callback, clear the file input, and schedule entry cleanup.
73
+ * Callers that talk to the server (chunked/external) send their own
74
+ * upload_complete message first.
75
+ */
76
+ finishUpload(entry) {
77
+ entry.done = true;
78
+ entry.progress = 100;
79
+ // Emit a final 100% tick so every completed path (proxied included) sends it
80
+ // — a progress bar waiting on 100% won't hang. Idempotent for chunked/external
81
+ // which already reach 100% during transfer.
82
+ if (this.onProgress) {
83
+ this.onProgress(entry);
84
+ }
85
+ if (this.onComplete) {
86
+ this.onComplete(entry.uploadName, [entry]);
87
+ }
88
+ this.clearFileInput(entry.uploadName);
89
+ this.cleanupEntries(entry.uploadName);
90
+ }
30
91
  /**
31
92
  * Initialize upload detection on file inputs with lvt-upload attribute
32
93
  */
@@ -67,14 +128,62 @@ class UploadHandler {
67
128
  type: file.type || "application/octet-stream",
68
129
  size: file.size,
69
130
  }));
70
- // Send upload_start message to server
71
131
  const startMessage = {
72
132
  action: "upload_start",
73
133
  upload_name: uploadName,
74
134
  files: fileMetadata,
75
135
  };
136
+ // Over an open WebSocket the server replies with a separate
137
+ // UploadStartResponse message (routed to handleUploadStartResponse). With
138
+ // the socket down, post the handshake over HTTP and handle the response
139
+ // inline so mode dispatch (and Direct presign) still work.
140
+ const connected = this.isConnected ? this.isConnected() : true;
141
+ if (!connected) {
142
+ if (!this.postUploadStart) {
143
+ this.failStart(uploadName, files, "upload unavailable: WebSocket is closed and no HTTP fallback is configured");
144
+ return;
145
+ }
146
+ const controller = new AbortController();
147
+ this.pendingHandshakes.add(controller);
148
+ try {
149
+ const response = await this.postUploadStart(startMessage, controller.signal);
150
+ // Skip if teardown aborted us mid-flight, so we don't create a preview
151
+ // object URL after revokePreviews already ran.
152
+ if (!controller.signal.aborted) {
153
+ await this.handleUploadStartResponse(response);
154
+ }
155
+ }
156
+ catch (error) {
157
+ this.failStart(uploadName, files, error instanceof Error ? error.message : String(error));
158
+ }
159
+ finally {
160
+ this.pendingHandshakes.delete(controller);
161
+ }
162
+ return;
163
+ }
76
164
  this.sendMessage(startMessage);
77
165
  }
166
+ // failStart reports a handshake failure on every selected file and clears the
167
+ // pending set, so a startUpload that can't reach the server isn't silent.
168
+ failStart(uploadName, files, message) {
169
+ this.pendingFiles.delete(uploadName);
170
+ const onError = this.onError;
171
+ if (!onError)
172
+ return;
173
+ // Distinct synthetic ids per file (no server entry exists yet) so a consumer
174
+ // keying per-file error state doesn't collapse a multi-file failure.
175
+ files.forEach((file, i) => {
176
+ onError({
177
+ id: `pending-${uploadName}-${i}`,
178
+ file,
179
+ uploadName,
180
+ progress: 0,
181
+ bytesUploaded: 0,
182
+ valid: false,
183
+ done: false,
184
+ }, message);
185
+ });
186
+ }
78
187
  /**
79
188
  * Handle upload_start response from server
80
189
  */
@@ -114,6 +223,10 @@ class UploadHandler {
114
223
  valid: info.valid,
115
224
  done: false,
116
225
  error: info.error,
226
+ // Normalize legacy responses (no mode) at the ingest boundary: a
227
+ // presigned entry is Direct, otherwise server-side Volume. Downstream
228
+ // dispatch then only ever sees a concrete mode.
229
+ mode: info.mode ?? (info.external ? "direct" : "volume"),
117
230
  external: info.external,
118
231
  };
119
232
  this.entries.set(entry.id, entry);
@@ -125,16 +238,10 @@ class UploadHandler {
125
238
  }
126
239
  continue;
127
240
  }
128
- // Only start upload immediately if autoUpload is true
129
- // Otherwise, entries are stored and will be uploaded on form submit
241
+ // Only start upload immediately if autoUpload is true; otherwise the entry
242
+ // waits for an explicit form-submit trigger.
130
243
  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
- }
244
+ this.dispatchUpload(entry);
138
245
  }
139
246
  }
140
247
  }
@@ -156,13 +263,48 @@ class UploadHandler {
156
263
  entry_ids: [entry.id],
157
264
  };
158
265
  this.sendMessage(completeMessage);
159
- if (this.onComplete) {
160
- this.onComplete(entry.uploadName, [entry]);
266
+ this.finishUpload(entry);
267
+ }
268
+ catch (error) {
269
+ const errorMsg = error instanceof Error ? error.message : String(error);
270
+ entry.error = errorMsg;
271
+ if (this.onError) {
272
+ this.onError(entry, errorMsg);
161
273
  }
162
- // Clear the file input to prevent re-upload of the same file
163
- this.clearFileInput(entry.uploadName);
164
- // Schedule cleanup after completion
274
+ // Schedule cleanup after error
275
+ this.cleanupEntries(entry.uploadName);
276
+ }
277
+ }
278
+ /**
279
+ * Upload a Proxied file as a single multipart POST to the live URL. The server
280
+ * streams the bytes straight to the app's OnUpload handler (zero local-disk
281
+ * staging) and dispatches the upload_<name>_complete action. Independent of
282
+ * the WebSocket, so it works with the socket disabled.
283
+ */
284
+ async uploadProxied(entry) {
285
+ if (!this.postMultipartUpload) {
286
+ const msg = "Proxied upload unavailable: no multipart transport configured";
287
+ entry.error = msg;
288
+ if (this.onError)
289
+ this.onError(entry, msg);
165
290
  this.cleanupEntries(entry.uploadName);
291
+ return;
292
+ }
293
+ entry.abortController = new AbortController();
294
+ this.pendingUploads.add(entry.abortController);
295
+ // A single fetch has no native upload progress, so emit a start event (0%)
296
+ // and let finishUpload emit 100% — a progress bar won't sit frozen with no
297
+ // signal at all.
298
+ if (this.onProgress)
299
+ this.onProgress(entry);
300
+ try {
301
+ const formData = new FormData();
302
+ // Write value fields BEFORE the file part so the server resolves the
303
+ // action regardless of multipart part ordering.
304
+ formData.set("lvt-action", `upload_${entry.uploadName}_complete`);
305
+ formData.set(entry.uploadName, entry.file, entry.file.name);
306
+ await this.postMultipartUpload(formData, entry.abortController.signal);
307
+ this.finishUpload(entry);
166
308
  }
167
309
  catch (error) {
168
310
  const errorMsg = error instanceof Error ? error.message : String(error);
@@ -170,9 +312,104 @@ class UploadHandler {
170
312
  if (this.onError) {
171
313
  this.onError(entry, errorMsg);
172
314
  }
173
- // Schedule cleanup after error
174
315
  this.cleanupEntries(entry.uploadName);
175
316
  }
317
+ finally {
318
+ if (entry.abortController)
319
+ this.pendingUploads.delete(entry.abortController);
320
+ }
321
+ }
322
+ /**
323
+ * Preview mode: keep the file on the device and show it locally via an object
324
+ * URL. Nothing is uploaded — the server already has the file's metadata from
325
+ * the upload_start handshake. The blob URL is re-applied after server
326
+ * re-renders by hydratePreviews().
327
+ */
328
+ uploadPreview(entry) {
329
+ // Revoke any prior preview for this field to avoid leaking object URLs.
330
+ const prev = this.previewUrls.get(entry.uploadName);
331
+ if (prev)
332
+ URL.revokeObjectURL(prev);
333
+ const url = URL.createObjectURL(entry.file);
334
+ this.previewUrls.set(entry.uploadName, url);
335
+ this.applyPreview(entry.uploadName, url);
336
+ // Share the completion path with every other mode (progress 100% tick,
337
+ // onComplete, input clear, cleanup). The blob URL lives in previewUrls, not
338
+ // the input, so it survives the clear.
339
+ this.finishUpload(entry);
340
+ }
341
+ /** Point every preview placeholder for uploadName at the given object URL. */
342
+ applyPreview(uploadName, url) {
343
+ // Escape the field name so a name with a quote/bracket can't break or inject
344
+ // into the selector. Prefer CSS.escape; without it, only proceed for a simple
345
+ // identifier (the normal case) and otherwise skip rather than run a
346
+ // possibly-broken selector (hydratePreviews still re-applies via attr reads).
347
+ let safeName;
348
+ if (typeof CSS !== "undefined" && CSS.escape) {
349
+ safeName = CSS.escape(uploadName);
350
+ }
351
+ else if (/^[\w-]+$/.test(uploadName)) {
352
+ safeName = uploadName;
353
+ }
354
+ else {
355
+ return;
356
+ }
357
+ const els = document.querySelectorAll(`[data-lvt-upload-preview="${safeName}"]`);
358
+ els.forEach((el) => {
359
+ if (el instanceof HTMLImageElement) {
360
+ if (el.src !== url)
361
+ el.src = url;
362
+ }
363
+ else if (el.getAttribute("src") !== url) {
364
+ el.setAttribute("src", url);
365
+ }
366
+ });
367
+ }
368
+ /**
369
+ * Re-attach Preview-mode blob URLs after a DOM morph. The server re-renders
370
+ * the {{.lvt.UploadPreview}} placeholder with an empty src, so this restores
371
+ * the local object URL the visitor selected. Called by the client post-update.
372
+ */
373
+ hydratePreviews(root) {
374
+ const apply = (el) => {
375
+ const name = el.getAttribute("data-lvt-upload-preview");
376
+ if (!name)
377
+ return;
378
+ const url = this.previewUrls.get(name);
379
+ if (!url)
380
+ return;
381
+ if (el instanceof HTMLImageElement) {
382
+ if (el.src !== url)
383
+ el.src = url;
384
+ }
385
+ else if (el.getAttribute("src") !== url) {
386
+ el.setAttribute("src", url);
387
+ }
388
+ };
389
+ // querySelectorAll skips the root itself, so match it explicitly.
390
+ if (root.matches("[data-lvt-upload-preview]"))
391
+ apply(root);
392
+ root
393
+ .querySelectorAll("[data-lvt-upload-preview]")
394
+ .forEach(apply);
395
+ }
396
+ /** Revoke all preview object URLs. Called on teardown to avoid leaks. */
397
+ revokePreviews() {
398
+ // Abort in-flight offline handshakes and proxied upload fetches first, so a
399
+ // late resolution doesn't create a preview URL or apply a tree update after
400
+ // the client has torn down.
401
+ for (const controller of this.pendingHandshakes) {
402
+ controller.abort();
403
+ }
404
+ this.pendingHandshakes.clear();
405
+ for (const controller of this.pendingUploads) {
406
+ controller.abort();
407
+ }
408
+ this.pendingUploads.clear();
409
+ for (const url of this.previewUrls.values()) {
410
+ URL.revokeObjectURL(url);
411
+ }
412
+ this.previewUrls.clear();
176
413
  }
177
414
  /**
178
415
  * Upload file in chunks via WebSocket
@@ -218,13 +455,7 @@ class UploadHandler {
218
455
  entry_ids: [id],
219
456
  };
220
457
  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);
458
+ this.finishUpload(entry);
228
459
  }
229
460
  catch (error) {
230
461
  const errorMsg = error instanceof Error ? error.message : String(error);
@@ -297,12 +528,7 @@ class UploadHandler {
297
528
  }
298
529
  // Start uploads
299
530
  for (const entry of pendingEntries) {
300
- if (entry.external) {
301
- this.uploadExternal(entry, entry.external);
302
- }
303
- else {
304
- this.uploadChunked(entry);
305
- }
531
+ this.dispatchUpload(entry);
306
532
  }
307
533
  }
308
534
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"upload-handler.js","sourceRoot":"","sources":["../../upload/upload-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,+CAA2C;AAc3C,MAAa,aAAa;IAWxB,YACU,WAAmC,EAC3C,UAAgC,EAAE;QAD1B,gBAAW,GAAX,WAAW,CAAwB;QAXrC,YAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC9C,iBAAY,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,sBAAsB;QACrE,qBAAgB,GAAyB,IAAI,GAAG,EAAE,CAAC,CAAC,2BAA2B;QAE/E,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAI7C,kBAAa,GAA6C,IAAI,OAAO,EAAE,CAAC;QAM9E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,gBAAgB;QAClE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,6BAA6B;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,wBAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,SAAkB;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CACvC,gCAAgC,CACjC,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU;gBAAE,OAAO;YAExB,kCAAkC;YAClC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACvD,CAAC;YAED,qBAAqB;YACrB,MAAM,OAAO,GAAG,CAAC,CAAQ,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;gBACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAEzC,wDAAwD;gBACxD,qDAAqD;gBACrD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC;YAEF,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,mDAAmD;YACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,KAAa;QACjD,2DAA2D;QAC3D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEzC,uBAAuB;QACvB,MAAM,YAAY,GAAmB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,0BAA0B;YAC7C,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,sCAAsC;QACtC,MAAM,YAAY,GAAuB;YACvC,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,QAA6B;QAE7B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAEtD,kDAAkD;QAClD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpE,CAAC;QAED,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtC,uDAAuD;QACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE3C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CACV,2BAA2B,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,WAAW,GAAG,CAC9E,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAgB;gBACzB,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACjB,IAAI;gBACJ,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpB,yBAAyB;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,sDAAsD;YACtD,oEAAoE;YACpE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,qCAAqC;gBACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,KAAkB,EAClB,IAAwB;QAExB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,+CAA+C;YAC/C,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpD,8BAA8B;YAC9B,MAAM,eAAe,GAA0B;gBAC7C,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;aACtB,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,CAAC;YAED,6DAA6D;YAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEtC,oCAAoC;YACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,+BAA+B;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,KAAkB;QAC5C,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,2CAA2C;QAC3C,KAAK,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,gCAAgC;gBAChC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACtC,CAAC;gBACD,aAAa;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEtC,oBAAoB;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAE9C,aAAa;gBACb,MAAM,YAAY,GAAuB;oBACvC,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,EAAE;oBACZ,YAAY,EAAE,MAAM;oBACpB,MAAM;oBACN,KAAK,EAAE,IAAI,CAAC,IAAI;iBACjB,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAE/B,kBAAkB;gBAClB,MAAM,GAAG,GAAG,CAAC;gBACb,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAExD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,MAAM,eAAe,GAA0B;gBAC7C,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,SAAS,EAAE,CAAC,EAAE,CAAC;aAChB,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,CAAC;YAED,6DAA6D;YAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEtC,oCAAoC;YACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,+BAA+B;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAA8B;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;QAEzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAe;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,uCAAuC;QACvC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,WAAW,CAAC;YACf,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,UAAkB;QAC3B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,UAAkB;QACtC,2DAA2D;QAC3D,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IACE,KAAK,CAAC,UAAU,KAAK,UAAU;gBAC/B,KAAK,CAAC,QAAQ,KAAK,CAAC;gBACpB,CAAC,KAAK,CAAC,IAAI;gBACX,CAAC,KAAK,CAAC,KAAK,EACZ,CAAC;gBACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY,EAAE,QAAkB;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,UAAkB;QACvC,6CAA6C;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CACtC,kCAAkC,UAAU,IAAI,CACjD,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,6BAA6B;YAC7B,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,UAAmB,EAAE,QAAgB,IAAI;QACtD,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,eAAe,GAAa,EAAE,CAAC;YAErC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvC,oDAAoD;gBACpD,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;oBAAE,SAAS;gBAE5D,sCAAsC;gBACtC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC9B,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAU;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;gBACvC,yBAAyB;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;YACF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;YACxB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtaD,sCAsaC"}
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.8",
3
+ "version": "0.12.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",