couchbase 4.2.8-dev.1 → 4.2.9

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 (317) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +397 -424
  5. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  6. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  7. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  8. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  9. package/deps/couchbase-cxx-client/core/bucket.cxx +22 -8
  10. package/deps/couchbase-cxx-client/core/bucket.hxx +3 -1
  11. package/deps/couchbase-cxx-client/core/cluster.cxx +1453 -108
  12. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  13. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  14. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  15. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  16. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  17. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  18. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  19. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  20. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  21. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  22. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  23. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  24. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  25. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  26. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +78 -0
  27. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  28. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +226 -44
  29. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  30. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  31. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  32. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  33. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  34. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  35. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  36. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  37. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  38. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  39. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  40. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  41. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  42. package/deps/couchbase-cxx-client/core/impl/scope.cxx +172 -0
  43. package/deps/couchbase-cxx-client/core/impl/search.cxx +12 -61
  44. package/deps/couchbase-cxx-client/core/impl/search.hxx +37 -0
  45. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +469 -0
  46. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  47. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  48. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  49. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  50. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  51. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  52. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  53. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  54. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +51 -21
  55. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +2 -1
  56. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  57. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  58. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  59. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  60. package/deps/couchbase-cxx-client/core/meta/features.hxx +28 -0
  61. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +17 -1
  62. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  63. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  64. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  65. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  66. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  67. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  68. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  69. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  70. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  71. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  72. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  73. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  74. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  79. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +6 -5
  83. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  92. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  93. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  94. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  96. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  97. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  98. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  102. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  103. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +2 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  118. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  119. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  120. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  121. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  122. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  123. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  124. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  125. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  127. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  129. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  130. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  131. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  132. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  133. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  135. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  136. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  137. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  138. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  139. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  140. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  141. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  142. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  143. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  144. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  146. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  147. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  148. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  149. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  150. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  151. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +1 -13
  152. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  153. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  154. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  155. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  156. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  157. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  158. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  159. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  160. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  161. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  162. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  163. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  164. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  165. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  166. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  167. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  168. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  169. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  170. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  171. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +13 -30
  172. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  173. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  174. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +41 -73
  175. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  176. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  177. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  178. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  179. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  180. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  181. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +3 -2
  182. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  183. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  184. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  185. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  186. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  187. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  188. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  189. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  190. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  191. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  192. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  193. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  194. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  195. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  196. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  197. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  198. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  199. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  200. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  201. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  202. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  203. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  204. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  205. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  206. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  207. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  208. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  209. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  210. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +0 -23
  211. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  212. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  213. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  214. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  215. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  216. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  217. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  218. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  219. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  220. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  221. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  222. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  223. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  225. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  226. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  227. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  228. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  229. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  230. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  231. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  232. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  233. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  234. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  235. package/deps/couchbase-cxx-client/couchbase/scope.hxx +13 -45
  236. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  237. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  238. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  239. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  240. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  241. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  242. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  243. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  244. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  245. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  246. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  247. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  248. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  249. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  250. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  251. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  252. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  253. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  254. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  255. package/dist/binding.d.ts +7 -9
  256. package/dist/bindingutilities.js +2 -0
  257. package/dist/collection.js +3 -3
  258. package/dist/errors.d.ts +9 -0
  259. package/dist/errors.js +14 -2
  260. package/dist/transactions.d.ts +2 -0
  261. package/dist/transactions.js +2 -3
  262. package/dist/usermanager.js +1 -1
  263. package/package.json +7 -7
  264. package/src/binding.cpp +1 -0
  265. package/src/connection.cpp +12 -9
  266. package/src/connection.hpp +3 -3
  267. package/src/connection_autogen.cpp +7 -5
  268. package/src/constants.cpp +3 -0
  269. package/src/instance.cpp +2 -2
  270. package/src/instance.hpp +1 -1
  271. package/src/jstocbpp_autogen.hpp +21 -38
  272. package/src/jstocbpp_basic.hpp +2 -0
  273. package/src/jstocbpp_errors.hpp +1 -0
  274. package/src/jstocbpp_transactions.hpp +6 -22
  275. package/src/mutationtoken.hpp +1 -0
  276. package/tools/gen-bindings-json.py +39 -16
  277. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/CMakeLists.txt +0 -23
  278. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/example.cpp +0 -398
  279. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  280. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  281. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  282. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  283. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  284. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  285. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  286. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  287. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  288. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  289. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  290. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  291. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  292. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  293. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  294. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  295. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  296. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  297. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  298. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  299. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  300. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  301. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  302. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  303. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  304. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  305. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  306. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  307. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  308. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  309. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  310. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  311. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  312. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  313. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  314. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  315. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  316. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  317. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -109,28 +109,4 @@ struct insert_options : public common_durability_options<insert_options> {
109
109
  * @uncommitted
110
110
  */
111
111
  using insert_handler = std::function<void(couchbase::key_value_error_context, mutation_result)>;
112
-
113
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
114
- namespace core
115
- {
116
- class cluster;
117
- namespace impl
118
- {
119
-
120
- /**
121
- * @since 1.0.0
122
- * @internal
123
- */
124
- void
125
- initiate_insert_operation(std::shared_ptr<couchbase::core::cluster> core,
126
- std::string bucket_name,
127
- std::string scope_name,
128
- std::string collection_name,
129
- std::string document_key,
130
- couchbase::codec::encoded_value encoded,
131
- couchbase::insert_options::built options,
132
- couchbase::insert_handler&& handler);
133
- #endif
134
- } // namespace impl
135
- } // namespace core
136
112
  } // namespace couchbase
@@ -120,5 +120,17 @@ enum class key_value_error_map_attribute {
120
120
  * The error is related to rate limitation for the client (version 2)
121
121
  */
122
122
  rate_limit,
123
+
124
+ /**
125
+ * The error is related to a system-defined hard limit for resource usage.
126
+ * Retrying the operation will most likely not succeed unless an action was
127
+ * taken on the server to resolve the issue (version 2)
128
+ */
129
+ system_constraint,
130
+
131
+ /**
132
+ * The client should not retry the operation.
133
+ */
134
+ no_retry,
123
135
  };
124
136
  } // namespace couchbase
@@ -34,6 +34,7 @@ enum class key_value_status_code : std::uint16_t {
34
34
  dcp_stream_not_found = 0x0a,
35
35
  opaque_no_match = 0x0b,
36
36
  locked = 0x09,
37
+ not_locked = 0x0e,
37
38
  auth_stale = 0x1f,
38
39
  auth_error = 0x20,
39
40
  auth_continue = 0x21,
@@ -92,28 +92,4 @@ struct lookup_in_options : public common_durability_options<lookup_in_options> {
92
92
  * @uncommitted
93
93
  */
94
94
  using lookup_in_handler = std::function<void(couchbase::subdocument_error_context, lookup_in_result)>;
95
-
96
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
97
- namespace core
98
- {
99
- class cluster;
100
- namespace impl
101
- {
102
-
103
- /**
104
- * @since 1.0.0
105
- * @internal
106
- */
107
- void
108
- initiate_lookup_in_operation(std::shared_ptr<couchbase::core::cluster> core,
109
- std::string bucket_name,
110
- std::string scope_name,
111
- std::string collection_name,
112
- std::string document_key,
113
- const std::vector<couchbase::core::impl::subdoc::command>& specs,
114
- couchbase::lookup_in_options::built options,
115
- couchbase::lookup_in_handler&& handler);
116
- #endif
117
- } // namespace impl
118
- } // namespace core
119
95
  } // namespace couchbase
@@ -0,0 +1,48 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <string>
21
+
22
+ namespace couchbase::management
23
+ {
24
+ /**
25
+ * Represents a dataset (collection) in the analytics service
26
+ */
27
+ struct analytics_dataset {
28
+ /**
29
+ * The name of the dataset (collection)
30
+ */
31
+ std::string name;
32
+
33
+ /**
34
+ * The name of the dataverse (scope) the dataset is stored in
35
+ */
36
+ std::string dataverse_name;
37
+
38
+ /**
39
+ * The name of the analytics link that is associated with the dataset
40
+ */
41
+ std::string link_name;
42
+
43
+ /**
44
+ * The name of the bucket that the dataset includes
45
+ */
46
+ std::string bucket_name;
47
+ };
48
+ } // namespace couchbase::management
@@ -0,0 +1,48 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <string>
21
+
22
+ namespace couchbase::management
23
+ {
24
+ /**
25
+ * Represents an index in the analytics service.
26
+ */
27
+ struct analytics_index {
28
+ /**
29
+ * The name of the analytics index
30
+ */
31
+ std::string name;
32
+
33
+ /**
34
+ * The name of the dataset (collection) this index is part of
35
+ */
36
+ std::string dataset_name;
37
+
38
+ /**
39
+ * The name of the dataverse (scope) this index is part of
40
+ */
41
+ std::string dataverse_name;
42
+
43
+ /**
44
+ * Whether this index is a primary index
45
+ */
46
+ bool is_primary;
47
+ };
48
+ } // namespace couchbase::management
@@ -0,0 +1,239 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <optional>
21
+ #include <string>
22
+
23
+ namespace couchbase::management
24
+ {
25
+
26
+ enum analytics_link_type {
27
+ /**
28
+ * S3 external analytics link. Corresponds to a @ref s3_external_analytics_link
29
+ */
30
+ s3_external,
31
+
32
+ /**
33
+ * Azure external analytics link. Corresponds to a @ref azure_blob_external_analytics_link
34
+ */
35
+ azure_external,
36
+
37
+ /**
38
+ * A remote analytics link that uses a Couchbase data service that is not part of the same cluster as the Analytics service.
39
+ * Corresponds to a @ref couchbase_remote_analytics_link
40
+ */
41
+ couchbase_remote,
42
+ };
43
+
44
+ enum analytics_encryption_level {
45
+ /**
46
+ * Connect to the remote Couchbase cluster using an unsecured channel. Send the password in plaintext.
47
+ */
48
+ none,
49
+
50
+ /**
51
+ * Connect to the remote Couchbase cluster using an unsecured channel. Send the password securely using SASL.
52
+ */
53
+ half,
54
+
55
+ /**
56
+ * Connect to the remote Couchbase cluster using a channel secured by TLS. If a password is used, it is sent over the secure channel.
57
+ *
58
+ * Requires specifying the certificate to trust.
59
+ */
60
+ full
61
+ };
62
+
63
+ struct analytics_link {
64
+ std::string name;
65
+ std::string dataverse_name;
66
+
67
+ virtual ~analytics_link() = default;
68
+
69
+ /**
70
+ * Returns the type of this analytics link
71
+ *
72
+ * @return the link type
73
+ */
74
+ [[nodiscard]] virtual analytics_link_type link_type() const = 0;
75
+
76
+ analytics_link() = default;
77
+ analytics_link(std::string name, std::string dataverse_name);
78
+ };
79
+
80
+ struct couchbase_analytics_encryption_settings {
81
+ /**
82
+ * Specifies what level of encryption should be applied
83
+ */
84
+ analytics_encryption_level encryption_level{ analytics_encryption_level::none };
85
+
86
+ /**
87
+ * The certificate to use for encryption when the encryption level is set to 'full'.
88
+ */
89
+ std::optional<std::string> certificate{};
90
+
91
+ /**
92
+ * The certificate to use for authenticating when the encryption level is set to 'full'. Cannot be set if a username and password are
93
+ * provided
94
+ */
95
+ std::optional<std::string> client_certificate{};
96
+
97
+ /**
98
+ * The client key to use for authenticating when the encryption level is set to 'full'. Cannot be set if a username and password are
99
+ * provided
100
+ */
101
+ std::optional<std::string> client_key{};
102
+ };
103
+
104
+ struct couchbase_remote_analytics_link : analytics_link {
105
+ std::string hostname;
106
+ couchbase_analytics_encryption_settings encryption{};
107
+ std::optional<std::string> username{};
108
+ std::optional<std::string> password{};
109
+
110
+ [[nodiscard]] analytics_link_type link_type() const override
111
+ {
112
+ return analytics_link_type::couchbase_remote;
113
+ }
114
+
115
+ /**
116
+ * Constructs an empty remote Couchbase analytics link.
117
+ *
118
+ * @since 1.0.0
119
+ * @committed
120
+ */
121
+ couchbase_remote_analytics_link() = default;
122
+
123
+ /**
124
+ * Constructs and initializes a remote Couchbase analytics link with the given parameters. A remote analytics link uses a Couchbase data
125
+ * service that is not part of the same cluster as the Analytics service.
126
+ *
127
+ * @param name the name of the link
128
+ * @param dataverse_name the dataverse that the link belongs to. Its format can be one part `dataversename` or two parts
129
+ * `bucket_name/scope_name`
130
+ * @param hostname the hostname of the target Couchbase cluster
131
+ * @param encryption the encryption settings for the link
132
+ * @param username the username to use for authentication with the remote cluster. Optional if client certificate authentication is
133
+ * being used
134
+ * @param password the password to use for authentication with the remote cluster. Optional if client-certificate authentication is
135
+ * being used
136
+ *
137
+ * @since 1.0.0
138
+ * @committed
139
+ */
140
+ couchbase_remote_analytics_link(std::string name,
141
+ std::string dataverse_name,
142
+ std::string hostname,
143
+ couchbase_analytics_encryption_settings encryption = {},
144
+ std::optional<std::string> username = {},
145
+ std::optional<std::string> password = {});
146
+ };
147
+
148
+ struct s3_external_analytics_link : analytics_link {
149
+ std::string access_key_id;
150
+ std::string secret_access_key;
151
+ std::string region;
152
+ std::optional<std::string> session_token{};
153
+ std::optional<std::string> service_endpoint{};
154
+
155
+ [[nodiscard]] analytics_link_type link_type() const override
156
+ {
157
+ return analytics_link_type::s3_external;
158
+ }
159
+
160
+ /**
161
+ * Constructs an empty external S3 analytics link
162
+ *
163
+ * @committed
164
+ * @since 1.0.0
165
+ */
166
+ s3_external_analytics_link() = default;
167
+
168
+ /**
169
+ * Constructs and initializes an external S3 analytics link with the given parameters.
170
+ *
171
+ * @param name the name of the link
172
+ * @param dataverse_name the name of the dataverse the link belongs to
173
+ * @param access_key_id the AWS S3 access key
174
+ * @param secret_access_key the AWS S3 secret key
175
+ * @param region the AWS S3 region
176
+ * @param session_token the AWS S3 token if temporary credentials are provided
177
+ * @param service_endpoint the AWS S3 service endpoint
178
+ *
179
+ * @committed
180
+ * @since 1.0.0
181
+ */
182
+ s3_external_analytics_link(std::string name,
183
+ std::string dataverse_name,
184
+ std::string access_key_id,
185
+ std::string secret_access_key,
186
+ std::string region,
187
+ std::optional<std::string> session_token = {},
188
+ std::optional<std::string> service_endpoint = {});
189
+ };
190
+
191
+ struct azure_blob_external_analytics_link : analytics_link {
192
+ std::optional<std::string> connection_string{};
193
+ std::optional<std::string> account_name{};
194
+ std::optional<std::string> account_key{};
195
+ std::optional<std::string> shared_access_signature{};
196
+ std::optional<std::string> blob_endpoint{};
197
+ std::optional<std::string> endpoint_suffix{};
198
+
199
+ [[nodiscard]] analytics_link_type link_type() const override
200
+ {
201
+ return analytics_link_type::azure_external;
202
+ }
203
+
204
+ /**
205
+ * Constructs an empty external Azure blob analytics link.
206
+ *
207
+ * @committed
208
+ * @since 1.0.0
209
+ */
210
+ azure_blob_external_analytics_link() = default;
211
+
212
+ /**
213
+ * Constructs and initializes an external Azure blob analytics link.
214
+ *
215
+ * @param name the name of the link
216
+ * @param dataverse_name the name of the dataverse the link belongs to
217
+ * @param connection_string the connection string that can be used as an authentication method. It contains other authentication methods
218
+ * embedded inside the string. Only a single authentication method can be used (e.g.
219
+ * "AccountName=myAccountName;AccountKey=myAccountKey").
220
+ * @param account_name the Azure blob storage account name
221
+ * @param account_key the Azure blob storage account key
222
+ * @param shared_access_signature token that can be used for authentication
223
+ * @param blob_endpoint the Azure blob storage endpoint
224
+ * @param endpoint_suffix the Azure blob endpoint suffix
225
+ *
226
+ * @committed
227
+ * @since 1.0.0
228
+ */
229
+ azure_blob_external_analytics_link(std::string name,
230
+ std::string dataverse_name,
231
+ std::optional<std::string> connection_string = {},
232
+ std::optional<std::string> account_name = {},
233
+ std::optional<std::string> account_key = {},
234
+ std::optional<std::string> shared_access_signature = {},
235
+ std::optional<std::string> blob_endpoint = {},
236
+ std::optional<std::string> endpoint_suffix = {});
237
+ };
238
+
239
+ } // namespace couchbase::management
@@ -21,9 +21,9 @@
21
21
  #include <string>
22
22
  #include <vector>
23
23
 
24
- namespace couchbase::management::query
24
+ namespace couchbase::management
25
25
  {
26
- struct index {
26
+ struct query_index {
27
27
  bool is_primary{ false };
28
28
  std::string name;
29
29
  std::string state;
@@ -36,4 +36,4 @@ struct index {
36
36
  std::optional<std::string> collection_name{};
37
37
  };
38
38
 
39
- } // namespace couchbase::management::query
39
+ } // namespace couchbase::management
@@ -0,0 +1,40 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020-2021 Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <map>
21
+ #include <optional>
22
+ #include <string>
23
+ #include <vector>
24
+
25
+ namespace couchbase::management::search
26
+ {
27
+ struct index {
28
+
29
+ std::string name;
30
+ std::string type = "fulltext-index";
31
+ std::string source_name;
32
+ std::string source_type = "couchbase";
33
+
34
+ std::optional<std::string> uuid; // Must be empty on create, set on update
35
+ std::optional<std::string> params_json;
36
+ std::optional<std::string> source_uuid;
37
+ std::optional<std::string> source_params_json;
38
+ std::optional<std::string> plan_params_json;
39
+ };
40
+ } // namespace couchbase::management::search
@@ -17,7 +17,6 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include "core/impl/internal_manager_error_context.hxx"
21
20
  #include <couchbase/error_context.hxx>
22
21
 
23
22
  #include <cstdint>
@@ -206,28 +206,4 @@ struct mutate_in_options : public common_durability_options<mutate_in_options> {
206
206
  * @uncommitted
207
207
  */
208
208
  using mutate_in_handler = std::function<void(couchbase::subdocument_error_context, mutate_in_result)>;
209
-
210
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
211
- namespace core
212
- {
213
- class cluster;
214
- namespace impl
215
- {
216
-
217
- /**
218
- * @since 1.0.0
219
- * @internal
220
- */
221
- void
222
- initiate_mutate_in_operation(std::shared_ptr<couchbase::core::cluster> core,
223
- std::string bucket_name,
224
- std::string scope_name,
225
- std::string collection_name,
226
- std::string document_key,
227
- const std::vector<couchbase::core::impl::subdoc::command>& specs,
228
- couchbase::mutate_in_options::built options,
229
- couchbase::mutate_in_handler&& handler);
230
- #endif
231
- } // namespace impl
232
- } // namespace core
233
209
  } // namespace couchbase
@@ -17,7 +17,7 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include "ip_protocol.hxx"
20
+ #include <couchbase/ip_protocol.hxx>
21
21
 
22
22
  #include <cstdint>
23
23
  #include <optional>
@@ -0,0 +1,43 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020-Present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <couchbase/common_options.hxx>
21
+
22
+ #include <functional>
23
+ #include <memory>
24
+ #include <optional>
25
+ #include <string>
26
+
27
+ namespace couchbase
28
+ {
29
+ struct pause_ingest_search_index_options : public common_options<pause_ingest_search_index_options> {
30
+ public:
31
+ struct built : public common_options<pause_ingest_search_index_options>::built {
32
+ };
33
+
34
+ [[nodiscard]] auto build() const -> built
35
+ {
36
+ return { build_common_options() };
37
+ }
38
+
39
+ private:
40
+ };
41
+
42
+ using pause_ingest_search_index_handler = std::function<void(couchbase::manager_error_context)>;
43
+ } // namespace couchbase
@@ -62,6 +62,25 @@ class phrase_query : public search_query
62
62
  }
63
63
  }
64
64
 
65
+ /**
66
+ * Create a new phrase query.
67
+ *
68
+ * The mandatory list of terms that must exactly match in the index. Note that the index can (and usually will) contain terms that are
69
+ * derived from the text in documents, as analyzers can apply process like stemming.
70
+ *
71
+ * @param terms non-empty vector of terms.
72
+ *
73
+ * @since 1.0.0
74
+ * @committed
75
+ */
76
+ explicit phrase_query(std::vector<std::string> terms)
77
+ : terms_{ std::move(terms) }
78
+ {
79
+ if (terms_.empty()) {
80
+ throw std::invalid_argument("terms must not be empty in phrase_query");
81
+ }
82
+ }
83
+
65
84
  /**
66
85
  * If a field is specified, only terms in that field will be matched.
67
86
  *
@@ -97,28 +97,4 @@ struct prepend_options : public common_durability_options<prepend_options> {
97
97
  * @uncommitted
98
98
  */
99
99
  using prepend_handler = std::function<void(couchbase::key_value_error_context, mutation_result)>;
100
-
101
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
102
- namespace core
103
- {
104
- class cluster;
105
- namespace impl
106
- {
107
-
108
- /**
109
- * @since 1.0.0
110
- * @internal
111
- */
112
- void
113
- initiate_prepend_operation(std::shared_ptr<couchbase::core::cluster> core,
114
- std::string bucket_name,
115
- std::string scope_name,
116
- std::string collection_name,
117
- std::string document_key,
118
- std::vector<std::byte> data,
119
- prepend_options::built options,
120
- prepend_handler&& handler);
121
- #endif
122
- } // namespace impl
123
- } // namespace core
124
100
  } // namespace couchbase