@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
@@ -1,10 +1,13 @@
1
1
  #ifndef SRC_NODE_BLOB_H_
2
2
  #define SRC_NODE_BLOB_H_
3
3
 
4
+ #include "v8-function-callback.h"
5
+ #include "v8-template.h"
4
6
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
7
 
6
8
  #include "async_wrap.h"
7
9
  #include "base_object.h"
10
+ #include "dataqueue/queue.h"
8
11
  #include "env.h"
9
12
  #include "memory_tracker.h"
10
13
  #include "node_internals.h"
@@ -18,62 +21,45 @@
18
21
 
19
22
  namespace node {
20
23
 
21
- struct BlobEntry {
22
- std::shared_ptr<v8::BackingStore> store;
23
- size_t length;
24
- size_t offset;
25
- };
26
-
27
24
  class Blob : public BaseObject {
28
25
  public:
29
26
  static void RegisterExternalReferences(
30
27
  ExternalReferenceRegistry* registry);
31
28
 
32
- static void Initialize(
33
- v8::Local<v8::Object> target,
34
- v8::Local<v8::Value> unused,
35
- v8::Local<v8::Context> context,
36
- void* priv);
29
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
30
+ v8::Local<v8::ObjectTemplate> target);
31
+ static void CreatePerContextProperties(v8::Local<v8::Object> target,
32
+ v8::Local<v8::Value> unused,
33
+ v8::Local<v8::Context> context,
34
+ void* priv);
37
35
 
38
36
  static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
39
- static void ToArrayBuffer(const v8::FunctionCallbackInfo<v8::Value>& args);
37
+ static void GetReader(const v8::FunctionCallbackInfo<v8::Value>& args);
40
38
  static void ToSlice(const v8::FunctionCallbackInfo<v8::Value>& args);
41
39
  static void StoreDataObject(const v8::FunctionCallbackInfo<v8::Value>& args);
42
40
  static void GetDataObject(const v8::FunctionCallbackInfo<v8::Value>& args);
43
- static void RevokeDataObject(const v8::FunctionCallbackInfo<v8::Value>& args);
41
+ static void RevokeObjectURL(const v8::FunctionCallbackInfo<v8::Value>& args);
44
42
 
45
43
  static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
46
44
  Environment* env);
47
45
 
48
- static BaseObjectPtr<Blob> Create(
49
- Environment* env,
50
- const std::vector<BlobEntry> store,
51
- size_t length);
46
+ static BaseObjectPtr<Blob> Create(Environment* env,
47
+ std::shared_ptr<DataQueue> data_queue);
52
48
 
53
49
  static bool HasInstance(Environment* env, v8::Local<v8::Value> object);
54
50
 
55
- const std::vector<BlobEntry> entries() const {
56
- return store_;
57
- }
58
-
59
51
  void MemoryInfo(MemoryTracker* tracker) const override;
60
52
  SET_MEMORY_INFO_NAME(Blob)
61
53
  SET_SELF_SIZE(Blob)
62
54
 
63
- // Copies the contents of the Blob into an ArrayBuffer.
64
- v8::MaybeLocal<v8::Value> GetArrayBuffer(Environment* env);
65
-
66
55
  BaseObjectPtr<Blob> Slice(Environment* env, size_t start, size_t end);
67
56
 
68
- inline size_t length() const { return length_; }
57
+ inline size_t length() const { return this->data_queue_->size().value(); }
69
58
 
70
59
  class BlobTransferData : public worker::TransferData {
71
60
  public:
72
- explicit BlobTransferData(
73
- const std::vector<BlobEntry>& store,
74
- size_t length)
75
- : store_(store),
76
- length_(length) {}
61
+ explicit BlobTransferData(std::shared_ptr<DataQueue> data_queue)
62
+ : data_queue(data_queue) {}
77
63
 
78
64
  BaseObjectPtr<BaseObject> Deserialize(
79
65
  Environment* env,
@@ -85,72 +71,54 @@ class Blob : public BaseObject {
85
71
  SET_NO_MEMORY_INFO()
86
72
 
87
73
  private:
88
- std::vector<BlobEntry> store_;
89
- size_t length_ = 0;
74
+ std::shared_ptr<DataQueue> data_queue;
90
75
  };
91
76
 
92
- BaseObject::TransferMode GetTransferMode() const override;
93
- std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
77
+ class Reader final : public AsyncWrap {
78
+ public:
79
+ static bool HasInstance(Environment* env, v8::Local<v8::Value> value);
80
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
81
+ Environment* env);
82
+ static BaseObjectPtr<Reader> Create(Environment* env,
83
+ BaseObjectPtr<Blob> blob);
84
+ static void Pull(const v8::FunctionCallbackInfo<v8::Value>& args);
94
85
 
95
- Blob(
96
- Environment* env,
97
- v8::Local<v8::Object> obj,
98
- const std::vector<BlobEntry>& store,
99
- size_t length);
86
+ explicit Reader(Environment* env,
87
+ v8::Local<v8::Object> obj,
88
+ BaseObjectPtr<Blob> strong_ptr);
100
89
 
101
- private:
102
- std::vector<BlobEntry> store_;
103
- size_t length_ = 0;
104
- };
90
+ SET_NO_MEMORY_INFO()
91
+ SET_MEMORY_INFO_NAME(Blob::Reader)
92
+ SET_SELF_SIZE(Reader)
105
93
 
106
- class FixedSizeBlobCopyJob : public AsyncWrap, public ThreadPoolWork {
107
- public:
108
- enum class Mode {
109
- SYNC,
110
- ASYNC
94
+ private:
95
+ std::shared_ptr<DataQueue::Reader> inner_;
96
+ BaseObjectPtr<Blob> strong_ptr_;
97
+ bool eos_ = false;
111
98
  };
112
99
 
113
- static void RegisterExternalReferences(
114
- ExternalReferenceRegistry* registry);
115
- static void Initialize(Environment* env, v8::Local<v8::Object> target);
116
- static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
117
- static void Run(const v8::FunctionCallbackInfo<v8::Value>& args);
118
-
119
- bool IsNotIndicativeOfMemoryLeakAtExit() const override {
120
- return true;
121
- }
100
+ BaseObject::TransferMode GetTransferMode() const override;
101
+ std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
122
102
 
123
- void DoThreadPoolWork() override;
124
- void AfterThreadPoolWork(int status) override;
103
+ Blob(Environment* env,
104
+ v8::Local<v8::Object> obj,
105
+ std::shared_ptr<DataQueue> data_queue);
125
106
 
126
- Mode mode() const { return mode_; }
127
-
128
- void MemoryInfo(MemoryTracker* tracker) const override;
129
- SET_MEMORY_INFO_NAME(FixedSizeBlobCopyJob)
130
- SET_SELF_SIZE(FixedSizeBlobCopyJob)
107
+ DataQueue& getDataQueue() const { return *data_queue_; }
131
108
 
132
109
  private:
133
- FixedSizeBlobCopyJob(
134
- Environment* env,
135
- v8::Local<v8::Object> object,
136
- Blob* blob,
137
- Mode mode = Mode::ASYNC);
138
-
139
- Mode mode_;
140
- std::vector<BlobEntry> source_;
141
- std::shared_ptr<v8::BackingStore> destination_;
142
- size_t length_ = 0;
110
+ std::shared_ptr<DataQueue> data_queue_;
143
111
  };
144
112
 
145
113
  class BlobBindingData : public SnapshotableObject {
146
114
  public:
147
- explicit BlobBindingData(Environment* env, v8::Local<v8::Object> wrap);
115
+ explicit BlobBindingData(Realm* realm, v8::Local<v8::Object> wrap);
116
+
117
+ using InternalFieldInfo = InternalFieldInfoBase;
148
118
 
149
119
  SERIALIZABLE_OBJECT_METHODS()
150
120
 
151
- static constexpr FastStringKey type_name{"node::BlobBindingData"};
152
- static constexpr EmbedderObjectType type_int =
153
- EmbedderObjectType::k_blob_binding_data;
121
+ SET_BINDING_ID(blob_binding_data)
154
122
 
155
123
  void MemoryInfo(MemoryTracker* tracker) const override;
156
124
  SET_SELF_SIZE(BlobBindingData)
@@ -25,8 +25,7 @@ int SourceImpl<T>::Pull(
25
25
 
26
26
  status = DoPull(std::move(next), options, data, count, max_count_hint);
27
27
 
28
- if (status == bob::Status::STATUS_END)
29
- eos_ = true;
28
+ if (status == bob::Status::STATUS_EOS) eos_ = true;
30
29
 
31
30
  return status;
32
31
  }
@@ -11,12 +11,7 @@ constexpr size_t kMaxCountHint = 16;
11
11
  // Negative status codes indicate error conditions.
12
12
  enum Status : int {
13
13
  // Indicates that an attempt was made to pull after end.
14
- STATUS_EOS = -1,
15
-
16
- // Indicates the end of the stream. No additional
17
- // data will be available and the consumer should stop
18
- // pulling.
19
- STATUS_END = 0,
14
+ STATUS_EOS = 0,
20
15
 
21
16
  // Indicates that there is additional data available
22
17
  // and the consumer may continue to pull.
@@ -72,6 +67,7 @@ using Next = std::function<void(int, const T*, size_t count, Done done)>;
72
67
  template <typename T>
73
68
  class Source {
74
69
  public:
70
+ virtual ~Source() = default;
75
71
  virtual int Pull(
76
72
  Next<T> next,
77
73
  int options,
@@ -29,7 +29,7 @@ namespace node {
29
29
 
30
30
  namespace Buffer {
31
31
 
32
- static const size_t kMaxLength = v8::TypedArray::kMaxLength;
32
+ static const size_t kMaxLength = v8::Uint8Array::kMaxLength;
33
33
 
34
34
  typedef void (*FreeCallback)(char* data, void* hint);
35
35
 
@@ -0,0 +1,223 @@
1
+ #ifndef SRC_NODE_BUILTINS_H_
2
+ #define SRC_NODE_BUILTINS_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <list>
7
+ #include <map>
8
+ #include <memory>
9
+ #include <optional>
10
+ #include <ranges>
11
+ #include <string>
12
+ #include <unordered_set>
13
+ #include <vector>
14
+ #include "node_external_reference.h"
15
+ #include "node_mutex.h"
16
+ #include "node_threadsafe_cow.h"
17
+ #include "node_union_bytes.h"
18
+ #include "v8.h"
19
+
20
+ // Forward declare test fixture for `friend` declaration.
21
+ class PerProcessTest;
22
+
23
+ namespace node {
24
+ class SnapshotBuilder;
25
+ class ExternalReferenceRegistry;
26
+ class Realm;
27
+
28
+ namespace builtins {
29
+
30
+ class BuiltinCodeCacheData {
31
+ public:
32
+ BuiltinCodeCacheData() : data(nullptr), length(0), owning_ptr(nullptr) {}
33
+
34
+ explicit BuiltinCodeCacheData(
35
+ std::shared_ptr<v8::ScriptCompiler::CachedData> cached_data)
36
+ : data(cached_data->data),
37
+ length(cached_data->length),
38
+ owning_ptr(cached_data) {}
39
+
40
+ explicit BuiltinCodeCacheData(
41
+ std::shared_ptr<std::vector<uint8_t>> cached_data)
42
+ : data(cached_data->data()),
43
+ length(cached_data->size()),
44
+ owning_ptr(cached_data) {}
45
+
46
+ BuiltinCodeCacheData(const uint8_t* data, size_t length)
47
+ : data(data), length(length), owning_ptr(nullptr) {}
48
+
49
+ const uint8_t* data;
50
+ size_t length;
51
+
52
+ // Returns a v8::ScriptCompiler::CachedData corresponding to this
53
+ // BuiltinCodeCacheData. The lifetime of the returned
54
+ // v8::ScriptCompiler::CachedData must not outlive that of the data.
55
+ std::unique_ptr<v8::ScriptCompiler::CachedData> AsCachedData() {
56
+ return std::make_unique<v8::ScriptCompiler::CachedData>(
57
+ data, length, v8::ScriptCompiler::CachedData::BufferNotOwned);
58
+ }
59
+
60
+ private:
61
+ // If not null, represents a pointer which owns data. Otherwise indicates
62
+ // that data has static lifetime.
63
+ std::shared_ptr<void> owning_ptr;
64
+ };
65
+
66
+ struct CodeCacheInfo {
67
+ std::string id;
68
+ BuiltinCodeCacheData data;
69
+ };
70
+
71
+ using BuiltinSourceMap = std::map<std::string, UnionBytes>;
72
+ using BuiltinCodeCacheMap =
73
+ std::unordered_map<std::string, BuiltinCodeCacheData>;
74
+
75
+ // Generated by tools/js2c.cc as node_javascript.cc
76
+ void RegisterExternalReferencesForInternalizedBuiltinCode(
77
+ ExternalReferenceRegistry* registry);
78
+
79
+ // Handles compilation and caching of built-in JavaScript modules and
80
+ // bootstrap scripts, whose source are bundled into the binary as static data.
81
+ class NODE_EXTERN_PRIVATE BuiltinLoader {
82
+ public:
83
+ BuiltinLoader();
84
+ BuiltinLoader(const BuiltinLoader&) = delete;
85
+ BuiltinLoader& operator=(const BuiltinLoader&) = delete;
86
+
87
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
88
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
89
+ v8::Local<v8::ObjectTemplate> target);
90
+ static void CreatePerContextProperties(v8::Local<v8::Object> target,
91
+ v8::Local<v8::Value> unused,
92
+ v8::Local<v8::Context> context,
93
+ void* priv);
94
+
95
+ // The parameters used to compile the scripts are detected based on
96
+ // the pattern of the id.
97
+ v8::MaybeLocal<v8::Function> LookupAndCompile(v8::Local<v8::Context> context,
98
+ const char* id,
99
+ Realm* optional_realm);
100
+
101
+ v8::MaybeLocal<v8::Function> LookupAndCompile(
102
+ v8::Local<v8::Context> context,
103
+ const char* id,
104
+ v8::LocalVector<v8::String>* parameters,
105
+ Realm* optional_realm);
106
+
107
+ v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
108
+ const char* id,
109
+ int argc,
110
+ v8::Local<v8::Value> argv[],
111
+ Realm* optional_realm);
112
+
113
+ v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
114
+ const char* id,
115
+ Realm* realm);
116
+
117
+ // Returns config.gypi as a JSON string
118
+ v8::Local<v8::String> GetConfigString(v8::Isolate* isolate);
119
+ bool Exists(const char* id);
120
+ bool Add(const char* id, const UnionBytes& source);
121
+
122
+ bool CompileAllBuiltinsAndCopyCodeCache(
123
+ v8::Local<v8::Context> context,
124
+ const std::vector<std::string>& lazy_builtins,
125
+ std::vector<CodeCacheInfo>* out);
126
+ void RefreshCodeCache(const std::vector<CodeCacheInfo>& in);
127
+
128
+ void CopySourceAndCodeCacheReferenceFrom(const BuiltinLoader* other);
129
+
130
+ [[nodiscard]] std::ranges::keys_view<
131
+ std::ranges::ref_view<const BuiltinSourceMap>>
132
+ GetBuiltinIds() const;
133
+
134
+ void SetEagerCompile() { should_eager_compile_ = true; }
135
+
136
+ private:
137
+ // Only allow access from friends.
138
+ friend class CodeCacheBuilder;
139
+
140
+ // Generated by tools/js2c.cc as node_javascript.cc
141
+ void LoadJavaScriptSource(); // Loads data into source_
142
+ UnionBytes GetConfig(); // Return data for config.gypi
143
+
144
+ struct BuiltinCategories {
145
+ std::set<std::string> can_be_required;
146
+ std::set<std::string> cannot_be_required;
147
+ };
148
+ // This method builds `BuiltinCategories` from scratch every time,
149
+ // and is therefore somewhat expensive, but also currently only being
150
+ // used for testing, so that should not be an issue.
151
+ BuiltinCategories GetBuiltinCategories() const;
152
+
153
+ const v8::ScriptCompiler::CachedData* GetCodeCache(const char* id) const;
154
+ enum class Result { kWithCache, kWithoutCache };
155
+ v8::MaybeLocal<v8::String> LoadBuiltinSource(v8::Isolate* isolate,
156
+ const char* id) const;
157
+ // If an exception is encountered (e.g. source code contains
158
+ // syntax error), the returned value is empty.
159
+ v8::MaybeLocal<v8::Function> LookupAndCompileInternal(
160
+ v8::Local<v8::Context> context,
161
+ const char* id,
162
+ v8::LocalVector<v8::String>* parameters,
163
+ Realm* optional_realm);
164
+ void SaveCodeCache(const char* id, v8::Local<v8::Function> fn);
165
+
166
+ static void RecordResult(const char* id,
167
+ BuiltinLoader::Result result,
168
+ Realm* realm);
169
+ static void GetBuiltinCategories(
170
+ v8::Local<v8::Name> property,
171
+ const v8::PropertyCallbackInfo<v8::Value>& info);
172
+ static void GetCacheUsage(const v8::FunctionCallbackInfo<v8::Value>& args);
173
+ // Passing ids of built-in source code into JS land as
174
+ // internalBinding('builtins').builtinIds
175
+ static void BuiltinIdsGetter(v8::Local<v8::Name> property,
176
+ const v8::PropertyCallbackInfo<v8::Value>& info);
177
+ // Passing config.gypi into JS land as internalBinding('builtins').config
178
+ static void ConfigStringGetter(
179
+ v8::Local<v8::Name> property,
180
+ const v8::PropertyCallbackInfo<v8::Value>& info);
181
+ // Compile a specific built-in as a function
182
+ static void CompileFunction(const v8::FunctionCallbackInfo<v8::Value>& args);
183
+ static void HasCachedBuiltins(
184
+ const v8::FunctionCallbackInfo<v8::Value>& args);
185
+ // For legacy process.binding('natives')
186
+ static void GetNatives(v8::Local<v8::Name> property,
187
+ const v8::PropertyCallbackInfo<v8::Value>& info);
188
+
189
+ void AddExternalizedBuiltin(const char* id, const char* filename);
190
+
191
+ ThreadsafeCopyOnWrite<BuiltinSourceMap> source_;
192
+
193
+ const UnionBytes config_;
194
+
195
+ // If any bulitins should be eagerly compiled i.e. with inner functions
196
+ // compiled too, either use should_eager_compile_ to compile all builtins
197
+ // eagerly, or use to_eager_compile_ to compile specific builtins eagerly.
198
+ // Currently we set should_eager_compile_ to true when compiling primordials,
199
+ // and use to_eager_compile_ to compile code cache that complements the
200
+ // snapshot, where builtins already loaded in the snapshot and a few extras
201
+ // are compiled eagerly (other less-essential built-ins are compiled lazily to
202
+ // avoid bloating the binary size). At runtime any additional compilation is
203
+ // done lazily.
204
+ bool should_eager_compile_ = false;
205
+ std::unordered_set<std::string> to_eager_compile_;
206
+
207
+ struct BuiltinCodeCache {
208
+ RwLock mutex;
209
+ BuiltinCodeCacheMap map;
210
+ bool has_code_cache = false;
211
+ };
212
+ std::shared_ptr<BuiltinCodeCache> code_cache_;
213
+
214
+ friend class ::PerProcessTest;
215
+ };
216
+
217
+ } // namespace builtins
218
+
219
+ } // namespace node
220
+
221
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
222
+
223
+ #endif // SRC_NODE_BUILTINS_H_
@@ -0,0 +1,65 @@
1
+ #ifndef SRC_NODE_CONFIG_FILE_H_
2
+ #define SRC_NODE_CONFIG_FILE_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <map>
7
+ #include <string>
8
+ #include <unordered_map>
9
+ #include <unordered_set>
10
+ #include <variant>
11
+ #include <vector>
12
+ #include "node_internals.h"
13
+ #include "simdjson.h"
14
+ #include "util-inl.h"
15
+
16
+ namespace node {
17
+
18
+ // When trying to parse the configuration file, we can have three possible
19
+ // results:
20
+ // - Valid: The file was successfully parsed and the content is valid.
21
+ // - FileError: There was an error reading the file.
22
+ // - InvalidContent: The file was read, but the content is invalid.
23
+ enum ParseResult { Valid, FileError, InvalidContent };
24
+
25
+ // ConfigReader is the class that parses the configuration JSON file.
26
+ // It reads the file provided by --experimental-config-file and
27
+ // extracts the flags.
28
+ class ConfigReader {
29
+ public:
30
+ ParseResult ParseConfig(const std::string_view& config_path);
31
+
32
+ std::optional<std::string_view> GetDataFromArgs(
33
+ const std::vector<std::string>& args);
34
+
35
+ std::string GetNodeOptions();
36
+ const std::vector<std::string>& GetNamespaceFlags() const;
37
+
38
+ size_t GetFlagsSize();
39
+
40
+ private:
41
+ // Parse options for a specific namespace (including nodeOptions for backward
42
+ // compatibility)
43
+ ParseResult ParseOptions(simdjson::ondemand::object* options_object,
44
+ std::unordered_set<std::string>* unique_options,
45
+ const std::string& namespace_name);
46
+
47
+ // Process a single option value based on its type
48
+ ParseResult ProcessOptionValue(
49
+ const std::pair<std::string, options_parser::OptionType>& option_info,
50
+ simdjson::ondemand::value* option_value,
51
+ std::vector<std::string>* output);
52
+
53
+ std::vector<std::string> node_options_;
54
+ std::vector<std::string> namespace_options_;
55
+
56
+ // Cache for fast lookup of environment options
57
+ std::unordered_map<std::string, options_parser::OptionType> env_options_map_;
58
+ bool env_options_initialized_ = false;
59
+ };
60
+
61
+ } // namespace node
62
+
63
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
64
+
65
+ #endif // SRC_NODE_CONFIG_FILE_H_
@@ -27,6 +27,9 @@
27
27
  #include "node.h"
28
28
  #include "v8.h"
29
29
 
30
+ #define EXTENSIONLESS_FORMAT_JAVASCRIPT (0)
31
+ #define EXTENSIONLESS_FORMAT_WASM (1)
32
+
30
33
  #if HAVE_OPENSSL
31
34
 
32
35
  #ifndef RSA_PSS_SALTLEN_DIGEST
@@ -74,11 +77,6 @@
74
77
  #endif // NODE_OPENSSL_DEFAULT_CIPHER_LIST
75
78
  #endif // HAVE_OPENSSL
76
79
 
77
- namespace node {
78
-
79
- void DefineConstants(v8::Isolate* isolate, v8::Local<v8::Object> target);
80
- } // namespace node
81
-
82
80
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
83
81
 
84
82
  #endif // SRC_NODE_CONSTANTS_H_