@encharm/cws 4.4.1 → 4.5.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 (485) hide show
  1. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  2. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  3. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  4. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  5. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  6. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  7. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  8. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  9. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  12. package/package.json +1 -1
  13. package/src/Addon.h +8 -23
  14. package/src/Socket.h +0 -1
  15. package/src/headers/22/acorn_version.h +6 -0
  16. package/src/headers/22/aliased_buffer-inl.h +243 -0
  17. package/src/headers/22/aliased_buffer.h +206 -0
  18. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  19. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  20. package/src/headers/{16 → 22}/base_object-inl.h +57 -117
  21. package/src/headers/{18 → 22}/base_object.h +58 -30
  22. package/src/headers/22/base_object_types.h +74 -0
  23. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  24. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  25. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  26. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  27. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  28. package/src/headers/22/cleanup_queue-inl.h +62 -0
  29. package/src/headers/22/cleanup_queue.h +85 -0
  30. package/src/headers/22/compile_cache.h +104 -0
  31. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  32. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  33. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  34. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  35. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  36. package/src/headers/22/crypto/ncrypto.h +752 -0
  37. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  38. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  39. package/src/headers/22/encoding_binding.h +59 -0
  40. package/src/headers/{14 → 22}/env-inl.h +276 -409
  41. package/src/headers/22/env.h +1266 -0
  42. package/src/headers/22/env_properties.h +497 -0
  43. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  44. package/src/headers/{18 → 22}/histogram.h +88 -48
  45. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  46. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  47. package/src/headers/{18 → 22}/js_native_api.h +78 -30
  48. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  49. package/src/headers/{18 → 22}/js_native_api_v8.h +206 -161
  50. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  51. package/src/headers/22/json_parser.h +40 -0
  52. package/src/headers/{16 → 22}/json_utils.h +19 -8
  53. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  54. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  55. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  56. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  57. package/src/headers/{18 → 22}/node.h +465 -68
  58. package/src/headers/{18 → 22}/node_api.h +66 -81
  59. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  60. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  61. package/src/headers/22/node_binding.h +154 -0
  62. package/src/headers/{18 → 22}/node_blob.h +46 -78
  63. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  64. package/src/headers/{18 → 22}/node_bob.h +2 -6
  65. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  66. package/src/headers/22/node_builtins.h +220 -0
  67. package/src/headers/{18 → 22}/node_constants.h +3 -5
  68. package/src/headers/22/node_context_data.h +168 -0
  69. package/src/headers/22/node_contextify.h +199 -0
  70. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  71. package/src/headers/22/node_dotenv.h +45 -0
  72. package/src/headers/{18 → 22}/node_errors.h +86 -27
  73. package/src/headers/22/node_exit_code.h +54 -0
  74. package/src/headers/22/node_external_reference.h +249 -0
  75. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  76. package/src/headers/{16 → 22}/node_file.h +122 -11
  77. package/src/headers/{18 → 22}/node_http2.h +28 -11
  78. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  79. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  80. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  81. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  82. package/src/headers/{18 → 22}/node_internals.h +121 -59
  83. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  84. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  85. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  86. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  87. package/src/headers/{18 → 22}/node_options.h +124 -39
  88. package/src/headers/{18 → 22}/node_perf.h +0 -2
  89. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  90. package/src/headers/{18 → 22}/node_platform.h +11 -5
  91. package/src/headers/{18 → 22}/node_process.h +26 -14
  92. package/src/headers/22/node_realm-inl.h +145 -0
  93. package/src/headers/22/node_realm.h +184 -0
  94. package/src/headers/{16 → 22}/node_report.h +13 -17
  95. package/src/headers/{16 → 22}/node_revert.h +3 -3
  96. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  97. package/src/headers/22/node_sea.h +64 -0
  98. package/src/headers/22/node_shadow_realm.h +46 -0
  99. package/src/headers/22/node_snapshot_builder.h +57 -0
  100. package/src/headers/22/node_snapshotable.h +174 -0
  101. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  102. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  103. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  104. package/src/headers/22/node_threadsafe_cow.h +105 -0
  105. package/src/headers/22/node_union_bytes.h +81 -0
  106. package/src/headers/22/node_url.h +96 -0
  107. package/src/headers/22/node_v8.h +77 -0
  108. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  109. package/src/headers/{18 → 22}/node_version.h +20 -8
  110. package/src/headers/22/node_wasi.h +185 -0
  111. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  112. package/src/headers/{18 → 22}/node_worker.h +7 -2
  113. package/src/headers/22/permission/child_process_permission.h +31 -0
  114. package/src/headers/22/permission/fs_permission.h +167 -0
  115. package/src/headers/22/permission/inspector_permission.h +31 -0
  116. package/src/headers/22/permission/permission.h +99 -0
  117. package/src/headers/22/permission/permission_base.h +60 -0
  118. package/src/headers/22/permission/wasi_permission.h +31 -0
  119. package/src/headers/22/permission/worker_permission.h +31 -0
  120. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  121. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  122. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  123. package/src/headers/{18 → 22}/stream_base.h +35 -16
  124. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  125. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  126. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  127. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  128. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  129. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  130. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  131. package/src/headers/22/timers.h +76 -0
  132. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  133. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  134. package/src/headers/22/undici_version.h +6 -0
  135. package/src/headers/{18 → 22}/util-inl.h +97 -127
  136. package/src/headers/{18 → 22}/util.h +293 -106
  137. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  138. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  139. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  140. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  141. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  142. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  143. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  144. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  145. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  146. package/src/headers/14/aliased_buffer.h +0 -263
  147. package/src/headers/14/allocated_buffer-inl.h +0 -110
  148. package/src/headers/14/allocated_buffer.h +0 -73
  149. package/src/headers/14/async_wrap-inl.h +0 -94
  150. package/src/headers/14/async_wrap.h +0 -230
  151. package/src/headers/14/base64.h +0 -183
  152. package/src/headers/14/base_object-inl.h +0 -371
  153. package/src/headers/14/base_object.h +0 -281
  154. package/src/headers/14/callback_queue-inl.h +0 -97
  155. package/src/headers/14/callback_queue.h +0 -78
  156. package/src/headers/14/debug_utils-inl.h +0 -223
  157. package/src/headers/14/debug_utils.h +0 -181
  158. package/src/headers/14/env.h +0 -1388
  159. package/src/headers/14/handle_wrap.h +0 -117
  160. package/src/headers/14/histogram-inl.h +0 -83
  161. package/src/headers/14/histogram.h +0 -98
  162. package/src/headers/14/inspector_agent.h +0 -149
  163. package/src/headers/14/inspector_profiler.h +0 -137
  164. package/src/headers/14/js_native_api.h +0 -544
  165. package/src/headers/14/js_native_api_types.h +0 -143
  166. package/src/headers/14/js_native_api_v8.h +0 -301
  167. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  168. package/src/headers/14/json_utils.h +0 -161
  169. package/src/headers/14/memory_tracker-inl.h +0 -355
  170. package/src/headers/14/module_wrap.h +0 -99
  171. package/src/headers/14/node.h +0 -1032
  172. package/src/headers/14/node_api.h +0 -255
  173. package/src/headers/14/node_api_types.h +0 -44
  174. package/src/headers/14/node_binding.h +0 -99
  175. package/src/headers/14/node_buffer.h +0 -92
  176. package/src/headers/14/node_constants.h +0 -84
  177. package/src/headers/14/node_context_data.h +0 -44
  178. package/src/headers/14/node_contextify.h +0 -161
  179. package/src/headers/14/node_crypto.h +0 -865
  180. package/src/headers/14/node_crypto_bio.h +0 -195
  181. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  182. package/src/headers/14/node_crypto_clienthello.h +0 -132
  183. package/src/headers/14/node_crypto_common.h +0 -138
  184. package/src/headers/14/node_crypto_groups.h +0 -415
  185. package/src/headers/14/node_dtrace.h +0 -86
  186. package/src/headers/14/node_errors.h +0 -214
  187. package/src/headers/14/node_file-inl.h +0 -306
  188. package/src/headers/14/node_file.h +0 -417
  189. package/src/headers/14/node_http2.h +0 -1191
  190. package/src/headers/14/node_http2_state.h +0 -149
  191. package/src/headers/14/node_http_common-inl.h +0 -194
  192. package/src/headers/14/node_http_common.h +0 -529
  193. package/src/headers/14/node_i18n.h +0 -144
  194. package/src/headers/14/node_internals.h +0 -405
  195. package/src/headers/14/node_main_instance.h +0 -96
  196. package/src/headers/14/node_mem.h +0 -45
  197. package/src/headers/14/node_messaging.h +0 -303
  198. package/src/headers/14/node_metadata.h +0 -109
  199. package/src/headers/14/node_mutex.h +0 -247
  200. package/src/headers/14/node_native_module.h +0 -101
  201. package/src/headers/14/node_native_module_env.h +0 -66
  202. package/src/headers/14/node_options-inl.h +0 -451
  203. package/src/headers/14/node_options.h +0 -481
  204. package/src/headers/14/node_perf.h +0 -181
  205. package/src/headers/14/node_perf_common.h +0 -97
  206. package/src/headers/14/node_platform.h +0 -189
  207. package/src/headers/14/node_process.h +0 -40
  208. package/src/headers/14/node_report.h +0 -47
  209. package/src/headers/14/node_revert.h +0 -72
  210. package/src/headers/14/node_root_certs.h +0 -3458
  211. package/src/headers/14/node_sockaddr-inl.h +0 -170
  212. package/src/headers/14/node_sockaddr.h +0 -123
  213. package/src/headers/14/node_stat_watcher.h +0 -70
  214. package/src/headers/14/node_union_bytes.h +0 -103
  215. package/src/headers/14/node_url.h +0 -188
  216. package/src/headers/14/node_version.h +0 -98
  217. package/src/headers/14/node_wasi.h +0 -108
  218. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  219. package/src/headers/14/node_win32_etw_provider.h +0 -99
  220. package/src/headers/14/node_worker.h +0 -141
  221. package/src/headers/14/pipe_wrap.h +0 -78
  222. package/src/headers/14/req_wrap-inl.h +0 -170
  223. package/src/headers/14/req_wrap.h +0 -77
  224. package/src/headers/14/stream_base-inl.h +0 -275
  225. package/src/headers/14/stream_base.h +0 -434
  226. package/src/headers/14/stream_pipe.h +0 -73
  227. package/src/headers/14/stream_wrap.h +0 -130
  228. package/src/headers/14/string_bytes.h +0 -129
  229. package/src/headers/14/string_decoder.h +0 -50
  230. package/src/headers/14/string_search.h +0 -638
  231. package/src/headers/14/tcp_wrap.h +0 -101
  232. package/src/headers/14/threadpoolwork-inl.h +0 -57
  233. package/src/headers/14/tls_wrap.h +0 -222
  234. package/src/headers/14/tracing/agent.h +0 -195
  235. package/src/headers/14/tracing/node_trace_buffer.h +0 -83
  236. package/src/headers/14/tracing/node_trace_writer.h +0 -75
  237. package/src/headers/14/tracing/trace_event.h +0 -720
  238. package/src/headers/14/tracing/traced_value.h +0 -70
  239. package/src/headers/14/tty_wrap.h +0 -64
  240. package/src/headers/14/udp_wrap.h +0 -227
  241. package/src/headers/14/util-inl.h +0 -566
  242. package/src/headers/14/util.h +0 -804
  243. package/src/headers/14/v8abbr.h +0 -124
  244. package/src/headers/16/aliased_buffer.h +0 -315
  245. package/src/headers/16/aliased_struct-inl.h +0 -54
  246. package/src/headers/16/aliased_struct.h +0 -63
  247. package/src/headers/16/allocated_buffer-inl.h +0 -110
  248. package/src/headers/16/allocated_buffer.h +0 -73
  249. package/src/headers/16/async_wrap-inl.h +0 -94
  250. package/src/headers/16/async_wrap.h +0 -246
  251. package/src/headers/16/base64-inl.h +0 -189
  252. package/src/headers/16/base64.h +0 -69
  253. package/src/headers/16/base_object.h +0 -294
  254. package/src/headers/16/connect_wrap.h +0 -26
  255. package/src/headers/16/connection_wrap.h +0 -30
  256. package/src/headers/16/crypto/crypto_aes.h +0 -89
  257. package/src/headers/16/crypto/crypto_bio.h +0 -194
  258. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  259. package/src/headers/16/crypto/crypto_clienthello-inl.h +0 -90
  260. package/src/headers/16/crypto/crypto_clienthello.h +0 -131
  261. package/src/headers/16/crypto/crypto_common.h +0 -187
  262. package/src/headers/16/crypto/crypto_context.h +0 -147
  263. package/src/headers/16/crypto/crypto_dh.h +0 -157
  264. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  265. package/src/headers/16/crypto/crypto_ec.h +0 -169
  266. package/src/headers/16/crypto/crypto_groups.h +0 -415
  267. package/src/headers/16/crypto/crypto_hash.h +0 -89
  268. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  269. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  270. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  271. package/src/headers/16/crypto/crypto_keys.h +0 -412
  272. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  273. package/src/headers/16/crypto/crypto_random.h +0 -130
  274. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  275. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  276. package/src/headers/16/crypto/crypto_sig.h +0 -167
  277. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  278. package/src/headers/16/crypto/crypto_timing.h +0 -20
  279. package/src/headers/16/crypto/crypto_tls.h +0 -292
  280. package/src/headers/16/crypto/crypto_util.h +0 -736
  281. package/src/headers/16/crypto/crypto_x509.h +0 -141
  282. package/src/headers/16/debug_utils.h +0 -184
  283. package/src/headers/16/diagnosticfilename-inl.h +0 -33
  284. package/src/headers/16/env-inl.h +0 -1277
  285. package/src/headers/16/env.h +0 -1629
  286. package/src/headers/16/handle_wrap.h +0 -121
  287. package/src/headers/16/histogram-inl.h +0 -88
  288. package/src/headers/16/histogram.h +0 -216
  289. package/src/headers/16/inspector_io.h +0 -78
  290. package/src/headers/16/inspector_socket.h +0 -60
  291. package/src/headers/16/inspector_socket_server.h +0 -110
  292. package/src/headers/16/js_native_api.h +0 -561
  293. package/src/headers/16/js_native_api_types.h +0 -160
  294. package/src/headers/16/js_native_api_v8.h +0 -451
  295. package/src/headers/16/js_native_api_v8_internals.h +0 -39
  296. package/src/headers/16/js_stream.h +0 -52
  297. package/src/headers/16/memory_tracker-inl.h +0 -356
  298. package/src/headers/16/memory_tracker.h +0 -284
  299. package/src/headers/16/node.d +0 -315
  300. package/src/headers/16/node.h +0 -1132
  301. package/src/headers/16/node.stp +0 -146
  302. package/src/headers/16/node_api.h +0 -275
  303. package/src/headers/16/node_api_internals.h +0 -30
  304. package/src/headers/16/node_api_types.h +0 -50
  305. package/src/headers/16/node_binding.h +0 -99
  306. package/src/headers/16/node_blob.h +0 -191
  307. package/src/headers/16/node_bob-inl.h +0 -37
  308. package/src/headers/16/node_bob.h +0 -111
  309. package/src/headers/16/node_buffer.h +0 -92
  310. package/src/headers/16/node_constants.h +0 -84
  311. package/src/headers/16/node_context_data.h +0 -44
  312. package/src/headers/16/node_contextify.h +0 -196
  313. package/src/headers/16/node_dir.h +0 -52
  314. package/src/headers/16/node_dtrace.h +0 -86
  315. package/src/headers/16/node_errors.h +0 -277
  316. package/src/headers/16/node_external_reference.h +0 -129
  317. package/src/headers/16/node_file-inl.h +0 -306
  318. package/src/headers/16/node_http2.h +0 -1140
  319. package/src/headers/16/node_http_common-inl.h +0 -200
  320. package/src/headers/16/node_http_common.h +0 -531
  321. package/src/headers/16/node_internals.h +0 -421
  322. package/src/headers/16/node_main_instance.h +0 -103
  323. package/src/headers/16/node_mem-inl.h +0 -112
  324. package/src/headers/16/node_messaging.h +0 -373
  325. package/src/headers/16/node_metadata.h +0 -122
  326. package/src/headers/16/node_native_module.h +0 -101
  327. package/src/headers/16/node_native_module_env.h +0 -68
  328. package/src/headers/16/node_object_wrap.h +0 -132
  329. package/src/headers/16/node_options-inl.h +0 -477
  330. package/src/headers/16/node_options.h +0 -494
  331. package/src/headers/16/node_perf.h +0 -185
  332. package/src/headers/16/node_perf_common.h +0 -89
  333. package/src/headers/16/node_platform.h +0 -192
  334. package/src/headers/16/node_process.h +0 -43
  335. package/src/headers/16/node_provider.d +0 -80
  336. package/src/headers/16/node_snapshotable.h +0 -137
  337. package/src/headers/16/node_sockaddr-inl.h +0 -266
  338. package/src/headers/16/node_sockaddr.h +0 -405
  339. package/src/headers/16/node_union_bytes.h +0 -103
  340. package/src/headers/16/node_url.h +0 -205
  341. package/src/headers/16/node_v8.h +0 -41
  342. package/src/headers/16/node_v8_platform-inl.h +0 -194
  343. package/src/headers/16/node_version.h +0 -98
  344. package/src/headers/16/node_wasi.h +0 -108
  345. package/src/headers/16/node_watchdog.h +0 -152
  346. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  347. package/src/headers/16/node_win32_etw_provider.h +0 -99
  348. package/src/headers/16/node_worker.h +0 -145
  349. package/src/headers/16/req_wrap.h +0 -77
  350. package/src/headers/16/spawn_sync.h +0 -242
  351. package/src/headers/16/stream_base-inl.h +0 -303
  352. package/src/headers/16/stream_base.h +0 -454
  353. package/src/headers/16/stream_pipe.h +0 -73
  354. package/src/headers/16/string_bytes.h +0 -122
  355. package/src/headers/16/string_decoder-inl.h +0 -37
  356. package/src/headers/16/string_search.h +0 -638
  357. package/src/headers/16/tcp_wrap.h +0 -103
  358. package/src/headers/16/threadpoolwork-inl.h +0 -57
  359. package/src/headers/16/timer_wrap.h +0 -84
  360. package/src/headers/16/tracing/agent.h +0 -195
  361. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  362. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  363. package/src/headers/16/tracing/trace_event.h +0 -720
  364. package/src/headers/16/tracing/trace_event_common.h +0 -1109
  365. package/src/headers/16/tracing/traced_value.h +0 -70
  366. package/src/headers/16/tty_wrap.h +0 -66
  367. package/src/headers/16/util-inl.h +0 -575
  368. package/src/headers/16/util.h +0 -824
  369. package/src/headers/16/v8abbr.h +0 -123
  370. package/src/headers/16/v8ustack.d +0 -695
  371. package/src/headers/18/aliased_buffer.h +0 -315
  372. package/src/headers/18/aliased_struct-inl.h +0 -54
  373. package/src/headers/18/aliased_struct.h +0 -63
  374. package/src/headers/18/base64-inl.h +0 -189
  375. package/src/headers/18/base64.h +0 -69
  376. package/src/headers/18/base_object-inl.h +0 -374
  377. package/src/headers/18/callback_queue-inl.h +0 -97
  378. package/src/headers/18/callback_queue.h +0 -78
  379. package/src/headers/18/cares_wrap.h +0 -523
  380. package/src/headers/18/connect_wrap.h +0 -26
  381. package/src/headers/18/connection_wrap.h +0 -30
  382. package/src/headers/18/crypto/crypto_aes.h +0 -89
  383. package/src/headers/18/crypto/crypto_bio.h +0 -194
  384. package/src/headers/18/crypto/crypto_cipher.h +0 -291
  385. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  386. package/src/headers/18/crypto/crypto_common.h +0 -151
  387. package/src/headers/18/crypto/crypto_dh.h +0 -156
  388. package/src/headers/18/crypto/crypto_dsa.h +0 -77
  389. package/src/headers/18/crypto/crypto_ec.h +0 -170
  390. package/src/headers/18/crypto/crypto_groups.h +0 -415
  391. package/src/headers/18/crypto/crypto_hash.h +0 -89
  392. package/src/headers/18/crypto/crypto_hkdf.h +0 -65
  393. package/src/headers/18/crypto/crypto_hmac.h +0 -94
  394. package/src/headers/18/crypto/crypto_keygen.h +0 -305
  395. package/src/headers/18/crypto/crypto_pbkdf2.h +0 -76
  396. package/src/headers/18/crypto/crypto_random.h +0 -130
  397. package/src/headers/18/crypto/crypto_rsa.h +0 -141
  398. package/src/headers/18/crypto/crypto_scrypt.h +0 -87
  399. package/src/headers/18/crypto/crypto_sig.h +0 -168
  400. package/src/headers/18/crypto/crypto_spkac.h +0 -21
  401. package/src/headers/18/crypto/crypto_timing.h +0 -20
  402. package/src/headers/18/crypto/crypto_x509.h +0 -143
  403. package/src/headers/18/debug_utils-inl.h +0 -223
  404. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  405. package/src/headers/18/env-inl.h +0 -1308
  406. package/src/headers/18/env.h +0 -1667
  407. package/src/headers/18/inspector_agent.h +0 -144
  408. package/src/headers/18/inspector_io.h +0 -78
  409. package/src/headers/18/inspector_profiler.h +0 -149
  410. package/src/headers/18/inspector_socket.h +0 -60
  411. package/src/headers/18/inspector_socket_server.h +0 -110
  412. package/src/headers/18/js_stream.h +0 -52
  413. package/src/headers/18/json_utils.h +0 -161
  414. package/src/headers/18/memory_tracker.h +0 -284
  415. package/src/headers/18/module_wrap.h +0 -116
  416. package/src/headers/18/node_binding.h +0 -99
  417. package/src/headers/18/node_context_data.h +0 -44
  418. package/src/headers/18/node_contextify.h +0 -196
  419. package/src/headers/18/node_crypto.h +0 -57
  420. package/src/headers/18/node_dir.h +0 -52
  421. package/src/headers/18/node_dtrace.h +0 -86
  422. package/src/headers/18/node_external_reference.h +0 -145
  423. package/src/headers/18/node_file.h +0 -426
  424. package/src/headers/18/node_http2_state.h +0 -149
  425. package/src/headers/18/node_i18n.h +0 -145
  426. package/src/headers/18/node_mem-inl.h +0 -112
  427. package/src/headers/18/node_mem.h +0 -45
  428. package/src/headers/18/node_mutex.h +0 -323
  429. package/src/headers/18/node_native_module.h +0 -109
  430. package/src/headers/18/node_native_module_env.h +0 -71
  431. package/src/headers/18/node_object_wrap.h +0 -132
  432. package/src/headers/18/node_process-inl.h +0 -26
  433. package/src/headers/18/node_report.h +0 -47
  434. package/src/headers/18/node_revert.h +0 -82
  435. package/src/headers/18/node_root_certs.h +0 -3246
  436. package/src/headers/18/node_snapshot_builder.h +0 -43
  437. package/src/headers/18/node_snapshotable.h +0 -130
  438. package/src/headers/18/node_stat_watcher.h +0 -72
  439. package/src/headers/18/node_union_bytes.h +0 -103
  440. package/src/headers/18/node_url.h +0 -205
  441. package/src/headers/18/node_v8.h +0 -41
  442. package/src/headers/18/node_v8_platform-inl.h +0 -194
  443. package/src/headers/18/node_wasi.h +0 -108
  444. package/src/headers/18/node_watchdog.h +0 -152
  445. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  446. package/src/headers/18/node_win32_etw_provider.h +0 -99
  447. package/src/headers/18/pipe_wrap.h +0 -80
  448. package/src/headers/18/req_wrap-inl.h +0 -170
  449. package/src/headers/18/spawn_sync.h +0 -242
  450. package/src/headers/18/stream_wrap.h +0 -133
  451. package/src/headers/18/string_decoder-inl.h +0 -37
  452. package/src/headers/18/string_decoder.h +0 -50
  453. package/src/headers/18/string_search.h +0 -638
  454. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  455. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  456. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  457. package/src/headers/18/tracing/traced_value.h +0 -70
  458. package/src/headers/18/udp_wrap.h +0 -227
  459. package/src/headers/18/v8abbr.h +0 -123
  460. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  461. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  462. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  463. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  464. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  465. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  466. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  467. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  468. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  469. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  470. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  471. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  472. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  473. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  474. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  475. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  476. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  477. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  478. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  479. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  480. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  481. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  482. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  483. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  484. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  485. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
@@ -3,13 +3,13 @@
3
3
 
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
- #include "hdr_histogram.h"
6
+ #include <hdr/hdr_histogram.h>
7
7
  #include "base_object.h"
8
8
  #include "memory_tracker.h"
9
9
  #include "node_messaging.h"
10
10
  #include "util.h"
11
- #include "v8.h"
12
11
  #include "uv.h"
12
+ #include "v8.h"
13
13
 
14
14
  #include <functional>
15
15
  #include <limits>
@@ -69,6 +69,12 @@ class Histogram : public MemoryRetainer {
69
69
 
70
70
  class HistogramImpl {
71
71
  public:
72
+ enum InternalFields {
73
+ kSlot = BaseObject::kSlot,
74
+ kImplField = BaseObject::kInternalFieldCount,
75
+ kInternalFieldCount
76
+ };
77
+
72
78
  explicit HistogramImpl(
73
79
  const Histogram::Options& options = Histogram::Options {});
74
80
  explicit HistogramImpl(std::shared_ptr<Histogram> histogram);
@@ -77,15 +83,68 @@ class HistogramImpl {
77
83
 
78
84
  const std::shared_ptr<Histogram>& histogram() const { return histogram_; }
79
85
 
86
+ static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
87
+ static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
88
+ static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
89
+ static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
90
+ static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
91
+ static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
92
+ static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
93
+ static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
94
+ static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
95
+ static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
96
+ static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
97
+ static void GetPercentile(const v8::FunctionCallbackInfo<v8::Value>& args);
98
+ static void GetPercentileBigInt(
99
+ const v8::FunctionCallbackInfo<v8::Value>& args);
100
+ static void GetPercentiles(const v8::FunctionCallbackInfo<v8::Value>& args);
101
+ static void GetPercentilesBigInt(
102
+ const v8::FunctionCallbackInfo<v8::Value>& args);
103
+
104
+ static void FastReset(v8::Local<v8::Value> unused,
105
+ v8::Local<v8::Value> receiver);
106
+ static double FastGetCount(v8::Local<v8::Value> unused,
107
+ v8::Local<v8::Value> receiver);
108
+ static double FastGetMin(v8::Local<v8::Value> unused,
109
+ v8::Local<v8::Value> receiver);
110
+ static double FastGetMax(v8::Local<v8::Value> unused,
111
+ v8::Local<v8::Value> receiver);
112
+ static double FastGetMean(v8::Local<v8::Value> unused,
113
+ v8::Local<v8::Value> receiver);
114
+ static double FastGetExceeds(v8::Local<v8::Value> unused,
115
+ v8::Local<v8::Value> receiver);
116
+ static double FastGetStddev(v8::Local<v8::Value> unused,
117
+ v8::Local<v8::Value> receiver);
118
+ static double FastGetPercentile(v8::Local<v8::Value> unused,
119
+ v8::Local<v8::Value> receiver,
120
+ const double percentile);
121
+
122
+ static void AddMethods(v8::Isolate* isolate,
123
+ v8::Local<v8::FunctionTemplate> tmpl);
124
+
125
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
126
+
127
+ static HistogramImpl* FromJSObject(v8::Local<v8::Value> value);
128
+
80
129
  private:
81
130
  std::shared_ptr<Histogram> histogram_;
131
+
132
+ static v8::CFunction fast_reset_;
133
+ static v8::CFunction fast_get_count_;
134
+ static v8::CFunction fast_get_min_;
135
+ static v8::CFunction fast_get_max_;
136
+ static v8::CFunction fast_get_mean_;
137
+ static v8::CFunction fast_get_exceeds_;
138
+ static v8::CFunction fast_get_stddev_;
139
+ static v8::CFunction fast_get_percentile_;
82
140
  };
83
141
 
84
- class HistogramBase : public BaseObject, public HistogramImpl {
142
+ class HistogramBase final : public BaseObject, public HistogramImpl {
85
143
  public:
86
144
  static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
87
- Environment* env);
88
- static void Initialize(Environment* env, v8::Local<v8::Object> target);
145
+ IsolateData* isolate_data);
146
+ static void Initialize(IsolateData* isolate_data,
147
+ v8::Local<v8::ObjectTemplate> target);
89
148
  static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
90
149
 
91
150
  static BaseObjectPtr<HistogramBase> Create(
@@ -102,30 +161,18 @@ class HistogramBase : public BaseObject, public HistogramImpl {
102
161
  SET_MEMORY_INFO_NAME(HistogramBase)
103
162
  SET_SELF_SIZE(HistogramBase)
104
163
 
105
- static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
106
- static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
107
- static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
108
- static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
109
-
110
- static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
111
- static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
112
- static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
113
- static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
114
- static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
115
- static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
116
- static void GetPercentile(
117
- const v8::FunctionCallbackInfo<v8::Value>& args);
118
- static void GetPercentileBigInt(
119
- const v8::FunctionCallbackInfo<v8::Value>& args);
120
- static void GetPercentiles(
121
- const v8::FunctionCallbackInfo<v8::Value>& args);
122
- static void GetPercentilesBigInt(
123
- const v8::FunctionCallbackInfo<v8::Value>& args);
124
- static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
125
164
  static void Record(const v8::FunctionCallbackInfo<v8::Value>& args);
126
165
  static void RecordDelta(const v8::FunctionCallbackInfo<v8::Value>& args);
127
166
  static void Add(const v8::FunctionCallbackInfo<v8::Value>& args);
128
167
 
168
+ static void FastRecord(
169
+ v8::Local<v8::Value> unused,
170
+ v8::Local<v8::Value> receiver,
171
+ const int64_t value,
172
+ v8::FastApiCallbackOptions& options); // NOLINT(runtime/references)
173
+ static void FastRecordDelta(v8::Local<v8::Value> unused,
174
+ v8::Local<v8::Value> receiver);
175
+
129
176
  HistogramBase(
130
177
  Environment* env,
131
178
  v8::Local<v8::Object> wrap,
@@ -136,7 +183,7 @@ class HistogramBase : public BaseObject, public HistogramImpl {
136
183
  v8::Local<v8::Object> wrap,
137
184
  std::shared_ptr<Histogram> histogram);
138
185
 
139
- TransferMode GetTransferMode() const override {
186
+ BaseObject::TransferMode GetTransferMode() const override {
140
187
  return TransferMode::kCloneable;
141
188
  }
142
189
  std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
@@ -161,9 +208,13 @@ class HistogramBase : public BaseObject, public HistogramImpl {
161
208
  private:
162
209
  std::shared_ptr<Histogram> histogram_;
163
210
  };
211
+
212
+ private:
213
+ static v8::CFunction fast_record_;
214
+ static v8::CFunction fast_record_delta_;
164
215
  };
165
216
 
166
- class IntervalHistogram : public HandleWrap, public HistogramImpl {
217
+ class IntervalHistogram final : public HandleWrap, public HistogramImpl {
167
218
  public:
168
219
  enum class StartFlags {
169
220
  NONE,
@@ -189,30 +240,16 @@ class IntervalHistogram : public HandleWrap, public HistogramImpl {
189
240
  std::function<void(Histogram&)> on_interval,
190
241
  const Histogram::Options& options = Histogram::Options {});
191
242
 
192
- static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
193
- static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
194
- static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
195
- static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
196
-
197
- static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
198
- static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
199
- static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
200
- static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
201
- static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
202
- static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
203
- static void GetPercentile(
204
- const v8::FunctionCallbackInfo<v8::Value>& args);
205
- static void GetPercentileBigInt(
206
- const v8::FunctionCallbackInfo<v8::Value>& args);
207
- static void GetPercentiles(
208
- const v8::FunctionCallbackInfo<v8::Value>& args);
209
- static void GetPercentilesBigInt(
210
- const v8::FunctionCallbackInfo<v8::Value>& args);
211
- static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
212
243
  static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
213
244
  static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
214
245
 
215
- TransferMode GetTransferMode() const override {
246
+ static void FastStart(v8::Local<v8::Value> unused,
247
+ v8::Local<v8::Value> receiver,
248
+ bool reset);
249
+ static void FastStop(v8::Local<v8::Value> unused,
250
+ v8::Local<v8::Value> receiver);
251
+
252
+ BaseObject::TransferMode GetTransferMode() const override {
216
253
  return TransferMode::kCloneable;
217
254
  }
218
255
  std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
@@ -230,6 +267,9 @@ class IntervalHistogram : public HandleWrap, public HistogramImpl {
230
267
  int32_t interval_ = 0;
231
268
  std::function<void(Histogram&)> on_interval_;
232
269
  uv_timer_t timer_;
270
+
271
+ static v8::CFunction fast_start_;
272
+ static v8::CFunction fast_stop_;
233
273
  };
234
274
 
235
275
  } // namespace node
@@ -61,11 +61,22 @@ class Agent {
61
61
 
62
62
  // Blocks till frontend connects and sends "runIfWaitingForDebugger"
63
63
  void WaitForConnect();
64
+ bool WaitForConnectByOptions();
65
+ void StopIfWaitingForConnect();
66
+
64
67
  // Blocks till all the sessions with "WaitForDisconnectOnShutdown" disconnect
65
68
  void WaitForDisconnect();
66
69
  void ReportUncaughtException(v8::Local<v8::Value> error,
67
70
  v8::Local<v8::Message> message);
68
71
 
72
+ void EmitProtocolEvent(const v8_inspector::StringView& event,
73
+ const v8_inspector::StringView& params);
74
+
75
+ void SetupNetworkTracking(v8::Local<v8::Function> enable_function,
76
+ v8::Local<v8::Function> disable_function);
77
+ void EnableNetworkTracking();
78
+ void DisableNetworkTracking();
79
+
69
80
  // Async stack traces instrumentation.
70
81
  void AsyncTaskScheduled(const v8_inspector::StringView& taskName, void* task,
71
82
  bool recurring);
@@ -82,7 +93,7 @@ class Agent {
82
93
 
83
94
  void SetParentHandle(std::unique_ptr<ParentInspectorHandle> parent_handle);
84
95
  std::unique_ptr<ParentInspectorHandle> GetParentHandle(
85
- uint64_t thread_id, const std::string& url);
96
+ uint64_t thread_id, const std::string& url, const std::string& name);
86
97
 
87
98
  // Called to create inspector sessions that can be used from the same thread.
88
99
  // The inspector responds by using the delegate to send messages back.
@@ -118,6 +129,7 @@ class Agent {
118
129
 
119
130
  private:
120
131
  void ToggleAsyncHook(v8::Isolate* isolate, v8::Local<v8::Function> fn);
132
+ void ToggleNetworkTracking(v8::Isolate* isolate, v8::Local<v8::Function> fn);
121
133
 
122
134
  node::Environment* parent_env_;
123
135
  // Encapsulates majority of the Inspector functionality
@@ -136,6 +148,10 @@ class Agent {
136
148
 
137
149
  bool pending_enable_async_hook_ = false;
138
150
  bool pending_disable_async_hook_ = false;
151
+
152
+ bool network_tracking_enabled_ = false;
153
+ bool pending_enable_network_tracking = false;
154
+ bool pending_disable_network_tracking = false;
139
155
  };
140
156
 
141
157
  } // namespace inspector
@@ -7,8 +7,10 @@
7
7
  #error("This header can only be used when inspector is enabled")
8
8
  #endif
9
9
 
10
+ #include <optional>
10
11
  #include <unordered_set>
11
12
  #include "inspector_agent.h"
13
+ #include "simdjson.h"
12
14
 
13
15
  namespace node {
14
16
  // Forward declaration to break recursive dependency chain with src/env.h.
@@ -40,7 +42,7 @@ class V8ProfilerConnection {
40
42
  // The optional `params` should be formatted in JSON.
41
43
  // The strings should be in one byte characters - which is enough for
42
44
  // the commands we use here.
43
- uint32_t DispatchMessage(const char* method,
45
+ uint64_t DispatchMessage(const char* method,
44
46
  const char* params = nullptr,
45
47
  bool is_profile_request = false);
46
48
 
@@ -59,23 +61,24 @@ class V8ProfilerConnection {
59
61
  virtual std::string GetFilename() const = 0;
60
62
  // Return the profile object parsed from `message.result`,
61
63
  // which will be then written as a JSON.
62
- virtual v8::MaybeLocal<v8::Object> GetProfile(
63
- v8::Local<v8::Object> result) = 0;
64
- virtual void WriteProfile(v8::Local<v8::Object> result);
64
+ virtual std::optional<std::string_view> GetProfile(
65
+ simdjson::ondemand::object* result);
66
+ virtual void WriteProfile(simdjson::ondemand::object* result);
65
67
 
66
- bool HasProfileId(uint32_t id) const {
68
+ bool HasProfileId(uint64_t id) const {
67
69
  return profile_ids_.find(id) != profile_ids_.end();
68
70
  }
69
71
 
70
- void RemoveProfileId(uint32_t id) { profile_ids_.erase(id); }
72
+ void RemoveProfileId(uint64_t id) { profile_ids_.erase(id); }
71
73
 
72
74
  private:
73
- uint32_t next_id() { return id_++; }
75
+ uint64_t next_id() { return id_++; }
74
76
  std::unique_ptr<inspector::InspectorSession> session_;
75
- uint32_t id_ = 1;
76
- std::unordered_set<uint32_t> profile_ids_;
77
+ uint64_t id_ = 1;
78
+ std::unordered_set<uint64_t> profile_ids_;
77
79
 
78
80
  protected:
81
+ simdjson::ondemand::parser json_parser_;
79
82
  Environment* env_ = nullptr;
80
83
  };
81
84
 
@@ -91,8 +94,9 @@ class V8CoverageConnection : public V8ProfilerConnection {
91
94
 
92
95
  std::string GetDirectory() const override;
93
96
  std::string GetFilename() const override;
94
- v8::MaybeLocal<v8::Object> GetProfile(v8::Local<v8::Object> result) override;
95
- void WriteProfile(v8::Local<v8::Object> result) override;
97
+ std::optional<std::string_view> GetProfile(
98
+ simdjson::ondemand::object* result) override;
99
+ void WriteProfile(simdjson::ondemand::object* result) override;
96
100
  void WriteSourceMapCache();
97
101
  void TakeCoverage();
98
102
  void StopCoverage();
@@ -115,7 +119,6 @@ class V8CpuProfilerConnection : public V8ProfilerConnection {
115
119
 
116
120
  std::string GetDirectory() const override;
117
121
  std::string GetFilename() const override;
118
- v8::MaybeLocal<v8::Object> GetProfile(v8::Local<v8::Object> result) override;
119
122
 
120
123
  private:
121
124
  std::unique_ptr<inspector::InspectorSession> session_;
@@ -135,7 +138,6 @@ class V8HeapProfilerConnection : public V8ProfilerConnection {
135
138
 
136
139
  std::string GetDirectory() const override;
137
140
  std::string GetFilename() const override;
138
- v8::MaybeLocal<v8::Object> GetProfile(v8::Local<v8::Object> result) override;
139
141
 
140
142
  private:
141
143
  std::unique_ptr<inspector::InspectorSession> session_;
@@ -28,7 +28,7 @@
28
28
  #ifndef NAPI_EXTERN
29
29
  #ifdef _WIN32
30
30
  #define NAPI_EXTERN __declspec(dllexport)
31
- #elif defined(__wasm32__)
31
+ #elif defined(__wasm__)
32
32
  #define NAPI_EXTERN \
33
33
  __attribute__((visibility("default"))) \
34
34
  __attribute__((__import_module__("napi")))
@@ -49,8 +49,8 @@
49
49
 
50
50
  EXTERN_C_START
51
51
 
52
- NAPI_EXTERN napi_status NAPI_CDECL
53
- napi_get_last_error_info(napi_env env, const napi_extended_error_info** result);
52
+ NAPI_EXTERN napi_status NAPI_CDECL napi_get_last_error_info(
53
+ node_api_basic_env env, const napi_extended_error_info** result);
54
54
 
55
55
  // Getters for defined singletons
56
56
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_undefined(napi_env env,
@@ -92,16 +92,46 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf16(napi_env env,
92
92
  const char16_t* str,
93
93
  size_t length,
94
94
  napi_value* result);
95
+ #ifdef NAPI_EXPERIMENTAL
96
+ #define NODE_API_EXPERIMENTAL_HAS_EXTERNAL_STRINGS
97
+ NAPI_EXTERN napi_status NAPI_CDECL node_api_create_external_string_latin1(
98
+ napi_env env,
99
+ char* str,
100
+ size_t length,
101
+ node_api_basic_finalize finalize_callback,
102
+ void* finalize_hint,
103
+ napi_value* result,
104
+ bool* copied);
105
+ NAPI_EXTERN napi_status NAPI_CDECL
106
+ node_api_create_external_string_utf16(napi_env env,
107
+ char16_t* str,
108
+ size_t length,
109
+ node_api_basic_finalize finalize_callback,
110
+ void* finalize_hint,
111
+ napi_value* result,
112
+ bool* copied);
113
+ #endif // NAPI_EXPERIMENTAL
114
+
115
+ #ifdef NAPI_EXPERIMENTAL
116
+ #define NODE_API_EXPERIMENTAL_HAS_PROPERTY_KEYS
117
+ NAPI_EXTERN napi_status NAPI_CDECL node_api_create_property_key_latin1(
118
+ napi_env env, const char* str, size_t length, napi_value* result);
119
+ NAPI_EXTERN napi_status NAPI_CDECL node_api_create_property_key_utf8(
120
+ napi_env env, const char* str, size_t length, napi_value* result);
121
+ NAPI_EXTERN napi_status NAPI_CDECL node_api_create_property_key_utf16(
122
+ napi_env env, const char16_t* str, size_t length, napi_value* result);
123
+ #endif // NAPI_EXPERIMENTAL
124
+
95
125
  NAPI_EXTERN napi_status NAPI_CDECL napi_create_symbol(napi_env env,
96
126
  napi_value description,
97
127
  napi_value* result);
98
- #ifdef NAPI_EXPERIMENTAL
128
+ #if NAPI_VERSION >= 9
99
129
  NAPI_EXTERN napi_status NAPI_CDECL
100
130
  node_api_symbol_for(napi_env env,
101
131
  const char* utf8description,
102
132
  size_t length,
103
133
  napi_value* result);
104
- #endif // NAPI_EXPERIMENTAL
134
+ #endif // NAPI_VERSION >= 9
105
135
  NAPI_EXTERN napi_status NAPI_CDECL napi_create_function(napi_env env,
106
136
  const char* utf8name,
107
137
  size_t length,
@@ -120,10 +150,10 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_range_error(napi_env env,
120
150
  napi_value code,
121
151
  napi_value msg,
122
152
  napi_value* result);
123
- #ifdef NAPI_EXPERIMENTAL
153
+ #if NAPI_VERSION >= 9
124
154
  NAPI_EXTERN napi_status NAPI_CDECL node_api_create_syntax_error(
125
155
  napi_env env, napi_value code, napi_value msg, napi_value* result);
126
- #endif // NAPI_EXPERIMENTAL
156
+ #endif // NAPI_VERSION >= 9
127
157
 
128
158
  // Methods to get the native napi_value from Primitive type
129
159
  NAPI_EXTERN napi_status NAPI_CDECL napi_typeof(napi_env env,
@@ -271,7 +301,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_instanceof(napi_env env,
271
301
 
272
302
  // Gets all callback info in a single call. (Ugly, but faster.)
273
303
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_cb_info(
274
- napi_env env, // [in] NAPI environment handle
304
+ napi_env env, // [in] Node-API environment handle
275
305
  napi_callback_info cbinfo, // [in] Opaque callback-info handle
276
306
  size_t* argc, // [in-out] Specifies the size of the provided argv array
277
307
  // and receives the actual count of args.
@@ -292,12 +322,13 @@ napi_define_class(napi_env env,
292
322
  napi_value* result);
293
323
 
294
324
  // Methods to work with external data objects
295
- NAPI_EXTERN napi_status NAPI_CDECL napi_wrap(napi_env env,
296
- napi_value js_object,
297
- void* native_object,
298
- napi_finalize finalize_cb,
299
- void* finalize_hint,
300
- napi_ref* result);
325
+ NAPI_EXTERN napi_status NAPI_CDECL
326
+ napi_wrap(napi_env env,
327
+ napi_value js_object,
328
+ void* native_object,
329
+ node_api_basic_finalize finalize_cb,
330
+ void* finalize_hint,
331
+ napi_ref* result);
301
332
  NAPI_EXTERN napi_status NAPI_CDECL napi_unwrap(napi_env env,
302
333
  napi_value js_object,
303
334
  void** result);
@@ -307,7 +338,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_remove_wrap(napi_env env,
307
338
  NAPI_EXTERN napi_status NAPI_CDECL
308
339
  napi_create_external(napi_env env,
309
340
  void* data,
310
- napi_finalize finalize_cb,
341
+ node_api_basic_finalize finalize_cb,
311
342
  void* finalize_hint,
312
343
  napi_value* result);
313
344
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_external(napi_env env,
@@ -378,11 +409,11 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_throw_type_error(napi_env env,
378
409
  NAPI_EXTERN napi_status NAPI_CDECL napi_throw_range_error(napi_env env,
379
410
  const char* code,
380
411
  const char* msg);
381
- #ifdef NAPI_EXPERIMENTAL
412
+ #if NAPI_VERSION >= 9
382
413
  NAPI_EXTERN napi_status NAPI_CDECL node_api_throw_syntax_error(napi_env env,
383
414
  const char* code,
384
415
  const char* msg);
385
- #endif // NAPI_EXPERIMENTAL
416
+ #endif // NAPI_VERSION >= 9
386
417
  NAPI_EXTERN napi_status NAPI_CDECL napi_is_error(napi_env env,
387
418
  napi_value value,
388
419
  bool* result);
@@ -401,13 +432,15 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_arraybuffer(napi_env env,
401
432
  size_t byte_length,
402
433
  void** data,
403
434
  napi_value* result);
435
+ #ifndef NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
404
436
  NAPI_EXTERN napi_status NAPI_CDECL
405
437
  napi_create_external_arraybuffer(napi_env env,
406
438
  void* external_data,
407
439
  size_t byte_length,
408
- napi_finalize finalize_cb,
440
+ node_api_basic_finalize finalize_cb,
409
441
  void* finalize_hint,
410
442
  napi_value* result);
443
+ #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
411
444
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_arraybuffer_info(
412
445
  napi_env env, napi_value arraybuffer, void** data, size_t* byte_length);
413
446
  NAPI_EXTERN napi_status NAPI_CDECL napi_is_typedarray(napi_env env,
@@ -446,7 +479,7 @@ napi_get_dataview_info(napi_env env,
446
479
  size_t* byte_offset);
447
480
 
448
481
  // version management
449
- NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(napi_env env,
482
+ NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(node_api_basic_env env,
450
483
  uint32_t* result);
451
484
 
452
485
  // Promises
@@ -470,7 +503,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_run_script(napi_env env,
470
503
 
471
504
  // Memory management
472
505
  NAPI_EXTERN napi_status NAPI_CDECL napi_adjust_external_memory(
473
- napi_env env, int64_t change_in_bytes, int64_t* adjusted_value);
506
+ node_api_basic_env env, int64_t change_in_bytes, int64_t* adjusted_value);
474
507
 
475
508
  #if NAPI_VERSION >= 5
476
509
 
@@ -488,15 +521,27 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_get_date_value(napi_env env,
488
521
  double* result);
489
522
 
490
523
  // Add finalizer for pointer
491
- NAPI_EXTERN napi_status NAPI_CDECL napi_add_finalizer(napi_env env,
492
- napi_value js_object,
493
- void* native_object,
494
- napi_finalize finalize_cb,
495
- void* finalize_hint,
496
- napi_ref* result);
524
+ NAPI_EXTERN napi_status NAPI_CDECL
525
+ napi_add_finalizer(napi_env env,
526
+ napi_value js_object,
527
+ void* finalize_data,
528
+ node_api_basic_finalize finalize_cb,
529
+ void* finalize_hint,
530
+ napi_ref* result);
497
531
 
498
532
  #endif // NAPI_VERSION >= 5
499
533
 
534
+ #ifdef NAPI_EXPERIMENTAL
535
+ #define NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER
536
+
537
+ NAPI_EXTERN napi_status NAPI_CDECL
538
+ node_api_post_finalizer(node_api_basic_env env,
539
+ napi_finalize finalize_cb,
540
+ void* finalize_data,
541
+ void* finalize_hint);
542
+
543
+ #endif // NAPI_EXPERIMENTAL
544
+
500
545
  #if NAPI_VERSION >= 6
501
546
 
502
547
  // BigInt
@@ -534,11 +579,14 @@ napi_get_all_property_names(napi_env env,
534
579
  napi_value* result);
535
580
 
536
581
  // Instance data
537
- NAPI_EXTERN napi_status NAPI_CDECL napi_set_instance_data(
538
- napi_env env, void* data, napi_finalize finalize_cb, void* finalize_hint);
582
+ NAPI_EXTERN napi_status NAPI_CDECL
583
+ napi_set_instance_data(node_api_basic_env env,
584
+ void* data,
585
+ napi_finalize finalize_cb,
586
+ void* finalize_hint);
539
587
 
540
- NAPI_EXTERN napi_status NAPI_CDECL napi_get_instance_data(napi_env env,
541
- void** data);
588
+ NAPI_EXTERN napi_status NAPI_CDECL
589
+ napi_get_instance_data(node_api_basic_env env, void** data);
542
590
  #endif // NAPI_VERSION >= 6
543
591
 
544
592
  #if NAPI_VERSION >= 7
@@ -22,6 +22,37 @@ typedef uint16_t char16_t;
22
22
  // JSVM API types are all opaque pointers for ABI stability
23
23
  // typedef undefined structs instead of void* for compile time type safety
24
24
  typedef struct napi_env__* napi_env;
25
+
26
+ // We need to mark APIs which can be called during garbage collection (GC),
27
+ // meaning that they do not affect the state of the JS engine, and can
28
+ // therefore be called synchronously from a finalizer that itself runs
29
+ // synchronously during GC. Such APIs can receive either a `napi_env` or a
30
+ // `node_api_basic_env` as their first parameter, because we should be able to
31
+ // also call them during normal, non-garbage-collecting operations, whereas
32
+ // APIs that affect the state of the JS engine can only receive a `napi_env` as
33
+ // their first parameter, because we must not call them during GC. In lieu of
34
+ // inheritance, we use the properties of the const qualifier to accomplish
35
+ // this, because both a const and a non-const value can be passed to an API
36
+ // expecting a const value, but only a non-const value can be passed to an API
37
+ // expecting a non-const value.
38
+ //
39
+ // In conjunction with appropriate CFLAGS to warn us if we're passing a const
40
+ // (basic) environment into an API that expects a non-const environment, and
41
+ // the definition of basic finalizer function pointer types below, which
42
+ // receive a basic environment as their first parameter, and can thus only call
43
+ // basic APIs (unless the user explicitly casts the environment), we achieve
44
+ // the ability to ensure at compile time that we do not call APIs that affect
45
+ // the state of the JS engine from a synchronous (basic) finalizer.
46
+ #if !defined(NAPI_EXPERIMENTAL) || \
47
+ (defined(NAPI_EXPERIMENTAL) && \
48
+ (defined(NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT) || \
49
+ defined(NODE_API_EXPERIMENTAL_BASIC_ENV_OPT_OUT)))
50
+ typedef struct napi_env__* node_api_nogc_env;
51
+ #else
52
+ typedef const struct napi_env__* node_api_nogc_env;
53
+ #endif
54
+ typedef node_api_nogc_env node_api_basic_env;
55
+
25
56
  typedef struct napi_value__* napi_value;
26
57
  typedef struct napi_ref__* napi_ref;
27
58
  typedef struct napi_handle_scope__* napi_handle_scope;
@@ -98,7 +129,9 @@ typedef enum {
98
129
  napi_date_expected,
99
130
  napi_arraybuffer_expected,
100
131
  napi_detachable_arraybuffer_expected,
101
- napi_would_deadlock // unused
132
+ napi_would_deadlock, // unused
133
+ napi_no_external_buffers_allowed,
134
+ napi_cannot_run_js,
102
135
  } napi_status;
103
136
  // Note: when adding a new enum value to `napi_status`, please also update
104
137
  // * `const int last_status` in the definition of `napi_get_last_error_info()'
@@ -114,6 +147,18 @@ typedef void(NAPI_CDECL* napi_finalize)(napi_env env,
114
147
  void* finalize_data,
115
148
  void* finalize_hint);
116
149
 
150
+ #if !defined(NAPI_EXPERIMENTAL) || \
151
+ (defined(NAPI_EXPERIMENTAL) && \
152
+ (defined(NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT) || \
153
+ defined(NODE_API_EXPERIMENTAL_BASIC_ENV_OPT_OUT)))
154
+ typedef napi_finalize node_api_nogc_finalize;
155
+ #else
156
+ typedef void(NAPI_CDECL* node_api_nogc_finalize)(node_api_nogc_env env,
157
+ void* finalize_data,
158
+ void* finalize_hint);
159
+ #endif
160
+ typedef node_api_nogc_finalize node_api_basic_finalize;
161
+
117
162
  typedef struct {
118
163
  // One of utf8name or name should be NULL.
119
164
  const char* utf8name;