@encharm/cws 4.4.1 → 4.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/binding.gyp +1 -1
  2. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  3. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  4. package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
  5. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  6. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  7. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  8. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  9. package/dist/bindings/cws_linux_x64_node137.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  12. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  13. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  14. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  15. package/package.json +1 -1
  16. package/src/Addon.h +13 -23
  17. package/src/Socket.h +0 -1
  18. package/src/headers/22/acorn_version.h +6 -0
  19. package/src/headers/22/aliased_buffer-inl.h +243 -0
  20. package/src/headers/22/aliased_buffer.h +206 -0
  21. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  22. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  23. package/src/headers/{18 → 22}/base_object-inl.h +57 -117
  24. package/src/headers/{18 → 22}/base_object.h +58 -30
  25. package/src/headers/22/base_object_types.h +74 -0
  26. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  27. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  28. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  29. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  30. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  31. package/src/headers/22/cleanup_queue-inl.h +62 -0
  32. package/src/headers/22/cleanup_queue.h +85 -0
  33. package/src/headers/22/compile_cache.h +104 -0
  34. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  35. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  36. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  37. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  38. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  39. package/src/headers/22/crypto/ncrypto.h +752 -0
  40. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  41. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  42. package/src/headers/22/encoding_binding.h +59 -0
  43. package/src/headers/{14 → 22}/env-inl.h +276 -409
  44. package/src/headers/22/env.h +1266 -0
  45. package/src/headers/22/env_properties.h +497 -0
  46. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  47. package/src/headers/{18 → 22}/histogram.h +88 -48
  48. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  49. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  50. package/src/headers/22/js_native_api.h +619 -0
  51. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  52. package/src/headers/22/js_native_api_v8.h +485 -0
  53. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  54. package/src/headers/22/json_parser.h +40 -0
  55. package/src/headers/{16 → 22}/json_utils.h +19 -8
  56. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  57. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  58. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  59. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  60. package/src/headers/{18 → 22}/node.h +465 -68
  61. package/src/headers/{18 → 22}/node_api.h +66 -81
  62. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  63. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  64. package/src/headers/22/node_binding.h +154 -0
  65. package/src/headers/{18 → 22}/node_blob.h +46 -78
  66. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  67. package/src/headers/{18 → 22}/node_bob.h +2 -6
  68. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  69. package/src/headers/22/node_builtins.h +220 -0
  70. package/src/headers/{18 → 22}/node_constants.h +3 -5
  71. package/src/headers/22/node_context_data.h +168 -0
  72. package/src/headers/22/node_contextify.h +199 -0
  73. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  74. package/src/headers/22/node_dotenv.h +45 -0
  75. package/src/headers/{18 → 22}/node_errors.h +86 -27
  76. package/src/headers/22/node_exit_code.h +54 -0
  77. package/src/headers/22/node_external_reference.h +249 -0
  78. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  79. package/src/headers/{16 → 22}/node_file.h +122 -11
  80. package/src/headers/{18 → 22}/node_http2.h +28 -11
  81. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  82. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  83. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  84. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  85. package/src/headers/{18 → 22}/node_internals.h +121 -59
  86. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  87. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  88. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  89. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  90. package/src/headers/{18 → 22}/node_options.h +124 -39
  91. package/src/headers/{18 → 22}/node_perf.h +0 -2
  92. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  93. package/src/headers/{18 → 22}/node_platform.h +11 -5
  94. package/src/headers/{18 → 22}/node_process.h +26 -14
  95. package/src/headers/22/node_realm-inl.h +145 -0
  96. package/src/headers/22/node_realm.h +184 -0
  97. package/src/headers/{16 → 22}/node_report.h +13 -17
  98. package/src/headers/{16 → 22}/node_revert.h +3 -3
  99. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  100. package/src/headers/22/node_sea.h +64 -0
  101. package/src/headers/22/node_shadow_realm.h +46 -0
  102. package/src/headers/22/node_snapshot_builder.h +57 -0
  103. package/src/headers/22/node_snapshotable.h +174 -0
  104. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  105. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  106. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  107. package/src/headers/22/node_threadsafe_cow.h +105 -0
  108. package/src/headers/22/node_union_bytes.h +81 -0
  109. package/src/headers/22/node_url.h +96 -0
  110. package/src/headers/22/node_v8.h +77 -0
  111. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  112. package/src/headers/{16 → 22}/node_version.h +21 -9
  113. package/src/headers/22/node_wasi.h +185 -0
  114. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  115. package/src/headers/{18 → 22}/node_worker.h +7 -2
  116. package/src/headers/22/permission/child_process_permission.h +31 -0
  117. package/src/headers/22/permission/fs_permission.h +167 -0
  118. package/src/headers/22/permission/inspector_permission.h +31 -0
  119. package/src/headers/22/permission/permission.h +99 -0
  120. package/src/headers/22/permission/permission_base.h +60 -0
  121. package/src/headers/22/permission/wasi_permission.h +31 -0
  122. package/src/headers/22/permission/worker_permission.h +31 -0
  123. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  124. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  125. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  126. package/src/headers/{18 → 22}/stream_base.h +35 -16
  127. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  128. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  129. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  130. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  131. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  132. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  133. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  134. package/src/headers/22/timers.h +76 -0
  135. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  136. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  137. package/src/headers/22/undici_version.h +6 -0
  138. package/src/headers/{18 → 22}/util-inl.h +97 -127
  139. package/src/headers/{18 → 22}/util.h +293 -106
  140. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  141. package/src/headers/24/acorn_version.h +6 -0
  142. package/src/headers/24/addon_permission.h +31 -0
  143. package/src/headers/{16/tracing → 24}/agent.h +1 -1
  144. package/src/headers/24/aliased_buffer-inl.h +244 -0
  145. package/src/headers/24/aliased_buffer.h +206 -0
  146. package/src/headers/24/amaro_version.h +6 -0
  147. package/src/headers/24/application.h +165 -0
  148. package/src/headers/24/async_context_frame.h +33 -0
  149. package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
  150. package/src/headers/{16 → 24}/async_wrap.h +86 -88
  151. package/src/headers/{16 → 24}/base_object-inl.h +75 -119
  152. package/src/headers/{16 → 24}/base_object.h +84 -40
  153. package/src/headers/24/base_object_types.h +74 -0
  154. package/src/headers/24/bindingdata.h +272 -0
  155. package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
  156. package/src/headers/24/blob_serializer_deserializer.h +132 -0
  157. package/src/headers/{18 → 24}/callback_queue.h +1 -0
  158. package/src/headers/{18 → 24}/cares_wrap.h +68 -144
  159. package/src/headers/24/child_process_permission.h +31 -0
  160. package/src/headers/24/cid.h +127 -0
  161. package/src/headers/24/cjs_module_lexer_version.h +6 -0
  162. package/src/headers/24/cleanup_queue-inl.h +36 -0
  163. package/src/headers/24/cleanup_queue.h +79 -0
  164. package/src/headers/24/compile_cache.h +113 -0
  165. package/src/headers/24/cppgc_helpers-inl.h +65 -0
  166. package/src/headers/24/cppgc_helpers.h +162 -0
  167. package/src/headers/24/crypto/crypto_aes.h +97 -0
  168. package/src/headers/24/crypto/crypto_argon2.h +86 -0
  169. package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
  170. package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
  171. package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
  172. package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
  173. package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
  174. package/src/headers/24/crypto/crypto_common.h +48 -0
  175. package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
  176. package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
  177. package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
  178. package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
  179. package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
  180. package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
  181. package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
  182. package/src/headers/24/crypto/crypto_kem.h +113 -0
  183. package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
  184. package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
  185. package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
  186. package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
  187. package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
  188. package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
  189. package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
  190. package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
  191. package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
  192. package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
  193. package/src/headers/24/crypto/crypto_x509.h +140 -0
  194. package/src/headers/24/data.h +148 -0
  195. package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
  196. package/src/headers/{16 → 24}/debug_utils.h +31 -22
  197. package/src/headers/24/defs.h +254 -0
  198. package/src/headers/24/embedded_data.h +17 -0
  199. package/src/headers/24/encoding_binding.h +60 -0
  200. package/src/headers/24/endpoint.h +421 -0
  201. package/src/headers/{16 → 24}/env-inl.h +198 -540
  202. package/src/headers/24/env.h +1257 -0
  203. package/src/headers/24/env_properties.h +561 -0
  204. package/src/headers/24/fs_permission.h +167 -0
  205. package/src/headers/{16 → 24}/handle_wrap.h +4 -2
  206. package/src/headers/{16 → 24}/histogram-inl.h +34 -15
  207. package/src/headers/24/histogram.h +279 -0
  208. package/src/headers/24/http3.h +44 -0
  209. package/src/headers/{18 → 24}/inspector_agent.h +23 -2
  210. package/src/headers/24/inspector_permission.h +31 -0
  211. package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
  212. package/src/headers/24/io_agent.h +30 -0
  213. package/src/headers/{18 → 24}/js_native_api.h +74 -30
  214. package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
  215. package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
  216. package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
  217. package/src/headers/24/json_parser.h +40 -0
  218. package/src/headers/{18 → 24}/json_utils.h +19 -8
  219. package/src/headers/24/logstream.h +81 -0
  220. package/src/headers/24/main_thread_interface.h +116 -0
  221. package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
  222. package/src/headers/{16 → 24}/memory_tracker.h +58 -9
  223. package/src/headers/24/module_wrap.h +229 -0
  224. package/src/headers/24/ncrypto.h +1625 -0
  225. package/src/headers/24/network_agent.h +118 -0
  226. package/src/headers/24/network_inspector.h +45 -0
  227. package/src/headers/24/network_resource_manager.h +29 -0
  228. package/src/headers/{16 → 24}/node.h +560 -72
  229. package/src/headers/24/node_api.h +269 -0
  230. package/src/headers/24/node_api_internals.h +46 -0
  231. package/src/headers/{16 → 24}/node_api_types.h +13 -11
  232. package/src/headers/24/node_binding.h +163 -0
  233. package/src/headers/{16 → 24}/node_blob.h +46 -78
  234. package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
  235. package/src/headers/{16 → 24}/node_bob.h +2 -6
  236. package/src/headers/{14 → 24}/node_buffer.h +1 -1
  237. package/src/headers/24/node_builtins.h +223 -0
  238. package/src/headers/24/node_config_file.h +65 -0
  239. package/src/headers/{14 → 24}/node_constants.h +3 -5
  240. package/src/headers/24/node_context_data.h +168 -0
  241. package/src/headers/24/node_contextify.h +261 -0
  242. package/src/headers/{18 → 24}/node_crypto.h +7 -2
  243. package/src/headers/24/node_debug.h +25 -0
  244. package/src/headers/24/node_dotenv.h +45 -0
  245. package/src/headers/{16 → 24}/node_errors.h +146 -32
  246. package/src/headers/24/node_exit_code.h +54 -0
  247. package/src/headers/{18 → 24}/node_external_reference.h +44 -22
  248. package/src/headers/{16 → 24}/node_file-inl.h +156 -50
  249. package/src/headers/{18 → 24}/node_file.h +129 -15
  250. package/src/headers/{16 → 24}/node_http2.h +53 -18
  251. package/src/headers/{14 → 24}/node_http2_state.h +35 -25
  252. package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
  253. package/src/headers/{16 → 24}/node_http_common.h +63 -59
  254. package/src/headers/{18 → 24}/node_i18n.h +5 -18
  255. package/src/headers/{16 → 24}/node_internals.h +131 -76
  256. package/src/headers/24/node_json.h +24 -0
  257. package/src/headers/24/node_large_page.h +34 -0
  258. package/src/headers/24/node_locks.h +180 -0
  259. package/src/headers/{14 → 24}/node_main_instance.h +15 -44
  260. package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
  261. package/src/headers/{16 → 24}/node_messaging.h +27 -11
  262. package/src/headers/{16 → 24}/node_metadata.h +44 -2
  263. package/src/headers/24/node_modules.h +93 -0
  264. package/src/headers/{16 → 24}/node_options-inl.h +93 -46
  265. package/src/headers/{16 → 24}/node_options.h +251 -63
  266. package/src/headers/{16 → 24}/node_perf.h +6 -25
  267. package/src/headers/{16 → 24}/node_perf_common.h +23 -10
  268. package/src/headers/24/node_platform.h +286 -0
  269. package/src/headers/24/node_process.h +111 -0
  270. package/src/headers/24/node_realm-inl.h +153 -0
  271. package/src/headers/24/node_realm.h +236 -0
  272. package/src/headers/{18 → 24}/node_report.h +13 -17
  273. package/src/headers/{18 → 24}/node_revert.h +3 -3
  274. package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
  275. package/src/headers/24/node_sea.h +74 -0
  276. package/src/headers/24/node_shadow_realm.h +46 -0
  277. package/src/headers/24/node_snapshot_builder.h +57 -0
  278. package/src/headers/24/node_snapshotable.h +174 -0
  279. package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
  280. package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
  281. package/src/headers/24/node_sqlite.h +270 -0
  282. package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
  283. package/src/headers/24/node_string.h +101 -0
  284. package/src/headers/24/node_task_runner.h +92 -0
  285. package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
  286. package/src/headers/24/node_threadsafe_cow.h +105 -0
  287. package/src/headers/24/node_union_bytes.h +81 -0
  288. package/src/headers/24/node_url.h +101 -0
  289. package/src/headers/24/node_url_pattern.h +118 -0
  290. package/src/headers/24/node_v8.h +77 -0
  291. package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
  292. package/src/headers/{18 → 24}/node_version.h +18 -6
  293. package/src/headers/24/node_wasi.h +185 -0
  294. package/src/headers/24/node_wasm_web_api.h +55 -0
  295. package/src/headers/{18 → 24}/node_watchdog.h +2 -0
  296. package/src/headers/24/node_webstorage.h +60 -0
  297. package/src/headers/{16 → 24}/node_worker.h +24 -10
  298. package/src/headers/24/packet.h +155 -0
  299. package/src/headers/24/path.h +33 -0
  300. package/src/headers/24/permission/addon_permission.h +31 -0
  301. package/src/headers/24/permission/child_process_permission.h +31 -0
  302. package/src/headers/24/permission/fs_permission.h +167 -0
  303. package/src/headers/24/permission/inspector_permission.h +31 -0
  304. package/src/headers/24/permission/permission.h +100 -0
  305. package/src/headers/24/permission/permission_base.h +65 -0
  306. package/src/headers/24/permission/wasi_permission.h +31 -0
  307. package/src/headers/24/permission/worker_permission.h +31 -0
  308. package/src/headers/24/permission.h +100 -0
  309. package/src/headers/24/permission_base.h +65 -0
  310. package/src/headers/24/preferredaddress.h +72 -0
  311. package/src/headers/24/protocol_helper.h +27 -0
  312. package/src/headers/24/queue.h +306 -0
  313. package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
  314. package/src/headers/{16 → 24}/req_wrap.h +3 -1
  315. package/src/headers/24/runtime_agent.h +41 -0
  316. package/src/headers/24/session.h +528 -0
  317. package/src/headers/24/sessionticket.h +108 -0
  318. package/src/headers/{18 → 24}/spawn_sync.h +9 -8
  319. package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
  320. package/src/headers/{16 → 24}/stream_base.h +43 -19
  321. package/src/headers/{16 → 24}/stream_pipe.h +7 -4
  322. package/src/headers/{18 → 24}/stream_wrap.h +2 -3
  323. package/src/headers/24/streams.h +370 -0
  324. package/src/headers/{16 → 24}/string_bytes.h +8 -21
  325. package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
  326. package/src/headers/{18 → 24}/string_decoder.h +0 -1
  327. package/src/headers/24/target_agent.h +75 -0
  328. package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
  329. package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
  330. package/src/headers/24/timer_wrap-inl.h +32 -0
  331. package/src/headers/{16 → 24}/timer_wrap.h +7 -4
  332. package/src/headers/24/timers.h +75 -0
  333. package/src/headers/24/tlscontext.h +228 -0
  334. package/src/headers/24/tokens.h +256 -0
  335. package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
  336. package/src/headers/24/traced_value.h +129 -0
  337. package/src/headers/24/tracing_agent.h +43 -0
  338. package/src/headers/24/transportparams.h +166 -0
  339. package/src/headers/{16 → 24}/tty_wrap.h +0 -1
  340. package/src/headers/{18 → 24}/udp_wrap.h +8 -5
  341. package/src/headers/24/undici_version.h +6 -0
  342. package/src/headers/{16 → 24}/util-inl.h +267 -131
  343. package/src/headers/{16 → 24}/util.h +338 -146
  344. package/src/headers/24/v8-external-memory-accounter.h +60 -0
  345. package/src/headers/24/v8-fast-api-calls.h +819 -0
  346. package/src/headers/24/v8-inspector.h +426 -0
  347. package/src/headers/24/wasi_permission.h +31 -0
  348. package/src/headers/24/worker_agent.h +40 -0
  349. package/src/headers/24/worker_inspector.h +124 -0
  350. package/src/headers/24/worker_permission.h +31 -0
  351. package/src/headers/24/zlib_version.h +6 -0
  352. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  353. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  354. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  355. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  356. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  357. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  358. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  359. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  360. package/src/headers/14/aliased_buffer.h +0 -263
  361. package/src/headers/14/allocated_buffer-inl.h +0 -110
  362. package/src/headers/14/allocated_buffer.h +0 -73
  363. package/src/headers/14/async_wrap.h +0 -230
  364. package/src/headers/14/base64.h +0 -183
  365. package/src/headers/14/base_object-inl.h +0 -371
  366. package/src/headers/14/base_object.h +0 -281
  367. package/src/headers/14/callback_queue-inl.h +0 -97
  368. package/src/headers/14/callback_queue.h +0 -78
  369. package/src/headers/14/debug_utils.h +0 -181
  370. package/src/headers/14/env.h +0 -1388
  371. package/src/headers/14/handle_wrap.h +0 -117
  372. package/src/headers/14/histogram-inl.h +0 -83
  373. package/src/headers/14/histogram.h +0 -98
  374. package/src/headers/14/inspector_agent.h +0 -149
  375. package/src/headers/14/inspector_profiler.h +0 -137
  376. package/src/headers/14/js_native_api.h +0 -544
  377. package/src/headers/14/js_native_api_types.h +0 -143
  378. package/src/headers/14/js_native_api_v8.h +0 -301
  379. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  380. package/src/headers/14/json_utils.h +0 -161
  381. package/src/headers/14/memory_tracker-inl.h +0 -355
  382. package/src/headers/14/module_wrap.h +0 -99
  383. package/src/headers/14/node.h +0 -1032
  384. package/src/headers/14/node_api.h +0 -255
  385. package/src/headers/14/node_api_types.h +0 -44
  386. package/src/headers/14/node_binding.h +0 -99
  387. package/src/headers/14/node_context_data.h +0 -44
  388. package/src/headers/14/node_contextify.h +0 -161
  389. package/src/headers/14/node_crypto.h +0 -865
  390. package/src/headers/14/node_crypto_bio.h +0 -195
  391. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  392. package/src/headers/14/node_crypto_clienthello.h +0 -132
  393. package/src/headers/14/node_crypto_common.h +0 -138
  394. package/src/headers/14/node_crypto_groups.h +0 -415
  395. package/src/headers/14/node_dtrace.h +0 -86
  396. package/src/headers/14/node_errors.h +0 -214
  397. package/src/headers/14/node_file-inl.h +0 -306
  398. package/src/headers/14/node_file.h +0 -417
  399. package/src/headers/14/node_http2.h +0 -1191
  400. package/src/headers/14/node_http_common-inl.h +0 -194
  401. package/src/headers/14/node_http_common.h +0 -529
  402. package/src/headers/14/node_i18n.h +0 -144
  403. package/src/headers/14/node_internals.h +0 -405
  404. package/src/headers/14/node_mem.h +0 -45
  405. package/src/headers/14/node_messaging.h +0 -303
  406. package/src/headers/14/node_metadata.h +0 -109
  407. package/src/headers/14/node_mutex.h +0 -247
  408. package/src/headers/14/node_native_module.h +0 -101
  409. package/src/headers/14/node_native_module_env.h +0 -66
  410. package/src/headers/14/node_options-inl.h +0 -451
  411. package/src/headers/14/node_options.h +0 -481
  412. package/src/headers/14/node_perf.h +0 -181
  413. package/src/headers/14/node_perf_common.h +0 -97
  414. package/src/headers/14/node_platform.h +0 -189
  415. package/src/headers/14/node_process.h +0 -40
  416. package/src/headers/14/node_report.h +0 -47
  417. package/src/headers/14/node_revert.h +0 -72
  418. package/src/headers/14/node_root_certs.h +0 -3458
  419. package/src/headers/14/node_sockaddr-inl.h +0 -170
  420. package/src/headers/14/node_sockaddr.h +0 -123
  421. package/src/headers/14/node_stat_watcher.h +0 -70
  422. package/src/headers/14/node_union_bytes.h +0 -103
  423. package/src/headers/14/node_url.h +0 -188
  424. package/src/headers/14/node_version.h +0 -98
  425. package/src/headers/14/node_wasi.h +0 -108
  426. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  427. package/src/headers/14/node_win32_etw_provider.h +0 -99
  428. package/src/headers/14/node_worker.h +0 -141
  429. package/src/headers/14/pipe_wrap.h +0 -78
  430. package/src/headers/14/req_wrap-inl.h +0 -170
  431. package/src/headers/14/req_wrap.h +0 -77
  432. package/src/headers/14/stream_base-inl.h +0 -275
  433. package/src/headers/14/stream_base.h +0 -434
  434. package/src/headers/14/stream_pipe.h +0 -73
  435. package/src/headers/14/stream_wrap.h +0 -130
  436. package/src/headers/14/string_bytes.h +0 -129
  437. package/src/headers/14/string_decoder.h +0 -50
  438. package/src/headers/14/string_search.h +0 -638
  439. package/src/headers/14/tcp_wrap.h +0 -101
  440. package/src/headers/14/tls_wrap.h +0 -222
  441. package/src/headers/14/tracing/agent.h +0 -195
  442. package/src/headers/14/tracing/traced_value.h +0 -70
  443. package/src/headers/14/tty_wrap.h +0 -64
  444. package/src/headers/14/udp_wrap.h +0 -227
  445. package/src/headers/14/util-inl.h +0 -566
  446. package/src/headers/14/util.h +0 -804
  447. package/src/headers/14/v8abbr.h +0 -124
  448. package/src/headers/16/aliased_buffer.h +0 -315
  449. package/src/headers/16/allocated_buffer-inl.h +0 -110
  450. package/src/headers/16/allocated_buffer.h +0 -73
  451. package/src/headers/16/async_wrap-inl.h +0 -94
  452. package/src/headers/16/base64-inl.h +0 -189
  453. package/src/headers/16/base64.h +0 -69
  454. package/src/headers/16/crypto/crypto_aes.h +0 -89
  455. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  456. package/src/headers/16/crypto/crypto_common.h +0 -187
  457. package/src/headers/16/crypto/crypto_dh.h +0 -157
  458. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  459. package/src/headers/16/crypto/crypto_ec.h +0 -169
  460. package/src/headers/16/crypto/crypto_groups.h +0 -415
  461. package/src/headers/16/crypto/crypto_hash.h +0 -89
  462. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  463. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  464. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  465. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  466. package/src/headers/16/crypto/crypto_random.h +0 -130
  467. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  468. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  469. package/src/headers/16/crypto/crypto_sig.h +0 -167
  470. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  471. package/src/headers/16/crypto/crypto_timing.h +0 -20
  472. package/src/headers/16/crypto/crypto_x509.h +0 -141
  473. package/src/headers/16/env.h +0 -1629
  474. package/src/headers/16/histogram.h +0 -216
  475. package/src/headers/16/js_native_api.h +0 -561
  476. package/src/headers/16/js_native_api_v8.h +0 -451
  477. package/src/headers/16/node.d +0 -315
  478. package/src/headers/16/node.stp +0 -146
  479. package/src/headers/16/node_api.h +0 -275
  480. package/src/headers/16/node_api_internals.h +0 -30
  481. package/src/headers/16/node_binding.h +0 -99
  482. package/src/headers/16/node_buffer.h +0 -92
  483. package/src/headers/16/node_constants.h +0 -84
  484. package/src/headers/16/node_context_data.h +0 -44
  485. package/src/headers/16/node_contextify.h +0 -196
  486. package/src/headers/16/node_dtrace.h +0 -86
  487. package/src/headers/16/node_external_reference.h +0 -129
  488. package/src/headers/16/node_main_instance.h +0 -103
  489. package/src/headers/16/node_native_module.h +0 -101
  490. package/src/headers/16/node_native_module_env.h +0 -68
  491. package/src/headers/16/node_platform.h +0 -192
  492. package/src/headers/16/node_process.h +0 -43
  493. package/src/headers/16/node_provider.d +0 -80
  494. package/src/headers/16/node_snapshotable.h +0 -137
  495. package/src/headers/16/node_union_bytes.h +0 -103
  496. package/src/headers/16/node_url.h +0 -205
  497. package/src/headers/16/node_v8.h +0 -41
  498. package/src/headers/16/node_v8_platform-inl.h +0 -194
  499. package/src/headers/16/node_wasi.h +0 -108
  500. package/src/headers/16/node_watchdog.h +0 -152
  501. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  502. package/src/headers/16/node_win32_etw_provider.h +0 -99
  503. package/src/headers/16/spawn_sync.h +0 -242
  504. package/src/headers/16/string_decoder-inl.h +0 -37
  505. package/src/headers/16/string_search.h +0 -638
  506. package/src/headers/16/threadpoolwork-inl.h +0 -57
  507. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  508. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  509. package/src/headers/16/tracing/trace_event.h +0 -720
  510. package/src/headers/16/tracing/traced_value.h +0 -70
  511. package/src/headers/16/v8abbr.h +0 -123
  512. package/src/headers/16/v8ustack.d +0 -695
  513. package/src/headers/18/aliased_buffer.h +0 -315
  514. package/src/headers/18/aliased_struct-inl.h +0 -54
  515. package/src/headers/18/aliased_struct.h +0 -63
  516. package/src/headers/18/base64-inl.h +0 -189
  517. package/src/headers/18/base64.h +0 -69
  518. package/src/headers/18/connect_wrap.h +0 -26
  519. package/src/headers/18/connection_wrap.h +0 -30
  520. package/src/headers/18/crypto/crypto_aes.h +0 -89
  521. package/src/headers/18/crypto/crypto_bio.h +0 -194
  522. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  523. package/src/headers/18/crypto/crypto_common.h +0 -151
  524. package/src/headers/18/crypto/crypto_groups.h +0 -415
  525. package/src/headers/18/crypto/crypto_x509.h +0 -143
  526. package/src/headers/18/debug_utils-inl.h +0 -223
  527. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  528. package/src/headers/18/env-inl.h +0 -1308
  529. package/src/headers/18/env.h +0 -1667
  530. package/src/headers/18/inspector_io.h +0 -78
  531. package/src/headers/18/inspector_socket.h +0 -60
  532. package/src/headers/18/inspector_socket_server.h +0 -110
  533. package/src/headers/18/js_stream.h +0 -52
  534. package/src/headers/18/memory_tracker.h +0 -284
  535. package/src/headers/18/module_wrap.h +0 -116
  536. package/src/headers/18/node_binding.h +0 -99
  537. package/src/headers/18/node_context_data.h +0 -44
  538. package/src/headers/18/node_contextify.h +0 -196
  539. package/src/headers/18/node_dir.h +0 -52
  540. package/src/headers/18/node_dtrace.h +0 -86
  541. package/src/headers/18/node_http2_state.h +0 -149
  542. package/src/headers/18/node_mem-inl.h +0 -112
  543. package/src/headers/18/node_native_module.h +0 -109
  544. package/src/headers/18/node_native_module_env.h +0 -71
  545. package/src/headers/18/node_object_wrap.h +0 -132
  546. package/src/headers/18/node_snapshot_builder.h +0 -43
  547. package/src/headers/18/node_snapshotable.h +0 -130
  548. package/src/headers/18/node_union_bytes.h +0 -103
  549. package/src/headers/18/node_url.h +0 -205
  550. package/src/headers/18/node_v8.h +0 -41
  551. package/src/headers/18/node_wasi.h +0 -108
  552. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  553. package/src/headers/18/node_win32_etw_provider.h +0 -99
  554. package/src/headers/18/string_search.h +0 -638
  555. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  556. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  557. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  558. package/src/headers/18/tracing/traced_value.h +0 -70
  559. package/src/headers/18/v8abbr.h +0 -123
  560. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  561. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  562. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  563. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  564. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  565. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  566. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  567. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  568. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  569. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  570. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  571. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  572. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  573. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  574. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  575. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  576. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  577. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  578. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  579. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  580. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  581. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  582. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  583. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  584. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  585. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
  586. /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
  587. /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
  588. /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
  589. /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
  590. /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
  591. /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
  592. /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
  593. /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
  594. /package/src/headers/{16 → 24}/inspector_io.h +0 -0
  595. /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
  596. /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
  597. /package/src/headers/{16 → 24}/js_stream.h +0 -0
  598. /package/src/headers/{16 → 24}/node_dir.h +0 -0
  599. /package/src/headers/{18 → 24}/node_mem.h +0 -0
  600. /package/src/headers/{18 → 24}/node_mutex.h +0 -0
  601. /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
  602. /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
  603. /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
  604. /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
  605. /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
  606. /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
@@ -0,0 +1,168 @@
1
+ #ifndef SRC_NODE_CONTEXT_DATA_H_
2
+ #define SRC_NODE_CONTEXT_DATA_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "util.h"
7
+ #include "v8.h"
8
+
9
+ namespace node {
10
+
11
+ // Pick an index that's hopefully out of the way when we're embedded inside
12
+ // another application. Performance-wise or memory-wise it doesn't matter:
13
+ // Context::SetAlignedPointerInEmbedderData() is backed by a FixedArray,
14
+ // worst case we pay a one-time penalty for resizing the array.
15
+ #ifndef NODE_CONTEXT_EMBEDDER_DATA_INDEX
16
+ #define NODE_CONTEXT_EMBEDDER_DATA_INDEX 32
17
+ #endif
18
+
19
+ #ifndef NODE_CONTEXT_SANDBOX_OBJECT_INDEX
20
+ #define NODE_CONTEXT_SANDBOX_OBJECT_INDEX 33
21
+ #endif
22
+
23
+ #ifndef NODE_CONTEXT_ALLOW_WASM_CODE_GENERATION_INDEX
24
+ #define NODE_CONTEXT_ALLOW_WASM_CODE_GENERATION_INDEX 34
25
+ #endif
26
+
27
+ #ifndef NODE_BINDING_DATA_STORE_INDEX
28
+ #define NODE_BINDING_DATA_STORE_INDEX 35
29
+ #endif
30
+
31
+ #ifndef NODE_CONTEXT_ALLOW_CODE_GENERATION_FROM_STRINGS_INDEX
32
+ #define NODE_CONTEXT_ALLOW_CODE_GENERATION_FROM_STRINGS_INDEX 36
33
+ #endif
34
+
35
+ #ifndef NODE_CONTEXT_CONTEXTIFY_CONTEXT_INDEX
36
+ #define NODE_CONTEXT_CONTEXTIFY_CONTEXT_INDEX 37
37
+ #endif
38
+
39
+ #ifndef NODE_CONTEXT_REALM_INDEX
40
+ #define NODE_CONTEXT_REALM_INDEX 38
41
+ #endif
42
+
43
+ // NODE_CONTEXT_TAG must be greater than any embedder indexes so that a single
44
+ // check on the number of embedder data fields can assure the presence of all
45
+ // embedder indexes.
46
+ #ifndef NODE_CONTEXT_TAG
47
+ #define NODE_CONTEXT_TAG 39
48
+ #endif
49
+
50
+ /**
51
+ * These are indexes used to set Node.js-specific data in the V8 contexts
52
+ * via v8::Context::SetAlignedPointerInEmbedderData() (for pointers) and
53
+ * v8::Context::SetEmbedderData() (for v8::Values).
54
+ *
55
+ * There are five types of contexts in Node.js:
56
+ * 1. Default V8 context, with nothing Node.js-specific. This is normally only
57
+ * created by the embedders that uses v8::Context APIs directly and is not
58
+ * available through the Node.js JS APIs. Its context snapshot in the
59
+ * built-in v8 startup snapshot is stored using
60
+ * v8::SnapshotCreator::SetDefaultContext() - effectively at index 0.
61
+ * 2. Default Node.js main context. When Node.js is launched typically there is
62
+ * a main thread on which a main node::Environment is created. The
63
+ * Environment is associated with its own v8::Isolate (env->isolate()) and a
64
+ * main v8::Context (env->context()). The corresponding data structure is
65
+ * node::NodeMainInstance and the Environment is created in
66
+ * node::NodeMainInstance::Run(). Its context snapshot in the built-in V8
67
+ * startup snapshot is stored at node::SnapshotData::kNodeMainContextIndex.
68
+ * 3. Node.js worker context. When a Worker instance is created via
69
+ * new worker_threads.Worker(), it gets its own OS thread, its
70
+ * own node::Environment, its own v8::Isolate and its own v8::Context.
71
+ * The corresponding data structure is node::Worker and the Environment
72
+ * is created in node::Worker::Run().
73
+ * Its context snapshot in the built-in V8 startup snapshot is stored at
74
+ * node::SnapshotData::kNodeBaseContextIndex.
75
+ * 4. Contextified vm context: When a contextified context is created via
76
+ * vm.createContext() or other related vm APIs, the vm.Context instance
77
+ * gets its own v8::Context. It shares the thread, the v8::Isolate and
78
+ * the node::Environment with the context where the vm APIs are called.
79
+ * The corresponding data structure is node::ContextifyContext and
80
+ * the initialization code is in node::ContextifyContext::New().
81
+ * Its context snapshot in the built-in V8 startup snapshot is stored at
82
+ * node::SnapshotData::kNodeVMContextIndex.
83
+ * 5. ShadowRealm context: When a JS ShadowRealm is created via new ShadowRealm,
84
+ * it gets its own v8::Context. It also shares the thread, the v8::Isolate
85
+ * and the node::Environment with the context where the ShadowRealm
86
+ * constructor is called. The corresponding data structure is
87
+ * node::ShadowRealm and the initialization code is in
88
+ * node::ShadowRealm::New().
89
+ */
90
+ enum ContextEmbedderIndex {
91
+ // Pointer to the node::Environment associated with the context. Only set for
92
+ // context type 2-5. Used by Environment::GetCurrent(context) to retrieve
93
+ // the node::Environment associated with any Node.js context in the
94
+ // V8 callbacks.
95
+ kEnvironment = NODE_CONTEXT_EMBEDDER_DATA_INDEX,
96
+ // A v8::Value which is the sandbox object used to create the contextified vm
97
+ // context. For example the first argument of vm.createContext().
98
+ // Only set for context type 4 and used in ContextifyContext methods.
99
+ kSandboxObject = NODE_CONTEXT_SANDBOX_OBJECT_INDEX,
100
+ // A v8::Value indicating whether the context allows WebAssembly code
101
+ // generation.
102
+ // Only set for context type 2-5, and for them the default is v8::True.
103
+ // For context type 4 it's configurable via options.codeGeneration.wasm in the
104
+ // vm APIs. Used in the default v8::AllowWasmCodeGenerationCallback.
105
+ kAllowWasmCodeGeneration = NODE_CONTEXT_ALLOW_WASM_CODE_GENERATION_INDEX,
106
+ // A v8::Value indicating whether the context allows code generation via
107
+ // eval() or new Function().
108
+ // Only set for context type 2-5, and for them the default is v8::True.
109
+ // For context type 4 it's configurable via options.codeGeneration.strings in
110
+ // the
111
+ // vm APIs. Used in the default v8::AllowCodeGenerationFromStringsCallback.
112
+ kAllowCodeGenerationFromStrings =
113
+ NODE_CONTEXT_ALLOW_CODE_GENERATION_FROM_STRINGS_INDEX,
114
+ // Pointer to the node::ContextifyContext associated with vm.Contexts.
115
+ // Only set for context type 4. Used by ContextifyContext::Get() to get
116
+ // to the ContextifyContext from the property interceptors.
117
+ kContextifyContext = NODE_CONTEXT_CONTEXTIFY_CONTEXT_INDEX,
118
+ // Pointer to the node::Realm associated with the context.
119
+ // Only set for context type 2-3 and 5. For context type 2-3, it points to a
120
+ // node::PrincipalRealm. For context type 5 it points to a node::ShadowRealm.
121
+ // Used by Realm::GetCurrent(context) to retrieve the associated node::Realm
122
+ // with any Node.js context in the V8 callbacks.
123
+ kRealm = NODE_CONTEXT_REALM_INDEX,
124
+ // Pointer to a constant address which is
125
+ // node::ContextEmbedderTag::kNodeContextTagPtr.
126
+ // Only set for context type 2-5. Used by ContextEmbedderTag::IsNodeContext()
127
+ // to check whether a context is a Node.js context.
128
+ kContextTag = NODE_CONTEXT_TAG,
129
+ };
130
+
131
+ class ContextEmbedderTag {
132
+ public:
133
+ static inline void TagNodeContext(v8::Local<v8::Context> context) {
134
+ // Used by ContextEmbedderTag::IsNodeContext to know that we are on a node
135
+ // context.
136
+ context->SetAlignedPointerInEmbedderData(
137
+ ContextEmbedderIndex::kContextTag,
138
+ ContextEmbedderTag::kNodeContextTagPtr);
139
+ }
140
+
141
+ static inline bool IsNodeContext(v8::Local<v8::Context> context) {
142
+ if (context.IsEmpty()) [[unlikely]] {
143
+ return false;
144
+ }
145
+ if (context->GetNumberOfEmbedderDataFields() <=
146
+ ContextEmbedderIndex::kContextTag) [[unlikely]] {
147
+ return false;
148
+ }
149
+ if (context->GetAlignedPointerFromEmbedderData(
150
+ ContextEmbedderIndex::kContextTag) !=
151
+ ContextEmbedderTag::kNodeContextTagPtr) [[unlikely]] {
152
+ return false;
153
+ }
154
+ return true;
155
+ }
156
+
157
+ private:
158
+ static void* const kNodeContextTagPtr;
159
+ static int const kNodeContextTag;
160
+
161
+ ContextEmbedderTag() = delete;
162
+ };
163
+
164
+ } // namespace node
165
+
166
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
167
+
168
+ #endif // SRC_NODE_CONTEXT_DATA_H_
@@ -0,0 +1,261 @@
1
+ #ifndef SRC_NODE_CONTEXTIFY_H_
2
+ #define SRC_NODE_CONTEXTIFY_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "base_object-inl.h"
7
+ #include "cppgc_helpers-inl.h"
8
+ #include "node_context_data.h"
9
+ #include "node_errors.h"
10
+
11
+ namespace node {
12
+ class ExternalReferenceRegistry;
13
+
14
+ namespace contextify {
15
+
16
+ struct ContextOptions {
17
+ v8::Local<v8::String> name;
18
+ v8::Local<v8::String> origin;
19
+ v8::Local<v8::Boolean> allow_code_gen_strings;
20
+ v8::Local<v8::Boolean> allow_code_gen_wasm;
21
+ std::unique_ptr<v8::MicrotaskQueue> own_microtask_queue;
22
+ v8::Local<v8::Symbol> host_defined_options_id;
23
+ bool vanilla = false;
24
+ };
25
+
26
+ /**
27
+ * The memory management of a vm context is as follows:
28
+ *
29
+ * user code
30
+ * │
31
+ * As global proxy or ▼
32
+ * ┌──────────────┐ kSandboxObject embedder data ┌────────────────┐
33
+ * ┌─► │ V8 Context │────────────────────────────────►│ Wrapper holder │
34
+ * │ └──────────────┘ └───────┬────────┘
35
+ * │ ▲ Object constructor/creation context │
36
+ * │ │ │
37
+ * │ ┌──────┴────────────┐ contextify_context_private_symbol │
38
+ * │ │ ContextifyContext │◄────────────────────────────────────┘
39
+ * │ │ JS Wrapper │◄──────────► ┌─────────────────────────┐
40
+ * │ └───────────────────┘ cppgc │ node::ContextifyContext │
41
+ * │ │ C++ Object │
42
+ * └──────────────────────────────────► └─────────────────────────┘
43
+ * v8::TracedReference / ContextEmbedderIndex::kContextifyContext
44
+ *
45
+ * There are two possibilities for the "wrapper holder":
46
+ *
47
+ * 1. When vm.constants.DONT_CONTEXTIFY is used, the wrapper holder is the V8
48
+ * context's global proxy object
49
+ * 2. Otherwise it's the arbitrary "sandbox object" that users pass into
50
+ * vm.createContext() or a new empty object created internally if they pass
51
+ * undefined.
52
+ *
53
+ * In 2, the global object of the new V8 context is created using
54
+ * global_object_template with interceptors that perform any requested
55
+ * operations on the global object in the context first on the sandbox object
56
+ * living outside of the new context, then fall back to the global proxy of the
57
+ * new context.
58
+ *
59
+ * It's critical for the user-accessible wrapper holder to keep the
60
+ * ContextifyContext wrapper alive via contextify_context_private_symbol
61
+ * so that the V8 context is always available to the user while they still
62
+ * hold the vm "context" object alive.
63
+ *
64
+ * It's also critical for the V8 context to keep the wrapper holder
65
+ * (specifically, the "sandbox object" if users pass one) as well as the
66
+ * node::ContextifyContext C++ object alive, so that when the code
67
+ * runs inside the object and accesses the global object, the interceptors
68
+ * can still access the "sandbox object" and perform operations
69
+ * on them, even if users already relinquish access to the outer
70
+ * "sandbox object".
71
+ *
72
+ * The v8::TracedReference and the ContextEmbedderIndex::kContextifyContext
73
+ * slot in the context only act as shortcuts between
74
+ * the node::ContextifyContext C++ object and the V8 context.
75
+ */
76
+ class ContextifyContext final : CPPGC_MIXIN(ContextifyContext) {
77
+ public:
78
+ SET_CPPGC_NAME(ContextifyContext)
79
+ void Trace(cppgc::Visitor* visitor) const final;
80
+ SET_NO_MEMORY_INFO()
81
+
82
+ ContextifyContext(Environment* env,
83
+ v8::Local<v8::Object> wrapper,
84
+ v8::Local<v8::Context> v8_context,
85
+ ContextOptions* options);
86
+
87
+ // The destructors don't need to do anything because when the wrapper is
88
+ // going away, the context is already going away or otherwise it would've
89
+ // been holding the wrapper alive, so there's no need to reset the pointers
90
+ // in the context. Also, any global handles to the context would've been
91
+ // empty at this point, and the per-Environment context tracking code is
92
+ // capable of dealing with empty handles from contexts purged elsewhere.
93
+ ~ContextifyContext() = default;
94
+
95
+ static v8::MaybeLocal<v8::Context> CreateV8Context(
96
+ v8::Isolate* isolate,
97
+ v8::Local<v8::ObjectTemplate> object_template,
98
+ const SnapshotData* snapshot_data,
99
+ v8::MicrotaskQueue* queue);
100
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
101
+ v8::Local<v8::ObjectTemplate> target);
102
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
103
+
104
+ static ContextifyContext* ContextFromContextifiedSandbox(
105
+ Environment* env, const v8::Local<v8::Object>& wrapper_holder);
106
+
107
+ inline v8::Local<v8::Context> context() const {
108
+ return context_.Get(env()->isolate());
109
+ }
110
+
111
+ inline v8::Local<v8::Object> global_proxy() const {
112
+ return context()->Global();
113
+ }
114
+
115
+ inline v8::Local<v8::Object> sandbox() const {
116
+ // Only vanilla contexts have undefined sandboxes. sandbox() is only used by
117
+ // interceptors who are not supposed to be called on vanilla contexts.
118
+ v8::Local<v8::Value> result =
119
+ context()->GetEmbedderData(ContextEmbedderIndex::kSandboxObject);
120
+ CHECK(!result->IsUndefined());
121
+ return result.As<v8::Object>();
122
+ }
123
+
124
+ inline v8::MicrotaskQueue* microtask_queue() const {
125
+ return microtask_queue_.get();
126
+ }
127
+
128
+ template <typename T>
129
+ static ContextifyContext* Get(const v8::PropertyCallbackInfo<T>& args);
130
+ static ContextifyContext* Get(v8::Local<v8::Object> object);
131
+
132
+ static void InitializeGlobalTemplates(IsolateData* isolate_data);
133
+
134
+ private:
135
+ static ContextifyContext* New(Environment* env,
136
+ v8::Local<v8::Object> sandbox_obj,
137
+ ContextOptions* options);
138
+ // Initialize a context created from CreateV8Context()
139
+ static ContextifyContext* New(v8::Local<v8::Context> ctx,
140
+ Environment* env,
141
+ v8::Local<v8::Object> sandbox_obj,
142
+ ContextOptions* options);
143
+
144
+ static bool IsStillInitializing(const ContextifyContext* ctx);
145
+ static void MakeContext(const v8::FunctionCallbackInfo<v8::Value>& args);
146
+ static void IsContext(const v8::FunctionCallbackInfo<v8::Value>& args);
147
+ static v8::Intercepted PropertyQueryCallback(
148
+ v8::Local<v8::Name> property,
149
+ const v8::PropertyCallbackInfo<v8::Integer>& args);
150
+ static v8::Intercepted PropertyGetterCallback(
151
+ v8::Local<v8::Name> property,
152
+ const v8::PropertyCallbackInfo<v8::Value>& args);
153
+ static v8::Intercepted PropertySetterCallback(
154
+ v8::Local<v8::Name> property,
155
+ v8::Local<v8::Value> value,
156
+ const v8::PropertyCallbackInfo<void>& args);
157
+ static v8::Intercepted PropertyDescriptorCallback(
158
+ v8::Local<v8::Name> property,
159
+ const v8::PropertyCallbackInfo<v8::Value>& args);
160
+ static v8::Intercepted PropertyDefinerCallback(
161
+ v8::Local<v8::Name> property,
162
+ const v8::PropertyDescriptor& desc,
163
+ const v8::PropertyCallbackInfo<void>& args);
164
+ static v8::Intercepted PropertyDeleterCallback(
165
+ v8::Local<v8::Name> property,
166
+ const v8::PropertyCallbackInfo<v8::Boolean>& args);
167
+ static void PropertyEnumeratorCallback(
168
+ const v8::PropertyCallbackInfo<v8::Array>& args);
169
+ static v8::Intercepted IndexedPropertyQueryCallback(
170
+ uint32_t index, const v8::PropertyCallbackInfo<v8::Integer>& args);
171
+ static v8::Intercepted IndexedPropertyGetterCallback(
172
+ uint32_t index, const v8::PropertyCallbackInfo<v8::Value>& args);
173
+ static v8::Intercepted IndexedPropertySetterCallback(
174
+ uint32_t index,
175
+ v8::Local<v8::Value> value,
176
+ const v8::PropertyCallbackInfo<void>& args);
177
+ static v8::Intercepted IndexedPropertyDescriptorCallback(
178
+ uint32_t index, const v8::PropertyCallbackInfo<v8::Value>& args);
179
+ static v8::Intercepted IndexedPropertyDefinerCallback(
180
+ uint32_t index,
181
+ const v8::PropertyDescriptor& desc,
182
+ const v8::PropertyCallbackInfo<void>& args);
183
+ static v8::Intercepted IndexedPropertyDeleterCallback(
184
+ uint32_t index, const v8::PropertyCallbackInfo<v8::Boolean>& args);
185
+ static void IndexedPropertyEnumeratorCallback(
186
+ const v8::PropertyCallbackInfo<v8::Array>& args);
187
+
188
+ v8::TracedReference<v8::Context> context_;
189
+ std::unique_ptr<v8::MicrotaskQueue> microtask_queue_;
190
+ };
191
+
192
+ class ContextifyScript final : CPPGC_MIXIN(ContextifyScript) {
193
+ public:
194
+ SET_CPPGC_NAME(ContextifyScript)
195
+ void Trace(cppgc::Visitor* visitor) const final;
196
+ SET_NO_MEMORY_INFO()
197
+
198
+ ContextifyScript(Environment* env, v8::Local<v8::Object> object);
199
+ ~ContextifyScript() override;
200
+
201
+ v8::Local<v8::UnboundScript> unbound_script() const;
202
+ void set_unbound_script(v8::Local<v8::UnboundScript>);
203
+
204
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
205
+ v8::Local<v8::ObjectTemplate> target);
206
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
207
+ static ContextifyScript* New(Environment* env, v8::Local<v8::Object> object);
208
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
209
+ static bool InstanceOf(Environment* env, const v8::Local<v8::Value>& args);
210
+ static void CreateCachedData(const v8::FunctionCallbackInfo<v8::Value>& args);
211
+ static void RunInContext(const v8::FunctionCallbackInfo<v8::Value>& args);
212
+ static bool EvalMachine(v8::Local<v8::Context> context,
213
+ Environment* env,
214
+ const int64_t timeout,
215
+ const bool display_errors,
216
+ const bool break_on_sigint,
217
+ const bool break_on_first_line,
218
+ v8::MicrotaskQueue* microtask_queue,
219
+ const v8::FunctionCallbackInfo<v8::Value>& args);
220
+
221
+ private:
222
+ v8::TracedReference<v8::UnboundScript> script_;
223
+ };
224
+
225
+ class ContextifyFunction final {
226
+ public:
227
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
228
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
229
+ v8::Local<v8::ObjectTemplate> target);
230
+
231
+ static void CompileFunction(const v8::FunctionCallbackInfo<v8::Value>& args);
232
+ static v8::MaybeLocal<v8::Object> CompileFunctionAndCacheResult(
233
+ Environment* env,
234
+ v8::Local<v8::Context> parsing_context,
235
+ v8::ScriptCompiler::Source* source,
236
+ v8::LocalVector<v8::String> params,
237
+ v8::LocalVector<v8::Object> context_extensions,
238
+ v8::ScriptCompiler::CompileOptions options,
239
+ bool produce_cached_data,
240
+ v8::Local<v8::Symbol> id_symbol,
241
+ const errors::TryCatchScope& try_catch);
242
+
243
+ private:
244
+ ContextifyFunction() = delete;
245
+ ~ContextifyFunction() = delete;
246
+ };
247
+
248
+ v8::Maybe<void> StoreCodeCacheResult(
249
+ Environment* env,
250
+ v8::Local<v8::Object> target,
251
+ v8::ScriptCompiler::CompileOptions compile_options,
252
+ const v8::ScriptCompiler::Source& source,
253
+ bool produce_cached_data,
254
+ std::unique_ptr<v8::ScriptCompiler::CachedData> new_cached_data);
255
+
256
+ } // namespace contextify
257
+ } // namespace node
258
+
259
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
260
+
261
+ #endif // SRC_NODE_CONTEXTIFY_H_
@@ -29,26 +29,31 @@
29
29
  // remains for convenience for any code that still imports it. New
30
30
  // code should include the relevant src/crypto headers directly.
31
31
  #include "crypto/crypto_aes.h"
32
+ #include "crypto/crypto_argon2.h"
32
33
  #include "crypto/crypto_bio.h"
34
+ #include "crypto/crypto_chacha20_poly1305.h"
33
35
  #include "crypto/crypto_cipher.h"
34
36
  #include "crypto/crypto_context.h"
35
37
  #include "crypto/crypto_dh.h"
36
38
  #include "crypto/crypto_dsa.h"
37
39
  #include "crypto/crypto_ec.h"
38
- #include "crypto/crypto_groups.h"
39
40
  #include "crypto/crypto_hash.h"
40
41
  #include "crypto/crypto_hkdf.h"
41
42
  #include "crypto/crypto_hmac.h"
43
+ #if OPENSSL_VERSION_MAJOR >= 3
44
+ #include "crypto/crypto_kem.h"
45
+ #endif
42
46
  #include "crypto/crypto_keygen.h"
43
47
  #include "crypto/crypto_keys.h"
48
+ #include "crypto/crypto_ml_dsa.h"
44
49
  #include "crypto/crypto_pbkdf2.h"
45
50
  #include "crypto/crypto_random.h"
46
51
  #include "crypto/crypto_rsa.h"
47
52
  #include "crypto/crypto_scrypt.h"
48
53
  #include "crypto/crypto_sig.h"
49
54
  #include "crypto/crypto_spkac.h"
50
- #include "crypto/crypto_tls.h"
51
55
  #include "crypto/crypto_timing.h"
56
+ #include "crypto/crypto_tls.h"
52
57
  #include "crypto/crypto_util.h"
53
58
  #include "crypto/crypto_x509.h"
54
59
 
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
4
+
5
+ #ifdef DEBUG
6
+ #include "util.h"
7
+ #endif // DEBUG
8
+
9
+ namespace node {
10
+ namespace debug {
11
+
12
+ #ifdef DEBUG
13
+ void TrackV8FastApiCall(FastStringKey key);
14
+ int GetV8FastApiCallCount(FastStringKey key);
15
+
16
+ #define TRACK_V8_FAST_API_CALL(key) \
17
+ node::debug::TrackV8FastApiCall(FastStringKey(key))
18
+ #else // !DEBUG
19
+ #define TRACK_V8_FAST_API_CALL(key)
20
+ #endif // DEBUG
21
+
22
+ } // namespace debug
23
+ } // namespace node
24
+
25
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
@@ -0,0 +1,45 @@
1
+ #ifndef SRC_NODE_DOTENV_H_
2
+ #define SRC_NODE_DOTENV_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "util-inl.h"
7
+ #include "v8.h"
8
+
9
+ #include <map>
10
+
11
+ namespace node {
12
+
13
+ class Dotenv {
14
+ public:
15
+ enum ParseResult { Valid, FileError, InvalidContent };
16
+ struct env_file_data {
17
+ std::string path;
18
+ bool is_optional;
19
+ };
20
+
21
+ Dotenv() = default;
22
+ Dotenv(const Dotenv& d) = delete;
23
+ Dotenv(Dotenv&& d) noexcept = default;
24
+ Dotenv& operator=(Dotenv&& d) noexcept = default;
25
+ Dotenv& operator=(const Dotenv& d) = delete;
26
+ ~Dotenv() = default;
27
+
28
+ void ParseContent(const std::string_view content);
29
+ ParseResult ParsePath(const std::string_view path);
30
+ void AssignNodeOptionsIfAvailable(std::string* node_options) const;
31
+ v8::Maybe<void> SetEnvironment(Environment* env);
32
+ v8::MaybeLocal<v8::Object> ToObject(Environment* env) const;
33
+
34
+ static std::vector<env_file_data> GetDataFromArgs(
35
+ const std::vector<std::string>& args);
36
+
37
+ private:
38
+ std::map<std::string, std::string> store_;
39
+ };
40
+
41
+ } // namespace node
42
+
43
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
44
+
45
+ #endif // SRC_NODE_DOTENV_H_