quickwin 2.0.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/README.en.md +17 -22
- package/README.md +1 -3
- package/examples/exec_server.js +133 -29
- package/examples/exec_server_worker.js +1 -1
- package/examples/exec_server_worker.ts +2 -2
- package/examples/pdf_preview2.js +1 -1
- package/examples/pdf_preview2.ts +1 -1
- package/examples/pdf_viewer.js +132 -28
- package/examples/pdf_viewer.tsx +1 -1
- package/examples/test_gallery.js +131 -27
- package/examples/test_react_lazy.js +131 -27
- package/examples/test_react_listbox.js +131 -27
- package/examples/test_root_window.js +131 -27
- package/examples/test_tab.js +131 -27
- package/lib/certs.js +13 -8
- package/lib/certs.ts +13 -8
- package/lib/fetch.js +51 -3
- package/lib/fetch.ts +38 -3
- package/lib/ffi/bind.js +94 -5
- package/lib/ffi/bind.ts +107 -10
- package/lib/ffi/ctype.js +33 -7
- package/lib/ffi/ctype.ts +48 -10
- package/lib/ffi/struct.js +92 -14
- package/lib/ffi/struct.ts +108 -19
- package/lib/react-qw/components/ListView.js +1 -0
- package/lib/react-qw/components/PathPicker.js +2 -2
- package/lib/react-qw/index.js +1 -1
- package/lib/react-qw/index.ts +4 -1
- package/lib/text-measure.js +3 -1
- package/lib/text-measure.ts +4 -3
- package/lib/websocket.js +32 -2
- package/lib/websocket.ts +25 -2
- package/lib/windows/advapi32.js +53 -0
- package/lib/windows/advapi32.ts +64 -0
- package/lib/windows/comctl32.js +15 -15
- package/lib/windows/comctl32.ts +15 -16
- package/lib/windows/comdlg32.js +3 -2
- package/lib/windows/comdlg32.ts +3 -2
- package/lib/windows/gdi32.js +328 -26
- package/lib/windows/gdi32.ts +349 -26
- package/lib/windows/kernel32.js +206 -10
- package/lib/windows/kernel32.ts +225 -10
- package/lib/windows/msimg32.js +38 -0
- package/lib/windows/msimg32.ts +45 -0
- package/lib/windows/ntdll.js +3 -2
- package/lib/windows/ntdll.ts +3 -2
- package/lib/windows/ole32.js +1 -1
- package/lib/windows/ole32.ts +1 -1
- package/lib/windows/psapi.js +32 -0
- package/lib/windows/psapi.ts +37 -0
- package/lib/windows/shell32.js +5 -3
- package/lib/windows/shell32.ts +5 -3
- package/lib/windows/structs.js +135 -0
- package/lib/windows/structs.ts +144 -0
- package/lib/windows/user32.js +202 -99
- package/lib/windows/user32.ts +204 -99
- package/lib/windows/version.js +29 -0
- package/lib/windows/version.ts +35 -0
- package/lib/windows/winspool.js +71 -0
- package/lib/windows/winspool.ts +80 -0
- package/package.json +1 -1
- package/quickwin.d.ts +11 -5
- package/quickwin_const.d.ts +136 -0
- package/qwin-nowasm-x86.exe +0 -0
- package/qwin-nowasm.exe +0 -0
- package/qwin-x86.exe +0 -0
- package/qwin.exe +0 -0
- package/test/run.js +7 -0
- package/test/run.ts +7 -0
- package/test/test_basic_fetch.js +21 -0
- package/test/test_basic_fetch.ts +17 -0
- package/test/test_ffi.js +6 -6
- package/test/test_ffi.ts +6 -6
- package/test/test_ffi_abi.js +55 -0
- package/test/test_ffi_abi.ts +56 -0
- package/test/test_ffi_array.js +116 -0
- package/test/test_ffi_array.ts +141 -0
- package/test/test_ffi_bind.js +82 -0
- package/test/test_ffi_bind.ts +71 -0
- package/test/test_files.js +102 -0
- package/test/test_files.ts +121 -0
- package/test/test_gdi_draw.js +681 -0
- package/test/test_gdi_draw.ts +725 -0
- package/test/test_net_fetch.js +4 -3
- package/test/test_net_fetch.ts +4 -3
- package/test/test_printer.js +137 -0
- package/test/test_printer.ts +148 -0
- package/test/test_proc.js +141 -0
- package/test/test_proc.ts +163 -0
- package/test/test_react_complex.js +131 -27
- package/test/test_react_counter.js +131 -27
- package/test/test_react_flex.js +131 -27
- package/test/test_react_hidden.js +131 -27
- package/test/test_react_listview_link.js +131 -27
- package/test/test_react_notify.js +131 -27
- package/test/test_react_render.js +131 -27
- package/test/test_registry.js +74 -0
- package/test/test_registry.ts +95 -0
- package/test/test_sysinfo.js +122 -0
- package/test/test_sysinfo.ts +141 -0
- package/test/test_wolfssl_read.js +45 -44
- package/test/test_wolfssl_read.ts +42 -42
package/README.en.md
CHANGED
|
@@ -168,8 +168,7 @@ Both sides must set `onmessage = null` when communication is complete. This rele
|
|
|
168
168
|
|
|
169
169
|
### Prerequisites
|
|
170
170
|
|
|
171
|
-
-
|
|
172
|
-
- Node.js (for TypeScript compilation via tsc)
|
|
171
|
+
- **podman** (dev container; build/test/QEMU verification all run inside the container, consistent with CI)
|
|
173
172
|
- Git (for submodules)
|
|
174
173
|
|
|
175
174
|
### Build
|
|
@@ -178,38 +177,34 @@ Both sides must set `onmessage = null` when communication is complete. This rele
|
|
|
178
177
|
git clone --recursive https://github.com/xna00/quickwin.git
|
|
179
178
|
cd quickwin
|
|
180
179
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
.\run.ps1 "make js" # compile TypeScript
|
|
184
|
-
.\run.ps1 "make test" # run all tests
|
|
180
|
+
./docker/dev-podman.sh up # start dev container (reuses ghcr.io/xna00/quickwin-dev)
|
|
181
|
+
podman exec quickwin-dev bash -lc 'cd /workspace && make js && make cc64 && make test TEST=-net'
|
|
185
182
|
```
|
|
186
183
|
|
|
187
|
-
`make
|
|
188
|
-
(no `WebAssembly` global);
|
|
184
|
+
`make cc64` produces `_build/qwin.exe`. `cc64-nowasm` produces a smaller
|
|
185
|
+
`_build/qwin-nowasm.exe` without WASM/WAMR (no `WebAssembly` global); for
|
|
186
|
+
that build run `make test TEST=-wasm` to skip WASM tests.
|
|
189
187
|
|
|
190
188
|
### Build Targets
|
|
191
189
|
|
|
192
190
|
| Target | Description |
|
|
193
191
|
|--------|-------------|
|
|
194
|
-
| `make`
|
|
195
|
-
| `make
|
|
196
|
-
| `make
|
|
197
|
-
| `
|
|
198
|
-
| `make debug` | debug build with bridge logs |
|
|
199
|
-
| `make nowasm` | no WASM/WAMR build → `_build/qwin-nowasm.exe` (~1.2MB, no `WebAssembly` global) |
|
|
200
|
-
| `make cc64-small` | cross-compile x86_64 `_build/qwin.exe` (`-Os`, used by CI) |
|
|
201
|
-
| `make cc32-small` | cross-compile i686 `_build/qwin-x86.exe` (`-Os`, XP-compatible, used by CI) |
|
|
192
|
+
| `make cc64` | cross-compile x86_64 → `_build/qwin.exe` (default target, `BUILD=fast`) |
|
|
193
|
+
| `make cc32` | cross-compile i686/XP → `_build/qwin-x86.exe` |
|
|
194
|
+
| `make cc64-nowasm` / `cc32-nowasm` | no WASM/WAMR builds |
|
|
195
|
+
| `BUILD=fast\|small\|debug` | build flavor: `make cc64 BUILD=small` = `-Os`+LTO (~1.5MB, used by CI) |
|
|
202
196
|
| `make js` | compile TypeScript via tsc |
|
|
203
|
-
| `make wasm` | compile
|
|
197
|
+
| `make wasm` | compile `test/*.wat` → WASM fixtures |
|
|
204
198
|
| `make test` | run all tests |
|
|
205
199
|
| `make test TEST=-net` | skip network tests (fast) |
|
|
206
200
|
| `make test TEST=wasm` | run WASM tests only |
|
|
207
|
-
| `make
|
|
208
|
-
| `make embed-js`
|
|
209
|
-
| `make embed-js-br` | embed brotli-compressed JS into exe |
|
|
210
|
-
| `make exec_server` | Bundle `examples/exec_server.ts` and brotli-embed into `_build/exec_server.exe` |
|
|
201
|
+
| `make exec_server` | bundle `examples/exec_server.ts` and brotli-embed into `_build/exec_server.exe` |
|
|
202
|
+
| `make embed-js` / `embed-js-br` | embed JS (brotli-compressed) into exe |
|
|
211
203
|
| `make npm-pkg` | package into `dist/quickwin/` |
|
|
212
|
-
| `make
|
|
204
|
+
| `make gen-const` | regenerate `quickwin_const.d.ts` |
|
|
205
|
+
| `make clean` / `distclean` | clean (wipes all of `_build/`; afterwards run `make js wasm`) |
|
|
206
|
+
|
|
207
|
+
Build and troubleshooting details: `.agents/DEVELOPMENT_WORKFLOW.md`.
|
|
213
208
|
|
|
214
209
|
## License
|
|
215
210
|
|
package/README.md
CHANGED
|
@@ -170,8 +170,6 @@ parent.onmessage = (e) => {
|
|
|
170
170
|
- **podman**(开发容器;构建/测试/QEMU 验证都在容器内完成,与 CI 一致)
|
|
171
171
|
- Git(用于子模块)
|
|
172
172
|
|
|
173
|
-
> 也支持 MSYS2 原生直接 `make`,详见 `.agents/DEVELOPMENT_WORKFLOW.md`。
|
|
174
|
-
|
|
175
173
|
### 构建
|
|
176
174
|
|
|
177
175
|
```bash
|
|
@@ -195,7 +193,7 @@ podman exec quickwin-dev bash -lc 'cd /workspace && make js && make cc64 && make
|
|
|
195
193
|
| `make cc64-nowasm` / `cc32-nowasm` | 无 WASM/WAMR 版 |
|
|
196
194
|
| `BUILD=fast\|small\|debug` | 构建 flavor:`make cc64 BUILD=small` = `-Os`+LTO(约 1.5MB,CI 用) |
|
|
197
195
|
| `make js` | 通过 tsc 编译 TypeScript |
|
|
198
|
-
| `make wasm`
|
|
196
|
+
| `make wasm` | 编译 `test/*.wat` → WASM fixtures |
|
|
199
197
|
| `make test` | 运行全部测试 |
|
|
200
198
|
| `make test TEST=-net` | 跳过网络测试(快速) |
|
|
201
199
|
| `make test TEST=wasm` | 仅运行 WASM 测试 |
|