@encharm/cws 4.0.2 → 4.3.0

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 (410) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +3 -2
  3. package/README.md +9 -2
  4. package/binding.gyp +2 -2
  5. package/dist/bindings/cws_darwin_arm64_node108.node +0 -0
  6. package/dist/bindings/cws_darwin_arm64_node64.node +0 -0
  7. package/dist/bindings/cws_darwin_arm64_node72.node +0 -0
  8. package/dist/bindings/cws_darwin_arm64_node79.node +0 -0
  9. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  10. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  11. package/dist/bindings/cws_darwin_x64_node108.node +0 -0
  12. package/dist/bindings/cws_darwin_x64_node64.node +0 -0
  13. package/dist/bindings/cws_darwin_x64_node72.node +0 -0
  14. package/dist/bindings/cws_darwin_x64_node79.node +0 -0
  15. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  16. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  17. package/dist/bindings/cws_linux_x64_node108.node +0 -0
  18. package/dist/bindings/cws_linux_x64_node64.node +0 -0
  19. package/dist/bindings/cws_linux_x64_node72.node +0 -0
  20. package/dist/bindings/cws_linux_x64_node79.node +0 -0
  21. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  22. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  23. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  24. package/dist/bindings/cws_win32_x64_node64.node +0 -0
  25. package/dist/bindings/cws_win32_x64_node72.node +0 -0
  26. package/dist/bindings/cws_win32_x64_node79.node +0 -0
  27. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  28. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  29. package/dist/client.d.ts +1 -0
  30. package/dist/client.js +4 -0
  31. package/dist/index.js +3 -2
  32. package/dist/server.js +1 -0
  33. package/dist/shared.js +2 -1
  34. package/package.json +1 -1
  35. package/src/Addon.cpp +1 -0
  36. package/src/Addon.h +35 -2
  37. package/src/HTTPSocket.cpp +1 -1
  38. package/src/LICENSE +4 -0
  39. package/src/Socket.h +12 -3
  40. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  41. package/src/headers/18/aliased_struct-inl.h +54 -0
  42. package/src/headers/18/aliased_struct.h +63 -0
  43. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  44. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  45. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  46. package/src/headers/18/base64.h +69 -0
  47. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  48. package/src/headers/{12 → 18}/base_object.h +82 -17
  49. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  50. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  51. package/src/headers/18/cares_wrap.h +523 -0
  52. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  53. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  54. package/src/headers/18/crypto/crypto_aes.h +89 -0
  55. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  56. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  57. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  58. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  59. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  60. package/src/headers/18/crypto/crypto_context.h +147 -0
  61. package/src/headers/18/crypto/crypto_dh.h +156 -0
  62. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  63. package/src/headers/18/crypto/crypto_ec.h +170 -0
  64. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  65. package/src/headers/18/crypto/crypto_hash.h +89 -0
  66. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  67. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  68. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  69. package/src/headers/18/crypto/crypto_keys.h +420 -0
  70. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  71. package/src/headers/18/crypto/crypto_random.h +130 -0
  72. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  73. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  74. package/src/headers/18/crypto/crypto_sig.h +168 -0
  75. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  76. package/src/headers/18/crypto/crypto_timing.h +20 -0
  77. package/src/headers/{12/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  78. package/src/headers/18/crypto/crypto_util.h +791 -0
  79. package/src/headers/18/crypto/crypto_x509.h +143 -0
  80. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  81. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  82. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  83. package/src/headers/{12 → 18}/env-inl.h +397 -304
  84. package/src/headers/{12 → 18}/env.h +397 -172
  85. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  86. package/src/headers/18/histogram-inl.h +107 -0
  87. package/src/headers/18/histogram.h +239 -0
  88. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  89. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  90. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  91. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  92. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  93. package/src/headers/18/js_native_api.h +571 -0
  94. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  95. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  96. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  97. package/src/headers/{12 → 18}/js_stream.h +0 -0
  98. package/src/headers/{12 → 18}/json_utils.h +0 -0
  99. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  100. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  101. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  102. package/src/headers/{13 → 18}/node.h +329 -68
  103. package/src/headers/18/node_api.h +288 -0
  104. package/src/headers/18/node_api_internals.h +38 -0
  105. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  106. package/src/headers/{12 → 18}/node_binding.h +0 -0
  107. package/src/headers/18/node_blob.h +191 -0
  108. package/src/headers/18/node_bob-inl.h +37 -0
  109. package/src/headers/18/node_bob.h +111 -0
  110. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  111. package/src/headers/{13 → 18}/node_constants.h +5 -1
  112. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  113. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  114. package/src/headers/{10/node_javascript.h → 18/node_crypto.h} +30 -14
  115. package/src/headers/{12 → 18}/node_dir.h +0 -0
  116. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  117. package/src/headers/{12 → 18}/node_errors.h +90 -24
  118. package/src/headers/18/node_external_reference.h +145 -0
  119. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  120. package/src/headers/{12 → 18}/node_file.h +74 -13
  121. package/src/headers/{13 → 18}/node_http2.h +365 -269
  122. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  123. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  124. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  125. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  126. package/src/headers/{12 → 18}/node_internals.h +39 -41
  127. package/src/headers/{12 → 18}/node_main_instance.h +15 -18
  128. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  129. package/src/headers/{12 → 18}/node_mem.h +1 -1
  130. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  131. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  132. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  133. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  134. package/src/headers/{12 → 18}/node_native_module_env.h +14 -8
  135. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  136. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  137. package/src/headers/{13 → 18}/node_options.h +46 -14
  138. package/src/headers/18/node_perf.h +168 -0
  139. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  140. package/src/headers/{12 → 18}/node_platform.h +21 -16
  141. package/src/headers/18/node_process-inl.h +26 -0
  142. package/src/headers/18/node_process.h +97 -0
  143. package/src/headers/{13 → 18}/node_report.h +2 -2
  144. package/src/headers/{13 → 18}/node_revert.h +10 -0
  145. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  146. package/src/headers/18/node_snapshot_builder.h +43 -0
  147. package/src/headers/18/node_snapshotable.h +130 -0
  148. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  149. package/src/headers/18/node_sockaddr.h +405 -0
  150. package/src/headers/{13 → 18}/node_stat_watcher.h +7 -1
  151. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  152. package/src/headers/{13 → 18}/node_url.h +18 -1
  153. package/src/headers/18/node_v8.h +41 -0
  154. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  155. package/src/headers/{13 → 18}/node_version.h +7 -7
  156. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  157. package/src/headers/18/node_wasm_web_api.h +55 -0
  158. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  159. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  160. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  161. package/src/headers/{13 → 18}/node_worker.h +24 -17
  162. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  163. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  164. package/src/headers/{13 → 18}/req_wrap.h +1 -1
  165. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  166. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  167. package/src/headers/{13 → 18}/stream_base.h +29 -3
  168. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  169. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  170. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  171. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  172. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  173. package/src/headers/{13 → 18}/string_search.h +2 -2
  174. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  175. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  176. package/src/headers/18/timer_wrap-inl.h +32 -0
  177. package/src/headers/18/timer_wrap.h +85 -0
  178. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  179. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  180. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  181. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  182. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  183. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  184. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  185. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  186. package/src/headers/{13 → 18}/util-inl.h +69 -15
  187. package/src/headers/{13 → 18}/util.h +93 -31
  188. package/src/headers/18/v8-fast-api-calls.h +939 -0
  189. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  190. package/dist/bindings/cws_darwin_64.node +0 -0
  191. package/dist/bindings/cws_darwin_72.node +0 -0
  192. package/dist/bindings/cws_darwin_79.node +0 -0
  193. package/dist/bindings/cws_darwin_83.node +0 -0
  194. package/dist/bindings/cws_darwin_93.node +0 -0
  195. package/dist/bindings/cws_linux_64.node +0 -0
  196. package/dist/bindings/cws_linux_72.node +0 -0
  197. package/dist/bindings/cws_linux_79.node +0 -0
  198. package/dist/bindings/cws_linux_83.node +0 -0
  199. package/dist/bindings/cws_linux_93.node +0 -0
  200. package/dist/bindings/cws_win32_64.node +0 -0
  201. package/dist/bindings/cws_win32_72.node +0 -0
  202. package/dist/bindings/cws_win32_79.node +0 -0
  203. package/dist/bindings/cws_win32_83.node +0 -0
  204. package/dist/bindings/cws_win32_93.node +0 -0
  205. package/src/headers/10/aliased_buffer.h +0 -241
  206. package/src/headers/10/async_wrap-inl.h +0 -106
  207. package/src/headers/10/async_wrap.h +0 -218
  208. package/src/headers/10/base64.h +0 -197
  209. package/src/headers/10/base_object-inl.h +0 -132
  210. package/src/headers/10/base_object.h +0 -115
  211. package/src/headers/10/connect_wrap.h +0 -28
  212. package/src/headers/10/connection_wrap.h +0 -30
  213. package/src/headers/10/debug_utils.h +0 -128
  214. package/src/headers/10/env-inl.h +0 -906
  215. package/src/headers/10/env.h +0 -1046
  216. package/src/headers/10/handle_wrap.h +0 -114
  217. package/src/headers/10/inspector_agent.h +0 -137
  218. package/src/headers/10/inspector_io.h +0 -97
  219. package/src/headers/10/inspector_socket.h +0 -59
  220. package/src/headers/10/inspector_socket_server.h +0 -104
  221. package/src/headers/10/js_stream.h +0 -57
  222. package/src/headers/10/memory_tracker-inl.h +0 -318
  223. package/src/headers/10/memory_tracker.h +0 -246
  224. package/src/headers/10/module_wrap.h +0 -100
  225. package/src/headers/10/node.h +0 -863
  226. package/src/headers/10/node_api.h +0 -752
  227. package/src/headers/10/node_api_types.h +0 -171
  228. package/src/headers/10/node_buffer.h +0 -90
  229. package/src/headers/10/node_code_cache.h +0 -17
  230. package/src/headers/10/node_constants.h +0 -74
  231. package/src/headers/10/node_context_data.h +0 -39
  232. package/src/headers/10/node_contextify.h +0 -141
  233. package/src/headers/10/node_counters.h +0 -59
  234. package/src/headers/10/node_crypto.h +0 -699
  235. package/src/headers/10/node_crypto_bio.h +0 -177
  236. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  237. package/src/headers/10/node_crypto_clienthello.h +0 -131
  238. package/src/headers/10/node_crypto_groups.h +0 -416
  239. package/src/headers/10/node_dtrace.h +0 -84
  240. package/src/headers/10/node_errors.h +0 -118
  241. package/src/headers/10/node_file.h +0 -373
  242. package/src/headers/10/node_http2.h +0 -1304
  243. package/src/headers/10/node_http2_state.h +0 -158
  244. package/src/headers/10/node_i18n.h +0 -69
  245. package/src/headers/10/node_internals.h +0 -952
  246. package/src/headers/10/node_messaging.h +0 -219
  247. package/src/headers/10/node_mutex.h +0 -191
  248. package/src/headers/10/node_object_wrap.h +0 -130
  249. package/src/headers/10/node_options-inl.h +0 -444
  250. package/src/headers/10/node_options.h +0 -397
  251. package/src/headers/10/node_perf.h +0 -134
  252. package/src/headers/10/node_perf_common.h +0 -96
  253. package/src/headers/10/node_persistent.h +0 -30
  254. package/src/headers/10/node_platform.h +0 -170
  255. package/src/headers/10/node_revert.h +0 -75
  256. package/src/headers/10/node_root_certs.h +0 -3393
  257. package/src/headers/10/node_stat_watcher.h +0 -65
  258. package/src/headers/10/node_url.h +0 -193
  259. package/src/headers/10/node_version.h +0 -120
  260. package/src/headers/10/node_watchdog.h +0 -114
  261. package/src/headers/10/node_win32_perfctr_provider.h +0 -58
  262. package/src/headers/10/node_worker.h +0 -94
  263. package/src/headers/10/pipe_wrap.h +0 -76
  264. package/src/headers/10/req_wrap-inl.h +0 -166
  265. package/src/headers/10/req_wrap.h +0 -61
  266. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  267. package/src/headers/10/spawn_sync.h +0 -240
  268. package/src/headers/10/stream_base-inl.h +0 -458
  269. package/src/headers/10/stream_base.h +0 -378
  270. package/src/headers/10/stream_pipe.h +0 -72
  271. package/src/headers/10/stream_wrap.h +0 -130
  272. package/src/headers/10/string_bytes.h +0 -126
  273. package/src/headers/10/string_decoder-inl.h +0 -38
  274. package/src/headers/10/string_search.h +0 -620
  275. package/src/headers/10/tcp_wrap.h +0 -99
  276. package/src/headers/10/tls_wrap.h +0 -195
  277. package/src/headers/10/tracing/agent.h +0 -178
  278. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  279. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  280. package/src/headers/10/tracing/trace_event.h +0 -706
  281. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  282. package/src/headers/10/tracing/traced_value.h +0 -68
  283. package/src/headers/10/tty_wrap.h +0 -63
  284. package/src/headers/10/udp_wrap.h +0 -102
  285. package/src/headers/10/util-inl.h +0 -459
  286. package/src/headers/10/util.h +0 -508
  287. package/src/headers/10/v8abbr.h +0 -121
  288. package/src/headers/12/aliased_buffer.h +0 -263
  289. package/src/headers/12/debug_utils.h +0 -181
  290. package/src/headers/12/histogram-inl.h +0 -83
  291. package/src/headers/12/histogram.h +0 -98
  292. package/src/headers/12/http_parser_adaptor.h +0 -24
  293. package/src/headers/12/inspector_agent.h +0 -147
  294. package/src/headers/12/inspector_profiler.h +0 -137
  295. package/src/headers/12/js_native_api.h +0 -541
  296. package/src/headers/12/js_native_api_types.h +0 -139
  297. package/src/headers/12/memory_tracker-inl.h +0 -339
  298. package/src/headers/12/memory_tracker.h +0 -283
  299. package/src/headers/12/module_wrap.h +0 -99
  300. package/src/headers/12/node.h +0 -887
  301. package/src/headers/12/node_api.h +0 -239
  302. package/src/headers/12/node_buffer.h +0 -92
  303. package/src/headers/12/node_constants.h +0 -80
  304. package/src/headers/12/node_crypto.h +0 -800
  305. package/src/headers/12/node_crypto_bio.h +0 -195
  306. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  307. package/src/headers/12/node_crypto_clienthello.h +0 -132
  308. package/src/headers/12/node_file-inl.h +0 -289
  309. package/src/headers/12/node_http2.h +0 -1311
  310. package/src/headers/12/node_http_parser_impl.h +0 -994
  311. package/src/headers/12/node_i18n.h +0 -144
  312. package/src/headers/12/node_messaging.h +0 -227
  313. package/src/headers/12/node_options-inl.h +0 -447
  314. package/src/headers/12/node_options.h +0 -479
  315. package/src/headers/12/node_perf.h +0 -181
  316. package/src/headers/12/node_process.h +0 -41
  317. package/src/headers/12/node_report.h +0 -47
  318. package/src/headers/12/node_revert.h +0 -78
  319. package/src/headers/12/node_sockaddr.h +0 -123
  320. package/src/headers/12/node_stat_watcher.h +0 -66
  321. package/src/headers/12/node_url.h +0 -188
  322. package/src/headers/12/node_version.h +0 -98
  323. package/src/headers/12/node_watchdog.h +0 -152
  324. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  325. package/src/headers/12/node_win32_etw_provider.h +0 -99
  326. package/src/headers/12/node_worker.h +0 -142
  327. package/src/headers/12/req_wrap.h +0 -77
  328. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  329. package/src/headers/12/stream_base-inl.h +0 -323
  330. package/src/headers/12/stream_base.h +0 -431
  331. package/src/headers/12/stream_pipe.h +0 -72
  332. package/src/headers/12/string_bytes.h +0 -142
  333. package/src/headers/12/string_decoder.h +0 -50
  334. package/src/headers/12/string_search.h +0 -638
  335. package/src/headers/12/tracing/agent.h +0 -195
  336. package/src/headers/12/tracing/trace_event.h +0 -710
  337. package/src/headers/12/tty_wrap.h +0 -64
  338. package/src/headers/12/udp_wrap.h +0 -222
  339. package/src/headers/12/util-inl.h +0 -529
  340. package/src/headers/12/util.h +0 -765
  341. package/src/headers/13/async_wrap-inl.h +0 -94
  342. package/src/headers/13/async_wrap.h +0 -224
  343. package/src/headers/13/base64.h +0 -197
  344. package/src/headers/13/base_object-inl.h +0 -353
  345. package/src/headers/13/base_object.h +0 -229
  346. package/src/headers/13/connect_wrap.h +0 -26
  347. package/src/headers/13/connection_wrap.h +0 -30
  348. package/src/headers/13/debug_utils-inl.h +0 -223
  349. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  350. package/src/headers/13/env-inl.h +0 -1293
  351. package/src/headers/13/env.h +0 -1469
  352. package/src/headers/13/handle_wrap.h +0 -117
  353. package/src/headers/13/histogram-inl.h +0 -83
  354. package/src/headers/13/histogram.h +0 -98
  355. package/src/headers/13/inspector_io.h +0 -78
  356. package/src/headers/13/inspector_socket.h +0 -60
  357. package/src/headers/13/inspector_socket_server.h +0 -110
  358. package/src/headers/13/js_native_api.h +0 -541
  359. package/src/headers/13/js_native_api_v8.h +0 -303
  360. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  361. package/src/headers/13/js_stream.h +0 -52
  362. package/src/headers/13/json_utils.h +0 -160
  363. package/src/headers/13/node_api.h +0 -239
  364. package/src/headers/13/node_api_types.h +0 -44
  365. package/src/headers/13/node_binding.h +0 -99
  366. package/src/headers/13/node_context_data.h +0 -39
  367. package/src/headers/13/node_contextify.h +0 -161
  368. package/src/headers/13/node_crypto.h +0 -800
  369. package/src/headers/13/node_crypto_common.h +0 -138
  370. package/src/headers/13/node_crypto_groups.h +0 -415
  371. package/src/headers/13/node_dir.h +0 -52
  372. package/src/headers/13/node_dtrace.h +0 -86
  373. package/src/headers/13/node_errors.h +0 -210
  374. package/src/headers/13/node_file.h +0 -364
  375. package/src/headers/13/node_http2_state.h +0 -144
  376. package/src/headers/13/node_internals.h +0 -405
  377. package/src/headers/13/node_main_instance.h +0 -97
  378. package/src/headers/13/node_mem-inl.h +0 -112
  379. package/src/headers/13/node_mem.h +0 -41
  380. package/src/headers/13/node_metadata.h +0 -109
  381. package/src/headers/13/node_mutex.h +0 -247
  382. package/src/headers/13/node_native_module.h +0 -99
  383. package/src/headers/13/node_native_module_env.h +0 -65
  384. package/src/headers/13/node_object_wrap.h +0 -132
  385. package/src/headers/13/node_perf.h +0 -181
  386. package/src/headers/13/node_perf_common.h +0 -97
  387. package/src/headers/13/node_platform.h +0 -190
  388. package/src/headers/13/node_process.h +0 -41
  389. package/src/headers/13/node_root_certs.h +0 -3424
  390. package/src/headers/13/node_sockaddr-inl.h +0 -170
  391. package/src/headers/13/node_sockaddr.h +0 -123
  392. package/src/headers/13/node_union_bytes.h +0 -103
  393. package/src/headers/13/node_v8_platform-inl.h +0 -184
  394. package/src/headers/13/node_wasi.h +0 -108
  395. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  396. package/src/headers/13/node_win32_etw_provider.h +0 -99
  397. package/src/headers/13/pipe_wrap.h +0 -78
  398. package/src/headers/13/req_wrap-inl.h +0 -170
  399. package/src/headers/13/spawn_sync.h +0 -242
  400. package/src/headers/13/stream_wrap.h +0 -130
  401. package/src/headers/13/string_decoder-inl.h +0 -37
  402. package/src/headers/13/string_decoder.h +0 -50
  403. package/src/headers/13/tcp_wrap.h +0 -101
  404. package/src/headers/13/threadpoolwork-inl.h +0 -57
  405. package/src/headers/13/tls_wrap.h +0 -221
  406. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  407. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  408. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  409. package/src/headers/13/tracing/traced_value.h +0 -70
  410. package/src/headers/13/v8abbr.h +0 -124
@@ -32,6 +32,7 @@
32
32
  namespace node {
33
33
 
34
34
  class Environment;
35
+ class ExternalReferenceRegistry;
35
36
 
36
37
  // Rules:
37
38
  //
@@ -77,6 +78,7 @@ class HandleWrap : public AsyncWrap {
77
78
 
78
79
  static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
79
80
  Environment* env);
81
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
80
82
 
81
83
  protected:
82
84
  HandleWrap(Environment* env,
@@ -85,6 +87,7 @@ class HandleWrap : public AsyncWrap {
85
87
  AsyncWrap::ProviderType provider);
86
88
  virtual void OnClose() {}
87
89
  void OnGCCollect() final;
90
+ bool IsNotIndicativeOfMemoryLeakAtExit() const override;
88
91
 
89
92
  void MarkAsInitialized();
90
93
  void MarkAsUninitialized();
@@ -93,19 +96,20 @@ class HandleWrap : public AsyncWrap {
93
96
  return state_ == kClosing || state_ == kClosed;
94
97
  }
95
98
 
99
+ static void OnClose(uv_handle_t* handle);
100
+ enum { kInitialized, kClosing, kClosed } state_;
101
+
96
102
  private:
97
103
  friend class Environment;
98
104
  friend void GetActiveHandles(const v8::FunctionCallbackInfo<v8::Value>&);
99
- static void OnClose(uv_handle_t* handle);
100
105
 
101
106
  // handle_wrap_queue_ needs to be at a fixed offset from the start of the
102
107
  // class because it is used by src/node_postmortem_metadata.cc to calculate
103
108
  // offsets and generate debug symbols for HandleWrap, which assumes that the
104
109
  // position of members in memory are predictable. For more information please
105
- // refer to `doc/guides/node-postmortem-support.md`
110
+ // refer to `doc/contributing/node-postmortem-support.md`
106
111
  friend int GenDebugSymbols();
107
112
  ListNode<HandleWrap> handle_wrap_queue_;
108
- enum { kInitialized, kClosing, kClosed } state_;
109
113
  uv_handle_t* const handle_;
110
114
  };
111
115
 
@@ -0,0 +1,107 @@
1
+ #ifndef SRC_HISTOGRAM_INL_H_
2
+ #define SRC_HISTOGRAM_INL_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "histogram.h"
7
+ #include "base_object-inl.h"
8
+ #include "node_internals.h"
9
+
10
+ namespace node {
11
+
12
+ void Histogram::Reset() {
13
+ Mutex::ScopedLock lock(mutex_);
14
+ hdr_reset(histogram_.get());
15
+ exceeds_ = 0;
16
+ count_ = 0;
17
+ prev_ = 0;
18
+ }
19
+
20
+ double Histogram::Add(const Histogram& other) {
21
+ Mutex::ScopedLock lock(mutex_);
22
+ count_ += other.count_;
23
+ exceeds_ += other.exceeds_;
24
+ if (other.prev_ > prev_)
25
+ prev_ = other.prev_;
26
+ return static_cast<double>(hdr_add(histogram_.get(), other.histogram_.get()));
27
+ }
28
+
29
+ size_t Histogram::Count() const {
30
+ Mutex::ScopedLock lock(mutex_);
31
+ return count_;
32
+ }
33
+
34
+ int64_t Histogram::Min() const {
35
+ Mutex::ScopedLock lock(mutex_);
36
+ return hdr_min(histogram_.get());
37
+ }
38
+
39
+ int64_t Histogram::Max() const {
40
+ Mutex::ScopedLock lock(mutex_);
41
+ return hdr_max(histogram_.get());
42
+ }
43
+
44
+ double Histogram::Mean() const {
45
+ Mutex::ScopedLock lock(mutex_);
46
+ return hdr_mean(histogram_.get());
47
+ }
48
+
49
+ double Histogram::Stddev() const {
50
+ Mutex::ScopedLock lock(mutex_);
51
+ return hdr_stddev(histogram_.get());
52
+ }
53
+
54
+ int64_t Histogram::Percentile(double percentile) const {
55
+ Mutex::ScopedLock lock(mutex_);
56
+ CHECK_GT(percentile, 0);
57
+ CHECK_LE(percentile, 100);
58
+ return hdr_value_at_percentile(histogram_.get(), percentile);
59
+ }
60
+
61
+ template <typename Iterator>
62
+ void Histogram::Percentiles(Iterator&& fn) {
63
+ Mutex::ScopedLock lock(mutex_);
64
+ hdr_iter iter;
65
+ hdr_iter_percentile_init(&iter, histogram_.get(), 1);
66
+ while (hdr_iter_next(&iter)) {
67
+ double key = iter.specifics.percentiles.percentile;
68
+ fn(key, iter.value);
69
+ }
70
+ }
71
+
72
+ bool Histogram::Record(int64_t value) {
73
+ Mutex::ScopedLock lock(mutex_);
74
+ bool recorded = hdr_record_value(histogram_.get(), value);
75
+ if (!recorded)
76
+ exceeds_++;
77
+ else
78
+ count_++;
79
+ return recorded;
80
+ }
81
+
82
+ uint64_t Histogram::RecordDelta() {
83
+ Mutex::ScopedLock lock(mutex_);
84
+ uint64_t time = uv_hrtime();
85
+ int64_t delta = 0;
86
+ if (prev_ > 0) {
87
+ CHECK_GE(time, prev_);
88
+ delta = time - prev_;
89
+ if (hdr_record_value(histogram_.get(), delta))
90
+ count_++;
91
+ else
92
+ exceeds_++;
93
+ }
94
+ prev_ = time;
95
+ return delta;
96
+ }
97
+
98
+ size_t Histogram::GetMemorySize() const {
99
+ Mutex::ScopedLock lock(mutex_);
100
+ return hdr_get_memory_size(histogram_.get());
101
+ }
102
+
103
+ } // namespace node
104
+
105
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
106
+
107
+ #endif // SRC_HISTOGRAM_INL_H_
@@ -0,0 +1,239 @@
1
+ #ifndef SRC_HISTOGRAM_H_
2
+ #define SRC_HISTOGRAM_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "hdr_histogram.h"
7
+ #include "base_object.h"
8
+ #include "memory_tracker.h"
9
+ #include "node_messaging.h"
10
+ #include "util.h"
11
+ #include "v8.h"
12
+ #include "uv.h"
13
+
14
+ #include <functional>
15
+ #include <limits>
16
+ #include <map>
17
+ #include <string>
18
+
19
+ namespace node {
20
+
21
+ class ExternalReferenceRegistry;
22
+
23
+ constexpr int kDefaultHistogramFigures = 3;
24
+
25
+ class Histogram : public MemoryRetainer {
26
+ public:
27
+ struct Options {
28
+ int64_t lowest = 1;
29
+ int64_t highest = std::numeric_limits<int64_t>::max();
30
+ int figures = kDefaultHistogramFigures;
31
+ };
32
+
33
+ explicit Histogram(const Options& options);
34
+ virtual ~Histogram() = default;
35
+
36
+ inline bool Record(int64_t value);
37
+ inline void Reset();
38
+ inline int64_t Min() const;
39
+ inline int64_t Max() const;
40
+ inline double Mean() const;
41
+ inline double Stddev() const;
42
+ inline int64_t Percentile(double percentile) const;
43
+ inline size_t Exceeds() const { return exceeds_; }
44
+ inline size_t Count() const;
45
+
46
+ inline uint64_t RecordDelta();
47
+
48
+ inline double Add(const Histogram& other);
49
+
50
+ // Iterator is a function type that takes two doubles as argument, one for
51
+ // percentile and one for the value at that percentile.
52
+ template <typename Iterator>
53
+ inline void Percentiles(Iterator&& fn);
54
+
55
+ inline size_t GetMemorySize() const;
56
+
57
+ void MemoryInfo(MemoryTracker* tracker) const override;
58
+ SET_MEMORY_INFO_NAME(Histogram)
59
+ SET_SELF_SIZE(Histogram)
60
+
61
+ private:
62
+ using HistogramPointer = DeleteFnPtr<hdr_histogram, hdr_close>;
63
+ HistogramPointer histogram_;
64
+ uint64_t prev_ = 0;
65
+ size_t exceeds_ = 0;
66
+ size_t count_ = 0;
67
+ Mutex mutex_;
68
+ };
69
+
70
+ class HistogramImpl {
71
+ public:
72
+ explicit HistogramImpl(
73
+ const Histogram::Options& options = Histogram::Options {});
74
+ explicit HistogramImpl(std::shared_ptr<Histogram> histogram);
75
+
76
+ Histogram* operator->() { return histogram_.get(); }
77
+
78
+ const std::shared_ptr<Histogram>& histogram() const { return histogram_; }
79
+
80
+ private:
81
+ std::shared_ptr<Histogram> histogram_;
82
+ };
83
+
84
+ class HistogramBase : public BaseObject, public HistogramImpl {
85
+ public:
86
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
87
+ Environment* env);
88
+ static void Initialize(Environment* env, v8::Local<v8::Object> target);
89
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
90
+
91
+ static BaseObjectPtr<HistogramBase> Create(
92
+ Environment* env,
93
+ const Histogram::Options& options = Histogram::Options {});
94
+
95
+ static BaseObjectPtr<HistogramBase> Create(
96
+ Environment* env,
97
+ std::shared_ptr<Histogram> histogram);
98
+
99
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
100
+
101
+ void MemoryInfo(MemoryTracker* tracker) const override;
102
+ SET_MEMORY_INFO_NAME(HistogramBase)
103
+ SET_SELF_SIZE(HistogramBase)
104
+
105
+ static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
106
+ static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
107
+ static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
108
+ static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
109
+
110
+ static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
111
+ static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
112
+ static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
113
+ static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
114
+ static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
115
+ static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
116
+ static void GetPercentile(
117
+ const v8::FunctionCallbackInfo<v8::Value>& args);
118
+ static void GetPercentileBigInt(
119
+ const v8::FunctionCallbackInfo<v8::Value>& args);
120
+ static void GetPercentiles(
121
+ const v8::FunctionCallbackInfo<v8::Value>& args);
122
+ static void GetPercentilesBigInt(
123
+ const v8::FunctionCallbackInfo<v8::Value>& args);
124
+ static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
125
+ static void Record(const v8::FunctionCallbackInfo<v8::Value>& args);
126
+ static void RecordDelta(const v8::FunctionCallbackInfo<v8::Value>& args);
127
+ static void Add(const v8::FunctionCallbackInfo<v8::Value>& args);
128
+
129
+ HistogramBase(
130
+ Environment* env,
131
+ v8::Local<v8::Object> wrap,
132
+ const Histogram::Options& options = Histogram::Options {});
133
+
134
+ HistogramBase(
135
+ Environment* env,
136
+ v8::Local<v8::Object> wrap,
137
+ std::shared_ptr<Histogram> histogram);
138
+
139
+ TransferMode GetTransferMode() const override {
140
+ return TransferMode::kCloneable;
141
+ }
142
+ std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
143
+
144
+ class HistogramTransferData : public worker::TransferData {
145
+ public:
146
+ explicit HistogramTransferData(const HistogramBase* histogram)
147
+ : histogram_(histogram->histogram()) {}
148
+
149
+ explicit HistogramTransferData(std::shared_ptr<Histogram> histogram)
150
+ : histogram_(std::move(histogram)) {}
151
+
152
+ BaseObjectPtr<BaseObject> Deserialize(
153
+ Environment* env,
154
+ v8::Local<v8::Context> context,
155
+ std::unique_ptr<worker::TransferData> self) override;
156
+
157
+ void MemoryInfo(MemoryTracker* tracker) const override;
158
+ SET_MEMORY_INFO_NAME(HistogramTransferData)
159
+ SET_SELF_SIZE(HistogramTransferData)
160
+
161
+ private:
162
+ std::shared_ptr<Histogram> histogram_;
163
+ };
164
+ };
165
+
166
+ class IntervalHistogram : public HandleWrap, public HistogramImpl {
167
+ public:
168
+ enum class StartFlags {
169
+ NONE,
170
+ RESET
171
+ };
172
+
173
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
174
+
175
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
176
+ Environment* env);
177
+
178
+ static BaseObjectPtr<IntervalHistogram> Create(
179
+ Environment* env,
180
+ int32_t interval,
181
+ std::function<void(Histogram&)> on_interval,
182
+ const Histogram::Options& options);
183
+
184
+ IntervalHistogram(
185
+ Environment* env,
186
+ v8::Local<v8::Object> wrap,
187
+ AsyncWrap::ProviderType type,
188
+ int32_t interval,
189
+ std::function<void(Histogram&)> on_interval,
190
+ const Histogram::Options& options = Histogram::Options {});
191
+
192
+ static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
193
+ static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
194
+ static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
195
+ static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
196
+
197
+ static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
198
+ static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
199
+ static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
200
+ static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
201
+ static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
202
+ static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
203
+ static void GetPercentile(
204
+ const v8::FunctionCallbackInfo<v8::Value>& args);
205
+ static void GetPercentileBigInt(
206
+ const v8::FunctionCallbackInfo<v8::Value>& args);
207
+ static void GetPercentiles(
208
+ const v8::FunctionCallbackInfo<v8::Value>& args);
209
+ static void GetPercentilesBigInt(
210
+ const v8::FunctionCallbackInfo<v8::Value>& args);
211
+ static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
212
+ static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
213
+ static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
214
+
215
+ TransferMode GetTransferMode() const override {
216
+ return TransferMode::kCloneable;
217
+ }
218
+ std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
219
+
220
+ void MemoryInfo(MemoryTracker* tracker) const override;
221
+ SET_MEMORY_INFO_NAME(IntervalHistogram)
222
+ SET_SELF_SIZE(IntervalHistogram)
223
+
224
+ private:
225
+ static void TimerCB(uv_timer_t* handle);
226
+ void OnStart(StartFlags flags = StartFlags::RESET);
227
+ void OnStop();
228
+
229
+ bool enabled_ = false;
230
+ int32_t interval_ = 0;
231
+ std::function<void(Histogram&)> on_interval_;
232
+ uv_timer_t timer_;
233
+ };
234
+
235
+ } // namespace node
236
+
237
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
238
+
239
+ #endif // SRC_HISTOGRAM_H_
@@ -59,8 +59,6 @@ class Agent {
59
59
  // --inspect command line flag) or if inspector JS API had been used.
60
60
  bool IsActive();
61
61
 
62
- // Option is set to wait for session connection
63
- bool WillWaitForConnect();
64
62
  // Blocks till frontend connects and sends "runIfWaitingForDebugger"
65
63
  void WaitForConnect();
66
64
  // Blocks till all the sessions with "WaitForDisconnectOnShutdown" disconnect
@@ -84,7 +82,7 @@ class Agent {
84
82
 
85
83
  void SetParentHandle(std::unique_ptr<ParentInspectorHandle> parent_handle);
86
84
  std::unique_ptr<ParentInspectorHandle> GetParentHandle(
87
- int thread_id, const std::string& url);
85
+ uint64_t thread_id, const std::string& url);
88
86
 
89
87
  // Called to create inspector sessions that can be used from the same thread.
90
88
  // The inspector responds by using the delegate to send messages back.
@@ -116,9 +114,10 @@ class Agent {
116
114
  // Interface for interacting with inspectors in worker threads
117
115
  std::shared_ptr<WorkerManager> GetWorkerManager();
118
116
 
117
+ inline Environment* env() const { return parent_env_; }
118
+
119
119
  private:
120
- void ToggleAsyncHook(v8::Isolate* isolate,
121
- const v8::Global<v8::Function>& fn);
120
+ void ToggleAsyncHook(v8::Isolate* isolate, v8::Local<v8::Function> fn);
122
121
 
123
122
  node::Environment* parent_env_;
124
123
  // Encapsulates majority of the Inspector functionality
@@ -137,8 +136,6 @@ class Agent {
137
136
 
138
137
  bool pending_enable_async_hook_ = false;
139
138
  bool pending_disable_async_hook_ = false;
140
- v8::Global<v8::Function> enable_async_hook_function_;
141
- v8::Global<v8::Function> disable_async_hook_function_;
142
139
  };
143
140
 
144
141
  } // namespace inspector
File without changes
@@ -7,6 +7,7 @@
7
7
  #error("This header can only be used when inspector is enabled")
8
8
  #endif
9
9
 
10
+ #include <unordered_set>
10
11
  #include "inspector_agent.h"
11
12
 
12
13
  namespace node {
@@ -39,7 +40,9 @@ class V8ProfilerConnection {
39
40
  // The optional `params` should be formatted in JSON.
40
41
  // The strings should be in one byte characters - which is enough for
41
42
  // the commands we use here.
42
- size_t DispatchMessage(const char* method, const char* params = nullptr);
43
+ uint32_t DispatchMessage(const char* method,
44
+ const char* params = nullptr,
45
+ bool is_profile_request = false);
43
46
 
44
47
  // Use DispatchMessage() to dispatch necessary inspector messages
45
48
  // to start and end the profiling.
@@ -58,12 +61,19 @@ class V8ProfilerConnection {
58
61
  // which will be then written as a JSON.
59
62
  virtual v8::MaybeLocal<v8::Object> GetProfile(
60
63
  v8::Local<v8::Object> result) = 0;
61
- virtual void WriteProfile(v8::Local<v8::String> message);
64
+ virtual void WriteProfile(v8::Local<v8::Object> result);
65
+
66
+ bool HasProfileId(uint32_t id) const {
67
+ return profile_ids_.find(id) != profile_ids_.end();
68
+ }
69
+
70
+ void RemoveProfileId(uint32_t id) { profile_ids_.erase(id); }
62
71
 
63
72
  private:
64
- size_t next_id() { return id_++; }
73
+ uint32_t next_id() { return id_++; }
65
74
  std::unique_ptr<inspector::InspectorSession> session_;
66
- size_t id_ = 1;
75
+ uint32_t id_ = 1;
76
+ std::unordered_set<uint32_t> profile_ids_;
67
77
 
68
78
  protected:
69
79
  Environment* env_ = nullptr;
@@ -82,8 +92,10 @@ class V8CoverageConnection : public V8ProfilerConnection {
82
92
  std::string GetDirectory() const override;
83
93
  std::string GetFilename() const override;
84
94
  v8::MaybeLocal<v8::Object> GetProfile(v8::Local<v8::Object> result) override;
85
- void WriteProfile(v8::Local<v8::String> message) override;
95
+ void WriteProfile(v8::Local<v8::Object> result) override;
86
96
  void WriteSourceMapCache();
97
+ void TakeCoverage();
98
+ void StopCoverage();
87
99
 
88
100
  private:
89
101
  std::unique_ptr<inspector::InspectorSession> session_;
File without changes
File without changes