quickwin 3.0.0 → 3.0.2

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 (253) hide show
  1. package/README.en.md +3 -0
  2. package/README.md +2 -0
  3. package/lib/abort.d.ts +21 -0
  4. package/lib/assert.d.ts +2 -0
  5. package/lib/bitmap.d.ts +7 -0
  6. package/lib/cache-utils.d.ts +6 -0
  7. package/lib/certs.d.ts +1 -0
  8. package/lib/dpi.d.ts +9 -0
  9. package/lib/dumpRects.d.ts +2 -0
  10. package/lib/exec-log.d.ts +23 -0
  11. package/lib/fetch.d.ts +4 -0
  12. package/lib/ffi/bind.d.ts +70 -0
  13. package/lib/ffi/ctype.d.ts +117 -0
  14. package/lib/ffi/index.d.ts +2 -0
  15. package/lib/ffi/struct.d.ts +174 -0
  16. package/lib/http-common.d.ts +143 -0
  17. package/lib/http-server.d.ts +59 -0
  18. package/lib/polyfill.d.ts +22 -0
  19. package/lib/react-qw/components/Button.d.ts +9 -0
  20. package/lib/react-qw/components/CheckBox.d.ts +11 -0
  21. package/lib/react-qw/components/ComboBox.d.ts +11 -0
  22. package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
  23. package/lib/react-qw/components/Input.d.ts +15 -0
  24. package/lib/react-qw/components/Link.d.ts +12 -0
  25. package/lib/react-qw/components/ListBox.d.ts +13 -0
  26. package/lib/react-qw/components/ListView.d.ts +37 -0
  27. package/lib/react-qw/components/PathPicker.d.ts +23 -0
  28. package/lib/react-qw/components/ProgressBar.d.ts +9 -0
  29. package/lib/react-qw/components/RadioButton.d.ts +11 -0
  30. package/lib/react-qw/components/ScrollView.d.ts +9 -0
  31. package/lib/react-qw/components/Slider.d.ts +12 -0
  32. package/lib/react-qw/components/Tab.d.ts +14 -0
  33. package/lib/react-qw/components/Tooltip.d.ts +7 -0
  34. package/lib/react-qw/components/TreeView.d.ts +18 -0
  35. package/lib/react-qw/components/index.d.ts +16 -0
  36. package/lib/react-qw/index.d.ts +24 -0
  37. package/lib/react-qw/layout.d.ts +29 -0
  38. package/lib/react-qw/nmhdr.d.ts +1 -0
  39. package/lib/react-qw/props.d.ts +2 -0
  40. package/lib/react-qw/reconciler.d.ts +21 -0
  41. package/lib/stream.d.ts +20 -0
  42. package/lib/text-codec.d.ts +39 -0
  43. package/lib/text-measure.d.ts +14 -0
  44. package/lib/url.d.ts +54 -0
  45. package/lib/websocket.d.ts +73 -0
  46. package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
  47. package/lib/windows/comctl32.d.ts +14 -0
  48. package/lib/windows/comdlg32.d.ts +4 -0
  49. package/lib/windows/{gdi32.ts → gdi32.d.ts} +161 -98
  50. package/lib/windows/{kernel32.ts → kernel32.d.ts} +138 -115
  51. package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
  52. package/lib/windows/ntdll.d.ts +5 -0
  53. package/lib/windows/ole32.d.ts +3 -0
  54. package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
  55. package/lib/windows/{shell32.ts → shell32.d.ts} +25 -24
  56. package/lib/windows/structs.d.ts +3141 -0
  57. package/lib/windows/{user32.ts → user32.d.ts} +196 -193
  58. package/lib/windows/version.d.ts +27 -0
  59. package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
  60. package/package.json +15 -8
  61. package/qwin-nowasm-x86.exe +0 -0
  62. package/qwin-nowasm.exe +0 -0
  63. package/qwin-x86.exe +0 -0
  64. package/qwin.exe +0 -0
  65. package/examples/PdfCanvas.js +0 -38
  66. package/examples/PdfCanvas.tsx +0 -54
  67. package/examples/execd/main.js +0 -23379
  68. package/examples/execd/tray.js +0 -192
  69. package/examples/execd/worker.js +0 -122
  70. package/examples/pdf_preview2.js +0 -398
  71. package/examples/pdf_preview2.ts +0 -353
  72. package/examples/pdf_viewer.js +0 -22515
  73. package/examples/pdf_viewer.tsx +0 -228
  74. package/examples/test_gallery.js +0 -18692
  75. package/examples/test_gallery.tsx +0 -291
  76. package/examples/test_react_lazy.js +0 -18560
  77. package/examples/test_react_lazy.tsx +0 -65
  78. package/examples/test_react_listbox.js +0 -18562
  79. package/examples/test_react_listbox.tsx +0 -73
  80. package/examples/test_root_window.js +0 -18532
  81. package/examples/test_root_window.tsx +0 -41
  82. package/examples/test_tab.js +0 -18563
  83. package/examples/test_tab.tsx +0 -77
  84. package/examples/tray_demo.js +0 -86
  85. package/examples/tray_demo.tsx +0 -89
  86. package/lib/abort.ts +0 -69
  87. package/lib/assert.ts +0 -7
  88. package/lib/bitmap.ts +0 -39
  89. package/lib/cache-utils.ts +0 -40
  90. package/lib/certs.ts +0 -258
  91. package/lib/dpi.ts +0 -31
  92. package/lib/dumpRects.ts +0 -34
  93. package/lib/exec-log.ts +0 -30
  94. package/lib/fetch.ts +0 -589
  95. package/lib/ffi/bind.ts +0 -540
  96. package/lib/ffi/ctype.ts +0 -371
  97. package/lib/ffi/index.ts +0 -6
  98. package/lib/ffi/struct.ts +0 -780
  99. package/lib/http-common.ts +0 -441
  100. package/lib/http-server.ts +0 -604
  101. package/lib/polyfill.ts +0 -171
  102. package/lib/react-qw/components/index.ts +0 -17
  103. package/lib/react-qw/index.ts +0 -96
  104. package/lib/react-qw/layout.ts +0 -111
  105. package/lib/react-qw/nmhdr.ts +0 -7
  106. package/lib/react-qw/props.ts +0 -41
  107. package/lib/react-qw/reconciler.ts +0 -379
  108. package/lib/stream.ts +0 -22
  109. package/lib/text-codec.ts +0 -171
  110. package/lib/text-measure.ts +0 -44
  111. package/lib/url.ts +0 -201
  112. package/lib/websocket.ts +0 -600
  113. package/lib/windows/comctl32.ts +0 -20
  114. package/lib/windows/comdlg32.ts +0 -10
  115. package/lib/windows/ntdll.ts +0 -11
  116. package/lib/windows/ole32.ts +0 -9
  117. package/lib/windows/structs.ts +0 -807
  118. package/lib/windows/version.ts +0 -35
  119. package/test/add.wasm +0 -0
  120. package/test/bench_ffi_callraw.js +0 -235
  121. package/test/bench_ffi_callraw.ts +0 -235
  122. package/test/bench_ffi_overhead.js +0 -139
  123. package/test/bench_ffi_overhead.ts +0 -141
  124. package/test/bench_sendmessage.js +0 -104
  125. package/test/bench_sendmessage.ts +0 -100
  126. package/test/bench_sendmessage_nonnull.js +0 -187
  127. package/test/bench_sendmessage_nonnull.ts +0 -188
  128. package/test/complex.wasm +0 -0
  129. package/test/complex_imports.wasm +0 -0
  130. package/test/debug/http_server_e2e.js +0 -31
  131. package/test/debug/minwasm.js +0 -52
  132. package/test/debug/mupdf_debug.js +0 -86
  133. package/test/debug/wasm.js +0 -122
  134. package/test/debug/wasm_export_debug.js +0 -54
  135. package/test/debug/wasm_names.js +0 -36
  136. package/test/example.pdf +0 -0
  137. package/test/global_imports.wasm +0 -0
  138. package/test/import_func.wasm +0 -0
  139. package/test/imports.wasm +0 -0
  140. package/test/mupdf-cdn.js +0 -40
  141. package/test/mupdf-cdn.ts +0 -43
  142. package/test/run.js +0 -111
  143. package/test/run.ts +0 -116
  144. package/test/sjlj.wasm +0 -0
  145. package/test/test_basic.js +0 -7
  146. package/test/test_basic.ts +0 -9
  147. package/test/test_basic_fetch.js +0 -63
  148. package/test/test_basic_fetch.ts +0 -59
  149. package/test/test_brotli.js +0 -48
  150. package/test/test_brotli.ts +0 -52
  151. package/test/test_fetch_cache.js +0 -169
  152. package/test/test_fetch_cache.ts +0 -187
  153. package/test/test_ffi.js +0 -157
  154. package/test/test_ffi.ts +0 -170
  155. package/test/test_ffi_abi.js +0 -290
  156. package/test/test_ffi_abi.ts +0 -274
  157. package/test/test_ffi_array.js +0 -116
  158. package/test/test_ffi_array.ts +0 -141
  159. package/test/test_ffi_bind.js +0 -656
  160. package/test/test_ffi_bind.ts +0 -670
  161. package/test/test_ffi_struct.js +0 -779
  162. package/test/test_ffi_struct.ts +0 -828
  163. package/test/test_ffi_struct_layout.js +0 -495
  164. package/test/test_ffi_struct_layout.ts +0 -543
  165. package/test/test_ffi_user32.js +0 -103
  166. package/test/test_ffi_user32.ts +0 -113
  167. package/test/test_ffi_windows.js +0 -172
  168. package/test/test_ffi_windows.ts +0 -187
  169. package/test/test_files.js +0 -102
  170. package/test/test_files.ts +0 -121
  171. package/test/test_frame_encoding.js +0 -128
  172. package/test/test_frame_encoding.ts +0 -132
  173. package/test/test_gdi_draw.js +0 -681
  174. package/test/test_gdi_draw.ts +0 -725
  175. package/test/test_helper.js +0 -91
  176. package/test/test_helper.ts +0 -88
  177. package/test/test_http_import.js +0 -96
  178. package/test/test_http_import.ts +0 -93
  179. package/test/test_http_server.js +0 -214
  180. package/test/test_http_server.ts +0 -211
  181. package/test/test_import_dir.js +0 -4
  182. package/test/test_import_dir.ts +0 -5
  183. package/test/test_ipv6.js +0 -134
  184. package/test/test_ipv6.ts +0 -130
  185. package/test/test_jsx.js +0 -1314
  186. package/test/test_meta_url.js +0 -3
  187. package/test/test_meta_url.ts +0 -4
  188. package/test/test_mupdf_render.js +0 -51
  189. package/test/test_mupdf_render.ts +0 -55
  190. package/test/test_mupdf_twice.js +0 -62
  191. package/test/test_mupdf_twice.ts +0 -65
  192. package/test/test_mupdf_wasm.js +0 -39
  193. package/test/test_mupdf_wasm.ts +0 -32
  194. package/test/test_net_event.js +0 -57
  195. package/test/test_net_event.ts +0 -56
  196. package/test/test_net_fetch.js +0 -384
  197. package/test/test_net_fetch.ts +0 -373
  198. package/test/test_net_websocket.js +0 -180
  199. package/test/test_net_websocket.ts +0 -164
  200. package/test/test_polyfill.js +0 -144
  201. package/test/test_polyfill.ts +0 -159
  202. package/test/test_printer.js +0 -137
  203. package/test/test_printer.ts +0 -148
  204. package/test/test_proc.js +0 -141
  205. package/test/test_proc.ts +0 -163
  206. package/test/test_react_complex.js +0 -18678
  207. package/test/test_react_counter.js +0 -18555
  208. package/test/test_react_flex.js +0 -18871
  209. package/test/test_react_hidden.js +0 -18560
  210. package/test/test_react_listview_link.js +0 -18590
  211. package/test/test_react_notify.js +0 -18797
  212. package/test/test_react_render.js +0 -18550
  213. package/test/test_registry.js +0 -74
  214. package/test/test_registry.ts +0 -95
  215. package/test/test_sysinfo.js +0 -122
  216. package/test/test_sysinfo.ts +0 -141
  217. package/test/test_url.js +0 -173
  218. package/test/test_url.ts +0 -183
  219. package/test/test_wasm_basic.js +0 -85
  220. package/test/test_wasm_basic.ts +0 -73
  221. package/test/test_wasm_import_global.js +0 -41
  222. package/test/test_wasm_import_global.ts +0 -45
  223. package/test/test_wasm_sjlj.js +0 -145
  224. package/test/test_wasm_sjlj.ts +0 -125
  225. package/test/test_wasm_types.js +0 -97
  226. package/test/test_wasm_types.ts +0 -124
  227. package/test/test_wolfssl_read.js +0 -203
  228. package/test/test_wolfssl_read.ts +0 -184
  229. package/test/test_worker.js +0 -21
  230. package/test/test_worker.ts +0 -24
  231. package/test/test_worker_concurrent.js +0 -45
  232. package/test/test_worker_concurrent.ts +0 -56
  233. package/test/test_worker_data_url.js +0 -46
  234. package/test/test_worker_data_url.ts +0 -51
  235. package/test/test_worker_fetch.js +0 -26
  236. package/test/test_worker_fetch.ts +0 -27
  237. package/test/test_worker_net.js +0 -69
  238. package/test/test_worker_net.ts +0 -66
  239. package/test/test_worker_wasm_concurrent.js +0 -44
  240. package/test/test_worker_wasm_concurrent.ts +0 -45
  241. package/test/types.wasm +0 -0
  242. package/test/worker_fetch.js +0 -13
  243. package/test/worker_fetch.ts +0 -13
  244. package/test/worker_helper.js +0 -1
  245. package/test/worker_helper.ts +0 -1
  246. package/test/worker_http.js +0 -18
  247. package/test/worker_http.ts +0 -20
  248. package/test/worker_import_lib.js +0 -12
  249. package/test/worker_import_lib.ts +0 -13
  250. package/test/worker_module.js +0 -16
  251. package/test/worker_module.ts +0 -17
  252. package/test/worker_wasm_concurrent.js +0 -22
  253. package/test/worker_wasm_concurrent.ts +0 -22
@@ -1,3 +0,0 @@
1
- import * as os from 'os';
2
- const parent = os.Worker.parent;
3
- parent.postMessage({ type: 'url', url: import.meta.url });
@@ -1,4 +0,0 @@
1
- import * as os from 'os'
2
-
3
- const parent = os.Worker.parent
4
- parent.postMessage({ type: 'url', url: import.meta.url })
@@ -1,51 +0,0 @@
1
- import * as std from 'std';
2
- import '../lib/polyfill.js';
3
- import { MUPDF_JS_URL, preloadMupdfWasm } from './mupdf-cdn.js';
4
- export const suite = {
5
- name: 'mupdf-render',
6
- run: async (t) => {
7
- try {
8
- await preloadMupdfWasm();
9
- const mupdf = await import(MUPDF_JS_URL);
10
- const fp = std.open('./test/example.pdf', 'rb');
11
- if (!fp) {
12
- console.log('SKIP: no example.pdf');
13
- return;
14
- }
15
- fp.seek(0, 2);
16
- const size = fp.tell();
17
- fp.seek(0, 0);
18
- const buf = new ArrayBuffer(size);
19
- fp.read(buf, 0, size);
20
- fp.close();
21
- console.log('pdf size:', size);
22
- const doc = mupdf.Document.openDocument(new Uint8Array(buf), "application/pdf");
23
- console.log('pages:', doc.countPages());
24
- const page = doc.loadPage(0);
25
- const bounds = page.getBounds();
26
- if (bounds && bounds.length === 4)
27
- console.log('page size:', bounds[2] - bounds[0], 'x', bounds[3] - bounds[1]);
28
- const pixmap = page.toPixmap(mupdf.Matrix.scale(2, 2), mupdf.ColorSpace.DeviceRGB, false);
29
- if (pixmap) {
30
- console.log('pixmap:', pixmap.getWidth(), 'x', pixmap.getHeight());
31
- const png = pixmap.asPNG();
32
- console.log('png size:', png.byteLength);
33
- const out = std.open('./output.png', 'wb');
34
- if (out) {
35
- const pngBuf = new ArrayBuffer(png.byteLength);
36
- new Uint8Array(pngBuf).set(png);
37
- out.write(pngBuf, 0, png.byteLength);
38
- out.close();
39
- }
40
- console.log('saved to output.png');
41
- }
42
- doc.destroy();
43
- console.log('done');
44
- t.ok++;
45
- }
46
- catch (error) {
47
- console.log('ERROR:', error);
48
- t.fail++;
49
- }
50
- }
51
- };
@@ -1,55 +0,0 @@
1
- import * as std from 'std'
2
- import { Tester } from './test_helper.js'
3
- import '../lib/polyfill.js'
4
- import { MUPDF_JS_URL, preloadMupdfWasm } from './mupdf-cdn.js'
5
-
6
- export const suite = {
7
- name: 'mupdf-render',
8
- run: async (t: Tester): Promise<void> => {
9
- try {
10
- await preloadMupdfWasm()
11
-
12
- const mupdf: typeof import('@quickwinlabs/mupdf-wasm') = await import(MUPDF_JS_URL)
13
-
14
- const fp = std.open('./test/example.pdf', 'rb')
15
- if (!fp) { console.log('SKIP: no example.pdf'); return }
16
- fp.seek(0, 2)
17
- const size = fp.tell()
18
- fp.seek(0, 0)
19
- const buf = new ArrayBuffer(size)
20
- fp.read(buf, 0, size)
21
- fp.close()
22
- console.log('pdf size:', size)
23
-
24
- const doc = mupdf.Document.openDocument(new Uint8Array(buf), "application/pdf")
25
- console.log('pages:', doc.countPages())
26
-
27
- const page = doc.loadPage(0)
28
- const bounds = page.getBounds()
29
- if (bounds && bounds.length === 4)
30
- console.log('page size:', bounds[2] - bounds[0], 'x', bounds[3] - bounds[1])
31
-
32
- const pixmap = page.toPixmap(mupdf.Matrix.scale(2, 2), mupdf.ColorSpace.DeviceRGB, false)
33
- if (pixmap) {
34
- console.log('pixmap:', pixmap.getWidth(), 'x', pixmap.getHeight())
35
- const png = pixmap.asPNG()
36
- console.log('png size:', png.byteLength)
37
- const out = std.open('./output.png', 'wb')
38
- if (out) {
39
- const pngBuf = new ArrayBuffer(png.byteLength)
40
- new Uint8Array(pngBuf).set(png)
41
- out.write(pngBuf, 0, png.byteLength)
42
- out.close()
43
- }
44
- console.log('saved to output.png')
45
- }
46
-
47
- doc.destroy()
48
- console.log('done')
49
- t.ok++
50
- } catch (error) {
51
- console.log('ERROR:', error)
52
- t.fail++
53
- }
54
- }
55
- }
@@ -1,62 +0,0 @@
1
- import '../lib/polyfill.js';
2
- import * as std from 'std';
3
- import { MUPDF_JS_URL, preloadMupdfWasm } from './mupdf-cdn.js';
4
- export const suite = {
5
- name: 'mupdf-twice',
6
- run: async (t) => {
7
- try {
8
- console.log(' Loading WASM binary...');
9
- const wasmBinary = await preloadMupdfWasm();
10
- console.log(' WASM binary loaded, size:', wasmBinary.byteLength);
11
- console.log(' Importing mupdf module...');
12
- const mupdf = await import(MUPDF_JS_URL);
13
- console.log(' mupdf module imported ok');
14
- const fp = std.open('./test/example.pdf', 'rb');
15
- if (!fp) {
16
- console.log('SKIP: no example.pdf');
17
- return;
18
- }
19
- fp.seek(0, 2);
20
- const size = fp.tell();
21
- fp.seek(0, 0);
22
- const pdfBuf = new ArrayBuffer(size);
23
- fp.read(pdfBuf, 0, size);
24
- fp.close();
25
- console.log(' PDF loaded, size:', size);
26
- t.section('Test 1: two toPixmap on same page (no destroy)');
27
- try {
28
- const doc = mupdf.Document.openDocument(new Uint8Array(pdfBuf), "application/pdf");
29
- const page = doc.loadPage(0);
30
- console.log(' 1: toPixmap #1...');
31
- const pm1 = page.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false);
32
- console.log(' 1: toPixmap #1 done:', pm1.getWidth(), 'x', pm1.getHeight());
33
- t.check('toPixmap #1 ok', true, pm1 !== null);
34
- console.log(' 1: toPixmap #2...');
35
- const pm2 = page.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false);
36
- console.log(' 1: toPixmap #2 done:', pm2.getWidth(), 'x', pm2.getHeight());
37
- t.check('toPixmap #2 ok', true, pm2 !== null);
38
- }
39
- catch (e) {
40
- console.log(' 1: ERROR:', e instanceof Error ? e.message : String(e));
41
- }
42
- t.section('Test 2: second openDocument + toPixmap (no destroy of first)');
43
- try {
44
- console.log(' 2: openDocument #2...');
45
- const doc2 = mupdf.Document.openDocument(new Uint8Array(pdfBuf), "application/pdf");
46
- console.log(' 2: loadPage #2...');
47
- const page2 = doc2.loadPage(0);
48
- console.log(' 2: toPixmap #3...');
49
- const pm3 = page2.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false);
50
- console.log(' 2: toPixmap #3 done:', pm3.getWidth(), 'x', pm3.getHeight());
51
- t.check('toPixmap #3 ok', true, pm3 !== null);
52
- }
53
- catch (e) {
54
- console.log(' 2: ERROR:', e instanceof Error ? e.message : String(e));
55
- }
56
- console.log('All mupdf-twice tests done');
57
- }
58
- catch (e) {
59
- console.log('TOP-LEVEL ERROR:', e instanceof Error ? e.message : String(e));
60
- }
61
- }
62
- };
@@ -1,65 +0,0 @@
1
- import '../lib/polyfill.js'
2
- import * as std from 'std'
3
- import { Tester } from './test_helper.js'
4
- import { MUPDF_JS_URL, preloadMupdfWasm } from './mupdf-cdn.js'
5
-
6
- export const suite = {
7
- name: 'mupdf-twice',
8
- run: async (t: Tester): Promise<void> => {
9
- try {
10
- console.log(' Loading WASM binary...')
11
- const wasmBinary = await preloadMupdfWasm()
12
- console.log(' WASM binary loaded, size:', wasmBinary.byteLength)
13
-
14
- console.log(' Importing mupdf module...')
15
- const mupdf: typeof import('@quickwinlabs/mupdf-wasm') = await import(MUPDF_JS_URL)
16
- console.log(' mupdf module imported ok')
17
-
18
- const fp = std.open('./test/example.pdf', 'rb')
19
- if (!fp) { console.log('SKIP: no example.pdf'); return }
20
- fp.seek(0, 2)
21
- const size = fp.tell()
22
- fp.seek(0, 0)
23
- const pdfBuf = new ArrayBuffer(size)
24
- fp.read(pdfBuf, 0, size)
25
- fp.close()
26
- console.log(' PDF loaded, size:', size)
27
-
28
- t.section('Test 1: two toPixmap on same page (no destroy)')
29
- try {
30
- const doc = mupdf.Document.openDocument(new Uint8Array(pdfBuf), "application/pdf")
31
- const page = doc.loadPage(0)
32
-
33
- console.log(' 1: toPixmap #1...')
34
- const pm1 = page.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false)
35
- console.log(' 1: toPixmap #1 done:', pm1.getWidth(), 'x', pm1.getHeight())
36
- t.check('toPixmap #1 ok', true, pm1 !== null)
37
-
38
- console.log(' 1: toPixmap #2...')
39
- const pm2 = page.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false)
40
- console.log(' 1: toPixmap #2 done:', pm2.getWidth(), 'x', pm2.getHeight())
41
- t.check('toPixmap #2 ok', true, pm2 !== null)
42
- } catch (e: unknown) {
43
- console.log(' 1: ERROR:', e instanceof Error ? e.message : String(e))
44
- }
45
-
46
- t.section('Test 2: second openDocument + toPixmap (no destroy of first)')
47
- try {
48
- console.log(' 2: openDocument #2...')
49
- const doc2 = mupdf.Document.openDocument(new Uint8Array(pdfBuf), "application/pdf")
50
- console.log(' 2: loadPage #2...')
51
- const page2 = doc2.loadPage(0)
52
- console.log(' 2: toPixmap #3...')
53
- const pm3 = page2.toPixmap(mupdf.Matrix.scale(1, 1), mupdf.ColorSpace.DeviceRGB, false)
54
- console.log(' 2: toPixmap #3 done:', pm3.getWidth(), 'x', pm3.getHeight())
55
- t.check('toPixmap #3 ok', true, pm3 !== null)
56
- } catch (e: unknown) {
57
- console.log(' 2: ERROR:', e instanceof Error ? e.message : String(e))
58
- }
59
-
60
- console.log('All mupdf-twice tests done')
61
- } catch (e: unknown) {
62
- console.log('TOP-LEVEL ERROR:', e instanceof Error ? e.message : String(e))
63
- }
64
- }
65
- }
@@ -1,39 +0,0 @@
1
- import { fetchMupdfWasm } from './mupdf-cdn.js';
2
- export const suite = {
3
- name: 'mupdf-wasm',
4
- run: async (t) => {
5
- t.section('validate binary');
6
- let buf = null;
7
- try {
8
- buf = await fetchMupdfWasm();
9
- }
10
- catch (e) {
11
- console.log('mupdf wasm fetch failed: ' + String(e));
12
- }
13
- if (!buf) {
14
- t.fail++;
15
- return;
16
- }
17
- t.check('file size > 0', true, buf.byteLength > 0);
18
- const header = new Uint8Array(buf);
19
- t.check('magic', true, header[0] === 0x00 && header[1] === 0x61 && header[2] === 0x73 && header[3] === 0x6d);
20
- t.check('version 1', true, header[4] === 0x01 && header[5] === 0x00 && header[6] === 0x00 && header[7] === 0x00);
21
- t.check('WebAssembly.validate', true, WebAssembly.validate(buf));
22
- t.section('Module');
23
- var mod = null;
24
- try {
25
- mod = new WebAssembly.Module(buf);
26
- t.ok++;
27
- }
28
- catch (e) {
29
- t.fail++;
30
- }
31
- t.section('imports/exports');
32
- if (mod) {
33
- const exps = WebAssembly.Module.exports(mod);
34
- t.check('exports > 0', true, exps.length > 0);
35
- const imps = WebAssembly.Module.imports(mod);
36
- t.check('imports', imps.length, imps.length);
37
- }
38
- }
39
- };
@@ -1,32 +0,0 @@
1
- import { Tester } from './test_helper.js'
2
- import { fetchMupdfWasm } from './mupdf-cdn.js'
3
-
4
- export const suite = {
5
- name: 'mupdf-wasm',
6
- run: async (t: Tester) => {
7
- t.section('validate binary')
8
- let buf: ArrayBuffer | null = null
9
- try { buf = await fetchMupdfWasm() } catch (e) { console.log('mupdf wasm fetch failed: ' + String(e)) }
10
- if (!buf) { t.fail++; return }
11
- t.check('file size > 0', true, buf.byteLength > 0)
12
- const header = new Uint8Array(buf)
13
- t.check('magic', true, header[0] === 0x00 && header[1] === 0x61 && header[2] === 0x73 && header[3] === 0x6d)
14
- t.check('version 1', true, header[4] === 0x01 && header[5] === 0x00 && header[6] === 0x00 && header[7] === 0x00)
15
- t.check('WebAssembly.validate', true, WebAssembly.validate(buf))
16
-
17
- t.section('Module')
18
- var mod: WebAssembly.Module | null = null
19
- try {
20
- mod = new WebAssembly.Module(buf)
21
- t.ok++
22
- } catch (e) { t.fail++ }
23
-
24
- t.section('imports/exports')
25
- if (mod) {
26
- const exps = WebAssembly.Module.exports(mod)
27
- t.check('exports > 0', true, exps.length > 0)
28
- const imps = WebAssembly.Module.imports(mod)
29
- t.check('imports', imps.length, imps.length)
30
- }
31
- }
32
- }
@@ -1,57 +0,0 @@
1
- import * as sock from "sock";
2
- import * as os from "os";
3
- export const suite = {
4
- name: 'net-event',
5
- run: async (t) => {
6
- await new Promise((resolve, reject) => {
7
- const s = sock.socket();
8
- if (s === null || s < 0) {
9
- t.fail++;
10
- reject(new Error('socket() failed'));
11
- return;
12
- }
13
- var connected = false, gotData = false;
14
- const timeoutId = os.setTimeout(() => {
15
- if (!connected) {
16
- sock.closesocket(s);
17
- reject(new Error('connect timeout'));
18
- }
19
- }, 5000);
20
- sock.set_on_event(s, (event) => {
21
- if (event.lNetworkEvents & 16 /* FdEvent.FD_CONNECT */) {
22
- if (event.iErrorCode[0] === 0) {
23
- connected = true;
24
- t.ok++;
25
- os.clearTimeout(timeoutId);
26
- const req = "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n";
27
- const buf = new ArrayBuffer(req.length);
28
- const v = new Uint8Array(buf);
29
- for (let i = 0; i < req.length; i++)
30
- v[i] = req.charCodeAt(i);
31
- sock.send(s, buf);
32
- }
33
- else {
34
- sock.closesocket(s);
35
- reject(new Error('connect error: ' + event.iErrorCode[0]));
36
- }
37
- }
38
- if (event.lNetworkEvents & 1 /* FdEvent.FD_READ */ && connected && !gotData) {
39
- const data = sock.recv(s, 4096);
40
- if (data && data.byteLength > 0) {
41
- gotData = true;
42
- t.ok++;
43
- }
44
- }
45
- if (event.lNetworkEvents & 32 /* FdEvent.FD_CLOSE */) {
46
- os.clearTimeout(timeoutId);
47
- sock.closesocket(s);
48
- if (gotData && connected)
49
- resolve();
50
- else
51
- reject(new Error('test incomplete'));
52
- }
53
- });
54
- sock.connect(s, '127.0.0.1', 18923);
55
- });
56
- }
57
- };
@@ -1,56 +0,0 @@
1
- import * as sock from "sock"
2
- import * as os from "os"
3
- import { Tester } from './test_helper.js'
4
- import { FdEvent } from '../constants'
5
-
6
- interface WSAEvent {
7
- lNetworkEvents: number;
8
- iErrorCode: number[];
9
- }
10
-
11
- export const suite = {
12
- name: 'net-event',
13
- run: async (t: Tester): Promise<void> => {
14
- await new Promise<void>((resolve, reject) => {
15
- const s = sock.socket()
16
- if (s === null || s < 0) { t.fail++; reject(new Error('socket() failed')); return }
17
-
18
- var connected = false, gotData = false
19
-
20
- const timeoutId = os.setTimeout(() => {
21
- if (!connected) {
22
- sock.closesocket(s)
23
- reject(new Error('connect timeout'))
24
- }
25
- }, 5000)
26
-
27
- sock.set_on_event(s, (event: WSAEvent) => {
28
- if (event.lNetworkEvents & FdEvent.FD_CONNECT) {
29
- if (event.iErrorCode[0] === 0) {
30
- connected = true; t.ok++
31
- os.clearTimeout(timeoutId)
32
- const req = "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n"
33
- const buf = new ArrayBuffer(req.length)
34
- const v = new Uint8Array(buf)
35
- for (let i = 0; i < req.length; i++) v[i] = req.charCodeAt(i)
36
- sock.send(s, buf)
37
- } else {
38
- sock.closesocket(s)
39
- reject(new Error('connect error: ' + event.iErrorCode[0]))
40
- }
41
- }
42
- if (event.lNetworkEvents & FdEvent.FD_READ && connected && !gotData) {
43
- const data = sock.recv(s, 4096)
44
- if (data && data.byteLength > 0) { gotData = true; t.ok++ }
45
- }
46
- if (event.lNetworkEvents & FdEvent.FD_CLOSE) {
47
- os.clearTimeout(timeoutId)
48
- sock.closesocket(s)
49
- if (gotData && connected) resolve()
50
- else reject(new Error('test incomplete'))
51
- }
52
- })
53
- sock.connect(s, '127.0.0.1', 18923)
54
- })
55
- }
56
- }