@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.
- package/android/CMakeLists.txt +6 -0
- package/cpp/HybridHtmlSandbox.cpp +14 -7
- package/cpp/HybridHtmlSandbox.hpp +1 -1
- package/cpp/lexbor/LexborDocument.cpp +65 -3
- package/cpp/lexbor/LexborDocument.hpp +17 -2
- package/cpp/quickjs/DOMBindings.cpp +14 -1
- package/cpp/quickjs/DOMBindingsInternal.cpp +67 -0
- package/cpp/quickjs/DOMBindingsInternal.hpp +39 -0
- package/cpp/quickjs/QuickJSRuntime.cpp +13 -0
- package/cpp/quickjs/QuickJSRuntime.hpp +29 -0
- package/cpp/quickjs/bindings/AbortBindings.cpp +14 -0
- package/cpp/quickjs/bindings/BlobBindings.cpp +28 -1
- package/cpp/quickjs/bindings/BlobBindings.hpp +3 -3
- package/cpp/quickjs/bindings/CSSOMBindings.cpp +96 -0
- package/cpp/quickjs/bindings/CSSOMBindings.hpp +3 -1
- package/cpp/quickjs/bindings/CustomElementsBindings.cpp +1 -1
- package/cpp/quickjs/bindings/DOMParserBindings.cpp +299 -0
- package/cpp/quickjs/bindings/DOMParserBindings.hpp +45 -0
- package/cpp/quickjs/bindings/DocumentBindings.cpp +174 -11
- package/cpp/quickjs/bindings/ElementBindings.cpp +516 -20
- package/cpp/quickjs/bindings/EventBindings.cpp +281 -5
- package/cpp/quickjs/bindings/EventBindings.hpp +3 -0
- package/cpp/quickjs/bindings/EventTargetBindings.cpp +75 -0
- package/cpp/quickjs/bindings/EventTargetBindings.hpp +24 -0
- package/cpp/quickjs/bindings/FetchBindings.cpp +43 -8
- package/cpp/quickjs/bindings/FormBindings.cpp +294 -0
- package/cpp/quickjs/bindings/FormBindings.hpp +9 -5
- package/cpp/quickjs/bindings/IntlBindings.cpp +352 -0
- package/cpp/quickjs/bindings/IntlBindings.hpp +29 -0
- package/cpp/quickjs/bindings/LayoutStubBindings.cpp +104 -0
- package/cpp/quickjs/bindings/LayoutStubBindings.hpp +28 -0
- package/cpp/quickjs/bindings/LiveCollectionBindings.cpp +45 -0
- package/cpp/quickjs/bindings/TimerBindings.cpp +79 -0
- package/cpp/quickjs/bindings/TreeWalkerBindings.cpp +306 -0
- package/cpp/quickjs/bindings/TreeWalkerBindings.hpp +28 -0
- package/cpp/quickjs/bindings/UrlBindings.cpp +43 -0
- package/cpp/quickjs/bindings/WindowBindings.cpp +295 -4
- package/cpp/quickjs/bindings/WindowBindings.hpp +3 -2
- package/cpp/quickjs/bindings/WindowNamedPropertiesBindings.cpp +241 -0
- package/cpp/quickjs/bindings/WindowNamedPropertiesBindings.hpp +30 -0
- package/lib/commonjs/classes/JSDOM/JSDOM.class.js +2 -1
- package/lib/commonjs/classes/JSDOM/JSDOM.class.js.map +1 -1
- package/lib/module/classes/JSDOM/JSDOM.class.js +2 -1
- package/lib/module/classes/JSDOM/JSDOM.class.js.map +1 -1
- package/lib/typescript/src/classes/JSDOM/JSDOM.class.d.ts.map +1 -1
- package/lib/typescript/src/classes/JSDOM/types/IJSDOMOptions.d.ts +5 -4
- package/lib/typescript/src/classes/JSDOM/types/IJSDOMOptions.d.ts.map +1 -1
- package/lib/typescript/src/specs/HtmlSandbox.nitro.d.ts +1 -1
- package/lib/typescript/src/specs/HtmlSandbox.nitro.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HybridHtmlSandboxSpec.hpp +1 -1
- package/package.json +17 -2
- package/src/classes/JSDOM/JSDOM.class.ts +2 -1
- package/src/classes/JSDOM/types/IJSDOMOptions.ts +5 -4
- 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
|
-
|
|
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","
|
|
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;
|
|
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
|
-
*
|
|
24
|
+
* Return a boolean, or a `Promise<boolean>`. If not provided, confirm() returns
|
|
25
|
+
* false (browser default).
|
|
25
26
|
*
|
|
26
|
-
* WARNING:
|
|
27
|
-
*
|
|
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
|
|
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,
|
|
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
|
|
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": "
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
*
|
|
25
|
+
* Return a boolean, or a `Promise<boolean>`. If not provided, confirm() returns
|
|
26
|
+
* false (browser default).
|
|
26
27
|
*
|
|
27
|
-
* WARNING:
|
|
28
|
-
*
|
|
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
|
|