couchbase 3.0.0.beta.1 → 3.1.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 (1007) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -6
  3. data/ext/CMakeLists.txt +96 -136
  4. data/ext/build_config.hxx.in +3 -1
  5. data/ext/build_version.hxx.in +11 -7
  6. data/ext/cmake/Backtrace.cmake +35 -0
  7. data/ext/cmake/BuildTracing.cmake +6 -0
  8. data/ext/cmake/Cache.cmake +29 -0
  9. data/ext/cmake/CompilerWarnings.cmake +84 -0
  10. data/ext/cmake/PreventInSourceBuilds.cmake +21 -0
  11. data/ext/cmake/Sanitizers.cmake +66 -0
  12. data/ext/cmake/StandardProjectSettings.cmake +40 -0
  13. data/ext/cmake/StaticAnalyzers.cmake +37 -0
  14. data/ext/cmake/Testing.cmake +49 -0
  15. data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
  16. data/ext/cmake/VersionInfo.cmake +37 -0
  17. data/ext/couchbase/bucket.hxx +252 -41
  18. data/ext/couchbase/capabilities.hxx +117 -0
  19. data/ext/couchbase/cbcrypto/cbcrypto.cc +15 -15
  20. data/ext/couchbase/cbsasl/client.h +1 -1
  21. data/ext/couchbase/cluster.hxx +150 -11
  22. data/ext/couchbase/cluster_options.hxx +4 -1
  23. data/ext/couchbase/collections_manifest.hxx +1 -1
  24. data/ext/couchbase/configuration.hxx +245 -67
  25. data/ext/couchbase/couchbase.cxx +3567 -1223
  26. data/ext/couchbase/diagnostics.hxx +248 -0
  27. data/ext/couchbase/document_id.hxx +4 -2
  28. data/ext/couchbase/error_context/analytics.hxx +46 -0
  29. data/ext/couchbase/error_context/http.hxx +44 -0
  30. data/ext/couchbase/error_context/key_value.hxx +47 -0
  31. data/ext/couchbase/error_context/query.hxx +46 -0
  32. data/ext/couchbase/error_context/search.hxx +47 -0
  33. data/ext/couchbase/error_context/view.hxx +47 -0
  34. data/ext/couchbase/error_map.hxx +203 -3
  35. data/ext/couchbase/errors.hxx +19 -4
  36. data/ext/couchbase/io/dns_client.hxx +9 -9
  37. data/ext/couchbase/io/dns_codec.hxx +2 -3
  38. data/ext/couchbase/io/dns_config.hxx +1 -1
  39. data/ext/couchbase/io/dns_message.hxx +1 -1
  40. data/ext/couchbase/io/http_command.hxx +29 -9
  41. data/ext/couchbase/io/http_context.hxx +37 -0
  42. data/ext/couchbase/io/http_message.hxx +10 -1
  43. data/ext/couchbase/io/http_parser.hxx +3 -1
  44. data/ext/couchbase/io/http_session.hxx +131 -47
  45. data/ext/couchbase/io/http_session_manager.hxx +149 -7
  46. data/ext/couchbase/io/mcbp_command.hxx +121 -52
  47. data/ext/couchbase/io/mcbp_context.hxx +37 -0
  48. data/ext/couchbase/io/mcbp_message.hxx +1 -1
  49. data/ext/couchbase/io/mcbp_parser.hxx +1 -1
  50. data/ext/couchbase/io/mcbp_session.hxx +411 -101
  51. data/ext/couchbase/io/query_cache.hxx +61 -0
  52. data/ext/couchbase/io/retry_action.hxx +30 -0
  53. data/ext/couchbase/io/retry_context.hxx +38 -0
  54. data/ext/couchbase/io/retry_orchestrator.hxx +112 -0
  55. data/ext/couchbase/io/retry_reason.hxx +235 -0
  56. data/ext/couchbase/io/retry_strategy.hxx +156 -0
  57. data/ext/couchbase/io/streams.hxx +62 -11
  58. data/ext/couchbase/mutation_token.hxx +1 -1
  59. data/ext/couchbase/operations.hxx +19 -1
  60. data/ext/couchbase/operations/analytics_dataset_create.hxx +21 -13
  61. data/ext/couchbase/operations/analytics_dataset_drop.hxx +19 -10
  62. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +18 -11
  63. data/ext/couchbase/operations/analytics_dataverse_create.hxx +20 -12
  64. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +19 -12
  65. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +19 -11
  66. data/ext/couchbase/operations/analytics_index_create.hxx +19 -12
  67. data/ext/couchbase/operations/analytics_index_drop.hxx +18 -11
  68. data/ext/couchbase/operations/analytics_index_get_all.hxx +16 -9
  69. data/ext/couchbase/operations/analytics_link_connect.hxx +17 -10
  70. data/ext/couchbase/operations/analytics_link_disconnect.hxx +19 -12
  71. data/ext/couchbase/operations/bucket_create.hxx +45 -15
  72. data/ext/couchbase/operations/bucket_drop.hxx +12 -10
  73. data/ext/couchbase/operations/bucket_flush.hxx +11 -10
  74. data/ext/couchbase/operations/bucket_get.hxx +17 -11
  75. data/ext/couchbase/operations/bucket_get_all.hxx +16 -8
  76. data/ext/couchbase/operations/bucket_settings.hxx +59 -4
  77. data/ext/couchbase/operations/bucket_update.hxx +44 -15
  78. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +9 -8
  79. data/ext/couchbase/operations/collection_create.hxx +23 -14
  80. data/ext/couchbase/operations/collection_drop.hxx +21 -14
  81. data/ext/couchbase/operations/collections_manifest_get.hxx +66 -0
  82. data/ext/couchbase/operations/design_document.hxx +1 -1
  83. data/ext/couchbase/operations/document_analytics.hxx +46 -18
  84. data/ext/couchbase/operations/document_append.hxx +72 -0
  85. data/ext/couchbase/operations/document_decrement.hxx +10 -12
  86. data/ext/couchbase/operations/document_exists.hxx +9 -8
  87. data/ext/couchbase/operations/document_get.hxx +10 -11
  88. data/ext/couchbase/operations/document_get_and_lock.hxx +9 -11
  89. data/ext/couchbase/operations/document_get_and_touch.hxx +9 -11
  90. data/ext/couchbase/operations/document_get_projected.hxx +26 -16
  91. data/ext/couchbase/operations/document_increment.hxx +10 -12
  92. data/ext/couchbase/operations/document_insert.hxx +10 -12
  93. data/ext/couchbase/operations/document_lookup_in.hxx +13 -10
  94. data/ext/couchbase/operations/document_mutate_in.hxx +22 -13
  95. data/ext/couchbase/operations/document_prepend.hxx +72 -0
  96. data/ext/couchbase/operations/document_query.hxx +132 -27
  97. data/ext/couchbase/operations/document_remove.hxx +12 -12
  98. data/ext/couchbase/operations/document_replace.hxx +10 -12
  99. data/ext/couchbase/operations/document_search.hxx +53 -16
  100. data/ext/couchbase/operations/document_touch.hxx +9 -11
  101. data/ext/couchbase/operations/document_unlock.hxx +9 -11
  102. data/ext/couchbase/operations/document_upsert.hxx +10 -12
  103. data/ext/couchbase/operations/document_view.hxx +31 -14
  104. data/ext/couchbase/operations/group_drop.hxx +72 -0
  105. data/ext/couchbase/operations/group_get.hxx +80 -0
  106. data/ext/couchbase/operations/group_get_all.hxx +77 -0
  107. data/ext/couchbase/operations/group_upsert.hxx +125 -0
  108. data/ext/couchbase/operations/http_noop.hxx +78 -0
  109. data/ext/couchbase/operations/mcbp_noop.hxx +55 -0
  110. data/ext/couchbase/operations/query_index_build_deferred.hxx +18 -11
  111. data/ext/couchbase/operations/query_index_create.hxx +32 -15
  112. data/ext/couchbase/operations/query_index_drop.hxx +30 -13
  113. data/ext/couchbase/operations/query_index_get_all.hxx +26 -9
  114. data/ext/couchbase/operations/rbac.hxx +276 -0
  115. data/ext/couchbase/operations/role_get_all.hxx +77 -0
  116. data/ext/couchbase/operations/scope_create.hxx +24 -13
  117. data/ext/couchbase/operations/scope_drop.hxx +20 -13
  118. data/ext/couchbase/operations/scope_get_all.hxx +18 -12
  119. data/ext/couchbase/operations/search_get_stats.hxx +60 -0
  120. data/ext/couchbase/operations/search_index.hxx +1 -1
  121. data/ext/couchbase/operations/search_index_analyze_document.hxx +28 -15
  122. data/ext/couchbase/operations/search_index_control_ingest.hxx +26 -13
  123. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +26 -13
  124. data/ext/couchbase/operations/search_index_control_query.hxx +26 -13
  125. data/ext/couchbase/operations/search_index_drop.hxx +24 -11
  126. data/ext/couchbase/operations/search_index_get.hxx +24 -11
  127. data/ext/couchbase/operations/search_index_get_all.hxx +15 -8
  128. data/ext/couchbase/operations/search_index_get_documents_count.hxx +45 -25
  129. data/ext/couchbase/operations/search_index_get_stats.hxx +88 -0
  130. data/ext/couchbase/operations/search_index_upsert.hxx +25 -12
  131. data/ext/couchbase/operations/user_drop.hxx +73 -0
  132. data/ext/couchbase/operations/user_get.hxx +81 -0
  133. data/ext/couchbase/operations/user_get_all.hxx +78 -0
  134. data/ext/couchbase/operations/user_upsert.hxx +132 -0
  135. data/ext/couchbase/operations/view_index_drop.hxx +10 -9
  136. data/ext/couchbase/operations/view_index_get.hxx +17 -10
  137. data/ext/couchbase/operations/view_index_get_all.hxx +17 -10
  138. data/ext/couchbase/operations/view_index_upsert.hxx +11 -10
  139. data/ext/couchbase/origin.hxx +49 -18
  140. data/ext/couchbase/platform/backtrace.c +189 -0
  141. data/ext/couchbase/platform/backtrace.h +54 -0
  142. data/ext/couchbase/platform/terminate_handler.cc +130 -0
  143. data/ext/couchbase/platform/terminate_handler.h +36 -0
  144. data/ext/couchbase/protocol/client_opcode.hxx +407 -39
  145. data/ext/couchbase/protocol/client_request.hxx +3 -2
  146. data/ext/couchbase/protocol/client_response.hxx +21 -18
  147. data/ext/couchbase/protocol/cmd_append.hxx +145 -0
  148. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +7 -4
  149. data/ext/couchbase/protocol/cmd_decrement.hxx +1 -1
  150. data/ext/couchbase/protocol/cmd_exists.hxx +2 -1
  151. data/ext/couchbase/protocol/cmd_get.hxx +2 -2
  152. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +1 -1
  153. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +1 -1
  154. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +9 -2
  155. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +7 -7
  156. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +1 -1
  157. data/ext/couchbase/protocol/cmd_get_error_map.hxx +1 -1
  158. data/ext/couchbase/protocol/cmd_hello.hxx +12 -3
  159. data/ext/couchbase/protocol/cmd_increment.hxx +1 -1
  160. data/ext/couchbase/protocol/cmd_info.hxx +1 -1
  161. data/ext/couchbase/protocol/cmd_insert.hxx +1 -1
  162. data/ext/couchbase/protocol/cmd_lookup_in.hxx +12 -4
  163. data/ext/couchbase/protocol/cmd_mutate_in.hxx +50 -9
  164. data/ext/couchbase/protocol/cmd_noop.hxx +82 -0
  165. data/ext/couchbase/protocol/cmd_prepend.hxx +145 -0
  166. data/ext/couchbase/protocol/cmd_remove.hxx +1 -1
  167. data/ext/couchbase/protocol/cmd_replace.hxx +1 -1
  168. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +1 -1
  169. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +1 -1
  170. data/ext/couchbase/protocol/cmd_sasl_step.hxx +1 -1
  171. data/ext/couchbase/protocol/cmd_select_bucket.hxx +1 -1
  172. data/ext/couchbase/protocol/cmd_touch.hxx +1 -1
  173. data/ext/couchbase/protocol/cmd_unlock.hxx +1 -1
  174. data/ext/couchbase/protocol/cmd_upsert.hxx +1 -1
  175. data/ext/couchbase/protocol/datatype.hxx +1 -1
  176. data/ext/couchbase/protocol/durability_level.hxx +17 -1
  177. data/ext/couchbase/protocol/enhanced_error_info.hxx +28 -0
  178. data/ext/couchbase/protocol/frame_info_id.hxx +1 -1
  179. data/ext/couchbase/protocol/hello_feature.hxx +10 -1
  180. data/ext/couchbase/protocol/magic.hxx +7 -7
  181. data/ext/couchbase/protocol/server_opcode.hxx +3 -3
  182. data/ext/couchbase/protocol/server_request.hxx +1 -1
  183. data/ext/couchbase/protocol/status.hxx +71 -61
  184. data/ext/couchbase/protocol/unsigned_leb128.h +2 -2
  185. data/ext/couchbase/service_type.hxx +3 -3
  186. data/ext/couchbase/timeout_defaults.hxx +1 -1
  187. data/ext/couchbase/utils/byteswap.hxx +1 -1
  188. data/ext/couchbase/utils/connection_string.hxx +32 -5
  189. data/ext/couchbase/version.hxx +19 -5
  190. data/ext/extconf.rb +61 -43
  191. data/ext/test/CMakeLists.txt +5 -0
  192. data/ext/test/test_helper.hxx +141 -0
  193. data/ext/test/test_helper_native.hxx +56 -0
  194. data/ext/test/test_helper_ruby.hxx +72 -0
  195. data/ext/test/test_native_binary_operations.cxx +186 -0
  196. data/ext/test/test_native_diagnostics.cxx +436 -0
  197. data/ext/test/test_native_trivial_crud.cxx +83 -0
  198. data/ext/test/test_ruby_trivial_crud.cxx +35 -0
  199. data/ext/test/test_ruby_trivial_query.cxx +34 -0
  200. data/ext/third_party/asio/asio/include/asio.hpp +35 -0
  201. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
  202. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +1 -7
  203. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +36 -19
  204. data/ext/third_party/asio/asio/include/asio/async_result.hpp +1 -8
  205. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +14 -4
  206. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +12 -7
  207. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +4 -4
  208. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +11 -7
  209. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +9 -4
  210. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +6 -6
  211. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +4 -4
  212. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +5 -5
  213. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +13 -7
  214. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +7 -3
  215. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +52 -4
  216. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +10 -15
  217. data/ext/third_party/asio/asio/include/asio/buffer.hpp +6 -4
  218. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +380 -9
  219. data/ext/third_party/asio/asio/include/asio/defer.hpp +4 -1
  220. data/ext/third_party/asio/asio/include/asio/detached.hpp +50 -0
  221. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +19 -0
  222. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +144 -26
  223. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  224. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +106 -0
  225. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  226. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +10 -5
  227. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +8 -0
  228. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +360 -37
  229. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +17 -2
  230. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +24 -6
  231. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +32 -14
  232. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +32 -14
  233. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +133 -34
  234. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +42 -0
  235. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +23 -0
  236. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +26 -0
  237. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +370 -45
  238. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +208 -74
  239. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +39 -1
  240. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +12 -15
  241. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +37 -0
  242. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +2 -1
  243. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +661 -274
  244. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +210 -4
  245. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +8 -9
  246. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +5 -4
  247. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +15 -6
  248. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +32 -50
  249. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +3 -0
  250. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +6 -0
  251. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +1 -1
  252. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +13 -0
  253. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +1 -1
  254. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +38 -13
  255. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +12 -6
  256. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +2 -3
  257. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +36 -24
  258. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +17 -10
  259. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +38 -16
  260. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +36 -14
  261. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +21 -11
  262. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +43 -17
  263. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +39 -17
  264. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +44 -21
  265. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +41 -18
  266. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +12 -6
  267. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +3 -1
  268. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +10 -8
  269. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +11 -9
  270. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +8 -0
  271. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +7 -5
  272. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +46 -0
  273. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  274. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +12 -0
  275. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +25 -1
  276. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +4 -1
  277. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +58 -0
  278. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +59 -0
  279. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +144 -1
  280. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +9 -6
  281. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +13 -0
  282. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +9 -5
  283. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +9 -5
  284. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +5 -1
  285. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +10 -6
  286. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +9 -5
  287. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +18 -6
  288. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +15 -11
  289. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +10 -5
  290. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +8 -4
  291. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +8 -4
  292. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +8 -4
  293. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +8 -4
  294. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +10 -5
  295. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +8 -4
  296. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +8 -4
  297. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +8 -4
  298. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +8 -4
  299. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +81 -6
  300. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +45 -9
  301. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +4 -1
  302. data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
  303. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
  304. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
  305. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  306. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
  307. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
  308. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
  309. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
  310. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
  311. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
  312. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
  313. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  314. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  315. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  316. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  317. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  318. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  319. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
  320. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
  321. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  322. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  323. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  324. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
  325. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
  326. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  327. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
  328. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
  329. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  330. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  331. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
  332. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
  333. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  334. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  335. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
  336. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
  337. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
  338. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
  339. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  340. data/ext/third_party/asio/asio/include/asio/executor.hpp +7 -1
  341. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +126 -9
  342. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +28 -5
  343. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +29 -3
  344. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +14 -0
  345. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +44 -8
  346. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +44 -8
  347. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +145 -7
  348. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +124 -22
  349. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +52 -8
  350. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +147 -12
  351. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +142 -12
  352. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +15 -101
  353. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +5 -0
  354. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +13 -4
  355. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +144 -57
  356. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  357. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +147 -12
  358. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +85 -18
  359. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +59 -14
  360. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +241 -56
  361. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +22 -4
  362. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +58 -22
  363. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +3 -0
  364. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +16 -4
  365. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +113 -12
  366. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +260 -37
  367. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +61 -7
  368. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +5 -2
  369. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +147 -6
  370. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +75 -14
  371. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -11
  372. data/ext/third_party/asio/asio/include/asio/io_context.hpp +706 -48
  373. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +3 -1
  374. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +4 -4
  375. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  376. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  377. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +4 -4
  378. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +5 -5
  379. data/ext/third_party/asio/asio/include/asio/post.hpp +4 -1
  380. data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
  381. data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
  382. data/ext/third_party/asio/asio/include/asio/read_until.hpp +6 -6
  383. data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
  384. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
  385. data/ext/third_party/asio/asio/include/asio/spawn.hpp +12 -4
  386. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +5 -0
  387. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +5 -0
  388. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +5 -0
  389. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +16 -3
  390. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +38 -4
  391. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +5 -0
  392. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +5 -0
  393. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +36 -2
  394. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +10 -1
  395. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +15 -0
  396. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  397. data/ext/third_party/asio/asio/include/asio/strand.hpp +232 -9
  398. data/ext/third_party/asio/asio/include/asio/system_context.hpp +12 -3
  399. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +557 -24
  400. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +913 -37
  401. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  402. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  403. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  404. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  405. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
  406. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  407. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  408. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  409. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  410. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  411. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  412. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  413. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  414. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  415. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  416. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  417. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  418. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  419. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  420. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  421. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  422. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  423. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  424. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  425. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  426. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  427. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  428. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  429. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
  430. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  431. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  432. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +1 -0
  433. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +67 -8
  434. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +63 -4
  435. data/ext/third_party/asio/asio/include/asio/version.hpp +1 -1
  436. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +4 -4
  437. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +2 -2
  438. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +5 -5
  439. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +5 -5
  440. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +4 -2
  441. data/ext/third_party/gsl/CMakeLists.txt +13 -5
  442. data/ext/third_party/gsl/include/gsl/gsl_assert +1 -1
  443. data/ext/third_party/gsl/include/gsl/gsl_byte +3 -3
  444. data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
  445. data/ext/third_party/gsl/include/gsl/gsl_util +8 -50
  446. data/ext/third_party/gsl/include/gsl/multi_span +0 -10
  447. data/ext/third_party/gsl/include/gsl/pointers +14 -28
  448. data/ext/third_party/gsl/include/gsl/span +98 -46
  449. data/ext/third_party/gsl/include/gsl/string_span +37 -47
  450. data/ext/third_party/http_parser/http_parser.c +17 -10
  451. data/ext/third_party/http_parser/http_parser.h +4 -2
  452. data/ext/third_party/json/include/tao/json/basic_value.hpp +3 -2
  453. data/ext/third_party/json/include/tao/json/binary.hpp +4 -4
  454. data/ext/third_party/json/include/tao/json/binary_view.hpp +2 -2
  455. data/ext/third_party/json/include/tao/json/binding.hpp +2 -2
  456. data/ext/third_party/json/include/tao/json/binding/factory.hpp +8 -7
  457. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +2 -1
  458. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +6 -5
  459. data/ext/third_party/json/include/tao/json/binding/versions.hpp +3 -1
  460. data/ext/third_party/json/include/tao/json/cbor.hpp +1 -0
  461. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +7 -7
  462. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
  463. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +4 -4
  464. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +3 -3
  465. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  466. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +5 -5
  467. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +2 -1
  468. data/ext/third_party/json/include/tao/json/consume_file.hpp +7 -7
  469. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +13 -6
  470. data/ext/third_party/json/include/tao/json/contrib/position.hpp +15 -15
  471. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +5 -7
  472. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +58 -35
  473. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +12 -4
  474. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +12 -4
  475. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +1 -1
  476. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +2 -2
  477. data/ext/third_party/json/include/tao/json/events/compare.hpp +2 -12
  478. data/ext/third_party/json/include/tao/json/events/from_file.hpp +4 -4
  479. data/ext/third_party/json/include/tao/json/events/from_string.hpp +2 -2
  480. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +1 -1
  481. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +3 -3
  482. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +1 -1
  483. data/ext/third_party/json/include/tao/json/events/tee.hpp +2 -2
  484. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +1 -1
  485. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +1 -1
  486. data/ext/third_party/json/include/tao/json/events/transformer.hpp +3 -3
  487. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +3 -3
  488. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +6 -0
  489. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +4 -13
  490. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +3 -5
  491. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +5 -18
  492. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +3 -3
  493. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +2 -2
  494. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +6 -6
  495. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +5 -5
  496. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +2 -2
  497. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +6 -6
  498. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +5 -5
  499. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +52 -52
  500. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
  501. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
  502. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
  503. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
  504. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
  505. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +37 -18
  506. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +20 -22
  507. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +6 -10
  508. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +6 -10
  509. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +2 -4
  510. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +11 -10
  511. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +116 -131
  512. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian.hpp +4 -4
  513. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_gcc.hpp +2 -2
  514. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_win.hpp +2 -2
  515. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint.hpp +9 -9
  516. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint8.hpp +9 -10
  517. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint.hpp +9 -9
  518. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint8.hpp +9 -10
  519. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf16.hpp +10 -10
  520. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf32.hpp +9 -9
  521. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/read_uint.hpp +3 -3
  522. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  523. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +80 -201
  524. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +11 -10
  525. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
  526. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
  527. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +45 -36
  528. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +33 -50
  529. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
  530. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +43 -11
  531. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +1 -2
  532. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
  533. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
  534. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
  535. data/ext/third_party/json/include/tao/json/external/pegtl/{uint16.hpp → contrib/uint16.hpp} +5 -5
  536. data/ext/third_party/json/include/tao/json/external/pegtl/{uint32.hpp → contrib/uint32.hpp} +5 -5
  537. data/ext/third_party/json/include/tao/json/external/pegtl/{uint64.hpp → contrib/uint64.hpp} +5 -5
  538. data/ext/third_party/json/include/tao/json/external/pegtl/{uint8.hpp → contrib/uint8.hpp} +5 -5
  539. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +14 -14
  540. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +1 -1
  541. data/ext/third_party/json/include/tao/json/external/pegtl/{utf16.hpp → contrib/utf16.hpp} +5 -5
  542. data/ext/third_party/json/include/tao/json/external/pegtl/{utf32.hpp → contrib/utf32.hpp} +5 -5
  543. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +2 -3
  544. data/ext/third_party/json/include/tao/json/external/pegtl/{internal/demangle.hpp → demangle.hpp} +12 -14
  545. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +2 -2
  546. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +2 -2
  547. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +2 -2
  548. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +2 -2
  549. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +2 -2
  550. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +1 -1
  551. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +19 -9
  552. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +7 -8
  553. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +14 -14
  554. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +9 -9
  555. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +8 -7
  556. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +4 -4
  557. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +17 -15
  558. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +7 -6
  559. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +8 -8
  560. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +4 -4
  561. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +3 -3
  562. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +17 -10
  563. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +19 -9
  564. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +2 -2
  565. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +2 -2
  566. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +2 -2
  567. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +1 -1
  568. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{always_false.hpp → dependent_false.hpp} +3 -8
  569. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +19 -9
  570. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +7 -6
  571. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +19 -9
  572. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{skip_control.hpp → enable_control.hpp} +5 -5
  573. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +7 -6
  574. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +8 -7
  575. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +8 -7
  576. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
  577. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +61 -10
  578. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +27 -33
  579. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +27 -28
  580. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +3 -7
  581. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +3 -7
  582. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +4 -20
  583. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
  584. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +8 -7
  585. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +8 -9
  586. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +2 -0
  587. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +7 -7
  588. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +1 -2
  589. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +11 -11
  590. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +7 -10
  591. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +2 -2
  592. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +2 -2
  593. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +4 -2
  594. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +1 -1
  595. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +3 -5
  596. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
  597. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +5 -2
  598. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +5 -2
  599. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +16 -24
  600. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +17 -15
  601. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +23 -12
  602. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +16 -16
  603. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
  604. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +5 -5
  605. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +12 -13
  606. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +18 -11
  607. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +8 -17
  608. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +22 -17
  609. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +28 -18
  610. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +12 -9
  611. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +26 -25
  612. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +23 -21
  613. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +24 -9
  614. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +10 -10
  615. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +4 -4
  616. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +18 -33
  617. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +24 -17
  618. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +13 -8
  619. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +21 -11
  620. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +11 -11
  621. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
  622. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +16 -16
  623. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +18 -14
  624. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +2 -3
  625. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +125 -29
  626. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +32 -48
  627. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +16 -16
  628. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
  629. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +25 -25
  630. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +1 -2
  631. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +6 -8
  632. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +80 -35
  633. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +18 -10
  634. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +18 -38
  635. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +6 -5
  636. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +3 -5
  637. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
  638. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
  639. data/ext/third_party/json/include/tao/json/from_file.hpp +5 -5
  640. data/ext/third_party/json/include/tao/json/internal/action.hpp +3 -3
  641. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  642. data/ext/third_party/json/include/tao/json/internal/errors.hpp +17 -17
  643. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -2
  644. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +17 -17
  645. data/ext/third_party/json/include/tao/json/internal/pair.hpp +1 -1
  646. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +8 -8
  647. data/ext/third_party/json/include/tao/json/internal/single.hpp +1 -1
  648. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +12 -29
  649. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +7 -7
  650. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +4 -4
  651. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +2 -2
  652. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +5 -5
  653. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +6 -6
  654. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +2 -2
  655. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +43 -43
  656. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +36 -36
  657. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +10 -11
  658. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +2 -2
  659. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +1 -3
  660. data/ext/third_party/json/include/tao/json/message_extension.hpp +2 -2
  661. data/ext/third_party/json/include/tao/json/msgpack.hpp +1 -0
  662. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +7 -7
  663. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
  664. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +4 -4
  665. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +4 -4
  666. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +4 -4
  667. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  668. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +5 -5
  669. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +2 -1
  670. data/ext/third_party/json/include/tao/json/operators.hpp +0 -4
  671. data/ext/third_party/json/include/tao/json/parts_parser.hpp +3 -7
  672. data/ext/third_party/json/include/tao/json/self_contained.hpp +6 -18
  673. data/ext/third_party/json/include/tao/json/span.hpp +94 -166
  674. data/ext/third_party/json/include/tao/json/ubjson.hpp +1 -0
  675. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +7 -7
  676. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
  677. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +4 -4
  678. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +3 -3
  679. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  680. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +5 -5
  681. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +5 -3
  682. data/ext/third_party/json/include/tao/json/utf8.hpp +1 -1
  683. data/ext/third_party/snappy/snappy.cc +6 -2
  684. data/ext/third_party/spdlog/CMakeLists.txt +24 -57
  685. data/ext/third_party/spdlog/cmake/version.rc.in +1 -1
  686. data/ext/third_party/spdlog/include/spdlog/async.h +3 -3
  687. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +3 -4
  688. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +6 -4
  689. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +22 -6
  690. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +3 -2
  691. data/ext/third_party/spdlog/include/spdlog/common.h +1 -2
  692. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +9 -1
  693. data/ext/third_party/spdlog/include/spdlog/details/os.h +1 -1
  694. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +21 -7
  695. data/ext/third_party/spdlog/include/spdlog/details/registry.h +6 -3
  696. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +1 -1
  697. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +1 -1
  698. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +8 -7
  699. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +2 -2
  700. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +66 -62
  701. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +35 -37
  702. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +173 -103
  703. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +538 -445
  704. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +114 -64
  705. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +1152 -1071
  706. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +16 -16
  707. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
  708. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +37 -13
  709. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +1 -1
  710. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +93 -63
  711. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +35 -36
  712. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  713. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +2 -0
  714. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +5 -1
  715. data/ext/third_party/spdlog/include/spdlog/logger.h +50 -76
  716. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +23 -8
  717. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +3 -3
  718. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +1 -1
  719. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +5 -5
  720. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +6 -4
  721. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +32 -3
  722. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +7 -0
  723. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +4 -14
  724. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +11 -1
  725. data/ext/third_party/spdlog/include/spdlog/spdlog.h +23 -68
  726. data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
  727. data/ext/third_party/spdlog/include/spdlog/version.h +2 -2
  728. data/ext/third_party/spdlog/src/fmt.cpp +21 -147
  729. data/lib/active_support/cache/couchbase_store.rb +362 -0
  730. data/lib/couchbase.rb +3 -1
  731. data/lib/couchbase/analytics_options.rb +2 -74
  732. data/lib/couchbase/authenticator.rb +41 -1
  733. data/lib/couchbase/binary_collection.rb +63 -24
  734. data/lib/couchbase/binary_collection_options.rb +1 -75
  735. data/lib/couchbase/bucket.rb +43 -38
  736. data/lib/couchbase/cluster.rb +225 -127
  737. data/lib/couchbase/collection.rb +323 -92
  738. data/lib/couchbase/collection_options.rb +73 -239
  739. data/lib/couchbase/configuration.rb +57 -0
  740. data/lib/couchbase/datastructures.rb +7 -1
  741. data/lib/couchbase/datastructures/couchbase_list.rb +22 -33
  742. data/lib/couchbase/datastructures/couchbase_map.rb +24 -35
  743. data/lib/couchbase/datastructures/couchbase_queue.rb +19 -30
  744. data/lib/couchbase/datastructures/couchbase_set.rb +14 -24
  745. data/lib/couchbase/diagnostics.rb +181 -0
  746. data/lib/couchbase/errors.rb +125 -7
  747. data/lib/couchbase/json_transcoder.rb +4 -4
  748. data/lib/couchbase/logger.rb +42 -0
  749. data/lib/couchbase/management.rb +27 -0
  750. data/lib/couchbase/management/analytics_index_manager.rb +38 -38
  751. data/lib/couchbase/management/bucket_manager.rb +71 -31
  752. data/lib/couchbase/management/collection_manager.rb +12 -5
  753. data/lib/couchbase/management/query_index_manager.rb +61 -16
  754. data/lib/couchbase/management/search_index_manager.rb +58 -14
  755. data/lib/couchbase/management/user_manager.rb +176 -50
  756. data/lib/couchbase/management/view_index_manager.rb +12 -6
  757. data/lib/couchbase/mutation_state.rb +13 -1
  758. data/lib/couchbase/options.rb +2113 -0
  759. data/lib/couchbase/query_options.rb +6 -128
  760. data/lib/couchbase/railtie.rb +45 -0
  761. data/lib/couchbase/scope.rb +88 -2
  762. data/lib/couchbase/search_options.rb +99 -111
  763. data/lib/couchbase/subdoc.rb +32 -29
  764. data/{Gemfile → lib/couchbase/utils.rb} +5 -17
  765. data/lib/couchbase/utils/time.rb +52 -0
  766. data/lib/couchbase/version.rb +22 -3
  767. data/lib/couchbase/view_options.rb +2 -93
  768. data/lib/{couchbase/common_options.rb → rails/generators/couchbase/config/config_generator.rb} +10 -12
  769. metadata +212 -269
  770. data/.yardopts +0 -1
  771. data/Rakefile +0 -51
  772. data/couchbase.gemspec +0 -78
  773. data/examples/analytics.rb +0 -221
  774. data/examples/crud.rb +0 -20
  775. data/examples/managing_analytics_indexes.rb +0 -72
  776. data/examples/managing_buckets.rb +0 -47
  777. data/examples/managing_collections.rb +0 -58
  778. data/examples/managing_query_indexes.rb +0 -63
  779. data/examples/managing_search_indexes.rb +0 -62
  780. data/examples/managing_view_indexes.rb +0 -54
  781. data/examples/query.rb +0 -18
  782. data/examples/query_with_consistency.rb +0 -76
  783. data/examples/search.rb +0 -187
  784. data/examples/search_with_consistency.rb +0 -84
  785. data/examples/subdocument.rb +0 -51
  786. data/examples/view.rb +0 -50
  787. data/ext/.clang-format +0 -15
  788. data/ext/.clang-tidy +0 -22
  789. data/ext/.cmake-format.yaml +0 -8
  790. data/ext/.gitignore +0 -2
  791. data/ext/.idea/.name +0 -1
  792. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  793. data/ext/.idea/ext.iml +0 -2
  794. data/ext/.idea/misc.xml +0 -16
  795. data/ext/.idea/modules.xml +0 -8
  796. data/ext/.idea/vcs.xml +0 -12
  797. data/ext/test/main.cxx +0 -136
  798. data/ext/third_party/asio/.appveyor.yml +0 -107
  799. data/ext/third_party/asio/.cirrus.yml +0 -16
  800. data/ext/third_party/asio/.gitignore +0 -3
  801. data/ext/third_party/asio/.travis.yml +0 -323
  802. data/ext/third_party/asio/asio/.gitignore +0 -23
  803. data/ext/third_party/asio/asio/COPYING +0 -4
  804. data/ext/third_party/asio/asio/INSTALL +0 -5
  805. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  806. data/ext/third_party/asio/asio/Makefile.am +0 -19
  807. data/ext/third_party/asio/asio/README +0 -4
  808. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  809. data/ext/third_party/asio/asio/autogen.sh +0 -55
  810. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  811. data/ext/third_party/asio/asio/boostify.pl +0 -603
  812. data/ext/third_party/asio/asio/configure.ac +0 -182
  813. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  814. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  815. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  816. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  817. data/ext/third_party/asio/asio/release.pl +0 -440
  818. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  819. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  820. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  821. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  822. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  823. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  824. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  825. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  826. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  827. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  828. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  829. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  830. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  831. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  832. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  833. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  834. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  835. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  836. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  837. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  838. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  839. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  840. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  841. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  842. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  845. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  846. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  847. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  848. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  849. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  850. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  851. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  852. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  853. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  854. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  855. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  856. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  857. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  858. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  859. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  860. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  861. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  862. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  863. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  864. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  865. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  866. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  867. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  868. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  869. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  870. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  871. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  872. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  873. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  874. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  875. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  876. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  877. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  878. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  879. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  880. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  881. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  882. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  883. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  884. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  886. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  887. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  888. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  889. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  890. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  891. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  892. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  893. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  894. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  895. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  896. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  897. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  898. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  899. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  900. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  901. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  902. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  903. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  904. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  905. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  906. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  907. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  908. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  909. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  910. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  911. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  912. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  913. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  914. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  915. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  916. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  917. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  918. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  919. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  920. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  921. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  922. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  924. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  925. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  926. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  927. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  928. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  929. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  930. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  931. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  932. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  933. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  934. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  935. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  936. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  937. data/ext/third_party/asio/asio/tsify.pl +0 -574
  938. data/ext/third_party/gsl/.clang-format +0 -34
  939. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  940. data/ext/third_party/gsl/.gitignore +0 -16
  941. data/ext/third_party/gsl/.travis.yml +0 -551
  942. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  943. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  944. data/ext/third_party/gsl/GSL.natvis +0 -98
  945. data/ext/third_party/gsl/README.md +0 -124
  946. data/ext/third_party/gsl/appveyor.yml +0 -128
  947. data/ext/third_party/http_parser/.gitignore +0 -30
  948. data/ext/third_party/http_parser/.mailmap +0 -8
  949. data/ext/third_party/http_parser/.travis.yml +0 -13
  950. data/ext/third_party/http_parser/AUTHORS +0 -68
  951. data/ext/third_party/http_parser/Makefile +0 -160
  952. data/ext/third_party/http_parser/README.md +0 -246
  953. data/ext/third_party/http_parser/bench.c +0 -128
  954. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  955. data/ext/third_party/http_parser/test.c +0 -4600
  956. data/ext/third_party/json/.appveyor.yml +0 -44
  957. data/ext/third_party/json/.clang-format +0 -84
  958. data/ext/third_party/json/.conan/build.py +0 -80
  959. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  960. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  961. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  962. data/ext/third_party/json/.gitignore +0 -3
  963. data/ext/third_party/json/.travis.yml +0 -173
  964. data/ext/third_party/json/Makefile +0 -77
  965. data/ext/third_party/json/README.md +0 -149
  966. data/ext/third_party/json/conanfile.py +0 -28
  967. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  968. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  969. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  970. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  971. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  972. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  973. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  974. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  975. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  976. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  977. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  978. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  979. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  980. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  981. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  982. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  983. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  984. data/ext/third_party/snappy/.appveyor.yml +0 -36
  985. data/ext/third_party/snappy/.gitignore +0 -8
  986. data/ext/third_party/snappy/.travis.yml +0 -98
  987. data/ext/third_party/snappy/AUTHORS +0 -1
  988. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  989. data/ext/third_party/snappy/NEWS +0 -188
  990. data/ext/third_party/snappy/README.md +0 -148
  991. data/ext/third_party/snappy/docs/README.md +0 -72
  992. data/ext/third_party/snappy/format_description.txt +0 -110
  993. data/ext/third_party/snappy/framing_format.txt +0 -135
  994. data/ext/third_party/snappy/snappy-test.cc +0 -613
  995. data/ext/third_party/snappy/snappy-test.h +0 -526
  996. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  997. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  998. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  999. data/ext/third_party/spdlog/.clang-format +0 -108
  1000. data/ext/third_party/spdlog/.clang-tidy +0 -54
  1001. data/ext/third_party/spdlog/.gitattributes +0 -1
  1002. data/ext/third_party/spdlog/.gitignore +0 -83
  1003. data/ext/third_party/spdlog/.travis.yml +0 -112
  1004. data/ext/third_party/spdlog/INSTALL +0 -24
  1005. data/ext/third_party/spdlog/README.md +0 -423
  1006. data/ext/third_party/spdlog/appveyor.yml +0 -51
  1007. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
@@ -1,4 +1,4 @@
1
- # Copyright 2020 Couchbase, Inc.
1
+ # Copyright 2020-2021 Couchbase, Inc.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ require "couchbase/errors"
17
17
  module Couchbase
18
18
  module Management
19
19
  class QueryIndexManager
20
- alias_method :inspect, :to_s
20
+ alias inspect to_s
21
21
 
22
22
  # @param [Couchbase::Backend] backend
23
23
  def initialize(backend)
@@ -40,6 +40,9 @@ module Couchbase
40
40
  index.is_primary = idx[:is_primary]
41
41
  index.type = idx[:type]
42
42
  index.state = idx[:state]
43
+ index.bucket = idx[:bucket_id]
44
+ index.collection = idx[:collection_id]
45
+ index.scope = idx[:scope_id]
43
46
  index.key_space = idx[:keyspace_id]
44
47
  index.name_space = idx[:namespace_id]
45
48
  index.index_key = idx[:index_key]
@@ -61,10 +64,12 @@ module Couchbase
61
64
  # @raise [Error::IndexExists]
62
65
  def create_index(bucket_name, index_name, fields, options = CreateIndexOptions.new)
63
66
  @backend.query_index_create(bucket_name, index_name, fields, {
64
- ignore_if_exists: options.ignore_if_exists,
65
- condition: options.condition,
66
- deferred: options.deferred,
67
- num_replicas: options.num_replicas,
67
+ ignore_if_exists: options.ignore_if_exists,
68
+ condition: options.condition,
69
+ deferred: options.deferred,
70
+ num_replicas: options.num_replicas,
71
+ scope_name: options.scope_name,
72
+ collection_name: options.collection_name,
68
73
  }, options.timeout)
69
74
  end
70
75
 
@@ -79,9 +84,11 @@ module Couchbase
79
84
  # @raise [Error::IndexExists]
80
85
  def create_primary_index(bucket_name, options = CreatePrimaryIndexOptions.new)
81
86
  @backend.query_index_create_primary(bucket_name, {
82
- ignore_if_exists: options.ignore_if_exists,
83
- deferred: options.deferred,
84
- num_replicas: options.num_replicas,
87
+ ignore_if_exists: options.ignore_if_exists,
88
+ deferred: options.deferred,
89
+ num_replicas: options.num_replicas,
90
+ scope_name: options.scope_name,
91
+ collection_name: options.collection_name,
85
92
  }, options.timeout)
86
93
  end
87
94
 
@@ -97,7 +104,9 @@ module Couchbase
97
104
  # @raise [Error::IndexNotFound]
98
105
  def drop_index(bucket_name, index_name, options = DropIndexOptions.new)
99
106
  @backend.query_index_drop(bucket_name, index_name, {
100
- ignore_if_does_not_exist: options.ignore_if_does_not_exist,
107
+ ignore_if_does_not_exist: options.ignore_if_does_not_exist,
108
+ scope_name: options.scope_name,
109
+ collection_name: options.collection_name,
101
110
  }, options.timeout)
102
111
  true
103
112
  end
@@ -113,8 +122,10 @@ module Couchbase
113
122
  # @raise [Error::IndexNotFound]
114
123
  def drop_primary_index(bucket_name, options = DropPrimaryIndexOptions.new)
115
124
  @backend.query_index_drop_primary(bucket_name, {
116
- ignore_if_does_not_exist: options.ignore_if_does_not_exist,
117
- index_name: options.index_name,
125
+ ignore_if_does_not_exist: options.ignore_if_does_not_exist,
126
+ index_name: options.index_name,
127
+ scope_name: options.scope_name,
128
+ collection_name: options.collection_name,
118
129
  }, options.timeout)
119
130
  true
120
131
  end
@@ -135,13 +146,15 @@ module Couchbase
135
146
  #
136
147
  # @param [String] bucket_name name of the bucket
137
148
  # @param [Array<String>] index_names names of the indexes to watch
138
- # @param [Integer] timeout
149
+ # @param [Integer, #in_milliseconds] timeout
139
150
  # @param [WatchIndexesOptions] options
140
151
  #
141
152
  # @raise [ArgumentError]
142
153
  # @raise [Error::IndexNotFound]
143
154
  def watch_indexes(bucket_name, index_names, timeout, options = WatchIndexesOptions.new)
144
- @backend.query_index_watch(bucket_name, index_names, timeout, {})
155
+ @backend.query_index_watch(bucket_name, index_names, timeout, {
156
+ watch_primary: options.watch_primary,
157
+ })
145
158
  end
146
159
 
147
160
  class GetAllIndexOptions
@@ -170,6 +183,12 @@ module Couchbase
170
183
  # @return [String] condition to apply to the index
171
184
  attr_accessor :condition
172
185
 
186
+ # @return [String] the name of the scope
187
+ attr_accessor :scope_name
188
+
189
+ # @return [String] the name of the collection
190
+ attr_accessor :collection_name
191
+
173
192
  # @yieldparam [CreateIndexOptions] self
174
193
  def initialize
175
194
  @ignore_if_exists = false
@@ -193,6 +212,12 @@ module Couchbase
193
212
  # @return [Integer] the time in milliseconds allowed for the operation to complete
194
213
  attr_accessor :timeout
195
214
 
215
+ # @return [String] the name of the scope
216
+ attr_accessor :scope_name
217
+
218
+ # @return [String] the name of the collection
219
+ attr_accessor :collection_name
220
+
196
221
  # @yieldparam [CreatePrimaryIndexOptions] self
197
222
  def initialize
198
223
  @ignore_if_exists = false
@@ -207,6 +232,12 @@ module Couchbase
207
232
  # @return [Integer] the time in milliseconds allowed for the operation to complete
208
233
  attr_accessor :timeout
209
234
 
235
+ # @return [String] the name of the scope
236
+ attr_accessor :scope_name
237
+
238
+ # @return [String] the name of the collection
239
+ attr_accessor :collection_name
240
+
210
241
  # @yieldparam [DropIndexOptions] self
211
242
  def initialize
212
243
  @ignore_if_does_not_exist = false
@@ -224,6 +255,12 @@ module Couchbase
224
255
  # @return [Integer] the time in milliseconds allowed for the operation to complete
225
256
  attr_accessor :timeout
226
257
 
258
+ # @return [String] the name of the scope
259
+ attr_accessor :scope_name
260
+
261
+ # @return [String] the name of the collection
262
+ attr_accessor :collection_name
263
+
227
264
  # @yieldparam [DropPrimaryIndexOptions] self
228
265
  def initialize
229
266
  @ignore_if_does_not_exist = false
@@ -258,7 +295,7 @@ module Couchbase
258
295
 
259
296
  # @return [Boolean] true if this is a primary index
260
297
  attr_accessor :is_primary
261
- alias_method :primary?, :is_primary
298
+ alias primary? is_primary
262
299
 
263
300
  # @return [:gsi, :view] type of the index
264
301
  attr_accessor :type
@@ -266,6 +303,15 @@ module Couchbase
266
303
  # @return [Symbol] state
267
304
  attr_accessor :state
268
305
 
306
+ # @return [String, nil] the name of the bucket
307
+ attr_accessor :bucket
308
+
309
+ # @return [String, nil] the name of the scope
310
+ attr_accessor :scope
311
+
312
+ # @return [String, nil] the name of the collection
313
+ attr_accessor :collection
314
+
269
315
  # @return [String] the key space for the index, typically the bucket name.
270
316
  attr_accessor :key_space
271
317
 
@@ -279,7 +325,6 @@ module Couchbase
279
325
  # instance, it will show the indexed fields in an escaped format (surrounded by backticks).
280
326
  attr_accessor :index_key
281
327
 
282
-
283
328
  # @return [String] the string representation of the index's condition (the WHERE clause of the index),
284
329
  # or an empty Optional if no condition was set.
285
330
  #
@@ -1,4 +1,4 @@
1
- # Copyright 2020 Couchbase, Inc.
1
+ # Copyright 2020-2021 Couchbase, Inc.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ require "couchbase/errors"
17
17
  module Couchbase
18
18
  module Management
19
19
  class SearchIndexManager
20
- alias_method :inspect, :to_s
20
+ alias inspect to_s
21
21
 
22
22
  # @param [Couchbase::Backend] backend
23
23
  def initialize(backend)
@@ -58,17 +58,18 @@ module Couchbase
58
58
  # @raise [ArgumentError] if name, type or source_type is empty
59
59
  def upsert_index(index_definition, options = UpsertIndexOptions.new)
60
60
  @backend.search_index_upsert(
61
- {
62
- name: index_definition.name,
63
- type: index_definition.type,
64
- uuid: index_definition.uuid,
65
- params: (JSON.generate(index_definition.params) if index_definition.params),
66
- source_name: index_definition.source_name,
67
- source_type: index_definition.source_type,
68
- source_uuid: index_definition.source_uuid,
69
- source_params: (JSON.generate(index_definition.source_params) if index_definition.source_params),
70
- plan_params: (JSON.generate(index_definition.plan_params) if index_definition.plan_params),
71
- }, options.timeout)
61
+ {
62
+ name: index_definition.name,
63
+ type: index_definition.type,
64
+ uuid: index_definition.uuid,
65
+ params: (JSON.generate(index_definition.params) if index_definition.params),
66
+ source_name: index_definition.source_name,
67
+ source_type: index_definition.source_type,
68
+ source_uuid: index_definition.source_uuid,
69
+ source_params: (JSON.generate(index_definition.source_params) if index_definition.source_params),
70
+ plan_params: (JSON.generate(index_definition.plan_params) if index_definition.plan_params),
71
+ }, options.timeout
72
+ )
72
73
  end
73
74
 
74
75
  # Drops the index
@@ -98,6 +99,37 @@ module Couchbase
98
99
  res[:count]
99
100
  end
100
101
 
102
+ # Retrieves metrics, timings and counters for a given index
103
+ #
104
+ # @api uncommitted
105
+ #
106
+ # @param [String] index_name name of the index
107
+ # @param [GetIndexStatsOptions] options
108
+ #
109
+ # @return [Integer]
110
+ #
111
+ # @raise [ArgumentError]
112
+ # @raise [Error::IndexNotFound]
113
+ def get_index_stats(index_name, options = GetIndexStatsOptions.new)
114
+ res = @backend.search_index_get_stats(index_name, options.timeout)
115
+ JSON.parse(res)
116
+ end
117
+
118
+ # Retrieves statistics on search service. Information is provided on documents, partition indexes, mutations,
119
+ # compactions, queries, and more.
120
+ #
121
+ # @api uncommitted
122
+ #
123
+ # @param [GetIndexStatsOptions] options
124
+ #
125
+ # @return [Integer]
126
+ #
127
+ # @raise [ArgumentError]
128
+ def get_stats(options = GetIndexStatsOptions.new)
129
+ res = @backend.search_get_stats(options.timeout)
130
+ JSON.parse(res)
131
+ end
132
+
101
133
  # Pauses updates and maintenance for the index
102
134
  #
103
135
  # @param [String] index_name name of the index
@@ -234,7 +266,17 @@ module Couchbase
234
266
  # @return [Integer] the time in milliseconds allowed for the operation to complete
235
267
  attr_accessor :timeout
236
268
 
237
- # @yieldparam [GetIndexedDocumentOptions] self
269
+ # @yieldparam [GetIndexedDocumentCountOptions] self
270
+ def initialize
271
+ yield self if block_given?
272
+ end
273
+ end
274
+
275
+ class GetIndexStatsOptions
276
+ # @return [Integer] the time in milliseconds allowed for the operation to complete
277
+ attr_accessor :timeout
278
+
279
+ # @yieldparam [GetStatsOptions] self
238
280
  def initialize
239
281
  yield self if block_given?
240
282
  end
@@ -357,6 +399,8 @@ module Couchbase
357
399
 
358
400
  # @yieldparam [SearchIndex] self
359
401
  def initialize
402
+ @type = "fulltext-index"
403
+ @source_type = "couchbase"
360
404
  yield self if block_given?
361
405
  end
362
406
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2020 Couchbase, Inc.
1
+ # Copyright 2020-2021 Couchbase, Inc.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -14,10 +14,12 @@
14
14
 
15
15
  require "couchbase/errors"
16
16
 
17
+ require "time"
18
+
17
19
  module Couchbase
18
20
  module Management
19
21
  class UserManager
20
- alias_method :inspect, :to_s
22
+ alias inspect to_s
21
23
 
22
24
  # @param [Couchbase::Backend] backend
23
25
  def initialize(backend)
@@ -26,22 +28,24 @@ module Couchbase
26
28
 
27
29
  # Get a user
28
30
  #
29
- # @param [String] user_name ID of the user
31
+ # @param [String] username ID of the user
30
32
  # @param [GetUserOptions] options
31
33
  #
32
34
  # @return [UserAndMetadata]
33
35
  #
34
36
  # @raise [ArgumentError]
35
37
  # @raise [Error::UserNotFound]
36
- def get_user(user_name, options = GetUserOptions.new)
37
- # GET /settings/rbac/users/#{options.domain}/#{user_name}
38
+ def get_user(username, options = GetUserOptions.new)
39
+ resp = @backend.user_get(options.domain, username, options.timeout)
40
+ extract_user(resp)
38
41
  end
39
42
 
40
43
  # Gets all users
41
44
  #
42
45
  # @return [Array<UserAndMetadata>]
43
46
  def get_all_users(options = GetAllUsersOptions.new)
44
- # GET /settings/rbac/users/#{options.domain}
47
+ resp = @backend.user_get_all(options.domain, options.timeout)
48
+ resp.map { |entry| extract_user(entry) }
45
49
  end
46
50
 
47
51
  # Creates or updates a user
@@ -51,15 +55,31 @@ module Couchbase
51
55
  #
52
56
  # @raise [ArgumentError]
53
57
  def upsert_user(user, options = UpsertUserOptions.new)
54
- # PUT /settings/rbac/users/#{options.domain}/#{user_name}
58
+ @backend.user_upsert(
59
+ options.domain,
60
+ {
61
+ username: user.username,
62
+ display_name: user.display_name,
63
+ groups: user.groups,
64
+ password: user.password,
65
+ roles: user.roles.map do |role|
66
+ {
67
+ name: role.name,
68
+ bucket: role.bucket,
69
+ scope: role.scope,
70
+ collection: role.collection,
71
+ }
72
+ end,
73
+ }, options.timeout
74
+ )
55
75
  end
56
76
 
57
77
  # Removes a user
58
78
  #
59
- # @param [String] user_name ID of the user
79
+ # @param [String] username ID of the user
60
80
  # @param [DropUserOptions] options
61
- def drop_user(user_name, options = DropUserOptions.new)
62
- # DELETE /settings/rbac/users/#{options.domain}/#{user_name}
81
+ def drop_user(username, options = DropUserOptions.new)
82
+ @backend.user_drop(options.domain, username, options.timeout)
63
83
  end
64
84
 
65
85
  # Gets all roles supported by the server
@@ -68,7 +88,17 @@ module Couchbase
68
88
  #
69
89
  # @return [Array<RoleAndDescription>]
70
90
  def get_roles(options = GetRolesOptions.new)
71
- # GET /settings/rbac/roles
91
+ resp = @backend.role_get_all(options.timeout)
92
+ resp.map do |r|
93
+ RoleAndDescription.new do |role|
94
+ role.name = r[:name]
95
+ role.display_name = r[:display_name]
96
+ role.description = r[:description]
97
+ role.bucket = r[:bucket]
98
+ role.scope = r[:scope]
99
+ role.collection = r[:collection]
100
+ end
101
+ end
72
102
  end
73
103
 
74
104
  # Gets a group
@@ -80,7 +110,8 @@ module Couchbase
80
110
  # @raise [ArgumentError]
81
111
  # @raise [Error::GroupNotFound]
82
112
  def get_group(group_name, options = GetGroupOptions.new)
83
- # GET /settings/rbac/groups/#{group_name}
113
+ resp = @backend.group_get(group_name, options.timeout)
114
+ extract_group(resp)
84
115
  end
85
116
 
86
117
  # Gets all groups
@@ -89,7 +120,8 @@ module Couchbase
89
120
  #
90
121
  # @return [Array<Group>]
91
122
  def get_all_groups(options = GetAllGroupsOptions.new)
92
- # GET /settings/rbac/groups
123
+ resp = @backend.group_get_all(options.timeout)
124
+ resp.map { |entry| extract_group(entry) }
93
125
  end
94
126
 
95
127
  # Creates or updates a group
@@ -100,7 +132,19 @@ module Couchbase
100
132
  # @raise [ArgumentError]
101
133
  # @raise [Error::GroupNotFound]
102
134
  def upsert_group(group, options = UpsertGroupOptions.new)
103
- # PUT /settings/rbac/groups/#{group.name}
135
+ @backend.group_upsert({
136
+ name: group.name,
137
+ description: group.description,
138
+ ldap_group_reference: group.ldap_group_reference,
139
+ roles: group.roles.map do |role|
140
+ {
141
+ name: role.name,
142
+ bucket: role.bucket,
143
+ scope: role.scope,
144
+ collection: role.collection,
145
+ }
146
+ end,
147
+ }, options.timeout)
104
148
  end
105
149
 
106
150
  # Removes a group
@@ -109,56 +153,62 @@ module Couchbase
109
153
  # @param [DropGroupOptions] options
110
154
  #
111
155
  # @raise [Error::GroupNotFound]
112
- def drop_group(group_name, options = DropGroupOptions.new) end
156
+ def drop_group(group_name, options = DropGroupOptions.new)
157
+ @backend.group_drop(group_name, options.timeout)
158
+ end
113
159
 
114
160
  class GetUserOptions
115
161
  # @return [:local, :external] Name of the user's domain. Defaults to +:local+
116
- attr_accessor :domain_name
162
+ attr_accessor :domain
117
163
 
118
164
  # @return [Integer] the time in milliseconds allowed for the operation to complete
119
165
  attr_accessor :timeout
120
166
 
167
+ # @yieldparam [GetUserOptions] self
121
168
  def initialize
122
- @domain_name = :local
169
+ @domain = :local
123
170
  yield self if block_given?
124
171
  end
125
172
  end
126
173
 
127
174
  class GetAllUsersOptions
128
175
  # @return [:local, :external] Name of the user's domain. Defaults to +:local+
129
- attr_accessor :domain_name
176
+ attr_accessor :domain
130
177
 
131
178
  # @return [Integer] the time in milliseconds allowed for the operation to complete
132
179
  attr_accessor :timeout
133
180
 
181
+ # @yieldparam [GetAllUsersOptions] self
134
182
  def initialize
135
- @domain_name = :local
183
+ @domain = :local
136
184
  yield self if block_given?
137
185
  end
138
186
  end
139
187
 
140
188
  class UpsertUserOptions
141
189
  # @return [:local, :external] Name of the user's domain. Defaults to +:local+
142
- attr_accessor :domain_name
190
+ attr_accessor :domain
143
191
 
144
192
  # @return [Integer] the time in milliseconds allowed for the operation to complete
145
193
  attr_accessor :timeout
146
194
 
195
+ # @yieldparam [UpsertUserOptions] self
147
196
  def initialize
148
- @domain_name = :local
197
+ @domain = :local
149
198
  yield self if block_given?
150
199
  end
151
200
  end
152
201
 
153
202
  class DropUserOptions
154
203
  # @return [:local, :external] Name of the user's domain. Defaults to +:local+
155
- attr_accessor :domain_name
204
+ attr_accessor :domain
156
205
 
157
206
  # @return [Integer] the time in milliseconds allowed for the operation to complete
158
207
  attr_accessor :timeout
159
208
 
209
+ # @yieldparam [DropUserOptions] self
160
210
  def initialize
161
- @domain_name = :local
211
+ @domain = :local
162
212
  yield self if block_given?
163
213
  end
164
214
  end
@@ -167,6 +217,7 @@ module Couchbase
167
217
  # @return [Integer] the time in milliseconds allowed for the operation to complete
168
218
  attr_accessor :timeout
169
219
 
220
+ # @yieldparam [GetRolesOptions] self
170
221
  def initialize
171
222
  yield self if block_given?
172
223
  end
@@ -176,6 +227,7 @@ module Couchbase
176
227
  # @return [Integer] the time in milliseconds allowed for the operation to complete
177
228
  attr_accessor :timeout
178
229
 
230
+ # @yieldparam [GetGroupOptions] self
179
231
  def initialize
180
232
  yield self if block_given?
181
233
  end
@@ -185,6 +237,7 @@ module Couchbase
185
237
  # @return [Integer] the time in milliseconds allowed for the operation to complete
186
238
  attr_accessor :timeout
187
239
 
240
+ # @yieldparam [GetAllGroupsOptions] self
188
241
  def initialize
189
242
  yield self if block_given?
190
243
  end
@@ -194,6 +247,7 @@ module Couchbase
194
247
  # @return [Integer] the time in milliseconds allowed for the operation to complete
195
248
  attr_accessor :timeout
196
249
 
250
+ # @yieldparam [UpsertGroupOptions] self
197
251
  def initialize
198
252
  yield self if block_given?
199
253
  end
@@ -203,10 +257,70 @@ module Couchbase
203
257
  # @return [Integer] the time in milliseconds allowed for the operation to complete
204
258
  attr_accessor :timeout
205
259
 
260
+ # @yieldparam [DropGroupOptions] self
206
261
  def initialize
207
262
  yield self if block_given?
208
263
  end
209
264
  end
265
+
266
+ private
267
+
268
+ def extract_group(resp)
269
+ Group.new do |group|
270
+ group.name = resp[:name]
271
+ group.description = resp[:description]
272
+ group.ldap_group_reference = resp[:ldap_group_reference]
273
+ if resp[:roles]
274
+ group.roles = resp[:roles].map do |r|
275
+ Role.new do |role|
276
+ role.name = r[:name]
277
+ role.bucket = r[:bucket]
278
+ role.scope = r[:scope]
279
+ role.collection = r[:collection]
280
+ end
281
+ end
282
+ end
283
+ end
284
+ end
285
+
286
+ def extract_user(resp)
287
+ UserAndMetadata.new do |user|
288
+ user.domain = resp[:domain]
289
+ user.username = resp[:username]
290
+ user.display_name = resp[:display_name]
291
+ user.groups = resp[:groups]
292
+ user.external_groups = resp[:external_groups]
293
+ user.password_changed = Time.parse(resp[:password_changed]) if resp[:password_changed]
294
+ if resp[:roles]
295
+ user.roles = resp[:roles].map do |r|
296
+ Role.new do |role|
297
+ role.name = r[:name]
298
+ role.bucket = r[:bucket]
299
+ role.scope = r[:scope]
300
+ role.collection = r[:collection]
301
+ end
302
+ end
303
+ end
304
+ if resp[:effective_roles]
305
+ user.effective_roles = resp[:effective_roles].map do |r|
306
+ RoleAndOrigins.new do |role|
307
+ role.name = r[:name]
308
+ role.bucket = r[:bucket]
309
+ role.scope = r[:scope]
310
+ role.collection = r[:collection]
311
+ if r[:origins]
312
+ role.origins = r[:origins].map do |o|
313
+ Origin.new do |origin|
314
+ origin.type = o[:type]
315
+ origin.name = o[:name]
316
+ end
317
+ end
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
323
+ end
210
324
  end
211
325
 
212
326
  class Role
@@ -216,53 +330,60 @@ module Couchbase
216
330
  # @return [String]
217
331
  attr_accessor :bucket
218
332
 
333
+ # @return [String]
334
+ attr_accessor :scope
335
+
336
+ # @return [String]
337
+ attr_accessor :collection
338
+
339
+ # @yieldparam [Role] self
219
340
  def initialize
220
341
  yield self if block_given?
221
342
  end
222
343
  end
223
344
 
224
- class RoleAndDescription
225
- # @return [Role]
226
- attr_reader :role
227
-
345
+ class RoleAndDescription < Role
228
346
  # @return [String]
229
- attr_reader :display_name
347
+ attr_accessor :display_name
230
348
 
231
349
  # @return [String]
232
- attr_reader :description
350
+ attr_accessor :description
233
351
 
352
+ # @yieldparam [RoleAndDescription] self
234
353
  def initialize
354
+ super
235
355
  yield self if block_given?
236
356
  end
237
357
  end
238
358
 
239
359
  class Origin
240
360
  # @return [String]
241
- attr_reader :type
361
+ attr_writer :type
242
362
 
243
363
  # @return [String]
244
- attr_reader :name
364
+ attr_writer :name
245
365
 
366
+ # @yieldparam [Origin] self
246
367
  def initialize
247
368
  yield self if block_given?
248
369
  end
249
370
  end
250
371
 
251
- class RoleAndOrigins
252
- # @return [Role]
253
- attr_reader :role
254
-
372
+ class RoleAndOrigins < Role
255
373
  # @return [Array<Origin>]
256
- attr_reader :origins
374
+ attr_writer :origins
257
375
 
376
+ # @yieldparam [RoleAndOrigins] self
258
377
  def initialize
378
+ super
379
+ @origins = []
259
380
  yield self if block_given?
260
381
  end
261
382
  end
262
383
 
263
384
  class User
264
385
  # @return [String]
265
- attr_accessor :user_name
386
+ attr_accessor :username
266
387
 
267
388
  # @return [String]
268
389
  attr_accessor :display_name
@@ -274,48 +395,53 @@ module Couchbase
274
395
  attr_accessor :roles
275
396
 
276
397
  # @return [String]
277
- attr_writer :password
398
+ attr_accessor :password
278
399
 
400
+ # @yieldparam [User] self
279
401
  def initialize
402
+ @groups = []
403
+ @roles = []
280
404
  yield self if block_given?
281
405
  end
282
406
  end
283
407
 
284
- class UserAndMetadata
408
+ class UserAndMetadata < User
285
409
  # @return [:local, :external]
286
- attr_reader :domain
287
-
288
- # @return [User]
289
- attr_reader :user
410
+ attr_accessor :domain
290
411
 
291
412
  # @return [Array<RoleAndOrigins>]
292
- attr_reader :effective_roles
413
+ attr_accessor :effective_roles
293
414
 
294
415
  # @return [Time]
295
- attr_reader :password_changed
416
+ attr_accessor :password_changed
296
417
 
297
418
  # @return [Array<String>]
298
- attr_reader :external_groups
419
+ attr_accessor :external_groups
299
420
 
421
+ # @yieldparam [UserAndMetadata] self
300
422
  def initialize
423
+ super
424
+ @effective_roles = []
301
425
  yield self if block_given?
302
426
  end
303
427
  end
304
428
 
305
429
  class Group
306
430
  # @return [String]
307
- attr_reader :name
431
+ attr_accessor :name
308
432
 
309
433
  # @return [String]
310
- attr_reader :description
434
+ attr_accessor :description
311
435
 
312
436
  # @return [Array<Role>]
313
- attr_reader :roles
437
+ attr_accessor :roles
314
438
 
315
439
  # @return [String]
316
- attr_reader :ldap_group_reference
440
+ attr_accessor :ldap_group_reference
317
441
 
442
+ # @yieldparam [Group] self
318
443
  def initialize
444
+ @roles = []
319
445
  yield self if block_given?
320
446
  end
321
447
  end