@softvisio/webview 1.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @softvisio/webview might be problematic. Click here for more details.

package/.editorconfig ADDED
@@ -0,0 +1,16 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 4
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+ max_line_length = 99999999
11
+
12
+ [*.{yml,yaml}]
13
+ indent_size = 2
14
+
15
+ [Makefile]
16
+ indent_style = tab
package/CHANGELOG.md ADDED
@@ -0,0 +1,49 @@
1
+ # Changelog
2
+
3
+ ### 1.2.2 (2022-05-18)
4
+
5
+ Fixes:
6
+
7
+ - fix: windows launcher
8
+
9
+ ### 1.2.1 (2022-04-23)
10
+
11
+ Fixes:
12
+
13
+ - fix: windows isolation patch removed
14
+
15
+ ### 1.2.0 (2022-04-21)
16
+
17
+ Features:
18
+
19
+ - feat: abort signal support
20
+
21
+ Fixes:
22
+
23
+ - fix: spawn typo
24
+
25
+ ### 1.1.2 (2022-04-16)
26
+
27
+ Fixes:
28
+
29
+ - fix: win32 loopback
30
+
31
+ ### 1.1.1 (2022-04-16)
32
+
33
+ Fixes:
34
+
35
+ - fix: docs
36
+
37
+ ### 1.1.0 (2022-04-16)
38
+
39
+ Features:
40
+
41
+ - feat: close events
42
+
43
+ ### 1.0.0 (2022-04-16)
44
+
45
+ Fixes:
46
+
47
+ - fix: build
48
+
49
+ Migration:
package/README.md ADDED
@@ -0,0 +1,52 @@
1
+ <!-- !!! DO NOT EDIT, THIS FILE IS GENERATED AUTOMATICALLY !!! -->
2
+
3
+ > :information_source: Please, see the full project documentation here: [https://softvisio.github.io/webview/](https://softvisio.github.io/webview/).
4
+
5
+ # Introduction
6
+
7
+ `NodeJS` wrapper for [webview](https://github.com/webview/webview).
8
+
9
+ Compiled binaries: [suchipi/webview](https://github.com/suchipi/webview).
10
+
11
+ ## Install
12
+
13
+ ```shell
14
+ npm i @softvisio/webview
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```javascript
20
+ import WebView from "@softvisio/webview";
21
+
22
+ const webView = new WebView("https://example.com/", { title: "Example", width: 400, height: 400 });
23
+
24
+ webView.on("close", () => {});
25
+
26
+ webView.close();
27
+ ```
28
+
29
+ ## Notes
30
+
31
+ ### Windows
32
+
33
+ On windows, the webview will not be able to access localhost unless the following command has been run as administrator at least once before:
34
+
35
+ ```shell
36
+ checknetisolation.exe LoopbackExempt -a -n=Microsoft.Win32WebViewHost_cw5n1h2txyewy
37
+ ```
38
+
39
+ ```shell
40
+ curl -sSLO https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
41
+ nuget.exe install Microsoft.Web.Webview2 -OutputDirectory script
42
+
43
+ cl -DSFML_STATIC /std:c++17 /EHsc /I script\Microsoft.Web.WebView2.1.0.1185.39\build\native\include script\Microsoft.Web.WebView2.1.0.1185.39\build\native\x64\WebView2Loader.dll.lib main.cc /link /out:webview.exe
44
+ ```
45
+
46
+ ### Linux
47
+
48
+ On Linux, you need to install GTK3 and GtkWebkit2.
49
+
50
+ ```shell
51
+ sudo apt-get install libwebkit2gtk-4.0-dev
52
+ ```
@@ -0,0 +1,5 @@
1
+ logo: false
2
+
3
+ externalTypes:
4
+ - https://softvisio.github.io/core/
5
+ - https://softvisio.github.io/result/
package/docs/.nojekyll ADDED
File without changes
package/docs/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # Introduction
2
+
3
+ `NodeJS` wrapper for [webview](https://github.com/webview/webview).
4
+
5
+ Compiled binaries: [suchipi/webview](https://github.com/suchipi/webview).
6
+
7
+ ## Install
8
+
9
+ ```shell
10
+ npm i @softvisio/webview
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```javascript
16
+ import WebView from "@softvisio/webview";
17
+
18
+ const webView = new WebView("https://example.com/", { title: "Example", width: 400, height: 400 });
19
+
20
+ webView.on("close", () => {});
21
+
22
+ webView.close();
23
+ ```
24
+
25
+ ## Notes
26
+
27
+ ### Windows
28
+
29
+ On windows, the webview will not be able to access localhost unless the following command has been run as administrator at least once before:
30
+
31
+ ```shell
32
+ checknetisolation.exe LoopbackExempt -a -n=Microsoft.Win32WebViewHost_cw5n1h2txyewy
33
+ ```
34
+
35
+ ```shell
36
+ curl -sSLO https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
37
+ nuget.exe install Microsoft.Web.Webview2 -OutputDirectory script
38
+
39
+ cl -DSFML_STATIC /std:c++17 /EHsc /I script\Microsoft.Web.WebView2.1.0.1185.39\build\native\include script\Microsoft.Web.WebView2.1.0.1185.39\build\native\x64\WebView2Loader.dll.lib main.cc /link /out:webview.exe
40
+ ```
41
+
42
+ ### Linux
43
+
44
+ On Linux, you need to install GTK3 and GtkWebkit2.
45
+
46
+ ```shell
47
+ sudo apt-get install libwebkit2gtk-4.0-dev
48
+ ```
@@ -0,0 +1,11 @@
1
+ - [Introduction](/)
2
+
3
+ **API**
4
+
5
+ - [Introduction](/api.md)
6
+ - [API v1](/api-v1.md)
7
+ - [RPC v1](/rpc-v1.md)
8
+
9
+ **Links**
10
+
11
+ - [Changelog](/changelog)
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html>
2
+
3
+ <!-- !!! DO NOT EDIT, THIS FILE IS GENERATED AUTOMATICALLY !!! -->
4
+
5
+ <html>
6
+ <head>
7
+ <meta charset="UTF-8" />
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
9
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
10
+
11
+ <link rel="stylesheet" id="lightTheme" href="https://cdn.jsdelivr.net/npm/docsify-themeable/dist/css/theme-simple.css" />
12
+ <link rel="stylesheet" id="darkTheme" href="https://cdn.jsdelivr.net/npm/docsify-themeable/dist/css/theme-simple-dark.css" />
13
+ <link rel="stylesheet" href="https://softvisio.github.io/cli/assets/theme/theme.css" />
14
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" />
15
+ </head>
16
+ <body>
17
+ <nav>
18
+ <a href="#/changelog">Changelog</a> • <a href="https://github.com/softvisio/webview/discussions" title="Discussions"><i class="fa-regular fa-comments"></i></a> • <a href="https://github.com/softvisio/webview/issues" title="Issues"><i class="fa-solid fa-bug"></i></a> • <a href="https://www.npmjs.com/package/@softvisio/webview" title="NPM package"><i class="fa-brands fa-npm"></i></a> • <a href="#toggleTheme"><i class="fa-solid fa-adjust"></i> Theme</a>
19
+ </nav>
20
+ <div id="app"></div>
21
+ <div id="gotoTop"><a href="#gotoTop">🡡 Top</a></div>
22
+
23
+ <script>
24
+ window.$docsify = { alias: { "/changelog": "https://raw.githubusercontent.com/softvisio/webview/master/CHANGELOG.md" }, auto2top: true, externalLinkTarget: "_self", loadSidebar: true, maxLevel: 2, name: "@softvisio/webview", relativePath: true, repo: "https://github.com/softvisio/webview", search: { depth: 3 }, subMaxLevel: 2, tabs: {} };
25
+ </script>
26
+
27
+ <script src="https://softvisio.github.io/cli/assets/theme/theme.js"></script>
28
+ <script src="https://cdn.jsdelivr.net/npm/docsify"></script>
29
+ <script src="https://cdn.jsdelivr.net/npm/prismjs/components/prism-bash.min.js"></script>
30
+ <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
31
+ <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script>
32
+ <script src="https://cdn.jsdelivr.net/npm/docsify-tabs"></script>
33
+ <script src="https://cdn.jsdelivr.net/npm/docsify-copy-code"></script>
34
+ <script src="https://cdn.jsdelivr.net/npm/docsify-pagination/dist/docsify-pagination.min.js"></script>
35
+ <script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/external-script.min.js"></script>
36
+ </body>
37
+ </html>
Binary file
Binary file
Binary file
Binary file
Binary file
package/lib/index.js ADDED
@@ -0,0 +1,79 @@
1
+ import Events from "events";
2
+ import childProcess from "child_process";
3
+
4
+ const BINARIES = {
5
+ "win32": "webview.exe",
6
+ "linux": "webview",
7
+ "darwin": "webview",
8
+ };
9
+
10
+ var WIN32_ISOLATION;
11
+
12
+ export default class WebView extends Events {
13
+ #name;
14
+ #proc;
15
+
16
+ constructor ( url, { name, title, width, height, signal } = {} ) {
17
+ super();
18
+
19
+ if ( this.#proc ) return;
20
+
21
+ this.#name = name || "webview";
22
+
23
+ if ( process.platform === "win32" && !WIN32_ISOLATION ) {
24
+ const stdout = childProcess.execFileSync( "checknetisolation.exe", ["LoopbackExempt", "-s"], {
25
+ "windowsHide": true,
26
+ "encoding": "utf8",
27
+ } );
28
+
29
+ if ( !stdout.includes( "microsoft.win32webviewhost_cw5n1h2txyewy" ) ) {
30
+ childProcess.execFileSync( "hstart.exe", ["/ELEVATE", "/NOCONSOLE", "checknetisolation.exe LoopbackExempt -a -n=Microsoft.Win32WebViewHost_cw5n1h2txyewy"], {
31
+ "cwd": new URL( `binaries/${process.platform}`, import.meta.url ),
32
+ "windowsHide": true,
33
+ "encoding": "utf8",
34
+ } );
35
+
36
+ WIN32_ISOLATION = true;
37
+ }
38
+ else {
39
+ WIN32_ISOLATION = true;
40
+ }
41
+ }
42
+
43
+ const args = ["--url", url];
44
+ if ( title ) args.push( "--title", title );
45
+ if ( width ) args.push( "--width", width );
46
+ if ( height ) args.push( "--height", height );
47
+
48
+ this.#proc = childProcess
49
+ .spawn( BINARIES[process.platform], args, {
50
+ "cwd": new URL( `binaries/${process.platform}`, import.meta.url ),
51
+ "stdio": "ignore",
52
+ signal,
53
+ } )
54
+ .once( "error", e => {
55
+ if ( e.code !== "ABORT_ERR" ) throw e;
56
+ } )
57
+ .once( "close", () => {
58
+ this.#proc = null;
59
+
60
+ this.emit( "close" );
61
+ } );
62
+ }
63
+
64
+ // properties
65
+ get name () {
66
+ return this.#name;
67
+ }
68
+
69
+ isStarted () {
70
+ return !!this.#proc;
71
+ }
72
+
73
+ close () {
74
+ if ( !this.#proc ) return;
75
+ this.#proc.kill();
76
+
77
+ this.#proc = null;
78
+ }
79
+ }
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@softvisio/webview",
3
+ "version": "1.2.2",
4
+ "description": "Webview bindings",
5
+ "keywords": [
6
+ "softvisio",
7
+ "webview"
8
+ ],
9
+ "homepage": "https://softvisio.github.io/webview/",
10
+ "bugs": {
11
+ "url": "https://github.com/softvisio/webview/issues",
12
+ "email": "zdm <zdm@softvisio.net>"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/softvisio/webview.git"
17
+ },
18
+ "license": "ISC",
19
+ "author": "zdm <zdm@softvisio.net>",
20
+ "type": "module",
21
+ "imports": {
22
+ "#lib/*": "./lib/*.js"
23
+ },
24
+ "exports": {
25
+ ".": "./lib/index.js"
26
+ }
27
+ }