@ceki/sdk 1.9.1 → 1.10.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/index.cjs CHANGED
@@ -192,6 +192,9 @@ var ChatSendFailed = class extends CekiBrowserError {
192
192
  }
193
193
  };
194
194
 
195
+ // src/browser.ts
196
+ var import_mime_types = __toESM(require("mime-types"), 1);
197
+
195
198
  // src/chat.ts
196
199
  var crypto = __toESM(require("crypto"), 1);
197
200
  var fs = __toESM(require("fs"), 1);
@@ -257,7 +260,7 @@ var BrowserChat = class {
257
260
  if (buf.length > MAX_IMAGE_SIZE) {
258
261
  throw new Error(`Image too large: ${buf.length} bytes (max ${MAX_IMAGE_SIZE})`);
259
262
  }
260
- const { mime, ext } = detectMime(buf);
263
+ const { mime: mime2, ext } = detectMime(buf);
261
264
  if (!filename.includes(".")) {
262
265
  filename = `${filename}.${ext}`;
263
266
  }
@@ -268,7 +271,7 @@ var BrowserChat = class {
268
271
  session_id: this._browser.sessionId,
269
272
  client_msg_id: clientMsgId,
270
273
  filename,
271
- mime,
274
+ mime: mime2,
272
275
  data_b64
273
276
  };
274
277
  if (text) msg.text = text;
@@ -617,7 +620,7 @@ function keymapForChar(char) {
617
620
  }
618
621
 
619
622
  // src/browser.ts
620
- var Browser = class {
623
+ var Browser = class _Browser {
621
624
  sessionId;
622
625
  browserId;
623
626
  scheduleId;
@@ -857,7 +860,10 @@ var Browser = class {
857
860
  ts: /* @__PURE__ */ new Date()
858
861
  };
859
862
  }
860
- async upload(selector, source, filename) {
863
+ static _detectMime(filename) {
864
+ return import_mime_types.default.lookup(filename) || "application/octet-stream";
865
+ }
866
+ async upload(selector, source, filename, mime2) {
861
867
  let buf;
862
868
  let resolvedFilename;
863
869
  if (typeof source === "string") {
@@ -869,6 +875,8 @@ var Browser = class {
869
875
  buf = Buffer.isBuffer(source) ? source : Buffer.from(source);
870
876
  resolvedFilename = filename ?? "file";
871
877
  }
878
+ const mimeType = mime2 ?? _Browser._detectMime(resolvedFilename);
879
+ console.info(`upload: file=${resolvedFilename} mime=${mimeType} size=${buf.length}`);
872
880
  const b64 = buf.toString("base64");
873
881
  const size = buf.length;
874
882
  const expression = `
@@ -879,7 +887,7 @@ var Browser = class {
879
887
  var binary = atob(b64);
880
888
  var bytes = new Uint8Array(binary.length);
881
889
  for (var i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
882
- var file = new File([bytes], ${JSON.stringify(resolvedFilename)}, {type: 'application/octet-stream'});
890
+ var file = new File([bytes], ${JSON.stringify(resolvedFilename)}, {type: ${JSON.stringify(mimeType)}});
883
891
  var dt = new DataTransfer();
884
892
  dt.items.add(file);
885
893
  input.files = dt.files;
@@ -892,6 +900,17 @@ var Browser = class {
892
900
  params: { expression, returnByValue: true }
893
901
  });
894
902
  const resultObj = result?.result;
903
+ try {
904
+ await this.send({
905
+ method: "Input.dispatchKeyEvent",
906
+ params: { type: "keyDown", key: "Escape", code: "Escape", windowsVirtualKeyCode: 27, nativeVirtualKeyCode: 27 }
907
+ });
908
+ await this.send({
909
+ method: "Input.dispatchKeyEvent",
910
+ params: { type: "keyUp", key: "Escape", code: "Escape", windowsVirtualKeyCode: 27, nativeVirtualKeyCode: 27 }
911
+ });
912
+ } catch {
913
+ }
895
914
  if (resultObj?.value) {
896
915
  return JSON.parse(String(resultObj.value));
897
916
  }