@encharm/cws 4.4.1 → 4.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/binding.gyp +1 -1
  2. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  3. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  4. package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
  5. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  6. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  7. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  8. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  9. package/dist/bindings/cws_linux_x64_node137.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  12. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  13. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  14. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  15. package/package.json +1 -1
  16. package/src/Addon.h +13 -23
  17. package/src/Socket.h +0 -1
  18. package/src/headers/22/acorn_version.h +6 -0
  19. package/src/headers/22/aliased_buffer-inl.h +243 -0
  20. package/src/headers/22/aliased_buffer.h +206 -0
  21. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  22. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  23. package/src/headers/{18 → 22}/base_object-inl.h +57 -117
  24. package/src/headers/{18 → 22}/base_object.h +58 -30
  25. package/src/headers/22/base_object_types.h +74 -0
  26. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  27. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  28. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  29. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  30. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  31. package/src/headers/22/cleanup_queue-inl.h +62 -0
  32. package/src/headers/22/cleanup_queue.h +85 -0
  33. package/src/headers/22/compile_cache.h +104 -0
  34. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  35. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  36. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  37. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  38. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  39. package/src/headers/22/crypto/ncrypto.h +752 -0
  40. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  41. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  42. package/src/headers/22/encoding_binding.h +59 -0
  43. package/src/headers/{14 → 22}/env-inl.h +276 -409
  44. package/src/headers/22/env.h +1266 -0
  45. package/src/headers/22/env_properties.h +497 -0
  46. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  47. package/src/headers/{18 → 22}/histogram.h +88 -48
  48. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  49. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  50. package/src/headers/22/js_native_api.h +619 -0
  51. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  52. package/src/headers/22/js_native_api_v8.h +485 -0
  53. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  54. package/src/headers/22/json_parser.h +40 -0
  55. package/src/headers/{16 → 22}/json_utils.h +19 -8
  56. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  57. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  58. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  59. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  60. package/src/headers/{18 → 22}/node.h +465 -68
  61. package/src/headers/{18 → 22}/node_api.h +66 -81
  62. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  63. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  64. package/src/headers/22/node_binding.h +154 -0
  65. package/src/headers/{18 → 22}/node_blob.h +46 -78
  66. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  67. package/src/headers/{18 → 22}/node_bob.h +2 -6
  68. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  69. package/src/headers/22/node_builtins.h +220 -0
  70. package/src/headers/{18 → 22}/node_constants.h +3 -5
  71. package/src/headers/22/node_context_data.h +168 -0
  72. package/src/headers/22/node_contextify.h +199 -0
  73. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  74. package/src/headers/22/node_dotenv.h +45 -0
  75. package/src/headers/{18 → 22}/node_errors.h +86 -27
  76. package/src/headers/22/node_exit_code.h +54 -0
  77. package/src/headers/22/node_external_reference.h +249 -0
  78. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  79. package/src/headers/{16 → 22}/node_file.h +122 -11
  80. package/src/headers/{18 → 22}/node_http2.h +28 -11
  81. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  82. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  83. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  84. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  85. package/src/headers/{18 → 22}/node_internals.h +121 -59
  86. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  87. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  88. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  89. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  90. package/src/headers/{18 → 22}/node_options.h +124 -39
  91. package/src/headers/{18 → 22}/node_perf.h +0 -2
  92. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  93. package/src/headers/{18 → 22}/node_platform.h +11 -5
  94. package/src/headers/{18 → 22}/node_process.h +26 -14
  95. package/src/headers/22/node_realm-inl.h +145 -0
  96. package/src/headers/22/node_realm.h +184 -0
  97. package/src/headers/{16 → 22}/node_report.h +13 -17
  98. package/src/headers/{16 → 22}/node_revert.h +3 -3
  99. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  100. package/src/headers/22/node_sea.h +64 -0
  101. package/src/headers/22/node_shadow_realm.h +46 -0
  102. package/src/headers/22/node_snapshot_builder.h +57 -0
  103. package/src/headers/22/node_snapshotable.h +174 -0
  104. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  105. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  106. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  107. package/src/headers/22/node_threadsafe_cow.h +105 -0
  108. package/src/headers/22/node_union_bytes.h +81 -0
  109. package/src/headers/22/node_url.h +96 -0
  110. package/src/headers/22/node_v8.h +77 -0
  111. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  112. package/src/headers/{16 → 22}/node_version.h +21 -9
  113. package/src/headers/22/node_wasi.h +185 -0
  114. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  115. package/src/headers/{18 → 22}/node_worker.h +7 -2
  116. package/src/headers/22/permission/child_process_permission.h +31 -0
  117. package/src/headers/22/permission/fs_permission.h +167 -0
  118. package/src/headers/22/permission/inspector_permission.h +31 -0
  119. package/src/headers/22/permission/permission.h +99 -0
  120. package/src/headers/22/permission/permission_base.h +60 -0
  121. package/src/headers/22/permission/wasi_permission.h +31 -0
  122. package/src/headers/22/permission/worker_permission.h +31 -0
  123. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  124. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  125. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  126. package/src/headers/{18 → 22}/stream_base.h +35 -16
  127. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  128. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  129. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  130. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  131. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  132. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  133. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  134. package/src/headers/22/timers.h +76 -0
  135. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  136. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  137. package/src/headers/22/undici_version.h +6 -0
  138. package/src/headers/{18 → 22}/util-inl.h +97 -127
  139. package/src/headers/{18 → 22}/util.h +293 -106
  140. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  141. package/src/headers/24/acorn_version.h +6 -0
  142. package/src/headers/24/addon_permission.h +31 -0
  143. package/src/headers/{16/tracing → 24}/agent.h +1 -1
  144. package/src/headers/24/aliased_buffer-inl.h +244 -0
  145. package/src/headers/24/aliased_buffer.h +206 -0
  146. package/src/headers/24/amaro_version.h +6 -0
  147. package/src/headers/24/application.h +165 -0
  148. package/src/headers/24/async_context_frame.h +33 -0
  149. package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
  150. package/src/headers/{16 → 24}/async_wrap.h +86 -88
  151. package/src/headers/{16 → 24}/base_object-inl.h +75 -119
  152. package/src/headers/{16 → 24}/base_object.h +84 -40
  153. package/src/headers/24/base_object_types.h +74 -0
  154. package/src/headers/24/bindingdata.h +272 -0
  155. package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
  156. package/src/headers/24/blob_serializer_deserializer.h +132 -0
  157. package/src/headers/{18 → 24}/callback_queue.h +1 -0
  158. package/src/headers/{18 → 24}/cares_wrap.h +68 -144
  159. package/src/headers/24/child_process_permission.h +31 -0
  160. package/src/headers/24/cid.h +127 -0
  161. package/src/headers/24/cjs_module_lexer_version.h +6 -0
  162. package/src/headers/24/cleanup_queue-inl.h +36 -0
  163. package/src/headers/24/cleanup_queue.h +79 -0
  164. package/src/headers/24/compile_cache.h +113 -0
  165. package/src/headers/24/cppgc_helpers-inl.h +65 -0
  166. package/src/headers/24/cppgc_helpers.h +162 -0
  167. package/src/headers/24/crypto/crypto_aes.h +97 -0
  168. package/src/headers/24/crypto/crypto_argon2.h +86 -0
  169. package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
  170. package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
  171. package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
  172. package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
  173. package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
  174. package/src/headers/24/crypto/crypto_common.h +48 -0
  175. package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
  176. package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
  177. package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
  178. package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
  179. package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
  180. package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
  181. package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
  182. package/src/headers/24/crypto/crypto_kem.h +113 -0
  183. package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
  184. package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
  185. package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
  186. package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
  187. package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
  188. package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
  189. package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
  190. package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
  191. package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
  192. package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
  193. package/src/headers/24/crypto/crypto_x509.h +140 -0
  194. package/src/headers/24/data.h +148 -0
  195. package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
  196. package/src/headers/{16 → 24}/debug_utils.h +31 -22
  197. package/src/headers/24/defs.h +254 -0
  198. package/src/headers/24/embedded_data.h +17 -0
  199. package/src/headers/24/encoding_binding.h +60 -0
  200. package/src/headers/24/endpoint.h +421 -0
  201. package/src/headers/{16 → 24}/env-inl.h +198 -540
  202. package/src/headers/24/env.h +1257 -0
  203. package/src/headers/24/env_properties.h +561 -0
  204. package/src/headers/24/fs_permission.h +167 -0
  205. package/src/headers/{16 → 24}/handle_wrap.h +4 -2
  206. package/src/headers/{16 → 24}/histogram-inl.h +34 -15
  207. package/src/headers/24/histogram.h +279 -0
  208. package/src/headers/24/http3.h +44 -0
  209. package/src/headers/{18 → 24}/inspector_agent.h +23 -2
  210. package/src/headers/24/inspector_permission.h +31 -0
  211. package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
  212. package/src/headers/24/io_agent.h +30 -0
  213. package/src/headers/{18 → 24}/js_native_api.h +74 -30
  214. package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
  215. package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
  216. package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
  217. package/src/headers/24/json_parser.h +40 -0
  218. package/src/headers/{18 → 24}/json_utils.h +19 -8
  219. package/src/headers/24/logstream.h +81 -0
  220. package/src/headers/24/main_thread_interface.h +116 -0
  221. package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
  222. package/src/headers/{16 → 24}/memory_tracker.h +58 -9
  223. package/src/headers/24/module_wrap.h +229 -0
  224. package/src/headers/24/ncrypto.h +1625 -0
  225. package/src/headers/24/network_agent.h +118 -0
  226. package/src/headers/24/network_inspector.h +45 -0
  227. package/src/headers/24/network_resource_manager.h +29 -0
  228. package/src/headers/{16 → 24}/node.h +560 -72
  229. package/src/headers/24/node_api.h +269 -0
  230. package/src/headers/24/node_api_internals.h +46 -0
  231. package/src/headers/{16 → 24}/node_api_types.h +13 -11
  232. package/src/headers/24/node_binding.h +163 -0
  233. package/src/headers/{16 → 24}/node_blob.h +46 -78
  234. package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
  235. package/src/headers/{16 → 24}/node_bob.h +2 -6
  236. package/src/headers/{14 → 24}/node_buffer.h +1 -1
  237. package/src/headers/24/node_builtins.h +223 -0
  238. package/src/headers/24/node_config_file.h +65 -0
  239. package/src/headers/{14 → 24}/node_constants.h +3 -5
  240. package/src/headers/24/node_context_data.h +168 -0
  241. package/src/headers/24/node_contextify.h +261 -0
  242. package/src/headers/{18 → 24}/node_crypto.h +7 -2
  243. package/src/headers/24/node_debug.h +25 -0
  244. package/src/headers/24/node_dotenv.h +45 -0
  245. package/src/headers/{16 → 24}/node_errors.h +146 -32
  246. package/src/headers/24/node_exit_code.h +54 -0
  247. package/src/headers/{18 → 24}/node_external_reference.h +44 -22
  248. package/src/headers/{16 → 24}/node_file-inl.h +156 -50
  249. package/src/headers/{18 → 24}/node_file.h +129 -15
  250. package/src/headers/{16 → 24}/node_http2.h +53 -18
  251. package/src/headers/{14 → 24}/node_http2_state.h +35 -25
  252. package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
  253. package/src/headers/{16 → 24}/node_http_common.h +63 -59
  254. package/src/headers/{18 → 24}/node_i18n.h +5 -18
  255. package/src/headers/{16 → 24}/node_internals.h +131 -76
  256. package/src/headers/24/node_json.h +24 -0
  257. package/src/headers/24/node_large_page.h +34 -0
  258. package/src/headers/24/node_locks.h +180 -0
  259. package/src/headers/{14 → 24}/node_main_instance.h +15 -44
  260. package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
  261. package/src/headers/{16 → 24}/node_messaging.h +27 -11
  262. package/src/headers/{16 → 24}/node_metadata.h +44 -2
  263. package/src/headers/24/node_modules.h +93 -0
  264. package/src/headers/{16 → 24}/node_options-inl.h +93 -46
  265. package/src/headers/{16 → 24}/node_options.h +251 -63
  266. package/src/headers/{16 → 24}/node_perf.h +6 -25
  267. package/src/headers/{16 → 24}/node_perf_common.h +23 -10
  268. package/src/headers/24/node_platform.h +286 -0
  269. package/src/headers/24/node_process.h +111 -0
  270. package/src/headers/24/node_realm-inl.h +153 -0
  271. package/src/headers/24/node_realm.h +236 -0
  272. package/src/headers/{18 → 24}/node_report.h +13 -17
  273. package/src/headers/{18 → 24}/node_revert.h +3 -3
  274. package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
  275. package/src/headers/24/node_sea.h +74 -0
  276. package/src/headers/24/node_shadow_realm.h +46 -0
  277. package/src/headers/24/node_snapshot_builder.h +57 -0
  278. package/src/headers/24/node_snapshotable.h +174 -0
  279. package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
  280. package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
  281. package/src/headers/24/node_sqlite.h +270 -0
  282. package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
  283. package/src/headers/24/node_string.h +101 -0
  284. package/src/headers/24/node_task_runner.h +92 -0
  285. package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
  286. package/src/headers/24/node_threadsafe_cow.h +105 -0
  287. package/src/headers/24/node_union_bytes.h +81 -0
  288. package/src/headers/24/node_url.h +101 -0
  289. package/src/headers/24/node_url_pattern.h +118 -0
  290. package/src/headers/24/node_v8.h +77 -0
  291. package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
  292. package/src/headers/{18 → 24}/node_version.h +18 -6
  293. package/src/headers/24/node_wasi.h +185 -0
  294. package/src/headers/24/node_wasm_web_api.h +55 -0
  295. package/src/headers/{18 → 24}/node_watchdog.h +2 -0
  296. package/src/headers/24/node_webstorage.h +60 -0
  297. package/src/headers/{16 → 24}/node_worker.h +24 -10
  298. package/src/headers/24/packet.h +155 -0
  299. package/src/headers/24/path.h +33 -0
  300. package/src/headers/24/permission/addon_permission.h +31 -0
  301. package/src/headers/24/permission/child_process_permission.h +31 -0
  302. package/src/headers/24/permission/fs_permission.h +167 -0
  303. package/src/headers/24/permission/inspector_permission.h +31 -0
  304. package/src/headers/24/permission/permission.h +100 -0
  305. package/src/headers/24/permission/permission_base.h +65 -0
  306. package/src/headers/24/permission/wasi_permission.h +31 -0
  307. package/src/headers/24/permission/worker_permission.h +31 -0
  308. package/src/headers/24/permission.h +100 -0
  309. package/src/headers/24/permission_base.h +65 -0
  310. package/src/headers/24/preferredaddress.h +72 -0
  311. package/src/headers/24/protocol_helper.h +27 -0
  312. package/src/headers/24/queue.h +306 -0
  313. package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
  314. package/src/headers/{16 → 24}/req_wrap.h +3 -1
  315. package/src/headers/24/runtime_agent.h +41 -0
  316. package/src/headers/24/session.h +528 -0
  317. package/src/headers/24/sessionticket.h +108 -0
  318. package/src/headers/{18 → 24}/spawn_sync.h +9 -8
  319. package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
  320. package/src/headers/{16 → 24}/stream_base.h +43 -19
  321. package/src/headers/{16 → 24}/stream_pipe.h +7 -4
  322. package/src/headers/{18 → 24}/stream_wrap.h +2 -3
  323. package/src/headers/24/streams.h +370 -0
  324. package/src/headers/{16 → 24}/string_bytes.h +8 -21
  325. package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
  326. package/src/headers/{18 → 24}/string_decoder.h +0 -1
  327. package/src/headers/24/target_agent.h +75 -0
  328. package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
  329. package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
  330. package/src/headers/24/timer_wrap-inl.h +32 -0
  331. package/src/headers/{16 → 24}/timer_wrap.h +7 -4
  332. package/src/headers/24/timers.h +75 -0
  333. package/src/headers/24/tlscontext.h +228 -0
  334. package/src/headers/24/tokens.h +256 -0
  335. package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
  336. package/src/headers/24/traced_value.h +129 -0
  337. package/src/headers/24/tracing_agent.h +43 -0
  338. package/src/headers/24/transportparams.h +166 -0
  339. package/src/headers/{16 → 24}/tty_wrap.h +0 -1
  340. package/src/headers/{18 → 24}/udp_wrap.h +8 -5
  341. package/src/headers/24/undici_version.h +6 -0
  342. package/src/headers/{16 → 24}/util-inl.h +267 -131
  343. package/src/headers/{16 → 24}/util.h +338 -146
  344. package/src/headers/24/v8-external-memory-accounter.h +60 -0
  345. package/src/headers/24/v8-fast-api-calls.h +819 -0
  346. package/src/headers/24/v8-inspector.h +426 -0
  347. package/src/headers/24/wasi_permission.h +31 -0
  348. package/src/headers/24/worker_agent.h +40 -0
  349. package/src/headers/24/worker_inspector.h +124 -0
  350. package/src/headers/24/worker_permission.h +31 -0
  351. package/src/headers/24/zlib_version.h +6 -0
  352. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  353. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  354. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  355. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  356. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  357. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  358. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  359. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  360. package/src/headers/14/aliased_buffer.h +0 -263
  361. package/src/headers/14/allocated_buffer-inl.h +0 -110
  362. package/src/headers/14/allocated_buffer.h +0 -73
  363. package/src/headers/14/async_wrap.h +0 -230
  364. package/src/headers/14/base64.h +0 -183
  365. package/src/headers/14/base_object-inl.h +0 -371
  366. package/src/headers/14/base_object.h +0 -281
  367. package/src/headers/14/callback_queue-inl.h +0 -97
  368. package/src/headers/14/callback_queue.h +0 -78
  369. package/src/headers/14/debug_utils.h +0 -181
  370. package/src/headers/14/env.h +0 -1388
  371. package/src/headers/14/handle_wrap.h +0 -117
  372. package/src/headers/14/histogram-inl.h +0 -83
  373. package/src/headers/14/histogram.h +0 -98
  374. package/src/headers/14/inspector_agent.h +0 -149
  375. package/src/headers/14/inspector_profiler.h +0 -137
  376. package/src/headers/14/js_native_api.h +0 -544
  377. package/src/headers/14/js_native_api_types.h +0 -143
  378. package/src/headers/14/js_native_api_v8.h +0 -301
  379. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  380. package/src/headers/14/json_utils.h +0 -161
  381. package/src/headers/14/memory_tracker-inl.h +0 -355
  382. package/src/headers/14/module_wrap.h +0 -99
  383. package/src/headers/14/node.h +0 -1032
  384. package/src/headers/14/node_api.h +0 -255
  385. package/src/headers/14/node_api_types.h +0 -44
  386. package/src/headers/14/node_binding.h +0 -99
  387. package/src/headers/14/node_context_data.h +0 -44
  388. package/src/headers/14/node_contextify.h +0 -161
  389. package/src/headers/14/node_crypto.h +0 -865
  390. package/src/headers/14/node_crypto_bio.h +0 -195
  391. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  392. package/src/headers/14/node_crypto_clienthello.h +0 -132
  393. package/src/headers/14/node_crypto_common.h +0 -138
  394. package/src/headers/14/node_crypto_groups.h +0 -415
  395. package/src/headers/14/node_dtrace.h +0 -86
  396. package/src/headers/14/node_errors.h +0 -214
  397. package/src/headers/14/node_file-inl.h +0 -306
  398. package/src/headers/14/node_file.h +0 -417
  399. package/src/headers/14/node_http2.h +0 -1191
  400. package/src/headers/14/node_http_common-inl.h +0 -194
  401. package/src/headers/14/node_http_common.h +0 -529
  402. package/src/headers/14/node_i18n.h +0 -144
  403. package/src/headers/14/node_internals.h +0 -405
  404. package/src/headers/14/node_mem.h +0 -45
  405. package/src/headers/14/node_messaging.h +0 -303
  406. package/src/headers/14/node_metadata.h +0 -109
  407. package/src/headers/14/node_mutex.h +0 -247
  408. package/src/headers/14/node_native_module.h +0 -101
  409. package/src/headers/14/node_native_module_env.h +0 -66
  410. package/src/headers/14/node_options-inl.h +0 -451
  411. package/src/headers/14/node_options.h +0 -481
  412. package/src/headers/14/node_perf.h +0 -181
  413. package/src/headers/14/node_perf_common.h +0 -97
  414. package/src/headers/14/node_platform.h +0 -189
  415. package/src/headers/14/node_process.h +0 -40
  416. package/src/headers/14/node_report.h +0 -47
  417. package/src/headers/14/node_revert.h +0 -72
  418. package/src/headers/14/node_root_certs.h +0 -3458
  419. package/src/headers/14/node_sockaddr-inl.h +0 -170
  420. package/src/headers/14/node_sockaddr.h +0 -123
  421. package/src/headers/14/node_stat_watcher.h +0 -70
  422. package/src/headers/14/node_union_bytes.h +0 -103
  423. package/src/headers/14/node_url.h +0 -188
  424. package/src/headers/14/node_version.h +0 -98
  425. package/src/headers/14/node_wasi.h +0 -108
  426. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  427. package/src/headers/14/node_win32_etw_provider.h +0 -99
  428. package/src/headers/14/node_worker.h +0 -141
  429. package/src/headers/14/pipe_wrap.h +0 -78
  430. package/src/headers/14/req_wrap-inl.h +0 -170
  431. package/src/headers/14/req_wrap.h +0 -77
  432. package/src/headers/14/stream_base-inl.h +0 -275
  433. package/src/headers/14/stream_base.h +0 -434
  434. package/src/headers/14/stream_pipe.h +0 -73
  435. package/src/headers/14/stream_wrap.h +0 -130
  436. package/src/headers/14/string_bytes.h +0 -129
  437. package/src/headers/14/string_decoder.h +0 -50
  438. package/src/headers/14/string_search.h +0 -638
  439. package/src/headers/14/tcp_wrap.h +0 -101
  440. package/src/headers/14/tls_wrap.h +0 -222
  441. package/src/headers/14/tracing/agent.h +0 -195
  442. package/src/headers/14/tracing/traced_value.h +0 -70
  443. package/src/headers/14/tty_wrap.h +0 -64
  444. package/src/headers/14/udp_wrap.h +0 -227
  445. package/src/headers/14/util-inl.h +0 -566
  446. package/src/headers/14/util.h +0 -804
  447. package/src/headers/14/v8abbr.h +0 -124
  448. package/src/headers/16/aliased_buffer.h +0 -315
  449. package/src/headers/16/allocated_buffer-inl.h +0 -110
  450. package/src/headers/16/allocated_buffer.h +0 -73
  451. package/src/headers/16/async_wrap-inl.h +0 -94
  452. package/src/headers/16/base64-inl.h +0 -189
  453. package/src/headers/16/base64.h +0 -69
  454. package/src/headers/16/crypto/crypto_aes.h +0 -89
  455. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  456. package/src/headers/16/crypto/crypto_common.h +0 -187
  457. package/src/headers/16/crypto/crypto_dh.h +0 -157
  458. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  459. package/src/headers/16/crypto/crypto_ec.h +0 -169
  460. package/src/headers/16/crypto/crypto_groups.h +0 -415
  461. package/src/headers/16/crypto/crypto_hash.h +0 -89
  462. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  463. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  464. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  465. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  466. package/src/headers/16/crypto/crypto_random.h +0 -130
  467. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  468. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  469. package/src/headers/16/crypto/crypto_sig.h +0 -167
  470. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  471. package/src/headers/16/crypto/crypto_timing.h +0 -20
  472. package/src/headers/16/crypto/crypto_x509.h +0 -141
  473. package/src/headers/16/env.h +0 -1629
  474. package/src/headers/16/histogram.h +0 -216
  475. package/src/headers/16/js_native_api.h +0 -561
  476. package/src/headers/16/js_native_api_v8.h +0 -451
  477. package/src/headers/16/node.d +0 -315
  478. package/src/headers/16/node.stp +0 -146
  479. package/src/headers/16/node_api.h +0 -275
  480. package/src/headers/16/node_api_internals.h +0 -30
  481. package/src/headers/16/node_binding.h +0 -99
  482. package/src/headers/16/node_buffer.h +0 -92
  483. package/src/headers/16/node_constants.h +0 -84
  484. package/src/headers/16/node_context_data.h +0 -44
  485. package/src/headers/16/node_contextify.h +0 -196
  486. package/src/headers/16/node_dtrace.h +0 -86
  487. package/src/headers/16/node_external_reference.h +0 -129
  488. package/src/headers/16/node_main_instance.h +0 -103
  489. package/src/headers/16/node_native_module.h +0 -101
  490. package/src/headers/16/node_native_module_env.h +0 -68
  491. package/src/headers/16/node_platform.h +0 -192
  492. package/src/headers/16/node_process.h +0 -43
  493. package/src/headers/16/node_provider.d +0 -80
  494. package/src/headers/16/node_snapshotable.h +0 -137
  495. package/src/headers/16/node_union_bytes.h +0 -103
  496. package/src/headers/16/node_url.h +0 -205
  497. package/src/headers/16/node_v8.h +0 -41
  498. package/src/headers/16/node_v8_platform-inl.h +0 -194
  499. package/src/headers/16/node_wasi.h +0 -108
  500. package/src/headers/16/node_watchdog.h +0 -152
  501. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  502. package/src/headers/16/node_win32_etw_provider.h +0 -99
  503. package/src/headers/16/spawn_sync.h +0 -242
  504. package/src/headers/16/string_decoder-inl.h +0 -37
  505. package/src/headers/16/string_search.h +0 -638
  506. package/src/headers/16/threadpoolwork-inl.h +0 -57
  507. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  508. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  509. package/src/headers/16/tracing/trace_event.h +0 -720
  510. package/src/headers/16/tracing/traced_value.h +0 -70
  511. package/src/headers/16/v8abbr.h +0 -123
  512. package/src/headers/16/v8ustack.d +0 -695
  513. package/src/headers/18/aliased_buffer.h +0 -315
  514. package/src/headers/18/aliased_struct-inl.h +0 -54
  515. package/src/headers/18/aliased_struct.h +0 -63
  516. package/src/headers/18/base64-inl.h +0 -189
  517. package/src/headers/18/base64.h +0 -69
  518. package/src/headers/18/connect_wrap.h +0 -26
  519. package/src/headers/18/connection_wrap.h +0 -30
  520. package/src/headers/18/crypto/crypto_aes.h +0 -89
  521. package/src/headers/18/crypto/crypto_bio.h +0 -194
  522. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  523. package/src/headers/18/crypto/crypto_common.h +0 -151
  524. package/src/headers/18/crypto/crypto_groups.h +0 -415
  525. package/src/headers/18/crypto/crypto_x509.h +0 -143
  526. package/src/headers/18/debug_utils-inl.h +0 -223
  527. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  528. package/src/headers/18/env-inl.h +0 -1308
  529. package/src/headers/18/env.h +0 -1667
  530. package/src/headers/18/inspector_io.h +0 -78
  531. package/src/headers/18/inspector_socket.h +0 -60
  532. package/src/headers/18/inspector_socket_server.h +0 -110
  533. package/src/headers/18/js_stream.h +0 -52
  534. package/src/headers/18/memory_tracker.h +0 -284
  535. package/src/headers/18/module_wrap.h +0 -116
  536. package/src/headers/18/node_binding.h +0 -99
  537. package/src/headers/18/node_context_data.h +0 -44
  538. package/src/headers/18/node_contextify.h +0 -196
  539. package/src/headers/18/node_dir.h +0 -52
  540. package/src/headers/18/node_dtrace.h +0 -86
  541. package/src/headers/18/node_http2_state.h +0 -149
  542. package/src/headers/18/node_mem-inl.h +0 -112
  543. package/src/headers/18/node_native_module.h +0 -109
  544. package/src/headers/18/node_native_module_env.h +0 -71
  545. package/src/headers/18/node_object_wrap.h +0 -132
  546. package/src/headers/18/node_snapshot_builder.h +0 -43
  547. package/src/headers/18/node_snapshotable.h +0 -130
  548. package/src/headers/18/node_union_bytes.h +0 -103
  549. package/src/headers/18/node_url.h +0 -205
  550. package/src/headers/18/node_v8.h +0 -41
  551. package/src/headers/18/node_wasi.h +0 -108
  552. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  553. package/src/headers/18/node_win32_etw_provider.h +0 -99
  554. package/src/headers/18/string_search.h +0 -638
  555. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  556. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  557. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  558. package/src/headers/18/tracing/traced_value.h +0 -70
  559. package/src/headers/18/v8abbr.h +0 -123
  560. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  561. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  562. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  563. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  564. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  565. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  566. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  567. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  568. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  569. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  570. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  571. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  572. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  573. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  574. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  575. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  576. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  577. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  578. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  579. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  580. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  581. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  582. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  583. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  584. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  585. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
  586. /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
  587. /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
  588. /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
  589. /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
  590. /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
  591. /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
  592. /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
  593. /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
  594. /package/src/headers/{16 → 24}/inspector_io.h +0 -0
  595. /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
  596. /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
  597. /package/src/headers/{16 → 24}/js_stream.h +0 -0
  598. /package/src/headers/{16 → 24}/node_dir.h +0 -0
  599. /package/src/headers/{18 → 24}/node_mem.h +0 -0
  600. /package/src/headers/{18 → 24}/node_mutex.h +0 -0
  601. /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
  602. /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
  603. /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
  604. /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
  605. /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
  606. /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
@@ -0,0 +1,167 @@
1
+ #ifndef SRC_PERMISSION_FS_PERMISSION_H_
2
+ #define SRC_PERMISSION_FS_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "v8.h"
7
+
8
+ #include <unordered_map>
9
+ #include "permission/permission_base.h"
10
+ #include "util.h"
11
+
12
+ namespace node {
13
+
14
+ namespace permission {
15
+
16
+ class FSPermission final : public PermissionBase {
17
+ public:
18
+ void Apply(Environment* env,
19
+ const std::vector<std::string>& allow,
20
+ PermissionScope scope) override;
21
+ bool is_granted(Environment* env,
22
+ PermissionScope perm,
23
+ const std::string_view& param) const override;
24
+
25
+ struct RadixTree {
26
+ struct Node {
27
+ std::string prefix;
28
+ std::unordered_map<char, Node*> children;
29
+ Node* wildcard_child;
30
+ bool is_leaf;
31
+
32
+ explicit Node(const std::string& pre)
33
+ : prefix(pre), wildcard_child(nullptr), is_leaf(false) {}
34
+
35
+ Node() : wildcard_child(nullptr), is_leaf(false) {}
36
+
37
+ Node* CreateChild(const std::string& path_prefix) {
38
+ if (path_prefix.empty() && !is_leaf) {
39
+ is_leaf = true;
40
+ return this;
41
+ }
42
+
43
+ CHECK(!path_prefix.empty());
44
+ char label = path_prefix[0];
45
+
46
+ Node* child = children[label];
47
+ if (child == nullptr) {
48
+ children[label] = new Node(path_prefix);
49
+ return children[label];
50
+ }
51
+
52
+ // swap prefix
53
+ size_t i = 0;
54
+ size_t prefix_len = path_prefix.length();
55
+ for (; i < child->prefix.length(); ++i) {
56
+ if (i > prefix_len || path_prefix[i] != child->prefix[i]) {
57
+ std::string parent_prefix = child->prefix.substr(0, i);
58
+ std::string child_prefix = child->prefix.substr(i);
59
+
60
+ child->prefix = child_prefix;
61
+ Node* split_child = new Node(parent_prefix);
62
+ split_child->children[child_prefix[0]] = child;
63
+ children[parent_prefix[0]] = split_child;
64
+
65
+ return split_child->CreateChild(path_prefix.substr(i));
66
+ }
67
+ }
68
+ child->is_leaf = true;
69
+ return child->CreateChild(path_prefix.substr(i));
70
+ }
71
+
72
+ Node* CreateWildcardChild() {
73
+ if (wildcard_child != nullptr) {
74
+ return wildcard_child;
75
+ }
76
+ wildcard_child = new Node();
77
+ return wildcard_child;
78
+ }
79
+
80
+ Node* NextNode(const std::string& path, size_t idx) const {
81
+ if (idx >= path.length()) {
82
+ return nullptr;
83
+ }
84
+
85
+ // wildcard node takes precedence
86
+ if (children.size() > 1) {
87
+ auto it = children.find('*');
88
+ if (it != children.end()) {
89
+ return it->second;
90
+ }
91
+ }
92
+
93
+ auto it = children.find(path[idx]);
94
+ if (it == children.end()) {
95
+ return nullptr;
96
+ }
97
+ auto child = it->second;
98
+ // match prefix
99
+ size_t prefix_len = child->prefix.length();
100
+ for (size_t i = 0; i < path.length(); ++i) {
101
+ if (i >= prefix_len || child->prefix[i] == '*') {
102
+ return child;
103
+ }
104
+
105
+ // Handle optional trailing
106
+ // path = /home/subdirectory
107
+ // child = subdirectory/*
108
+ if (idx >= path.length() &&
109
+ child->prefix[i] == node::kPathSeparator) {
110
+ continue;
111
+ }
112
+
113
+ if (path[idx++] != child->prefix[i]) {
114
+ return nullptr;
115
+ }
116
+ }
117
+ return child;
118
+ }
119
+
120
+ // A node can be a *end* node and have children
121
+ // E.g: */slower*, */slown* are inserted:
122
+ // /slow
123
+ // ---> er
124
+ // ---> n
125
+ // If */slow* is inserted right after, it will create an
126
+ // empty node
127
+ // /slow
128
+ // ---> '\000' ASCII (0) || \0
129
+ // ---> er
130
+ // ---> n
131
+ bool IsEndNode() const {
132
+ if (children.empty()) {
133
+ return true;
134
+ }
135
+ return is_leaf;
136
+ }
137
+ };
138
+
139
+ RadixTree();
140
+ ~RadixTree();
141
+ void Insert(const std::string& s);
142
+ bool Lookup(const std::string_view& s) const { return Lookup(s, false); }
143
+ bool Lookup(const std::string_view& s, bool when_empty_return) const;
144
+
145
+ private:
146
+ Node* root_node_;
147
+ };
148
+
149
+ private:
150
+ void GrantAccess(PermissionScope scope, const std::string& param);
151
+ // fs granted on startup
152
+ RadixTree granted_in_fs_;
153
+ RadixTree granted_out_fs_;
154
+
155
+ bool deny_all_in_ = true;
156
+ bool deny_all_out_ = true;
157
+
158
+ bool allow_all_in_ = false;
159
+ bool allow_all_out_ = false;
160
+ };
161
+
162
+ } // namespace permission
163
+
164
+ } // namespace node
165
+
166
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
167
+ #endif // SRC_PERMISSION_FS_PERMISSION_H_
@@ -0,0 +1,31 @@
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(Environment* env,
16
+ const std::vector<std::string>& allow,
17
+ PermissionScope scope) override;
18
+ bool is_granted(Environment* env,
19
+ PermissionScope perm,
20
+ const std::string_view& param = "") const override;
21
+
22
+ private:
23
+ bool deny_all_;
24
+ };
25
+
26
+ } // namespace permission
27
+
28
+ } // namespace node
29
+
30
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
31
+ #endif // SRC_PERMISSION_INSPECTOR_PERMISSION_H_
@@ -0,0 +1,100 @@
1
+ #ifndef SRC_PERMISSION_PERMISSION_H_
2
+ #define SRC_PERMISSION_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "debug_utils.h"
7
+ #include "node_options.h"
8
+ #include "permission/addon_permission.h"
9
+ #include "permission/child_process_permission.h"
10
+ #include "permission/fs_permission.h"
11
+ #include "permission/inspector_permission.h"
12
+ #include "permission/permission_base.h"
13
+ #include "permission/wasi_permission.h"
14
+ #include "permission/worker_permission.h"
15
+ #include "v8.h"
16
+
17
+ #include <string_view>
18
+ #include <unordered_map>
19
+
20
+ namespace node {
21
+
22
+ class Environment;
23
+
24
+ namespace fs {
25
+ class FSReqBase;
26
+ }
27
+
28
+ namespace permission {
29
+
30
+ #define THROW_IF_INSUFFICIENT_PERMISSIONS(env, perm_, resource_, ...) \
31
+ do { \
32
+ if (!env->permission()->is_granted(env, perm_, resource_)) [[unlikely]] { \
33
+ node::permission::Permission::ThrowAccessDenied( \
34
+ (env), perm_, resource_); \
35
+ return __VA_ARGS__; \
36
+ } \
37
+ } while (0)
38
+
39
+ #define ASYNC_THROW_IF_INSUFFICIENT_PERMISSIONS( \
40
+ env, wrap, perm_, resource_, ...) \
41
+ do { \
42
+ if (!env->permission()->is_granted(env, perm_, resource_)) [[unlikely]] { \
43
+ node::permission::Permission::AsyncThrowAccessDenied( \
44
+ (env), wrap, perm_, resource_); \
45
+ return __VA_ARGS__; \
46
+ } \
47
+ } while (0)
48
+
49
+ class Permission {
50
+ public:
51
+ Permission();
52
+
53
+ FORCE_INLINE bool is_granted(Environment* env,
54
+ const PermissionScope permission,
55
+ const std::string_view& res = "") const {
56
+ if (!enabled_) [[likely]] {
57
+ return true;
58
+ }
59
+ return is_scope_granted(env, permission, res);
60
+ }
61
+
62
+ FORCE_INLINE bool enabled() const { return enabled_; }
63
+
64
+ static PermissionScope StringToPermission(const std::string& perm);
65
+ static const char* PermissionToString(PermissionScope perm);
66
+ static void ThrowAccessDenied(Environment* env,
67
+ PermissionScope perm,
68
+ const std::string_view& res);
69
+ static void AsyncThrowAccessDenied(Environment* env,
70
+ fs::FSReqBase* req_wrap,
71
+ PermissionScope perm,
72
+ const std::string_view& res);
73
+
74
+ // CLI Call
75
+ void Apply(Environment* env,
76
+ const std::vector<std::string>& allow,
77
+ PermissionScope scope);
78
+ void EnablePermissions();
79
+
80
+ private:
81
+ COLD_NOINLINE bool is_scope_granted(Environment* env,
82
+ const PermissionScope permission,
83
+ const std::string_view& res = "") const {
84
+ auto perm_node = nodes_.find(permission);
85
+ if (perm_node != nodes_.end()) {
86
+ return perm_node->second->is_granted(env, permission, res);
87
+ }
88
+ return false;
89
+ }
90
+
91
+ std::unordered_map<PermissionScope, std::shared_ptr<PermissionBase>> nodes_;
92
+ bool enabled_;
93
+ };
94
+
95
+ } // namespace permission
96
+
97
+ } // namespace node
98
+
99
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
100
+ #endif // SRC_PERMISSION_PERMISSION_H_
@@ -0,0 +1,65 @@
1
+ #ifndef SRC_PERMISSION_PERMISSION_BASE_H_
2
+ #define SRC_PERMISSION_PERMISSION_BASE_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <map>
7
+ #include <string>
8
+ #include <string_view>
9
+ #include "v8.h"
10
+
11
+ namespace node {
12
+
13
+ class Environment;
14
+
15
+ namespace permission {
16
+
17
+ #define FILESYSTEM_PERMISSIONS(V) \
18
+ V(FileSystem, "fs", PermissionsRoot, "") \
19
+ V(FileSystemRead, "fs.read", FileSystem, "--allow-fs-read") \
20
+ V(FileSystemWrite, "fs.write", FileSystem, "--allow-fs-write")
21
+
22
+ #define CHILD_PROCESS_PERMISSIONS(V) \
23
+ V(ChildProcess, "child", PermissionsRoot, "--allow-child-process")
24
+
25
+ #define WASI_PERMISSIONS(V) V(WASI, "wasi", PermissionsRoot, "--allow-wasi")
26
+
27
+ #define WORKER_THREADS_PERMISSIONS(V) \
28
+ V(WorkerThreads, "worker", PermissionsRoot, "--allow-worker")
29
+
30
+ #define INSPECTOR_PERMISSIONS(V) V(Inspector, "inspector", PermissionsRoot, "")
31
+
32
+ #define ADDON_PERMISSIONS(V) \
33
+ V(Addon, "addon", PermissionsRoot, "--allow-addons")
34
+
35
+ #define PERMISSIONS(V) \
36
+ FILESYSTEM_PERMISSIONS(V) \
37
+ CHILD_PROCESS_PERMISSIONS(V) \
38
+ WASI_PERMISSIONS(V) \
39
+ WORKER_THREADS_PERMISSIONS(V) \
40
+ INSPECTOR_PERMISSIONS(V) \
41
+ ADDON_PERMISSIONS(V)
42
+
43
+ #define V(name, _, __, ___) k##name,
44
+ enum class PermissionScope {
45
+ kPermissionsRoot = -1,
46
+ PERMISSIONS(V) kPermissionsCount
47
+ };
48
+ #undef V
49
+
50
+ class PermissionBase {
51
+ public:
52
+ virtual void Apply(Environment* env,
53
+ const std::vector<std::string>& allow,
54
+ PermissionScope scope) = 0;
55
+ virtual bool is_granted(Environment* env,
56
+ PermissionScope perm,
57
+ const std::string_view& param = "") const = 0;
58
+ };
59
+
60
+ } // namespace permission
61
+
62
+ } // namespace node
63
+
64
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
65
+ #endif // SRC_PERMISSION_PERMISSION_BASE_H_
@@ -0,0 +1,31 @@
1
+ #ifndef SRC_PERMISSION_WASI_PERMISSION_H_
2
+ #define SRC_PERMISSION_WASI_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <vector>
7
+ #include "permission/permission_base.h"
8
+
9
+ namespace node {
10
+
11
+ namespace permission {
12
+
13
+ class WASIPermission final : public PermissionBase {
14
+ public:
15
+ void Apply(Environment* env,
16
+ const std::vector<std::string>& allow,
17
+ PermissionScope scope) override;
18
+ bool is_granted(Environment* env,
19
+ PermissionScope perm,
20
+ const std::string_view& param = "") const override;
21
+
22
+ private:
23
+ bool deny_all_;
24
+ };
25
+
26
+ } // namespace permission
27
+
28
+ } // namespace node
29
+
30
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
31
+ #endif // SRC_PERMISSION_WASI_PERMISSION_H_
@@ -0,0 +1,31 @@
1
+ #ifndef SRC_PERMISSION_WORKER_PERMISSION_H_
2
+ #define SRC_PERMISSION_WORKER_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <vector>
7
+ #include "permission/permission_base.h"
8
+
9
+ namespace node {
10
+
11
+ namespace permission {
12
+
13
+ class WorkerPermission final : public PermissionBase {
14
+ public:
15
+ void Apply(Environment* env,
16
+ const std::vector<std::string>& allow,
17
+ PermissionScope scope) override;
18
+ bool is_granted(Environment* env,
19
+ PermissionScope perm,
20
+ const std::string_view& param = "") const override;
21
+
22
+ private:
23
+ bool deny_all_;
24
+ };
25
+
26
+ } // namespace permission
27
+
28
+ } // namespace node
29
+
30
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
31
+ #endif // SRC_PERMISSION_WORKER_PERMISSION_H_
@@ -0,0 +1,100 @@
1
+ #ifndef SRC_PERMISSION_PERMISSION_H_
2
+ #define SRC_PERMISSION_PERMISSION_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "debug_utils.h"
7
+ #include "node_options.h"
8
+ #include "permission/addon_permission.h"
9
+ #include "permission/child_process_permission.h"
10
+ #include "permission/fs_permission.h"
11
+ #include "permission/inspector_permission.h"
12
+ #include "permission/permission_base.h"
13
+ #include "permission/wasi_permission.h"
14
+ #include "permission/worker_permission.h"
15
+ #include "v8.h"
16
+
17
+ #include <string_view>
18
+ #include <unordered_map>
19
+
20
+ namespace node {
21
+
22
+ class Environment;
23
+
24
+ namespace fs {
25
+ class FSReqBase;
26
+ }
27
+
28
+ namespace permission {
29
+
30
+ #define THROW_IF_INSUFFICIENT_PERMISSIONS(env, perm_, resource_, ...) \
31
+ do { \
32
+ if (!env->permission()->is_granted(env, perm_, resource_)) [[unlikely]] { \
33
+ node::permission::Permission::ThrowAccessDenied( \
34
+ (env), perm_, resource_); \
35
+ return __VA_ARGS__; \
36
+ } \
37
+ } while (0)
38
+
39
+ #define ASYNC_THROW_IF_INSUFFICIENT_PERMISSIONS( \
40
+ env, wrap, perm_, resource_, ...) \
41
+ do { \
42
+ if (!env->permission()->is_granted(env, perm_, resource_)) [[unlikely]] { \
43
+ node::permission::Permission::AsyncThrowAccessDenied( \
44
+ (env), wrap, perm_, resource_); \
45
+ return __VA_ARGS__; \
46
+ } \
47
+ } while (0)
48
+
49
+ class Permission {
50
+ public:
51
+ Permission();
52
+
53
+ FORCE_INLINE bool is_granted(Environment* env,
54
+ const PermissionScope permission,
55
+ const std::string_view& res = "") const {
56
+ if (!enabled_) [[likely]] {
57
+ return true;
58
+ }
59
+ return is_scope_granted(env, permission, res);
60
+ }
61
+
62
+ FORCE_INLINE bool enabled() const { return enabled_; }
63
+
64
+ static PermissionScope StringToPermission(const std::string& perm);
65
+ static const char* PermissionToString(PermissionScope perm);
66
+ static void ThrowAccessDenied(Environment* env,
67
+ PermissionScope perm,
68
+ const std::string_view& res);
69
+ static void AsyncThrowAccessDenied(Environment* env,
70
+ fs::FSReqBase* req_wrap,
71
+ PermissionScope perm,
72
+ const std::string_view& res);
73
+
74
+ // CLI Call
75
+ void Apply(Environment* env,
76
+ const std::vector<std::string>& allow,
77
+ PermissionScope scope);
78
+ void EnablePermissions();
79
+
80
+ private:
81
+ COLD_NOINLINE bool is_scope_granted(Environment* env,
82
+ const PermissionScope permission,
83
+ const std::string_view& res = "") const {
84
+ auto perm_node = nodes_.find(permission);
85
+ if (perm_node != nodes_.end()) {
86
+ return perm_node->second->is_granted(env, permission, res);
87
+ }
88
+ return false;
89
+ }
90
+
91
+ std::unordered_map<PermissionScope, std::shared_ptr<PermissionBase>> nodes_;
92
+ bool enabled_;
93
+ };
94
+
95
+ } // namespace permission
96
+
97
+ } // namespace node
98
+
99
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
100
+ #endif // SRC_PERMISSION_PERMISSION_H_
@@ -0,0 +1,65 @@
1
+ #ifndef SRC_PERMISSION_PERMISSION_BASE_H_
2
+ #define SRC_PERMISSION_PERMISSION_BASE_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include <map>
7
+ #include <string>
8
+ #include <string_view>
9
+ #include "v8.h"
10
+
11
+ namespace node {
12
+
13
+ class Environment;
14
+
15
+ namespace permission {
16
+
17
+ #define FILESYSTEM_PERMISSIONS(V) \
18
+ V(FileSystem, "fs", PermissionsRoot, "") \
19
+ V(FileSystemRead, "fs.read", FileSystem, "--allow-fs-read") \
20
+ V(FileSystemWrite, "fs.write", FileSystem, "--allow-fs-write")
21
+
22
+ #define CHILD_PROCESS_PERMISSIONS(V) \
23
+ V(ChildProcess, "child", PermissionsRoot, "--allow-child-process")
24
+
25
+ #define WASI_PERMISSIONS(V) V(WASI, "wasi", PermissionsRoot, "--allow-wasi")
26
+
27
+ #define WORKER_THREADS_PERMISSIONS(V) \
28
+ V(WorkerThreads, "worker", PermissionsRoot, "--allow-worker")
29
+
30
+ #define INSPECTOR_PERMISSIONS(V) V(Inspector, "inspector", PermissionsRoot, "")
31
+
32
+ #define ADDON_PERMISSIONS(V) \
33
+ V(Addon, "addon", PermissionsRoot, "--allow-addons")
34
+
35
+ #define PERMISSIONS(V) \
36
+ FILESYSTEM_PERMISSIONS(V) \
37
+ CHILD_PROCESS_PERMISSIONS(V) \
38
+ WASI_PERMISSIONS(V) \
39
+ WORKER_THREADS_PERMISSIONS(V) \
40
+ INSPECTOR_PERMISSIONS(V) \
41
+ ADDON_PERMISSIONS(V)
42
+
43
+ #define V(name, _, __, ___) k##name,
44
+ enum class PermissionScope {
45
+ kPermissionsRoot = -1,
46
+ PERMISSIONS(V) kPermissionsCount
47
+ };
48
+ #undef V
49
+
50
+ class PermissionBase {
51
+ public:
52
+ virtual void Apply(Environment* env,
53
+ const std::vector<std::string>& allow,
54
+ PermissionScope scope) = 0;
55
+ virtual bool is_granted(Environment* env,
56
+ PermissionScope perm,
57
+ const std::string_view& param = "") const = 0;
58
+ };
59
+
60
+ } // namespace permission
61
+
62
+ } // namespace node
63
+
64
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
65
+ #endif // SRC_PERMISSION_PERMISSION_BASE_H_
@@ -0,0 +1,72 @@
1
+ #pragma once
2
+
3
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
4
+ #if HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
5
+
6
+ #include <env.h>
7
+ #include <ngtcp2/ngtcp2.h>
8
+ #include <node_internals.h>
9
+ #include <v8.h>
10
+ #include <string>
11
+ #include "defs.h"
12
+
13
+ namespace node::quic {
14
+
15
+ // PreferredAddress is a helper class used only when a client Session receives
16
+ // an advertised preferred address from a server. The helper provides
17
+ // information about the server advertised preferred address and allows
18
+ // the preferred address to be selected.
19
+ class PreferredAddress final {
20
+ public:
21
+ enum class Policy : uint32_t {
22
+ // Ignore the server-advertised preferred address.
23
+ IGNORE_PREFERRED,
24
+ // Use the server-advertised preferred address.
25
+ USE_PREFERRED,
26
+ };
27
+
28
+ static v8::Maybe<Policy> tryGetPolicy(Environment* env,
29
+ v8::Local<v8::Value> value);
30
+
31
+ // The QUIC_* constants are expected to be exported out to be used on
32
+ // the JavaScript side of the API.
33
+ static constexpr auto PREFERRED_ADDRESS_USE =
34
+ static_cast<uint32_t>(Policy::USE_PREFERRED);
35
+ static constexpr auto PREFERRED_ADDRESS_IGNORE =
36
+ static_cast<uint32_t>(Policy::IGNORE_PREFERRED);
37
+ static constexpr auto DEFAULT_PREFERRED_ADDRESS_POLICY =
38
+ static_cast<uint32_t>(Policy::USE_PREFERRED);
39
+
40
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
41
+
42
+ struct AddressInfo final {
43
+ char host[NI_MAXHOST];
44
+ int family;
45
+ uint16_t port;
46
+ std::string_view address;
47
+ };
48
+
49
+ explicit PreferredAddress(ngtcp2_path* dest,
50
+ const ngtcp2_preferred_addr* paddr);
51
+ DISALLOW_COPY_AND_MOVE(PreferredAddress)
52
+
53
+ void Use(const AddressInfo& address);
54
+
55
+ std::optional<const AddressInfo> ipv4() const;
56
+ std::optional<const AddressInfo> ipv6() const;
57
+
58
+ // Set the preferred address in the transport params.
59
+ // The address family (ipv4 or ipv6) will be automatically
60
+ // detected from the given addr. Any other address family
61
+ // will be ignored.
62
+ static void Set(ngtcp2_transport_params* params, const sockaddr* addr);
63
+
64
+ private:
65
+ ngtcp2_path* dest_;
66
+ const ngtcp2_preferred_addr* paddr_;
67
+ };
68
+
69
+ } // namespace node::quic
70
+
71
+ #endif // HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
72
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
@@ -0,0 +1,27 @@
1
+ #ifndef SRC_INSPECTOR_PROTOCOL_HELPER_H_
2
+ #define SRC_INSPECTOR_PROTOCOL_HELPER_H_
3
+
4
+ #include "node/inspector/protocol/Protocol.h"
5
+ #include "util.h"
6
+ #include "v8-inspector.h"
7
+
8
+ namespace node::inspector {
9
+
10
+ // Convert a V8 string to v8_inspector StringBuffer, encoded in UTF16.
11
+ inline std::unique_ptr<v8_inspector::StringBuffer> ToInspectorString(
12
+ v8::Isolate* isolate, v8::Local<v8::Value> value) {
13
+ TwoByteValue buffer(isolate, value);
14
+ return v8_inspector::StringBuffer::create(
15
+ v8_inspector::StringView(*buffer, buffer.length()));
16
+ }
17
+
18
+ // Convert a V8 string to node::inspector::protocol::String, encoded in UTF8.
19
+ inline protocol::String ToProtocolString(v8::Isolate* isolate,
20
+ v8::Local<v8::Value> value) {
21
+ Utf8Value buffer(isolate, value);
22
+ return *buffer;
23
+ }
24
+
25
+ } // namespace node::inspector
26
+
27
+ #endif // SRC_INSPECTOR_PROTOCOL_HELPER_H_