couchbase 4.3.1 → 4.4.1-dev.1

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 (1104) hide show
  1. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +19 -32
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  3. package/deps/couchbase-cxx-client/CMakeLists.txt +16 -9
  4. package/deps/couchbase-cxx-client/README.md +39 -44
  5. package/deps/couchbase-cxx-client/cmake/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch +3 -4
  6. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +2 -1
  7. package/deps/couchbase-cxx-client/cmake/Packaging.cmake +41 -0
  8. package/deps/couchbase-cxx-client/cmake/Sanitizers.cmake +1 -0
  9. package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +5 -5
  10. package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
  11. package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.pc.in +10 -0
  12. package/deps/couchbase-cxx-client/cmake/test_boringssl.cxx +1 -1
  13. package/deps/couchbase-cxx-client/cmake/test_openssl.cxx +1 -1
  14. package/deps/couchbase-cxx-client/core/agent.cxx +353 -304
  15. package/deps/couchbase-cxx-client/core/agent.hxx +94 -76
  16. package/deps/couchbase-cxx-client/core/agent_config.cxx +9 -8
  17. package/deps/couchbase-cxx-client/core/agent_config.hxx +7 -7
  18. package/deps/couchbase-cxx-client/core/agent_group.cxx +132 -120
  19. package/deps/couchbase-cxx-client/core/agent_group.hxx +26 -22
  20. package/deps/couchbase-cxx-client/core/agent_group_config.cxx +8 -7
  21. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +6 -6
  22. package/deps/couchbase-cxx-client/core/agent_unit_test_api.hxx +6 -6
  23. package/deps/couchbase-cxx-client/core/analytics_query_options.cxx +21 -21
  24. package/deps/couchbase-cxx-client/core/analytics_query_options.hxx +19 -18
  25. package/deps/couchbase-cxx-client/core/analytics_scan_consistency.hxx +2 -2
  26. package/deps/couchbase-cxx-client/core/bucket.cxx +848 -776
  27. package/deps/couchbase-cxx-client/core/bucket.hxx +151 -139
  28. package/deps/couchbase-cxx-client/core/capella_ca.hxx +20 -19
  29. package/deps/couchbase-cxx-client/core/cluster.cxx +1240 -927
  30. package/deps/couchbase-cxx-client/core/cluster.hxx +254 -167
  31. package/deps/couchbase-cxx-client/core/cluster_agent.cxx +7 -7
  32. package/deps/couchbase-cxx-client/core/cluster_agent.hxx +4 -4
  33. package/deps/couchbase-cxx-client/core/cluster_agent_config.cxx +8 -7
  34. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +6 -6
  35. package/deps/couchbase-cxx-client/core/cluster_options.cxx +17 -17
  36. package/deps/couchbase-cxx-client/core/cluster_options.hxx +50 -47
  37. package/deps/couchbase-cxx-client/core/cluster_state.hxx +3 -3
  38. package/deps/couchbase-cxx-client/core/collection_id_cache_entry.hxx +5 -4
  39. package/deps/couchbase-cxx-client/core/collections_component.cxx +372 -329
  40. package/deps/couchbase-cxx-client/core/collections_component.hxx +17 -13
  41. package/deps/couchbase-cxx-client/core/collections_component_unit_test_api.hxx +6 -6
  42. package/deps/couchbase-cxx-client/core/collections_options.hxx +29 -27
  43. package/deps/couchbase-cxx-client/core/config_listener.hxx +3 -3
  44. package/deps/couchbase-cxx-client/core/config_profile.hxx +3 -3
  45. package/deps/couchbase-cxx-client/core/config_profiles.cxx +31 -31
  46. package/deps/couchbase-cxx-client/core/config_profiles.hxx +19 -19
  47. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +2 -1
  48. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +2 -2
  49. package/deps/couchbase-cxx-client/core/crud_component.cxx +310 -276
  50. package/deps/couchbase-cxx-client/core/crud_component.hxx +21 -15
  51. package/deps/couchbase-cxx-client/core/crud_options.hxx +361 -354
  52. package/deps/couchbase-cxx-client/core/crypto/cbcrypto.cc +732 -627
  53. package/deps/couchbase-cxx-client/core/crypto/cbcrypto.h +12 -3
  54. package/deps/couchbase-cxx-client/core/design_document_namespace.hxx +2 -2
  55. package/deps/couchbase-cxx-client/core/design_document_namespace_fmt.hxx +18 -18
  56. package/deps/couchbase-cxx-client/core/diagnostics.hxx +44 -44
  57. package/deps/couchbase-cxx-client/core/diagnostics_fmt.hxx +76 -76
  58. package/deps/couchbase-cxx-client/core/diagnostics_json.hxx +61 -60
  59. package/deps/couchbase-cxx-client/core/diagntostics_options.hxx +14 -14
  60. package/deps/couchbase-cxx-client/core/dispatcher.cxx +4 -3
  61. package/deps/couchbase-cxx-client/core/dispatcher.hxx +8 -7
  62. package/deps/couchbase-cxx-client/core/document_id.cxx +37 -34
  63. package/deps/couchbase-cxx-client/core/document_id.hxx +87 -86
  64. package/deps/couchbase-cxx-client/core/document_id_fmt.hxx +10 -10
  65. package/deps/couchbase-cxx-client/core/durability_options.hxx +50 -49
  66. package/deps/couchbase-cxx-client/core/error_context/analytics.hxx +18 -18
  67. package/deps/couchbase-cxx-client/core/error_context/analytics_json.hxx +115 -0
  68. package/deps/couchbase-cxx-client/core/error_context/base_error_context.hxx +184 -0
  69. package/deps/couchbase-cxx-client/core/error_context/http.hxx +14 -14
  70. package/deps/couchbase-cxx-client/core/error_context/http_json.hxx +90 -0
  71. package/deps/couchbase-cxx-client/core/error_context/internal_tof_metadata_json.hxx +36 -0
  72. package/deps/couchbase-cxx-client/core/error_context/key_value.cxx +27 -27
  73. package/deps/couchbase-cxx-client/core/error_context/key_value.hxx +41 -38
  74. package/deps/couchbase-cxx-client/core/error_context/key_value_error_context.hxx +235 -0
  75. package/deps/couchbase-cxx-client/core/error_context/key_value_error_map_attribute.hxx +142 -0
  76. package/deps/couchbase-cxx-client/core/error_context/key_value_error_map_info.hxx +139 -0
  77. package/deps/couchbase-cxx-client/core/error_context/key_value_extended_error_info.hxx +86 -0
  78. package/deps/couchbase-cxx-client/core/error_context/key_value_json.hxx +83 -0
  79. package/deps/couchbase-cxx-client/core/error_context/key_value_status_code.hxx +109 -0
  80. package/deps/couchbase-cxx-client/core/error_context/query.hxx +18 -18
  81. package/deps/couchbase-cxx-client/core/error_context/query_error_context.hxx +150 -0
  82. package/deps/couchbase-cxx-client/core/error_context/query_json.hxx +114 -0
  83. package/deps/couchbase-cxx-client/core/error_context/query_public_json.hxx +84 -0
  84. package/deps/couchbase-cxx-client/core/error_context/search.hxx +17 -17
  85. package/deps/couchbase-cxx-client/core/error_context/search_json.hxx +101 -0
  86. package/deps/couchbase-cxx-client/core/error_context/subdocument_error_context.hxx +147 -0
  87. package/deps/couchbase-cxx-client/core/error_context/subdocument_json.hxx +48 -0
  88. package/deps/couchbase-cxx-client/{couchbase → core/error_context}/transaction_error_context.hxx +22 -22
  89. package/deps/couchbase-cxx-client/core/error_context/transaction_op_error_context.hxx +79 -0
  90. package/deps/couchbase-cxx-client/core/error_context/view.hxx +17 -17
  91. package/deps/couchbase-cxx-client/core/fmt/key_value_error_map_attribute.hxx +100 -0
  92. package/deps/couchbase-cxx-client/{couchbase → core}/fmt/key_value_extended_error_info.hxx +20 -20
  93. package/deps/couchbase-cxx-client/core/fmt/key_value_status_code.hxx +269 -0
  94. package/deps/couchbase-cxx-client/core/free_form_http_request.cxx +26 -26
  95. package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +34 -33
  96. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +111 -131
  97. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +5 -7
  98. package/deps/couchbase-cxx-client/core/impl/analytics_error_category.cxx +29 -28
  99. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +615 -516
  100. package/deps/couchbase-cxx-client/core/impl/best_effort_retry_strategy.cxx +53 -50
  101. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +346 -285
  102. package/deps/couchbase-cxx-client/core/impl/boolean_field_query.cxx +10 -10
  103. package/deps/couchbase-cxx-client/core/impl/boolean_query.cxx +27 -27
  104. package/deps/couchbase-cxx-client/core/impl/bootstrap_state_listener.hxx +6 -6
  105. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +39 -34
  106. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +354 -313
  107. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +430 -325
  108. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1033 -1187
  109. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +201 -170
  110. package/deps/couchbase-cxx-client/core/impl/common_error_category.cxx +58 -55
  111. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +46 -32
  112. package/deps/couchbase-cxx-client/core/impl/conjunction_query.cxx +17 -17
  113. package/deps/couchbase-cxx-client/core/impl/date_range.cxx +24 -20
  114. package/deps/couchbase-cxx-client/core/impl/date_range_facet.cxx +22 -22
  115. package/deps/couchbase-cxx-client/core/impl/date_range_facet_result.cxx +6 -6
  116. package/deps/couchbase-cxx-client/core/impl/date_range_query.cxx +50 -48
  117. package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +211 -198
  118. package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +7 -6
  119. package/deps/couchbase-cxx-client/core/impl/disjunction_query.cxx +18 -17
  120. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +92 -75
  121. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.hxx +24 -20
  122. package/deps/couchbase-cxx-client/core/impl/doc_id_query.cxx +9 -9
  123. package/deps/couchbase-cxx-client/core/impl/encoded_search_facet.hxx +2 -2
  124. package/deps/couchbase-cxx-client/core/impl/encoded_search_query.hxx +2 -2
  125. package/deps/couchbase-cxx-client/core/impl/encoded_search_sort.hxx +2 -2
  126. package/deps/couchbase-cxx-client/core/impl/error.cxx +171 -0
  127. package/deps/couchbase-cxx-client/core/impl/error.hxx +64 -0
  128. package/deps/couchbase-cxx-client/core/impl/error_context.cxx +56 -0
  129. package/deps/couchbase-cxx-client/core/impl/expiry.cxx +66 -53
  130. package/deps/couchbase-cxx-client/core/impl/fail_fast_retry_strategy.cxx +5 -4
  131. package/deps/couchbase-cxx-client/core/impl/field_level_encryption_error_category.cxx +30 -28
  132. package/deps/couchbase-cxx-client/core/impl/geo_bounding_box_query.cxx +17 -17
  133. package/deps/couchbase-cxx-client/core/impl/geo_distance_query.cxx +14 -14
  134. package/deps/couchbase-cxx-client/core/impl/geo_polygon_query.cxx +17 -17
  135. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.hxx +26 -22
  136. package/deps/couchbase-cxx-client/core/impl/get_any_replica.hxx +25 -23
  137. package/deps/couchbase-cxx-client/core/impl/get_replica.cxx +18 -15
  138. package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +23 -18
  139. package/deps/couchbase-cxx-client/core/impl/internal_date_range_facet_result.cxx +16 -14
  140. package/deps/couchbase-cxx-client/core/impl/internal_date_range_facet_result.hxx +16 -15
  141. package/deps/couchbase-cxx-client/core/impl/internal_error_context.cxx +79 -0
  142. package/deps/couchbase-cxx-client/core/impl/internal_error_context.hxx +52 -0
  143. package/deps/couchbase-cxx-client/core/impl/internal_numeric_range_facet_result.cxx +18 -15
  144. package/deps/couchbase-cxx-client/core/impl/internal_numeric_range_facet_result.hxx +16 -15
  145. package/deps/couchbase-cxx-client/core/impl/internal_scan_result.hxx +7 -7
  146. package/deps/couchbase-cxx-client/core/impl/internal_search_error_context.cxx +25 -22
  147. package/deps/couchbase-cxx-client/core/impl/internal_search_error_context.hxx +32 -31
  148. package/deps/couchbase-cxx-client/core/impl/internal_search_meta_data.cxx +15 -13
  149. package/deps/couchbase-cxx-client/core/impl/internal_search_meta_data.hxx +10 -9
  150. package/deps/couchbase-cxx-client/core/impl/internal_search_result.cxx +30 -22
  151. package/deps/couchbase-cxx-client/core/impl/internal_search_result.hxx +10 -9
  152. package/deps/couchbase-cxx-client/core/impl/internal_search_row.cxx +10 -10
  153. package/deps/couchbase-cxx-client/core/impl/internal_search_row.hxx +16 -16
  154. package/deps/couchbase-cxx-client/core/impl/internal_search_row_location.hxx +2 -2
  155. package/deps/couchbase-cxx-client/core/impl/internal_search_row_locations.cxx +68 -65
  156. package/deps/couchbase-cxx-client/core/impl/internal_search_row_locations.hxx +16 -13
  157. package/deps/couchbase-cxx-client/core/impl/internal_term_facet_result.cxx +16 -14
  158. package/deps/couchbase-cxx-client/core/impl/internal_term_facet_result.hxx +15 -15
  159. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +73 -72
  160. package/deps/couchbase-cxx-client/core/impl/key_value_error_context.cxx +65 -65
  161. package/deps/couchbase-cxx-client/core/impl/logger.cxx +91 -0
  162. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +32 -29
  163. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +33 -29
  164. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.cxx +75 -68
  165. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +30 -26
  166. package/deps/couchbase-cxx-client/core/impl/management_error_category.cxx +41 -40
  167. package/deps/couchbase-cxx-client/core/impl/match_all_query.cxx +6 -6
  168. package/deps/couchbase-cxx-client/core/impl/match_none_query.cxx +6 -6
  169. package/deps/couchbase-cxx-client/core/impl/match_phrase_query.cxx +13 -13
  170. package/deps/couchbase-cxx-client/core/impl/match_query.cxx +28 -28
  171. package/deps/couchbase-cxx-client/core/impl/network_error_category.cxx +39 -38
  172. package/deps/couchbase-cxx-client/core/impl/numeric_range.cxx +6 -6
  173. package/deps/couchbase-cxx-client/core/impl/numeric_range_facet.cxx +22 -22
  174. package/deps/couchbase-cxx-client/core/impl/numeric_range_facet_result.cxx +6 -6
  175. package/deps/couchbase-cxx-client/core/impl/numeric_range_query.cxx +22 -22
  176. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +294 -277
  177. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  178. package/deps/couchbase-cxx-client/core/impl/observe_seqno.cxx +21 -18
  179. package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +31 -26
  180. package/deps/couchbase-cxx-client/core/impl/phrase_query.cxx +10 -10
  181. package/deps/couchbase-cxx-client/core/impl/prefix_query.cxx +10 -10
  182. package/deps/couchbase-cxx-client/core/impl/query.cxx +163 -154
  183. package/deps/couchbase-cxx-client/core/impl/query.hxx +6 -7
  184. package/deps/couchbase-cxx-client/core/impl/query_error_category.cxx +22 -21
  185. package/deps/couchbase-cxx-client/core/impl/query_error_context.cxx +45 -45
  186. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +488 -408
  187. package/deps/couchbase-cxx-client/core/impl/query_string_query.cxx +7 -7
  188. package/deps/couchbase-cxx-client/core/impl/regexp_query.cxx +10 -10
  189. package/deps/couchbase-cxx-client/core/impl/replica_utils.cxx +66 -0
  190. package/deps/couchbase-cxx-client/core/impl/replica_utils.hxx +48 -0
  191. package/deps/couchbase-cxx-client/core/impl/retry_action.cxx +3 -3
  192. package/deps/couchbase-cxx-client/core/impl/retry_reason.cxx +129 -56
  193. package/deps/couchbase-cxx-client/core/impl/retry_reason.hxx +28 -0
  194. package/deps/couchbase-cxx-client/core/impl/scan_result.cxx +53 -49
  195. package/deps/couchbase-cxx-client/core/impl/scope.cxx +103 -94
  196. package/deps/couchbase-cxx-client/core/impl/search.cxx +139 -130
  197. package/deps/couchbase-cxx-client/core/impl/search.hxx +4 -4
  198. package/deps/couchbase-cxx-client/core/impl/search_error_category.cxx +18 -17
  199. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +492 -390
  200. package/deps/couchbase-cxx-client/core/impl/search_meta_data.cxx +3 -3
  201. package/deps/couchbase-cxx-client/core/impl/search_request.cxx +78 -78
  202. package/deps/couchbase-cxx-client/core/impl/search_result.cxx +5 -5
  203. package/deps/couchbase-cxx-client/core/impl/search_row.cxx +7 -7
  204. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +9 -8
  205. package/deps/couchbase-cxx-client/core/impl/search_row_locations.cxx +8 -7
  206. package/deps/couchbase-cxx-client/core/impl/search_sort_field.cxx +53 -53
  207. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +49 -48
  208. package/deps/couchbase-cxx-client/core/impl/search_sort_id.cxx +10 -10
  209. package/deps/couchbase-cxx-client/core/impl/search_sort_score.cxx +10 -10
  210. package/deps/couchbase-cxx-client/core/impl/streaming_json_lexer_error_category.cxx +70 -68
  211. package/deps/couchbase-cxx-client/core/impl/subdoc/array_add_unique.cxx +6 -6
  212. package/deps/couchbase-cxx-client/core/impl/subdoc/array_append.cxx +6 -6
  213. package/deps/couchbase-cxx-client/core/impl/subdoc/array_insert.cxx +6 -6
  214. package/deps/couchbase-cxx-client/core/impl/subdoc/array_prepend.cxx +6 -6
  215. package/deps/couchbase-cxx-client/core/impl/subdoc/command.hxx +5 -5
  216. package/deps/couchbase-cxx-client/core/impl/subdoc/command_bundle.hxx +11 -11
  217. package/deps/couchbase-cxx-client/core/impl/subdoc/count.cxx +6 -6
  218. package/deps/couchbase-cxx-client/core/impl/subdoc/counter.cxx +6 -6
  219. package/deps/couchbase-cxx-client/core/impl/subdoc/exists.cxx +6 -6
  220. package/deps/couchbase-cxx-client/core/impl/subdoc/get.cxx +6 -6
  221. package/deps/couchbase-cxx-client/core/impl/subdoc/insert.cxx +6 -6
  222. package/deps/couchbase-cxx-client/core/impl/subdoc/join_values.cxx +25 -25
  223. package/deps/couchbase-cxx-client/core/impl/subdoc/lookup_in_macro.cxx +61 -60
  224. package/deps/couchbase-cxx-client/core/impl/subdoc/lookup_in_specs.cxx +9 -9
  225. package/deps/couchbase-cxx-client/core/impl/subdoc/mutate_in_macro.cxx +48 -39
  226. package/deps/couchbase-cxx-client/core/impl/subdoc/mutate_in_specs.cxx +9 -9
  227. package/deps/couchbase-cxx-client/core/impl/subdoc/opcode.hxx +16 -16
  228. package/deps/couchbase-cxx-client/core/impl/subdoc/path_flags.hxx +40 -17
  229. package/deps/couchbase-cxx-client/core/impl/subdoc/remove.cxx +6 -6
  230. package/deps/couchbase-cxx-client/core/impl/subdoc/replace.cxx +6 -6
  231. package/deps/couchbase-cxx-client/core/impl/subdoc/upsert.cxx +6 -6
  232. package/deps/couchbase-cxx-client/core/impl/term_facet.cxx +8 -8
  233. package/deps/couchbase-cxx-client/core/impl/term_facet_result.cxx +6 -6
  234. package/deps/couchbase-cxx-client/core/impl/term_query.cxx +25 -25
  235. package/deps/couchbase-cxx-client/core/impl/term_range_query.cxx +22 -22
  236. package/deps/couchbase-cxx-client/core/impl/transaction_error_category.cxx +21 -20
  237. package/deps/couchbase-cxx-client/core/impl/transaction_get_result.cxx +41 -30
  238. package/deps/couchbase-cxx-client/core/impl/transaction_op_error_category.cxx +55 -56
  239. package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +15 -10
  240. package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +9 -9
  241. package/deps/couchbase-cxx-client/core/impl/view_error_category.cxx +17 -16
  242. package/deps/couchbase-cxx-client/core/impl/wildcard_query.cxx +10 -10
  243. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +30 -29
  244. package/deps/couchbase-cxx-client/core/io/dns_client.cxx +257 -232
  245. package/deps/couchbase-cxx-client/core/io/dns_client.hxx +19 -18
  246. package/deps/couchbase-cxx-client/core/io/dns_codec.hxx +156 -154
  247. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +114 -109
  248. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +15 -13
  249. package/deps/couchbase-cxx-client/core/io/dns_message.hxx +365 -342
  250. package/deps/couchbase-cxx-client/core/io/http_command.hxx +155 -134
  251. package/deps/couchbase-cxx-client/core/io/http_context.hxx +5 -5
  252. package/deps/couchbase-cxx-client/core/io/http_message.hxx +75 -71
  253. package/deps/couchbase-cxx-client/core/io/http_parser.cxx +70 -67
  254. package/deps/couchbase-cxx-client/core/io/http_parser.hxx +18 -18
  255. package/deps/couchbase-cxx-client/core/io/http_session.hxx +620 -520
  256. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +406 -315
  257. package/deps/couchbase-cxx-client/core/io/http_traits.hxx +7 -0
  258. package/deps/couchbase-cxx-client/core/io/ip_protocol.hxx +3 -3
  259. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +298 -278
  260. package/deps/couchbase-cxx-client/core/io/mcbp_context.hxx +7 -6
  261. package/deps/couchbase-cxx-client/core/io/mcbp_message.cxx +8 -8
  262. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +19 -19
  263. package/deps/couchbase-cxx-client/core/io/mcbp_parser.cxx +60 -51
  264. package/deps/couchbase-cxx-client/core/io/mcbp_parser.hxx +21 -17
  265. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +1769 -1616
  266. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +63 -57
  267. package/deps/couchbase-cxx-client/core/io/query_cache.hxx +34 -34
  268. package/deps/couchbase-cxx-client/core/io/retry_context.hxx +45 -45
  269. package/deps/couchbase-cxx-client/core/io/retry_orchestrator.hxx +52 -42
  270. package/deps/couchbase-cxx-client/core/io/streams.hxx +210 -193
  271. package/deps/couchbase-cxx-client/core/json_string.hxx +47 -47
  272. package/deps/couchbase-cxx-client/core/key_value_config.cxx +8 -8
  273. package/deps/couchbase-cxx-client/core/key_value_config.hxx +12 -11
  274. package/deps/couchbase-cxx-client/core/logger/configuration.hxx +35 -35
  275. package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.cxx +73 -72
  276. package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.hxx +20 -18
  277. package/deps/couchbase-cxx-client/core/logger/level.hxx +9 -1
  278. package/deps/couchbase-cxx-client/core/logger/logger.cxx +279 -252
  279. package/deps/couchbase-cxx-client/core/logger/logger.hxx +110 -58
  280. package/deps/couchbase-cxx-client/core/management/analytics_dataset.hxx +4 -4
  281. package/deps/couchbase-cxx-client/core/management/analytics_index.hxx +4 -4
  282. package/deps/couchbase-cxx-client/core/management/analytics_link_azure_blob_external.cxx +35 -33
  283. package/deps/couchbase-cxx-client/core/management/analytics_link_azure_blob_external.hxx +36 -35
  284. package/deps/couchbase-cxx-client/core/management/analytics_link_azure_blob_external_json.hxx +24 -20
  285. package/deps/couchbase-cxx-client/core/management/analytics_link_couchbase_remote.cxx +66 -65
  286. package/deps/couchbase-cxx-client/core/management/analytics_link_couchbase_remote.hxx +77 -70
  287. package/deps/couchbase-cxx-client/core/management/analytics_link_couchbase_remote_json.hxx +38 -32
  288. package/deps/couchbase-cxx-client/core/management/analytics_link_s3_external.cxx +26 -25
  289. package/deps/couchbase-cxx-client/core/management/analytics_link_s3_external.hxx +30 -30
  290. package/deps/couchbase-cxx-client/core/management/analytics_link_s3_external_json.hxx +18 -16
  291. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +109 -91
  292. package/deps/couchbase-cxx-client/core/management/bucket_settings_json.hxx +112 -94
  293. package/deps/couchbase-cxx-client/core/management/design_document.hxx +9 -9
  294. package/deps/couchbase-cxx-client/core/management/eventing_function.hxx +124 -121
  295. package/deps/couchbase-cxx-client/core/management/eventing_function_json.hxx +228 -184
  296. package/deps/couchbase-cxx-client/core/management/eventing_status.hxx +41 -41
  297. package/deps/couchbase-cxx-client/core/management/eventing_status_json.hxx +53 -45
  298. package/deps/couchbase-cxx-client/core/management/rbac.hxx +33 -28
  299. package/deps/couchbase-cxx-client/core/management/rbac_fmt.hxx +21 -21
  300. package/deps/couchbase-cxx-client/core/management/rbac_json.hxx +132 -125
  301. package/deps/couchbase-cxx-client/core/management/search_index.cxx +79 -0
  302. package/deps/couchbase-cxx-client/core/management/search_index.hxx +11 -10
  303. package/deps/couchbase-cxx-client/core/management/search_index_json.hxx +27 -26
  304. package/deps/couchbase-cxx-client/core/mcbp/barrier_frame.hxx +4 -3
  305. package/deps/couchbase-cxx-client/core/mcbp/big_endian.cxx +22 -22
  306. package/deps/couchbase-cxx-client/core/mcbp/buffer_writer.cxx +22 -19
  307. package/deps/couchbase-cxx-client/core/mcbp/buffer_writer.hxx +9 -9
  308. package/deps/couchbase-cxx-client/core/mcbp/codec.cxx +419 -397
  309. package/deps/couchbase-cxx-client/core/mcbp/codec.hxx +14 -12
  310. package/deps/couchbase-cxx-client/core/mcbp/command_code.cxx +48 -48
  311. package/deps/couchbase-cxx-client/core/mcbp/completion_token.hxx +33 -33
  312. package/deps/couchbase-cxx-client/core/mcbp/datatype.hxx +3 -3
  313. package/deps/couchbase-cxx-client/core/mcbp/durability_level.hxx +8 -7
  314. package/deps/couchbase-cxx-client/core/mcbp/durability_level_frame.hxx +3 -2
  315. package/deps/couchbase-cxx-client/core/mcbp/durability_timeout_frame.hxx +4 -3
  316. package/deps/couchbase-cxx-client/core/mcbp/open_tracing_frame.hxx +3 -2
  317. package/deps/couchbase-cxx-client/core/mcbp/operation_consumer.cxx +3 -3
  318. package/deps/couchbase-cxx-client/core/mcbp/operation_consumer.hxx +9 -9
  319. package/deps/couchbase-cxx-client/core/mcbp/operation_queue.cxx +76 -70
  320. package/deps/couchbase-cxx-client/core/mcbp/operation_queue.hxx +18 -17
  321. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +65 -51
  322. package/deps/couchbase-cxx-client/core/mcbp/packet.hxx +25 -25
  323. package/deps/couchbase-cxx-client/core/mcbp/preserve_expiry_frame.hxx +4 -2
  324. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +3 -2
  325. package/deps/couchbase-cxx-client/core/mcbp/queue_request.cxx +65 -62
  326. package/deps/couchbase-cxx-client/core/mcbp/queue_request.hxx +54 -52
  327. package/deps/couchbase-cxx-client/core/mcbp/queue_request_connection_info.hxx +3 -3
  328. package/deps/couchbase-cxx-client/core/mcbp/queue_response.hxx +7 -7
  329. package/deps/couchbase-cxx-client/core/mcbp/read_units_frame.hxx +3 -2
  330. package/deps/couchbase-cxx-client/core/mcbp/server_duration.cxx +7 -7
  331. package/deps/couchbase-cxx-client/core/mcbp/server_duration_frame.hxx +3 -2
  332. package/deps/couchbase-cxx-client/core/mcbp/stream_id_frame.hxx +3 -2
  333. package/deps/couchbase-cxx-client/core/mcbp/unsupported_frame.hxx +4 -3
  334. package/deps/couchbase-cxx-client/core/mcbp/user_impersonation_frame.hxx +1 -1
  335. package/deps/couchbase-cxx-client/core/mcbp/write_units_frame.hxx +3 -2
  336. package/deps/couchbase-cxx-client/core/meta/features.hxx +58 -0
  337. package/deps/couchbase-cxx-client/core/meta/version.cxx +255 -204
  338. package/deps/couchbase-cxx-client/core/meta/version.hxx +31 -20
  339. package/deps/couchbase-cxx-client/core/metrics/logging_meter.cxx +160 -154
  340. package/deps/couchbase-cxx-client/core/metrics/logging_meter.hxx +16 -15
  341. package/deps/couchbase-cxx-client/core/metrics/logging_meter_options.hxx +1 -1
  342. package/deps/couchbase-cxx-client/core/metrics/noop_meter.hxx +14 -13
  343. package/deps/couchbase-cxx-client/core/mozilla_ca_bundle.hxx +2 -2
  344. package/deps/couchbase-cxx-client/core/n1ql_query_options.cxx +31 -31
  345. package/deps/couchbase-cxx-client/core/n1ql_query_options.hxx +22 -21
  346. package/deps/couchbase-cxx-client/core/operation_map.hxx +3 -3
  347. package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +187 -176
  348. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +79 -71
  349. package/deps/couchbase-cxx-client/core/operations/document_append.cxx +18 -15
  350. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +18 -16
  351. package/deps/couchbase-cxx-client/core/operations/document_decrement.cxx +26 -23
  352. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +24 -20
  353. package/deps/couchbase-cxx-client/core/operations/document_exists.cxx +23 -21
  354. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +25 -23
  355. package/deps/couchbase-cxx-client/core/operations/document_get.cxx +17 -15
  356. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +17 -15
  357. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +121 -92
  358. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.cxx +19 -16
  359. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +21 -17
  360. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.cxx +19 -16
  361. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +22 -18
  362. package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +111 -82
  363. package/deps/couchbase-cxx-client/core/operations/document_get_projected.cxx +193 -184
  364. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +25 -21
  365. package/deps/couchbase-cxx-client/core/operations/document_increment.cxx +26 -23
  366. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +24 -20
  367. package/deps/couchbase-cxx-client/core/operations/document_insert.cxx +23 -20
  368. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +20 -18
  369. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.cxx +80 -67
  370. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +31 -27
  371. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +187 -149
  372. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +190 -145
  373. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.cxx +98 -80
  374. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +38 -33
  375. package/deps/couchbase-cxx-client/core/operations/document_prepend.cxx +18 -15
  376. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +18 -16
  377. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +367 -356
  378. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +83 -79
  379. package/deps/couchbase-cxx-client/core/operations/document_remove.cxx +18 -15
  380. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +18 -16
  381. package/deps/couchbase-cxx-client/core/operations/document_replace.cxx +27 -24
  382. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +22 -20
  383. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +322 -308
  384. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +125 -121
  385. package/deps/couchbase-cxx-client/core/operations/document_touch.cxx +16 -14
  386. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +19 -17
  387. package/deps/couchbase-cxx-client/core/operations/document_unlock.cxx +16 -14
  388. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +19 -17
  389. package/deps/couchbase-cxx-client/core/operations/document_upsert.cxx +26 -23
  390. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +21 -19
  391. package/deps/couchbase-cxx-client/core/operations/document_view.cxx +169 -159
  392. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +68 -65
  393. package/deps/couchbase-cxx-client/core/operations/http_noop.cxx +38 -35
  394. package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +12 -10
  395. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +58 -56
  396. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +20 -17
  397. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +49 -44
  398. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +18 -15
  399. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.cxx +46 -43
  400. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +16 -13
  401. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +48 -43
  402. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +17 -14
  403. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +48 -43
  404. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +17 -14
  405. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +38 -35
  406. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +16 -14
  407. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.cxx +68 -66
  408. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +20 -17
  409. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +56 -51
  410. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +19 -16
  411. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.cxx +44 -42
  412. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +16 -13
  413. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +49 -43
  414. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +23 -20
  415. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.cxx +52 -51
  416. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +33 -30
  417. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +46 -42
  418. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +22 -19
  419. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +70 -67
  420. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +22 -19
  421. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +92 -85
  422. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +27 -24
  423. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.cxx +52 -51
  424. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +33 -30
  425. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_utils.hxx +6 -4
  426. package/deps/couchbase-cxx-client/core/operations/management/analytics_problem.hxx +2 -2
  427. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +158 -149
  428. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +14 -12
  429. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +118 -42
  430. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +47 -22
  431. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +19 -18
  432. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +13 -11
  433. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +25 -24
  434. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +13 -11
  435. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +24 -22
  436. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +14 -12
  437. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.cxx +25 -23
  438. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +13 -11
  439. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +112 -107
  440. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +15 -13
  441. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +22 -20
  442. package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +13 -11
  443. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.cxx +52 -50
  444. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +31 -29
  445. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.cxx +14 -12
  446. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +13 -11
  447. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +48 -46
  448. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +19 -16
  449. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +37 -35
  450. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +16 -14
  451. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +49 -47
  452. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +19 -16
  453. package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.cxx +11 -9
  454. package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +17 -13
  455. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +210 -198
  456. package/deps/couchbase-cxx-client/core/operations/management/error_utils.hxx +3 -1
  457. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +30 -28
  458. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +17 -14
  459. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +31 -29
  460. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +17 -14
  461. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.cxx +49 -43
  462. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +17 -14
  463. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +29 -27
  464. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +18 -15
  465. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.cxx +45 -39
  466. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +17 -14
  467. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +30 -28
  468. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +17 -14
  469. package/deps/couchbase-cxx-client/core/operations/management/eventing_problem.hxx +3 -3
  470. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +30 -28
  471. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +17 -14
  472. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +30 -28
  473. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +17 -14
  474. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +328 -318
  475. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +17 -14
  476. package/deps/couchbase-cxx-client/core/operations/management/freeform.cxx +23 -22
  477. package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +19 -17
  478. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +18 -17
  479. package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +13 -11
  480. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +25 -23
  481. package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +14 -12
  482. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +23 -22
  483. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +13 -11
  484. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.cxx +58 -55
  485. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +14 -12
  486. package/deps/couchbase-cxx-client/core/operations/management/query_index_build.cxx +53 -48
  487. package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +25 -22
  488. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +75 -67
  489. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +128 -122
  490. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +31 -28
  491. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +95 -93
  492. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +26 -24
  493. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +97 -93
  494. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +24 -21
  495. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.cxx +66 -62
  496. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +24 -22
  497. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.cxx +24 -22
  498. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +13 -11
  499. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +38 -36
  500. package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +15 -13
  501. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +33 -32
  502. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +15 -13
  503. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +27 -25
  504. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +14 -12
  505. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +12 -10
  506. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +13 -11
  507. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +72 -67
  508. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +20 -18
  509. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +62 -59
  510. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +19 -16
  511. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +62 -59
  512. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +19 -17
  513. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +62 -59
  514. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +19 -16
  515. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +58 -55
  516. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +18 -15
  517. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +59 -56
  518. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +18 -16
  519. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +51 -46
  520. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +18 -15
  521. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +66 -61
  522. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +19 -17
  523. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +38 -36
  524. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +17 -14
  525. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +98 -95
  526. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +20 -17
  527. package/deps/couchbase-cxx-client/core/operations/management/user_drop.cxx +18 -17
  528. package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +16 -12
  529. package/deps/couchbase-cxx-client/core/operations/management/user_get.cxx +25 -23
  530. package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +17 -13
  531. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.cxx +24 -22
  532. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +16 -12
  533. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.cxx +63 -60
  534. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +17 -13
  535. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +16 -12
  536. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +15 -13
  537. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +40 -35
  538. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +16 -14
  539. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +73 -69
  540. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +16 -13
  541. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +39 -35
  542. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +15 -12
  543. package/deps/couchbase-cxx-client/core/origin.cxx +259 -249
  544. package/deps/couchbase-cxx-client/core/origin.hxx +55 -49
  545. package/deps/couchbase-cxx-client/core/pending_operation.hxx +3 -3
  546. package/deps/couchbase-cxx-client/core/ping_collector.hxx +3 -3
  547. package/deps/couchbase-cxx-client/core/ping_options.hxx +30 -30
  548. package/deps/couchbase-cxx-client/core/ping_reporter.hxx +3 -3
  549. package/deps/couchbase-cxx-client/core/platform/backtrace.c +100 -91
  550. package/deps/couchbase-cxx-client/core/platform/base64.cc +135 -134
  551. package/deps/couchbase-cxx-client/core/platform/dirutils.cc +66 -63
  552. package/deps/couchbase-cxx-client/core/platform/random.cc +43 -42
  553. package/deps/couchbase-cxx-client/core/platform/random.h +4 -4
  554. package/deps/couchbase-cxx-client/core/platform/string_hex.cc +42 -40
  555. package/deps/couchbase-cxx-client/core/platform/terminate_handler.cc +54 -52
  556. package/deps/couchbase-cxx-client/core/platform/uuid.cc +47 -47
  557. package/deps/couchbase-cxx-client/core/protocol/client_opcode.hxx +336 -327
  558. package/deps/couchbase-cxx-client/core/protocol/client_opcode_fmt.hxx +291 -291
  559. package/deps/couchbase-cxx-client/core/protocol/client_request.cxx +13 -10
  560. package/deps/couchbase-cxx-client/core/protocol/client_request.hxx +133 -130
  561. package/deps/couchbase-cxx-client/core/protocol/client_response.cxx +40 -40
  562. package/deps/couchbase-cxx-client/core/protocol/client_response.hxx +153 -150
  563. package/deps/couchbase-cxx-client/core/protocol/cmd_append.cxx +24 -23
  564. package/deps/couchbase-cxx-client/core/protocol/cmd_append.hxx +65 -65
  565. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.cxx +25 -21
  566. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +33 -25
  567. package/deps/couchbase-cxx-client/core/protocol/cmd_decrement.cxx +38 -38
  568. package/deps/couchbase-cxx-client/core/protocol/cmd_decrement.hxx +87 -87
  569. package/deps/couchbase-cxx-client/core/protocol/cmd_get.cxx +17 -17
  570. package/deps/couchbase-cxx-client/core/protocol/cmd_get.hxx +59 -59
  571. package/deps/couchbase-cxx-client/core/protocol/cmd_get_and_lock.cxx +20 -20
  572. package/deps/couchbase-cxx-client/core/protocol/cmd_get_and_lock.hxx +72 -72
  573. package/deps/couchbase-cxx-client/core/protocol/cmd_get_and_touch.cxx +20 -20
  574. package/deps/couchbase-cxx-client/core/protocol/cmd_get_and_touch.hxx +72 -72
  575. package/deps/couchbase-cxx-client/core/protocol/cmd_get_cluster_config.cxx +46 -39
  576. package/deps/couchbase-cxx-client/core/protocol/cmd_get_cluster_config.hxx +57 -49
  577. package/deps/couchbase-cxx-client/core/protocol/cmd_get_collection_id.cxx +17 -17
  578. package/deps/couchbase-cxx-client/core/protocol/cmd_get_collection_id.hxx +59 -59
  579. package/deps/couchbase-cxx-client/core/protocol/cmd_get_collections_manifest.cxx +16 -14
  580. package/deps/couchbase-cxx-client/core/protocol/cmd_get_collections_manifest.hxx +39 -39
  581. package/deps/couchbase-cxx-client/core/protocol/cmd_get_error_map.cxx +18 -17
  582. package/deps/couchbase-cxx-client/core/protocol/cmd_get_error_map.hxx +62 -62
  583. package/deps/couchbase-cxx-client/core/protocol/cmd_get_meta.cxx +24 -23
  584. package/deps/couchbase-cxx-client/core/protocol/cmd_get_meta.hxx +81 -79
  585. package/deps/couchbase-cxx-client/core/protocol/cmd_get_replica.cxx +23 -23
  586. package/deps/couchbase-cxx-client/core/protocol/cmd_get_replica.hxx +44 -44
  587. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.cxx +28 -27
  588. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +106 -105
  589. package/deps/couchbase-cxx-client/core/protocol/cmd_increment.cxx +38 -38
  590. package/deps/couchbase-cxx-client/core/protocol/cmd_increment.hxx +87 -87
  591. package/deps/couchbase-cxx-client/core/protocol/cmd_info.hxx +3 -3
  592. package/deps/couchbase-cxx-client/core/protocol/cmd_insert.cxx +27 -27
  593. package/deps/couchbase-cxx-client/core/protocol/cmd_insert.hxx +81 -81
  594. package/deps/couchbase-cxx-client/core/protocol/cmd_lookup_in.cxx +54 -51
  595. package/deps/couchbase-cxx-client/core/protocol/cmd_lookup_in.hxx +90 -90
  596. package/deps/couchbase-cxx-client/core/protocol/cmd_lookup_in_replica.cxx +54 -51
  597. package/deps/couchbase-cxx-client/core/protocol/cmd_lookup_in_replica.hxx +88 -88
  598. package/deps/couchbase-cxx-client/core/protocol/cmd_mutate_in.cxx +105 -97
  599. package/deps/couchbase-cxx-client/core/protocol/cmd_mutate_in.hxx +161 -153
  600. package/deps/couchbase-cxx-client/core/protocol/cmd_noop.cxx +4 -4
  601. package/deps/couchbase-cxx-client/core/protocol/cmd_noop.hxx +32 -32
  602. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.cxx +36 -34
  603. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +89 -89
  604. package/deps/couchbase-cxx-client/core/protocol/cmd_prepend.cxx +22 -22
  605. package/deps/couchbase-cxx-client/core/protocol/cmd_prepend.hxx +63 -63
  606. package/deps/couchbase-cxx-client/core/protocol/cmd_remove.cxx +23 -23
  607. package/deps/couchbase-cxx-client/core/protocol/cmd_remove.hxx +54 -54
  608. package/deps/couchbase-cxx-client/core/protocol/cmd_replace.cxx +28 -28
  609. package/deps/couchbase-cxx-client/core/protocol/cmd_replace.hxx +88 -88
  610. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_auth.cxx +17 -15
  611. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_auth.hxx +56 -56
  612. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_list_mechs.cxx +24 -19
  613. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_list_mechs.hxx +39 -39
  614. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_step.cxx +17 -15
  615. package/deps/couchbase-cxx-client/core/protocol/cmd_sasl_step.hxx +56 -56
  616. package/deps/couchbase-cxx-client/core/protocol/cmd_select_bucket.cxx +6 -6
  617. package/deps/couchbase-cxx-client/core/protocol/cmd_select_bucket.hxx +36 -36
  618. package/deps/couchbase-cxx-client/core/protocol/cmd_touch.cxx +8 -8
  619. package/deps/couchbase-cxx-client/core/protocol/cmd_touch.hxx +38 -38
  620. package/deps/couchbase-cxx-client/core/protocol/cmd_unlock.cxx +5 -5
  621. package/deps/couchbase-cxx-client/core/protocol/cmd_unlock.hxx +36 -36
  622. package/deps/couchbase-cxx-client/core/protocol/cmd_upsert.cxx +28 -28
  623. package/deps/couchbase-cxx-client/core/protocol/cmd_upsert.hxx +83 -83
  624. package/deps/couchbase-cxx-client/core/protocol/datatype.hxx +19 -18
  625. package/deps/couchbase-cxx-client/core/protocol/frame_info_id.hxx +108 -103
  626. package/deps/couchbase-cxx-client/core/protocol/frame_info_id_fmt.hxx +45 -45
  627. package/deps/couchbase-cxx-client/core/protocol/frame_info_utils.cxx +24 -21
  628. package/deps/couchbase-cxx-client/core/protocol/frame_info_utils.hxx +3 -1
  629. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +211 -175
  630. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +93 -90
  631. package/deps/couchbase-cxx-client/core/protocol/magic.hxx +24 -24
  632. package/deps/couchbase-cxx-client/core/protocol/magic_fmt.hxx +30 -30
  633. package/deps/couchbase-cxx-client/core/protocol/server_opcode.hxx +11 -11
  634. package/deps/couchbase-cxx-client/core/protocol/server_opcode_fmt.hxx +18 -18
  635. package/deps/couchbase-cxx-client/core/protocol/server_request.hxx +90 -86
  636. package/deps/couchbase-cxx-client/core/protocol/status.cxx +138 -138
  637. package/deps/couchbase-cxx-client/core/protocol/status.hxx +86 -86
  638. package/deps/couchbase-cxx-client/core/query_context.hxx +44 -43
  639. package/deps/couchbase-cxx-client/core/range_scan_load_balancer.cxx +51 -50
  640. package/deps/couchbase-cxx-client/core/range_scan_load_balancer.hxx +26 -25
  641. package/deps/couchbase-cxx-client/core/range_scan_options.cxx +2 -2
  642. package/deps/couchbase-cxx-client/core/range_scan_options.hxx +62 -59
  643. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +515 -470
  644. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.hxx +23 -18
  645. package/deps/couchbase-cxx-client/core/range_scan_orchestrator_options.hxx +10 -10
  646. package/deps/couchbase-cxx-client/core/resource_units.hxx +2 -2
  647. package/deps/couchbase-cxx-client/core/response_handler.hxx +8 -8
  648. package/deps/couchbase-cxx-client/core/retry_orchestrator.cxx +27 -19
  649. package/deps/couchbase-cxx-client/core/retry_orchestrator.hxx +3 -2
  650. package/deps/couchbase-cxx-client/core/sasl/client.cc +22 -18
  651. package/deps/couchbase-cxx-client/core/sasl/client.h +66 -62
  652. package/deps/couchbase-cxx-client/core/sasl/context.cc +4 -4
  653. package/deps/couchbase-cxx-client/core/sasl/context.h +19 -19
  654. package/deps/couchbase-cxx-client/core/sasl/error.h +12 -1
  655. package/deps/couchbase-cxx-client/core/sasl/error_fmt.h +42 -42
  656. package/deps/couchbase-cxx-client/core/sasl/mechanism.cc +13 -10
  657. package/deps/couchbase-cxx-client/core/sasl/mechanism.h +8 -3
  658. package/deps/couchbase-cxx-client/core/sasl/plain/plain.cc +8 -8
  659. package/deps/couchbase-cxx-client/core/sasl/plain/plain.h +25 -24
  660. package/deps/couchbase-cxx-client/core/sasl/scram-sha/scram-sha.cc +225 -218
  661. package/deps/couchbase-cxx-client/core/sasl/scram-sha/scram-sha.h +133 -115
  662. package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.cc +20 -20
  663. package/deps/couchbase-cxx-client/core/scan_result.cxx +38 -38
  664. package/deps/couchbase-cxx-client/core/scan_result.hxx +16 -16
  665. package/deps/couchbase-cxx-client/core/search_highlight_style.hxx +4 -1
  666. package/deps/couchbase-cxx-client/core/search_query_options.cxx +21 -21
  667. package/deps/couchbase-cxx-client/core/search_query_options.hxx +19 -18
  668. package/deps/couchbase-cxx-client/core/search_scan_consistency.hxx +3 -1
  669. package/deps/couchbase-cxx-client/core/seed_config.cxx +10 -7
  670. package/deps/couchbase-cxx-client/core/seed_config.hxx +8 -8
  671. package/deps/couchbase-cxx-client/core/service_type.hxx +7 -7
  672. package/deps/couchbase-cxx-client/core/service_type_fmt.hxx +33 -33
  673. package/deps/couchbase-cxx-client/core/stats_options.hxx +13 -13
  674. package/deps/couchbase-cxx-client/core/subdoc_options.hxx +60 -58
  675. package/deps/couchbase-cxx-client/core/tls_verify_mode.hxx +2 -2
  676. package/deps/couchbase-cxx-client/core/topology/capabilities.hxx +83 -83
  677. package/deps/couchbase-cxx-client/core/topology/capabilities_fmt.hxx +111 -111
  678. package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +14 -14
  679. package/deps/couchbase-cxx-client/core/topology/collections_manifest_fmt.hxx +23 -21
  680. package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +26 -25
  681. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +213 -192
  682. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +104 -91
  683. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +131 -128
  684. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +276 -242
  685. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +5 -5
  686. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +65 -60
  687. package/deps/couchbase-cxx-client/core/tracing/constants.hxx +153 -153
  688. package/deps/couchbase-cxx-client/core/tracing/noop_tracer.hxx +29 -28
  689. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_options.hxx +30 -30
  690. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.cxx +354 -344
  691. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.hxx +12 -12
  692. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +153 -33
  693. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +30 -118
  694. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +8 -2
  695. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +163 -127
  696. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +358 -334
  697. package/deps/couchbase-cxx-client/core/transactions/atr_ids.cxx +270 -185
  698. package/deps/couchbase-cxx-client/core/transactions/atr_ids.hxx +4 -4
  699. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +9 -5
  700. package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +194 -154
  701. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +3278 -2159
  702. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +446 -573
  703. package/deps/couchbase-cxx-client/core/transactions/attempt_context_testing_hooks.cxx +15 -10
  704. package/deps/couchbase-cxx-client/core/transactions/attempt_context_testing_hooks.hxx +58 -49
  705. package/deps/couchbase-cxx-client/core/transactions/attempt_state.hxx +72 -72
  706. package/deps/couchbase-cxx-client/core/transactions/binary.cxx +3 -3
  707. package/deps/couchbase-cxx-client/core/transactions/cleanup_testing_hooks.cxx +2 -2
  708. package/deps/couchbase-cxx-client/core/transactions/cleanup_testing_hooks.hxx +28 -24
  709. package/deps/couchbase-cxx-client/core/transactions/document_metadata.hxx +68 -68
  710. package/deps/couchbase-cxx-client/core/transactions/durability_level.hxx +53 -53
  711. package/deps/couchbase-cxx-client/core/transactions/error_class.hxx +12 -12
  712. package/deps/couchbase-cxx-client/core/transactions/error_list.hxx +22 -22
  713. package/deps/couchbase-cxx-client/core/transactions/exceptions.cxx +167 -114
  714. package/deps/couchbase-cxx-client/core/transactions/exceptions.hxx +170 -139
  715. package/deps/couchbase-cxx-client/core/transactions/exceptions_fmt.hxx +105 -0
  716. package/deps/couchbase-cxx-client/core/transactions/forward_compat.cxx +220 -0
  717. package/deps/couchbase-cxx-client/core/transactions/forward_compat.hxx +63 -207
  718. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +110 -102
  719. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +144 -144
  720. package/deps/couchbase-cxx-client/core/transactions/internal/client_record.hxx +53 -50
  721. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +5 -5
  722. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +38 -35
  723. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +17 -16
  724. package/deps/couchbase-cxx-client/core/transactions/internal/exceptions_internal.hxx +238 -281
  725. package/deps/couchbase-cxx-client/core/transactions/internal/exceptions_internal_fmt.hxx +103 -0
  726. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +52 -29
  727. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_attempt.hxx +3 -3
  728. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +136 -120
  729. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_fields.hxx +2 -1
  730. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +127 -122
  731. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +244 -219
  732. package/deps/couchbase-cxx-client/core/transactions/result.cxx +41 -40
  733. package/deps/couchbase-cxx-client/core/transactions/result.hxx +143 -141
  734. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +21 -20
  735. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +759 -627
  736. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.hxx +175 -156
  737. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +231 -179
  738. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.cxx +185 -198
  739. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +207 -222
  740. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +15 -11
  741. package/deps/couchbase-cxx-client/core/transactions/transaction_links.cxx +11 -7
  742. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +222 -201
  743. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +44 -41
  744. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +167 -125
  745. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +491 -424
  746. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +25 -19
  747. package/deps/couchbase-cxx-client/core/transactions/uid_generator.cxx +3 -3
  748. package/deps/couchbase-cxx-client/core/transactions/uid_generator.hxx +2 -2
  749. package/deps/couchbase-cxx-client/core/transactions/utils.cxx +82 -69
  750. package/deps/couchbase-cxx-client/core/transactions/waitable_op_list.hxx +154 -140
  751. package/deps/couchbase-cxx-client/core/transactions.hxx +184 -180
  752. package/deps/couchbase-cxx-client/core/utils/binary.cxx +3 -3
  753. package/deps/couchbase-cxx-client/core/utils/binary.hxx +19 -15
  754. package/deps/couchbase-cxx-client/core/utils/byteswap.hxx +17 -17
  755. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +395 -328
  756. package/deps/couchbase-cxx-client/core/utils/connection_string.hxx +37 -36
  757. package/deps/couchbase-cxx-client/core/utils/crc32.hxx +42 -34
  758. package/deps/couchbase-cxx-client/core/utils/duration_parser.cxx +142 -133
  759. package/deps/couchbase-cxx-client/core/utils/duration_parser.hxx +9 -9
  760. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +24 -24
  761. package/deps/couchbase-cxx-client/core/utils/json.cxx +234 -228
  762. package/deps/couchbase-cxx-client/core/utils/json.hxx +12 -12
  763. package/deps/couchbase-cxx-client/core/utils/json_stream_control.hxx +8 -8
  764. package/deps/couchbase-cxx-client/core/utils/json_streaming_lexer.cxx +288 -263
  765. package/deps/couchbase-cxx-client/core/utils/json_streaming_lexer.hxx +20 -17
  766. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +22 -21
  767. package/deps/couchbase-cxx-client/core/utils/movable_function.hxx +78 -76
  768. package/deps/couchbase-cxx-client/core/utils/mutation_token.cxx +7 -3
  769. package/deps/couchbase-cxx-client/core/utils/mutation_token.hxx +3 -1
  770. package/deps/couchbase-cxx-client/core/utils/name_codec.hxx +13 -13
  771. package/deps/couchbase-cxx-client/core/utils/split_string.cxx +9 -9
  772. package/deps/couchbase-cxx-client/core/utils/split_string.hxx +2 -2
  773. package/deps/couchbase-cxx-client/core/utils/unsigned_leb128.hxx +92 -88
  774. package/deps/couchbase-cxx-client/core/utils/url_codec.cxx +301 -297
  775. package/deps/couchbase-cxx-client/core/utils/url_codec.hxx +35 -35
  776. package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +4 -1
  777. package/deps/couchbase-cxx-client/core/view_on_error.hxx +4 -3
  778. package/deps/couchbase-cxx-client/core/view_query_options.cxx +21 -21
  779. package/deps/couchbase-cxx-client/core/view_query_options.hxx +23 -22
  780. package/deps/couchbase-cxx-client/core/view_scan_consistency.hxx +3 -3
  781. package/deps/couchbase-cxx-client/core/view_sort_order.hxx +4 -1
  782. package/deps/couchbase-cxx-client/core/wait_until_ready_options.hxx +11 -10
  783. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +11 -11
  784. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +423 -405
  785. package/deps/couchbase-cxx-client/couchbase/analytics_meta_data.hxx +105 -105
  786. package/deps/couchbase-cxx-client/couchbase/analytics_metrics.hxx +120 -118
  787. package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +318 -292
  788. package/deps/couchbase-cxx-client/couchbase/analytics_result.hxx +56 -55
  789. package/deps/couchbase-cxx-client/couchbase/analytics_scan_consistency.hxx +24 -21
  790. package/deps/couchbase-cxx-client/couchbase/analytics_status.hxx +10 -10
  791. package/deps/couchbase-cxx-client/couchbase/analytics_warning.hxx +44 -43
  792. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +9 -9
  793. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +51 -47
  794. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +75 -69
  795. package/deps/couchbase-cxx-client/couchbase/best_effort_retry_strategy.hxx +12 -10
  796. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +213 -183
  797. package/deps/couchbase-cxx-client/couchbase/boolean_field_query.hxx +38 -38
  798. package/deps/couchbase-cxx-client/couchbase/boolean_query.hxx +166 -157
  799. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +69 -68
  800. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +97 -88
  801. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +22 -21
  802. package/deps/couchbase-cxx-client/couchbase/cas.hxx +74 -73
  803. package/deps/couchbase-cxx-client/couchbase/certificate_authenticator.hxx +10 -10
  804. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +266 -310
  805. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +235 -241
  806. package/deps/couchbase-cxx-client/couchbase/codec/binary_noop_serializer.hxx +11 -11
  807. package/deps/couchbase-cxx-client/couchbase/codec/codec_flags.hxx +39 -35
  808. package/deps/couchbase-cxx-client/couchbase/codec/encoded_value.hxx +15 -2
  809. package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +17 -15
  810. package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +19 -17
  811. package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +31 -24
  812. package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +20 -18
  813. package/deps/couchbase-cxx-client/couchbase/codec/tao_json_serializer.hxx +38 -30
  814. package/deps/couchbase-cxx-client/couchbase/collection.hxx +1007 -902
  815. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +115 -107
  816. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +200 -188
  817. package/deps/couchbase-cxx-client/couchbase/common_durability_options.hxx +68 -62
  818. package/deps/couchbase-cxx-client/couchbase/common_options.hxx +67 -67
  819. package/deps/couchbase-cxx-client/couchbase/compression_options.hxx +33 -33
  820. package/deps/couchbase-cxx-client/couchbase/configuration_profile.hxx +12 -11
  821. package/deps/couchbase-cxx-client/couchbase/configuration_profiles_registry.hxx +24 -22
  822. package/deps/couchbase-cxx-client/couchbase/conjunction_query.hxx +47 -45
  823. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +74 -72
  824. package/deps/couchbase-cxx-client/couchbase/counter_result.hxx +32 -32
  825. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +9 -10
  826. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +35 -34
  827. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +76 -76
  828. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +44 -44
  829. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +60 -60
  830. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +25 -25
  831. package/deps/couchbase-cxx-client/couchbase/create_primary_query_index_options.hxx +95 -94
  832. package/deps/couchbase-cxx-client/couchbase/create_query_index_options.hxx +97 -96
  833. package/deps/couchbase-cxx-client/couchbase/create_scope_options.hxx +9 -9
  834. package/deps/couchbase-cxx-client/couchbase/date_range.hxx +29 -27
  835. package/deps/couchbase-cxx-client/couchbase/date_range_facet.hxx +20 -20
  836. package/deps/couchbase-cxx-client/couchbase/date_range_facet_result.hxx +14 -14
  837. package/deps/couchbase-cxx-client/couchbase/date_range_query.hxx +219 -205
  838. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +93 -91
  839. package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +42 -41
  840. package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +82 -83
  841. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +11 -10
  842. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +62 -62
  843. package/deps/couchbase-cxx-client/couchbase/disjunction_query.hxx +61 -60
  844. package/deps/couchbase-cxx-client/couchbase/dns_options.hxx +30 -30
  845. package/deps/couchbase-cxx-client/couchbase/doc_id_query.hxx +69 -69
  846. package/deps/couchbase-cxx-client/couchbase/drop_bucket_options.hxx +9 -9
  847. package/deps/couchbase-cxx-client/couchbase/drop_collection_options.hxx +9 -9
  848. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +60 -60
  849. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +44 -44
  850. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +60 -60
  851. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +25 -25
  852. package/deps/couchbase-cxx-client/couchbase/drop_primary_query_index_options.hxx +58 -58
  853. package/deps/couchbase-cxx-client/couchbase/drop_query_index_options.hxx +44 -44
  854. package/deps/couchbase-cxx-client/couchbase/drop_scope_options.hxx +9 -9
  855. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +9 -9
  856. package/deps/couchbase-cxx-client/couchbase/durability_level.hxx +32 -29
  857. package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +171 -171
  858. package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +166 -169
  859. package/deps/couchbase-cxx-client/couchbase/error.hxx +51 -0
  860. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +975 -940
  861. package/deps/couchbase-cxx-client/couchbase/error_context.hxx +19 -152
  862. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +25 -24
  863. package/deps/couchbase-cxx-client/couchbase/exists_result.hxx +32 -32
  864. package/deps/couchbase-cxx-client/couchbase/fail_fast_retry_strategy.hxx +4 -4
  865. package/deps/couchbase-cxx-client/couchbase/flush_bucket_options.hxx +9 -9
  866. package/deps/couchbase-cxx-client/couchbase/fmt/analytics_scan_consistency.hxx +18 -18
  867. package/deps/couchbase-cxx-client/couchbase/fmt/analytics_status.hxx +42 -42
  868. package/deps/couchbase-cxx-client/couchbase/fmt/cas.hxx +10 -10
  869. package/deps/couchbase-cxx-client/couchbase/fmt/durability_level.hxx +24 -24
  870. package/deps/couchbase-cxx-client/couchbase/fmt/error.hxx +53 -0
  871. package/deps/couchbase-cxx-client/couchbase/fmt/error_context.hxx +43 -0
  872. package/deps/couchbase-cxx-client/couchbase/fmt/mutation_token.hxx +15 -11
  873. package/deps/couchbase-cxx-client/couchbase/fmt/query_profile.hxx +21 -21
  874. package/deps/couchbase-cxx-client/couchbase/fmt/query_scan_consistency.hxx +18 -18
  875. package/deps/couchbase-cxx-client/couchbase/fmt/query_status.hxx +42 -42
  876. package/deps/couchbase-cxx-client/couchbase/fmt/retry_reason.hxx +75 -75
  877. package/deps/couchbase-cxx-client/couchbase/fmt/search_scan_consistency.hxx +15 -15
  878. package/deps/couchbase-cxx-client/couchbase/fmt/tls_verify_mode.hxx +18 -18
  879. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +15 -11
  880. package/deps/couchbase-cxx-client/couchbase/fork_event.hxx +12 -12
  881. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +9 -9
  882. package/deps/couchbase-cxx-client/couchbase/geo_bounding_box_query.hxx +71 -64
  883. package/deps/couchbase-cxx-client/couchbase/geo_distance_query.hxx +73 -66
  884. package/deps/couchbase-cxx-client/couchbase/geo_point.hxx +2 -2
  885. package/deps/couchbase-cxx-client/couchbase/geo_polygon_query.hxx +40 -39
  886. package/deps/couchbase-cxx-client/couchbase/get_all_buckets_options.hxx +9 -9
  887. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +25 -25
  888. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +26 -25
  889. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +27 -25
  890. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +49 -26
  891. package/deps/couchbase-cxx-client/couchbase/get_all_scopes_options.hxx +9 -9
  892. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +9 -9
  893. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +25 -24
  894. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +25 -24
  895. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +49 -26
  896. package/deps/couchbase-cxx-client/couchbase/get_bucket_options.hxx +9 -9
  897. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +9 -9
  898. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +74 -74
  899. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +63 -60
  900. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +30 -28
  901. package/deps/couchbase-cxx-client/couchbase/get_replica_result.hxx +79 -75
  902. package/deps/couchbase-cxx-client/couchbase/get_result.hxx +86 -80
  903. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +9 -9
  904. package/deps/couchbase-cxx-client/couchbase/highlight_style.hxx +14 -14
  905. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +94 -91
  906. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +62 -59
  907. package/deps/couchbase-cxx-client/couchbase/ip_protocol.hxx +3 -3
  908. package/deps/couchbase-cxx-client/couchbase/logger.hxx +51 -0
  909. package/deps/couchbase-cxx-client/couchbase/lookup_in_all_replicas_options.hxx +54 -43
  910. package/deps/couchbase-cxx-client/couchbase/lookup_in_any_replica_options.hxx +54 -44
  911. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +40 -40
  912. package/deps/couchbase-cxx-client/couchbase/lookup_in_replica_result.hxx +38 -35
  913. package/deps/couchbase-cxx-client/couchbase/lookup_in_result.hxx +222 -216
  914. package/deps/couchbase-cxx-client/couchbase/lookup_in_specs.hxx +101 -101
  915. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +16 -16
  916. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +16 -16
  917. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +193 -189
  918. package/deps/couchbase-cxx-client/couchbase/management/bucket_settings.hxx +91 -75
  919. package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +4 -4
  920. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +10 -10
  921. package/deps/couchbase-cxx-client/couchbase/management/scope_spec.hxx +2 -2
  922. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +9 -9
  923. package/deps/couchbase-cxx-client/couchbase/match_all_query.hxx +10 -9
  924. package/deps/couchbase-cxx-client/couchbase/match_none_query.hxx +10 -9
  925. package/deps/couchbase-cxx-client/couchbase/match_operator.hxx +15 -14
  926. package/deps/couchbase-cxx-client/couchbase/match_phrase_query.hxx +70 -65
  927. package/deps/couchbase-cxx-client/couchbase/match_query.hxx +115 -114
  928. package/deps/couchbase-cxx-client/couchbase/metrics/meter.hxx +33 -30
  929. package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +86 -74
  930. package/deps/couchbase-cxx-client/couchbase/metrics_options.hxx +34 -34
  931. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +160 -149
  932. package/deps/couchbase-cxx-client/couchbase/mutate_in_result.hxx +130 -123
  933. package/deps/couchbase-cxx-client/couchbase/mutate_in_specs.hxx +473 -454
  934. package/deps/couchbase-cxx-client/couchbase/mutation_result.hxx +32 -32
  935. package/deps/couchbase-cxx-client/couchbase/mutation_state.hxx +35 -34
  936. package/deps/couchbase-cxx-client/couchbase/mutation_token.hxx +78 -78
  937. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +101 -72
  938. package/deps/couchbase-cxx-client/couchbase/numeric_range.hxx +26 -26
  939. package/deps/couchbase-cxx-client/couchbase/numeric_range_facet.hxx +20 -20
  940. package/deps/couchbase-cxx-client/couchbase/numeric_range_facet_result.hxx +14 -14
  941. package/deps/couchbase-cxx-client/couchbase/numeric_range_query.hxx +97 -95
  942. package/deps/couchbase-cxx-client/couchbase/password_authenticator.hxx +17 -17
  943. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +11 -10
  944. package/deps/couchbase-cxx-client/couchbase/persist_to.hxx +45 -44
  945. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +69 -65
  946. package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +55 -54
  947. package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +79 -77
  948. package/deps/couchbase-cxx-client/couchbase/prefix_query.hxx +43 -40
  949. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +51 -47
  950. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +207 -199
  951. package/deps/couchbase-cxx-client/couchbase/query_meta_data.hxx +120 -120
  952. package/deps/couchbase-cxx-client/couchbase/query_metrics.hxx +135 -133
  953. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +518 -493
  954. package/deps/couchbase-cxx-client/couchbase/query_profile.hxx +29 -26
  955. package/deps/couchbase-cxx-client/couchbase/query_result.hxx +56 -55
  956. package/deps/couchbase-cxx-client/couchbase/query_scan_consistency.hxx +24 -21
  957. package/deps/couchbase-cxx-client/couchbase/query_status.hxx +10 -10
  958. package/deps/couchbase-cxx-client/couchbase/query_string_query.hxx +34 -29
  959. package/deps/couchbase-cxx-client/couchbase/query_warning.hxx +75 -71
  960. package/deps/couchbase-cxx-client/couchbase/read_preference.hxx +58 -0
  961. package/deps/couchbase-cxx-client/couchbase/regexp_query.hxx +40 -39
  962. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +51 -47
  963. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +25 -25
  964. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +112 -104
  965. package/deps/couchbase-cxx-client/couchbase/replicate_to.hxx +28 -28
  966. package/deps/couchbase-cxx-client/couchbase/result.hxx +28 -28
  967. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +11 -10
  968. package/deps/couchbase-cxx-client/couchbase/retry_action.hxx +10 -10
  969. package/deps/couchbase-cxx-client/couchbase/retry_reason.hxx +53 -51
  970. package/deps/couchbase-cxx-client/couchbase/retry_request.hxx +7 -7
  971. package/deps/couchbase-cxx-client/couchbase/retry_strategy.hxx +4 -4
  972. package/deps/couchbase-cxx-client/couchbase/scan_options.hxx +114 -108
  973. package/deps/couchbase-cxx-client/couchbase/scan_result.hxx +97 -96
  974. package/deps/couchbase-cxx-client/couchbase/scan_result_item.hxx +120 -118
  975. package/deps/couchbase-cxx-client/couchbase/scan_type.hxx +237 -232
  976. package/deps/couchbase-cxx-client/couchbase/scope.hxx +164 -157
  977. package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +263 -238
  978. package/deps/couchbase-cxx-client/couchbase/search_date_range.hxx +32 -29
  979. package/deps/couchbase-cxx-client/couchbase/search_facet.hxx +25 -25
  980. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +11 -11
  981. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +11 -1
  982. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +261 -238
  983. package/deps/couchbase-cxx-client/couchbase/search_meta_data.hxx +37 -37
  984. package/deps/couchbase-cxx-client/couchbase/search_metrics.hxx +84 -83
  985. package/deps/couchbase-cxx-client/couchbase/search_numeric_range.hxx +32 -32
  986. package/deps/couchbase-cxx-client/couchbase/search_options.hxx +449 -435
  987. package/deps/couchbase-cxx-client/couchbase/search_query.hxx +32 -30
  988. package/deps/couchbase-cxx-client/couchbase/search_request.hxx +69 -68
  989. package/deps/couchbase-cxx-client/couchbase/search_result.hxx +29 -26
  990. package/deps/couchbase-cxx-client/couchbase/search_row.hxx +52 -52
  991. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +20 -20
  992. package/deps/couchbase-cxx-client/couchbase/search_row_locations.hxx +39 -38
  993. package/deps/couchbase-cxx-client/couchbase/search_scan_consistency.hxx +11 -10
  994. package/deps/couchbase-cxx-client/couchbase/search_sort.hxx +20 -20
  995. package/deps/couchbase-cxx-client/couchbase/search_sort_field.hxx +77 -71
  996. package/deps/couchbase-cxx-client/couchbase/search_sort_field_missing.hxx +2 -2
  997. package/deps/couchbase-cxx-client/couchbase/search_sort_field_mode.hxx +3 -3
  998. package/deps/couchbase-cxx-client/couchbase/search_sort_field_type.hxx +4 -4
  999. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +41 -41
  1000. package/deps/couchbase-cxx-client/couchbase/search_sort_id.hxx +23 -23
  1001. package/deps/couchbase-cxx-client/couchbase/search_sort_score.hxx +23 -23
  1002. package/deps/couchbase-cxx-client/couchbase/search_term_range.hxx +17 -17
  1003. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +50 -50
  1004. package/deps/couchbase-cxx-client/couchbase/service_type.hxx +34 -34
  1005. package/deps/couchbase-cxx-client/couchbase/store_semantics.hxx +28 -28
  1006. package/deps/couchbase-cxx-client/couchbase/subdoc/array_add_unique.hxx +54 -54
  1007. package/deps/couchbase-cxx-client/couchbase/subdoc/array_append.hxx +40 -40
  1008. package/deps/couchbase-cxx-client/couchbase/subdoc/array_insert.hxx +41 -41
  1009. package/deps/couchbase-cxx-client/couchbase/subdoc/array_prepend.hxx +41 -41
  1010. package/deps/couchbase-cxx-client/couchbase/subdoc/count.hxx +24 -24
  1011. package/deps/couchbase-cxx-client/couchbase/subdoc/counter.hxx +41 -41
  1012. package/deps/couchbase-cxx-client/couchbase/subdoc/exists.hxx +24 -24
  1013. package/deps/couchbase-cxx-client/couchbase/subdoc/get.hxx +45 -29
  1014. package/deps/couchbase-cxx-client/couchbase/subdoc/insert.hxx +70 -54
  1015. package/deps/couchbase-cxx-client/couchbase/subdoc/lookup_in_macro.hxx +13 -12
  1016. package/deps/couchbase-cxx-client/couchbase/subdoc/mutate_in_macro.hxx +7 -2
  1017. package/deps/couchbase-cxx-client/couchbase/subdoc/remove.hxx +24 -24
  1018. package/deps/couchbase-cxx-client/couchbase/subdoc/replace.hxx +55 -39
  1019. package/deps/couchbase-cxx-client/couchbase/subdoc/upsert.hxx +70 -54
  1020. package/deps/couchbase-cxx-client/couchbase/term_facet.hxx +16 -16
  1021. package/deps/couchbase-cxx-client/couchbase/term_facet_result.hxx +14 -14
  1022. package/deps/couchbase-cxx-client/couchbase/term_query.hxx +107 -104
  1023. package/deps/couchbase-cxx-client/couchbase/term_range_query.hxx +99 -96
  1024. package/deps/couchbase-cxx-client/couchbase/timeout_options.hxx +118 -112
  1025. package/deps/couchbase-cxx-client/couchbase/tls_verify_mode.hxx +2 -2
  1026. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +25 -24
  1027. package/deps/couchbase-cxx-client/couchbase/tracing/otel_tracer.hxx +45 -44
  1028. package/deps/couchbase-cxx-client/couchbase/tracing/request_span.hxx +34 -34
  1029. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +27 -25
  1030. package/deps/couchbase-cxx-client/couchbase/tracing_options.hxx +147 -142
  1031. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +149 -115
  1032. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +146 -95
  1033. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_result.hxx +52 -80
  1034. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +33 -29
  1035. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +101 -96
  1036. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +228 -223
  1037. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_result.hxx +11 -12
  1038. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_result.hxx +2 -3
  1039. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +105 -104
  1040. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +191 -187
  1041. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_query_config.hxx +32 -32
  1042. package/deps/couchbase-cxx-client/couchbase/transactions.hxx +56 -37
  1043. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +11 -10
  1044. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +25 -24
  1045. package/deps/couchbase-cxx-client/couchbase/update_bucket_options.hxx +9 -9
  1046. package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +35 -34
  1047. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +85 -80
  1048. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +9 -9
  1049. package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +82 -62
  1050. package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +51 -47
  1051. package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +45 -41
  1052. package/deps/couchbase-cxx-client/couchbase/wan_development_configuration_profile.hxx +13 -13
  1053. package/deps/couchbase-cxx-client/couchbase/watch_query_indexes_options.hxx +41 -41
  1054. package/deps/couchbase-cxx-client/couchbase/wildcard_query.hxx +42 -41
  1055. package/deps/couchbase-cxx-client/third_party/expected/include/tl/expected.hpp +1746 -1584
  1056. package/deps/couchbase-cxx-client/third_party/jsonsl/jsonsl.c +2664 -2638
  1057. package/deps/couchbase-cxx-client/third_party/jsonsl/jsonsl.h +359 -342
  1058. package/dist/binding.d.ts +39 -4
  1059. package/dist/binding.js +4 -1
  1060. package/dist/collection.js +0 -1
  1061. package/dist/diagnosticstypes.js +2 -2
  1062. package/dist/searchtypes.d.ts +0 -4
  1063. package/dist/searchtypes.js +0 -4
  1064. package/dist/transactions.d.ts +1 -0
  1065. package/dist/transactions.js +12 -2
  1066. package/dist/vectorsearch.d.ts +4 -19
  1067. package/dist/vectorsearch.js +24 -19
  1068. package/package.json +29 -28
  1069. package/src/constants.cpp +111 -75
  1070. package/src/jstocbpp_autogen.hpp +146 -15
  1071. package/src/jstocbpp_basic.hpp +23 -0
  1072. package/src/jstocbpp_errors.hpp +9 -9
  1073. package/src/jstocbpp_transactions.hpp +17 -12
  1074. package/src/transaction.cpp +10 -5
  1075. package/tools/gen-bindings-js.js +1 -0
  1076. package/tools/gen-bindings-json.py +5 -2
  1077. package/deps/couchbase-cxx-cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/COPYING +0 -4
  1078. package/deps/couchbase-cxx-cache/asio/41f31469d0dd420500b334dc8c2fd3ffe7320d8e/asio/asio/README +0 -4
  1079. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/crypto/obj/README +0 -15
  1080. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/crypto/perlasm/readme +0 -100
  1081. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/pki/testdata/nist-pkits/README.chromium +0 -19
  1082. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/pki/testdata/ssl/certificates/README +0 -318
  1083. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/pki/testdata/verify_certificate_chain_unittest/README +0 -87
  1084. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/pki/testdata/verify_signed_data_unittest/README +0 -35
  1085. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/third_party/fiat/README.chromium +0 -11
  1086. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/util/bot/README +0 -3
  1087. package/deps/couchbase-cxx-cache/fmt/d3c862243fcf1c41b4c09903f35479bd42f135b7/fmt/support/README +0 -4
  1088. package/deps/couchbase-cxx-client/core/impl/internal_manager_error_context.cxx +0 -113
  1089. package/deps/couchbase-cxx-client/core/impl/internal_manager_error_context.hxx +0 -60
  1090. package/deps/couchbase-cxx-client/core/impl/manager_error_context.cxx +0 -100
  1091. package/deps/couchbase-cxx-client/core/impl/search_error_context.cxx +0 -147
  1092. package/deps/couchbase-cxx-client/couchbase/analytics_error_context.hxx +0 -143
  1093. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +0 -100
  1094. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +0 -269
  1095. package/deps/couchbase-cxx-client/couchbase/key_value_error_context.hxx +0 -229
  1096. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +0 -136
  1097. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_info.hxx +0 -138
  1098. package/deps/couchbase-cxx-client/couchbase/key_value_extended_error_info.hxx +0 -86
  1099. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +0 -109
  1100. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -111
  1101. package/deps/couchbase-cxx-client/couchbase/query_error_context.hxx +0 -145
  1102. package/deps/couchbase-cxx-client/couchbase/search_error_context.hxx +0 -138
  1103. package/deps/couchbase-cxx-client/couchbase/subdocument_error_context.hxx +0 -147
  1104. package/deps/couchbase-cxx-client/couchbase/transaction_op_error_context.hxx +0 -76
@@ -20,6 +20,7 @@
20
20
  #include <couchbase/binary_collection.hxx>
21
21
  #include <couchbase/codec/default_json_transcoder.hxx>
22
22
  #include <couchbase/collection_query_index_manager.hxx>
23
+ #include <couchbase/error.hxx>
23
24
  #include <couchbase/exists_options.hxx>
24
25
  #include <couchbase/expiry.hxx>
25
26
  #include <couchbase/get_all_replicas_options.hxx>
@@ -67,908 +68,1012 @@ class collection_impl;
67
68
  */
68
69
  class collection
69
70
  {
70
- public:
71
- /**
72
- * Constant for the name of the default collection in the bucket.
73
- *
74
- * @since 1.0.0
75
- * @committed
76
- */
77
- static constexpr auto default_name{ "_default" };
78
-
79
- /**
80
- * Returns name of the bucket where the collection is defined.
81
- *
82
- * @return name of the bucket
83
- *
84
- * @since 1.0.0
85
- * @committed
86
- */
87
- [[nodiscard]] auto bucket_name() const -> const std::string&;
88
-
89
- /**
90
- * Returns name of the scope where the collection is defined.
91
- *
92
- * @return name of the scope
93
- *
94
- * @since 1.0.0
95
- * @committed
96
- */
97
- [[nodiscard]] auto scope_name() const -> const std::string&;
98
-
99
- /**
100
- * Returns name of the collection.
101
- *
102
- * @return name of the collection
103
- *
104
- * @since 1.0.0
105
- * @committed
106
- */
107
- [[nodiscard]] auto name() const -> const std::string&;
108
-
109
- /**
110
- * Provides access to the binary APIs, not used for JSON documents.
111
- *
112
- * @return the requested collection if successful.
113
- *
114
- * @since 1.0.0
115
- * @committed
116
- */
117
- [[nodiscard]] auto binary() const -> binary_collection;
118
-
119
- /**
120
- * Fetches the full document from this collection.
121
- *
122
- * @param document_id the document id which is used to uniquely identify it.
123
- * @param options options to customize the get request.
124
- * @param handler the handler that implements @ref get_handler
125
- *
126
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
127
- * @exception errc::common::ambiguous_timeout
128
- * @exception errc::common::unambiguous_timeout
129
- *
130
- * @since 1.0.0
131
- * @committed
132
- */
133
- void get(std::string document_id, const get_options& options, get_handler&& handler) const;
134
-
135
- /**
136
- * Fetches the full document from this collection.
137
- *
138
- * @param document_id the document id which is used to uniquely identify it.
139
- * @param options options to customize the get request.
140
- * @return future object that carries result of the operation
141
- *
142
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
143
- * @exception errc::common::ambiguous_timeout
144
- * @exception errc::common::unambiguous_timeout
145
- *
146
- * @since 1.0.0
147
- * @committed
148
- */
149
- [[nodiscard]] auto get(std::string document_id, const get_options& options = {}) const
150
- -> std::future<std::pair<key_value_error_context, get_result>>;
151
-
152
- /**
153
- * Fetches a full document and resets its expiration time to the value provided.
154
- *
155
- * @param document_id the document id which is used to uniquely identify it.
156
- * @param duration the new expiration time for the document.
157
- * @param options custom options to change the default behavior.
158
- * @param handler the handler that implements @ref get_and_touch_handler
159
- *
160
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
161
- * @exception errc::common::ambiguous_timeout
162
- * @exception errc::common::unambiguous_timeout
163
- *
164
- * @since 1.0.0
165
- * @committed
166
- */
167
- void get_and_touch(std::string document_id,
168
- std::chrono::seconds duration,
169
- const get_and_touch_options& options,
170
- get_and_touch_handler&& handler) const;
171
-
172
- /**
173
- * Fetches a full document and resets its expiration time to the value provided.
174
- *
175
- * @param document_id the document id which is used to uniquely identify it.
176
- * @param duration the new expiration time for the document.
177
- * @param options custom options to change the default behavior.
178
- * @return future object that carries result of the operation
179
- *
180
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
181
- * @exception errc::common::ambiguous_timeout
182
- * @exception errc::common::unambiguous_timeout
183
- *
184
- * @since 1.0.0
185
- * @committed
186
- */
187
- [[nodiscard]] auto get_and_touch(std::string document_id,
188
- std::chrono::seconds duration,
189
- const get_and_touch_options& options = {}) const
190
- -> std::future<std::pair<key_value_error_context, get_result>>;
191
-
192
- /**
193
- * Fetches a full document and resets its expiration time to the absolute value provided.
194
- *
195
- * @param document_id the document id which is used to uniquely identify it.
196
- * @param time_point the new expiration time point for the document.
197
- * @param options custom options to change the default behavior.
198
- * @param handler the handler that implements @ref get_and_touch_handler
199
- *
200
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
201
- * @exception errc::common::ambiguous_timeout
202
- * @exception errc::common::unambiguous_timeout
203
- *
204
- * @since 1.0.0
205
- * @committed
206
- */
207
- void get_and_touch(std::string document_id,
208
- std::chrono::system_clock::time_point time_point,
209
- const get_and_touch_options& options,
210
- get_and_touch_handler&& handler) const;
211
-
212
- /**
213
- * Fetches a full document and resets its expiration time to the absolute value provided.
214
- *
215
- * @param document_id the document id which is used to uniquely identify it.
216
- * @param time_point the new expiration time point for the document.
217
- * @param options custom options to change the default behavior.
218
- * @return future object that carries result of the operation
219
- *
220
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
221
- * @exception errc::common::ambiguous_timeout
222
- * @exception errc::common::unambiguous_timeout
223
- *
224
- * @since 1.0.0
225
- * @committed
226
- */
227
- [[nodiscard]] auto get_and_touch(std::string document_id,
228
- std::chrono::system_clock::time_point time_point,
229
- const get_and_touch_options& options = {}) const
230
- -> std::future<std::pair<key_value_error_context, get_result>>;
231
-
232
- /**
233
- * Updates the expiration a document given an id, without modifying or returning its value.
234
- *
235
- * @param document_id the document id which is used to uniquely identify it.
236
- * @param duration the new expiration time for the document.
237
- * @param options custom options to change the default behavior.
238
- * @param handler the handler that implements @ref touch_handler
239
- *
240
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
241
- * @exception errc::common::ambiguous_timeout
242
- * @exception errc::common::unambiguous_timeout
243
- *
244
- * @since 1.0.0
245
- * @committed
246
- */
247
- void touch(std::string document_id, std::chrono::seconds duration, const touch_options& options, touch_handler&& handler) const;
248
-
249
- /**
250
- * Updates the expiration a document given an id, without modifying or returning its value.
251
- *
252
- * @param document_id the document id which is used to uniquely identify it.
253
- * @param duration the new expiration time for the document.
254
- * @param options custom options to change the default behavior.
255
- * @return future object that carries result of the operation
256
- *
257
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
258
- * @exception errc::common::ambiguous_timeout
259
- * @exception errc::common::unambiguous_timeout
260
- *
261
- * @since 1.0.0
262
- * @committed
263
- */
264
- [[nodiscard]] auto touch(std::string document_id, std::chrono::seconds duration, const touch_options& options = {}) const
265
- -> std::future<std::pair<key_value_error_context, result>>;
266
-
267
- /**
268
- * Updates the expiration a document given an id, without modifying or returning its value.
269
- *
270
- * @param document_id the document id which is used to uniquely identify it.
271
- * @param time_point the new expiration time point for the document.
272
- * @param options custom options to change the default behavior.
273
- * @param handler the handler that implements @ref touch_handler
274
- *
275
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
276
- * @exception errc::common::ambiguous_timeout
277
- * @exception errc::common::unambiguous_timeout
278
- *
279
- * @since 1.0.0
280
- * @committed
281
- */
282
- void touch(std::string document_id,
283
- std::chrono::system_clock::time_point time_point,
284
- const touch_options& options,
285
- touch_handler&& handler) const;
286
-
287
- /**
288
- * Updates the expiration a document given an id, without modifying or returning its value.
289
- *
290
- * @param document_id the document id which is used to uniquely identify it.
291
- * @param time_point the new expiration time point for the document.
292
- * @param options custom options to change the default behavior.
293
- * @return future object that carries result of the operation
294
- *
295
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
296
- * @exception errc::common::ambiguous_timeout
297
- * @exception errc::common::unambiguous_timeout
298
- *
299
- * @since 1.0.0
300
- * @committed
301
- */
302
- [[nodiscard]] auto touch(std::string document_id,
303
- std::chrono::system_clock::time_point time_point,
304
- const touch_options& options = {}) const -> std::future<std::pair<key_value_error_context, result>>;
305
-
306
- /**
307
- * Reads all available replicas, and returns the first found.
308
- *
309
- * @param document_id the document id which is used to uniquely identify it.
310
- * @param options the custom options
311
- * @param handler the handler that implements @ref get_any_replica_handler
312
- *
313
- * @exception errc::key_value::document_irretrievable
314
- * the situation where the SDK got all responses (most likely: key not found) but none of them were successful so it
315
- * ended up not returning anything
316
- *
317
- * @exception errc::common::ambiguous_timeout
318
- * @exception errc::common::unambiguous_timeout
319
- *
320
- * @since 1.0.0
321
- * @committed
322
- */
323
- void get_any_replica(std::string document_id, const get_any_replica_options& options, get_any_replica_handler&& handler) const;
324
-
325
- /**
326
- * Reads all available replicas, and returns the first found.
327
- *
328
- * @param document_id the document id which is used to uniquely identify it.
329
- * @param options the custom options
330
- * @return the future object with first available result, might be the active or a replica.
331
- *
332
- * @exception errc::key_value::document_irretrievable
333
- * the situation where the SDK got all responses (most likely: key not found) but none of them were successful so it
334
- * ended up not returning anything
335
- *
336
- * @exception errc::common::ambiguous_timeout
337
- * @exception errc::common::unambiguous_timeout
338
- *
339
- * @since 1.0.0
340
- * @committed
341
- */
342
- [[nodiscard]] auto get_any_replica(std::string document_id, const get_any_replica_options& options = {}) const
343
- -> std::future<std::pair<key_value_error_context, get_replica_result>>;
344
-
345
- /**
346
- * Reads from all available replicas and the active node and returns the results as a vector.
347
- *
348
- * @note Individual errors are ignored, so you can think of this API as a best effort
349
- * approach which explicitly emphasises availability over consistency.
350
- *
351
- * @param document_id the document id which is used to uniquely identify it.
352
- * @param options the custom options
353
- * @param handler the handler that implements @ref get_all_replicas_handler
354
- *
355
- * @exception errc::common::ambiguous_timeout
356
- * @exception errc::common::unambiguous_timeout
357
- *
358
- * @since 1.0.0
359
- * @committed
360
- */
361
- void get_all_replicas(std::string document_id, const get_all_replicas_options& options, get_all_replicas_handler&& handler) const;
362
-
363
- /**
364
- * Reads from all available replicas and the active node and returns the results as a vector.
365
- *
366
- * @note Individual errors are ignored, so you can think of this API as a best effort
367
- * approach which explicitly emphasises availability over consistency.
368
- *
369
- * @param document_id the document id which is used to uniquely identify it.
370
- * @param options the custom options
371
- * @return future object that carries result of the operation
372
- *
373
- * @exception errc::common::ambiguous_timeout
374
- * @exception errc::common::unambiguous_timeout
375
- *
376
- * @since 1.0.0
377
- * @committed
378
- */
379
- [[nodiscard]] auto get_all_replicas(std::string document_id, const get_all_replicas_options& options = {}) const
380
- -> std::future<std::pair<key_value_error_context, get_all_replicas_result>>;
381
-
382
- /**
383
- * Upserts an encoded body of the document which might or might not exist yet, with custom options.
384
- *
385
- * @param document_id the document id which is used to uniquely identify it.
386
- * @param document the encoded content of the document to upsert.
387
- * @param options custom options to customize the upsert behavior.
388
- * @param handler callable that implements @ref upsert_handler
389
- *
390
- * @exception errc::common::ambiguous_timeout
391
- * @exception errc::common::unambiguous_timeout
392
- *
393
- * @since 1.0.0
394
- * @uncommitted
395
- */
396
- void upsert(std::string document_id, codec::encoded_value document, const upsert_options& options, upsert_handler&& handler) const;
397
-
398
- /**
399
- * Upserts a full document which might or might not exist yet with custom options.
400
- *
401
- * @tparam Transcoder type of the transcoder that will be used to encode the document
402
- * @tparam Document type of the document
403
- *
404
- * @param document_id the document id which is used to uniquely identify it.
405
- * @param document the document content to upsert.
406
- * @param options custom options to customize the upsert behavior.
407
- * @param handler callable that implements @ref upsert_handler
408
- *
409
- * @exception errc::common::ambiguous_timeout
410
- * @exception errc::common::unambiguous_timeout
411
- *
412
- * @since 1.0.0
413
- * @committed
414
- */
415
- template<typename Transcoder = codec::default_json_transcoder, typename Document>
416
- void upsert(std::string document_id, Document document, const upsert_options& options, upsert_handler&& handler) const
417
- {
418
- return upsert(std::move(document_id), Transcoder::encode(document), options, std::move(handler));
419
- }
420
-
421
- /**
422
- * Upserts an encoded body of the document which might or might not exist yet, with custom options.
423
- *
424
- * @param document_id the document id which is used to uniquely identify it.
425
- * @param document the encoded content of the document to upsert.
426
- * @param options custom options to customize the upsert behavior.
427
- * @return future object that carries result of the operation
428
- *
429
- * @exception errc::common::ambiguous_timeout
430
- * @exception errc::common::unambiguous_timeout
431
- *
432
- * @since 1.0.0
433
- * @uncommitted
434
- */
435
- [[nodiscard]] auto upsert(std::string document_id, codec::encoded_value document, const upsert_options& options) const
436
- -> std::future<std::pair<key_value_error_context, mutation_result>>;
437
-
438
- /**
439
- * Upserts a full document which might or might not exist yet with custom options.
440
- *
441
- * @tparam Transcoder type of the transcoder that will be used to encode the document
442
- * @tparam Document type of the document
443
- *
444
- * @param document_id the document id which is used to uniquely identify it.
445
- * @param document the document content to upsert.
446
- * @param options custom options to customize the upsert behavior.
447
- * @return future object that carries result of the operation
448
- *
449
- * @exception errc::common::ambiguous_timeout
450
- * @exception errc::common::unambiguous_timeout
451
- *
452
- * @since 1.0.0
453
- * @committed
454
- */
455
- template<typename Transcoder = codec::default_json_transcoder, typename Document>
456
- [[nodiscard]] auto upsert(std::string document_id, const Document& document, const upsert_options& options = {}) const
457
- -> std::future<std::pair<key_value_error_context, mutation_result>>
458
- {
459
- return upsert(std::move(document_id), Transcoder::encode(document), options);
460
- }
461
-
462
- /**
463
- * Inserts an encoded body of the document which does not exist yet with custom options.
464
- *
465
- * @param document_id the document id which is used to uniquely identify it.
466
- * @param document the encoded content of the document to upsert.
467
- * @param options custom options to customize the upsert behavior.
468
- * @param handler callable that implements @ref upsert_handler
469
- *
470
- * @exception errc::common::ambiguous_timeout
471
- * @exception errc::common::unambiguous_timeout
472
- *
473
- * @since 1.0.0
474
- * @uncommitted
475
- */
476
- void insert(std::string document_id, codec::encoded_value document, const insert_options& options, insert_handler&& handler) const;
477
-
478
- /**
479
- * Inserts a full document which does not exist yet with custom options.
480
- *
481
- * @tparam Transcoder type of the transcoder that will be used to encode the document
482
- * @tparam Document type of the document
483
- *
484
- * @param document_id the document id which is used to uniquely identify it.
485
- * @param document the document content to insert.
486
- * @param options custom options to customize the insert behavior.
487
- * @param handler callable that implements @ref insert_handler
488
- *
489
- * @exception errc::key_value::document_exists the given document id is already present in the collection.
490
- * @exception errc::common::ambiguous_timeout
491
- * @exception errc::common::unambiguous_timeout
492
- *
493
- * @since 1.0.0
494
- * @committed
495
- */
496
- template<typename Transcoder = codec::default_json_transcoder,
497
- typename Document,
498
- std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
499
- void insert(std::string document_id, Document document, const insert_options& options, insert_handler&& handler) const
500
- {
501
- return insert(std::move(document_id), Transcoder::encode(document), options, std::move(handler));
502
- }
503
-
504
- /**
505
- * Inserts an encoded body of the document which does not exist yet with custom options.
506
- *
507
- * @param document_id the document id which is used to uniquely identify it.
508
- * @param document the encoded content of the document to upsert.
509
- * @param options custom options to customize the upsert behavior.
510
- * @return future object that carries result of the operation
511
- *
512
- * @exception errc::common::ambiguous_timeout
513
- * @exception errc::common::unambiguous_timeout
514
- *
515
- * @since 1.0.0
516
- * @uncommitted
517
- */
518
- [[nodiscard]] auto insert(std::string document_id, codec::encoded_value document, const insert_options& options) const
519
- -> std::future<std::pair<key_value_error_context, mutation_result>>;
520
-
521
- /**
522
- * Inserts a full document which does not exist yet with custom options.
523
- *
524
- * @tparam Transcoder type of the transcoder that will be used to encode the document
525
- * @tparam Document type of the document
526
- *
527
- * @param document_id the document id which is used to uniquely identify it.
528
- * @param document the document content to insert.
529
- * @param options custom options to customize the insert behavior.
530
- * @return future object that carries result of the operation
531
- *
532
- * @exception errc::key_value::document_exists the given document id is already present in the collection.
533
- * @exception errc::common::ambiguous_timeout
534
- * @exception errc::common::unambiguous_timeout
535
- *
536
- * @since 1.0.0
537
- * @committed
538
- */
539
- template<typename Transcoder = codec::default_json_transcoder,
540
- typename Document,
541
- std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
542
- [[nodiscard]] auto insert(std::string document_id, const Document& document, const insert_options& options = {}) const
543
- -> std::future<std::pair<key_value_error_context, mutation_result>>
544
- {
545
- return insert(std::move(document_id), Transcoder::encode(document), options);
546
- }
547
-
548
- /**
549
- * Replaces a body of the document which already exists with specified encoded body.
550
- *
551
- * @param document_id the document id which is used to uniquely identify it.
552
- * @param document the encoded content of the document to upsert.
553
- * @param options custom options to customize the upsert behavior.
554
- * @param handler callable that implements @ref upsert_handler
555
- *
556
- * @exception errc::common::ambiguous_timeout
557
- * @exception errc::common::unambiguous_timeout
558
- *
559
- * @since 1.0.0
560
- * @uncommitted
561
- */
562
- void replace(std::string document_id, codec::encoded_value document, const replace_options& options, replace_handler&& handler) const;
563
-
564
- /**
565
- * Replaces a full document which already exists.
566
- *
567
- * @tparam Transcoder type of the transcoder that will be used to encode the document
568
- * @tparam Document type of the document
569
- *
570
- * @param document_id the document id which is used to uniquely identify it.
571
- * @param document the document content to replace.
572
- * @param options custom options to customize the replace behavior.
573
- * @param handler callable that implements @ref replace_handler
574
- *
575
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
576
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
577
- * @exception errc::common::ambiguous_timeout
578
- * @exception errc::common::unambiguous_timeout
579
- *
580
- * @since 1.0.0
581
- * @committed
582
- */
583
- template<typename Transcoder = codec::default_json_transcoder,
584
- typename Document,
585
- std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
586
- void replace(std::string document_id, Document document, const replace_options& options, replace_handler&& handler) const
587
- {
588
- return replace(std::move(document_id), Transcoder::encode(document), options, std::move(handler));
589
- }
590
-
591
- /**
592
- * Replaces a body of the document which already exists with specified encoded body.
593
- *
594
- * @param document_id the document id which is used to uniquely identify it.
595
- * @param document the encoded content of the document to upsert.
596
- * @param options custom options to customize the upsert behavior.
597
- * @return future object that carries result of the operation
598
- *
599
- * @exception errc::common::ambiguous_timeout
600
- * @exception errc::common::unambiguous_timeout
601
- *
602
- * @since 1.0.0
603
- * @uncommitted
604
- */
605
- [[nodiscard]] auto replace(std::string document_id, codec::encoded_value document, const replace_options& options) const
606
- -> std::future<std::pair<key_value_error_context, mutation_result>>;
607
-
608
- /**
609
- * Replaces a full document which already exists.
610
- *
611
- * @tparam Transcoder type of the transcoder that will be used to encode the document
612
- * @tparam Document type of the document
613
- *
614
- * @param document_id the document id which is used to uniquely identify it.
615
- * @param document the document content to replace.
616
- * @param options custom options to customize the replace behavior.
617
- * @return future object that carries result of the operation
618
- *
619
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
620
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
621
- * @exception errc::common::ambiguous_timeout
622
- * @exception errc::common::unambiguous_timeout
623
- *
624
- * @since 1.0.0
625
- * @committed
626
- */
627
- template<typename Transcoder = codec::default_json_transcoder,
628
- typename Document,
629
- std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
630
- [[nodiscard]] auto replace(std::string document_id, const Document& document, const replace_options& options = {}) const
631
- -> std::future<std::pair<key_value_error_context, mutation_result>>
632
- {
633
- return replace(std::move(document_id), Transcoder::encode(document), options);
634
- }
635
-
636
- /**
637
- * Removes a Document from a collection.
638
- *
639
- * @param document_id the document id which is used to uniquely identify it.
640
- * @param options custom options to customize the remove behavior.
641
- * @param handler callable that implements @ref remove_handler
642
- *
643
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
644
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
645
- * @exception errc::common::ambiguous_timeout
646
- * @exception errc::common::unambiguous_timeout
647
- *
648
- * @since 1.0.0
649
- * @committed
650
- */
651
- void remove(std::string document_id, const remove_options& options, remove_handler&& handler) const;
652
-
653
- /**
654
- * Removes a Document from a collection.
655
- *
656
- * @param document_id the document id which is used to uniquely identify it.
657
- * @param options custom options to customize the remove behavior.
658
- * @return future object that carries result of the operation
659
- *
660
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
661
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
662
- * @exception errc::common::ambiguous_timeout
663
- * @exception errc::common::unambiguous_timeout
664
- *
665
- * @since 1.0.0
666
- * @committed
667
- */
668
- [[nodiscard]] auto remove(std::string document_id, const remove_options& options = {}) const
669
- -> std::future<std::pair<key_value_error_context, mutation_result>>;
670
-
671
- /**
672
- * Performs mutations to document fragments
673
- *
674
- * @param document_id the document id which is used to uniquely identify it.
675
- * @param specs the spec which specifies the type of mutations to perform.
676
- * @param options custom options to customize the mutate_in behavior.
677
- * @param handler callable that implements @ref mutate_in_handler
678
- *
679
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
680
- * @exception errc::key_value::document_exists the given document id is already present in the collection and insert is was selected.
681
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
682
- * @exception errc::common::ambiguous_timeout
683
- * @exception errc::common::unambiguous_timeout
684
- *
685
- * @since 1.0.0
686
- * @committed
687
- */
688
- void mutate_in(std::string document_id,
689
- const mutate_in_specs& specs,
690
- const mutate_in_options& options,
691
- mutate_in_handler&& handler) const;
692
-
693
- /**
694
- * Performs mutations to document fragments
695
- *
696
- * @param document_id the document id which is used to uniquely identify it.
697
- * @param specs the spec which specifies the type of mutations to perform.
698
- * @param options custom options to customize the mutate_in behavior.
699
- * @return future object that carries result of the operation
700
- *
701
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
702
- * @exception errc::key_value::document_exists the given document id is already present in the collection and insert is was selected.
703
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
704
- * @exception errc::common::ambiguous_timeout
705
- * @exception errc::common::unambiguous_timeout
706
- *
707
- * @since 1.0.0
708
- * @committed
709
- */
710
- [[nodiscard]] auto mutate_in(std::string document_id, const mutate_in_specs& specs, const mutate_in_options& options = {}) const
711
- -> std::future<std::pair<subdocument_error_context, mutate_in_result>>;
712
-
713
- /**
714
- * Performs lookups to document fragments with default options.
715
- *
716
- * @param document_id the outer document ID
717
- * @param specs an object that specifies the types of lookups to perform
718
- * @param options custom options to modify the lookup options
719
- * @param handler callable that implements @ref lookup_in_handler
720
- *
721
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
722
- * @exception errc::common::ambiguous_timeout
723
- * @exception errc::common::unambiguous_timeout
724
- *
725
- * @since 1.0.0
726
- * @committed
727
- */
728
- void lookup_in(std::string document_id,
729
- const lookup_in_specs& specs,
730
- const lookup_in_options& options,
731
- lookup_in_handler&& handler) const;
732
-
733
- /**
734
- * Performs lookups to document fragments with default options.
735
- *
736
- * @param document_id the outer document ID
737
- * @param specs an object that specifies the types of lookups to perform
738
- * @param options custom options to modify the lookup options
739
- * @return future object that carries result of the operation
740
- *
741
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
742
- * @exception errc::common::ambiguous_timeout
743
- * @exception errc::common::unambiguous_timeout
744
- *
745
- * @since 1.0.0
746
- * @committed
747
- */
748
- [[nodiscard]] auto lookup_in(std::string document_id, const lookup_in_specs& specs, const lookup_in_options& options = {}) const
749
- -> std::future<std::pair<subdocument_error_context, lookup_in_result>>;
750
-
751
- /**
752
- * Performs lookups to document fragments with default options from all replicas and the active node and returns the result as a vector.
753
- *
754
- * @param document_id the outer document ID
755
- * @param specs an object that specifies the types of lookups to perform
756
- * @param options custom options to modify the lookup options
757
- * @param handler callable that implements @ref lookup_in_all_replicas_handler
758
- *
759
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
760
- * @exception errc::common::ambiguous_timeout
761
- * @exception errc::common::unambiguous_timeout
762
- *
763
- * @since 1.0.0
764
- * @committed
765
- */
766
- void lookup_in_all_replicas(std::string document_id,
767
- const lookup_in_specs& specs,
768
- const lookup_in_all_replicas_options& options,
769
- lookup_in_all_replicas_handler&& handler) const;
770
-
771
- /**
772
- * Performs lookups to document fragments with default options from all replicas and the active node and returns the result as a vector.
773
- *
774
- * @param document_id the outer document ID
775
- * @param specs an object that specifies the types of lookups to perform
776
- * @param options custom options to modify the lookup options
777
- * @return future object that carries result of the operation
778
- *
779
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
780
- * @exception errc::common::ambiguous_timeout
781
- * @exception errc::common::unambiguous_timeout
782
- *
783
- * @since 1.0.0
784
- * @committed
785
- */
786
- [[nodiscard]] auto lookup_in_all_replicas(std::string document_id,
787
- const lookup_in_specs& specs,
788
- const lookup_in_all_replicas_options& options = {}) const
789
- -> std::future<std::pair<subdocument_error_context, lookup_in_all_replicas_result>>;
790
-
791
- /**
792
- * Performs lookups to document fragments with default options from all replicas and returns the first found.
793
- *
794
- * @param document_id the outer document ID
795
- * @param specs an object that specifies the types of lookups to perform
796
- * @param options custom options to modify the lookup options
797
- * @param handler callable that implements @ref lookup_in_any_replica_handler
798
- *
799
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
800
- * @exception errc::common::ambiguous_timeout
801
- * @exception errc::common::unambiguous_timeout
802
- *
803
- * @since 1.0.0
804
- * @committed
805
- */
806
- void lookup_in_any_replica(std::string document_id,
71
+ public:
72
+ /**
73
+ * Constant for the name of the default collection in the bucket.
74
+ *
75
+ * @since 1.0.0
76
+ * @committed
77
+ */
78
+ static constexpr auto default_name{ "_default" };
79
+
80
+ /**
81
+ * Returns name of the bucket where the collection is defined.
82
+ *
83
+ * @return name of the bucket
84
+ *
85
+ * @since 1.0.0
86
+ * @committed
87
+ */
88
+ [[nodiscard]] auto bucket_name() const -> const std::string&;
89
+
90
+ /**
91
+ * Returns name of the scope where the collection is defined.
92
+ *
93
+ * @return name of the scope
94
+ *
95
+ * @since 1.0.0
96
+ * @committed
97
+ */
98
+ [[nodiscard]] auto scope_name() const -> const std::string&;
99
+
100
+ /**
101
+ * Returns name of the collection.
102
+ *
103
+ * @return name of the collection
104
+ *
105
+ * @since 1.0.0
106
+ * @committed
107
+ */
108
+ [[nodiscard]] auto name() const -> const std::string&;
109
+
110
+ /**
111
+ * Provides access to the binary APIs, not used for JSON documents.
112
+ *
113
+ * @return the requested collection if successful.
114
+ *
115
+ * @since 1.0.0
116
+ * @committed
117
+ */
118
+ [[nodiscard]] auto binary() const -> binary_collection;
119
+
120
+ /**
121
+ * Fetches the full document from this collection.
122
+ *
123
+ * @param document_id the document id which is used to uniquely identify it.
124
+ * @param options options to customize the get request.
125
+ * @param handler the handler that implements @ref get_handler
126
+ *
127
+ * @exception errc::key_value::document_not_found the given document id is not found in the
128
+ * collection.
129
+ * @exception errc::common::ambiguous_timeout
130
+ * @exception errc::common::unambiguous_timeout
131
+ *
132
+ * @since 1.0.0
133
+ * @committed
134
+ */
135
+ void get(std::string document_id, const get_options& options, get_handler&& handler) const;
136
+
137
+ /**
138
+ * Fetches the full document from this collection.
139
+ *
140
+ * @param document_id the document id which is used to uniquely identify it.
141
+ * @param options options to customize the get request.
142
+ * @return future object that carries result of the operation
143
+ *
144
+ * @exception errc::key_value::document_not_found the given document id is not found in the
145
+ * collection.
146
+ * @exception errc::common::ambiguous_timeout
147
+ * @exception errc::common::unambiguous_timeout
148
+ *
149
+ * @since 1.0.0
150
+ * @committed
151
+ */
152
+ [[nodiscard]] auto get(std::string document_id, const get_options& options = {}) const
153
+ -> std::future<std::pair<error, get_result>>;
154
+
155
+ /**
156
+ * Fetches a full document and resets its expiration time to the value provided.
157
+ *
158
+ * @param document_id the document id which is used to uniquely identify it.
159
+ * @param duration the new expiration time for the document.
160
+ * @param options custom options to change the default behavior.
161
+ * @param handler the handler that implements @ref get_and_touch_handler
162
+ *
163
+ * @exception errc::key_value::document_not_found the given document id is not found in the
164
+ * collection.
165
+ * @exception errc::common::ambiguous_timeout
166
+ * @exception errc::common::unambiguous_timeout
167
+ *
168
+ * @since 1.0.0
169
+ * @committed
170
+ */
171
+ void get_and_touch(std::string document_id,
172
+ std::chrono::seconds duration,
173
+ const get_and_touch_options& options,
174
+ get_and_touch_handler&& handler) const;
175
+
176
+ /**
177
+ * Fetches a full document and resets its expiration time to the value provided.
178
+ *
179
+ * @param document_id the document id which is used to uniquely identify it.
180
+ * @param duration the new expiration time for the document.
181
+ * @param options custom options to change the default behavior.
182
+ * @return future object that carries result of the operation
183
+ *
184
+ * @exception errc::key_value::document_not_found the given document id is not found in the
185
+ * collection.
186
+ * @exception errc::common::ambiguous_timeout
187
+ * @exception errc::common::unambiguous_timeout
188
+ *
189
+ * @since 1.0.0
190
+ * @committed
191
+ */
192
+ [[nodiscard]] auto get_and_touch(std::string document_id,
193
+ std::chrono::seconds duration,
194
+ const get_and_touch_options& options = {}) const
195
+ -> std::future<std::pair<error, get_result>>;
196
+
197
+ /**
198
+ * Fetches a full document and resets its expiration time to the absolute value provided.
199
+ *
200
+ * @param document_id the document id which is used to uniquely identify it.
201
+ * @param time_point the new expiration time point for the document.
202
+ * @param options custom options to change the default behavior.
203
+ * @param handler the handler that implements @ref get_and_touch_handler
204
+ *
205
+ * @exception errc::key_value::document_not_found the given document id is not found in the
206
+ * collection.
207
+ * @exception errc::common::ambiguous_timeout
208
+ * @exception errc::common::unambiguous_timeout
209
+ *
210
+ * @since 1.0.0
211
+ * @committed
212
+ */
213
+ void get_and_touch(std::string document_id,
214
+ std::chrono::system_clock::time_point time_point,
215
+ const get_and_touch_options& options,
216
+ get_and_touch_handler&& handler) const;
217
+
218
+ /**
219
+ * Fetches a full document and resets its expiration time to the absolute value provided.
220
+ *
221
+ * @param document_id the document id which is used to uniquely identify it.
222
+ * @param time_point the new expiration time point for the document.
223
+ * @param options custom options to change the default behavior.
224
+ * @return future object that carries result of the operation
225
+ *
226
+ * @exception errc::key_value::document_not_found the given document id is not found in the
227
+ * collection.
228
+ * @exception errc::common::ambiguous_timeout
229
+ * @exception errc::common::unambiguous_timeout
230
+ *
231
+ * @since 1.0.0
232
+ * @committed
233
+ */
234
+ [[nodiscard]] auto get_and_touch(std::string document_id,
235
+ std::chrono::system_clock::time_point time_point,
236
+ const get_and_touch_options& options = {}) const
237
+ -> std::future<std::pair<error, get_result>>;
238
+
239
+ /**
240
+ * Updates the expiration a document given an id, without modifying or returning its value.
241
+ *
242
+ * @param document_id the document id which is used to uniquely identify it.
243
+ * @param duration the new expiration time for the document.
244
+ * @param options custom options to change the default behavior.
245
+ * @param handler the handler that implements @ref touch_handler
246
+ *
247
+ * @exception errc::key_value::document_not_found the given document id is not found in the
248
+ * collection.
249
+ * @exception errc::common::ambiguous_timeout
250
+ * @exception errc::common::unambiguous_timeout
251
+ *
252
+ * @since 1.0.0
253
+ * @committed
254
+ */
255
+ void touch(std::string document_id,
256
+ std::chrono::seconds duration,
257
+ const touch_options& options,
258
+ touch_handler&& handler) const;
259
+
260
+ /**
261
+ * Updates the expiration a document given an id, without modifying or returning its value.
262
+ *
263
+ * @param document_id the document id which is used to uniquely identify it.
264
+ * @param duration the new expiration time for the document.
265
+ * @param options custom options to change the default behavior.
266
+ * @return future object that carries result of the operation
267
+ *
268
+ * @exception errc::key_value::document_not_found the given document id is not found in the
269
+ * collection.
270
+ * @exception errc::common::ambiguous_timeout
271
+ * @exception errc::common::unambiguous_timeout
272
+ *
273
+ * @since 1.0.0
274
+ * @committed
275
+ */
276
+ [[nodiscard]] auto touch(std::string document_id,
277
+ std::chrono::seconds duration,
278
+ const touch_options& options = {}) const
279
+ -> std::future<std::pair<error, result>>;
280
+
281
+ /**
282
+ * Updates the expiration a document given an id, without modifying or returning its value.
283
+ *
284
+ * @param document_id the document id which is used to uniquely identify it.
285
+ * @param time_point the new expiration time point for the document.
286
+ * @param options custom options to change the default behavior.
287
+ * @param handler the handler that implements @ref touch_handler
288
+ *
289
+ * @exception errc::key_value::document_not_found the given document id is not found in the
290
+ * collection.
291
+ * @exception errc::common::ambiguous_timeout
292
+ * @exception errc::common::unambiguous_timeout
293
+ *
294
+ * @since 1.0.0
295
+ * @committed
296
+ */
297
+ void touch(std::string document_id,
298
+ std::chrono::system_clock::time_point time_point,
299
+ const touch_options& options,
300
+ touch_handler&& handler) const;
301
+
302
+ /**
303
+ * Updates the expiration a document given an id, without modifying or returning its value.
304
+ *
305
+ * @param document_id the document id which is used to uniquely identify it.
306
+ * @param time_point the new expiration time point for the document.
307
+ * @param options custom options to change the default behavior.
308
+ * @return future object that carries result of the operation
309
+ *
310
+ * @exception errc::key_value::document_not_found the given document id is not found in the
311
+ * collection.
312
+ * @exception errc::common::ambiguous_timeout
313
+ * @exception errc::common::unambiguous_timeout
314
+ *
315
+ * @since 1.0.0
316
+ * @committed
317
+ */
318
+ [[nodiscard]] auto touch(std::string document_id,
319
+ std::chrono::system_clock::time_point time_point,
320
+ const touch_options& options = {}) const
321
+ -> std::future<std::pair<error, result>>;
322
+
323
+ /**
324
+ * Reads all available replicas, and returns the first found.
325
+ *
326
+ * @param document_id the document id which is used to uniquely identify it.
327
+ * @param options the custom options
328
+ * @param handler the handler that implements @ref get_any_replica_handler
329
+ *
330
+ * @exception errc::key_value::document_irretrievable
331
+ * the situation where the SDK got all responses (most likely: key not found) but none of them
332
+ * were successful so it ended up not returning anything
333
+ *
334
+ * @exception errc::common::ambiguous_timeout
335
+ * @exception errc::common::unambiguous_timeout
336
+ *
337
+ * @since 1.0.0
338
+ * @committed
339
+ */
340
+ void get_any_replica(std::string document_id,
341
+ const get_any_replica_options& options,
342
+ get_any_replica_handler&& handler) const;
343
+
344
+ /**
345
+ * Reads all available replicas, and returns the first found.
346
+ *
347
+ * @param document_id the document id which is used to uniquely identify it.
348
+ * @param options the custom options
349
+ * @return the future object with first available result, might be the active or a replica.
350
+ *
351
+ * @exception errc::key_value::document_irretrievable
352
+ * the situation where the SDK got all responses (most likely: key not found) but none of them
353
+ * were successful so it ended up not returning anything
354
+ *
355
+ * @exception errc::common::ambiguous_timeout
356
+ * @exception errc::common::unambiguous_timeout
357
+ *
358
+ * @since 1.0.0
359
+ * @committed
360
+ */
361
+ [[nodiscard]] auto get_any_replica(std::string document_id,
362
+ const get_any_replica_options& options = {}) const
363
+ -> std::future<std::pair<error, get_replica_result>>;
364
+
365
+ /**
366
+ * Reads from all available replicas and the active node and returns the results as a vector.
367
+ *
368
+ * @note Individual errors are ignored, so you can think of this API as a best effort
369
+ * approach which explicitly emphasises availability over consistency.
370
+ *
371
+ * @param document_id the document id which is used to uniquely identify it.
372
+ * @param options the custom options
373
+ * @param handler the handler that implements @ref get_all_replicas_handler
374
+ *
375
+ * @exception errc::common::ambiguous_timeout
376
+ * @exception errc::common::unambiguous_timeout
377
+ *
378
+ * @since 1.0.0
379
+ * @committed
380
+ */
381
+ void get_all_replicas(std::string document_id,
382
+ const get_all_replicas_options& options,
383
+ get_all_replicas_handler&& handler) const;
384
+
385
+ /**
386
+ * Reads from all available replicas and the active node and returns the results as a vector.
387
+ *
388
+ * @note Individual errors are ignored, so you can think of this API as a best effort
389
+ * approach which explicitly emphasises availability over consistency.
390
+ *
391
+ * @param document_id the document id which is used to uniquely identify it.
392
+ * @param options the custom options
393
+ * @return future object that carries result of the operation
394
+ *
395
+ * @exception errc::common::ambiguous_timeout
396
+ * @exception errc::common::unambiguous_timeout
397
+ *
398
+ * @since 1.0.0
399
+ * @committed
400
+ */
401
+ [[nodiscard]] auto get_all_replicas(std::string document_id,
402
+ const get_all_replicas_options& options = {}) const
403
+ -> std::future<std::pair<error, get_all_replicas_result>>;
404
+
405
+ /**
406
+ * Upserts an encoded body of the document which might or might not exist yet, with custom
407
+ * options.
408
+ *
409
+ * @param document_id the document id which is used to uniquely identify it.
410
+ * @param document the encoded content of the document to upsert.
411
+ * @param options custom options to customize the upsert behavior.
412
+ * @param handler callable that implements @ref upsert_handler
413
+ *
414
+ * @exception errc::common::ambiguous_timeout
415
+ * @exception errc::common::unambiguous_timeout
416
+ *
417
+ * @since 1.0.0
418
+ * @uncommitted
419
+ */
420
+ void upsert(std::string document_id,
421
+ codec::encoded_value document,
422
+ const upsert_options& options,
423
+ upsert_handler&& handler) const;
424
+
425
+ /**
426
+ * Upserts a full document which might or might not exist yet with custom options.
427
+ *
428
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
429
+ * @tparam Document type of the document
430
+ *
431
+ * @param document_id the document id which is used to uniquely identify it.
432
+ * @param document the document content to upsert.
433
+ * @param options custom options to customize the upsert behavior.
434
+ * @param handler callable that implements @ref upsert_handler
435
+ *
436
+ * @exception errc::common::ambiguous_timeout
437
+ * @exception errc::common::unambiguous_timeout
438
+ *
439
+ * @since 1.0.0
440
+ * @committed
441
+ */
442
+ template<typename Transcoder = codec::default_json_transcoder, typename Document>
443
+ void upsert(std::string document_id,
444
+ Document document,
445
+ const upsert_options& options,
446
+ upsert_handler&& handler) const
447
+ {
448
+ return upsert(
449
+ std::move(document_id), Transcoder::encode(document), options, std::move(handler));
450
+ }
451
+
452
+ /**
453
+ * Upserts an encoded body of the document which might or might not exist yet, with custom
454
+ * options.
455
+ *
456
+ * @param document_id the document id which is used to uniquely identify it.
457
+ * @param document the encoded content of the document to upsert.
458
+ * @param options custom options to customize the upsert behavior.
459
+ * @return future object that carries result of the operation
460
+ *
461
+ * @exception errc::common::ambiguous_timeout
462
+ * @exception errc::common::unambiguous_timeout
463
+ *
464
+ * @since 1.0.0
465
+ * @uncommitted
466
+ */
467
+ [[nodiscard]] auto upsert(std::string document_id,
468
+ codec::encoded_value document,
469
+ const upsert_options& options) const
470
+ -> std::future<std::pair<error, mutation_result>>;
471
+
472
+ /**
473
+ * Upserts a full document which might or might not exist yet with custom options.
474
+ *
475
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
476
+ * @tparam Document type of the document
477
+ *
478
+ * @param document_id the document id which is used to uniquely identify it.
479
+ * @param document the document content to upsert.
480
+ * @param options custom options to customize the upsert behavior.
481
+ * @return future object that carries result of the operation
482
+ *
483
+ * @exception errc::common::ambiguous_timeout
484
+ * @exception errc::common::unambiguous_timeout
485
+ *
486
+ * @since 1.0.0
487
+ * @committed
488
+ */
489
+ template<typename Transcoder = codec::default_json_transcoder, typename Document>
490
+ [[nodiscard]] auto upsert(std::string document_id,
491
+ const Document& document,
492
+ const upsert_options& options = {}) const
493
+ -> std::future<std::pair<error, mutation_result>>
494
+ {
495
+ return upsert(std::move(document_id), Transcoder::encode(document), options);
496
+ }
497
+
498
+ /**
499
+ * Inserts an encoded body of the document which does not exist yet with custom options.
500
+ *
501
+ * @param document_id the document id which is used to uniquely identify it.
502
+ * @param document the encoded content of the document to upsert.
503
+ * @param options custom options to customize the upsert behavior.
504
+ * @param handler callable that implements @ref upsert_handler
505
+ *
506
+ * @exception errc::common::ambiguous_timeout
507
+ * @exception errc::common::unambiguous_timeout
508
+ *
509
+ * @since 1.0.0
510
+ * @uncommitted
511
+ */
512
+ void insert(std::string document_id,
513
+ codec::encoded_value document,
514
+ const insert_options& options,
515
+ insert_handler&& handler) const;
516
+
517
+ /**
518
+ * Inserts a full document which does not exist yet with custom options.
519
+ *
520
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
521
+ * @tparam Document type of the document
522
+ *
523
+ * @param document_id the document id which is used to uniquely identify it.
524
+ * @param document the document content to insert.
525
+ * @param options custom options to customize the insert behavior.
526
+ * @param handler callable that implements @ref insert_handler
527
+ *
528
+ * @exception errc::key_value::document_exists the given document id is already present in the
529
+ * collection.
530
+ * @exception errc::common::ambiguous_timeout
531
+ * @exception errc::common::unambiguous_timeout
532
+ *
533
+ * @since 1.0.0
534
+ * @committed
535
+ */
536
+ template<typename Transcoder = codec::default_json_transcoder,
537
+ typename Document,
538
+ std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
539
+ void insert(std::string document_id,
540
+ Document document,
541
+ const insert_options& options,
542
+ insert_handler&& handler) const
543
+ {
544
+ return insert(
545
+ std::move(document_id), Transcoder::encode(document), options, std::move(handler));
546
+ }
547
+
548
+ /**
549
+ * Inserts an encoded body of the document which does not exist yet with custom options.
550
+ *
551
+ * @param document_id the document id which is used to uniquely identify it.
552
+ * @param document the encoded content of the document to upsert.
553
+ * @param options custom options to customize the upsert behavior.
554
+ * @return future object that carries result of the operation
555
+ *
556
+ * @exception errc::common::ambiguous_timeout
557
+ * @exception errc::common::unambiguous_timeout
558
+ *
559
+ * @since 1.0.0
560
+ * @uncommitted
561
+ */
562
+ [[nodiscard]] auto insert(std::string document_id,
563
+ codec::encoded_value document,
564
+ const insert_options& options) const
565
+ -> std::future<std::pair<error, mutation_result>>;
566
+
567
+ /**
568
+ * Inserts a full document which does not exist yet with custom options.
569
+ *
570
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
571
+ * @tparam Document type of the document
572
+ *
573
+ * @param document_id the document id which is used to uniquely identify it.
574
+ * @param document the document content to insert.
575
+ * @param options custom options to customize the insert behavior.
576
+ * @return future object that carries result of the operation
577
+ *
578
+ * @exception errc::key_value::document_exists the given document id is already present in the
579
+ * collection.
580
+ * @exception errc::common::ambiguous_timeout
581
+ * @exception errc::common::unambiguous_timeout
582
+ *
583
+ * @since 1.0.0
584
+ * @committed
585
+ */
586
+ template<typename Transcoder = codec::default_json_transcoder,
587
+ typename Document,
588
+ std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
589
+ [[nodiscard]] auto insert(std::string document_id,
590
+ const Document& document,
591
+ const insert_options& options = {}) const
592
+ -> std::future<std::pair<error, mutation_result>>
593
+ {
594
+ return insert(std::move(document_id), Transcoder::encode(document), options);
595
+ }
596
+
597
+ /**
598
+ * Replaces a body of the document which already exists with specified encoded body.
599
+ *
600
+ * @param document_id the document id which is used to uniquely identify it.
601
+ * @param document the encoded content of the document to upsert.
602
+ * @param options custom options to customize the upsert behavior.
603
+ * @param handler callable that implements @ref upsert_handler
604
+ *
605
+ * @exception errc::common::ambiguous_timeout
606
+ * @exception errc::common::unambiguous_timeout
607
+ *
608
+ * @since 1.0.0
609
+ * @uncommitted
610
+ */
611
+ void replace(std::string document_id,
612
+ codec::encoded_value document,
613
+ const replace_options& options,
614
+ replace_handler&& handler) const;
615
+
616
+ /**
617
+ * Replaces a full document which already exists.
618
+ *
619
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
620
+ * @tparam Document type of the document
621
+ *
622
+ * @param document_id the document id which is used to uniquely identify it.
623
+ * @param document the document content to replace.
624
+ * @param options custom options to customize the replace behavior.
625
+ * @param handler callable that implements @ref replace_handler
626
+ *
627
+ * @exception errc::key_value::document_not_found the given document id is not found in the
628
+ * collection.
629
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
630
+ * server.
631
+ * @exception errc::common::ambiguous_timeout
632
+ * @exception errc::common::unambiguous_timeout
633
+ *
634
+ * @since 1.0.0
635
+ * @committed
636
+ */
637
+ template<typename Transcoder = codec::default_json_transcoder,
638
+ typename Document,
639
+ std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
640
+ void replace(std::string document_id,
641
+ Document document,
642
+ const replace_options& options,
643
+ replace_handler&& handler) const
644
+ {
645
+ return replace(
646
+ std::move(document_id), Transcoder::encode(document), options, std::move(handler));
647
+ }
648
+
649
+ /**
650
+ * Replaces a body of the document which already exists with specified encoded body.
651
+ *
652
+ * @param document_id the document id which is used to uniquely identify it.
653
+ * @param document the encoded content of the document to upsert.
654
+ * @param options custom options to customize the upsert behavior.
655
+ * @return future object that carries result of the operation
656
+ *
657
+ * @exception errc::common::ambiguous_timeout
658
+ * @exception errc::common::unambiguous_timeout
659
+ *
660
+ * @since 1.0.0
661
+ * @uncommitted
662
+ */
663
+ [[nodiscard]] auto replace(std::string document_id,
664
+ codec::encoded_value document,
665
+ const replace_options& options) const
666
+ -> std::future<std::pair<error, mutation_result>>;
667
+
668
+ /**
669
+ * Replaces a full document which already exists.
670
+ *
671
+ * @tparam Transcoder type of the transcoder that will be used to encode the document
672
+ * @tparam Document type of the document
673
+ *
674
+ * @param document_id the document id which is used to uniquely identify it.
675
+ * @param document the document content to replace.
676
+ * @param options custom options to customize the replace behavior.
677
+ * @return future object that carries result of the operation
678
+ *
679
+ * @exception errc::key_value::document_not_found the given document id is not found in the
680
+ * collection.
681
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
682
+ * server.
683
+ * @exception errc::common::ambiguous_timeout
684
+ * @exception errc::common::unambiguous_timeout
685
+ *
686
+ * @since 1.0.0
687
+ * @committed
688
+ */
689
+ template<typename Transcoder = codec::default_json_transcoder,
690
+ typename Document,
691
+ std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
692
+ [[nodiscard]] auto replace(std::string document_id,
693
+ const Document& document,
694
+ const replace_options& options = {}) const
695
+ -> std::future<std::pair<error, mutation_result>>
696
+ {
697
+ return replace(std::move(document_id), Transcoder::encode(document), options);
698
+ }
699
+
700
+ /**
701
+ * Removes a Document from a collection.
702
+ *
703
+ * @param document_id the document id which is used to uniquely identify it.
704
+ * @param options custom options to customize the remove behavior.
705
+ * @param handler callable that implements @ref remove_handler
706
+ *
707
+ * @exception errc::key_value::document_not_found the given document id is not found in the
708
+ * collection.
709
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
710
+ * server.
711
+ * @exception errc::common::ambiguous_timeout
712
+ * @exception errc::common::unambiguous_timeout
713
+ *
714
+ * @since 1.0.0
715
+ * @committed
716
+ */
717
+ void remove(std::string document_id,
718
+ const remove_options& options,
719
+ remove_handler&& handler) const;
720
+
721
+ /**
722
+ * Removes a Document from a collection.
723
+ *
724
+ * @param document_id the document id which is used to uniquely identify it.
725
+ * @param options custom options to customize the remove behavior.
726
+ * @return future object that carries result of the operation
727
+ *
728
+ * @exception errc::key_value::document_not_found the given document id is not found in the
729
+ * collection.
730
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
731
+ * server.
732
+ * @exception errc::common::ambiguous_timeout
733
+ * @exception errc::common::unambiguous_timeout
734
+ *
735
+ * @since 1.0.0
736
+ * @committed
737
+ */
738
+ [[nodiscard]] auto remove(std::string document_id, const remove_options& options = {}) const
739
+ -> std::future<std::pair<error, mutation_result>>;
740
+
741
+ /**
742
+ * Performs mutations to document fragments
743
+ *
744
+ * @param document_id the document id which is used to uniquely identify it.
745
+ * @param specs the spec which specifies the type of mutations to perform.
746
+ * @param options custom options to customize the mutate_in behavior.
747
+ * @param handler callable that implements @ref mutate_in_handler
748
+ *
749
+ * @exception errc::key_value::document_not_found the given document id is not found in the
750
+ * collection.
751
+ * @exception errc::key_value::document_exists the given document id is already present in the
752
+ * collection and insert is was selected.
753
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
754
+ * server.
755
+ * @exception errc::common::ambiguous_timeout
756
+ * @exception errc::common::unambiguous_timeout
757
+ *
758
+ * @since 1.0.0
759
+ * @committed
760
+ */
761
+ void mutate_in(std::string document_id,
762
+ const mutate_in_specs& specs,
763
+ const mutate_in_options& options,
764
+ mutate_in_handler&& handler) const;
765
+
766
+ /**
767
+ * Performs mutations to document fragments
768
+ *
769
+ * @param document_id the document id which is used to uniquely identify it.
770
+ * @param specs the spec which specifies the type of mutations to perform.
771
+ * @param options custom options to customize the mutate_in behavior.
772
+ * @return future object that carries result of the operation
773
+ *
774
+ * @exception errc::key_value::document_not_found the given document id is not found in the
775
+ * collection.
776
+ * @exception errc::key_value::document_exists the given document id is already present in the
777
+ * collection and insert is was selected.
778
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
779
+ * server.
780
+ * @exception errc::common::ambiguous_timeout
781
+ * @exception errc::common::unambiguous_timeout
782
+ *
783
+ * @since 1.0.0
784
+ * @committed
785
+ */
786
+ [[nodiscard]] auto mutate_in(std::string document_id,
787
+ const mutate_in_specs& specs,
788
+ const mutate_in_options& options = {}) const
789
+ -> std::future<std::pair<error, mutate_in_result>>;
790
+
791
+ /**
792
+ * Performs lookups to document fragments with default options.
793
+ *
794
+ * @param document_id the outer document ID
795
+ * @param specs an object that specifies the types of lookups to perform
796
+ * @param options custom options to modify the lookup options
797
+ * @param handler callable that implements @ref lookup_in_handler
798
+ *
799
+ * @exception errc::key_value::document_not_found the given document id is not found in the
800
+ * collection.
801
+ * @exception errc::common::ambiguous_timeout
802
+ * @exception errc::common::unambiguous_timeout
803
+ *
804
+ * @since 1.0.0
805
+ * @committed
806
+ */
807
+ void lookup_in(std::string document_id,
808
+ const lookup_in_specs& specs,
809
+ const lookup_in_options& options,
810
+ lookup_in_handler&& handler) const;
811
+
812
+ /**
813
+ * Performs lookups to document fragments with default options.
814
+ *
815
+ * @param document_id the outer document ID
816
+ * @param specs an object that specifies the types of lookups to perform
817
+ * @param options custom options to modify the lookup options
818
+ * @return future object that carries result of the operation
819
+ *
820
+ * @exception errc::key_value::document_not_found the given document id is not found in the
821
+ * collection.
822
+ * @exception errc::common::ambiguous_timeout
823
+ * @exception errc::common::unambiguous_timeout
824
+ *
825
+ * @since 1.0.0
826
+ * @committed
827
+ */
828
+ [[nodiscard]] auto lookup_in(std::string document_id,
807
829
  const lookup_in_specs& specs,
808
- const lookup_in_any_replica_options& options,
809
- lookup_in_any_replica_handler&& handler) const;
810
-
811
- /**
812
- * Performs lookups to document fragments with default options from all replicas and returns the first found.
813
- *
814
- * @param document_id the outer document ID
815
- * @param specs an object that specifies the types of lookups to perform
816
- * @param options custom options to modify the lookup options
817
- * @return future object that carries result of the operation
818
- *
819
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
820
- * @exception errc::common::ambiguous_timeout
821
- * @exception errc::common::unambiguous_timeout
822
- *
823
- * @since 1.0.0
824
- * @committed
825
- */
826
- [[nodiscard]] auto lookup_in_any_replica(std::string document_id,
827
- const lookup_in_specs& specs,
828
- const lookup_in_any_replica_options& options = {}) const
829
- -> std::future<std::pair<subdocument_error_context, lookup_in_replica_result>>;
830
-
831
- /**
832
- * Gets a document for a given id and places a pessimistic lock on it for mutations
833
- *
834
- * @param document_id the id of the document
835
- * @param lock_duration the length of time the lock will be held on the document
836
- * @param options the options to customize
837
- * @param handler callable that implements @ref get_and_lock_handler
838
- *
839
- * @since 1.0.0
840
- * @committed
841
- */
842
- void get_and_lock(std::string document_id,
843
- std::chrono::seconds lock_duration,
844
- const get_and_lock_options& options,
845
- get_and_lock_handler&& handler) const;
846
-
847
- /**
848
- * Gets a document for a given id and places a pessimistic lock on it for mutations
849
- *
850
- * @param document_id the id of the document
851
- * @param lock_duration the length of time the lock will be held on the document
852
- * @param options the options to customize
853
- * @return future object that carries result of the operation
854
- *
855
- * @since 1.0.0
856
- * @committed
857
- */
858
- [[nodiscard]] auto get_and_lock(std::string document_id,
859
- std::chrono::seconds lock_duration,
860
- const get_and_lock_options& options = {}) const
861
- -> std::future<std::pair<key_value_error_context, get_result>>;
862
-
863
- /**
864
- * Unlocks a document if it has been locked previously, with default options.
865
- *
866
- * @param document_id the id of the document
867
- * @param cas the CAS value which is needed to unlock it
868
- * @param options the options to customize
869
- * @param handler callable that implements @ref unlock_handler
870
- *
871
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
872
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
873
- * @exception errc::common::ambiguous_timeout
874
- * @exception errc::common::unambiguous_timeout
875
- *
876
- * @since 1.0.0
877
- * @committed
878
- */
879
- void unlock(std::string document_id, couchbase::cas cas, const unlock_options& options, unlock_handler&& handler) const;
880
-
881
- /**
882
- * Unlocks a document if it has been locked previously, with default options.
883
- *
884
- * @param document_id the id of the document
885
- * @param cas the CAS value which is needed to unlock it
886
- * @param options the options to customize
887
- * @return future object that carries result of the operation
888
- *
889
- * @exception errc::key_value::document_not_found the given document id is not found in the collection.
890
- * @exception errc::common::cas_mismatch if the document has been concurrently modified on the server.
891
- * @exception errc::common::ambiguous_timeout
892
- * @exception errc::common::unambiguous_timeout
893
- *
894
- * @since 1.0.0
895
- * @committed
896
- */
897
- [[nodiscard]] auto unlock(std::string document_id, couchbase::cas cas, const unlock_options& options = {}) const
898
- -> std::future<key_value_error_context>;
899
-
900
- /**
901
- * Checks if the document exists on the server.
902
- *
903
- * @param document_id the id of the document
904
- * @param options the options to customize
905
- * @param handler callable that implements @ref exists_handler
906
- *
907
- * @exception errc::common::ambiguous_timeout
908
- * @exception errc::common::unambiguous_timeout
909
- *
910
- * @since 1.0.0
911
- * @committed
912
- */
913
- void exists(std::string document_id, const exists_options& options, exists_handler&& handler) const;
914
-
915
- /**
916
- * Checks if the document exists on the server.
917
- *
918
- * @param document_id the id of the document
919
- * @param options the options to customize
920
- * @return future object that carries result of the operation
921
- *
922
- * @exception errc::common::ambiguous_timeout
923
- * @exception errc::common::unambiguous_timeout
924
- *
925
- * @since 1.0.0
926
- * @committed
927
- */
928
- [[nodiscard]] auto exists(std::string document_id, const exists_options& options = {}) const
929
- -> std::future<std::pair<key_value_error_context, exists_result>>;
930
-
931
- /**
932
- * Performs a key-value scan operation on the collection.
933
- *
934
- * @param scan_type the type of the scan. Can be @ref range_scan, @ref prefix_scan or @ref sampling_scan
935
- * @param options the options to customize
936
- * @param handler callable that implements @ref scan_handler
937
- *
938
- * @note Use this API for low concurrency batch queries where latency is not critical as the system may have to scan
939
- * a lot of documents to find the matching documents. For low latency range queries, it is recommended that you use
940
- * SQL++ with the necessary indexes.
941
- *
942
- * @since 1.0.0
943
- * @volatile
944
- */
945
- void scan(const scan_type& scan_type, const scan_options& options, scan_handler&& handler) const;
946
-
947
- /**
948
- * Performs a key-value scan operation on the collection.
949
- *
950
- * @param scan_type the type of the scan. Can be @ref range_scan, @ref prefix_scan or @ref sampling_scan
951
- * @param options the options to customize
952
- * @return future object that carries result of the operation
953
- *
954
- * @note Use this API for low concurrency batch queries where latency is not critical as the system may have to scan
955
- * a lot of documents to find the matching documents. For low latency range queries, it is recommended that you use
956
- * SQL++ with the necessary indexes.
957
- *
958
- * @since 1.0.0
959
- * @volatile
960
- */
961
- [[nodiscard]] auto scan(const scan_type& scan_type, const scan_options& options = {}) const
962
- -> std::future<std::pair<std::error_code, scan_result>>;
963
-
964
- [[nodiscard]] auto query_indexes() const -> collection_query_index_manager;
965
-
966
- private:
967
- friend class bucket;
968
- friend class scope;
969
-
970
- collection(core::cluster core, std::string_view bucket_name, std::string_view scope_name, std::string_view name);
971
-
972
- std::shared_ptr<collection_impl> impl_;
830
+ const lookup_in_options& options = {}) const
831
+ -> std::future<std::pair<error, lookup_in_result>>;
832
+
833
+ /**
834
+ * Performs lookups to document fragments with default options from all replicas and the active
835
+ * node and returns the result as a vector.
836
+ *
837
+ * @param document_id the outer document ID
838
+ * @param specs an object that specifies the types of lookups to perform
839
+ * @param options custom options to modify the lookup options
840
+ * @param handler callable that implements @ref lookup_in_all_replicas_handler
841
+ *
842
+ * @exception errc::key_value::document_not_found the given document id is not found in the
843
+ * collection.
844
+ * @exception errc::common::ambiguous_timeout
845
+ * @exception errc::common::unambiguous_timeout
846
+ *
847
+ * @since 1.0.0
848
+ * @committed
849
+ */
850
+ void lookup_in_all_replicas(std::string document_id,
851
+ const lookup_in_specs& specs,
852
+ const lookup_in_all_replicas_options& options,
853
+ lookup_in_all_replicas_handler&& handler) const;
854
+
855
+ /**
856
+ * Performs lookups to document fragments with default options from all replicas and the active
857
+ * node and returns the result as a vector.
858
+ *
859
+ * @param document_id the outer document ID
860
+ * @param specs an object that specifies the types of lookups to perform
861
+ * @param options custom options to modify the lookup options
862
+ * @return future object that carries result of the operation
863
+ *
864
+ * @exception errc::key_value::document_not_found the given document id is not found in the
865
+ * collection.
866
+ * @exception errc::common::ambiguous_timeout
867
+ * @exception errc::common::unambiguous_timeout
868
+ *
869
+ * @since 1.0.0
870
+ * @committed
871
+ */
872
+ [[nodiscard]] auto lookup_in_all_replicas(std::string document_id,
873
+ const lookup_in_specs& specs,
874
+ const lookup_in_all_replicas_options& options = {})
875
+ const -> std::future<std::pair<error, lookup_in_all_replicas_result>>;
876
+
877
+ /**
878
+ * Performs lookups to document fragments with default options from all replicas and returns the
879
+ * first found.
880
+ *
881
+ * @param document_id the outer document ID
882
+ * @param specs an object that specifies the types of lookups to perform
883
+ * @param options custom options to modify the lookup options
884
+ * @param handler callable that implements @ref lookup_in_any_replica_handler
885
+ *
886
+ * @exception errc::key_value::document_not_found the given document id is not found in the
887
+ * collection.
888
+ * @exception errc::common::ambiguous_timeout
889
+ * @exception errc::common::unambiguous_timeout
890
+ *
891
+ * @since 1.0.0
892
+ * @committed
893
+ */
894
+ void lookup_in_any_replica(std::string document_id,
895
+ const lookup_in_specs& specs,
896
+ const lookup_in_any_replica_options& options,
897
+ lookup_in_any_replica_handler&& handler) const;
898
+
899
+ /**
900
+ * Performs lookups to document fragments with default options from all replicas and returns the
901
+ * first found.
902
+ *
903
+ * @param document_id the outer document ID
904
+ * @param specs an object that specifies the types of lookups to perform
905
+ * @param options custom options to modify the lookup options
906
+ * @return future object that carries result of the operation
907
+ *
908
+ * @exception errc::key_value::document_not_found the given document id is not found in the
909
+ * collection.
910
+ * @exception errc::common::ambiguous_timeout
911
+ * @exception errc::common::unambiguous_timeout
912
+ *
913
+ * @since 1.0.0
914
+ * @committed
915
+ */
916
+ [[nodiscard]] auto lookup_in_any_replica(std::string document_id,
917
+ const lookup_in_specs& specs,
918
+ const lookup_in_any_replica_options& options = {}) const
919
+ -> std::future<std::pair<error, lookup_in_replica_result>>;
920
+
921
+ /**
922
+ * Gets a document for a given id and places a pessimistic lock on it for mutations
923
+ *
924
+ * @param document_id the id of the document
925
+ * @param lock_duration the length of time the lock will be held on the document
926
+ * @param options the options to customize
927
+ * @param handler callable that implements @ref get_and_lock_handler
928
+ *
929
+ * @since 1.0.0
930
+ * @committed
931
+ */
932
+ void get_and_lock(std::string document_id,
933
+ std::chrono::seconds lock_duration,
934
+ const get_and_lock_options& options,
935
+ get_and_lock_handler&& handler) const;
936
+
937
+ /**
938
+ * Gets a document for a given id and places a pessimistic lock on it for mutations
939
+ *
940
+ * @param document_id the id of the document
941
+ * @param lock_duration the length of time the lock will be held on the document
942
+ * @param options the options to customize
943
+ * @return future object that carries result of the operation
944
+ *
945
+ * @since 1.0.0
946
+ * @committed
947
+ */
948
+ [[nodiscard]] auto get_and_lock(std::string document_id,
949
+ std::chrono::seconds lock_duration,
950
+ const get_and_lock_options& options = {}) const
951
+ -> std::future<std::pair<error, get_result>>;
952
+
953
+ /**
954
+ * Unlocks a document if it has been locked previously, with default options.
955
+ *
956
+ * @param document_id the id of the document
957
+ * @param cas the CAS value which is needed to unlock it
958
+ * @param options the options to customize
959
+ * @param handler callable that implements @ref unlock_handler
960
+ *
961
+ * @exception errc::key_value::document_not_found the given document id is not found in the
962
+ * collection.
963
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
964
+ * server.
965
+ * @exception errc::common::ambiguous_timeout
966
+ * @exception errc::common::unambiguous_timeout
967
+ *
968
+ * @since 1.0.0
969
+ * @committed
970
+ */
971
+ void unlock(std::string document_id,
972
+ couchbase::cas cas,
973
+ const unlock_options& options,
974
+ unlock_handler&& handler) const;
975
+
976
+ /**
977
+ * Unlocks a document if it has been locked previously, with default options.
978
+ *
979
+ * @param document_id the id of the document
980
+ * @param cas the CAS value which is needed to unlock it
981
+ * @param options the options to customize
982
+ * @return future object that carries result of the operation
983
+ *
984
+ * @exception errc::key_value::document_not_found the given document id is not found in the
985
+ * collection.
986
+ * @exception errc::common::cas_mismatch if the document has been concurrently modified on the
987
+ * server.
988
+ * @exception errc::common::ambiguous_timeout
989
+ * @exception errc::common::unambiguous_timeout
990
+ *
991
+ * @since 1.0.0
992
+ * @committed
993
+ */
994
+ [[nodiscard]] auto unlock(std::string document_id,
995
+ couchbase::cas cas,
996
+ const unlock_options& options = {}) const -> std::future<error>;
997
+
998
+ /**
999
+ * Checks if the document exists on the server.
1000
+ *
1001
+ * @param document_id the id of the document
1002
+ * @param options the options to customize
1003
+ * @param handler callable that implements @ref exists_handler
1004
+ *
1005
+ * @exception errc::common::ambiguous_timeout
1006
+ * @exception errc::common::unambiguous_timeout
1007
+ *
1008
+ * @since 1.0.0
1009
+ * @committed
1010
+ */
1011
+ void exists(std::string document_id,
1012
+ const exists_options& options,
1013
+ exists_handler&& handler) const;
1014
+
1015
+ /**
1016
+ * Checks if the document exists on the server.
1017
+ *
1018
+ * @param document_id the id of the document
1019
+ * @param options the options to customize
1020
+ * @return future object that carries result of the operation
1021
+ *
1022
+ * @exception errc::common::ambiguous_timeout
1023
+ * @exception errc::common::unambiguous_timeout
1024
+ *
1025
+ * @since 1.0.0
1026
+ * @committed
1027
+ */
1028
+ [[nodiscard]] auto exists(std::string document_id, const exists_options& options = {}) const
1029
+ -> std::future<std::pair<error, exists_result>>;
1030
+
1031
+ /**
1032
+ * Performs a key-value scan operation on the collection.
1033
+ *
1034
+ * @param scan_type the type of the scan. Can be @ref range_scan, @ref prefix_scan or @ref
1035
+ * sampling_scan
1036
+ * @param options the options to customize
1037
+ * @param handler callable that implements @ref scan_handler
1038
+ *
1039
+ * @note Use this API for low concurrency batch queries where latency is not critical as the
1040
+ * system may have to scan a lot of documents to find the matching documents. For low latency
1041
+ * range queries, it is recommended that you use SQL++ with the necessary indexes.
1042
+ *
1043
+ * @since 1.0.0
1044
+ * @volatile
1045
+ */
1046
+ void scan(const scan_type& scan_type, const scan_options& options, scan_handler&& handler) const;
1047
+
1048
+ /**
1049
+ * Performs a key-value scan operation on the collection.
1050
+ *
1051
+ * @param scan_type the type of the scan. Can be @ref range_scan, @ref prefix_scan or @ref
1052
+ * sampling_scan
1053
+ * @param options the options to customize
1054
+ * @return future object that carries result of the operation
1055
+ *
1056
+ * @note Use this API for low concurrency batch queries where latency is not critical as the
1057
+ * system may have to scan a lot of documents to find the matching documents. For low latency
1058
+ * range queries, it is recommended that you use SQL++ with the necessary indexes.
1059
+ *
1060
+ * @since 1.0.0
1061
+ * @volatile
1062
+ */
1063
+ [[nodiscard]] auto scan(const scan_type& scan_type, const scan_options& options = {}) const
1064
+ -> std::future<std::pair<error, scan_result>>;
1065
+
1066
+ [[nodiscard]] auto query_indexes() const -> collection_query_index_manager;
1067
+
1068
+ private:
1069
+ friend class bucket;
1070
+ friend class scope;
1071
+
1072
+ collection(core::cluster core,
1073
+ std::string_view bucket_name,
1074
+ std::string_view scope_name,
1075
+ std::string_view name);
1076
+
1077
+ std::shared_ptr<collection_impl> impl_;
973
1078
  };
974
1079
  } // namespace couchbase