re2 1.21.4 → 1.22.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 (508) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +10 -0
  3. package/binding.gyp +5 -1
  4. package/lib/accessors.cc +5 -9
  5. package/lib/addon.cc +6 -3
  6. package/lib/new.cc +87 -7
  7. package/lib/wrapped_re2.h +1 -1
  8. package/package.json +6 -6
  9. package/vendor/abseil-cpp/BUILD.bazel +11 -1
  10. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +93 -15
  11. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +17 -2
  12. package/vendor/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +1 -1
  13. package/vendor/abseil-cpp/CMake/README.md +2 -2
  14. package/vendor/abseil-cpp/CMake/install_test_project/CMakeLists.txt +1 -1
  15. package/vendor/abseil-cpp/CMake/install_test_project/test.sh +5 -4
  16. package/vendor/abseil-cpp/CMakeLists.txt +43 -43
  17. package/vendor/abseil-cpp/MODULE.bazel +20 -13
  18. package/vendor/abseil-cpp/PrivacyInfo.xcprivacy +8 -8
  19. package/vendor/abseil-cpp/WORKSPACE +37 -20
  20. package/vendor/abseil-cpp/WORKSPACE.bzlmod +19 -0
  21. package/vendor/abseil-cpp/absl/BUILD.bazel +2 -102
  22. package/vendor/abseil-cpp/absl/CMakeLists.txt +2 -2
  23. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +6 -4
  24. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +2 -0
  25. package/vendor/abseil-cpp/absl/algorithm/algorithm.h +2 -2
  26. package/vendor/abseil-cpp/absl/algorithm/algorithm_test.cc +13 -3
  27. package/vendor/abseil-cpp/absl/algorithm/container.h +132 -62
  28. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +274 -0
  29. package/vendor/abseil-cpp/absl/base/BUILD.bazel +172 -70
  30. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +84 -0
  31. package/vendor/abseil-cpp/absl/base/attributes.h +138 -4
  32. package/vendor/abseil-cpp/absl/base/c_header_test.c +30 -0
  33. package/vendor/abseil-cpp/absl/base/call_once.h +8 -5
  34. package/vendor/abseil-cpp/absl/base/config.h +34 -53
  35. package/vendor/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
  36. package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +20 -57
  37. package/vendor/abseil-cpp/absl/base/internal/poison.cc +84 -0
  38. package/vendor/abseil-cpp/absl/base/internal/poison.h +59 -0
  39. package/vendor/abseil-cpp/absl/base/internal/poison_test.cc +41 -0
  40. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +1 -1
  41. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +13 -3
  42. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +14 -0
  43. package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +5 -1
  44. package/vendor/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  45. package/vendor/abseil-cpp/absl/base/internal/tracing.h +81 -0
  46. package/vendor/abseil-cpp/absl/base/internal/tracing_strong_test.cc +117 -0
  47. package/vendor/abseil-cpp/absl/base/internal/tracing_weak_test.cc +34 -0
  48. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -22
  49. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -0
  50. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
  51. package/vendor/abseil-cpp/absl/base/macros.h +83 -4
  52. package/vendor/abseil-cpp/absl/base/no_destructor.h +35 -40
  53. package/vendor/abseil-cpp/absl/base/nullability.h +94 -12
  54. package/vendor/abseil-cpp/absl/base/nullability_default_nonnull_test.cc +44 -0
  55. package/vendor/abseil-cpp/absl/base/optimization.h +19 -12
  56. package/vendor/abseil-cpp/absl/base/optimization_test.cc +20 -8
  57. package/vendor/abseil-cpp/absl/base/options.h +5 -2
  58. package/vendor/abseil-cpp/absl/base/policy_checks.h +2 -0
  59. package/vendor/abseil-cpp/absl/base/prefetch.h +1 -1
  60. package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +4 -0
  61. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -2
  62. package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +1 -1
  63. package/vendor/abseil-cpp/absl/container/BUILD.bazel +132 -89
  64. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +51 -8
  65. package/vendor/abseil-cpp/absl/container/btree_map.h +4 -2
  66. package/vendor/abseil-cpp/absl/container/btree_set.h +5 -2
  67. package/vendor/abseil-cpp/absl/container/btree_test.cc +1 -0
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +2 -1
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +6 -2
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +84 -14
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +101 -0
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +76 -8
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +151 -37
  74. package/vendor/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  75. package/vendor/abseil-cpp/absl/container/inlined_vector.h +15 -1
  76. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +135 -32
  77. package/vendor/abseil-cpp/absl/container/internal/btree.h +22 -29
  78. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +29 -11
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits_test.cc +44 -21
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +70 -7
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +35 -1
  83. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -0
  84. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
  85. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +141 -6
  86. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +1 -2
  87. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
  88. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +64 -0
  89. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
  90. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
  91. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +109 -15
  92. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +43 -37
  93. package/vendor/abseil-cpp/absl/container/internal/layout.h +191 -75
  94. package/vendor/abseil-cpp/absl/container/internal/layout_benchmark.cc +175 -2
  95. package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +392 -4
  96. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
  97. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +378 -87
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1606 -599
  99. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +7 -1
  100. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +114 -3
  101. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +5 -0
  102. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +1230 -163
  103. package/vendor/abseil-cpp/absl/container/node_hash_map.h +86 -12
  104. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +65 -0
  105. package/vendor/abseil-cpp/absl/container/node_hash_set.h +80 -11
  106. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +46 -0
  107. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +20 -11
  108. package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +2 -2
  109. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +6 -0
  110. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +6 -0
  111. package/vendor/abseil-cpp/absl/copts/configure_copts.bzl +11 -54
  112. package/vendor/abseil-cpp/absl/copts/copts.py +3 -11
  113. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +18 -13
  114. package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -0
  115. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +56 -0
  116. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
  117. package/vendor/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
  118. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
  119. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
  120. package/vendor/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
  121. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
  122. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +32 -17
  123. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_memcpy_test.cc +2 -0
  124. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +125 -22
  125. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +114 -2
  126. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +33 -4
  127. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.h +1 -1
  128. package/vendor/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  129. package/vendor/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence_test.cc +126 -0
  130. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  131. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  132. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode_test.cc +606 -0
  133. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +1060 -87
  134. package/vendor/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
  135. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  136. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
  137. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc +584 -0
  138. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +1794 -0
  139. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
  140. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +9 -8
  141. package/vendor/abseil-cpp/absl/debugging/internal/stack_consumption.h +1 -1
  142. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +27 -8
  143. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +7 -0
  144. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +9 -6
  145. package/vendor/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  146. package/vendor/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  147. package/vendor/abseil-cpp/absl/debugging/internal/utf8_for_code_point_test.cc +175 -0
  148. package/vendor/abseil-cpp/absl/debugging/leak_check.cc +3 -3
  149. package/vendor/abseil-cpp/absl/debugging/symbolize.cc +3 -2
  150. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +48 -9
  151. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +8 -12
  152. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +38 -29
  153. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +10 -3
  154. package/vendor/abseil-cpp/absl/flags/commandlineflag.cc +1 -0
  155. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +18 -0
  156. package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +7 -2
  157. package/vendor/abseil-cpp/absl/flags/flag.h +16 -12
  158. package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +1 -1
  159. package/vendor/abseil-cpp/absl/flags/flag_test.cc +210 -46
  160. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +125 -30
  161. package/vendor/abseil-cpp/absl/flags/internal/flag.h +208 -35
  162. package/vendor/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +4 -0
  163. package/vendor/abseil-cpp/absl/flags/internal/private_handle_accessor.h +3 -0
  164. package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +13 -12
  165. package/vendor/abseil-cpp/absl/flags/internal/usage.cc +15 -12
  166. package/vendor/abseil-cpp/absl/flags/internal/usage_test.cc +6 -0
  167. package/vendor/abseil-cpp/absl/flags/parse.cc +14 -11
  168. package/vendor/abseil-cpp/absl/flags/parse_test.cc +12 -5
  169. package/vendor/abseil-cpp/absl/flags/reflection.cc +10 -0
  170. package/vendor/abseil-cpp/absl/flags/reflection_test.cc +7 -4
  171. package/vendor/abseil-cpp/absl/flags/usage_config.cc +9 -4
  172. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +10 -10
  173. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
  174. package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -3
  175. package/vendor/abseil-cpp/absl/functional/bind_front.h +3 -2
  176. package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +0 -4
  177. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
  178. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
  179. package/vendor/abseil-cpp/absl/functional/overload.h +39 -22
  180. package/vendor/abseil-cpp/absl/functional/overload_test.cc +126 -43
  181. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +14 -19
  182. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -6
  183. package/vendor/abseil-cpp/absl/hash/hash.h +26 -2
  184. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +68 -7
  185. package/vendor/abseil-cpp/absl/hash/hash_test.cc +90 -22
  186. package/vendor/abseil-cpp/absl/hash/hash_testing.h +9 -7
  187. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +17 -17
  188. package/vendor/abseil-cpp/absl/hash/internal/hash.h +208 -93
  189. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +62 -32
  190. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
  191. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +90 -90
  192. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +20 -12
  193. package/vendor/abseil-cpp/absl/log/BUILD.bazel +48 -44
  194. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +57 -3
  195. package/vendor/abseil-cpp/absl/log/absl_log_basic_test.cc +1 -0
  196. package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +5 -3
  197. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +158 -0
  198. package/vendor/abseil-cpp/absl/log/die_if_null.h +1 -1
  199. package/vendor/abseil-cpp/absl/log/globals.h +28 -15
  200. package/vendor/abseil-cpp/absl/log/globals_test.cc +9 -0
  201. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +89 -13
  202. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +46 -21
  203. package/vendor/abseil-cpp/absl/log/internal/check_op.h +160 -96
  204. package/vendor/abseil-cpp/absl/log/internal/conditions.h +2 -2
  205. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +23 -23
  206. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +186 -77
  207. package/vendor/abseil-cpp/absl/log/internal/log_message.h +101 -50
  208. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -10
  209. package/vendor/abseil-cpp/absl/log/internal/proto.cc +0 -3
  210. package/vendor/abseil-cpp/absl/log/internal/proto.h +25 -15
  211. package/vendor/abseil-cpp/absl/log/internal/strip.h +36 -0
  212. package/vendor/abseil-cpp/absl/log/internal/structured.h +108 -2
  213. package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  214. package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
  215. package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +120 -0
  216. package/vendor/abseil-cpp/absl/log/internal/test_matchers.cc +4 -5
  217. package/vendor/abseil-cpp/absl/log/internal/test_matchers.h +1 -1
  218. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +8 -1
  219. package/vendor/abseil-cpp/absl/log/log.h +5 -1
  220. package/vendor/abseil-cpp/absl/log/log_basic_test.cc +1 -0
  221. package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +145 -81
  222. package/vendor/abseil-cpp/absl/log/log_benchmark.cc +67 -0
  223. package/vendor/abseil-cpp/absl/log/log_format_test.cc +298 -315
  224. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +16 -25
  225. package/vendor/abseil-cpp/absl/log/log_sink.h +11 -4
  226. package/vendor/abseil-cpp/absl/log/log_sink_registry.h +5 -2
  227. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +114 -92
  228. package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +2 -2
  229. package/vendor/abseil-cpp/absl/log/structured.h +6 -1
  230. package/vendor/abseil-cpp/absl/log/structured_test.cc +5 -5
  231. package/vendor/abseil-cpp/absl/log/vlog_is_on.h +5 -3
  232. package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +66 -9
  233. package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -2
  234. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -2
  235. package/vendor/abseil-cpp/absl/meta/type_traits.h +148 -42
  236. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +85 -85
  237. package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +11 -9
  238. package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
  239. package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -3
  240. package/vendor/abseil-cpp/absl/numeric/int128.h +50 -8
  241. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +20 -4
  242. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +24 -3
  243. package/vendor/abseil-cpp/absl/numeric/int128_stream_test.cc +3 -3
  244. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +87 -17
  245. package/vendor/abseil-cpp/absl/numeric/internal/bits.h +6 -2
  246. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +8 -8
  247. package/vendor/abseil-cpp/absl/profiling/internal/periodic_sampler.h +1 -1
  248. package/vendor/abseil-cpp/absl/random/BUILD.bazel +55 -48
  249. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +38 -8
  250. package/vendor/abseil-cpp/absl/random/benchmarks.cc +3 -3
  251. package/vendor/abseil-cpp/absl/random/bernoulli_distribution.h +3 -1
  252. package/vendor/abseil-cpp/absl/random/beta_distribution.h +11 -9
  253. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +11 -8
  254. package/vendor/abseil-cpp/absl/random/discrete_distribution.cc +10 -0
  255. package/vendor/abseil-cpp/absl/random/discrete_distribution.h +4 -2
  256. package/vendor/abseil-cpp/absl/random/discrete_distribution_test.cc +1 -1
  257. package/vendor/abseil-cpp/absl/random/distributions.h +11 -11
  258. package/vendor/abseil-cpp/absl/random/distributions_test.cc +56 -6
  259. package/vendor/abseil-cpp/absl/random/examples_test.cc +0 -1
  260. package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -0
  261. package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +2 -1
  262. package/vendor/abseil-cpp/absl/random/generators_test.cc +0 -1
  263. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +136 -56
  264. package/vendor/abseil-cpp/absl/random/internal/chi_square.cc +3 -6
  265. package/vendor/abseil-cpp/absl/random/internal/chi_square_test.cc +1 -2
  266. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +3 -1
  267. package/vendor/abseil-cpp/absl/random/internal/distribution_test_util.h +3 -3
  268. package/vendor/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +6 -2
  269. package/vendor/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +1 -2
  270. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +5 -2
  271. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +33 -7
  272. package/vendor/abseil-cpp/absl/random/internal/mock_overload_set.h +46 -24
  273. package/vendor/abseil-cpp/absl/random/internal/mock_validators.h +98 -0
  274. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +6 -5
  275. package/vendor/abseil-cpp/absl/random/internal/platform.h +12 -12
  276. package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +1 -2
  277. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +56 -5
  278. package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -1
  279. package/vendor/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +1 -1
  280. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +6 -2
  281. package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -8
  282. package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +2 -2
  283. package/vendor/abseil-cpp/absl/random/internal/wide_multiply.h +0 -1
  284. package/vendor/abseil-cpp/absl/random/log_uniform_int_distribution.h +1 -4
  285. package/vendor/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +2 -2
  286. package/vendor/abseil-cpp/absl/random/mock_distributions.h +13 -10
  287. package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +208 -0
  288. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +30 -31
  289. package/vendor/abseil-cpp/absl/random/mocking_bit_gen_test.cc +29 -20
  290. package/vendor/abseil-cpp/absl/random/poisson_distribution.h +4 -3
  291. package/vendor/abseil-cpp/absl/random/poisson_distribution_test.cc +0 -1
  292. package/vendor/abseil-cpp/absl/random/seed_gen_exception.cc +2 -3
  293. package/vendor/abseil-cpp/absl/random/seed_sequences.h +3 -2
  294. package/vendor/abseil-cpp/absl/random/uniform_int_distribution.h +2 -1
  295. package/vendor/abseil-cpp/absl/random/uniform_int_distribution_test.cc +2 -2
  296. package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +2 -0
  297. package/vendor/abseil-cpp/absl/random/uniform_real_distribution_test.cc +1 -1
  298. package/vendor/abseil-cpp/absl/random/zipf_distribution.h +5 -4
  299. package/vendor/abseil-cpp/absl/random/zipf_distribution_test.cc +6 -6
  300. package/vendor/abseil-cpp/absl/status/BUILD.bazel +41 -4
  301. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +40 -1
  302. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +8 -4
  303. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +1 -1
  304. package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +68 -0
  305. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +246 -0
  306. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
  307. package/vendor/abseil-cpp/absl/status/status.cc +0 -4
  308. package/vendor/abseil-cpp/absl/status/status.h +5 -5
  309. package/vendor/abseil-cpp/absl/status/status_matchers.h +118 -0
  310. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +119 -0
  311. package/vendor/abseil-cpp/absl/status/status_test.cc +2 -2
  312. package/vendor/abseil-cpp/absl/status/statusor.h +108 -142
  313. package/vendor/abseil-cpp/absl/status/statusor_test.cc +24 -143
  314. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +136 -134
  315. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +9 -4
  316. package/vendor/abseil-cpp/absl/strings/ascii.cc +46 -70
  317. package/vendor/abseil-cpp/absl/strings/ascii.h +48 -8
  318. package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +30 -2
  319. package/vendor/abseil-cpp/absl/strings/ascii_test.cc +16 -0
  320. package/vendor/abseil-cpp/absl/strings/charconv.cc +4 -7
  321. package/vendor/abseil-cpp/absl/strings/charset.h +3 -4
  322. package/vendor/abseil-cpp/absl/strings/cord.cc +20 -15
  323. package/vendor/abseil-cpp/absl/strings/cord.h +73 -26
  324. package/vendor/abseil-cpp/absl/strings/cord_test.cc +128 -50
  325. package/vendor/abseil-cpp/absl/strings/escaping.cc +127 -62
  326. package/vendor/abseil-cpp/absl/strings/escaping.h +25 -8
  327. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +42 -15
  328. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +36 -0
  329. package/vendor/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
  330. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.h +11 -1
  331. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +77 -24
  332. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
  333. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
  334. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
  335. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +6 -8
  336. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
  337. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
  338. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
  339. package/vendor/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +2 -2
  340. package/vendor/abseil-cpp/absl/strings/internal/cordz_info_test.cc +16 -16
  341. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +7 -7
  342. package/vendor/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +1 -1
  343. package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
  344. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +25 -49
  345. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +3 -2
  346. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
  347. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +40 -1
  348. package/vendor/abseil-cpp/absl/strings/match.h +21 -11
  349. package/vendor/abseil-cpp/absl/strings/numbers.cc +109 -334
  350. package/vendor/abseil-cpp/absl/strings/numbers.h +12 -151
  351. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +0 -7
  352. package/vendor/abseil-cpp/absl/strings/str_cat.cc +49 -142
  353. package/vendor/abseil-cpp/absl/strings/str_cat.h +81 -84
  354. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +13 -46
  355. package/vendor/abseil-cpp/absl/strings/str_format.h +1 -1
  356. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +14 -2
  357. package/vendor/abseil-cpp/absl/strings/str_join.h +19 -5
  358. package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +10 -0
  359. package/vendor/abseil-cpp/absl/strings/str_join_test.cc +36 -0
  360. package/vendor/abseil-cpp/absl/strings/str_split.h +20 -3
  361. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +46 -0
  362. package/vendor/abseil-cpp/absl/strings/string_view.h +22 -20
  363. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +28 -11
  364. package/vendor/abseil-cpp/absl/strings/strip.h +11 -8
  365. package/vendor/abseil-cpp/absl/strings/substitute.cc +4 -0
  366. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +40 -31
  367. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +7 -0
  368. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +16 -10
  369. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.h +6 -0
  370. package/vendor/abseil-cpp/absl/synchronization/blocking_counter_test.cc +66 -0
  371. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -1
  372. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
  373. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
  374. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +19 -0
  375. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +7 -4
  376. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +5 -1
  377. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +4 -1
  378. package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +2 -3
  379. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +38 -12
  380. package/vendor/abseil-cpp/absl/synchronization/mutex.h +5 -4
  381. package/vendor/abseil-cpp/absl/synchronization/notification.cc +10 -2
  382. package/vendor/abseil-cpp/absl/synchronization/notification.h +11 -1
  383. package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +98 -1
  384. package/vendor/abseil-cpp/absl/time/BUILD.bazel +6 -8
  385. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +1 -1
  386. package/vendor/abseil-cpp/absl/time/civil_time.h +2 -2
  387. package/vendor/abseil-cpp/absl/time/clock.cc +15 -1
  388. package/vendor/abseil-cpp/absl/time/duration.cc +64 -104
  389. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +20 -0
  390. package/vendor/abseil-cpp/absl/time/duration_test.cc +68 -0
  391. package/vendor/abseil-cpp/absl/time/format.cc +2 -1
  392. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +25 -14
  393. package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +1 -1
  394. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  395. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  396. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +3 -3
  397. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +2 -2
  398. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +2 -2
  399. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +3 -3
  400. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +2 -2
  401. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +2 -2
  402. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +1 -1
  403. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +3 -31
  404. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +15 -26
  405. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +1 -1
  406. package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +9 -7
  407. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  408. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maputo +0 -0
  409. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Asuncion +0 -0
  410. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia_Banderas +0 -0
  411. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cancun +0 -0
  412. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chihuahua +0 -0
  413. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ciudad_Juarez +0 -0
  414. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  415. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Hermosillo +0 -0
  416. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mazatlan +0 -0
  417. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Merida +0 -0
  418. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mexico_City +0 -0
  419. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Miquelon +0 -0
  420. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Monterrey +0 -0
  421. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montreal +0 -0
  422. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nipigon +0 -0
  423. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ojinaga +0 -0
  424. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  425. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thunder_Bay +0 -0
  426. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  427. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Toronto +0 -0
  428. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Almaty +0 -0
  429. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Choibalsan +0 -0
  430. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dili +0 -0
  431. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Gaza +0 -0
  432. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hebron +0 -0
  433. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  434. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Manila +0 -0
  435. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qostanay +0 -0
  436. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  437. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Azores +0 -0
  438. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Madeira +0 -0
  439. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CET +0 -0
  440. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CST6CDT +0 -0
  441. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Eastern +0 -0
  442. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EET +0 -0
  443. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST +0 -0
  444. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST5EDT +0 -0
  445. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Lisbon +0 -0
  446. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/HST +0 -0
  447. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MET +0 -0
  448. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST +0 -0
  449. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST7MDT +0 -0
  450. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  451. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaSur +0 -0
  452. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/General +0 -0
  453. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PST8PDT +0 -0
  454. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Portugal +0 -0
  455. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/WET +0 -0
  456. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +4 -5
  457. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +5 -10
  458. package/vendor/abseil-cpp/absl/time/time.h +144 -39
  459. package/vendor/abseil-cpp/absl/time/time_test.cc +106 -56
  460. package/vendor/abseil-cpp/absl/types/BUILD.bazel +20 -18
  461. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +2 -0
  462. package/vendor/abseil-cpp/absl/types/internal/optional.h +2 -2
  463. package/vendor/abseil-cpp/absl/types/internal/span.h +3 -2
  464. package/vendor/abseil-cpp/absl/types/internal/variant.h +55 -67
  465. package/vendor/abseil-cpp/absl/types/optional.h +18 -19
  466. package/vendor/abseil-cpp/absl/types/optional_test.cc +1 -44
  467. package/vendor/abseil-cpp/absl/types/span.h +87 -44
  468. package/vendor/abseil-cpp/absl/types/span_test.cc +43 -3
  469. package/vendor/abseil-cpp/absl/types/variant.h +19 -24
  470. package/vendor/abseil-cpp/absl/types/variant_test.cc +38 -38
  471. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +4 -4
  472. package/vendor/abseil-cpp/absl/utility/utility.h +3 -41
  473. package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -8
  474. package/vendor/abseil-cpp/ci/cmake_common.sh +2 -12
  475. package/vendor/abseil-cpp/ci/cmake_install_test.sh +1 -1
  476. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +3 -3
  477. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -4
  478. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +34 -21
  479. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +34 -20
  480. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -1
  481. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +28 -20
  482. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +3 -3
  483. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
  484. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +4 -14
  485. package/vendor/abseil-cpp/create_lts.py +14 -13
  486. package/vendor/re2/.github/bazel.sh +6 -2
  487. package/vendor/re2/.github/workflows/ci-bazel.yml +13 -2
  488. package/vendor/re2/.github/workflows/ci-cmake.yml +3 -3
  489. package/vendor/re2/.github/workflows/ci.yml +3 -3
  490. package/vendor/re2/.github/workflows/pages.yml +3 -3
  491. package/vendor/re2/.github/workflows/pr.yml +1 -1
  492. package/vendor/re2/.github/workflows/python.yml +39 -19
  493. package/vendor/re2/.github/workflows/release.yml +1 -1
  494. package/vendor/re2/BUILD.bazel +1 -0
  495. package/vendor/re2/MODULE.bazel +3 -3
  496. package/vendor/re2/app/build.sh +2 -2
  497. package/vendor/re2/python/setup.py +53 -109
  498. package/vendor/re2/python/toolchains/generate.py +98 -0
  499. package/vendor/re2/re2/bitmap256.h +1 -1
  500. package/vendor/re2/re2/prog.cc +9 -9
  501. package/vendor/re2/re2/re2.cc +2 -2
  502. package/vendor/re2/re2/regexp.cc +1 -1
  503. package/vendor/re2/re2/testing/filtered_re2_test.cc +19 -19
  504. package/vendor/re2/re2/testing/re2_test.cc +16 -9
  505. package/vendor/re2/re2/testing/regexp_test.cc +3 -3
  506. package/vendor/re2/re2/testing/set_test.cc +24 -24
  507. package/vendor/re2/re2/testing/string_generator_test.cc +1 -1
  508. package/vendor/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
package/LICENSE CHANGED
@@ -7,7 +7,7 @@ The text of the BSD license is reproduced below.
7
7
  The "New" BSD License:
8
8
  **********************
9
9
 
10
- Copyright (c) 2005-2024, Eugene Lazutkin
10
+ Copyright (c) 2005-2025, Eugene Lazutkin
11
11
  All rights reserved.
12
12
 
13
13
  Redistribution and use in source and binary forms, with or without
package/README.md CHANGED
@@ -351,8 +351,18 @@ console.log('re2_res : ' + re2_res); // prints: re2_res : abc,a,b,c
351
351
 
352
352
  `RE2` always works in the Unicode mode. See `RE2.unicodeWarningLevel` above for more details on how to control warnings about this feature.
353
353
 
354
+ #### Unicode classes
355
+
356
+ `RE2` supports a subset of Unicode classes as defined in [RE2 Syntax](https://github.com/google/re2/wiki/Syntax). Native Google RE2 supports only short names, e.g., `L` for `Letter`, `N` for `Number`, etc. Like `RegExp`, `RE2` supports both short and long names, e.g., `Letter` for `L`, by translating them to short names.
357
+
358
+ The extended form `\p{name=value}` is not supported. Only form `\p{name}` is supported.
359
+
360
+ The same applies to `\P{name}`.
361
+
354
362
  ## Release history
355
363
 
364
+ - 1.22.0 *Added support for translation of Unicode classes (thx, [John Livingston](https://github.com/JohnXLivingston)). Added [attestations](https://github.com/uhop/node-re2/attestations).*
365
+ - 1.21.5 *Updated all dependencies and the list of pre-compiled targets. Fixed minor bugs. C++ style fix (thx, [Benjamin Brienen](https://github.com/BenjaminBrienen)). Added Windows 11 ARM build runner (thx, [Kagami Sascha Rosylight](https://github.com/saschanaz)).*
356
366
  - 1.21.4 *Fixed a regression reported by [caroline-matsec](https://github.com/caroline-matsec), thx! Added pre-compilation targets for Alpine Linux on ARM. Updated deps.*
357
367
  - 1.21.3 *Fixed an empty string regression reported by [Rhys Arkins](https://github.com/rarkins), thx! Updated deps.*
358
368
  - 1.21.2 *Fixed another memory regression reported by [matthewvalentine](https://github.com/matthewvalentine), thx! Updated deps. Added more tests and benchmarks.*
package/binding.gyp CHANGED
@@ -47,11 +47,14 @@
47
47
  "vendor/abseil-cpp/absl/base/internal/thread_identity.cc",
48
48
  "vendor/abseil-cpp/absl/base/internal/throw_delegate.cc",
49
49
  "vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
50
- "vendor/abseil-cpp/absl/debugging/internal/demangle.cc",
51
50
  "vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc",
51
+ "vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc",
52
+ "vendor/abseil-cpp/absl/debugging/internal/demangle.cc",
53
+ "vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc",
52
54
  "vendor/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
53
55
  "vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
54
56
  "vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc",
57
+ "vendor/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc",
55
58
  "vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc",
56
59
  "vendor/abseil-cpp/absl/debugging/stacktrace.cc",
57
60
  "vendor/abseil-cpp/absl/debugging/symbolize.cc",
@@ -72,6 +75,7 @@
72
75
  "vendor/abseil-cpp/absl/log/internal/log_sink_set.cc",
73
76
  "vendor/abseil-cpp/absl/log/internal/nullguard.cc",
74
77
  "vendor/abseil-cpp/absl/log/internal/proto.cc",
78
+ "vendor/abseil-cpp/absl/log/internal/structured_proto.cc",
75
79
  "vendor/abseil-cpp/absl/log/globals.cc",
76
80
  "vendor/abseil-cpp/absl/log/log_sink.cc",
77
81
  "vendor/abseil-cpp/absl/numeric/int128.cc",
package/lib/accessors.cc CHANGED
@@ -205,28 +205,24 @@ NAN_SETTER(WrappedRE2::SetUnicodeWarningLevel)
205
205
  {
206
206
  if (value->IsString())
207
207
  {
208
- auto size = Nan::DecodeBytes(value, Nan::UTF8);
209
- std::vector<char> buffer(size + 1);
210
- auto data = &buffer[0];
211
- Nan::DecodeWrite(data, size, value, Nan::UTF8);
212
- buffer[size] = '\0';
213
- if (!strcmp(data, "throw"))
208
+ Nan::Utf8String s(value);
209
+ if (!strcmp(*s, "throw"))
214
210
  {
215
211
  unicodeWarningLevel = THROW;
216
212
  return;
217
213
  }
218
- if (!strcmp(data, "warn"))
214
+ if (!strcmp(*s, "warn"))
219
215
  {
220
216
  unicodeWarningLevel = WARN;
221
217
  return;
222
218
  }
223
- if (!strcmp(data, "warnOnce"))
219
+ if (!strcmp(*s, "warnOnce"))
224
220
  {
225
221
  unicodeWarningLevel = WARN_ONCE;
226
222
  alreadyWarnedAboutUnicode = false;
227
223
  return;
228
224
  }
229
- if (!strcmp(data, "nothing"))
225
+ if (!strcmp(*s, "nothing"))
230
226
  {
231
227
  unicodeWarningLevel = NOTHING;
232
228
  return;
package/lib/addon.cc CHANGED
@@ -7,7 +7,8 @@ static NAN_METHOD(GetUtf8Length)
7
7
  {
8
8
  return;
9
9
  }
10
- info.GetReturnValue().Set(static_cast<int>(Nan::DecodeBytes(t.ToLocalChecked(), Nan::UTF8)));
10
+ auto s = t.ToLocalChecked();
11
+ info.GetReturnValue().Set(static_cast<int>(s->Utf8Length(v8::Isolate::GetCurrent())));
11
12
  }
12
13
 
13
14
  static NAN_METHOD(GetUtf16Length)
@@ -158,10 +159,12 @@ const StrVal &WrappedRE2::prepareArgument(const v8::Local<v8::Value> &arg, bool
158
159
 
159
160
  lastString.Reset(arg);
160
161
 
162
+ auto isolate = v8::Isolate::GetCurrent();
163
+
161
164
  auto s = t.ToLocalChecked();
162
- auto argLength = Nan::DecodeBytes(s);
165
+ auto argLength = s->Utf8Length(isolate);
163
166
 
164
- auto buffer = node::Buffer::New(v8::Isolate::GetCurrent(), s).ToLocalChecked();
167
+ auto buffer = node::Buffer::New(isolate, s).ToLocalChecked();
165
168
  lastCache.Reset(buffer);
166
169
 
167
170
  auto argSize = node::Buffer::Length(buffer);
package/lib/new.cc CHANGED
@@ -1,6 +1,7 @@
1
1
  #include "./wrapped_re2.h"
2
2
  #include "./util.h"
3
3
 
4
+ #include <map>
4
5
  #include <memory>
5
6
  #include <string>
6
7
  #include <unordered_set>
@@ -18,6 +19,47 @@ inline bool isHexadecimal(char ch)
18
19
  return ('0' <= ch && ch <= '9') || ('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z');
19
20
  }
20
21
 
22
+ static std::map<std::string, std::string> unicodeClasses = {
23
+ {"Uppercase_Letter", "Lu"},
24
+ {"Lowercase_Letter", "Ll"},
25
+ {"Titlecase_Letter", "Lt"},
26
+ {"Cased_Letter", "LC"},
27
+ {"Modifier_Letter", "Lm"},
28
+ {"Other_Letter", "Lo"},
29
+ {"Letter", "L"},
30
+ {"Nonspacing_Mark", "Mn"},
31
+ {"Spacing_Mark", "Mc"},
32
+ {"Enclosing_Mark", "Me"},
33
+ {"Mark", "M"},
34
+ {"Decimal_Number", "Nd"},
35
+ {"Letter_Number", "Nl"},
36
+ {"Other_Number", "No"},
37
+ {"Number", "N"},
38
+ {"Connector_Punctuation", "Pc"},
39
+ {"Dash_Punctuation", "Pd"},
40
+ {"Open_Punctuation", "Ps"},
41
+ {"Close_Punctuation", "Pe"},
42
+ {"Initial_Punctuation", "Pi"},
43
+ {"Final_Punctuation", "Pf"},
44
+ {"Other_Punctuation", "Po"},
45
+ {"Punctuation", "P"},
46
+ {"Math_Symbol", "Sm"},
47
+ {"Currency_Symbol", "Sc"},
48
+ {"Modifier_Symbol", "Sk"},
49
+ {"Other_Symbol", "So"},
50
+ {"Symbol", "S"},
51
+ {"Space_Separator", "Zs"},
52
+ {"Line_Separator", "Zl"},
53
+ {"Paragraph_Separator", "Zp"},
54
+ {"Separator", "Z"},
55
+ {"Control", "Cc"},
56
+ {"Format", "Cf"},
57
+ {"Surrogate", "Cs"},
58
+ {"Private_Use", "Co"},
59
+ {"Unassigned", "Cn"},
60
+ {"Other", "C"},
61
+ };
62
+
21
63
  static bool translateRegExp(const char *data, size_t size, bool multiline, std::vector<char> &buffer)
22
64
  {
23
65
  std::string result;
@@ -98,6 +140,36 @@ static bool translateRegExp(const char *data, size_t size, bool multiline, std::
98
140
  result += "\\u";
99
141
  i += 2;
100
142
  continue;
143
+ case 'p':
144
+ case 'P':
145
+ if (i + 2 < size) {
146
+ if (data[i + 2] == '{') {
147
+ size_t j = i + 3;
148
+ while (j < size && data[j] != '}') ++j;
149
+ if (j < size) {
150
+ result += "\\";
151
+ result += data[i + 1];
152
+ std::string name(data + i + 3, j - i - 3);
153
+ if (unicodeClasses.find(name) != unicodeClasses.end()) {
154
+ name = unicodeClasses[name];
155
+ }
156
+ if (name.size() == 1) {
157
+ result += name;
158
+ } else {
159
+ result += "{";
160
+ result += name;
161
+ result += "}";
162
+ }
163
+ i = j + 1;
164
+ changed = true;
165
+ continue;
166
+ }
167
+ }
168
+ }
169
+ result += "\\";
170
+ result += data[i + 1];
171
+ i += 2;
172
+ continue;
101
173
  default:
102
174
  result += "\\";
103
175
  size_t sym_size = getUtf8CharSize(ch);
@@ -241,10 +313,13 @@ NAN_METHOD(WrappedRE2::New)
241
313
  {
242
314
  if (info[1]->IsString())
243
315
  {
244
- size = Nan::DecodeBytes(info[1], Nan::UTF8);
316
+ auto isolate = v8::Isolate::GetCurrent();
317
+ auto t = info[1]->ToString(Nan::GetCurrentContext());
318
+ auto s = t.ToLocalChecked();
319
+ size = s->Utf8Length(isolate);
245
320
  buffer.resize(size + 1);
246
321
  data = &buffer[0];
247
- Nan::DecodeWrite(data, size, info[1], Nan::UTF8);
322
+ s->WriteUtf8(isolate, data, buffer.size());
248
323
  buffer[size] = '\0';
249
324
  }
250
325
  else if (node::Buffer::HasInstance(info[1]))
@@ -296,11 +371,13 @@ NAN_METHOD(WrappedRE2::New)
296
371
  {
297
372
  const auto *re = v8::RegExp::Cast(*info[0]);
298
373
 
299
- auto t = re->GetSource();
300
- size = Nan::DecodeBytes(t, Nan::UTF8);
374
+ auto isolate = v8::Isolate::GetCurrent();
375
+ auto t = re->GetSource()->ToString(Nan::GetCurrentContext());
376
+ auto s = t.ToLocalChecked();
377
+ size = s->Utf8Length(isolate);
301
378
  buffer.resize(size + 1);
302
379
  data = &buffer[0];
303
- Nan::DecodeWrite(data, size, t, Nan::UTF8);
380
+ s->WriteUtf8(isolate, data, buffer.size());
304
381
  buffer[size] = '\0';
305
382
 
306
383
  source = escapeRegExp(data, size);
@@ -352,10 +429,13 @@ NAN_METHOD(WrappedRE2::New)
352
429
  }
353
430
  else if (info[0]->IsString())
354
431
  {
355
- size = Nan::DecodeBytes(info[0], Nan::UTF8);
432
+ auto isolate = v8::Isolate::GetCurrent();
433
+ auto t = info[0]->ToString(Nan::GetCurrentContext());
434
+ auto s = t.ToLocalChecked();
435
+ size = s->Utf8Length(isolate);
356
436
  buffer.resize(size + 1);
357
437
  data = &buffer[0];
358
- Nan::DecodeWrite(data, size, info[0], Nan::UTF8);
438
+ s->WriteUtf8(isolate, data, buffer.size());
359
439
  buffer[size] = '\0';
360
440
 
361
441
  source = escapeRegExp(data, size);
package/lib/wrapped_re2.h CHANGED
@@ -121,7 +121,7 @@ private:
121
121
  const StrVal &prepareArgument(const v8::Local<v8::Value> &arg, bool ignoreLastIndex = false);
122
122
  void doneWithLastString();
123
123
 
124
- friend class PrepareLastString;
124
+ friend struct PrepareLastString;
125
125
  };
126
126
 
127
127
  struct PrepareLastString
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "re2",
3
- "version": "1.21.4",
3
+ "version": "1.22.0",
4
4
  "description": "Bindings for RE2: fast, safe alternative to backtracking regular expression engines.",
5
5
  "homepage": "https://github.com/uhop/node-re2",
6
6
  "bugs": "https://github.com/uhop/node-re2/issues",
@@ -15,14 +15,14 @@
15
15
  "vendor"
16
16
  ],
17
17
  "dependencies": {
18
- "install-artifact-from-github": "^1.3.5",
19
- "nan": "^2.20.0",
20
- "node-gyp": "^10.2.0"
18
+ "install-artifact-from-github": "^1.4.0",
19
+ "nan": "^2.22.2",
20
+ "node-gyp": "^11.2.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@types/node": "^22.5.0",
23
+ "@types/node": "^22.15.17",
24
24
  "heya-unit": "^0.3.0",
25
- "typescript": "^5.5.4"
25
+ "typescript": "^5.8.3"
26
26
  },
27
27
  "scripts": {
28
28
  "test": "node tests/tests.js",
@@ -1,4 +1,3 @@
1
- #
2
1
  # Copyright 2020 The Abseil Authors.
3
2
  #
4
3
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,3 +22,14 @@ exports_files([
23
22
  "AUTHORS",
24
23
  "LICENSE",
25
24
  ])
25
+
26
+ # For building with clang-cl.
27
+ # https://bazel.build/configure/windows#clang
28
+ platform(
29
+ name = "x64_windows-clang-cl",
30
+ constraint_values = [
31
+ "@platforms//cpu:x86_64",
32
+ "@platforms//os:windows",
33
+ "@bazel_tools//tools/cpp:clang-cl",
34
+ ],
35
+ )
@@ -28,6 +28,8 @@ set(ABSL_INTERNAL_DLL_FILES
28
28
  "base/internal/low_level_scheduling.h"
29
29
  "base/internal/nullability_impl.h"
30
30
  "base/internal/per_thread_tls.h"
31
+ "base/internal/poison.cc"
32
+ "base/internal/poison.h"
31
33
  "base/prefetch.h"
32
34
  "base/internal/pretty_function.h"
33
35
  "base/internal/raw_logging.cc"
@@ -47,6 +49,8 @@ set(ABSL_INTERNAL_DLL_FILES
47
49
  "base/internal/thread_identity.h"
48
50
  "base/internal/throw_delegate.cc"
49
51
  "base/internal/throw_delegate.h"
52
+ "base/internal/tracing.cc"
53
+ "base/internal/tracing.h"
50
54
  "base/internal/tsan_mutex_interface.h"
51
55
  "base/internal/unaligned_access.h"
52
56
  "base/internal/unscaledcycleclock.cc"
@@ -66,6 +70,7 @@ set(ABSL_INTERNAL_DLL_FILES
66
70
  "cleanup/internal/cleanup.h"
67
71
  "container/btree_map.h"
68
72
  "container/btree_set.h"
73
+ "container/hash_container_defaults.h"
69
74
  "container/fixed_array.h"
70
75
  "container/flat_hash_map.h"
71
76
  "container/flat_hash_set.h"
@@ -121,8 +126,13 @@ set(ABSL_INTERNAL_DLL_FILES
121
126
  "debugging/symbolize.h"
122
127
  "debugging/internal/address_is_readable.cc"
123
128
  "debugging/internal/address_is_readable.h"
129
+ "debugging/internal/bounded_utf8_length_sequence.h"
130
+ "debugging/internal/decode_rust_punycode.cc"
131
+ "debugging/internal/decode_rust_punycode.h"
124
132
  "debugging/internal/demangle.cc"
125
133
  "debugging/internal/demangle.h"
134
+ "debugging/internal/demangle_rust.cc"
135
+ "debugging/internal/demangle_rust.h"
126
136
  "debugging/internal/elf_mem_image.cc"
127
137
  "debugging/internal/elf_mem_image.h"
128
138
  "debugging/internal/examine_stack.cc"
@@ -131,6 +141,8 @@ set(ABSL_INTERNAL_DLL_FILES
131
141
  "debugging/internal/stack_consumption.h"
132
142
  "debugging/internal/stacktrace_config.h"
133
143
  "debugging/internal/symbolize.h"
144
+ "debugging/internal/utf8_for_code_point.cc"
145
+ "debugging/internal/utf8_for_code_point.h"
134
146
  "debugging/internal/vdso_support.cc"
135
147
  "debugging/internal/vdso_support.h"
136
148
  "functional/any_invocable.h"
@@ -181,6 +193,8 @@ set(ABSL_INTERNAL_DLL_FILES
181
193
  "log/internal/proto.cc"
182
194
  "log/internal/strip.h"
183
195
  "log/internal/structured.h"
196
+ "log/internal/structured_proto.cc"
197
+ "log/internal/structured_proto.h"
184
198
  "log/internal/vlog_config.cc"
185
199
  "log/internal/vlog_config.h"
186
200
  "log/internal/voidify.h"
@@ -311,7 +325,6 @@ set(ABSL_INTERNAL_DLL_FILES
311
325
  "strings/internal/string_constant.h"
312
326
  "strings/internal/stringify_sink.h"
313
327
  "strings/internal/stringify_sink.cc"
314
- "strings/internal/has_absl_stringify.h"
315
328
  "strings/has_absl_stringify.h"
316
329
  "strings/has_ostream_operator.h"
317
330
  "strings/match.cc"
@@ -437,9 +450,47 @@ set(ABSL_INTERNAL_DLL_FILES
437
450
  "debugging/leak_check.cc"
438
451
  )
439
452
 
453
+ if(NOT MSVC)
454
+ list(APPEND ABSL_INTERNAL_DLL_FILES
455
+ "flags/commandlineflag.cc"
456
+ "flags/commandlineflag.h"
457
+ "flags/config.h"
458
+ "flags/declare.h"
459
+ "flags/flag.h"
460
+ "flags/internal/commandlineflag.cc"
461
+ "flags/internal/commandlineflag.h"
462
+ "flags/internal/flag.cc"
463
+ "flags/internal/flag.h"
464
+ "flags/internal/parse.h"
465
+ "flags/internal/path_util.h"
466
+ "flags/internal/private_handle_accessor.cc"
467
+ "flags/internal/private_handle_accessor.h"
468
+ "flags/internal/program_name.cc"
469
+ "flags/internal/program_name.h"
470
+ "flags/internal/registry.h"
471
+ "flags/internal/sequence_lock.h"
472
+ "flags/internal/usage.cc"
473
+ "flags/internal/usage.h"
474
+ "flags/marshalling.cc"
475
+ "flags/marshalling.h"
476
+ "flags/parse.cc"
477
+ "flags/parse.h"
478
+ "flags/reflection.cc"
479
+ "flags/reflection.h"
480
+ "flags/usage.cc"
481
+ "flags/usage.h"
482
+ "flags/usage_config.cc"
483
+ "flags/usage_config.h"
484
+ "log/flags.cc"
485
+ "log/flags.h"
486
+ "log/internal/flags.h"
487
+ )
488
+ endif()
489
+
440
490
  set(ABSL_INTERNAL_DLL_TARGETS
441
491
  "absl_check"
442
492
  "absl_log"
493
+ "absl_vlog_is_on"
443
494
  "algorithm"
444
495
  "algorithm_container"
445
496
  "any"
@@ -505,6 +556,7 @@ set(ABSL_INTERNAL_DLL_TARGETS
505
556
  "log_internal_check_op"
506
557
  "log_internal_conditions"
507
558
  "log_internal_config"
559
+ "log_internal_fnmatch"
508
560
  "log_internal_format"
509
561
  "log_internal_globals"
510
562
  "log_internal_log_impl"
@@ -584,6 +636,7 @@ set(ABSL_INTERNAL_DLL_TARGETS
584
636
  "strerror"
585
637
  "strings"
586
638
  "strings_internal"
639
+ "string_view"
587
640
  "symbolize"
588
641
  "synchronization"
589
642
  "thread_pool"
@@ -594,8 +647,30 @@ set(ABSL_INTERNAL_DLL_TARGETS
594
647
  "type_traits"
595
648
  "utility"
596
649
  "variant"
650
+ "vlog_config_internal"
651
+ "vlog_is_on"
597
652
  )
598
653
 
654
+ if(NOT MSVC)
655
+ list(APPEND ABSL_INTERNAL_DLL_TARGETS
656
+ "flags"
657
+ "flags_commandlineflag"
658
+ "flags_commandlineflag_internal"
659
+ "flags_config"
660
+ "flags_internal"
661
+ "flags_marshalling"
662
+ "flags_parse"
663
+ "flags_path_util"
664
+ "flags_private_handle_accessor"
665
+ "flags_program_name"
666
+ "flags_reflection"
667
+ "flags_usage"
668
+ "flags_usage_internal"
669
+ "log_internal_flags"
670
+ "log_flags"
671
+ )
672
+ endif()
673
+
599
674
  set(ABSL_INTERNAL_TEST_DLL_FILES
600
675
  "hash/hash_testing.h"
601
676
  "log/scoped_mock_log.cc"
@@ -608,6 +683,9 @@ set(ABSL_INTERNAL_TEST_DLL_FILES
608
683
  "random/internal/mock_overload_set.h"
609
684
  "random/mocking_bit_gen.h"
610
685
  "random/mock_distributions.h"
686
+ "status/status_matchers.h"
687
+ "status/internal/status_matchers.cc"
688
+ "status/internal/status_matchers.h"
611
689
  "strings/cordz_test_helpers.h"
612
690
  "strings/cord_test_helpers.h"
613
691
  )
@@ -620,6 +698,7 @@ set(ABSL_INTERNAL_TEST_DLL_TARGETS
620
698
  "random_internal_distribution_test_util"
621
699
  "random_internal_mock_overload_set"
622
700
  "scoped_mock_log"
701
+ "status_matchers"
623
702
  )
624
703
 
625
704
  include(CheckCXXSourceCompiles)
@@ -668,12 +747,7 @@ function(absl_internal_dll_contains)
668
747
 
669
748
  STRING(REGEX REPLACE "^absl::" "" _target ${ABSL_INTERNAL_DLL_TARGET})
670
749
 
671
- list(FIND
672
- ABSL_INTERNAL_DLL_TARGETS
673
- "${_target}"
674
- _index)
675
-
676
- if (${_index} GREATER -1)
750
+ if (_target IN_LIST ABSL_INTERNAL_DLL_TARGETS)
677
751
  set(${ABSL_INTERNAL_DLL_OUTPUT} 1 PARENT_SCOPE)
678
752
  else()
679
753
  set(${ABSL_INTERNAL_DLL_OUTPUT} 0 PARENT_SCOPE)
@@ -690,12 +764,7 @@ function(absl_internal_test_dll_contains)
690
764
 
691
765
  STRING(REGEX REPLACE "^absl::" "" _target ${ABSL_INTERNAL_TEST_DLL_TARGET})
692
766
 
693
- list(FIND
694
- ABSL_INTERNAL_TEST_DLL_TARGETS
695
- "${_target}"
696
- _index)
697
-
698
- if (${_index} GREATER -1)
767
+ if (_target IN_LIST ABSL_INTERNAL_TEST_DLL_TARGETS)
699
768
  set(${ABSL_INTERNAL_TEST_DLL_OUTPUT} 1 PARENT_SCOPE)
700
769
  else()
701
770
  set(${ABSL_INTERNAL_TEST_DLL_OUTPUT} 0 PARENT_SCOPE)
@@ -747,7 +816,12 @@ function(absl_make_dll)
747
816
  else()
748
817
  set(_dll "abseil_dll")
749
818
  set(_dll_files ${ABSL_INTERNAL_DLL_FILES})
750
- set(_dll_libs "")
819
+ set(_dll_libs
820
+ Threads::Threads
821
+ # TODO(#1495): Use $<LINK_LIBRARY:FRAMEWORK,CoreFoundation> once our
822
+ # minimum CMake version >= 3.24
823
+ $<$<PLATFORM_ID:Darwin>:-Wl,-framework,CoreFoundation>
824
+ )
751
825
  set(_dll_compile_definitions "")
752
826
  set(_dll_includes "")
753
827
  set(_dll_consume "ABSL_CONSUME_DLL")
@@ -764,8 +838,12 @@ function(absl_make_dll)
764
838
  PRIVATE
765
839
  ${_dll_libs}
766
840
  ${ABSL_DEFAULT_LINKOPTS}
841
+ $<$<BOOL:${ANDROID}>:-llog>
842
+ )
843
+ set_target_properties(${_dll} PROPERTIES
844
+ LINKER_LANGUAGE "CXX"
845
+ SOVERSION ${ABSL_SOVERSION}
767
846
  )
768
- set_property(TARGET ${_dll} PROPERTY LINKER_LANGUAGE "CXX")
769
847
  target_include_directories(
770
848
  ${_dll}
771
849
  PUBLIC
@@ -187,7 +187,15 @@ function(absl_cc_library)
187
187
  endif()
188
188
  endforeach()
189
189
  foreach(cflag ${ABSL_CC_LIB_COPTS})
190
- if(${cflag} MATCHES "^(-Wno|/wd)")
190
+ # Strip out the CMake-specific `SHELL:` prefix, which is used to construct
191
+ # a group of space-separated options.
192
+ # https://cmake.org/cmake/help/v3.30/command/target_compile_options.html#option-de-duplication
193
+ string(REGEX REPLACE "^SHELL:" "" cflag "${cflag}")
194
+ if(${cflag} MATCHES "^-Xarch_")
195
+ # An -Xarch_ flag implies that its successor only applies to the
196
+ # specified platform. Such option groups are each specified in a single
197
+ # `SHELL:`-prefixed string in the COPTS list, which we simply ignore.
198
+ elseif(${cflag} MATCHES "^(-Wno-|/wd)")
191
199
  # These flags are needed to suppress warnings that might fire in our headers.
192
200
  set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
193
201
  elseif(${cflag} MATCHES "^(-W|/w[1234eo])")
@@ -250,6 +258,13 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
250
258
  elseif(_build_type STREQUAL "static" OR _build_type STREQUAL "shared")
251
259
  add_library(${_NAME} "")
252
260
  target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
261
+ if(APPLE)
262
+ set_target_properties(${_NAME} PROPERTIES
263
+ INSTALL_RPATH "@loader_path")
264
+ elseif(UNIX)
265
+ set_target_properties(${_NAME} PROPERTIES
266
+ INSTALL_RPATH "$ORIGIN")
267
+ endif()
253
268
  target_link_libraries(${_NAME}
254
269
  PUBLIC ${ABSL_CC_LIB_DEPS}
255
270
  PRIVATE
@@ -298,7 +313,7 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
298
313
  if(ABSL_ENABLE_INSTALL)
299
314
  set_target_properties(${_NAME} PROPERTIES
300
315
  OUTPUT_NAME "absl_${_NAME}"
301
- SOVERSION "2401.0.0"
316
+ SOVERSION "${ABSL_SOVERSION}"
302
317
  )
303
318
  endif()
304
319
  else()
@@ -1,4 +1,4 @@
1
- cmake_minimum_required(VERSION 3.10)
1
+ cmake_minimum_required(VERSION 3.16)
2
2
 
3
3
  project(googletest-external NONE)
4
4
 
@@ -39,7 +39,7 @@ section of your executable or of your library.<br>
39
39
  Here is a short CMakeLists.txt example of an application project using Abseil.
40
40
 
41
41
  ```cmake
42
- cmake_minimum_required(VERSION 3.10)
42
+ cmake_minimum_required(VERSION 3.16)
43
43
  project(my_app_project)
44
44
 
45
45
  # Pick the C++ standard to compile with.
@@ -62,7 +62,7 @@ will control Abseil library targets) is set to at least that minimum. For
62
62
  example:
63
63
 
64
64
  ```cmake
65
- cmake_minimum_required(VERSION 3.10)
65
+ cmake_minimum_required(VERSION 3.16)
66
66
  project(my_lib_project)
67
67
 
68
68
  # Leave C++ standard up to the root application, so set it only if this is the
@@ -15,7 +15,7 @@
15
15
 
16
16
  # A simple CMakeLists.txt for testing cmake installation
17
17
 
18
- cmake_minimum_required(VERSION 3.10)
18
+ cmake_minimum_required(VERSION 3.16)
19
19
  project(absl_cmake_testing CXX)
20
20
 
21
21
  add_executable(simple simple.cc)
@@ -22,7 +22,8 @@ set -euox pipefail
22
22
  absl_dir=/abseil-cpp
23
23
  absl_build_dir=/buildfs
24
24
  googletest_builddir=/googletest_builddir
25
- project_dir="${absl_dir}"/CMake/install_test_project
25
+ googletest_archive="googletest-${ABSL_GOOGLETEST_VERSION}.tar.gz"
26
+ project_dir="${absl_dir}/CMake/install_test_project"
26
27
  project_build_dir=/buildfs/project-build
27
28
 
28
29
  build_shared_libs="OFF"
@@ -33,9 +34,9 @@ fi
33
34
  # Build and install GoogleTest
34
35
  mkdir "${googletest_builddir}"
35
36
  pushd "${googletest_builddir}"
36
- curl -L "${ABSL_GOOGLETEST_DOWNLOAD_URL}" --output "${ABSL_GOOGLETEST_COMMIT}".zip
37
- unzip "${ABSL_GOOGLETEST_COMMIT}".zip
38
- pushd "googletest-${ABSL_GOOGLETEST_COMMIT}"
37
+ curl -L "${ABSL_GOOGLETEST_DOWNLOAD_URL}" --output "${googletest_archive}"
38
+ tar -xz -f "${googletest_archive}"
39
+ pushd "googletest-${ABSL_GOOGLETEST_VERSION}"
39
40
  mkdir build
40
41
  pushd build
41
42
  cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="${build_shared_libs}" ..