win_webview2 1.0.13 → 1.1.3

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 (66) hide show
  1. package/buildtools/copyDll.ts +71 -0
  2. package/{tsconfig.json → buildtools/tsconfig.json} +12 -12
  3. package/dist/browser/ww2_browser.d.ts +32 -0
  4. package/dist/browser/ww2_browser.js +11 -0
  5. package/{tsDist/srcBuilder → dist/node/builder}/build_copyDir.d.ts +1 -1
  6. package/{tsDist/srcBuilder → dist/node/builder}/build_copyDir.js +24 -24
  7. package/dist/node/builder/builder_deploy.d.ts +2 -0
  8. package/{tsDist/srcBuilder/builder_tp.js → dist/node/builder/builder_deploy.js} +2 -2
  9. package/dist/node/builder/builder_init.d.ts +9 -0
  10. package/dist/node/builder/builder_init.js +52 -0
  11. package/dist/node/builder/builder_promps.d.ts +9 -0
  12. package/dist/node/builder/builder_promps.js +68 -0
  13. package/dist/node/builder/dirnameTool.d.ts +4 -0
  14. package/dist/node/builder/dirnameTool.js +16 -0
  15. package/dist/node/builder/tools.d.ts +4 -0
  16. package/dist/node/builder/tools.js +15 -0
  17. package/dist/node/builder/userExec.d.ts +2 -0
  18. package/dist/node/builder/userExec.js +45 -0
  19. package/{tsDist/srcBuilder/builder_tp.d.ts → dist/node/tsExport/config.d.ts} +7 -7
  20. package/dist/node/tsExport/config.js +2 -0
  21. package/dist/node/tsExport/dirnameTool.d.ts +6 -0
  22. package/dist/node/tsExport/dirnameTool.js +63 -0
  23. package/dist/node/tsExport/winwebview2.d.ts +38 -0
  24. package/dist/node/tsExport/winwebview2.js +51 -0
  25. package/dist/node/tsExport/ww2_config.d.ts +7 -0
  26. package/dist/node/tsExport/ww2_config.js +18 -0
  27. package/dist/node/tsExport/ww2_server.d.ts +36 -0
  28. package/dist/node/tsExport/ww2_server.js +100 -0
  29. package/package.json +21 -7
  30. package/srcBrowser/tsconfig.json +13 -0
  31. package/srcBrowser/ww2_browser.ts +47 -0
  32. package/srcNode/builder/builder_init.ts +78 -0
  33. package/srcNode/builder/builder_promps.ts +93 -0
  34. package/srcNode/builder/userExec.ts +54 -0
  35. package/srcNode/tsExport/dirnameTool.ts +34 -0
  36. package/srcNode/tsExport/winwebview2.ts +78 -0
  37. package/srcNode/tsExport/ww2_config.ts +24 -0
  38. package/srcNode/tsExport/ww2_server.ts +157 -0
  39. package/srcNode/tsconfig.json +13 -0
  40. package/tsDistRun.js +5 -5
  41. package/win_lib/Win32/WebView2Loader.dll +0 -0
  42. package/win_lib/Win32/exeOpenner.exe +0 -0
  43. package/win_lib/Win32/ww2_addon.node +0 -0
  44. package/win_lib/x64/WebView2Loader.dll +0 -0
  45. package/win_lib/x64/exeOpenner.exe +0 -0
  46. package/win_lib/x64/ww2_addon.node +0 -0
  47. package/tsDist/logprint.d.ts +0 -1
  48. package/tsDist/logprint.js +0 -6
  49. package/tsDist/srcBuilder/ww2_build_promp.d.ts +0 -1
  50. package/tsDist/srcBuilder/ww2_build_promp.js +0 -31
  51. package/tsDist/srcBuilder/ww2_buildercore.d.ts +0 -14
  52. package/tsDist/srcBuilder/ww2_buildercore.js +0 -124
  53. package/tsDist/tsExport/winwebview2.d.ts +0 -28
  54. package/tsDist/tsExport/winwebview2.js +0 -105
  55. package/tsSrc/logprint.ts +0 -3
  56. package/tsSrc/srcBuilder/build_copyDir.ts +0 -32
  57. package/tsSrc/srcBuilder/builder_tp.ts +0 -7
  58. package/tsSrc/srcBuilder/ww2_build_promp.ts +0 -30
  59. package/tsSrc/srcBuilder/ww2_buildercore.ts +0 -182
  60. package/tsSrc/tsExport/winwebview2.ts +0 -160
  61. package/win_lib/Win32/CmdWebview2.exe +0 -0
  62. package/win_lib/Win32/icon.ico +0 -0
  63. package/win_lib/Win32/index.bat +0 -3
  64. package/win_lib/x64/CmdWebview2.exe +0 -0
  65. package/win_lib/x64/icon.ico +0 -0
  66. package/win_lib/x64/index.bat +0 -3
@@ -1,182 +0,0 @@
1
-
2
-
3
- import fs from "fs"
4
- import fspromise from "fs/promises"
5
- import sharp from "sharp"
6
- import path from "path";
7
- import { fileURLToPath } from 'url';
8
- import rcedit from "rcedit";
9
- import sharpsToIco from "sharp-ico"
10
- import { ConfigWW2 } from './builder_tp';
11
- import { logPrint } from '../logprint';
12
- import { copyDir } from './build_copyDir';
13
-
14
-
15
- const jsonConfigFilePath = "./win_webview2.json";
16
-
17
- export class WW2Deploy {
18
-
19
- configObjec? : ConfigWW2;
20
- outputExeFile? :string;
21
-
22
-
23
-
24
- async makeDistFolder() {
25
-
26
- if (this.configObjec == null) return;
27
- let config = this.configObjec;
28
-
29
- let folderDist = config.outdir;
30
-
31
- if (!fs.existsSync(folderDist)) {
32
- await fs.promises.mkdir(folderDist);
33
- }
34
-
35
- let libFolder = path.join(folderDist, "lib");
36
- if (!fs.existsSync(libFolder)) {
37
- await fs.promises.mkdir(libFolder);
38
- }
39
- }
40
-
41
- async buildIcon() {
42
- if (this.configObjec == null) return;
43
-
44
- let config = this.configObjec;
45
-
46
- let iconPath = config.icon_path;
47
- if (!fs.existsSync(iconPath)) {
48
-
49
- logPrint("icon notfound");
50
- return;
51
-
52
- }
53
-
54
- let outputIcon = path.join(config.outdir, "icon.ico");
55
-
56
- const sizes = [16, 32, 48, 256]; // Ukuran standar untuk rcedit
57
- const images = await Promise.all(sizes.map(size =>
58
- sharp(iconPath)
59
- .resize(size, size)
60
- .toFormat('png')
61
- ));
62
-
63
-
64
- await sharpsToIco.sharpsToIco(images, outputIcon);
65
-
66
- console.log('✅ Berhasil membuat icon.ico yang valid untuk rcedit!');
67
-
68
-
69
- }
70
-
71
- async copyExe() {
72
- let currentDir = path.join(__dirname,"../../");
73
-
74
- if (this.configObjec == null) return;
75
- let config = this.configObjec;
76
- let platform = config.platform;
77
-
78
-
79
-
80
-
81
- let inputDir = path.join(
82
- currentDir, "win_lib",
83
- platform);
84
-
85
-
86
-
87
- this.outputExeFile = path.join(config.outdir, config.appname + ".exe");
88
- await copyDir(inputDir, config.outdir);
89
- await fspromise.rename(
90
- path.join(config.outdir,"CmdWebview2.exe"),
91
- this.outputExeFile
92
-
93
- );
94
-
95
- await (async () => {
96
- let inputFileDll = jsonConfigFilePath;
97
- let outFileDll = path.join(config.outdir, "win_webview2.json");
98
- await fs.promises.copyFile(inputFileDll, outFileDll);
99
-
100
- })();
101
-
102
-
103
-
104
- logPrint("copy file success");
105
- }
106
-
107
- async editIcon() {
108
- if (this.outputExeFile == null) return;
109
- if (this.configObjec == null) return;
110
-
111
- let object = this.configObjec;
112
-
113
-
114
- let iconPath = path.join(object.outdir, "icon.ico");
115
- iconPath = path.resolve(iconPath);
116
-
117
- await rcedit(this.outputExeFile, {
118
- icon: iconPath,
119
- });
120
- }
121
-
122
- async readConfig() {
123
- let str = await fs.promises.readFile(jsonConfigFilePath);
124
- let jsonObj = JSON.parse(str.toString());
125
-
126
- this.configObjec = jsonObj;
127
- }
128
-
129
- async copyNodeExe() {
130
- if (this.configObjec == null) return;
131
- let obj = this.configObjec;
132
-
133
- let inputNodeExe = process.execPath;
134
- let outNodeExe = path.join(obj.outdir, "lib", "node.exe");
135
- await fs.promises.copyFile(inputNodeExe, outNodeExe);
136
- }
137
-
138
- async createIndexConf() {
139
- if (this.configObjec == null) return;
140
- let obj = this.configObjec;
141
-
142
- let oututFileConf = path.join(obj.outdir, "index.bat");
143
-
144
- let configCtn = `.\\\\lib\\\\node.exe ./${obj.entry_point}`
145
- await fs.promises.writeFile(oututFileConf, configCtn);
146
- }
147
-
148
- static async initWW2() {
149
-
150
- let objConfig : ConfigWW2 = {
151
- entry_point: "app.js",
152
- appname: "openweb",
153
- icon_path: "./icon.png",
154
- outdir: "./dist",
155
- platform : 'Win32'
156
- }
157
-
158
- let objstr = JSON.stringify(objConfig, null, 2);
159
- if(fs.existsSync(jsonConfigFilePath)){
160
- logPrint("file config is exits");
161
- return;
162
- }
163
-
164
- await fs.promises.writeFile(jsonConfigFilePath, objstr);
165
- }
166
-
167
-
168
-
169
- static async startDeploy() {
170
- logPrint("Start Deploy win_webview2");
171
- let c = new WW2Deploy();
172
-
173
- await c.readConfig();
174
- await c.makeDistFolder();
175
- await c.buildIcon();
176
- await c.copyExe();
177
- await c.editIcon();
178
- await c.copyNodeExe();
179
- await c.createIndexConf();
180
-
181
- }
182
- }
@@ -1,160 +0,0 @@
1
- import { execFile } from "node:child_process";
2
- import { readFile } from "node:fs/promises";
3
-
4
- export type OpenWebArg = {
5
- url: string
6
- width: number
7
- height: number
8
- kiosk: boolean
9
- maximize: boolean
10
- title: string
11
- isDebugMode : boolean
12
- winClassName : string
13
- }
14
-
15
- export type OpenDialogFileArg = {
16
- winClassName : string
17
- filter : string
18
- }
19
-
20
-
21
- export type OpenDialogArg = {
22
- winClassName : string
23
- }
24
-
25
- const jsonConfigFilePath = "./win_webview2.json";
26
- async function readConfig() {
27
- let str = await readFile(jsonConfigFilePath);
28
- let jsonObj = JSON.parse(str.toString());
29
-
30
- return jsonObj;
31
- }
32
-
33
- async function getExecPath() {
34
- let jsonConfig = await readConfig();
35
- let exeFilePath = jsonConfig.appname + ".exe";
36
-
37
- return exeFilePath;
38
-
39
- }
40
-
41
- export async function openWeb(arg : OpenWebArg) {
42
- let jsonConfig = await readConfig();
43
- let exeFilePath = jsonConfig.appname + ".exe";
44
-
45
- let arrOpen = [
46
- "fun=openwebview",
47
- "wndClassName=" + arg.winClassName,
48
- "url=" + arg.url,
49
- "width=" + arg.width,
50
- "height=" + arg.height,
51
- //"kiosk=true",
52
- //"maximize=true",
53
- "title=auto",
54
- //"isDebugMode=true"
55
- ];
56
-
57
- if (arg.maximize) {
58
- arrOpen.push("maximize=true");
59
- }
60
-
61
- if (arg.kiosk) {
62
-
63
- arrOpen.push("kiosk=true");
64
- }
65
-
66
- if (arg.isDebugMode) {
67
- arrOpen.push("isDebugMode=true");
68
- }
69
-
70
-
71
-
72
-
73
- execFile(exeFilePath, arrOpen, (err, data) => {
74
- console.log( err)
75
- })
76
- }
77
-
78
- export async function openDialogFile(arg : OpenDialogFileArg) {
79
- let exeFilePath = await getExecPath();
80
- return new Promise((r, x) => {
81
- execFile(exeFilePath,
82
- [
83
- "fun=openFileDialog",
84
- "wndClassName="+arg.winClassName,
85
- "filter=" + arg.filter,
86
-
87
- ], (/** @type {any} */ err, /** @type {string} */ data) => {
88
-
89
- let filepath = "";
90
- for (let l of data.split("\r\n")) {
91
- if (l.startsWith("result:")) {
92
- filepath = l.substring(7, l.length);
93
- }
94
- }
95
-
96
- r(filepath);
97
- })
98
- })
99
- }
100
-
101
- export async function openDialogFolder(arg : OpenDialogArg) {
102
- let exeFilePath = await getExecPath();
103
- return new Promise((r, x) => {
104
- execFile(exeFilePath,
105
- [
106
- "fun=openFolderDialog",
107
- "wndClassName=" + arg.winClassName,
108
-
109
- ], (
110
- /** @type {any} */
111
- err,
112
- /** @type {string} */
113
- data
114
- ) => {
115
-
116
- let filepath = "";
117
- for (let l of data.split("\r\n")) {
118
- if (l.startsWith("result:")) {
119
- filepath = l.substring(7, l.length);
120
- }
121
- }
122
-
123
- r(filepath);
124
- })
125
- })
126
- }
127
-
128
- export async function controlWindow(arg : {
129
- winClassName: string,
130
- controlcmd : "close" | "maximize" | "minimize" | "move" | "resize",
131
- left : number,
132
- top : number,
133
- width : number,
134
- height : number,
135
- }) {
136
- let exeFilePath = await getExecPath();
137
- return new Promise((r, x) => {
138
- execFile(exeFilePath,
139
- [
140
- "fun=controlwindow",
141
- "wndClassName=" + arg.winClassName,
142
- "controlcmd="+arg.controlcmd,
143
-
144
- "left="+arg.left,
145
- "top="+arg.top,
146
- "width="+arg.width,
147
- "height="+arg.height,
148
-
149
-
150
- ], (
151
- /** @type {any} */
152
- err,
153
- /** @type {string} */
154
- data) => {
155
-
156
-
157
- r(data);
158
- })
159
- })
160
- }
Binary file
Binary file
@@ -1,3 +0,0 @@
1
- @echo off
2
- set exeFileDir=%cd%
3
- CmdWebview2.exe fun=openwebview url=https://google.com width=900 height=600 title=auto wndClassName=aplikasiWebView
Binary file
Binary file
@@ -1,3 +0,0 @@
1
- @echo off
2
- set exeFileDir=%cd%
3
- CmdWebview2.exe fun=openwebview url=https://google.com width=900 height=600 title=auto wndClassName=aplikasiWebView