@encharm/cws 4.4.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  2. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  3. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  4. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  5. package/dist/bindings/cws_linux_x64_node108.node +0 -0
  6. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  7. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  8. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  9. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  12. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  13. package/package.json +1 -1
  14. package/src/Addon.h +20 -24
  15. package/src/Socket.h +0 -1
  16. package/src/headers/20/acorn_version.h +1 -1
  17. package/src/headers/20/connection_wrap.h +1 -0
  18. package/src/headers/20/crypto/crypto_keys.h +3 -0
  19. package/src/headers/20/crypto/crypto_tls.h +12 -3
  20. package/src/headers/20/crypto/crypto_util.h +3 -2
  21. package/src/headers/20/env_properties.h +3 -1
  22. package/src/headers/20/js_native_api.h +11 -1
  23. package/src/headers/20/js_native_api_v8.h +40 -3
  24. package/src/headers/20/js_native_api_v8_internals.h +6 -0
  25. package/src/headers/20/module_wrap.h +1 -1
  26. package/src/headers/20/node.h +2 -0
  27. package/src/headers/20/node_api.h +8 -7
  28. package/src/headers/20/node_constants.h +3 -0
  29. package/src/headers/20/node_contextify.h +24 -0
  30. package/src/headers/20/node_file-inl.h +32 -0
  31. package/src/headers/20/node_file.h +25 -12
  32. package/src/headers/20/node_options.h +9 -9
  33. package/src/headers/20/node_version.h +1 -1
  34. package/src/headers/20/permission/child_process_permission.h +2 -1
  35. package/src/headers/20/permission/fs_permission.h +11 -9
  36. package/src/headers/20/permission/inspector_permission.h +29 -0
  37. package/src/headers/20/permission/permission.h +4 -1
  38. package/src/headers/20/permission/permission_base.h +6 -2
  39. package/src/headers/20/permission/worker_permission.h +2 -1
  40. package/src/headers/20/undici_version.h +2 -2
  41. package/src/headers/22/acorn_version.h +6 -0
  42. package/src/headers/22/aliased_buffer-inl.h +243 -0
  43. package/src/headers/22/aliased_buffer.h +206 -0
  44. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  45. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  46. package/src/headers/{16 → 22}/base_object-inl.h +57 -117
  47. package/src/headers/{18 → 22}/base_object.h +58 -30
  48. package/src/headers/22/base_object_types.h +74 -0
  49. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  50. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  51. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  52. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  53. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  54. package/src/headers/22/cleanup_queue-inl.h +62 -0
  55. package/src/headers/22/cleanup_queue.h +85 -0
  56. package/src/headers/22/compile_cache.h +104 -0
  57. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  58. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  59. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  60. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  61. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  62. package/src/headers/22/crypto/ncrypto.h +752 -0
  63. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  64. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  65. package/src/headers/22/encoding_binding.h +59 -0
  66. package/src/headers/{14 → 22}/env-inl.h +276 -409
  67. package/src/headers/22/env.h +1266 -0
  68. package/src/headers/22/env_properties.h +497 -0
  69. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  70. package/src/headers/{18 → 22}/histogram.h +88 -48
  71. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  72. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  73. package/src/headers/{18 → 22}/js_native_api.h +78 -30
  74. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  75. package/src/headers/{18 → 22}/js_native_api_v8.h +206 -161
  76. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  77. package/src/headers/22/json_parser.h +40 -0
  78. package/src/headers/{16 → 22}/json_utils.h +19 -8
  79. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  80. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  81. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  82. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  83. package/src/headers/{18 → 22}/node.h +465 -68
  84. package/src/headers/{18 → 22}/node_api.h +66 -81
  85. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  86. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  87. package/src/headers/22/node_binding.h +154 -0
  88. package/src/headers/{18 → 22}/node_blob.h +46 -78
  89. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  90. package/src/headers/{18 → 22}/node_bob.h +2 -6
  91. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  92. package/src/headers/22/node_builtins.h +220 -0
  93. package/src/headers/{18 → 22}/node_constants.h +3 -5
  94. package/src/headers/22/node_context_data.h +168 -0
  95. package/src/headers/22/node_contextify.h +199 -0
  96. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  97. package/src/headers/22/node_dotenv.h +45 -0
  98. package/src/headers/{18 → 22}/node_errors.h +86 -27
  99. package/src/headers/22/node_exit_code.h +54 -0
  100. package/src/headers/22/node_external_reference.h +249 -0
  101. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  102. package/src/headers/{16 → 22}/node_file.h +122 -11
  103. package/src/headers/{18 → 22}/node_http2.h +28 -11
  104. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  105. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  106. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  107. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  108. package/src/headers/{18 → 22}/node_internals.h +121 -59
  109. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  110. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  111. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  112. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  113. package/src/headers/{18 → 22}/node_options.h +124 -39
  114. package/src/headers/{18 → 22}/node_perf.h +0 -2
  115. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  116. package/src/headers/{18 → 22}/node_platform.h +11 -5
  117. package/src/headers/{18 → 22}/node_process.h +26 -14
  118. package/src/headers/22/node_realm-inl.h +145 -0
  119. package/src/headers/22/node_realm.h +184 -0
  120. package/src/headers/{16 → 22}/node_report.h +13 -17
  121. package/src/headers/{16 → 22}/node_revert.h +3 -3
  122. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  123. package/src/headers/22/node_sea.h +64 -0
  124. package/src/headers/22/node_shadow_realm.h +46 -0
  125. package/src/headers/22/node_snapshot_builder.h +57 -0
  126. package/src/headers/22/node_snapshotable.h +174 -0
  127. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  128. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  129. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  130. package/src/headers/22/node_threadsafe_cow.h +105 -0
  131. package/src/headers/22/node_union_bytes.h +81 -0
  132. package/src/headers/22/node_url.h +96 -0
  133. package/src/headers/22/node_v8.h +77 -0
  134. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  135. package/src/headers/{18 → 22}/node_version.h +20 -8
  136. package/src/headers/22/node_wasi.h +185 -0
  137. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  138. package/src/headers/{18 → 22}/node_worker.h +7 -2
  139. package/src/headers/22/permission/child_process_permission.h +31 -0
  140. package/src/headers/22/permission/fs_permission.h +167 -0
  141. package/src/headers/22/permission/inspector_permission.h +31 -0
  142. package/src/headers/22/permission/permission.h +99 -0
  143. package/src/headers/22/permission/permission_base.h +60 -0
  144. package/src/headers/22/permission/wasi_permission.h +31 -0
  145. package/src/headers/22/permission/worker_permission.h +31 -0
  146. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  147. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  148. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  149. package/src/headers/{18 → 22}/stream_base.h +35 -16
  150. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  151. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  152. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  153. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  154. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  155. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  156. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  157. package/src/headers/22/timers.h +76 -0
  158. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  159. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  160. package/src/headers/22/undici_version.h +6 -0
  161. package/src/headers/{18 → 22}/util-inl.h +97 -127
  162. package/src/headers/{18 → 22}/util.h +293 -106
  163. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  164. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  165. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  166. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  167. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  168. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  169. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  170. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  171. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  172. package/src/headers/14/aliased_buffer.h +0 -263
  173. package/src/headers/14/allocated_buffer-inl.h +0 -110
  174. package/src/headers/14/allocated_buffer.h +0 -73
  175. package/src/headers/14/async_wrap-inl.h +0 -94
  176. package/src/headers/14/async_wrap.h +0 -230
  177. package/src/headers/14/base64.h +0 -183
  178. package/src/headers/14/base_object-inl.h +0 -371
  179. package/src/headers/14/base_object.h +0 -281
  180. package/src/headers/14/callback_queue-inl.h +0 -97
  181. package/src/headers/14/callback_queue.h +0 -78
  182. package/src/headers/14/debug_utils-inl.h +0 -223
  183. package/src/headers/14/debug_utils.h +0 -181
  184. package/src/headers/14/env.h +0 -1388
  185. package/src/headers/14/handle_wrap.h +0 -117
  186. package/src/headers/14/histogram-inl.h +0 -83
  187. package/src/headers/14/histogram.h +0 -98
  188. package/src/headers/14/inspector_agent.h +0 -149
  189. package/src/headers/14/inspector_profiler.h +0 -137
  190. package/src/headers/14/js_native_api.h +0 -544
  191. package/src/headers/14/js_native_api_types.h +0 -143
  192. package/src/headers/14/js_native_api_v8.h +0 -301
  193. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  194. package/src/headers/14/json_utils.h +0 -161
  195. package/src/headers/14/memory_tracker-inl.h +0 -355
  196. package/src/headers/14/module_wrap.h +0 -99
  197. package/src/headers/14/node.h +0 -1032
  198. package/src/headers/14/node_api.h +0 -255
  199. package/src/headers/14/node_api_types.h +0 -44
  200. package/src/headers/14/node_binding.h +0 -99
  201. package/src/headers/14/node_buffer.h +0 -92
  202. package/src/headers/14/node_constants.h +0 -84
  203. package/src/headers/14/node_context_data.h +0 -44
  204. package/src/headers/14/node_contextify.h +0 -161
  205. package/src/headers/14/node_crypto.h +0 -865
  206. package/src/headers/14/node_crypto_bio.h +0 -195
  207. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  208. package/src/headers/14/node_crypto_clienthello.h +0 -132
  209. package/src/headers/14/node_crypto_common.h +0 -138
  210. package/src/headers/14/node_crypto_groups.h +0 -415
  211. package/src/headers/14/node_dtrace.h +0 -86
  212. package/src/headers/14/node_errors.h +0 -214
  213. package/src/headers/14/node_file-inl.h +0 -306
  214. package/src/headers/14/node_file.h +0 -417
  215. package/src/headers/14/node_http2.h +0 -1191
  216. package/src/headers/14/node_http2_state.h +0 -149
  217. package/src/headers/14/node_http_common-inl.h +0 -194
  218. package/src/headers/14/node_http_common.h +0 -529
  219. package/src/headers/14/node_i18n.h +0 -144
  220. package/src/headers/14/node_internals.h +0 -405
  221. package/src/headers/14/node_main_instance.h +0 -96
  222. package/src/headers/14/node_mem.h +0 -45
  223. package/src/headers/14/node_messaging.h +0 -303
  224. package/src/headers/14/node_metadata.h +0 -109
  225. package/src/headers/14/node_mutex.h +0 -247
  226. package/src/headers/14/node_native_module.h +0 -101
  227. package/src/headers/14/node_native_module_env.h +0 -66
  228. package/src/headers/14/node_options-inl.h +0 -451
  229. package/src/headers/14/node_options.h +0 -481
  230. package/src/headers/14/node_perf.h +0 -181
  231. package/src/headers/14/node_perf_common.h +0 -97
  232. package/src/headers/14/node_platform.h +0 -189
  233. package/src/headers/14/node_process.h +0 -40
  234. package/src/headers/14/node_report.h +0 -47
  235. package/src/headers/14/node_revert.h +0 -72
  236. package/src/headers/14/node_root_certs.h +0 -3458
  237. package/src/headers/14/node_sockaddr-inl.h +0 -170
  238. package/src/headers/14/node_sockaddr.h +0 -123
  239. package/src/headers/14/node_stat_watcher.h +0 -70
  240. package/src/headers/14/node_union_bytes.h +0 -103
  241. package/src/headers/14/node_url.h +0 -188
  242. package/src/headers/14/node_version.h +0 -98
  243. package/src/headers/14/node_wasi.h +0 -108
  244. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  245. package/src/headers/14/node_win32_etw_provider.h +0 -99
  246. package/src/headers/14/node_worker.h +0 -141
  247. package/src/headers/14/pipe_wrap.h +0 -78
  248. package/src/headers/14/req_wrap-inl.h +0 -170
  249. package/src/headers/14/req_wrap.h +0 -77
  250. package/src/headers/14/stream_base-inl.h +0 -275
  251. package/src/headers/14/stream_base.h +0 -434
  252. package/src/headers/14/stream_pipe.h +0 -73
  253. package/src/headers/14/stream_wrap.h +0 -130
  254. package/src/headers/14/string_bytes.h +0 -129
  255. package/src/headers/14/string_decoder.h +0 -50
  256. package/src/headers/14/string_search.h +0 -638
  257. package/src/headers/14/tcp_wrap.h +0 -101
  258. package/src/headers/14/threadpoolwork-inl.h +0 -57
  259. package/src/headers/14/tls_wrap.h +0 -222
  260. package/src/headers/14/tracing/agent.h +0 -195
  261. package/src/headers/14/tracing/trace_event.h +0 -720
  262. package/src/headers/14/tty_wrap.h +0 -64
  263. package/src/headers/14/udp_wrap.h +0 -227
  264. package/src/headers/14/util-inl.h +0 -566
  265. package/src/headers/14/util.h +0 -804
  266. package/src/headers/14/v8abbr.h +0 -124
  267. package/src/headers/16/aliased_buffer.h +0 -315
  268. package/src/headers/16/aliased_struct-inl.h +0 -54
  269. package/src/headers/16/aliased_struct.h +0 -63
  270. package/src/headers/16/allocated_buffer-inl.h +0 -110
  271. package/src/headers/16/allocated_buffer.h +0 -73
  272. package/src/headers/16/async_wrap-inl.h +0 -94
  273. package/src/headers/16/async_wrap.h +0 -246
  274. package/src/headers/16/base64-inl.h +0 -189
  275. package/src/headers/16/base64.h +0 -69
  276. package/src/headers/16/base_object.h +0 -294
  277. package/src/headers/16/connect_wrap.h +0 -26
  278. package/src/headers/16/connection_wrap.h +0 -30
  279. package/src/headers/16/crypto/crypto_aes.h +0 -89
  280. package/src/headers/16/crypto/crypto_bio.h +0 -194
  281. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  282. package/src/headers/16/crypto/crypto_clienthello-inl.h +0 -90
  283. package/src/headers/16/crypto/crypto_clienthello.h +0 -131
  284. package/src/headers/16/crypto/crypto_common.h +0 -187
  285. package/src/headers/16/crypto/crypto_context.h +0 -147
  286. package/src/headers/16/crypto/crypto_dh.h +0 -157
  287. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  288. package/src/headers/16/crypto/crypto_ec.h +0 -169
  289. package/src/headers/16/crypto/crypto_groups.h +0 -415
  290. package/src/headers/16/crypto/crypto_hash.h +0 -89
  291. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  292. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  293. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  294. package/src/headers/16/crypto/crypto_keys.h +0 -412
  295. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  296. package/src/headers/16/crypto/crypto_random.h +0 -130
  297. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  298. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  299. package/src/headers/16/crypto/crypto_sig.h +0 -167
  300. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  301. package/src/headers/16/crypto/crypto_timing.h +0 -20
  302. package/src/headers/16/crypto/crypto_tls.h +0 -292
  303. package/src/headers/16/crypto/crypto_util.h +0 -736
  304. package/src/headers/16/crypto/crypto_x509.h +0 -141
  305. package/src/headers/16/debug_utils.h +0 -184
  306. package/src/headers/16/diagnosticfilename-inl.h +0 -33
  307. package/src/headers/16/env-inl.h +0 -1277
  308. package/src/headers/16/env.h +0 -1629
  309. package/src/headers/16/handle_wrap.h +0 -121
  310. package/src/headers/16/histogram-inl.h +0 -88
  311. package/src/headers/16/histogram.h +0 -216
  312. package/src/headers/16/inspector_io.h +0 -78
  313. package/src/headers/16/inspector_socket.h +0 -60
  314. package/src/headers/16/inspector_socket_server.h +0 -110
  315. package/src/headers/16/js_native_api.h +0 -561
  316. package/src/headers/16/js_native_api_types.h +0 -160
  317. package/src/headers/16/js_native_api_v8.h +0 -451
  318. package/src/headers/16/js_native_api_v8_internals.h +0 -39
  319. package/src/headers/16/js_stream.h +0 -52
  320. package/src/headers/16/memory_tracker-inl.h +0 -356
  321. package/src/headers/16/memory_tracker.h +0 -284
  322. package/src/headers/16/node.d +0 -315
  323. package/src/headers/16/node.h +0 -1132
  324. package/src/headers/16/node.stp +0 -146
  325. package/src/headers/16/node_api.h +0 -275
  326. package/src/headers/16/node_api_internals.h +0 -30
  327. package/src/headers/16/node_api_types.h +0 -50
  328. package/src/headers/16/node_binding.h +0 -99
  329. package/src/headers/16/node_blob.h +0 -191
  330. package/src/headers/16/node_bob-inl.h +0 -37
  331. package/src/headers/16/node_bob.h +0 -111
  332. package/src/headers/16/node_buffer.h +0 -92
  333. package/src/headers/16/node_constants.h +0 -84
  334. package/src/headers/16/node_context_data.h +0 -44
  335. package/src/headers/16/node_contextify.h +0 -196
  336. package/src/headers/16/node_dir.h +0 -52
  337. package/src/headers/16/node_dtrace.h +0 -86
  338. package/src/headers/16/node_errors.h +0 -277
  339. package/src/headers/16/node_external_reference.h +0 -129
  340. package/src/headers/16/node_file-inl.h +0 -306
  341. package/src/headers/16/node_http2.h +0 -1140
  342. package/src/headers/16/node_http_common-inl.h +0 -200
  343. package/src/headers/16/node_http_common.h +0 -531
  344. package/src/headers/16/node_internals.h +0 -421
  345. package/src/headers/16/node_main_instance.h +0 -103
  346. package/src/headers/16/node_mem-inl.h +0 -112
  347. package/src/headers/16/node_messaging.h +0 -373
  348. package/src/headers/16/node_metadata.h +0 -122
  349. package/src/headers/16/node_native_module.h +0 -101
  350. package/src/headers/16/node_native_module_env.h +0 -68
  351. package/src/headers/16/node_object_wrap.h +0 -132
  352. package/src/headers/16/node_options-inl.h +0 -477
  353. package/src/headers/16/node_options.h +0 -494
  354. package/src/headers/16/node_perf.h +0 -185
  355. package/src/headers/16/node_perf_common.h +0 -89
  356. package/src/headers/16/node_platform.h +0 -192
  357. package/src/headers/16/node_process.h +0 -43
  358. package/src/headers/16/node_provider.d +0 -80
  359. package/src/headers/16/node_snapshotable.h +0 -137
  360. package/src/headers/16/node_sockaddr-inl.h +0 -266
  361. package/src/headers/16/node_sockaddr.h +0 -405
  362. package/src/headers/16/node_union_bytes.h +0 -103
  363. package/src/headers/16/node_url.h +0 -205
  364. package/src/headers/16/node_v8.h +0 -41
  365. package/src/headers/16/node_v8_platform-inl.h +0 -194
  366. package/src/headers/16/node_version.h +0 -98
  367. package/src/headers/16/node_wasi.h +0 -108
  368. package/src/headers/16/node_watchdog.h +0 -152
  369. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  370. package/src/headers/16/node_win32_etw_provider.h +0 -99
  371. package/src/headers/16/node_worker.h +0 -145
  372. package/src/headers/16/req_wrap.h +0 -77
  373. package/src/headers/16/spawn_sync.h +0 -242
  374. package/src/headers/16/stream_base-inl.h +0 -303
  375. package/src/headers/16/stream_base.h +0 -454
  376. package/src/headers/16/stream_pipe.h +0 -73
  377. package/src/headers/16/string_bytes.h +0 -122
  378. package/src/headers/16/string_decoder-inl.h +0 -37
  379. package/src/headers/16/string_search.h +0 -638
  380. package/src/headers/16/tcp_wrap.h +0 -103
  381. package/src/headers/16/threadpoolwork-inl.h +0 -57
  382. package/src/headers/16/timer_wrap.h +0 -84
  383. package/src/headers/16/tracing/agent.h +0 -195
  384. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  385. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  386. package/src/headers/16/tracing/trace_event.h +0 -720
  387. package/src/headers/16/tracing/trace_event_common.h +0 -1109
  388. package/src/headers/16/tracing/traced_value.h +0 -70
  389. package/src/headers/16/tty_wrap.h +0 -66
  390. package/src/headers/16/util-inl.h +0 -575
  391. package/src/headers/16/util.h +0 -824
  392. package/src/headers/16/v8abbr.h +0 -123
  393. package/src/headers/16/v8ustack.d +0 -695
  394. package/src/headers/18/aliased_buffer.h +0 -315
  395. package/src/headers/18/aliased_struct-inl.h +0 -54
  396. package/src/headers/18/aliased_struct.h +0 -63
  397. package/src/headers/18/base64-inl.h +0 -189
  398. package/src/headers/18/base64.h +0 -69
  399. package/src/headers/18/base_object-inl.h +0 -374
  400. package/src/headers/18/callback_queue-inl.h +0 -97
  401. package/src/headers/18/callback_queue.h +0 -78
  402. package/src/headers/18/cares_wrap.h +0 -523
  403. package/src/headers/18/connect_wrap.h +0 -26
  404. package/src/headers/18/connection_wrap.h +0 -30
  405. package/src/headers/18/crypto/crypto_aes.h +0 -89
  406. package/src/headers/18/crypto/crypto_bio.h +0 -194
  407. package/src/headers/18/crypto/crypto_cipher.h +0 -291
  408. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  409. package/src/headers/18/crypto/crypto_common.h +0 -151
  410. package/src/headers/18/crypto/crypto_dh.h +0 -156
  411. package/src/headers/18/crypto/crypto_dsa.h +0 -77
  412. package/src/headers/18/crypto/crypto_ec.h +0 -170
  413. package/src/headers/18/crypto/crypto_groups.h +0 -415
  414. package/src/headers/18/crypto/crypto_hash.h +0 -89
  415. package/src/headers/18/crypto/crypto_hkdf.h +0 -65
  416. package/src/headers/18/crypto/crypto_hmac.h +0 -94
  417. package/src/headers/18/crypto/crypto_keygen.h +0 -305
  418. package/src/headers/18/crypto/crypto_pbkdf2.h +0 -76
  419. package/src/headers/18/crypto/crypto_random.h +0 -130
  420. package/src/headers/18/crypto/crypto_rsa.h +0 -141
  421. package/src/headers/18/crypto/crypto_scrypt.h +0 -87
  422. package/src/headers/18/crypto/crypto_sig.h +0 -168
  423. package/src/headers/18/crypto/crypto_spkac.h +0 -21
  424. package/src/headers/18/crypto/crypto_timing.h +0 -20
  425. package/src/headers/18/crypto/crypto_x509.h +0 -143
  426. package/src/headers/18/debug_utils-inl.h +0 -223
  427. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  428. package/src/headers/18/env-inl.h +0 -1308
  429. package/src/headers/18/env.h +0 -1667
  430. package/src/headers/18/inspector_agent.h +0 -144
  431. package/src/headers/18/inspector_io.h +0 -78
  432. package/src/headers/18/inspector_profiler.h +0 -149
  433. package/src/headers/18/inspector_socket.h +0 -60
  434. package/src/headers/18/inspector_socket_server.h +0 -110
  435. package/src/headers/18/js_stream.h +0 -52
  436. package/src/headers/18/json_utils.h +0 -161
  437. package/src/headers/18/memory_tracker.h +0 -284
  438. package/src/headers/18/module_wrap.h +0 -116
  439. package/src/headers/18/node_binding.h +0 -99
  440. package/src/headers/18/node_context_data.h +0 -44
  441. package/src/headers/18/node_contextify.h +0 -196
  442. package/src/headers/18/node_crypto.h +0 -57
  443. package/src/headers/18/node_dir.h +0 -52
  444. package/src/headers/18/node_dtrace.h +0 -86
  445. package/src/headers/18/node_external_reference.h +0 -145
  446. package/src/headers/18/node_file.h +0 -426
  447. package/src/headers/18/node_http2_state.h +0 -149
  448. package/src/headers/18/node_i18n.h +0 -145
  449. package/src/headers/18/node_mem-inl.h +0 -112
  450. package/src/headers/18/node_mem.h +0 -45
  451. package/src/headers/18/node_mutex.h +0 -323
  452. package/src/headers/18/node_native_module.h +0 -109
  453. package/src/headers/18/node_native_module_env.h +0 -71
  454. package/src/headers/18/node_object_wrap.h +0 -132
  455. package/src/headers/18/node_process-inl.h +0 -26
  456. package/src/headers/18/node_report.h +0 -47
  457. package/src/headers/18/node_revert.h +0 -82
  458. package/src/headers/18/node_root_certs.h +0 -3246
  459. package/src/headers/18/node_snapshot_builder.h +0 -43
  460. package/src/headers/18/node_snapshotable.h +0 -130
  461. package/src/headers/18/node_stat_watcher.h +0 -72
  462. package/src/headers/18/node_union_bytes.h +0 -103
  463. package/src/headers/18/node_url.h +0 -205
  464. package/src/headers/18/node_v8.h +0 -41
  465. package/src/headers/18/node_v8_platform-inl.h +0 -194
  466. package/src/headers/18/node_wasi.h +0 -108
  467. package/src/headers/18/node_watchdog.h +0 -152
  468. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  469. package/src/headers/18/node_win32_etw_provider.h +0 -99
  470. package/src/headers/18/pipe_wrap.h +0 -80
  471. package/src/headers/18/req_wrap-inl.h +0 -170
  472. package/src/headers/18/spawn_sync.h +0 -242
  473. package/src/headers/18/stream_wrap.h +0 -133
  474. package/src/headers/18/string_decoder-inl.h +0 -37
  475. package/src/headers/18/string_decoder.h +0 -50
  476. package/src/headers/18/string_search.h +0 -638
  477. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  478. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  479. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  480. package/src/headers/18/tracing/traced_value.h +0 -70
  481. package/src/headers/18/udp_wrap.h +0 -227
  482. package/src/headers/18/v8abbr.h +0 -123
  483. /package/src/headers/{14 → 20}/tracing/node_trace_buffer.h +0 -0
  484. /package/src/headers/{14 → 20}/tracing/node_trace_writer.h +0 -0
  485. /package/src/headers/{14 → 20}/tracing/traced_value.h +0 -0
  486. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  487. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  488. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  489. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  490. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  491. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  492. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  493. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  494. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  495. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  496. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  497. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  498. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  499. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  500. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  501. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  502. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  503. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  504. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  505. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  506. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  507. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  508. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  509. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  510. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  511. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
@@ -28,24 +28,20 @@ class HostPort {
28
28
 
29
29
  void set_host(const std::string& host) { host_name_ = host; }
30
30
 
31
- void set_port(int port) { port_ = port; }
31
+ void set_port(uint16_t port) { port_ = port; }
32
32
 
33
33
  const std::string& host() const { return host_name_; }
34
34
 
35
- int port() const {
36
- // TODO(joyeecheung): make port a uint16_t
37
- CHECK_GE(port_, 0);
38
- return port_;
39
- }
35
+ uint16_t port() const { return port_; }
40
36
 
41
37
  void Update(const HostPort& other) {
42
38
  if (!other.host_name_.empty()) host_name_ = other.host_name_;
43
- if (other.port_ >= 0) port_ = other.port_;
39
+ port_ = other.port_;
44
40
  }
45
41
 
46
42
  private:
47
43
  std::string host_name_;
48
- int port_;
44
+ uint16_t port_;
49
45
  };
50
46
 
51
47
  class Options {
@@ -108,15 +104,18 @@ class EnvironmentOptions : public Options {
108
104
  public:
109
105
  bool abort_on_uncaught_exception = false;
110
106
  std::vector<std::string> conditions;
107
+ bool detect_module = false;
111
108
  std::string dns_result_order;
112
109
  bool enable_source_maps = false;
113
110
  bool experimental_fetch = true;
111
+ bool experimental_websocket = false;
114
112
  bool experimental_global_customevent = true;
115
113
  bool experimental_global_web_crypto = true;
116
114
  bool experimental_https_modules = false;
117
115
  bool experimental_wasm_modules = false;
118
116
  bool experimental_import_meta_resolve = false;
119
- std::string module_type;
117
+ std::string input_type; // Value of --input-type
118
+ std::string type; // Value of --experimental-default-type
120
119
  std::string experimental_policy;
121
120
  std::string experimental_policy_integrity;
122
121
  bool has_policy_integrity_string = false;
@@ -161,6 +160,7 @@ class EnvironmentOptions : public Options {
161
160
  std::string env_file;
162
161
  bool has_env_file_string = false;
163
162
  bool test_runner = false;
163
+ uint64_t test_runner_concurrency = 0;
164
164
  bool test_runner_coverage = false;
165
165
  std::vector<std::string> test_name_pattern;
166
166
  std::vector<std::string> test_reporter;
@@ -23,7 +23,7 @@
23
23
  #define SRC_NODE_VERSION_H_
24
24
 
25
25
  #define NODE_MAJOR_VERSION 20
26
- #define NODE_MINOR_VERSION 9
26
+ #define NODE_MINOR_VERSION 10
27
27
  #define NODE_PATCH_VERSION 0
28
28
 
29
29
  #define NODE_VERSION_IS_LTS 1
@@ -12,7 +12,8 @@ namespace permission {
12
12
 
13
13
  class ChildProcessPermission final : public PermissionBase {
14
14
  public:
15
- void Apply(const std::string& deny, PermissionScope scope) override;
15
+ void Apply(const std::vector<std::string>& allow,
16
+ PermissionScope scope) override;
16
17
  bool is_granted(PermissionScope perm,
17
18
  const std::string_view& param = "") override;
18
19
 
@@ -6,7 +6,6 @@
6
6
  #include "v8.h"
7
7
 
8
8
  #include <unordered_map>
9
- #include <vector>
10
9
  #include "permission/permission_base.h"
11
10
  #include "util.h"
12
11
 
@@ -16,23 +15,27 @@ namespace permission {
16
15
 
17
16
  class FSPermission final : public PermissionBase {
18
17
  public:
19
- void Apply(const std::string& deny, PermissionScope scope) override;
18
+ void Apply(const std::vector<std::string>& allow,
19
+ PermissionScope scope) override;
20
20
  bool is_granted(PermissionScope perm, const std::string_view& param) override;
21
21
 
22
- // For debugging purposes, use the gist function to print the whole tree
23
- // https://gist.github.com/RafaelGSS/5b4f09c559a54f53f9b7c8c030744d19
24
22
  struct RadixTree {
25
23
  struct Node {
26
24
  std::string prefix;
27
25
  std::unordered_map<char, Node*> children;
28
26
  Node* wildcard_child;
27
+ bool is_leaf;
29
28
 
30
29
  explicit Node(const std::string& pre)
31
- : prefix(pre), wildcard_child(nullptr) {}
30
+ : prefix(pre), wildcard_child(nullptr), is_leaf(false) {}
32
31
 
33
- Node() : wildcard_child(nullptr) {}
32
+ Node() : wildcard_child(nullptr), is_leaf(false) {}
34
33
 
35
34
  Node* CreateChild(std::string prefix) {
35
+ if (prefix.empty() && !is_leaf) {
36
+ is_leaf = true;
37
+ return this;
38
+ }
36
39
  char label = prefix[0];
37
40
 
38
41
  Node* child = children[label];
@@ -57,6 +60,7 @@ class FSPermission final : public PermissionBase {
57
60
  return split_child->CreateChild(prefix.substr(i));
58
61
  }
59
62
  }
63
+ child->is_leaf = true;
60
64
  return child->CreateChild(prefix.substr(i));
61
65
  }
62
66
 
@@ -115,7 +119,7 @@ class FSPermission final : public PermissionBase {
115
119
  if (children.size() == 0) {
116
120
  return true;
117
121
  }
118
- return children['\0'] != nullptr;
122
+ return is_leaf;
119
123
  }
120
124
  };
121
125
 
@@ -131,8 +135,6 @@ class FSPermission final : public PermissionBase {
131
135
 
132
136
  private:
133
137
  void GrantAccess(PermissionScope scope, const std::string& param);
134
- void RestrictAccess(PermissionScope scope,
135
- const std::vector<std::string>& params);
136
138
  // fs granted on startup
137
139
  RadixTree granted_in_fs_;
138
140
  RadixTree granted_out_fs_;
@@ -0,0 +1,29 @@
1
+ #ifndef SRC_PERMISSION_INSPECTOR_PERMISSION_H_
2
+ #define SRC_PERMISSION_INSPECTOR_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <string>
7
+ #include "permission/permission_base.h"
8
+
9
+ namespace node {
10
+
11
+ namespace permission {
12
+
13
+ class InspectorPermission final : public PermissionBase {
14
+ public:
15
+ void Apply(const std::vector<std::string>& allow,
16
+ PermissionScope scope) override;
17
+ bool is_granted(PermissionScope perm,
18
+ const std::string_view& param = "") override;
19
+
20
+ private:
21
+ bool deny_all_;
22
+ };
23
+
24
+ } // namespace permission
25
+
26
+ } // namespace node
27
+
28
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
29
+ #endif // SRC_PERMISSION_INSPECTOR_PERMISSION_H_
@@ -7,6 +7,7 @@
7
7
  #include "node_options.h"
8
8
  #include "permission/child_process_permission.h"
9
9
  #include "permission/fs_permission.h"
10
+ #include "permission/inspector_permission.h"
10
11
  #include "permission/permission_base.h"
11
12
  #include "permission/worker_permission.h"
12
13
  #include "v8.h"
@@ -39,6 +40,8 @@ class Permission {
39
40
  return is_scope_granted(permission, res);
40
41
  }
41
42
 
43
+ FORCE_INLINE bool enabled() const { return enabled_; }
44
+
42
45
  static PermissionScope StringToPermission(const std::string& perm);
43
46
  static const char* PermissionToString(PermissionScope perm);
44
47
  static void ThrowAccessDenied(Environment* env,
@@ -46,7 +49,7 @@ class Permission {
46
49
  const std::string_view& res);
47
50
 
48
51
  // CLI Call
49
- void Apply(const std::string& deny, PermissionScope scope);
52
+ void Apply(const std::vector<std::string>& allow, PermissionScope scope);
50
53
  void EnablePermissions();
51
54
 
52
55
  private:
@@ -22,10 +22,13 @@ namespace permission {
22
22
  #define WORKER_THREADS_PERMISSIONS(V) \
23
23
  V(WorkerThreads, "worker", PermissionsRoot)
24
24
 
25
+ #define INSPECTOR_PERMISSIONS(V) V(Inspector, "inspector", PermissionsRoot)
26
+
25
27
  #define PERMISSIONS(V) \
26
28
  FILESYSTEM_PERMISSIONS(V) \
27
29
  CHILD_PROCESS_PERMISSIONS(V) \
28
- WORKER_THREADS_PERMISSIONS(V)
30
+ WORKER_THREADS_PERMISSIONS(V) \
31
+ INSPECTOR_PERMISSIONS(V)
29
32
 
30
33
  #define V(name, _, __) k##name,
31
34
  enum class PermissionScope {
@@ -36,7 +39,8 @@ enum class PermissionScope {
36
39
 
37
40
  class PermissionBase {
38
41
  public:
39
- virtual void Apply(const std::string& deny, PermissionScope scope) = 0;
42
+ virtual void Apply(const std::vector<std::string>& allow,
43
+ PermissionScope scope) = 0;
40
44
  virtual bool is_granted(PermissionScope perm,
41
45
  const std::string_view& param = "") = 0;
42
46
  };
@@ -12,7 +12,8 @@ namespace permission {
12
12
 
13
13
  class WorkerPermission final : public PermissionBase {
14
14
  public:
15
- void Apply(const std::string& deny, PermissionScope scope) override;
15
+ void Apply(const std::vector<std::string>& allow,
16
+ PermissionScope scope) override;
16
17
  bool is_granted(PermissionScope perm,
17
18
  const std::string_view& param = "") override;
18
19
 
@@ -1,6 +1,6 @@
1
1
  // This is an auto generated file, please do not edit.
2
- // Refer to tools/update-undici.sh
2
+ // Refer to tools/dep_updaters/update-undici.sh
3
3
  #ifndef SRC_UNDICI_VERSION_H_
4
4
  #define SRC_UNDICI_VERSION_H_
5
- #define UNDICI_VERSION "5.26.3"
5
+ #define UNDICI_VERSION "5.26.4"
6
6
  #endif // SRC_UNDICI_VERSION_H_
@@ -0,0 +1,6 @@
1
+ // This is an auto generated file, please do not edit.
2
+ // Refer to tools/dep_updaters/update-acorn.sh
3
+ #ifndef SRC_ACORN_VERSION_H_
4
+ #define SRC_ACORN_VERSION_H_
5
+ #define ACORN_VERSION "8.14.0"
6
+ #endif // SRC_ACORN_VERSION_H_
@@ -0,0 +1,243 @@
1
+ #ifndef SRC_ALIASED_BUFFER_INL_H_
2
+ #define SRC_ALIASED_BUFFER_INL_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "aliased_buffer.h"
7
+ #include "util-inl.h"
8
+
9
+ namespace node {
10
+
11
+ typedef size_t AliasedBufferIndex;
12
+
13
+ template <typename NativeT, typename V8T>
14
+ AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
15
+ v8::Isolate* isolate, const size_t count, const AliasedBufferIndex* index)
16
+ : isolate_(isolate), count_(count), byte_offset_(0), index_(index) {
17
+ CHECK_GT(count, 0);
18
+ if (index != nullptr) {
19
+ // Will be deserialized later.
20
+ return;
21
+ }
22
+ const v8::HandleScope handle_scope(isolate_);
23
+ const size_t size_in_bytes =
24
+ MultiplyWithOverflowCheck(sizeof(NativeT), count);
25
+
26
+ // allocate v8 ArrayBuffer
27
+ v8::Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate_, size_in_bytes);
28
+ buffer_ = static_cast<NativeT*>(ab->Data());
29
+
30
+ // allocate v8 TypedArray
31
+ v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, count);
32
+ js_array_ = v8::Global<V8T>(isolate, js_array);
33
+ }
34
+
35
+ template <typename NativeT, typename V8T>
36
+ AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
37
+ v8::Isolate* isolate,
38
+ const size_t byte_offset,
39
+ const size_t count,
40
+ const AliasedBufferBase<uint8_t, v8::Uint8Array>& backing_buffer,
41
+ const AliasedBufferIndex* index)
42
+ : isolate_(isolate),
43
+ count_(count),
44
+ byte_offset_(byte_offset),
45
+ index_(index) {
46
+ if (index != nullptr) {
47
+ // Will be deserialized later.
48
+ return;
49
+ }
50
+ const v8::HandleScope handle_scope(isolate_);
51
+ v8::Local<v8::ArrayBuffer> ab = backing_buffer.GetArrayBuffer();
52
+
53
+ // validate that the byte_offset is aligned with sizeof(NativeT)
54
+ CHECK_EQ(byte_offset & (sizeof(NativeT) - 1), 0);
55
+ // validate this fits inside the backing buffer
56
+ CHECK_LE(MultiplyWithOverflowCheck(sizeof(NativeT), count),
57
+ ab->ByteLength() - byte_offset);
58
+
59
+ buffer_ = reinterpret_cast<NativeT*>(
60
+ const_cast<uint8_t*>(backing_buffer.GetNativeBuffer() + byte_offset));
61
+
62
+ v8::Local<V8T> js_array = V8T::New(ab, byte_offset, count);
63
+ js_array_ = v8::Global<V8T>(isolate, js_array);
64
+ }
65
+
66
+ template <typename NativeT, typename V8T>
67
+ AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
68
+ const AliasedBufferBase& that)
69
+ : isolate_(that.isolate_),
70
+ count_(that.count_),
71
+ byte_offset_(that.byte_offset_),
72
+ buffer_(that.buffer_) {
73
+ js_array_ = v8::Global<V8T>(that.isolate_, that.GetJSArray());
74
+ DCHECK(is_valid());
75
+ }
76
+
77
+ template <typename NativeT, typename V8T>
78
+ AliasedBufferIndex AliasedBufferBase<NativeT, V8T>::Serialize(
79
+ v8::Local<v8::Context> context, v8::SnapshotCreator* creator) {
80
+ DCHECK(is_valid());
81
+ return creator->AddData(context, GetJSArray());
82
+ }
83
+
84
+ template <typename NativeT, typename V8T>
85
+ inline void AliasedBufferBase<NativeT, V8T>::Deserialize(
86
+ v8::Local<v8::Context> context) {
87
+ DCHECK_NOT_NULL(index_);
88
+ v8::Local<V8T> arr =
89
+ context->GetDataFromSnapshotOnce<V8T>(*index_).ToLocalChecked();
90
+ // These may not hold true for AliasedBuffers that have grown, so should
91
+ // be removed when we expand the snapshot support.
92
+ DCHECK_EQ(count_, arr->Length());
93
+ DCHECK_EQ(byte_offset_, arr->ByteOffset());
94
+ uint8_t* raw = static_cast<uint8_t*>(arr->Buffer()->Data());
95
+ buffer_ = reinterpret_cast<NativeT*>(raw + byte_offset_);
96
+ js_array_.Reset(isolate_, arr);
97
+ index_ = nullptr;
98
+ }
99
+
100
+ template <typename NativeT, typename V8T>
101
+ AliasedBufferBase<NativeT, V8T>& AliasedBufferBase<NativeT, V8T>::operator=(
102
+ AliasedBufferBase<NativeT, V8T>&& that) noexcept {
103
+ DCHECK(is_valid());
104
+ this->~AliasedBufferBase();
105
+ isolate_ = that.isolate_;
106
+ count_ = that.count_;
107
+ byte_offset_ = that.byte_offset_;
108
+ buffer_ = that.buffer_;
109
+
110
+ js_array_.Reset(isolate_, that.js_array_.Get(isolate_));
111
+
112
+ that.buffer_ = nullptr;
113
+ that.js_array_.Reset();
114
+ return *this;
115
+ }
116
+
117
+ template <typename NativeT, typename V8T>
118
+ v8::Local<V8T> AliasedBufferBase<NativeT, V8T>::GetJSArray() const {
119
+ DCHECK(is_valid());
120
+ return js_array_.Get(isolate_);
121
+ }
122
+
123
+ template <typename NativeT, typename V8T>
124
+ void AliasedBufferBase<NativeT, V8T>::Release() {
125
+ DCHECK_NULL(index_);
126
+ js_array_.Reset();
127
+ }
128
+
129
+ template <typename NativeT, typename V8T>
130
+ inline void AliasedBufferBase<NativeT, V8T>::MakeWeak() {
131
+ DCHECK(is_valid());
132
+ js_array_.SetWeak();
133
+ }
134
+
135
+ template <typename NativeT, typename V8T>
136
+ v8::Local<v8::ArrayBuffer> AliasedBufferBase<NativeT, V8T>::GetArrayBuffer()
137
+ const {
138
+ return GetJSArray()->Buffer();
139
+ }
140
+
141
+ template <typename NativeT, typename V8T>
142
+ inline const NativeT* AliasedBufferBase<NativeT, V8T>::GetNativeBuffer() const {
143
+ DCHECK(is_valid());
144
+ return buffer_;
145
+ }
146
+
147
+ template <typename NativeT, typename V8T>
148
+ inline const NativeT* AliasedBufferBase<NativeT, V8T>::operator*() const {
149
+ return GetNativeBuffer();
150
+ }
151
+
152
+ template <typename NativeT, typename V8T>
153
+ inline void AliasedBufferBase<NativeT, V8T>::SetValue(const size_t index,
154
+ NativeT value) {
155
+ DCHECK_LT(index, count_);
156
+ DCHECK(is_valid());
157
+ buffer_[index] = value;
158
+ }
159
+
160
+ template <typename NativeT, typename V8T>
161
+ inline const NativeT AliasedBufferBase<NativeT, V8T>::GetValue(
162
+ const size_t index) const {
163
+ DCHECK(is_valid());
164
+ DCHECK_LT(index, count_);
165
+ return buffer_[index];
166
+ }
167
+
168
+ template <typename NativeT, typename V8T>
169
+ typename AliasedBufferBase<NativeT, V8T>::Reference
170
+ AliasedBufferBase<NativeT, V8T>::operator[](size_t index) {
171
+ DCHECK(is_valid());
172
+ return Reference(this, index);
173
+ }
174
+
175
+ template <typename NativeT, typename V8T>
176
+ NativeT AliasedBufferBase<NativeT, V8T>::operator[](size_t index) const {
177
+ return GetValue(index);
178
+ }
179
+
180
+ template <typename NativeT, typename V8T>
181
+ size_t AliasedBufferBase<NativeT, V8T>::Length() const {
182
+ return count_;
183
+ }
184
+
185
+ template <typename NativeT, typename V8T>
186
+ void AliasedBufferBase<NativeT, V8T>::reserve(size_t new_capacity) {
187
+ DCHECK(is_valid());
188
+ DCHECK_GE(new_capacity, count_);
189
+ DCHECK_EQ(byte_offset_, 0);
190
+ const v8::HandleScope handle_scope(isolate_);
191
+
192
+ const size_t old_size_in_bytes = sizeof(NativeT) * count_;
193
+ const size_t new_size_in_bytes =
194
+ MultiplyWithOverflowCheck(sizeof(NativeT), new_capacity);
195
+
196
+ // allocate v8 new ArrayBuffer
197
+ v8::Local<v8::ArrayBuffer> ab =
198
+ v8::ArrayBuffer::New(isolate_, new_size_in_bytes);
199
+
200
+ // allocate new native buffer
201
+ NativeT* new_buffer = static_cast<NativeT*>(ab->Data());
202
+ // copy old content
203
+ memcpy(new_buffer, buffer_, old_size_in_bytes);
204
+
205
+ // allocate v8 TypedArray
206
+ v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, new_capacity);
207
+
208
+ // move over old v8 TypedArray
209
+ js_array_ = std::move(v8::Global<V8T>(isolate_, js_array));
210
+
211
+ buffer_ = new_buffer;
212
+ count_ = new_capacity;
213
+ }
214
+
215
+ template <typename NativeT, typename V8T>
216
+ inline bool AliasedBufferBase<NativeT, V8T>::is_valid() const {
217
+ return index_ == nullptr && !js_array_.IsEmpty();
218
+ }
219
+
220
+ template <typename NativeT, typename V8T>
221
+ inline size_t AliasedBufferBase<NativeT, V8T>::SelfSize() const {
222
+ return sizeof(*this);
223
+ }
224
+
225
+ #define VM(NativeT, V8T) \
226
+ template <> \
227
+ inline const char* AliasedBufferBase<NativeT, v8::V8T>::MemoryInfoName() \
228
+ const { \
229
+ return "Aliased" #V8T; \
230
+ } \
231
+ template <> \
232
+ inline void AliasedBufferBase<NativeT, v8::V8T>::MemoryInfo( \
233
+ node::MemoryTracker* tracker) const { \
234
+ tracker->TrackField("js_array", js_array_); \
235
+ }
236
+ ALIASED_BUFFER_LIST(VM)
237
+ #undef VM
238
+
239
+ } // namespace node
240
+
241
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
242
+
243
+ #endif // SRC_ALIASED_BUFFER_INL_H_