@salve-software/react-native-nitro-jsdom 1.1.0 → 2.1.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.
Files changed (54) hide show
  1. package/android/CMakeLists.txt +6 -0
  2. package/cpp/HybridHtmlSandbox.cpp +14 -7
  3. package/cpp/HybridHtmlSandbox.hpp +1 -1
  4. package/cpp/lexbor/LexborDocument.cpp +65 -3
  5. package/cpp/lexbor/LexborDocument.hpp +17 -2
  6. package/cpp/quickjs/DOMBindings.cpp +14 -1
  7. package/cpp/quickjs/DOMBindingsInternal.cpp +67 -0
  8. package/cpp/quickjs/DOMBindingsInternal.hpp +39 -0
  9. package/cpp/quickjs/QuickJSRuntime.cpp +13 -0
  10. package/cpp/quickjs/QuickJSRuntime.hpp +29 -0
  11. package/cpp/quickjs/bindings/AbortBindings.cpp +14 -0
  12. package/cpp/quickjs/bindings/BlobBindings.cpp +28 -1
  13. package/cpp/quickjs/bindings/BlobBindings.hpp +3 -3
  14. package/cpp/quickjs/bindings/CSSOMBindings.cpp +96 -0
  15. package/cpp/quickjs/bindings/CSSOMBindings.hpp +3 -1
  16. package/cpp/quickjs/bindings/CustomElementsBindings.cpp +1 -1
  17. package/cpp/quickjs/bindings/DOMParserBindings.cpp +299 -0
  18. package/cpp/quickjs/bindings/DOMParserBindings.hpp +45 -0
  19. package/cpp/quickjs/bindings/DocumentBindings.cpp +174 -11
  20. package/cpp/quickjs/bindings/ElementBindings.cpp +516 -20
  21. package/cpp/quickjs/bindings/EventBindings.cpp +281 -5
  22. package/cpp/quickjs/bindings/EventBindings.hpp +3 -0
  23. package/cpp/quickjs/bindings/EventTargetBindings.cpp +75 -0
  24. package/cpp/quickjs/bindings/EventTargetBindings.hpp +24 -0
  25. package/cpp/quickjs/bindings/FetchBindings.cpp +43 -8
  26. package/cpp/quickjs/bindings/FormBindings.cpp +294 -0
  27. package/cpp/quickjs/bindings/FormBindings.hpp +9 -5
  28. package/cpp/quickjs/bindings/IntlBindings.cpp +352 -0
  29. package/cpp/quickjs/bindings/IntlBindings.hpp +29 -0
  30. package/cpp/quickjs/bindings/LayoutStubBindings.cpp +104 -0
  31. package/cpp/quickjs/bindings/LayoutStubBindings.hpp +28 -0
  32. package/cpp/quickjs/bindings/LiveCollectionBindings.cpp +45 -0
  33. package/cpp/quickjs/bindings/TimerBindings.cpp +79 -0
  34. package/cpp/quickjs/bindings/TreeWalkerBindings.cpp +306 -0
  35. package/cpp/quickjs/bindings/TreeWalkerBindings.hpp +28 -0
  36. package/cpp/quickjs/bindings/UrlBindings.cpp +43 -0
  37. package/cpp/quickjs/bindings/WindowBindings.cpp +295 -4
  38. package/cpp/quickjs/bindings/WindowBindings.hpp +3 -2
  39. package/cpp/quickjs/bindings/WindowNamedPropertiesBindings.cpp +241 -0
  40. package/cpp/quickjs/bindings/WindowNamedPropertiesBindings.hpp +30 -0
  41. package/lib/commonjs/classes/JSDOM/JSDOM.class.js +2 -1
  42. package/lib/commonjs/classes/JSDOM/JSDOM.class.js.map +1 -1
  43. package/lib/module/classes/JSDOM/JSDOM.class.js +2 -1
  44. package/lib/module/classes/JSDOM/JSDOM.class.js.map +1 -1
  45. package/lib/typescript/src/classes/JSDOM/JSDOM.class.d.ts.map +1 -1
  46. package/lib/typescript/src/classes/JSDOM/types/IJSDOMOptions.d.ts +5 -4
  47. package/lib/typescript/src/classes/JSDOM/types/IJSDOMOptions.d.ts.map +1 -1
  48. package/lib/typescript/src/specs/HtmlSandbox.nitro.d.ts +1 -1
  49. package/lib/typescript/src/specs/HtmlSandbox.nitro.d.ts.map +1 -1
  50. package/nitrogen/generated/shared/c++/HybridHtmlSandboxSpec.hpp +1 -1
  51. package/package.json +17 -2
  52. package/src/classes/JSDOM/JSDOM.class.ts +2 -1
  53. package/src/classes/JSDOM/types/IJSDOMOptions.ts +5 -4
  54. package/src/specs/HtmlSandbox.nitro.ts +1 -1
@@ -43,7 +43,8 @@ export class JSDOM {
43
43
  sandbox.setConsoleCallback(null);
44
44
  }
45
45
  if (options?.onAlert || options?.onConfirm || options?.onPrompt) {
46
- sandbox.setDialogCallbacks(options.onAlert ?? null, options.onConfirm ?? null, options.onPrompt ?? null);
46
+ const onConfirm = options.onConfirm;
47
+ sandbox.setDialogCallbacks(options.onAlert ?? null, onConfirm ? async message => await onConfirm(message) : null, options.onPrompt ?? null);
47
48
  }
48
49
  if (options?.onFetch) {
49
50
  const onFetch = options.onFetch;
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","safeParseHeaders","headersJson","parsed","JSON","parse","JSDOM","_disposed","constructor","sandbox","create","html","options","createHybridObject","initialize","runScripts","url","pretendToBeVisual","onConsole","cb","setConsoleCallback","level","args","onAlert","onConfirm","onPrompt","setDialogCallbacks","onFetch","setFetchCallback","method","body","headers","then","res","stringify","ok","status","statusText","catch","err","error","Error","message","String","evaluate","script","Promise","reject","serialize","dispose"],"sourceRoot":"../../../../src","sources":["classes/JSDOM/JSDOM.class.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","safeParseHeaders","headersJson","parsed","JSON","parse","JSDOM","_disposed","constructor","sandbox","create","html","options","createHybridObject","initialize","runScripts","url","pretendToBeVisual","onConsole","cb","setConsoleCallback","level","args","onAlert","onConfirm","onPrompt","setDialogCallbacks","message","onFetch","setFetchCallback","method","body","headers","then","res","stringify","ok","status","statusText","catch","err","error","Error","String","evaluate","script","Promise","reject","serialize","dispose"],"sourceRoot":"../../../../src","sources":["classes/JSDOM/JSDOM.class.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"JSDOM.class.d.ts","sourceRoot":"","sources":["../../../../../src/classes/JSDOM/JSDOM.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO;IAIP;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK;IA4C3D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzC;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,MAAM;IAKnB;;;;;;;;;;;;OAYG;IACH,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"JSDOM.class.d.ts","sourceRoot":"","sources":["../../../../../src/classes/JSDOM/JSDOM.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO;IAIP;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK;IA6C3D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzC;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,MAAM;IAKnB;;;;;;;;;;;;OAYG;IACH,OAAO,IAAI,IAAI;CAKhB"}
@@ -21,12 +21,13 @@ export interface IJSDOMOptions {
21
21
  onAlert?: (message: string) => void;
22
22
  /**
23
23
  * Callback invoked when `window.confirm(message)` is called inside the sandbox.
24
- * Must return a boolean. If not provided, confirm() returns false (browser default).
24
+ * Return a boolean, or a `Promise<boolean>`. If not provided, confirm() returns
25
+ * false (browser default).
25
26
  *
26
- * WARNING: The callback is synchronous. Do NOT call back into the same sandbox
27
- * from inside the callback — QuickJS is not re-entrant.
27
+ * WARNING: Do NOT call back into the same sandbox from inside the callback —
28
+ * QuickJS is not re-entrant.
28
29
  */
29
- onConfirm?: (message: string) => boolean;
30
+ onConfirm?: (message: string) => boolean | Promise<boolean>;
30
31
  /**
31
32
  * Callback invoked when `window.prompt(message, defaultValue?)` is called inside
32
33
  * the sandbox. Return a string for the user input, or null for a dismissed prompt.
@@ -1 +1 @@
1
- {"version":3,"file":"IJSDOMOptions.d.ts","sourceRoot":"","sources":["../../../../../../src/classes/JSDOM/types/IJSDOMOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjF"}
1
+ {"version":3,"file":"IJSDOMOptions.d.ts","sourceRoot":"","sources":["../../../../../../src/classes/JSDOM/types/IJSDOMOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjF"}
@@ -7,7 +7,7 @@ export interface HtmlSandbox extends HybridObject<{
7
7
  evaluate(script: string): Promise<string>;
8
8
  serialize(): string;
9
9
  setConsoleCallback(callback: ((level: string, args: string[]) => void) | null): void;
10
- setDialogCallbacks(onAlert: ((message: string) => void) | null, onConfirm: ((message: string) => boolean) | null, onPrompt: ((message: string, defaultValue?: string) => string | null) | null): void;
10
+ setDialogCallbacks(onAlert: ((message: string) => void) | null, onConfirm: ((message: string) => Promise<boolean>) | null, onPrompt: ((message: string, defaultValue?: string) => string | null) | null): void;
11
11
  setFetchCallback(callback: ((url: string, method: string, headersJson: string, body?: string) => Promise<string>) | null): void;
12
12
  }
13
13
  //# sourceMappingURL=HtmlSandbox.nitro.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlSandbox.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/HtmlSandbox.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAE/E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAG7F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1C,SAAS,IAAI,MAAM,CAAC;IAGpB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAIrF,kBAAkB,CAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,EAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,EAChD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAC3E,IAAI,CAAC;IAQR,gBAAgB,CACd,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GACtG,IAAI,CAAC;CACT"}
1
+ {"version":3,"file":"HtmlSandbox.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/HtmlSandbox.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAE/E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAG7F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1C,SAAS,IAAI,MAAM,CAAC;IAGpB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAIrF,kBAAkB,CAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,EAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EACzD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,GAC3E,IAAI,CAAC;IAQR,gBAAgB,CACd,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GACtG,IAAI,CAAC;CACT"}
@@ -58,7 +58,7 @@ namespace margelo::nitro::nitrojsdom {
58
58
  virtual std::shared_ptr<Promise<std::string>> evaluate(const std::string& script) = 0;
59
59
  virtual std::string serialize() = 0;
60
60
  virtual void setConsoleCallback(const std::optional<std::variant<nitro::NullType, std::function<void(const std::string& /* level */, const std::vector<std::string>& /* args */)>>>& callback) = 0;
61
- virtual void setDialogCallbacks(const std::optional<std::variant<nitro::NullType, std::function<void(const std::string& /* message */)>>>& onAlert, const std::optional<std::variant<nitro::NullType, std::function<std::shared_ptr<Promise<bool>>(const std::string& /* message */)>>>& onConfirm, const std::optional<std::variant<nitro::NullType, std::function<std::shared_ptr<Promise<std::variant<nitro::NullType, std::string>>>(const std::string& /* message */, const std::optional<std::string>& /* defaultValue */)>>>& onPrompt) = 0;
61
+ virtual void setDialogCallbacks(const std::optional<std::variant<nitro::NullType, std::function<void(const std::string& /* message */)>>>& onAlert, const std::optional<std::variant<nitro::NullType, std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<bool>>>>(const std::string& /* message */)>>>& onConfirm, const std::optional<std::variant<nitro::NullType, std::function<std::shared_ptr<Promise<std::variant<nitro::NullType, std::string>>>(const std::string& /* message */, const std::optional<std::string>& /* defaultValue */)>>>& onPrompt) = 0;
62
62
  virtual void setFetchCallback(const std::optional<std::variant<nitro::NullType, std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<std::string>>>>(const std::string& /* url */, const std::string& /* method */, const std::string& /* headersJson */, const std::optional<std::string>& /* body */)>>>& callback) = 0;
63
63
 
64
64
  protected:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salve-software/react-native-nitro-jsdom",
3
- "version": "1.1.0",
3
+ "version": "2.1.0",
4
4
  "packageManager": "yarn@4.9.1",
5
5
  "description": "A headless HTML/DOM environment for React Native.",
6
6
  "main": "./lib/commonjs/index.js",
@@ -24,7 +24,22 @@
24
24
  },
25
25
  "keywords": [
26
26
  "react-native",
27
- "@salve-software/react-native-nitro-jsdom"
27
+ "react-native-jsdom",
28
+ "react-native-nitro-jsdom",
29
+ "nitro-modules",
30
+ "nitro",
31
+ "expo",
32
+ "jsdom",
33
+ "dom",
34
+ "html",
35
+ "html-parser",
36
+ "quickjs",
37
+ "lexbor",
38
+ "sandbox",
39
+ "headless-browser",
40
+ "webview-alternative",
41
+ "ios",
42
+ "android"
28
43
  ],
29
44
  "files": [
30
45
  "src",
@@ -55,9 +55,10 @@ export class JSDOM {
55
55
  }
56
56
 
57
57
  if (options?.onAlert || options?.onConfirm || options?.onPrompt) {
58
+ const onConfirm = options.onConfirm;
58
59
  sandbox.setDialogCallbacks(
59
60
  options.onAlert ?? null,
60
- options.onConfirm ?? null,
61
+ onConfirm ? async (message) => await onConfirm(message) : null,
61
62
  options.onPrompt ?? null,
62
63
  );
63
64
  }
@@ -22,12 +22,13 @@ export interface IJSDOMOptions {
22
22
  onAlert?: (message: string) => void;
23
23
  /**
24
24
  * Callback invoked when `window.confirm(message)` is called inside the sandbox.
25
- * Must return a boolean. If not provided, confirm() returns false (browser default).
25
+ * Return a boolean, or a `Promise<boolean>`. If not provided, confirm() returns
26
+ * false (browser default).
26
27
  *
27
- * WARNING: The callback is synchronous. Do NOT call back into the same sandbox
28
- * from inside the callback — QuickJS is not re-entrant.
28
+ * WARNING: Do NOT call back into the same sandbox from inside the callback —
29
+ * QuickJS is not re-entrant.
29
30
  */
30
- onConfirm?: (message: string) => boolean;
31
+ onConfirm?: (message: string) => boolean | Promise<boolean>;
31
32
  /**
32
33
  * Callback invoked when `window.prompt(message, defaultValue?)` is called inside
33
34
  * the sandbox. Return a string for the user input, or null for a dismissed prompt.
@@ -17,7 +17,7 @@ export interface HtmlSandbox extends HybridObject<{ ios: 'c++'; android: 'c++' }
17
17
  // Pass null for any callback to use the browser default (no-op / false / null).
18
18
  setDialogCallbacks(
19
19
  onAlert: ((message: string) => void) | null,
20
- onConfirm: ((message: string) => boolean) | null,
20
+ onConfirm: ((message: string) => Promise<boolean>) | null,
21
21
  onPrompt: ((message: string, defaultValue?: string) => string | null) | null,
22
22
  ): void;
23
23