@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,270 @@
1
+ #ifndef SRC_NODE_SQLITE_H_
2
+ #define SRC_NODE_SQLITE_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "base_object.h"
7
+ #include "node_mem.h"
8
+ #include "sqlite3.h"
9
+ #include "util.h"
10
+
11
+ #include <map>
12
+ #include <unordered_set>
13
+
14
+ namespace node {
15
+ namespace sqlite {
16
+
17
+ class DatabaseOpenConfiguration {
18
+ public:
19
+ explicit DatabaseOpenConfiguration(std::string&& location)
20
+ : location_(std::move(location)) {}
21
+
22
+ inline const std::string& location() const { return location_; }
23
+
24
+ inline bool get_read_only() const { return read_only_; }
25
+
26
+ inline void set_read_only(bool flag) { read_only_ = flag; }
27
+
28
+ inline bool get_enable_foreign_keys() const { return enable_foreign_keys_; }
29
+
30
+ inline void set_enable_foreign_keys(bool flag) {
31
+ enable_foreign_keys_ = flag;
32
+ }
33
+
34
+ inline bool get_enable_dqs() const { return enable_dqs_; }
35
+
36
+ inline void set_enable_dqs(bool flag) { enable_dqs_ = flag; }
37
+
38
+ inline void set_timeout(int timeout) { timeout_ = timeout; }
39
+
40
+ inline int get_timeout() { return timeout_; }
41
+
42
+ inline void set_use_big_ints(bool flag) { use_big_ints_ = flag; }
43
+
44
+ inline bool get_use_big_ints() const { return use_big_ints_; }
45
+
46
+ inline void set_return_arrays(bool flag) { return_arrays_ = flag; }
47
+
48
+ inline bool get_return_arrays() const { return return_arrays_; }
49
+
50
+ inline void set_allow_bare_named_params(bool flag) {
51
+ allow_bare_named_params_ = flag;
52
+ }
53
+
54
+ inline bool get_allow_bare_named_params() const {
55
+ return allow_bare_named_params_;
56
+ }
57
+
58
+ inline void set_allow_unknown_named_params(bool flag) {
59
+ allow_unknown_named_params_ = flag;
60
+ }
61
+
62
+ inline bool get_allow_unknown_named_params() const {
63
+ return allow_unknown_named_params_;
64
+ }
65
+
66
+ private:
67
+ std::string location_;
68
+ bool read_only_ = false;
69
+ bool enable_foreign_keys_ = true;
70
+ bool enable_dqs_ = false;
71
+ int timeout_ = 0;
72
+ bool use_big_ints_ = false;
73
+ bool return_arrays_ = false;
74
+ bool allow_bare_named_params_ = true;
75
+ bool allow_unknown_named_params_ = false;
76
+ };
77
+
78
+ class StatementSync;
79
+ class BackupJob;
80
+
81
+ class DatabaseSync : public BaseObject {
82
+ public:
83
+ DatabaseSync(Environment* env,
84
+ v8::Local<v8::Object> object,
85
+ DatabaseOpenConfiguration&& open_config,
86
+ bool open,
87
+ bool allow_load_extension);
88
+ void MemoryInfo(MemoryTracker* tracker) const override;
89
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
90
+ static void Open(const v8::FunctionCallbackInfo<v8::Value>& args);
91
+ static void IsOpenGetter(const v8::FunctionCallbackInfo<v8::Value>& args);
92
+ static void IsTransactionGetter(
93
+ const v8::FunctionCallbackInfo<v8::Value>& args);
94
+ static void Close(const v8::FunctionCallbackInfo<v8::Value>& args);
95
+ static void Prepare(const v8::FunctionCallbackInfo<v8::Value>& args);
96
+ static void Exec(const v8::FunctionCallbackInfo<v8::Value>& args);
97
+ static void Location(const v8::FunctionCallbackInfo<v8::Value>& args);
98
+ static void CustomFunction(const v8::FunctionCallbackInfo<v8::Value>& args);
99
+ static void AggregateFunction(
100
+ const v8::FunctionCallbackInfo<v8::Value>& args);
101
+ static void CreateSession(const v8::FunctionCallbackInfo<v8::Value>& args);
102
+ static void ApplyChangeset(const v8::FunctionCallbackInfo<v8::Value>& args);
103
+ static void EnableLoadExtension(
104
+ const v8::FunctionCallbackInfo<v8::Value>& args);
105
+ static void LoadExtension(const v8::FunctionCallbackInfo<v8::Value>& args);
106
+ void FinalizeStatements();
107
+ void RemoveBackup(BackupJob* backup);
108
+ void AddBackup(BackupJob* backup);
109
+ void FinalizeBackups();
110
+ void UntrackStatement(StatementSync* statement);
111
+ bool IsOpen();
112
+ bool use_big_ints() const { return open_config_.get_use_big_ints(); }
113
+ bool return_arrays() const { return open_config_.get_return_arrays(); }
114
+ bool allow_bare_named_params() const {
115
+ return open_config_.get_allow_bare_named_params();
116
+ }
117
+ bool allow_unknown_named_params() const {
118
+ return open_config_.get_allow_unknown_named_params();
119
+ }
120
+ sqlite3* Connection();
121
+
122
+ // In some situations, such as when using custom functions, it is possible
123
+ // that SQLite reports an error while JavaScript already has a pending
124
+ // exception. In this case, the SQLite error should be ignored. These methods
125
+ // enable that use case.
126
+ void SetIgnoreNextSQLiteError(bool ignore);
127
+ bool ShouldIgnoreSQLiteError();
128
+
129
+ SET_MEMORY_INFO_NAME(DatabaseSync)
130
+ SET_SELF_SIZE(DatabaseSync)
131
+
132
+ private:
133
+ bool Open();
134
+ void DeleteSessions();
135
+
136
+ ~DatabaseSync() override;
137
+ DatabaseOpenConfiguration open_config_;
138
+ bool allow_load_extension_;
139
+ bool enable_load_extension_;
140
+ sqlite3* connection_;
141
+ bool ignore_next_sqlite_error_;
142
+
143
+ std::set<BackupJob*> backups_;
144
+ std::set<sqlite3_session*> sessions_;
145
+ std::unordered_set<StatementSync*> statements_;
146
+
147
+ friend class Session;
148
+ };
149
+
150
+ class StatementSync : public BaseObject {
151
+ public:
152
+ StatementSync(Environment* env,
153
+ v8::Local<v8::Object> object,
154
+ BaseObjectPtr<DatabaseSync> db,
155
+ sqlite3_stmt* stmt);
156
+ void MemoryInfo(MemoryTracker* tracker) const override;
157
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
158
+ Environment* env);
159
+ static BaseObjectPtr<StatementSync> Create(Environment* env,
160
+ BaseObjectPtr<DatabaseSync> db,
161
+ sqlite3_stmt* stmt);
162
+ static void All(const v8::FunctionCallbackInfo<v8::Value>& args);
163
+ static void Iterate(const v8::FunctionCallbackInfo<v8::Value>& args);
164
+ static void Get(const v8::FunctionCallbackInfo<v8::Value>& args);
165
+ static void Run(const v8::FunctionCallbackInfo<v8::Value>& args);
166
+ static void Columns(const v8::FunctionCallbackInfo<v8::Value>& args);
167
+ static void SourceSQLGetter(const v8::FunctionCallbackInfo<v8::Value>& args);
168
+ static void ExpandedSQLGetter(
169
+ const v8::FunctionCallbackInfo<v8::Value>& args);
170
+ static void SetAllowBareNamedParameters(
171
+ const v8::FunctionCallbackInfo<v8::Value>& args);
172
+ static void SetAllowUnknownNamedParameters(
173
+ const v8::FunctionCallbackInfo<v8::Value>& args);
174
+ static void SetReadBigInts(const v8::FunctionCallbackInfo<v8::Value>& args);
175
+ static void SetReturnArrays(const v8::FunctionCallbackInfo<v8::Value>& args);
176
+ void Finalize();
177
+ bool IsFinalized();
178
+
179
+ SET_MEMORY_INFO_NAME(StatementSync)
180
+ SET_SELF_SIZE(StatementSync)
181
+
182
+ private:
183
+ ~StatementSync() override;
184
+ BaseObjectPtr<DatabaseSync> db_;
185
+ sqlite3_stmt* statement_;
186
+ bool return_arrays_ = false;
187
+ bool use_big_ints_;
188
+ bool allow_bare_named_params_;
189
+ bool allow_unknown_named_params_;
190
+ std::optional<std::map<std::string, std::string>> bare_named_params_;
191
+ bool BindParams(const v8::FunctionCallbackInfo<v8::Value>& args);
192
+ bool BindValue(const v8::Local<v8::Value>& value, const int index);
193
+ v8::MaybeLocal<v8::Value> ColumnToValue(const int column);
194
+ v8::MaybeLocal<v8::Name> ColumnNameToName(const int column);
195
+
196
+ friend class StatementSyncIterator;
197
+ };
198
+
199
+ class StatementSyncIterator : public BaseObject {
200
+ public:
201
+ StatementSyncIterator(Environment* env,
202
+ v8::Local<v8::Object> object,
203
+ BaseObjectPtr<StatementSync> stmt);
204
+ void MemoryInfo(MemoryTracker* tracker) const override;
205
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
206
+ Environment* env);
207
+ static BaseObjectPtr<StatementSyncIterator> Create(
208
+ Environment* env, BaseObjectPtr<StatementSync> stmt);
209
+ static void Next(const v8::FunctionCallbackInfo<v8::Value>& args);
210
+ static void Return(const v8::FunctionCallbackInfo<v8::Value>& args);
211
+
212
+ SET_MEMORY_INFO_NAME(StatementSyncIterator)
213
+ SET_SELF_SIZE(StatementSyncIterator)
214
+
215
+ private:
216
+ ~StatementSyncIterator() override;
217
+ BaseObjectPtr<StatementSync> stmt_;
218
+ bool done_;
219
+ };
220
+
221
+ using Sqlite3ChangesetGenFunc = int (*)(sqlite3_session*, int*, void**);
222
+
223
+ class Session : public BaseObject {
224
+ public:
225
+ Session(Environment* env,
226
+ v8::Local<v8::Object> object,
227
+ BaseObjectWeakPtr<DatabaseSync> database,
228
+ sqlite3_session* session);
229
+ ~Session() override;
230
+ template <Sqlite3ChangesetGenFunc sqliteChangesetFunc>
231
+ static void Changeset(const v8::FunctionCallbackInfo<v8::Value>& args);
232
+ static void Close(const v8::FunctionCallbackInfo<v8::Value>& args);
233
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
234
+ Environment* env);
235
+ static BaseObjectPtr<Session> Create(Environment* env,
236
+ BaseObjectWeakPtr<DatabaseSync> database,
237
+ sqlite3_session* session);
238
+
239
+ void MemoryInfo(MemoryTracker* tracker) const override;
240
+ SET_MEMORY_INFO_NAME(Session)
241
+ SET_SELF_SIZE(Session)
242
+
243
+ private:
244
+ void Delete();
245
+ sqlite3_session* session_;
246
+ BaseObjectWeakPtr<DatabaseSync> database_; // The Parent Database
247
+ };
248
+
249
+ class UserDefinedFunction {
250
+ public:
251
+ UserDefinedFunction(Environment* env,
252
+ v8::Local<v8::Function> fn,
253
+ DatabaseSync* db,
254
+ bool use_bigint_args);
255
+ ~UserDefinedFunction();
256
+ static void xFunc(sqlite3_context* ctx, int argc, sqlite3_value** argv);
257
+ static void xDestroy(void* self);
258
+
259
+ private:
260
+ Environment* env_;
261
+ v8::Global<v8::Function> fn_;
262
+ DatabaseSync* db_;
263
+ bool use_bigint_args_;
264
+ };
265
+
266
+ } // namespace sqlite
267
+ } // namespace node
268
+
269
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
270
+ #endif // SRC_NODE_SQLITE_H_
@@ -39,7 +39,8 @@ class ExternalReferenceRegistry;
39
39
 
40
40
  class StatWatcher : public HandleWrap {
41
41
  public:
42
- static void Initialize(Environment* env, v8::Local<v8::Object> target);
42
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
43
+ v8::Local<v8::ObjectTemplate> ctor);
43
44
  static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
44
45
 
45
46
  protected:
@@ -0,0 +1,101 @@
1
+ // Bridges V8 Inspector generated code with the std::string used by the Node
2
+ // Compare to V8 counterpart - deps/v8/src/inspector/string-util.h
3
+ #ifndef SRC_INSPECTOR_NODE_STRING_H_
4
+ #define SRC_INSPECTOR_NODE_STRING_H_
5
+
6
+ #include <cstring>
7
+ #include <sstream>
8
+ #include <string>
9
+ #include "crdtp/protocol_core.h"
10
+ #include "util.h"
11
+ #include "v8-inspector.h"
12
+
13
+ namespace node::inspector::protocol {
14
+ class Binary;
15
+ }
16
+
17
+ namespace crdtp {
18
+
19
+ template <>
20
+ struct ProtocolTypeTraits<std::string> {
21
+ static bool Deserialize(DeserializerState* state, std::string* value);
22
+ static void Serialize(const std::string& value, std::vector<uint8_t>* bytes);
23
+ };
24
+
25
+ template <>
26
+ struct ProtocolTypeTraits<node::inspector::protocol::Binary> {
27
+ static bool Deserialize(DeserializerState* state,
28
+ node::inspector::protocol::Binary* value);
29
+ static void Serialize(const node::inspector::protocol::Binary& value,
30
+ std::vector<uint8_t>* bytes);
31
+ };
32
+
33
+ } // namespace crdtp
34
+
35
+ namespace node {
36
+ namespace inspector {
37
+ namespace protocol {
38
+
39
+ class Value;
40
+
41
+ using String = std::string;
42
+ using StringBuilder = std::ostringstream;
43
+ using ProtocolMessage = std::string;
44
+
45
+ // Implements StringUtil methods used in `inspector_protocol/lib/`.
46
+ // Refer to
47
+ // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/v8_inspector_string.h;l=40;drc=2b15d6974a49d3a14d3d67ae099a649d523a828d
48
+ // for more details about the interface.
49
+ struct StringUtil {
50
+ // Convert Utf16 in local endianness to Utf8 if needed.
51
+ static String StringViewToUtf8(v8_inspector::StringView view);
52
+ static String fromUTF16(const uint16_t* data, size_t length);
53
+
54
+ static String fromUTF8(const uint8_t* data, size_t length);
55
+ static String fromUTF16LE(const uint16_t* data, size_t length);
56
+ static const uint8_t* CharactersUTF8(const std::string_view s);
57
+ static size_t CharacterCount(const std::string_view s);
58
+
59
+ // Unimplemented. The generated code will fall back to CharactersUTF8().
60
+ inline static uint8_t* CharactersLatin1(const std::string_view s) {
61
+ return nullptr;
62
+ }
63
+ inline static const uint16_t* CharactersUTF16(const std::string_view s) {
64
+ return nullptr;
65
+ }
66
+ };
67
+
68
+ // A read-only sequence of uninterpreted bytes with reference-counted storage.
69
+ class Binary {
70
+ public:
71
+ Binary() : bytes_(std::make_shared<std::vector<uint8_t>>()) {}
72
+
73
+ const uint8_t* data() const { return bytes_->data(); }
74
+ size_t size() const { return bytes_->size(); }
75
+
76
+ String toBase64() const;
77
+
78
+ static Binary concat(const std::vector<Binary>& binaries);
79
+
80
+ static Binary fromBase64(const String& base64, bool* success);
81
+ static Binary fromUint8Array(v8::Local<v8::Uint8Array> data);
82
+ static Binary fromSpan(const uint8_t* data, size_t size) {
83
+ return Binary::fromSpan(crdtp::span<uint8_t>(data, size));
84
+ }
85
+ static Binary fromSpan(crdtp::span<uint8_t> span) {
86
+ return Binary(
87
+ std::make_shared<std::vector<uint8_t>>(span.begin(), span.end()));
88
+ }
89
+
90
+ private:
91
+ std::shared_ptr<std::vector<uint8_t>> bytes_;
92
+
93
+ explicit Binary(std::shared_ptr<std::vector<uint8_t>> bytes)
94
+ : bytes_(bytes) {}
95
+ };
96
+
97
+ } // namespace protocol
98
+ } // namespace inspector
99
+ } // namespace node
100
+
101
+ #endif // SRC_INSPECTOR_NODE_STRING_H_
@@ -0,0 +1,92 @@
1
+ #ifndef SRC_NODE_TASK_RUNNER_H_
2
+ #define SRC_NODE_TASK_RUNNER_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "node_internals.h"
7
+ #include "simdjson.h"
8
+ #include "spawn_sync.h"
9
+ #include "uv.h"
10
+
11
+ #include <filesystem>
12
+ #include <optional>
13
+ #include <string_view>
14
+ #include <tuple>
15
+
16
+ namespace node::task_runner {
17
+
18
+ using PositionalArgs = std::vector<std::string_view>;
19
+
20
+ // ProcessRunner is the class responsible for running a process.
21
+ // A class instance is created for each process to be run.
22
+ // The class is responsible for spawning the process and handling its exit.
23
+ // The class also handles the environment variables and arguments.
24
+ class ProcessRunner {
25
+ public:
26
+ ProcessRunner(std::shared_ptr<InitializationResultImpl> result,
27
+ const std::filesystem::path& package_json_path,
28
+ std::string_view script_name,
29
+ std::string_view command,
30
+ std::string_view path_env_var,
31
+ const PositionalArgs& positional_args);
32
+ void Run();
33
+ static void ExitCallback(uv_process_t* req,
34
+ int64_t exit_status,
35
+ int term_signal);
36
+
37
+ private:
38
+ uv_loop_t* loop_ = uv_default_loop();
39
+ uv_process_t process_{};
40
+ uv_process_options_t options_{};
41
+ uv_stdio_container_t child_stdio[3]{};
42
+ std::shared_ptr<InitializationResultImpl> init_result;
43
+ std::vector<std::string> command_args_{};
44
+ std::vector<std::string> env_vars_{};
45
+ std::unique_ptr<char* []> env {}; // memory for options_.env
46
+ std::unique_ptr<char* []> arg {}; // memory for options_.args
47
+ std::string cwd;
48
+
49
+ // OnExit is the callback function that is called when the process exits.
50
+ void OnExit(int64_t exit_status, int term_signal);
51
+ void SetEnvironmentVariables();
52
+
53
+ #ifdef _WIN32
54
+ std::string file_ = "cmd.exe";
55
+ #else
56
+ std::string file_ = "/bin/sh";
57
+ #endif // _WIN32
58
+
59
+ // Represents the absolute path to the package.json file.
60
+ std::filesystem::path package_json_path_;
61
+ // Represents the name of the script that is being run.
62
+ std::string script_name_;
63
+ // Represents PATH environment variable that contains
64
+ // all subdirectory paths appended with node_modules/.bin suffix.
65
+ std::string path_env_var_;
66
+ };
67
+
68
+ // This function traverses up to the root directory.
69
+ // While traversing up, if it finds a package.json file, it reads its content.
70
+ // If it cannot find a package.json file, it returns std::nullopt.
71
+ // Otherwise, it returns a tuple of:
72
+ // - the path to the package.json file
73
+ // - package.json file content
74
+ // - `path_env_var` variable
75
+ //
76
+ // For example, on POSIX, it returns the following for `path_env_var`,
77
+ // if the current directory is `/anonrig`:
78
+ // `/anonrig/node_modules/.bin:/node_modules/.bin`
79
+ std::optional<std::tuple<std::filesystem::path, std::string, std::string>>
80
+ FindPackageJson(const std::filesystem::path& cwd);
81
+
82
+ void RunTask(const std::shared_ptr<InitializationResultImpl>& result,
83
+ std::string_view command_id,
84
+ const PositionalArgs& positional_args);
85
+ PositionalArgs GetPositionalArgs(const std::vector<std::string>& args);
86
+ std::string EscapeShell(std::string_view command);
87
+
88
+ } // namespace node::task_runner
89
+
90
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
91
+
92
+ #endif // SRC_NODE_TASK_RUNNER_H_
@@ -0,0 +1,54 @@
1
+ #ifndef SRC_NODE_THREADSAFE_COW_INL_H_
2
+ #define SRC_NODE_THREADSAFE_COW_INL_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ namespace node {
7
+
8
+ template <typename T>
9
+ T* CopyOnWrite<T>::write() {
10
+ if (data_.use_count() > 1l) {
11
+ data_ = std::make_shared<T>(*data_);
12
+ }
13
+ return data_.get();
14
+ }
15
+
16
+ template <typename T>
17
+ ThreadsafeCopyOnWrite<T>::Read::Read(const ThreadsafeCopyOnWrite<T>* cow)
18
+ : cow_(cow), lock_(cow->impl_->mutex) {}
19
+
20
+ template <typename T>
21
+ const T& ThreadsafeCopyOnWrite<T>::Read::operator*() const {
22
+ return cow_->impl_->data;
23
+ }
24
+
25
+ template <typename T>
26
+ const T* ThreadsafeCopyOnWrite<T>::Read::operator->() const {
27
+ return &cow_->impl_->data;
28
+ }
29
+
30
+ template <typename T>
31
+ ThreadsafeCopyOnWrite<T>::Write::Write(ThreadsafeCopyOnWrite<T>* cow)
32
+ : cow_(cow), impl_(cow->impl_.write()), lock_(impl_->mutex) {}
33
+
34
+ template <typename T>
35
+ T& ThreadsafeCopyOnWrite<T>::Write::operator*() {
36
+ return impl_->data;
37
+ }
38
+
39
+ template <typename T>
40
+ T* ThreadsafeCopyOnWrite<T>::Write::operator->() {
41
+ return &impl_->data;
42
+ }
43
+
44
+ template <typename T>
45
+ ThreadsafeCopyOnWrite<T>::Impl::Impl(const Impl& other) {
46
+ RwLock::ScopedReadLock lock(other.mutex);
47
+ data = other.data;
48
+ }
49
+
50
+ } // namespace node
51
+
52
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
53
+
54
+ #endif // SRC_NODE_THREADSAFE_COW_INL_H_
@@ -0,0 +1,105 @@
1
+ #ifndef SRC_NODE_THREADSAFE_COW_H_
2
+ #define SRC_NODE_THREADSAFE_COW_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "util.h"
7
+ #include "uv.h"
8
+
9
+ #include <memory> // std::shared_ptr<T>
10
+ #include <utility> // std::forward<T>
11
+
12
+ namespace node {
13
+
14
+ // Copy-on-write utility. Not threadsafe, i.e. there is no synchronization
15
+ // of the copy operation with other operations.
16
+ template <typename T>
17
+ class CopyOnWrite final {
18
+ public:
19
+ template <typename... Args>
20
+ explicit CopyOnWrite(Args&&... args)
21
+ : data_(std::make_shared<T>(std::forward<Args>(args)...)) {}
22
+
23
+ CopyOnWrite(const CopyOnWrite<T>& other) = default;
24
+ CopyOnWrite& operator=(const CopyOnWrite<T>& other) = default;
25
+ CopyOnWrite(CopyOnWrite<T>&& other) = default;
26
+ CopyOnWrite& operator=(CopyOnWrite<T>&& other) = default;
27
+
28
+ const T* read() const { return data_.get(); }
29
+ T* write();
30
+
31
+ const T& operator*() const { return *read(); }
32
+ const T* operator->() const { return read(); }
33
+
34
+ private:
35
+ std::shared_ptr<T> data_;
36
+ };
37
+
38
+ // Threadsafe copy-on-write utility. Consumers need to use the Read and
39
+ // Write helpers to access the target data structure.
40
+ template <typename T>
41
+ class ThreadsafeCopyOnWrite final {
42
+ private:
43
+ // Define this early since some of the public members depend on it
44
+ // and some compilers need it to be defined first in that case.
45
+ struct Impl {
46
+ explicit Impl(const T& data) : data(data) {}
47
+ explicit Impl(T&& data) : data(std::move(data)) {}
48
+
49
+ Impl(const Impl& other);
50
+ Impl& operator=(const Impl& other) = delete;
51
+ Impl(Impl&& other) = delete;
52
+ Impl& operator=(Impl&& other) = delete;
53
+
54
+ RwLock mutex;
55
+ T data;
56
+ };
57
+
58
+ public:
59
+ template <typename... Args>
60
+ ThreadsafeCopyOnWrite(Args&&... args)
61
+ : impl_(T(std::forward<Args>(args)...)) {}
62
+
63
+ ThreadsafeCopyOnWrite(const ThreadsafeCopyOnWrite<T>& other) = default;
64
+ ThreadsafeCopyOnWrite& operator=(const ThreadsafeCopyOnWrite<T>& other) =
65
+ default;
66
+ ThreadsafeCopyOnWrite(ThreadsafeCopyOnWrite<T>&& other) = default;
67
+ ThreadsafeCopyOnWrite& operator=(ThreadsafeCopyOnWrite<T>&& other) = default;
68
+
69
+ class Read {
70
+ public:
71
+ explicit Read(const ThreadsafeCopyOnWrite<T>* cow);
72
+
73
+ const T& operator*() const;
74
+ const T* operator->() const;
75
+
76
+ private:
77
+ const ThreadsafeCopyOnWrite<T>* cow_;
78
+ RwLock::ScopedReadLock lock_;
79
+ };
80
+
81
+ class Write {
82
+ public:
83
+ explicit Write(ThreadsafeCopyOnWrite<T>* cow);
84
+
85
+ T& operator*();
86
+ T* operator->();
87
+
88
+ private:
89
+ ThreadsafeCopyOnWrite<T>* cow_;
90
+ typename ThreadsafeCopyOnWrite<T>::Impl* impl_;
91
+ RwLock::ScopedLock lock_;
92
+ };
93
+
94
+ Read read() const { return Read(this); }
95
+ Write write() { return Write(this); }
96
+
97
+ private:
98
+ CopyOnWrite<Impl> impl_;
99
+ };
100
+
101
+ } // namespace node
102
+
103
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
104
+
105
+ #endif // SRC_NODE_THREADSAFE_COW_H_