koffi 2.16.0-beta.2 → 2.16.1

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 +66 -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 -246
  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 -300
  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 -244
  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 -220
  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 -230
  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 -252
  51. package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +38 -21
  52. package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +33 -16
  53. package/src/koffi/src/call.cc +475 -290
  54. package/src/koffi/src/call.hh +15 -18
  55. package/src/koffi/src/ffi.cc +195 -184
  56. package/src/koffi/src/ffi.hh +60 -16
  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
@@ -1,28 +0,0 @@
1
- #include "napi.h"
2
-
3
- using namespace Napi;
4
-
5
- Value getNapiVersion(const CallbackInfo& info) {
6
- Napi::Env env = info.Env();
7
- uint32_t napi_version = VersionManagement::GetNapiVersion(env);
8
- return Number::New(env, napi_version);
9
- }
10
-
11
- Value getNodeVersion(const CallbackInfo& info) {
12
- Napi::Env env = info.Env();
13
- const napi_node_version* node_version =
14
- VersionManagement::GetNodeVersion(env);
15
- Object version = Object::New(env);
16
- version.Set("major", Number::New(env, node_version->major));
17
- version.Set("minor", Number::New(env, node_version->minor));
18
- version.Set("patch", Number::New(env, node_version->patch));
19
- version.Set("release", String::New(env, node_version->release));
20
- return version;
21
- }
22
-
23
- Object InitVersionManagement(Env env) {
24
- Object exports = Object::New(env);
25
- exports["getNapiVersion"] = Function::New(env, getNapiVersion);
26
- exports["getNodeVersion"] = Function::New(env, getNodeVersion);
27
- return exports;
28
- }
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- module.exports = require('./common').runTest(test);
6
-
7
- function parseVersion () {
8
- const expected = {};
9
- expected.napi = parseInt(process.versions.napi);
10
- expected.release = process.release.name;
11
- const nodeVersion = process.versions.node.split('.');
12
- expected.major = parseInt(nodeVersion[0]);
13
- expected.minor = parseInt(nodeVersion[1]);
14
- expected.patch = parseInt(nodeVersion[2]);
15
- return expected;
16
- }
17
-
18
- function test (binding) {
19
- const expected = parseVersion();
20
-
21
- const napiVersion = binding.version_management.getNapiVersion();
22
- assert.strictEqual(napiVersion, expected.napi);
23
-
24
- const nodeVersion = binding.version_management.getNodeVersion();
25
- assert.strictEqual(nodeVersion.major, expected.major);
26
- assert.strictEqual(nodeVersion.minor, expected.minor);
27
- assert.strictEqual(nodeVersion.patch, expected.patch);
28
- assert.strictEqual(nodeVersion.release, expected.release);
29
- }
@@ -1,73 +0,0 @@
1
- # Tools
2
-
3
- ## clang-format
4
-
5
- The clang-format checking tools is designed to check changed lines of code compared to given git-refs.
6
-
7
- ## Migration Script
8
-
9
- The migration tool is designed to reduce repetitive work in the migration process. However, the script is not aiming to convert every thing for you. There are usually some small fixes and major reconstruction required.
10
-
11
- ### How To Use
12
-
13
- To run the conversion script, first make sure you have the latest `node-addon-api` in your `node_modules` directory.
14
- ```
15
- npm install node-addon-api
16
- ```
17
-
18
- Then run the script passing your project directory
19
- ```
20
- node ./node_modules/node-addon-api/tools/conversion.js ./
21
- ```
22
-
23
- After finish, recompile and debug things that are missed by the script.
24
-
25
-
26
- ### Quick Fixes
27
- Here is the list of things that can be fixed easily.
28
- 1. Change your methods' return value to void if it doesn't return value to JavaScript.
29
- 2. Use `.` to access attribute or to invoke member function in Napi::Object instead of `->`.
30
- 3. `Napi::New(env, value);` to `Napi::[Type]::New(env, value);
31
-
32
-
33
- ### Major Reconstructions
34
- The implementation of `Napi::ObjectWrap` is significantly different from NAN's. `Napi::ObjectWrap` takes a pointer to the wrapped object and creates a reference to the wrapped object inside ObjectWrap constructor. `Napi::ObjectWrap` also associates wrapped object's instance methods to Javascript module instead of static methods like NAN.
35
-
36
- So if you use Nan::ObjectWrap in your module, you will need to execute the following steps.
37
-
38
- 1. Convert your [ClassName]::New function to a constructor function that takes a `Napi::CallbackInfo`. Declare it as
39
- ```
40
- [ClassName](const Napi::CallbackInfo& info);
41
- ```
42
- and define it as
43
- ```
44
- [ClassName]::[ClassName](const Napi::CallbackInfo& info) : Napi::ObjectWrap<[ClassName]>(info){
45
- ...
46
- }
47
- ```
48
- This way, the `Napi::ObjectWrap` constructor will be invoked after the object has been instantiated and `Napi::ObjectWrap` can use the `this` pointer to create a reference to the wrapped object.
49
-
50
- 2. Move your original constructor code into the new constructor. Delete your original constructor.
51
- 3. In your class initialization function, associate native methods in the following way.
52
- ```
53
- Napi::FunctionReference constructor;
54
-
55
- void [ClassName]::Init(Napi::Env env, Napi::Object exports, Napi::Object module) {
56
- Napi::HandleScope scope(env);
57
- Napi::Function ctor = DefineClass(env, "Canvas", {
58
- InstanceMethod<&[ClassName]::Func1>("Func1"),
59
- InstanceMethod<&[ClassName]::Func2>("Func2"),
60
- InstanceAccessor<&[ClassName]::ValueGetter>("Value"),
61
- StaticMethod<&[ClassName]::StaticMethod>("MethodName"),
62
- InstanceValue("Value", Napi::[Type]::New(env, value)),
63
- });
64
-
65
- constructor = Napi::Persistent(ctor);
66
- constructor .SuppressDestruct();
67
- exports.Set("[ClassName]", ctor);
68
- }
69
- ```
70
- 4. In function where you need to Unwrap the ObjectWrap in NAN like `[ClassName]* native = Nan::ObjectWrap::Unwrap<[ClassName]>(info.This());`, use `this` pointer directly as the unwrapped object as each ObjectWrap instance is associated with a unique object instance.
71
-
72
-
73
- If you still find issues after following this guide, please leave us an issue describing your problem and we will try to resolve it.
@@ -1,99 +0,0 @@
1
- 'use strict';
2
- // Descend into a directory structure and, for each file matching *.node, output
3
- // based on the imports found in the file whether it's an N-API module or not.
4
-
5
- const fs = require('fs');
6
- const path = require('path');
7
-
8
- // Read the output of the command, break it into lines, and use the reducer to
9
- // decide whether the file is an N-API module or not.
10
- function checkFile (file, command, argv, reducer) {
11
- const child = require('child_process').spawn(command, argv, {
12
- stdio: ['inherit', 'pipe', 'inherit']
13
- });
14
- let leftover = '';
15
- let isNapi;
16
- child.stdout.on('data', (chunk) => {
17
- if (isNapi === undefined) {
18
- chunk = (leftover + chunk.toString()).split(/[\r\n]+/);
19
- leftover = chunk.pop();
20
- isNapi = chunk.reduce(reducer, isNapi);
21
- if (isNapi !== undefined) {
22
- child.kill();
23
- }
24
- }
25
- });
26
- child.on('close', (code, signal) => {
27
- if ((code === null && signal !== null) || (code !== 0)) {
28
- console.log(
29
- command + ' exited with code: ' + code + ' and signal: ' + signal);
30
- } else {
31
- // Green if it's a N-API module, red otherwise.
32
- console.log(
33
- '\x1b[' + (isNapi ? '42' : '41') + 'm' +
34
- (isNapi ? ' N-API' : 'Not N-API') +
35
- '\x1b[0m: ' + file);
36
- }
37
- });
38
- }
39
-
40
- // Use nm -a to list symbols.
41
- function checkFileUNIX (file) {
42
- checkFile(file, 'nm', ['-a', file], (soFar, line) => {
43
- if (soFar === undefined) {
44
- line = line.match(/([0-9a-f]*)? ([a-zA-Z]) (.*$)/);
45
- if (line[2] === 'U') {
46
- if (/^napi/.test(line[3])) {
47
- soFar = true;
48
- }
49
- }
50
- }
51
- return soFar;
52
- });
53
- }
54
-
55
- // Use dumpbin /imports to list symbols.
56
- function checkFileWin32 (file) {
57
- checkFile(file, 'dumpbin', ['/imports', file], (soFar, line) => {
58
- if (soFar === undefined) {
59
- line = line.match(/([0-9a-f]*)? +([a-zA-Z0-9]) (.*$)/);
60
- if (line && /^napi/.test(line[line.length - 1])) {
61
- soFar = true;
62
- }
63
- }
64
- return soFar;
65
- });
66
- }
67
-
68
- // Descend into a directory structure and pass each file ending in '.node' to
69
- // one of the above checks, depending on the OS.
70
- function recurse (top) {
71
- fs.readdir(top, (error, items) => {
72
- if (error) {
73
- throw new Error('error reading directory ' + top + ': ' + error);
74
- }
75
- items.forEach((item) => {
76
- item = path.join(top, item);
77
- fs.stat(item, ((item) => (error, stats) => {
78
- if (error) {
79
- throw new Error('error about ' + item + ': ' + error);
80
- }
81
- if (stats.isDirectory()) {
82
- recurse(item);
83
- } else if (/[.]node$/.test(item) &&
84
- // Explicitly ignore files called 'nothing.node' because they are
85
- // artefacts of node-addon-api having identified a version of
86
- // Node.js that ships with a correct implementation of N-API.
87
- path.basename(item) !== 'nothing.node') {
88
- process.platform === 'win32'
89
- ? checkFileWin32(item)
90
- : checkFileUNIX(item);
91
- }
92
- })(item));
93
- });
94
- });
95
- }
96
-
97
- // Start with the directory given on the command line or the current directory
98
- // if nothing was given.
99
- recurse(process.argv.length > 3 ? process.argv[2] : '.');
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const spawn = require('child_process').spawnSync;
4
- const path = require('path');
5
-
6
- const filesToCheck = ['*.h', '*.cc'];
7
- const FORMAT_START = process.env.FORMAT_START || 'main';
8
-
9
- function main (args) {
10
- let fix = false;
11
- while (args.length > 0) {
12
- switch (args[0]) {
13
- case '-f':
14
- case '--fix':
15
- fix = true;
16
- break;
17
- default:
18
- }
19
- args.shift();
20
- }
21
-
22
- const clangFormatPath = path.dirname(require.resolve('clang-format'));
23
- const binary = process.platform === 'win32'
24
- ? 'node_modules\\.bin\\clang-format.cmd'
25
- : 'node_modules/.bin/clang-format';
26
- const options = ['--binary=' + binary, '--style=file'];
27
- if (fix) {
28
- options.push(FORMAT_START);
29
- } else {
30
- options.push('--diff', FORMAT_START);
31
- }
32
-
33
- const gitClangFormatPath = path.join(clangFormatPath, 'bin/git-clang-format');
34
- const result = spawn(
35
- 'python',
36
- [gitClangFormatPath, ...options, '--', ...filesToCheck],
37
- { encoding: 'utf-8' }
38
- );
39
-
40
- if (result.stderr) {
41
- console.error('Error running git-clang-format:', result.stderr);
42
- return 2;
43
- }
44
-
45
- const clangFormatOutput = result.stdout.trim();
46
- // Bail fast if in fix mode.
47
- if (fix) {
48
- console.log(clangFormatOutput);
49
- return 0;
50
- }
51
- // Detect if there is any complains from clang-format
52
- if (
53
- clangFormatOutput !== '' &&
54
- clangFormatOutput !== 'no modified files to format' &&
55
- clangFormatOutput !== 'clang-format did not modify any files'
56
- ) {
57
- console.error(clangFormatOutput);
58
- const fixCmd = 'npm run lint:fix';
59
- console.error(`
60
- ERROR: please run "${fixCmd}" to format changes in your commit
61
- Note that when running the command locally, please keep your local
62
- main branch and working branch up to date with nodejs/node-addon-api
63
- to exclude un-related complains.
64
- Or you can run "env FORMAT_START=upstream/main ${fixCmd}".`);
65
- return 1;
66
- }
67
- }
68
-
69
- if (require.main === module) {
70
- process.exitCode = main(process.argv.slice(2));
71
- }
@@ -1,301 +0,0 @@
1
- #! /usr/bin/env node
2
-
3
- 'use strict';
4
-
5
- const fs = require('fs');
6
- const path = require('path');
7
-
8
- const args = process.argv.slice(2);
9
- const dir = args[0];
10
- if (!dir) {
11
- console.log('Usage: node ' + path.basename(__filename) + ' <target-dir>');
12
- process.exit(1);
13
- }
14
-
15
- const NodeApiVersion = require('../').version;
16
-
17
- const disable = args[1];
18
- let ConfigFileOperations;
19
- if (disable !== '--disable' && dir !== '--disable') {
20
- ConfigFileOperations = {
21
- 'package.json': [
22
- [/([ ]*)"dependencies": {/g, '$1"dependencies": {\n$1 "node-addon-api": "' + NodeApiVersion + '",'],
23
- [/[ ]*"nan": *"[^"]+"(,|)[\n\r]/g, '']
24
- ],
25
- 'binding.gyp': [
26
- [/([ ]*)'include_dirs': \[/g, '$1\'include_dirs\': [\n$1 \'<!(node -p "require(\\\'node-addon-api\\\').include_dir")\','],
27
- [/([ ]*)"include_dirs": \[/g, '$1"include_dirs": [\n$1 "<!(node -p \\"require(\'node-addon-api\').include_dir\\")",'],
28
- [/[ ]*("|')<!\(node -e ("|'|\\"|\\')require\(("|'|\\"|\\')nan("|'|\\"|\\')\)("|'|\\"|\\')\)("|')(,|)[\r\n]/g, ''],
29
- [/([ ]*)("|')target_name("|'): ("|')(.+?)("|'),/g, '$1$2target_name$2: $4$5$6,\n $2cflags!$2: [ $2-fno-exceptions$2 ],\n $2cflags_cc!$2: [ $2-fno-exceptions$2 ],\n $2xcode_settings$2: { $2GCC_ENABLE_CPP_EXCEPTIONS$2: $2YES$2,\n $2CLANG_CXX_LIBRARY$2: $2libc++$2,\n $2MACOSX_DEPLOYMENT_TARGET$2: $210.7$2,\n },\n $2msvs_settings$2: {\n $2VCCLCompilerTool$2: { $2ExceptionHandling$2: 1 },\n },']
30
- ]
31
- };
32
- } else {
33
- ConfigFileOperations = {
34
- 'package.json': [
35
- [/([ ]*)"dependencies": {/g, '$1"dependencies": {\n$1 "node-addon-api": "' + NodeApiVersion + '",'],
36
- [/[ ]*"nan": *"[^"]+"(,|)[\n\r]/g, '']
37
- ],
38
- 'binding.gyp': [
39
- [/([ ]*)'include_dirs': \[/g, '$1\'include_dirs\': [\n$1 \'<!(node -p "require(\\\'node-addon-api\\\').include_dir")\','],
40
- [/([ ]*)"include_dirs": \[/g, '$1"include_dirs": [\n$1 "<!(node -p \'require(\\"node-addon-api\\").include_dir\')",'],
41
- [/[ ]*("|')<!\(node -e ("|'|\\"|\\')require\(("|'|\\"|\\')nan("|'|\\"|\\')\)("|'|\\"|\\')\)("|')(,|)[\r\n]/g, ''],
42
- [/([ ]*)("|')target_name("|'): ("|')(.+?)("|'),/g, '$1$2target_name$2: $4$5$6,\n $2cflags!$2: [ $2-fno-exceptions$2 ],\n $2cflags_cc!$2: [ $2-fno-exceptions$2 ],\n $2defines$2: [ $2NAPI_DISABLE_CPP_EXCEPTIONS$2 ],\n $2conditions$2: [\n [\'OS=="win"\', { $2defines$2: [ $2_HAS_EXCEPTIONS=1$2 ] }]\n ]']
43
- ]
44
- };
45
- }
46
-
47
- const SourceFileOperations = [
48
- [/Nan::SetMethod\(target,[\s]*"(.*)"[\s]*,[\s]*([^)]+)\)/g, 'exports.Set(Napi::String::New(env, "$1"), Napi::Function::New(env, $2))'],
49
-
50
- [/v8::Local<v8::FunctionTemplate>\s+(\w+)\s*=\s*Nan::New<FunctionTemplate>\([\w\d:]+\);(?:\w+->Reset\(\1\))?\s+\1->SetClassName\(Nan::String::New\("(\w+)"\)\);/g, 'Napi::Function $1 = DefineClass(env, "$2", {'],
51
- [/Local<FunctionTemplate>\s+(\w+)\s*=\s*Nan::New<FunctionTemplate>\([\w\d:]+\);\s+(\w+)\.Reset\((\1)\);\s+\1->SetClassName\((Nan::String::New|Nan::New<(v8::)*String>)\("(.+?)"\)\);/g, 'Napi::Function $1 = DefineClass(env, "$6", {'],
52
- [/Local<FunctionTemplate>\s+(\w+)\s*=\s*Nan::New<FunctionTemplate>\([\w\d:]+\);(?:\w+->Reset\(\1\))?\s+\1->SetClassName\(Nan::String::New\("(\w+)"\)\);/g, 'Napi::Function $1 = DefineClass(env, "$2", {'],
53
- [/Nan::New<v8::FunctionTemplate>\(([\w\d:]+)\)->GetFunction\(\)/g, 'Napi::Function::New(env, $1)'],
54
- [/Nan::New<FunctionTemplate>\(([\w\d:]+)\)->GetFunction()/g, 'Napi::Function::New(env, $1);'],
55
- [/Nan::New<v8::FunctionTemplate>\(([\w\d:]+)\)/g, 'Napi::Function::New(env, $1)'],
56
- [/Nan::New<FunctionTemplate>\(([\w\d:]+)\)/g, 'Napi::Function::New(env, $1)'],
57
-
58
- // FunctionTemplate to FunctionReference
59
- [/Nan::Persistent<(v8::)*FunctionTemplate>/g, 'Napi::FunctionReference'],
60
- [/Nan::Persistent<(v8::)*Function>/g, 'Napi::FunctionReference'],
61
- [/v8::Local<v8::FunctionTemplate>/g, 'Napi::FunctionReference'],
62
- [/Local<FunctionTemplate>/g, 'Napi::FunctionReference'],
63
- [/v8::FunctionTemplate/g, 'Napi::FunctionReference'],
64
- [/FunctionTemplate/g, 'Napi::FunctionReference'],
65
-
66
- [/([ ]*)Nan::SetPrototypeMethod\(\w+, "(\w+)", (\w+)\);/g, '$1InstanceMethod("$2", &$3),'],
67
- [/([ ]*)(?:\w+\.Reset\(\w+\);\s+)?\(target\)\.Set\("(\w+)",\s*Nan::GetFunction\((\w+)\)\);/gm,
68
- '});\n\n' +
69
- '$1constructor = Napi::Persistent($3);\n' +
70
- '$1constructor.SuppressDestruct();\n' +
71
- '$1target.Set("$2", $3);'],
72
-
73
- // TODO: Other attribute combinations
74
- [/static_cast<PropertyAttribute>\(ReadOnly\s*\|\s*DontDelete\)/gm,
75
- 'static_cast<napi_property_attributes>(napi_enumerable | napi_configurable)'],
76
-
77
- [/([\w\d:<>]+?)::Cast\((.+?)\)/g, '$2.As<$1>()'],
78
-
79
- [/\*Nan::Utf8String\(([^)]+)\)/g, '$1->As<Napi::String>().Utf8Value().c_str()'],
80
- [/Nan::Utf8String +(\w+)\(([^)]+)\)/g, 'std::string $1 = $2.As<Napi::String>()'],
81
- [/Nan::Utf8String/g, 'std::string'],
82
-
83
- [/v8::String::Utf8Value (.+?)\((.+?)\)/g, 'Napi::String $1(env, $2)'],
84
- [/String::Utf8Value (.+?)\((.+?)\)/g, 'Napi::String $1(env, $2)'],
85
- [/\.length\(\)/g, '.Length()'],
86
-
87
- [/Nan::MakeCallback\(([^,]+),[\s\\]+([^,]+),/gm, '$2.MakeCallback($1,'],
88
-
89
- [/class\s+(\w+)\s*:\s*public\s+Nan::ObjectWrap/g, 'class $1 : public Napi::ObjectWrap<$1>'],
90
- [/(\w+)\(([^)]*)\)\s*:\s*Nan::ObjectWrap\(\)\s*(,)?/gm, '$1($2) : Napi::ObjectWrap<$1>()$3'],
91
-
92
- // HandleOKCallback to OnOK
93
- [/HandleOKCallback/g, 'OnOK'],
94
- // HandleErrorCallback to OnError
95
- [/HandleErrorCallback/g, 'OnError'],
96
-
97
- // ex. .As<Function>() to .As<Napi::Object>()
98
- [/\.As<v8::(Value|Boolean|String|Number|Object|Array|Symbol|External|Function)>\(\)/g, '.As<Napi::$1>()'],
99
- [/\.As<(Value|Boolean|String|Number|Object|Array|Symbol|External|Function)>\(\)/g, '.As<Napi::$1>()'],
100
-
101
- // ex. Nan::New<Number>(info[0]) to Napi::Number::New(info[0])
102
- [/Nan::New<(v8::)*Integer>\((.+?)\)/g, 'Napi::Number::New(env, $2)'],
103
- [/Nan::New\(([0-9.]+)\)/g, 'Napi::Number::New(env, $1)'],
104
- [/Nan::New<(v8::)*String>\("(.+?)"\)/g, 'Napi::String::New(env, "$2")'],
105
- [/Nan::New\("(.+?)"\)/g, 'Napi::String::New(env, "$1")'],
106
- [/Nan::New<(v8::)*(.+?)>\(\)/g, 'Napi::$2::New(env)'],
107
- [/Nan::New<(.+?)>\(\)/g, 'Napi::$1::New(env)'],
108
- [/Nan::New<(v8::)*(.+?)>\(/g, 'Napi::$2::New(env, '],
109
- [/Nan::New<(.+?)>\(/g, 'Napi::$1::New(env, '],
110
- [/Nan::NewBuffer\(/g, 'Napi::Buffer<char>::New(env, '],
111
- // TODO: Properly handle this
112
- [/Nan::New\(/g, 'Napi::New(env, '],
113
-
114
- [/\.IsInt32\(\)/g, '.IsNumber()'],
115
- [/->IsInt32\(\)/g, '.IsNumber()'],
116
-
117
- [/(.+?)->BooleanValue\(\)/g, '$1.As<Napi::Boolean>().Value()'],
118
- [/(.+?)->Int32Value\(\)/g, '$1.As<Napi::Number>().Int32Value()'],
119
- [/(.+?)->Uint32Value\(\)/g, '$1.As<Napi::Number>().Uint32Value()'],
120
- [/(.+?)->IntegerValue\(\)/g, '$1.As<Napi::Number>().Int64Value()'],
121
- [/(.+?)->NumberValue\(\)/g, '$1.As<Napi::Number>().DoubleValue()'],
122
-
123
- // ex. Nan::To<bool>(info[0]) to info[0].Value()
124
- [/Nan::To<v8::(Boolean|String|Number|Object|Array|Symbol|Function)>\((.+?)\)/g, '$2.To<Napi::$1>()'],
125
- [/Nan::To<(Boolean|String|Number|Object|Array|Symbol|Function)>\((.+?)\)/g, '$2.To<Napi::$1>()'],
126
- // ex. Nan::To<bool>(info[0]) to info[0].As<Napi::Boolean>().Value()
127
- [/Nan::To<bool>\((.+?)\)/g, '$1.As<Napi::Boolean>().Value()'],
128
- // ex. Nan::To<int>(info[0]) to info[0].As<Napi::Number>().Int32Value()
129
- [/Nan::To<int>\((.+?)\)/g, '$1.As<Napi::Number>().Int32Value()'],
130
- // ex. Nan::To<int32_t>(info[0]) to info[0].As<Napi::Number>().Int32Value()
131
- [/Nan::To<int32_t>\((.+?)\)/g, '$1.As<Napi::Number>().Int32Value()'],
132
- // ex. Nan::To<uint32_t>(info[0]) to info[0].As<Napi::Number>().Uint32Value()
133
- [/Nan::To<uint32_t>\((.+?)\)/g, '$1.As<Napi::Number>().Uint32Value()'],
134
- // ex. Nan::To<int64_t>(info[0]) to info[0].As<Napi::Number>().Int64Value()
135
- [/Nan::To<int64_t>\((.+?)\)/g, '$1.As<Napi::Number>().Int64Value()'],
136
- // ex. Nan::To<float>(info[0]) to info[0].As<Napi::Number>().FloatValue()
137
- [/Nan::To<float>\((.+?)\)/g, '$1.As<Napi::Number>().FloatValue()'],
138
- // ex. Nan::To<double>(info[0]) to info[0].As<Napi::Number>().DoubleValue()
139
- [/Nan::To<double>\((.+?)\)/g, '$1.As<Napi::Number>().DoubleValue()'],
140
-
141
- [/Nan::New\((\w+)\)->HasInstance\((\w+)\)/g, '$2.InstanceOf($1.Value())'],
142
-
143
- [/Nan::Has\(([^,]+),\s*/gm, '($1).Has('],
144
- [/\.Has\([\s|\\]*Nan::New<(v8::)*String>\(([^)]+)\)\)/gm, '.Has($1)'],
145
- [/\.Has\([\s|\\]*Nan::New\(([^)]+)\)\)/gm, '.Has($1)'],
146
-
147
- [/Nan::Get\(([^,]+),\s*/gm, '($1).Get('],
148
- [/\.Get\([\s|\\]*Nan::New<(v8::)*String>\(([^)]+)\)\)/gm, '.Get($1)'],
149
- [/\.Get\([\s|\\]*Nan::New\(([^)]+)\)\)/gm, '.Get($1)'],
150
-
151
- [/Nan::Set\(([^,]+),\s*/gm, '($1).Set('],
152
- [/\.Set\([\s|\\]*Nan::New<(v8::)*String>\(([^)]+)\)\s*,/gm, '.Set($1,'],
153
- [/\.Set\([\s|\\]*Nan::New\(([^)]+)\)\s*,/gm, '.Set($1,'],
154
-
155
- // ex. node::Buffer::HasInstance(info[0]) to info[0].IsBuffer()
156
- [/node::Buffer::HasInstance\((.+?)\)/g, '$1.IsBuffer()'],
157
- // ex. node::Buffer::Length(info[0]) to info[0].Length()
158
- [/node::Buffer::Length\((.+?)\)/g, '$1.As<Napi::Buffer<char>>().Length()'],
159
- // ex. node::Buffer::Data(info[0]) to info[0].Data()
160
- [/node::Buffer::Data\((.+?)\)/g, '$1.As<Napi::Buffer<char>>().Data()'],
161
- [/Nan::CopyBuffer\(/g, 'Napi::Buffer::Copy(env, '],
162
-
163
- // Nan::AsyncQueueWorker(worker)
164
- [/Nan::AsyncQueueWorker\((.+)\);/g, '$1.Queue();'],
165
- [/Nan::(Undefined|Null|True|False)\(\)/g, 'env.$1()'],
166
-
167
- // Nan::ThrowError(error) to Napi::Error::New(env, error).ThrowAsJavaScriptException()
168
- [/([ ]*)return Nan::Throw(\w*?)Error\((.+?)\);/g, '$1Napi::$2Error::New(env, $3).ThrowAsJavaScriptException();\n$1return env.Null();'],
169
- [/Nan::Throw(\w*?)Error\((.+?)\);\n(\s*)return;/g, 'Napi::$1Error::New(env, $2).ThrowAsJavaScriptException();\n$3return env.Null();'],
170
- [/Nan::Throw(\w*?)Error\((.+?)\);/g, 'Napi::$1Error::New(env, $2).ThrowAsJavaScriptException();\n'],
171
- // Nan::RangeError(error) to Napi::RangeError::New(env, error)
172
- [/Nan::(\w*?)Error\((.+)\)/g, 'Napi::$1Error::New(env, $2)'],
173
-
174
- [/Nan::Set\((.+?),\n* *(.+?),\n* *(.+?),\n* *(.+?)\)/g, '$1.Set($2, $3, $4)'],
175
-
176
- [/Nan::(Escapable)?HandleScope\s+(\w+)\s*;/g, 'Napi::$1HandleScope $2(env);'],
177
- [/Nan::(Escapable)?HandleScope/g, 'Napi::$1HandleScope'],
178
- [/Nan::ForceSet\(([^,]+), ?/g, '$1->DefineProperty('],
179
- [/\.ForceSet\(Napi::String::New\(env, "(\w+)"\),\s*?/g, '.DefineProperty("$1", '],
180
- // [ /Nan::GetPropertyNames\(([^,]+)\)/, '$1->GetPropertyNames()' ],
181
- [/Nan::Equals\(([^,]+),/g, '$1.StrictEquals('],
182
-
183
- [/(.+)->Set\(/g, '$1.Set('],
184
-
185
- [/Nan::Callback/g, 'Napi::FunctionReference'],
186
-
187
- [/Nan::Persistent<Object>/g, 'Napi::ObjectReference'],
188
- [/Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target/g, 'Napi::Env& env, Napi::Object& target'],
189
-
190
- [/(\w+)\*\s+(\w+)\s*=\s*Nan::ObjectWrap::Unwrap<\w+>\(info\.This\(\)\);/g, '$1* $2 = this;'],
191
- [/Nan::ObjectWrap::Unwrap<(\w+)>\((.*)\);/g, '$2.Unwrap<$1>();'],
192
-
193
- [/Nan::NAN_METHOD_RETURN_TYPE/g, 'void'],
194
- [/NAN_INLINE/g, 'inline'],
195
-
196
- [/Nan::NAN_METHOD_ARGS_TYPE/g, 'const Napi::CallbackInfo&'],
197
- [/NAN_METHOD\(([\w\d:]+?)\)/g, 'Napi::Value $1(const Napi::CallbackInfo& info)'],
198
- [/static\s*NAN_GETTER\(([\w\d:]+?)\)/g, 'Napi::Value $1(const Napi::CallbackInfo& info)'],
199
- [/NAN_GETTER\(([\w\d:]+?)\)/g, 'Napi::Value $1(const Napi::CallbackInfo& info)'],
200
- [/static\s*NAN_SETTER\(([\w\d:]+?)\)/g, 'void $1(const Napi::CallbackInfo& info, const Napi::Value& value)'],
201
- [/NAN_SETTER\(([\w\d:]+?)\)/g, 'void $1(const Napi::CallbackInfo& info, const Napi::Value& value)'],
202
- [/void Init\((v8::)*Local<(v8::)*Object> exports\)/g, 'Napi::Object Init(Napi::Env env, Napi::Object exports)'],
203
- [/NAN_MODULE_INIT\(([\w\d:]+?)\);/g, 'Napi::Object $1(Napi::Env env, Napi::Object exports);'],
204
- [/NAN_MODULE_INIT\(([\w\d:]+?)\)/g, 'Napi::Object $1(Napi::Env env, Napi::Object exports)'],
205
-
206
- [/::(Init(?:ialize)?)\(target\)/g, '::$1(env, target, module)'],
207
- [/constructor_template/g, 'constructor'],
208
-
209
- [/Nan::FunctionCallbackInfo<(v8::)?Value>[ ]*& [ ]*info\)[ ]*{\n*([ ]*)/gm, 'Napi::CallbackInfo& info) {\n$2Napi::Env env = info.Env();\n$2'],
210
- [/Nan::FunctionCallbackInfo<(v8::)*Value>\s*&\s*info\);/g, 'Napi::CallbackInfo& info);'],
211
- [/Nan::FunctionCallbackInfo<(v8::)*Value>\s*&/g, 'Napi::CallbackInfo&'],
212
-
213
- [/Buffer::HasInstance\(([^)]+)\)/g, '$1.IsBuffer()'],
214
-
215
- [/info\[(\d+)\]->/g, 'info[$1].'],
216
- [/info\[([\w\d]+)\]->/g, 'info[$1].'],
217
- [/info\.This\(\)->/g, 'info.This().'],
218
- [/->Is(Object|String|Int32|Number)\(\)/g, '.Is$1()'],
219
- [/info.GetReturnValue\(\).SetUndefined\(\)/g, 'return env.Undefined()'],
220
- [/info\.GetReturnValue\(\)\.Set\(((\n|.)+?)\);/g, 'return $1;'],
221
-
222
- // ex. Local<Value> to Napi::Value
223
- [/v8::Local<v8::(Value|Boolean|String|Number|Object|Array|Symbol|External|Function)>/g, 'Napi::$1'],
224
- [/Local<(Value|Boolean|String|Number|Object|Array|Symbol|External|Function)>/g, 'Napi::$1'],
225
-
226
- // Declare an env in helper functions that take a Napi::Value
227
- [/(\w+)\(Napi::Value (\w+)(,\s*[^()]+)?\)\s*{\n*([ ]*)/gm, '$1(Napi::Value $2$3) {\n$4Napi::Env env = $2.Env();\n$4'],
228
-
229
- // delete #include <node.h> and/or <v8.h>
230
- [/#include +(<|")(?:node|nan).h("|>)/g, '#include $1napi.h$2\n#include $1uv.h$2'],
231
- // NODE_MODULE to NODE_API_MODULE
232
- [/NODE_MODULE/g, 'NODE_API_MODULE'],
233
- [/Nan::/g, 'Napi::'],
234
- [/nan.h/g, 'napi.h'],
235
-
236
- // delete .FromJust()
237
- [/\.FromJust\(\)/g, ''],
238
- // delete .ToLocalCheck()
239
- [/\.ToLocalChecked\(\)/g, ''],
240
- [/^.*->SetInternalFieldCount\(.*$/gm, ''],
241
-
242
- // replace using node; and/or using v8; to using Napi;
243
- [/using (node|v8);/g, 'using Napi;'],
244
- [/using namespace (node|Nan|v8);/g, 'using namespace Napi;'],
245
- // delete using v8::Local;
246
- [/using v8::Local;\n/g, ''],
247
- // replace using v8::XXX; with using Napi::XXX
248
- [/using v8::([A-Za-z]+);/g, 'using Napi::$1;']
249
-
250
- ];
251
-
252
- const paths = listFiles(dir);
253
- paths.forEach(function (dirEntry) {
254
- const filename = dirEntry.split('\\').pop().split('/').pop();
255
-
256
- // Check whether the file is a source file or a config file
257
- // then execute function accordingly
258
- const sourcePattern = /.+\.h|.+\.cc|.+\.cpp/;
259
- if (sourcePattern.test(filename)) {
260
- convertFile(dirEntry, SourceFileOperations);
261
- } else if (ConfigFileOperations[filename] != null) {
262
- convertFile(dirEntry, ConfigFileOperations[filename]);
263
- }
264
- });
265
-
266
- function listFiles (dir, filelist) {
267
- const files = fs.readdirSync(dir);
268
- filelist = filelist || [];
269
- files.forEach(function (file) {
270
- if (file === 'node_modules') {
271
- return;
272
- }
273
-
274
- if (fs.statSync(path.join(dir, file)).isDirectory()) {
275
- filelist = listFiles(path.join(dir, file), filelist);
276
- } else {
277
- filelist.push(path.join(dir, file));
278
- }
279
- });
280
- return filelist;
281
- }
282
-
283
- function convert (content, operations) {
284
- for (let i = 0; i < operations.length; i++) {
285
- const operation = operations[i];
286
- content = content.replace(operation[0], operation[1]);
287
- }
288
- return content;
289
- }
290
-
291
- function convertFile (fileName, operations) {
292
- fs.readFile(fileName, 'utf-8', function (err, file) {
293
- if (err) throw err;
294
-
295
- file = convert(file, operations);
296
-
297
- fs.writeFile(fileName, file, function (err) {
298
- if (err) throw err;
299
- });
300
- });
301
- }
@@ -1,28 +0,0 @@
1
-
2
- # Enable running tests with specific filter conditions:
3
-
4
- ### Example:
5
-
6
- - compile and run only tests on objectwrap.cc and objectwrap.js
7
- ```
8
- npm run test --filter=objectwrap
9
- ```
10
-
11
-
12
- # Wildcards are also possible:
13
-
14
- ### Example:
15
-
16
- - compile and run all tests files ending with reference -> function_reference.cc object_reference.cc reference.cc
17
- ```
18
- npm run test --filter=*reference
19
- ```
20
-
21
- # Multiple filter conditions are also allowed
22
-
23
- ### Example:
24
-
25
- - compile and run all tests under folders threadsafe_function and typed_threadsafe_function and also the objectwrap.cc file
26
- ```
27
- npm run test --filter='*function objectwrap'
28
- ```
@@ -1,39 +0,0 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
-
4
- /**
5
- * @param bindingConfigurations
6
- * This method acts as a template to generate the content of binding.cc file
7
- */
8
- module.exports.generateFileContent = function (bindingConfigurations) {
9
- const content = [];
10
- const inits = [];
11
- const exports = [];
12
-
13
- for (const config of bindingConfigurations) {
14
- inits.push(`Object Init${config.objectName}(Env env);`);
15
- exports.push(`exports.Set("${config.propertyName}", Init${config.objectName}(env));`);
16
- }
17
-
18
- content.push('#include "napi.h"');
19
- content.push('using namespace Napi;');
20
-
21
- inits.forEach(init => content.push(init));
22
-
23
- content.push('Object Init(Env env, Object exports) {');
24
-
25
- exports.forEach(exp => content.push(exp));
26
-
27
- content.push('return exports;');
28
- content.push('}');
29
- content.push('NODE_API_MODULE(addon, Init);');
30
-
31
- return Promise.resolve(content.join('\r\n'));
32
- };
33
-
34
- module.exports.writeToBindingFile = function writeToBindingFile (content) {
35
- const generatedFilePath = path.join(__dirname, 'generated', 'binding.cc');
36
- fs.writeFileSync(generatedFilePath, '');
37
- fs.writeFileSync(generatedFilePath, content, { flag: 'a' });
38
- console.log('generated binding file ', generatedFilePath, new Date());
39
- };