@encharm/cws 4.0.2 → 4.3.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 (410) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +3 -2
  3. package/README.md +9 -2
  4. package/binding.gyp +2 -2
  5. package/dist/bindings/cws_darwin_arm64_node108.node +0 -0
  6. package/dist/bindings/cws_darwin_arm64_node64.node +0 -0
  7. package/dist/bindings/cws_darwin_arm64_node72.node +0 -0
  8. package/dist/bindings/cws_darwin_arm64_node79.node +0 -0
  9. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  10. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  11. package/dist/bindings/cws_darwin_x64_node108.node +0 -0
  12. package/dist/bindings/cws_darwin_x64_node64.node +0 -0
  13. package/dist/bindings/cws_darwin_x64_node72.node +0 -0
  14. package/dist/bindings/cws_darwin_x64_node79.node +0 -0
  15. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  16. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  17. package/dist/bindings/cws_linux_x64_node108.node +0 -0
  18. package/dist/bindings/cws_linux_x64_node64.node +0 -0
  19. package/dist/bindings/cws_linux_x64_node72.node +0 -0
  20. package/dist/bindings/cws_linux_x64_node79.node +0 -0
  21. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  22. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  23. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  24. package/dist/bindings/cws_win32_x64_node64.node +0 -0
  25. package/dist/bindings/cws_win32_x64_node72.node +0 -0
  26. package/dist/bindings/cws_win32_x64_node79.node +0 -0
  27. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  28. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  29. package/dist/client.d.ts +1 -0
  30. package/dist/client.js +4 -0
  31. package/dist/index.js +3 -2
  32. package/dist/server.js +1 -0
  33. package/dist/shared.js +2 -1
  34. package/package.json +1 -1
  35. package/src/Addon.cpp +1 -0
  36. package/src/Addon.h +35 -2
  37. package/src/HTTPSocket.cpp +1 -1
  38. package/src/LICENSE +4 -0
  39. package/src/Socket.h +12 -3
  40. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  41. package/src/headers/18/aliased_struct-inl.h +54 -0
  42. package/src/headers/18/aliased_struct.h +63 -0
  43. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  44. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  45. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  46. package/src/headers/18/base64.h +69 -0
  47. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  48. package/src/headers/{12 → 18}/base_object.h +82 -17
  49. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  50. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  51. package/src/headers/18/cares_wrap.h +523 -0
  52. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  53. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  54. package/src/headers/18/crypto/crypto_aes.h +89 -0
  55. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  56. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  57. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  58. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  59. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  60. package/src/headers/18/crypto/crypto_context.h +147 -0
  61. package/src/headers/18/crypto/crypto_dh.h +156 -0
  62. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  63. package/src/headers/18/crypto/crypto_ec.h +170 -0
  64. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  65. package/src/headers/18/crypto/crypto_hash.h +89 -0
  66. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  67. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  68. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  69. package/src/headers/18/crypto/crypto_keys.h +420 -0
  70. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  71. package/src/headers/18/crypto/crypto_random.h +130 -0
  72. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  73. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  74. package/src/headers/18/crypto/crypto_sig.h +168 -0
  75. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  76. package/src/headers/18/crypto/crypto_timing.h +20 -0
  77. package/src/headers/{12/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  78. package/src/headers/18/crypto/crypto_util.h +791 -0
  79. package/src/headers/18/crypto/crypto_x509.h +143 -0
  80. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  81. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  82. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  83. package/src/headers/{12 → 18}/env-inl.h +397 -304
  84. package/src/headers/{12 → 18}/env.h +397 -172
  85. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  86. package/src/headers/18/histogram-inl.h +107 -0
  87. package/src/headers/18/histogram.h +239 -0
  88. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  89. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  90. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  91. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  92. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  93. package/src/headers/18/js_native_api.h +571 -0
  94. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  95. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  96. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  97. package/src/headers/{12 → 18}/js_stream.h +0 -0
  98. package/src/headers/{12 → 18}/json_utils.h +0 -0
  99. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  100. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  101. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  102. package/src/headers/{13 → 18}/node.h +329 -68
  103. package/src/headers/18/node_api.h +288 -0
  104. package/src/headers/18/node_api_internals.h +38 -0
  105. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  106. package/src/headers/{12 → 18}/node_binding.h +0 -0
  107. package/src/headers/18/node_blob.h +191 -0
  108. package/src/headers/18/node_bob-inl.h +37 -0
  109. package/src/headers/18/node_bob.h +111 -0
  110. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  111. package/src/headers/{13 → 18}/node_constants.h +5 -1
  112. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  113. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  114. package/src/headers/{10/node_javascript.h → 18/node_crypto.h} +30 -14
  115. package/src/headers/{12 → 18}/node_dir.h +0 -0
  116. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  117. package/src/headers/{12 → 18}/node_errors.h +90 -24
  118. package/src/headers/18/node_external_reference.h +145 -0
  119. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  120. package/src/headers/{12 → 18}/node_file.h +74 -13
  121. package/src/headers/{13 → 18}/node_http2.h +365 -269
  122. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  123. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  124. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  125. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  126. package/src/headers/{12 → 18}/node_internals.h +39 -41
  127. package/src/headers/{12 → 18}/node_main_instance.h +15 -18
  128. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  129. package/src/headers/{12 → 18}/node_mem.h +1 -1
  130. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  131. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  132. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  133. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  134. package/src/headers/{12 → 18}/node_native_module_env.h +14 -8
  135. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  136. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  137. package/src/headers/{13 → 18}/node_options.h +46 -14
  138. package/src/headers/18/node_perf.h +168 -0
  139. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  140. package/src/headers/{12 → 18}/node_platform.h +21 -16
  141. package/src/headers/18/node_process-inl.h +26 -0
  142. package/src/headers/18/node_process.h +97 -0
  143. package/src/headers/{13 → 18}/node_report.h +2 -2
  144. package/src/headers/{13 → 18}/node_revert.h +10 -0
  145. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  146. package/src/headers/18/node_snapshot_builder.h +43 -0
  147. package/src/headers/18/node_snapshotable.h +130 -0
  148. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  149. package/src/headers/18/node_sockaddr.h +405 -0
  150. package/src/headers/{13 → 18}/node_stat_watcher.h +7 -1
  151. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  152. package/src/headers/{13 → 18}/node_url.h +18 -1
  153. package/src/headers/18/node_v8.h +41 -0
  154. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  155. package/src/headers/{13 → 18}/node_version.h +7 -7
  156. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  157. package/src/headers/18/node_wasm_web_api.h +55 -0
  158. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  159. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  160. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  161. package/src/headers/{13 → 18}/node_worker.h +24 -17
  162. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  163. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  164. package/src/headers/{13 → 18}/req_wrap.h +1 -1
  165. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  166. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  167. package/src/headers/{13 → 18}/stream_base.h +29 -3
  168. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  169. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  170. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  171. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  172. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  173. package/src/headers/{13 → 18}/string_search.h +2 -2
  174. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  175. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  176. package/src/headers/18/timer_wrap-inl.h +32 -0
  177. package/src/headers/18/timer_wrap.h +85 -0
  178. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  179. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  180. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  181. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  182. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  183. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  184. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  185. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  186. package/src/headers/{13 → 18}/util-inl.h +69 -15
  187. package/src/headers/{13 → 18}/util.h +93 -31
  188. package/src/headers/18/v8-fast-api-calls.h +939 -0
  189. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  190. package/dist/bindings/cws_darwin_64.node +0 -0
  191. package/dist/bindings/cws_darwin_72.node +0 -0
  192. package/dist/bindings/cws_darwin_79.node +0 -0
  193. package/dist/bindings/cws_darwin_83.node +0 -0
  194. package/dist/bindings/cws_darwin_93.node +0 -0
  195. package/dist/bindings/cws_linux_64.node +0 -0
  196. package/dist/bindings/cws_linux_72.node +0 -0
  197. package/dist/bindings/cws_linux_79.node +0 -0
  198. package/dist/bindings/cws_linux_83.node +0 -0
  199. package/dist/bindings/cws_linux_93.node +0 -0
  200. package/dist/bindings/cws_win32_64.node +0 -0
  201. package/dist/bindings/cws_win32_72.node +0 -0
  202. package/dist/bindings/cws_win32_79.node +0 -0
  203. package/dist/bindings/cws_win32_83.node +0 -0
  204. package/dist/bindings/cws_win32_93.node +0 -0
  205. package/src/headers/10/aliased_buffer.h +0 -241
  206. package/src/headers/10/async_wrap-inl.h +0 -106
  207. package/src/headers/10/async_wrap.h +0 -218
  208. package/src/headers/10/base64.h +0 -197
  209. package/src/headers/10/base_object-inl.h +0 -132
  210. package/src/headers/10/base_object.h +0 -115
  211. package/src/headers/10/connect_wrap.h +0 -28
  212. package/src/headers/10/connection_wrap.h +0 -30
  213. package/src/headers/10/debug_utils.h +0 -128
  214. package/src/headers/10/env-inl.h +0 -906
  215. package/src/headers/10/env.h +0 -1046
  216. package/src/headers/10/handle_wrap.h +0 -114
  217. package/src/headers/10/inspector_agent.h +0 -137
  218. package/src/headers/10/inspector_io.h +0 -97
  219. package/src/headers/10/inspector_socket.h +0 -59
  220. package/src/headers/10/inspector_socket_server.h +0 -104
  221. package/src/headers/10/js_stream.h +0 -57
  222. package/src/headers/10/memory_tracker-inl.h +0 -318
  223. package/src/headers/10/memory_tracker.h +0 -246
  224. package/src/headers/10/module_wrap.h +0 -100
  225. package/src/headers/10/node.h +0 -863
  226. package/src/headers/10/node_api.h +0 -752
  227. package/src/headers/10/node_api_types.h +0 -171
  228. package/src/headers/10/node_buffer.h +0 -90
  229. package/src/headers/10/node_code_cache.h +0 -17
  230. package/src/headers/10/node_constants.h +0 -74
  231. package/src/headers/10/node_context_data.h +0 -39
  232. package/src/headers/10/node_contextify.h +0 -141
  233. package/src/headers/10/node_counters.h +0 -59
  234. package/src/headers/10/node_crypto.h +0 -699
  235. package/src/headers/10/node_crypto_bio.h +0 -177
  236. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  237. package/src/headers/10/node_crypto_clienthello.h +0 -131
  238. package/src/headers/10/node_crypto_groups.h +0 -416
  239. package/src/headers/10/node_dtrace.h +0 -84
  240. package/src/headers/10/node_errors.h +0 -118
  241. package/src/headers/10/node_file.h +0 -373
  242. package/src/headers/10/node_http2.h +0 -1304
  243. package/src/headers/10/node_http2_state.h +0 -158
  244. package/src/headers/10/node_i18n.h +0 -69
  245. package/src/headers/10/node_internals.h +0 -952
  246. package/src/headers/10/node_messaging.h +0 -219
  247. package/src/headers/10/node_mutex.h +0 -191
  248. package/src/headers/10/node_object_wrap.h +0 -130
  249. package/src/headers/10/node_options-inl.h +0 -444
  250. package/src/headers/10/node_options.h +0 -397
  251. package/src/headers/10/node_perf.h +0 -134
  252. package/src/headers/10/node_perf_common.h +0 -96
  253. package/src/headers/10/node_persistent.h +0 -30
  254. package/src/headers/10/node_platform.h +0 -170
  255. package/src/headers/10/node_revert.h +0 -75
  256. package/src/headers/10/node_root_certs.h +0 -3393
  257. package/src/headers/10/node_stat_watcher.h +0 -65
  258. package/src/headers/10/node_url.h +0 -193
  259. package/src/headers/10/node_version.h +0 -120
  260. package/src/headers/10/node_watchdog.h +0 -114
  261. package/src/headers/10/node_win32_perfctr_provider.h +0 -58
  262. package/src/headers/10/node_worker.h +0 -94
  263. package/src/headers/10/pipe_wrap.h +0 -76
  264. package/src/headers/10/req_wrap-inl.h +0 -166
  265. package/src/headers/10/req_wrap.h +0 -61
  266. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  267. package/src/headers/10/spawn_sync.h +0 -240
  268. package/src/headers/10/stream_base-inl.h +0 -458
  269. package/src/headers/10/stream_base.h +0 -378
  270. package/src/headers/10/stream_pipe.h +0 -72
  271. package/src/headers/10/stream_wrap.h +0 -130
  272. package/src/headers/10/string_bytes.h +0 -126
  273. package/src/headers/10/string_decoder-inl.h +0 -38
  274. package/src/headers/10/string_search.h +0 -620
  275. package/src/headers/10/tcp_wrap.h +0 -99
  276. package/src/headers/10/tls_wrap.h +0 -195
  277. package/src/headers/10/tracing/agent.h +0 -178
  278. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  279. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  280. package/src/headers/10/tracing/trace_event.h +0 -706
  281. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  282. package/src/headers/10/tracing/traced_value.h +0 -68
  283. package/src/headers/10/tty_wrap.h +0 -63
  284. package/src/headers/10/udp_wrap.h +0 -102
  285. package/src/headers/10/util-inl.h +0 -459
  286. package/src/headers/10/util.h +0 -508
  287. package/src/headers/10/v8abbr.h +0 -121
  288. package/src/headers/12/aliased_buffer.h +0 -263
  289. package/src/headers/12/debug_utils.h +0 -181
  290. package/src/headers/12/histogram-inl.h +0 -83
  291. package/src/headers/12/histogram.h +0 -98
  292. package/src/headers/12/http_parser_adaptor.h +0 -24
  293. package/src/headers/12/inspector_agent.h +0 -147
  294. package/src/headers/12/inspector_profiler.h +0 -137
  295. package/src/headers/12/js_native_api.h +0 -541
  296. package/src/headers/12/js_native_api_types.h +0 -139
  297. package/src/headers/12/memory_tracker-inl.h +0 -339
  298. package/src/headers/12/memory_tracker.h +0 -283
  299. package/src/headers/12/module_wrap.h +0 -99
  300. package/src/headers/12/node.h +0 -887
  301. package/src/headers/12/node_api.h +0 -239
  302. package/src/headers/12/node_buffer.h +0 -92
  303. package/src/headers/12/node_constants.h +0 -80
  304. package/src/headers/12/node_crypto.h +0 -800
  305. package/src/headers/12/node_crypto_bio.h +0 -195
  306. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  307. package/src/headers/12/node_crypto_clienthello.h +0 -132
  308. package/src/headers/12/node_file-inl.h +0 -289
  309. package/src/headers/12/node_http2.h +0 -1311
  310. package/src/headers/12/node_http_parser_impl.h +0 -994
  311. package/src/headers/12/node_i18n.h +0 -144
  312. package/src/headers/12/node_messaging.h +0 -227
  313. package/src/headers/12/node_options-inl.h +0 -447
  314. package/src/headers/12/node_options.h +0 -479
  315. package/src/headers/12/node_perf.h +0 -181
  316. package/src/headers/12/node_process.h +0 -41
  317. package/src/headers/12/node_report.h +0 -47
  318. package/src/headers/12/node_revert.h +0 -78
  319. package/src/headers/12/node_sockaddr.h +0 -123
  320. package/src/headers/12/node_stat_watcher.h +0 -66
  321. package/src/headers/12/node_url.h +0 -188
  322. package/src/headers/12/node_version.h +0 -98
  323. package/src/headers/12/node_watchdog.h +0 -152
  324. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  325. package/src/headers/12/node_win32_etw_provider.h +0 -99
  326. package/src/headers/12/node_worker.h +0 -142
  327. package/src/headers/12/req_wrap.h +0 -77
  328. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  329. package/src/headers/12/stream_base-inl.h +0 -323
  330. package/src/headers/12/stream_base.h +0 -431
  331. package/src/headers/12/stream_pipe.h +0 -72
  332. package/src/headers/12/string_bytes.h +0 -142
  333. package/src/headers/12/string_decoder.h +0 -50
  334. package/src/headers/12/string_search.h +0 -638
  335. package/src/headers/12/tracing/agent.h +0 -195
  336. package/src/headers/12/tracing/trace_event.h +0 -710
  337. package/src/headers/12/tty_wrap.h +0 -64
  338. package/src/headers/12/udp_wrap.h +0 -222
  339. package/src/headers/12/util-inl.h +0 -529
  340. package/src/headers/12/util.h +0 -765
  341. package/src/headers/13/async_wrap-inl.h +0 -94
  342. package/src/headers/13/async_wrap.h +0 -224
  343. package/src/headers/13/base64.h +0 -197
  344. package/src/headers/13/base_object-inl.h +0 -353
  345. package/src/headers/13/base_object.h +0 -229
  346. package/src/headers/13/connect_wrap.h +0 -26
  347. package/src/headers/13/connection_wrap.h +0 -30
  348. package/src/headers/13/debug_utils-inl.h +0 -223
  349. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  350. package/src/headers/13/env-inl.h +0 -1293
  351. package/src/headers/13/env.h +0 -1469
  352. package/src/headers/13/handle_wrap.h +0 -117
  353. package/src/headers/13/histogram-inl.h +0 -83
  354. package/src/headers/13/histogram.h +0 -98
  355. package/src/headers/13/inspector_io.h +0 -78
  356. package/src/headers/13/inspector_socket.h +0 -60
  357. package/src/headers/13/inspector_socket_server.h +0 -110
  358. package/src/headers/13/js_native_api.h +0 -541
  359. package/src/headers/13/js_native_api_v8.h +0 -303
  360. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  361. package/src/headers/13/js_stream.h +0 -52
  362. package/src/headers/13/json_utils.h +0 -160
  363. package/src/headers/13/node_api.h +0 -239
  364. package/src/headers/13/node_api_types.h +0 -44
  365. package/src/headers/13/node_binding.h +0 -99
  366. package/src/headers/13/node_context_data.h +0 -39
  367. package/src/headers/13/node_contextify.h +0 -161
  368. package/src/headers/13/node_crypto.h +0 -800
  369. package/src/headers/13/node_crypto_common.h +0 -138
  370. package/src/headers/13/node_crypto_groups.h +0 -415
  371. package/src/headers/13/node_dir.h +0 -52
  372. package/src/headers/13/node_dtrace.h +0 -86
  373. package/src/headers/13/node_errors.h +0 -210
  374. package/src/headers/13/node_file.h +0 -364
  375. package/src/headers/13/node_http2_state.h +0 -144
  376. package/src/headers/13/node_internals.h +0 -405
  377. package/src/headers/13/node_main_instance.h +0 -97
  378. package/src/headers/13/node_mem-inl.h +0 -112
  379. package/src/headers/13/node_mem.h +0 -41
  380. package/src/headers/13/node_metadata.h +0 -109
  381. package/src/headers/13/node_mutex.h +0 -247
  382. package/src/headers/13/node_native_module.h +0 -99
  383. package/src/headers/13/node_native_module_env.h +0 -65
  384. package/src/headers/13/node_object_wrap.h +0 -132
  385. package/src/headers/13/node_perf.h +0 -181
  386. package/src/headers/13/node_perf_common.h +0 -97
  387. package/src/headers/13/node_platform.h +0 -190
  388. package/src/headers/13/node_process.h +0 -41
  389. package/src/headers/13/node_root_certs.h +0 -3424
  390. package/src/headers/13/node_sockaddr-inl.h +0 -170
  391. package/src/headers/13/node_sockaddr.h +0 -123
  392. package/src/headers/13/node_union_bytes.h +0 -103
  393. package/src/headers/13/node_v8_platform-inl.h +0 -184
  394. package/src/headers/13/node_wasi.h +0 -108
  395. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  396. package/src/headers/13/node_win32_etw_provider.h +0 -99
  397. package/src/headers/13/pipe_wrap.h +0 -78
  398. package/src/headers/13/req_wrap-inl.h +0 -170
  399. package/src/headers/13/spawn_sync.h +0 -242
  400. package/src/headers/13/stream_wrap.h +0 -130
  401. package/src/headers/13/string_decoder-inl.h +0 -37
  402. package/src/headers/13/string_decoder.h +0 -50
  403. package/src/headers/13/tcp_wrap.h +0 -101
  404. package/src/headers/13/threadpoolwork-inl.h +0 -57
  405. package/src/headers/13/tls_wrap.h +0 -221
  406. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  407. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  408. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  409. package/src/headers/13/tracing/traced_value.h +0 -70
  410. package/src/headers/13/v8abbr.h +0 -124
@@ -24,9 +24,9 @@
24
24
 
25
25
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
26
 
27
+ #include <type_traits> // std::remove_reference
27
28
  #include "memory_tracker.h"
28
29
  #include "v8.h"
29
- #include <type_traits> // std::remove_reference
30
30
 
31
31
  namespace node {
32
32
 
@@ -34,6 +34,10 @@ class Environment;
34
34
  template <typename T, bool kIsWeak>
35
35
  class BaseObjectPtrImpl;
36
36
 
37
+ namespace worker {
38
+ class TransferData;
39
+ }
40
+
37
41
  class BaseObject : public MemoryRetainer {
38
42
  public:
39
43
  enum InternalFields { kSlot, kInternalFieldCount };
@@ -61,9 +65,11 @@ class BaseObject : public MemoryRetainer {
61
65
  // was also passed to the `BaseObject()` constructor initially.
62
66
  // This may return `nullptr` if the C++ object has not been constructed yet,
63
67
  // e.g. when the JS object used `MakeLazilyInitializedJSTemplate`.
64
- static inline BaseObject* FromJSObject(v8::Local<v8::Object> object);
68
+ static inline void LazilyInitializedJSTemplateConstructor(
69
+ const v8::FunctionCallbackInfo<v8::Value>& args);
70
+ static inline BaseObject* FromJSObject(v8::Local<v8::Value> object);
65
71
  template <typename T>
66
- static inline T* FromJSObject(v8::Local<v8::Object> object);
72
+ static inline T* FromJSObject(v8::Local<v8::Value> object);
67
73
 
68
74
  // Make the `v8::Global` a weak reference and, `delete` this object once
69
75
  // the JS object has been garbage collected and there are no (strong)
@@ -74,6 +80,11 @@ class BaseObject : public MemoryRetainer {
74
80
  // root and will not be touched by the garbage collector.
75
81
  inline void ClearWeak();
76
82
 
83
+ // Reports whether this BaseObject is using a weak reference or detached,
84
+ // i.e. whether is can be deleted by GC once no strong BaseObjectPtrs refer
85
+ // to it anymore.
86
+ inline bool IsWeakOrDetached() const;
87
+
77
88
  // Utility to create a FunctionTemplate with one internal field (used for
78
89
  // the `BaseObject*` pointer) and a constructor that initializes that field
79
90
  // to `nullptr`.
@@ -84,7 +95,7 @@ class BaseObject : public MemoryRetainer {
84
95
  template <int Field>
85
96
  static void InternalFieldGet(v8::Local<v8::String> property,
86
97
  const v8::PropertyCallbackInfo<v8::Value>& info);
87
- template <int Field, bool (v8::Value::* typecheck)() const>
98
+ template <int Field, bool (v8::Value::*typecheck)() const>
88
99
  static void InternalFieldSet(v8::Local<v8::String> property,
89
100
  v8::Local<v8::Value> value,
90
101
  const v8::PropertyCallbackInfo<void>& info);
@@ -92,24 +103,75 @@ class BaseObject : public MemoryRetainer {
92
103
  // This is a bit of a hack. See the override in async_wrap.cc for details.
93
104
  virtual bool IsDoneInitializing() const;
94
105
 
95
- // Can be used to avoid this object keepling itself alive as a GC root
106
+ // Can be used to avoid this object keeping itself alive as a GC root
96
107
  // indefinitely, for example when this object is owned and deleted by another
97
108
  // BaseObject once that is torn down. This can only be called when there is
98
109
  // a BaseObjectPtr to this object.
99
110
  inline void Detach();
100
111
 
101
- protected:
112
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
113
+ Environment* env);
114
+
115
+ // Interface for transferring BaseObject instances using the .postMessage()
116
+ // method of MessagePorts (and, by extension, Workers).
117
+ // GetTransferMode() returns a transfer mode that indicates how to deal with
118
+ // the current object:
119
+ // - kUntransferable:
120
+ // No transfer is possible, either because this type of BaseObject does
121
+ // not know how to be transferred, or because it is not in a state in
122
+ // which it is possible to do so (e.g. because it has already been
123
+ // transferred).
124
+ // - kTransferable:
125
+ // This object can be transferred in a destructive fashion, i.e. will be
126
+ // rendered unusable on the sending side of the channel in the process
127
+ // of being transferred. (In C++ this would be referred to as movable but
128
+ // not copyable.) Objects of this type need to be listed in the
129
+ // `transferList` argument of the relevant postMessage() call in order to
130
+ // make sure that they are not accidentally destroyed on the sending side.
131
+ // TransferForMessaging() will be called to get a representation of the
132
+ // object that is used for subsequent deserialization.
133
+ // The NestedTransferables() method can be used to transfer other objects
134
+ // along with this one, if a situation requires it.
135
+ // - kCloneable:
136
+ // This object can be cloned without being modified.
137
+ // CloneForMessaging() will be called to get a representation of the
138
+ // object that is used for subsequent deserialization, unless the
139
+ // object is listed in transferList, in which case TransferForMessaging()
140
+ // is attempted first.
141
+ // After a successful clone, FinalizeTransferRead() is called on the receiving
142
+ // end, and can read deserialize JS data possibly serialized by a previous
143
+ // FinalizeTransferWrite() call.
144
+ enum class TransferMode {
145
+ kUntransferable,
146
+ kTransferable,
147
+ kCloneable
148
+ };
149
+ virtual TransferMode GetTransferMode() const;
150
+ virtual std::unique_ptr<worker::TransferData> TransferForMessaging();
151
+ virtual std::unique_ptr<worker::TransferData> CloneForMessaging() const;
152
+ virtual v8::Maybe<std::vector<BaseObjectPtrImpl<BaseObject, false>>>
153
+ NestedTransferables() const;
154
+ virtual v8::Maybe<bool> FinalizeTransferRead(
155
+ v8::Local<v8::Context> context, v8::ValueDeserializer* deserializer);
156
+
157
+ // Indicates whether this object is expected to use a strong reference during
158
+ // a clean process exit (due to an empty event loop).
159
+ virtual bool IsNotIndicativeOfMemoryLeakAtExit() const;
160
+
102
161
  virtual inline void OnGCCollect();
103
162
 
163
+ virtual inline bool is_snapshotable() const { return false; }
164
+
104
165
  private:
105
166
  v8::Local<v8::Object> WrappedObject() const override;
167
+ bool IsRootNode() const override;
106
168
  static void DeleteMe(void* data);
107
169
 
108
170
  // persistent_handle_ needs to be at a fixed offset from the start of the
109
171
  // class because it is used by src/node_postmortem_metadata.cc to calculate
110
172
  // offsets and generate debug symbols for BaseObject, which assumes that the
111
173
  // position of members in memory are predictable. For more information please
112
- // refer to `doc/guides/node-postmortem-support.md`
174
+ // refer to `doc/contributing/node-postmortem-support.md`
113
175
  friend int GenDebugSymbols();
114
176
  friend class CleanupHookCallback;
115
177
  template <typename T, bool kIsWeak>
@@ -131,7 +193,7 @@ class BaseObject : public MemoryRetainer {
131
193
  // Indicates whether MakeWeak() has been called.
132
194
  bool wants_weak_jsobj = false;
133
195
  // Indicates whether Detach() has been called. If that is the case, this
134
- // object will be destryoed once the strong pointer count drops to zero.
196
+ // object will be destroyed once the strong pointer count drops to zero.
135
197
  bool is_detached = false;
136
198
  // Reference to the original BaseObject. This is used by weak pointers.
137
199
  BaseObject* self = nullptr;
@@ -152,17 +214,15 @@ class BaseObject : public MemoryRetainer {
152
214
 
153
215
  // Global alias for FromJSObject() to avoid churn.
154
216
  template <typename T>
155
- inline T* Unwrap(v8::Local<v8::Object> obj) {
217
+ inline T* Unwrap(v8::Local<v8::Value> obj) {
156
218
  return BaseObject::FromJSObject<T>(obj);
157
219
  }
158
220
 
159
-
160
- #define ASSIGN_OR_RETURN_UNWRAP(ptr, obj, ...) \
161
- do { \
162
- *ptr = static_cast<typename std::remove_reference<decltype(*ptr)>::type>( \
163
- BaseObject::FromJSObject(obj)); \
164
- if (*ptr == nullptr) \
165
- return __VA_ARGS__; \
221
+ #define ASSIGN_OR_RETURN_UNWRAP(ptr, obj, ...) \
222
+ do { \
223
+ *ptr = static_cast<typename std::remove_reference<decltype(*ptr)>::type>( \
224
+ BaseObject::FromJSObject(obj)); \
225
+ if (*ptr == nullptr) return __VA_ARGS__; \
166
226
  } while (0)
167
227
 
168
228
  // Implementation of a generic strong or weak pointer to a BaseObject.
@@ -196,9 +256,14 @@ class BaseObjectPtrImpl final {
196
256
  inline T* operator->() const;
197
257
  inline operator bool() const;
198
258
 
259
+ template <typename U, bool kW>
260
+ inline bool operator ==(const BaseObjectPtrImpl<U, kW>& other) const;
261
+ template <typename U, bool kW>
262
+ inline bool operator !=(const BaseObjectPtrImpl<U, kW>& other) const;
263
+
199
264
  private:
200
265
  union {
201
- BaseObject* target; // Used for strong pointers.
266
+ BaseObject* target; // Used for strong pointers.
202
267
  BaseObject::PointerData* pointer_data; // Used for weak pointers.
203
268
  } data_;
204
269
 
@@ -10,8 +10,8 @@ namespace node {
10
10
  template <typename R, typename... Args>
11
11
  template <typename Fn>
12
12
  std::unique_ptr<typename CallbackQueue<R, Args...>::Callback>
13
- CallbackQueue<R, Args...>::CreateCallback(Fn&& fn, bool refed) {
14
- return std::make_unique<CallbackImpl<Fn>>(std::move(fn), refed);
13
+ CallbackQueue<R, Args...>::CreateCallback(Fn&& fn, CallbackFlags::Flags flags) {
14
+ return std::make_unique<CallbackImpl<Fn>>(std::move(fn), flags);
15
15
  }
16
16
 
17
17
  template <typename R, typename... Args>
@@ -22,8 +22,8 @@ CallbackQueue<R, Args...>::Shift() {
22
22
  head_ = ret->get_next();
23
23
  if (!head_)
24
24
  tail_ = nullptr; // The queue is now empty.
25
+ size_--;
25
26
  }
26
- size_--;
27
27
  return ret;
28
28
  }
29
29
 
@@ -57,12 +57,12 @@ size_t CallbackQueue<R, Args...>::size() const {
57
57
  }
58
58
 
59
59
  template <typename R, typename... Args>
60
- CallbackQueue<R, Args...>::Callback::Callback(bool refed)
61
- : refed_(refed) {}
60
+ CallbackQueue<R, Args...>::Callback::Callback(CallbackFlags::Flags flags)
61
+ : flags_(flags) {}
62
62
 
63
63
  template <typename R, typename... Args>
64
- bool CallbackQueue<R, Args...>::Callback::is_refed() const {
65
- return refed_;
64
+ CallbackFlags::Flags CallbackQueue<R, Args...>::Callback::flags() const {
65
+ return flags_;
66
66
  }
67
67
 
68
68
  template <typename R, typename... Args>
@@ -80,8 +80,8 @@ void CallbackQueue<R, Args...>::Callback::set_next(
80
80
  template <typename R, typename... Args>
81
81
  template <typename Fn>
82
82
  CallbackQueue<R, Args...>::CallbackImpl<Fn>::CallbackImpl(
83
- Fn&& callback, bool refed)
84
- : Callback(refed),
83
+ Fn&& callback, CallbackFlags::Flags flags)
84
+ : Callback(flags),
85
85
  callback_(std::move(callback)) {}
86
86
 
87
87
  template <typename R, typename... Args>
@@ -7,6 +7,13 @@
7
7
 
8
8
  namespace node {
9
9
 
10
+ namespace CallbackFlags {
11
+ enum Flags {
12
+ kUnrefed = 0,
13
+ kRefed = 1,
14
+ };
15
+ }
16
+
10
17
  // A queue of C++ functions that take Args... as arguments and return R
11
18
  // (this is similar to the signature of std::function).
12
19
  // New entries are added using `CreateCallback()`/`Push()`, and removed using
@@ -18,25 +25,26 @@ class CallbackQueue {
18
25
  public:
19
26
  class Callback {
20
27
  public:
21
- explicit inline Callback(bool refed);
28
+ explicit inline Callback(CallbackFlags::Flags flags);
22
29
 
23
30
  virtual ~Callback() = default;
24
31
  virtual R Call(Args... args) = 0;
25
32
 
26
- inline bool is_refed() const;
33
+ inline CallbackFlags::Flags flags() const;
27
34
 
28
35
  private:
29
36
  inline std::unique_ptr<Callback> get_next();
30
37
  inline void set_next(std::unique_ptr<Callback> next);
31
38
 
32
- bool refed_;
39
+ CallbackFlags::Flags flags_;
33
40
  std::unique_ptr<Callback> next_;
34
41
 
35
42
  friend class CallbackQueue;
36
43
  };
37
44
 
38
45
  template <typename Fn>
39
- inline std::unique_ptr<Callback> CreateCallback(Fn&& fn, bool refed);
46
+ inline std::unique_ptr<Callback> CreateCallback(
47
+ Fn&& fn, CallbackFlags::Flags);
40
48
 
41
49
  inline std::unique_ptr<Callback> Shift();
42
50
  inline void Push(std::unique_ptr<Callback> cb);
@@ -51,7 +59,7 @@ class CallbackQueue {
51
59
  template <typename Fn>
52
60
  class CallbackImpl final : public Callback {
53
61
  public:
54
- CallbackImpl(Fn&& callback, bool refed);
62
+ CallbackImpl(Fn&& callback, CallbackFlags::Flags flags);
55
63
  R Call(Args... args) override;
56
64
 
57
65
  private: