koffi 2.16.0-beta.2 → 2.16.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.
Files changed (425) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm64/koffi.node +0 -0
  8. package/build/koffi/linux_armhf/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_loong64/koffi.node +0 -0
  11. package/build/koffi/linux_riscv64d/koffi.node +0 -0
  12. package/build/koffi/linux_x64/koffi.node +0 -0
  13. package/build/koffi/musl_arm64/koffi.node +0 -0
  14. package/build/koffi/musl_x64/koffi.node +0 -0
  15. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  16. package/build/koffi/openbsd_x64/koffi.node +0 -0
  17. package/build/koffi/win32_arm64/koffi.exp +0 -0
  18. package/build/koffi/win32_arm64/koffi.lib +0 -0
  19. package/build/koffi/win32_arm64/koffi.node +0 -0
  20. package/build/koffi/win32_ia32/koffi.exp +0 -0
  21. package/build/koffi/win32_ia32/koffi.lib +0 -0
  22. package/build/koffi/win32_ia32/koffi.node +0 -0
  23. package/build/koffi/win32_x64/koffi.exp +0 -0
  24. package/build/koffi/win32_x64/koffi.lib +0 -0
  25. package/build/koffi/win32_x64/koffi.node +0 -0
  26. package/index.d.ts +9 -11
  27. package/index.js +6 -9
  28. package/indirect.js +6 -9
  29. package/lib/native/base/base.cc +1 -6
  30. package/package.json +3 -3
  31. package/src/cnoke/assets/FindCNoke.cmake +27 -16
  32. package/src/cnoke/assets/toolchains.json +126 -0
  33. package/src/cnoke/cnoke.js +27 -33
  34. package/src/cnoke/src/builder.js +124 -63
  35. package/src/cnoke/src/tools.js +1 -5
  36. package/src/koffi/CMakeLists.txt +32 -21
  37. package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -238
  38. package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
  39. package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -274
  40. package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
  41. package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
  42. package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
  43. package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -236
  44. package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
  45. package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -212
  46. package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
  47. package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -206
  48. package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
  49. package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
  50. package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -226
  51. package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +36 -21
  52. package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +31 -16
  53. package/src/koffi/src/call.cc +473 -287
  54. package/src/koffi/src/call.hh +15 -18
  55. package/src/koffi/src/ffi.cc +167 -183
  56. package/src/koffi/src/ffi.hh +59 -13
  57. package/src/koffi/src/init.js +1 -0
  58. package/src/koffi/src/util.cc +113 -159
  59. package/src/koffi/src/util.hh +23 -74
  60. package/src/koffi/src/win32.cc +13 -0
  61. package/src/koffi/src/win32.hh +7 -0
  62. package/src/koffi/tools/write_trampolines.js +77 -0
  63. package/doc/README.md +0 -27
  64. package/doc/assets.ini +0 -24
  65. package/doc/build.sh +0 -9
  66. package/doc/develop.sh +0 -15
  67. package/doc/pages/404.md +0 -17
  68. package/doc/pages.ini +0 -86
  69. package/doc/static/highlight.js +0 -8
  70. package/doc/static/koffi.css +0 -11
  71. package/doc/static/koffi.png +0 -0
  72. package/doc/static/logo.webp +0 -0
  73. package/doc/static/perf_linux.png +0 -0
  74. package/doc/static/perf_windows.png +0 -0
  75. package/doc/static/print.css +0 -10
  76. package/doc/templates/code.html +0 -48
  77. package/doc/templates/page.html +0 -47
  78. package/src/koffi/cmake/raylib.cmake +0 -85
  79. package/src/koffi/cmake/sqlite3.cmake +0 -9
  80. package/src/koffi/examples/electron-builder/README.md +0 -11
  81. package/src/koffi/examples/electron-builder/package.json +0 -21
  82. package/src/koffi/examples/electron-builder/src/app.js +0 -20
  83. package/src/koffi/examples/electron-builder/src/index.html +0 -143
  84. package/src/koffi/examples/electron-builder/src/preload.js +0 -5
  85. package/src/koffi/examples/electron-forge/README.md +0 -25
  86. package/src/koffi/examples/electron-forge/forge.config.js +0 -63
  87. package/src/koffi/examples/electron-forge/package.json +0 -39
  88. package/src/koffi/examples/electron-forge/src/index.css +0 -7
  89. package/src/koffi/examples/electron-forge/src/index.html +0 -143
  90. package/src/koffi/examples/electron-forge/src/main.js +0 -52
  91. package/src/koffi/examples/electron-forge/src/preload.js +0 -5
  92. package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
  93. package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
  94. package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
  95. package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
  96. package/src/koffi/examples/node-esbuild/README.md +0 -19
  97. package/src/koffi/examples/node-esbuild/index.js +0 -2
  98. package/src/koffi/examples/node-esbuild/package.json +0 -16
  99. package/src/koffi/examples/nwjs/README.md +0 -20
  100. package/src/koffi/examples/nwjs/package.json +0 -11
  101. package/src/koffi/examples/nwjs/src/index.html +0 -145
  102. package/src/koffi/examples/nwjs/src/package.json +0 -10
  103. package/src/koffi/examples/yao-pkg/README.md +0 -17
  104. package/src/koffi/examples/yao-pkg/index.js +0 -2
  105. package/src/koffi/examples/yao-pkg/package.json +0 -22
  106. package/src/koffi/src/primitives.inc +0 -39
  107. package/src/koffi/src/trampolines/armasm.inc +0 -32771
  108. package/src/koffi/src/trampolines/gnu.inc +0 -24577
  109. package/src/koffi/src/trampolines/masm32.inc +0 -32769
  110. package/src/koffi/src/trampolines/masm64.inc +0 -32769
  111. package/src/koffi/src/trampolines/prototypes.inc +0 -16388
  112. package/vendor/node-addon-api/CHANGELOG.md +0 -1272
  113. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  114. package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
  115. package/vendor/node-addon-api/appveyor.yml +0 -37
  116. package/vendor/node-addon-api/benchmark/README.md +0 -47
  117. package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
  118. package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
  119. package/vendor/node-addon-api/benchmark/function_args.js +0 -60
  120. package/vendor/node-addon-api/benchmark/index.js +0 -34
  121. package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
  122. package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
  123. package/vendor/node-addon-api/common.gypi +0 -21
  124. package/vendor/node-addon-api/doc/README.md +0 -145
  125. package/vendor/node-addon-api/doc/addon.md +0 -163
  126. package/vendor/node-addon-api/doc/array.md +0 -81
  127. package/vendor/node-addon-api/doc/array_buffer.md +0 -165
  128. package/vendor/node-addon-api/doc/async_context.md +0 -86
  129. package/vendor/node-addon-api/doc/async_operations.md +0 -31
  130. package/vendor/node-addon-api/doc/async_worker.md +0 -428
  131. package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
  132. package/vendor/node-addon-api/doc/basic_env.md +0 -200
  133. package/vendor/node-addon-api/doc/bigint.md +0 -97
  134. package/vendor/node-addon-api/doc/boolean.md +0 -68
  135. package/vendor/node-addon-api/doc/buffer.md +0 -245
  136. package/vendor/node-addon-api/doc/callback_scope.md +0 -54
  137. package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
  138. package/vendor/node-addon-api/doc/checker-tool.md +0 -32
  139. package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
  140. package/vendor/node-addon-api/doc/cmake-js.md +0 -87
  141. package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
  142. package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
  143. package/vendor/node-addon-api/doc/dataview.md +0 -248
  144. package/vendor/node-addon-api/doc/date.md +0 -68
  145. package/vendor/node-addon-api/doc/env.md +0 -87
  146. package/vendor/node-addon-api/doc/error.md +0 -120
  147. package/vendor/node-addon-api/doc/error_handling.md +0 -266
  148. package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
  149. package/vendor/node-addon-api/doc/external.md +0 -79
  150. package/vendor/node-addon-api/doc/external_buffer.md +0 -18
  151. package/vendor/node-addon-api/doc/finalization.md +0 -153
  152. package/vendor/node-addon-api/doc/function.md +0 -402
  153. package/vendor/node-addon-api/doc/function_reference.md +0 -238
  154. package/vendor/node-addon-api/doc/generator.md +0 -13
  155. package/vendor/node-addon-api/doc/handle_scope.md +0 -77
  156. package/vendor/node-addon-api/doc/hierarchy.md +0 -95
  157. package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
  158. package/vendor/node-addon-api/doc/maybe.md +0 -76
  159. package/vendor/node-addon-api/doc/memory_management.md +0 -27
  160. package/vendor/node-addon-api/doc/name.md +0 -29
  161. package/vendor/node-addon-api/doc/node-gyp.md +0 -82
  162. package/vendor/node-addon-api/doc/number.md +0 -163
  163. package/vendor/node-addon-api/doc/object.md +0 -411
  164. package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
  165. package/vendor/node-addon-api/doc/object_reference.md +0 -117
  166. package/vendor/node-addon-api/doc/object_wrap.md +0 -604
  167. package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
  168. package/vendor/node-addon-api/doc/promises.md +0 -130
  169. package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
  170. package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
  171. package/vendor/node-addon-api/doc/range_error.md +0 -59
  172. package/vendor/node-addon-api/doc/reference.md +0 -113
  173. package/vendor/node-addon-api/doc/setup.md +0 -115
  174. package/vendor/node-addon-api/doc/string.md +0 -93
  175. package/vendor/node-addon-api/doc/symbol.md +0 -61
  176. package/vendor/node-addon-api/doc/syntax_error.md +0 -66
  177. package/vendor/node-addon-api/doc/threadsafe.md +0 -121
  178. package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
  179. package/vendor/node-addon-api/doc/type_error.md +0 -59
  180. package/vendor/node-addon-api/doc/type_taggable.md +0 -40
  181. package/vendor/node-addon-api/doc/typed_array.md +0 -78
  182. package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
  183. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
  184. package/vendor/node-addon-api/doc/value.md +0 -368
  185. package/vendor/node-addon-api/doc/version_management.md +0 -43
  186. package/vendor/node-addon-api/eslint.config.js +0 -5
  187. package/vendor/node-addon-api/except.gypi +0 -25
  188. package/vendor/node-addon-api/index.js +0 -14
  189. package/vendor/node-addon-api/node_addon_api.gyp +0 -42
  190. package/vendor/node-addon-api/node_api.gyp +0 -9
  191. package/vendor/node-addon-api/noexcept.gypi +0 -26
  192. package/vendor/node-addon-api/nothing.c +0 -0
  193. package/vendor/node-addon-api/package-support.json +0 -21
  194. package/vendor/node-addon-api/package.json +0 -480
  195. package/vendor/node-addon-api/release-please-config.json +0 -15
  196. package/vendor/node-addon-api/test/README.md +0 -91
  197. package/vendor/node-addon-api/test/addon.cc +0 -44
  198. package/vendor/node-addon-api/test/addon.js +0 -7
  199. package/vendor/node-addon-api/test/addon_build/index.js +0 -49
  200. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
  201. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
  202. package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
  203. package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
  204. package/vendor/node-addon-api/test/addon_data.cc +0 -98
  205. package/vendor/node-addon-api/test/addon_data.js +0 -24
  206. package/vendor/node-addon-api/test/array_buffer.cc +0 -243
  207. package/vendor/node-addon-api/test/array_buffer.js +0 -70
  208. package/vendor/node-addon-api/test/async_context.cc +0 -36
  209. package/vendor/node-addon-api/test/async_context.js +0 -122
  210. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
  211. package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
  212. package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
  213. package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
  214. package/vendor/node-addon-api/test/async_worker.cc +0 -341
  215. package/vendor/node-addon-api/test/async_worker.js +0 -264
  216. package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
  217. package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
  218. package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
  219. package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
  220. package/vendor/node-addon-api/test/basic_types/array.js +0 -34
  221. package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
  222. package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
  223. package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
  224. package/vendor/node-addon-api/test/basic_types/number.js +0 -115
  225. package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
  226. package/vendor/node-addon-api/test/basic_types/value.js +0 -173
  227. package/vendor/node-addon-api/test/bigint.cc +0 -91
  228. package/vendor/node-addon-api/test/bigint.js +0 -53
  229. package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
  230. package/vendor/node-addon-api/test/binding.cc +0 -200
  231. package/vendor/node-addon-api/test/binding.gyp +0 -160
  232. package/vendor/node-addon-api/test/buffer.cc +0 -185
  233. package/vendor/node-addon-api/test/buffer.h +0 -26
  234. package/vendor/node-addon-api/test/buffer.js +0 -150
  235. package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
  236. package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
  237. package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
  238. package/vendor/node-addon-api/test/callbackInfo.js +0 -9
  239. package/vendor/node-addon-api/test/callbackscope.cc +0 -39
  240. package/vendor/node-addon-api/test/callbackscope.js +0 -49
  241. package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
  242. package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
  243. package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
  244. package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
  245. package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
  246. package/vendor/node-addon-api/test/common/index.js +0 -246
  247. package/vendor/node-addon-api/test/common/test_helper.h +0 -71
  248. package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
  249. package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
  250. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
  251. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
  252. package/vendor/node-addon-api/test/date.cc +0 -45
  253. package/vendor/node-addon-api/test/date.js +0 -18
  254. package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
  255. package/vendor/node-addon-api/test/env_cleanup.js +0 -55
  256. package/vendor/node-addon-api/test/env_misc.cc +0 -25
  257. package/vendor/node-addon-api/test/env_misc.js +0 -12
  258. package/vendor/node-addon-api/test/error.cc +0 -436
  259. package/vendor/node-addon-api/test/error.js +0 -111
  260. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
  261. package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
  262. package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
  263. package/vendor/node-addon-api/test/except_all.cc +0 -22
  264. package/vendor/node-addon-api/test/except_all.js +0 -14
  265. package/vendor/node-addon-api/test/exports.js +0 -19
  266. package/vendor/node-addon-api/test/external.cc +0 -85
  267. package/vendor/node-addon-api/test/external.js +0 -85
  268. package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
  269. package/vendor/node-addon-api/test/finalizer_order.js +0 -98
  270. package/vendor/node-addon-api/test/function.cc +0 -338
  271. package/vendor/node-addon-api/test/function.js +0 -137
  272. package/vendor/node-addon-api/test/function_reference.cc +0 -204
  273. package/vendor/node-addon-api/test/function_reference.js +0 -157
  274. package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
  275. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
  276. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
  277. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
  278. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
  279. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
  280. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
  281. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
  282. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
  283. package/vendor/node-addon-api/test/handlescope.cc +0 -86
  284. package/vendor/node-addon-api/test/handlescope.js +0 -16
  285. package/vendor/node-addon-api/test/index.js +0 -160
  286. package/vendor/node-addon-api/test/maybe/check.cc +0 -69
  287. package/vendor/node-addon-api/test/maybe/index.js +0 -50
  288. package/vendor/node-addon-api/test/memory_management.cc +0 -18
  289. package/vendor/node-addon-api/test/memory_management.js +0 -9
  290. package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
  291. package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
  292. package/vendor/node-addon-api/test/name.cc +0 -110
  293. package/vendor/node-addon-api/test/name.js +0 -59
  294. package/vendor/node-addon-api/test/napi_child.js +0 -14
  295. package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
  296. package/vendor/node-addon-api/test/object/delete_property.js +0 -41
  297. package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
  298. package/vendor/node-addon-api/test/object/finalizer.js +0 -28
  299. package/vendor/node-addon-api/test/object/get_property.cc +0 -34
  300. package/vendor/node-addon-api/test/object/get_property.js +0 -40
  301. package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
  302. package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
  303. package/vendor/node-addon-api/test/object/has_property.cc +0 -38
  304. package/vendor/node-addon-api/test/object/has_property.js +0 -37
  305. package/vendor/node-addon-api/test/object/object.cc +0 -430
  306. package/vendor/node-addon-api/test/object/object.js +0 -218
  307. package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
  308. package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
  309. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
  310. package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
  311. package/vendor/node-addon-api/test/object/set_property.cc +0 -45
  312. package/vendor/node-addon-api/test/object/set_property.js +0 -30
  313. package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
  314. package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
  315. package/vendor/node-addon-api/test/object_reference.cc +0 -417
  316. package/vendor/node-addon-api/test/object_reference.js +0 -262
  317. package/vendor/node-addon-api/test/objectwrap.cc +0 -295
  318. package/vendor/node-addon-api/test/objectwrap.js +0 -309
  319. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
  320. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
  321. package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
  322. package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
  323. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
  324. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
  325. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
  326. package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
  327. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
  328. package/vendor/node-addon-api/test/promise.cc +0 -111
  329. package/vendor/node-addon-api/test/promise.js +0 -43
  330. package/vendor/node-addon-api/test/reference.cc +0 -78
  331. package/vendor/node-addon-api/test/reference.js +0 -20
  332. package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
  333. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
  334. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
  335. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
  336. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
  337. package/vendor/node-addon-api/test/run_script.cc +0 -56
  338. package/vendor/node-addon-api/test/run_script.js +0 -45
  339. package/vendor/node-addon-api/test/symbol.cc +0 -79
  340. package/vendor/node-addon-api/test/symbol.js +0 -66
  341. package/vendor/node-addon-api/test/testUtil.js +0 -54
  342. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
  343. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
  344. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
  345. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
  346. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
  347. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
  348. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
  349. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
  350. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
  351. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
  352. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
  353. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
  354. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
  355. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
  356. package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
  357. package/vendor/node-addon-api/test/thunking_manual.js +0 -16
  358. package/vendor/node-addon-api/test/type_taggable.cc +0 -66
  359. package/vendor/node-addon-api/test/type_taggable.js +0 -59
  360. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
  361. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
  362. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
  363. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
  364. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
  365. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
  366. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
  367. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
  368. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
  369. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
  370. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
  371. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
  372. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
  373. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
  374. package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
  375. package/vendor/node-addon-api/test/typedarray.cc +0 -413
  376. package/vendor/node-addon-api/test/typedarray.js +0 -103
  377. package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
  378. package/vendor/node-addon-api/test/value_type_cast.js +0 -106
  379. package/vendor/node-addon-api/test/version_management.cc +0 -28
  380. package/vendor/node-addon-api/test/version_management.js +0 -29
  381. package/vendor/node-addon-api/tools/README.md +0 -73
  382. package/vendor/node-addon-api/tools/check-napi.js +0 -99
  383. package/vendor/node-addon-api/tools/clang-format.js +0 -71
  384. package/vendor/node-addon-api/tools/conversion.js +0 -301
  385. package/vendor/node-addon-api/unit-test/README.md +0 -28
  386. package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
  387. package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
  388. package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
  389. package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
  390. package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
  391. package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
  392. package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
  393. package/vendor/node-addon-api/unit-test/setup.js +0 -13
  394. package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
  395. package/vendor/node-addon-api/unit-test/test.js +0 -30
  396. package/vendor/node-api-headers/CHANGELOG.md +0 -130
  397. package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
  398. package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
  399. package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
  400. package/vendor/node-api-headers/index.js +0 -17
  401. package/vendor/node-api-headers/lib/clang-utils.js +0 -50
  402. package/vendor/node-api-headers/lib/parse-utils.js +0 -92
  403. package/vendor/node-api-headers/package.json +0 -59
  404. package/vendor/node-api-headers/release-please-config.json +0 -12
  405. package/vendor/node-api-headers/scripts/update-headers.js +0 -246
  406. package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
  407. package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
  408. package/vendor/node-api-headers/symbols.js +0 -257
  409. package/vendor/node-api-headers/test/parse-utils.js +0 -21
  410. /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
  411. /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
  412. /package/doc/{pages/contribute.md → contribute.md} +0 -0
  413. /package/doc/{pages/functions.md → functions.md} +0 -0
  414. /package/doc/{pages/index.md → index.md} +0 -0
  415. /package/doc/{pages/input.md → input.md} +0 -0
  416. /package/doc/{pages/migration.md → migration.md} +0 -0
  417. /package/doc/{pages/misc.md → misc.md} +0 -0
  418. /package/doc/{pages/output.md → output.md} +0 -0
  419. /package/doc/{pages/packaging.md → packaging.md} +0 -0
  420. /package/doc/{pages/platforms.md → platforms.md} +0 -0
  421. /package/doc/{pages/pointers.md → pointers.md} +0 -0
  422. /package/doc/{pages/start.md → start.md} +0 -0
  423. /package/doc/{pages/unions.md → unions.md} +0 -0
  424. /package/doc/{pages/variables.md → variables.md} +0 -0
  425. /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
@@ -98,76 +98,13 @@ static inline bool IsObject(Napi::Value value)
98
98
  return value.IsObject() && !IsNullOrUndefined(value) && !value.IsArray();
99
99
  }
100
100
 
101
- template <typename T>
102
- bool TryNumber(Napi::Value value, T *out_value)
101
+ static inline bool IsRawBuffer(Napi::Value value)
103
102
  {
104
- // Assume number first
105
- {
106
- T v;
107
- napi_status status;
108
-
109
- if constexpr (std::is_same_v<T, double>) {
110
- status = napi_get_value_double(value.Env(), value, &v);
111
- } else if constexpr (std::is_same_v<T, float>) {
112
- double d;
113
- status = napi_get_value_double(value.Env(), value, &d);
114
- v = (float)d;
115
- } else {
116
- int64_t i64;
117
- status = napi_get_value_int64(value.Env(), value, &i64);
118
- v = (T)i64;
119
- }
120
-
121
- if (status == napi_ok) [[likely]] {
122
- *out_value = v;
123
- return true;
124
- }
125
- }
126
-
127
- if (value.IsBigInt()) {
128
- Napi::BigInt bigint = value.As<Napi::BigInt>();
129
-
130
- bool lossless;
131
- *out_value = (T)bigint.Uint64Value(&lossless);
132
-
133
- return true;
134
- }
135
-
136
- return false;
103
+ return value.IsTypedArray() || value.IsArrayBuffer();
137
104
  }
138
105
 
139
- static inline bool TryPointer(Napi::Value value, void **out_ptr)
106
+ static inline Span<uint8_t> GetRawBuffer(Napi::Value value)
140
107
  {
141
- if (IsNullOrUndefined(value)) {
142
- *out_ptr = nullptr;
143
- return true;
144
- } else if (uintptr_t ptr = 0; TryNumber(value, &ptr)) {
145
- *out_ptr = (void *)ptr;
146
- return true;
147
- } else if (value.IsTypedArray()) {
148
- napi_get_typedarray_info(value.Env(), value, nullptr, nullptr, out_ptr, nullptr, nullptr);
149
- return true;
150
- } else if (value.IsExternal()) {
151
- Napi::External<void> external = value.As<Napi::External<void>>();
152
-
153
- *out_ptr = (void *)external.Data();
154
- return true;
155
- } else if (value.IsArrayBuffer()) {
156
- Napi::ArrayBuffer buffer = value.As<Napi::ArrayBuffer>();
157
-
158
- *out_ptr = (void *)buffer.Data();
159
- return true;
160
- }
161
-
162
- return false;
163
- }
164
-
165
- static inline bool TryBuffer(Napi::Value value, Span<uint8_t> *out_buffer)
166
- {
167
- // Before somewhere around Node 20.12, napi_get_buffer_info() would assert/crash
168
- // when used with something it did not support, instead of returning napi_invalid_arg.
169
- // So we need to call napi_is_buffer(), at least for now.
170
-
171
108
  if (value.IsBuffer()) {
172
109
  void *ptr = nullptr;
173
110
  size_t length = 0;
@@ -175,20 +112,35 @@ static inline bool TryBuffer(Napi::Value value, Span<uint8_t> *out_buffer)
175
112
  // Assume it works
176
113
  napi_get_buffer_info(value.Env(), value, &ptr, &length);
177
114
 
178
- *out_buffer = MakeSpan((uint8_t *)ptr, (Size)length);
179
- return true;
115
+ return MakeSpan((uint8_t *)ptr, (Size)length);
180
116
  } else if (value.IsArrayBuffer()) {
181
117
  Napi::ArrayBuffer buffer = value.As<Napi::ArrayBuffer>();
182
118
 
183
- *out_buffer = MakeSpan((uint8_t *)buffer.Data(), (Size)buffer.ByteLength());
184
- return true;
119
+ return MakeSpan((uint8_t *)buffer.Data(), (Size)buffer.ByteLength());
185
120
  }
186
121
 
187
- return false;
122
+ K_UNREACHABLE();
188
123
  }
189
124
 
190
125
  int GetTypedArrayType(const TypeInfo *type);
191
126
 
127
+ template <typename T>
128
+ T GetNumber(Napi::Value value)
129
+ {
130
+ K_ASSERT(value.IsNumber() || value.IsBigInt());
131
+
132
+ if (value.IsNumber()) [[likely]] {
133
+ return (T)value.As<Napi::Number>().DoubleValue();
134
+ } else if (value.IsBigInt()) {
135
+ Napi::BigInt bigint = value.As<Napi::BigInt>();
136
+
137
+ bool lossless;
138
+ return (T)bigint.Uint64Value(&lossless);
139
+ }
140
+
141
+ K_UNREACHABLE();
142
+ }
143
+
192
144
  template <typename T>
193
145
  Size NullTerminatedLength(const T *ptr)
194
146
  {
@@ -260,9 +212,6 @@ static inline Napi::Array GetOwnPropertyNames(Napi::Object obj)
260
212
 
261
213
  Napi::Function WrapFunction(Napi::Env env, const FunctionInfo *func);
262
214
 
263
- Napi::Value WrapPointer(Napi::Env env, const TypeInfo *ref, void *ptr);
264
- Napi::Value WrapCallback(Napi::Env env, const TypeInfo *ref, void *ptr);
265
-
266
215
  bool DetectCallConvention(Span<const char> name, CallConvention *out_convention);
267
216
 
268
217
  int AnalyseFlat(const TypeInfo *type, FunctionRef<void(const TypeInfo *type, int offset, int count)> func);
@@ -180,6 +180,19 @@ int GetDllMachine(const wchar_t *filename)
180
180
  return GetFileMachine(h, true);
181
181
  }
182
182
 
183
+ extern "C" int __cdecl SehHandler(void *ptr, void *, void *ctx, void *)
184
+ {
185
+ EXCEPTION_RECORD *rec = (EXCEPTION_RECORD *)ptr;
186
+
187
+ if (!(rec->ExceptionFlags & (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND))) {
188
+ EXCEPTION_POINTERS ep = { rec, (CONTEXT *)ctx };
189
+ UnhandledExceptionFilter(&ep);
190
+ ExitProcess(rec->ExceptionCode);
191
+ }
192
+
193
+ return ExceptionContinueSearch;
194
+ }
195
+
183
196
  }
184
197
 
185
198
  #endif
@@ -87,6 +87,11 @@ static_assert(offsetof(TEB, DeallocationStack) == 0xE0C);
87
87
  static_assert(offsetof(TEB, GuaranteedStackBytes) == 0x0F78);
88
88
  static_assert(offsetof(TEB, SameTebFlags) == 0xFCA);
89
89
 
90
+ struct SehFrame {
91
+ void *Next;
92
+ void *Handler;
93
+ };
94
+
90
95
  #endif
91
96
 
92
97
  static inline TEB *GetTEB()
@@ -109,4 +114,6 @@ void *LoadWindowsLibrary(Napi::Env env, Span<const char> path); // Returns HANDL
109
114
  int GetSelfMachine();
110
115
  int GetDllMachine(const wchar_t *filename);
111
116
 
117
+ extern "C" int __cdecl SehHandler(void *ptr, void *, void *ctx, void *);
118
+
112
119
  }
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
4
+
5
+ const fs = require('fs');
6
+ const path = require('path');
7
+
8
+ main();
9
+
10
+ async function main() {
11
+ try {
12
+ await run();
13
+ } catch (err) {
14
+ console.error(err);
15
+ process.exit(1);
16
+ }
17
+ }
18
+
19
+ function run() {
20
+ let args = process.argv.slice(2);
21
+
22
+ if (args.length < 2)
23
+ throw new Error('Usage: write_trampolines.js DIRECTORY N');
24
+
25
+ let dest_dir = args[0]?.trim?.();
26
+ let n = parseInt(args[1], 10);
27
+
28
+ if (!dest_dir)
29
+ throw new Error('Destination directory is empty');
30
+ if (Number.isNaN(n))
31
+ throw new Error('N must be an integer');
32
+
33
+ if (!fs.existsSync(dest_dir))
34
+ fs.mkdirSync(dest_dir);
35
+
36
+ writeAsmTrampolines(path.join(dest_dir, 'gnu.inc'), n,
37
+ i => `.global SYMBOL(Trampoline${i})`,
38
+ i => `SYMBOL(Trampoline${i}):\n trampoline ${i}`
39
+ );
40
+ writeAsmTrampolines(path.join(dest_dir, 'armasm.inc'), n,
41
+ i => ` EXPORT Trampoline${i}`,
42
+ i => `Trampoline${i} PROC\n trampoline ${i}\n ENDP`,
43
+ ` END`
44
+ );
45
+ writeAsmTrampolines(path.join(dest_dir, 'masm64.inc'), n,
46
+ i => `public Trampoline${i}`,
47
+ i => `Trampoline${i} proc frame\n trampoline ${i}\nTrampoline${i} endp`
48
+ );
49
+ writeAsmTrampolines(path.join(dest_dir, 'masm32.inc'), n,
50
+ i => `public Trampoline${i}`,
51
+ i => `Trampoline${i} proc\n trampoline ${i}\nTrampoline${i} endp`
52
+ );
53
+ }
54
+
55
+ function writeAsmTrampolines(filename, n, fmt_export, fmt_proc, end = null) {
56
+ let lines = [];
57
+
58
+ for (let i = 0; i < n; i++) {
59
+ let line = fmt_export(i);
60
+ lines.push(line);
61
+ }
62
+ lines.push('');
63
+
64
+ for (let i = 0; i < n; i++) {
65
+ let line = fmt_proc(i);
66
+ lines.push(line);
67
+ }
68
+ lines.push('');
69
+
70
+ if (end !== null) {
71
+ lines.push(end);
72
+ lines.push('');
73
+ }
74
+
75
+ let content = lines.join('\n');
76
+ fs.writeFileSync(filename, content);
77
+ }
package/doc/README.md DELETED
@@ -1,27 +0,0 @@
1
- # Install required dependencies
2
-
3
- On Debian and Ubuntu use the following commands:
4
-
5
- ```sh
6
- sudo apt update
7
- sudo apt install build-essential
8
- ```
9
-
10
- On RPM-based distributions such as Fedora or Rocky Linux, use:
11
-
12
- ```sh
13
- sudo dnf groupinstall "Development Tools"
14
- sudo dnf install clang
15
- ```
16
-
17
- # Run the develop script
18
-
19
- Run the development script from the website directory:
20
-
21
- ```sh
22
- ./develop.sh
23
- ```
24
-
25
- Open the proposed link at `http://localhost:8000/`.
26
-
27
- Change page content at will and builds will happen automatically. You just need to refresh the page.
package/doc/assets.ini DELETED
@@ -1,24 +0,0 @@
1
- EsbuildPath = ../../vendor/esbuild/native/node_modules/@esbuild
2
- EsbuildRoot = ../..
3
-
4
- [favicon.png]
5
- Type = Copy
6
- From = static/koffi.png
7
-
8
- [static]
9
- Type = Copy
10
- From = static
11
- Ignore = favicon.png *.js *.css
12
-
13
- [static/site.min.js]
14
- Type = Bundle
15
- Source = ../../lib/web/flat/static.js
16
-
17
- [static/highlight.min.js]
18
- Type = Bundle
19
- Source = static/highlight.js
20
-
21
- [static/site.min.css]
22
- Type = Bundle
23
- Source = static/koffi.css
24
- Options = --loader:.woff2=file --loader:.png=file --loader:.webp=file
package/doc/build.sh DELETED
@@ -1,9 +0,0 @@
1
- #!/bin/bash -e
2
-
3
- cd "$(dirname $0)"
4
-
5
- ../../bootstrap.sh
6
- ../../felix -pFast hodler
7
-
8
- mkdir -p ../../bin/Web/koffi.dev
9
- ../../bin/Fast/hodler . -O ../../bin/Web/koffi.dev --gzip
package/doc/develop.sh DELETED
@@ -1,15 +0,0 @@
1
- #!/bin/bash -e
2
-
3
- cd "$(dirname $0)"
4
-
5
- ../../bootstrap.sh
6
- ../../felix -pFast nestor hodler
7
-
8
- trap 'kill $(jobs -p) 2>/dev/null' EXIT
9
- trap 'kill $(jobs -p) 2>/dev/null' SIGINT
10
-
11
- mkdir -p dist
12
- ../../bin/Fast/nestor dist/ &
13
- ../../bin/Fast/hodler . -O dist --loop --sourcemap &
14
-
15
- wait $(jobs -p)
package/doc/pages/404.md DELETED
@@ -1,17 +0,0 @@
1
- *The page you requested does not exist...*
2
-
3
- <div class="error">Error 404</div>
4
-
5
- <style>
6
- main {
7
- display: flex;
8
- flex-direction: column;
9
- align-items: center;
10
- justify-content: center;
11
- }
12
- .error {
13
- margin: 0.8em;
14
- font-size: 4em;
15
- font-weight: bold;
16
- }
17
- </style>
package/doc/pages.ini DELETED
@@ -1,86 +0,0 @@
1
- [pages/index.md]
2
- Title = Koffi
3
- Menu = Overview
4
- Description = Koffi presentation and features
5
- Template = templates/page.html
6
-
7
- [pages/start.md]
8
- Title = Get started | Koffi
9
- Menu = Documentation / Get started
10
- Description = Install and start using Koffi in your Node.js project
11
- Template = templates/code.html
12
-
13
- [pages/functions.md]
14
- Title = Function calls | Koffi
15
- Menu = Documentation / Function calls
16
- Description = Call native functions
17
- Template = templates/code.html
18
-
19
- [pages/input.md]
20
- Title = Input parameters | Koffi
21
- Menu = Documentation / Input parameters
22
- Template = templates/code.html
23
-
24
- [pages/pointers.md]
25
- Title = Data pointers | Koffi
26
- Menu = Documentation / Data pointers
27
- Template = templates/code.html
28
-
29
- [pages/output.md]
30
- Title = Output parameters | Koffi
31
- Menu = Documentation / Output parameters
32
- Template = templates/code.html
33
-
34
- [pages/unions.md]
35
- Title = Union values | Koffi
36
- Menu = Documentation / Union values
37
- Template = templates/code.html
38
-
39
- [pages/variables.md]
40
- Title = Exported variables | Koffi
41
- Menu = Documentation / Exported variables
42
- Template = templates/code.html
43
-
44
- [pages/callbacks.md]
45
- Title = Callbacks | Koffi
46
- Menu = Documentation / Javascript callbacks
47
- Template = templates/code.html
48
-
49
- [pages/misc.md]
50
- Title = Miscellaneous | Koffi
51
- Menu = Documentation / Miscellaneous
52
- Template = templates/code.html
53
-
54
- [pages/packaging.md]
55
- Title = Packaging | Koffi
56
- Menu = Documentation / Bundlers and Koffi
57
- Template = templates/code.html
58
-
59
- [pages/migration.md]
60
- Title = Migration | Koffi
61
- Menu = Documentation / Migration guide
62
- Description = Migration between major Koffi versions
63
- Template = templates/code.html
64
-
65
- [pages/benchmarks.md]
66
- Title = Benchmarks | Koffi
67
- Menu = Benchmarks
68
- Description = Performance of Koffi compared to NAPI and node-ffi
69
- Template = templates/code.html
70
-
71
- [pages/contribute.md]
72
- Title = Contribute | Koffi
73
- Menu = Contribute
74
- Description = How to get, build and test Koffi code
75
- Template = templates/code.html
76
-
77
- [changelog]
78
- SourceFile = ../../src/koffi/CHANGELOG.md
79
- Title = Changelog | Koffi
80
- Menu = Changelog
81
- Description = List of Koffi versions
82
- Template = templates/page.html
83
-
84
- [pages/404.md]
85
- Title = Page not found
86
- Template = templates/page.html
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- // SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
3
-
4
- import * as hljs from '../../../vendor/highlight.js/highlight.js';
5
-
6
- window.addEventListener('load', e => {
7
- hljs.highlightAll();
8
- });
@@ -1,11 +0,0 @@
1
- /* SPDX-License-Identifier: MIT */
2
- /* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
3
-
4
- @import url('../../../lib/web/flat/flat.css');
5
- @import url('../../../vendor/highlight.js/styles/base16/tomorrow.css');
6
-
7
- html {
8
- --top_color: #ec7400;
9
- --button_color: #ec7400;
10
- --anchor_color: #ec7400;
11
- }
Binary file
Binary file
Binary file
Binary file
@@ -1,10 +0,0 @@
1
- /* SPDX-License-Identifier: MIT */
2
- /* SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com> */
3
-
4
- @media print {
5
- .schema { width: 90%; }
6
-
7
- .columns { display: block; }
8
- .columns > * { width: auto; }
9
- .columns > * + * { margin-top: 3em; }
10
- }
@@ -1,48 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" class="nojs">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
-
7
- <title>{{ TITLE }}</title>
8
- <meta name="author" content="Niels Martignène">
9
- <meta name="description" content="{{ DESCRIPTION }}">
10
- <link rel="icon" href="{{ ASSET favicon.png }}">
11
-
12
- <meta name="theme-color" content="#6aa051">
13
- <link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
14
-
15
- <script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
16
- <script type="text/javascript" src="{{ ASSET static/highlight.min.js }}"></script>
17
- </head>
18
-
19
- <body>
20
- <nav id="top">
21
- <div class="deploy"></div>
22
- <menu>
23
- <a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
24
-
25
- {{ LINKS }}
26
-
27
- <div style="flex: 1;"></div>
28
-
29
- <li><a href="https://www.npmjs.com/package/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/npm/v/koffi?color=brightgreen&cacheSeconds=7200" alt="NPM"/></a></li>
30
- <li><a href="https://github.com/Koromix/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/badge/GitHub-Koffi-ff6600" alt="GitHub"/></a></li>
31
- </menu>
32
- </nav>
33
-
34
- {{ TOC }}
35
-
36
- <main>
37
- {{ CONTENT }}
38
- </main>
39
-
40
- <footer>
41
- <div>Koffi © 2025</div>
42
- <div style="font-size: 0.8em;">
43
- Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
44
- <a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
45
- </div>
46
- </footer>
47
- </body>
48
- </html>
@@ -1,47 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" class="nojs">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
-
7
- <title>{{ TITLE }}</title>
8
- <meta name="author" content="Niels Martignène">
9
- <meta name="description" content="{{ DESCRIPTION }}">
10
- <link rel="icon" href="{{ ASSET favicon.png }}">
11
-
12
- <meta name="theme-color" content="#6aa051">
13
- <link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
14
-
15
- <script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
16
- </head>
17
-
18
- <body>
19
- <nav id="top">
20
- <div class="deploy"></div>
21
- <menu>
22
- <a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
23
-
24
- {{ LINKS }}
25
-
26
- <div style="flex: 1;"></div>
27
-
28
- <li><a href="https://www.npmjs.com/package/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/npm/v/koffi?color=brightgreen&cacheSeconds=7200" alt="NPM"/></a></li>
29
- <li><a href="https://github.com/Koromix/koffi" style="border-bottom-color: transparent; margin-top: 8px;"><img src="https://img.shields.io/badge/GitHub-Koffi-ff6600" alt="GitHub"/></a></li>
30
- </menu>
31
- </nav>
32
-
33
- {{ TOC }}
34
-
35
- <main>
36
- {{ CONTENT }}
37
- </main>
38
-
39
- <footer>
40
- <div>Koffi © 2025</div>
41
- <div style="font-size: 0.8em;">
42
- Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
43
- <a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
44
- </div>
45
- </footer>
46
- </body>
47
- </html>
@@ -1,85 +0,0 @@
1
- # SPDX-License-Identifier: MIT
2
- # SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
3
-
4
- add_library(raylib SHARED
5
- ../../../vendor/raylib/src/rcore.c
6
- ../../../vendor/raylib/src/rshapes.c
7
- ../../../vendor/raylib/src/rtextures.c
8
- ../../../vendor/raylib/src/rtext.c
9
- ../../../vendor/raylib/src/rmodels.c
10
- ../../../vendor/raylib/src/utils.c
11
- ../../../vendor/raylib/src/rglfw.c
12
- ../../../vendor/raylib/src/raudio.c
13
- )
14
- set_target_properties(raylib PROPERTIES PREFIX "")
15
- target_include_directories(raylib PRIVATE ../../../vendor/raylib/src/external/glfw/include)
16
- target_compile_definitions(raylib PRIVATE PLATFORM_DESKTOP GRAPHICS_API_OPENGL_21 BUILD_LIBTYPE_SHARED NDEBUG)
17
-
18
- if(MSVC)
19
- target_compile_options(raylib PRIVATE /wd4244 /wd4305)
20
- else()
21
- target_compile_options(raylib PRIVATE -Wno-sign-compare -Wno-old-style-declaration
22
- -Wno-unused-function -Wno-missing-field-initializers
23
- -Wno-unused-value -Wno-implicit-fallthrough -Wno-stringop-overflow
24
- -Wno-unused-result)
25
- if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
26
- target_compile_options(raylib PRIVATE -Wno-unknown-warning-option)
27
- endif()
28
- endif()
29
-
30
- if(WIN32)
31
- target_compile_definitions(raylib PRIVATE _GLFW_WIN32 _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
32
- target_link_libraries(raylib PRIVATE winmm)
33
- endif()
34
-
35
- if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
36
- target_compile_definitions(raylib PRIVATE _GNU_SOURCE)
37
- endif()
38
-
39
- if(CMAKE_SYSTEM_NAME MATCHES "BSD")
40
- target_include_directories(raylib PRIVATE /usr/local/include)
41
- endif()
42
-
43
- if(APPLE)
44
- target_compile_options(raylib PRIVATE -Wno-unknown-warning-option -Wno-macro-redefined)
45
- target_compile_definitions(raylib PRIVATE _GLFW_COCOA GL_SILENCE_DEPRECATION)
46
- set_source_files_properties(../../../vendor/raylib/src/rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c")
47
- target_link_libraries(raylib PRIVATE "-framework Cocoa" "-framework IOKit" "-framework CoreFoundation" "-framework OpenGL")
48
- endif()
49
-
50
- if(UNIX AND NOT APPLE)
51
- set(missing_xlib "")
52
-
53
- find_path(XLIB_INCLUDE_DIRS X11/Xlib.h)
54
- if(NOT XLIB_INCLUDE_DIRS)
55
- list(APPEND missing_xlib Xlib)
56
- endif()
57
- find_path(XCURSOR_INCLUDE_DIRS X11/Xcursor/Xcursor.h)
58
- if(NOT XCURSOR_INCLUDE_DIRS)
59
- list(APPEND missing_xlib Xcursor)
60
- endif()
61
- find_path(XRANDR_INCLUDE_DIRS X11/extensions/Xrandr.h)
62
- if(NOT XRANDR_INCLUDE_DIRS)
63
- list(APPEND missing_xlib Xrandr)
64
- endif()
65
- find_path(XKB_INCLUDE_DIRS X11/XKBlib.h)
66
- if(NOT XKB_INCLUDE_DIRS)
67
- list(APPEND missing_xlib Xkbcommon)
68
- endif()
69
- find_path(XINERAMA_INCLUDE_DIRS X11/extensions/Xinerama.h)
70
- if(NOT XINERAMA_INCLUDE_DIRS)
71
- list(APPEND missing_xlib Xinerama)
72
- endif()
73
- find_path(XINPUT_INCLUDE_DIRS X11/extensions/XInput2.h)
74
- if(NOT XINPUT_INCLUDE_DIRS)
75
- list(APPEND missing_xlib XInput2)
76
- endif()
77
-
78
- if(missing_xlib)
79
- list(JOIN missing_xlib ", " missing_xlib_str)
80
- message(FATAL_ERROR "Missing X11 development files: ${missing_xlib_str}")
81
- endif()
82
-
83
- target_compile_definitions(raylib PRIVATE _GLFW_X11)
84
- target_include_directories(raylib PRIVATE ${XLIB_INCLUDE_DIRS})
85
- endif()
@@ -1,9 +0,0 @@
1
- # SPDX-License-Identifier: MIT
2
- # SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
3
-
4
- add_library(sqlite3 SHARED ../../../vendor/sqlite3mc/sqlite3.c)
5
- set_target_properties(sqlite3 PROPERTIES PREFIX "")
6
-
7
- if(WIN32)
8
- target_compile_definitions(sqlite3 PRIVATE SQLITE_API=__declspec\(dllexport\))
9
- endif()
@@ -1,11 +0,0 @@
1
- This is a simple example shows:
2
-
3
- - How to communicate with Koffi from a renderer window
4
- - How to use electron-builder with an application that uses Koffi
5
-
6
- Use the following commands to package the app for your system:
7
-
8
- ```sh
9
- npm install
10
- npm run dist
11
- ```