couchbase 4.2.8 → 4.2.10

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 (370) 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 +401 -424
  5. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
  6. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
  7. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  8. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  9. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  10. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  11. package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
  12. package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
  13. package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
  14. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  15. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  16. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  17. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  18. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  19. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  20. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  21. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  22. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  23. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  24. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  25. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  26. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  27. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  28. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
  29. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  30. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
  31. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  32. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  33. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  34. package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
  35. package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
  36. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  37. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  38. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  39. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  40. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  41. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  42. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  43. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  44. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  45. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  46. package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
  47. package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
  48. package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
  49. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
  50. package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
  51. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  52. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  53. package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
  54. package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
  55. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  56. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  57. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  58. package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
  59. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  60. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  61. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
  63. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
  64. package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
  65. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  66. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  67. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  68. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
  70. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
  71. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  72. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
  73. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
  74. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  85. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  90. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
  91. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
  92. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
  94. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
  96. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  106. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  107. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  108. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  109. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  111. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  115. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  116. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
  117. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
  119. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
  121. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
  123. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
  125. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
  129. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
  131. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
  134. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  139. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  140. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  141. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  142. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  143. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  144. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  145. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  146. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  147. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  148. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  149. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  151. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  152. package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
  153. package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
  154. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  155. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  156. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  157. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  159. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  160. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  161. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  162. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  163. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  164. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  165. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  166. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  167. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  168. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  170. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  171. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  172. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  173. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  174. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  175. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
  176. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  177. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  178. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  179. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  180. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  181. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  182. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  183. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  184. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  185. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  186. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  187. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  188. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  189. package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
  190. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  191. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  192. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  193. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  194. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  195. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  196. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
  197. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  198. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  199. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
  200. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  201. package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
  202. package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
  203. package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
  204. package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
  205. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  206. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  207. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  208. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  209. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  210. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
  211. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  212. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  213. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  214. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  215. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  216. package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
  217. package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
  218. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  219. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  220. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  221. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  222. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  223. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  224. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  225. package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
  226. package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
  227. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  228. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  229. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  230. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  231. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  232. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  233. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  234. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  235. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  236. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  237. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  238. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  239. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  240. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  241. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  242. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  243. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
  244. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  245. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  246. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  247. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  248. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  249. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  250. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  251. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  252. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  253. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  254. package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
  255. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  256. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  257. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  258. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  259. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  260. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  261. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  262. package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
  263. package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
  264. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  265. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  266. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  267. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  268. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  269. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  270. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  271. package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
  272. package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
  273. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  274. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  275. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  276. package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
  277. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  278. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  279. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  280. package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
  281. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  282. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  283. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  284. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  285. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  286. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  287. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  288. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  289. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  290. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  291. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  292. package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
  293. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  294. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  295. package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
  296. package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
  297. package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
  298. package/dist/binding.d.ts +16 -9
  299. package/dist/binding.js +4 -1
  300. package/dist/bindingutilities.d.ts +6 -1
  301. package/dist/bindingutilities.js +17 -1
  302. package/dist/cluster.d.ts +12 -1
  303. package/dist/cluster.js +22 -0
  304. package/dist/collection.js +3 -3
  305. package/dist/couchbase.d.ts +1 -0
  306. package/dist/couchbase.js +1 -0
  307. package/dist/errors.d.ts +9 -0
  308. package/dist/errors.js +14 -2
  309. package/dist/searchexecutor.d.ts +2 -2
  310. package/dist/searchexecutor.js +19 -3
  311. package/dist/searchtypes.d.ts +46 -0
  312. package/dist/searchtypes.js +81 -1
  313. package/dist/transactions.d.ts +2 -0
  314. package/dist/transactions.js +2 -3
  315. package/dist/usermanager.js +1 -1
  316. package/dist/vectorsearch.d.ts +99 -0
  317. package/dist/vectorsearch.js +132 -0
  318. package/package.json +7 -7
  319. package/src/binding.cpp +1 -0
  320. package/src/connection.cpp +12 -9
  321. package/src/connection.hpp +3 -3
  322. package/src/connection_autogen.cpp +7 -5
  323. package/src/constants.cpp +14 -0
  324. package/src/instance.cpp +2 -2
  325. package/src/instance.hpp +1 -1
  326. package/src/jstocbpp_autogen.hpp +45 -45
  327. package/src/jstocbpp_basic.hpp +2 -0
  328. package/src/jstocbpp_errors.hpp +1 -0
  329. package/src/jstocbpp_transactions.hpp +6 -22
  330. package/src/mutationtoken.hpp +1 -0
  331. package/tools/gen-bindings-json.py +41 -16
  332. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  333. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  334. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  335. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  336. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  337. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  338. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  339. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  340. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  341. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  342. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  343. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  344. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  345. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  346. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  347. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  348. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  349. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  350. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  351. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  352. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  353. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  354. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  355. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  356. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  357. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  358. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  359. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  360. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  361. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  362. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  363. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  364. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  365. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  366. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  367. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  368. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  369. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  370. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -20,20 +20,24 @@
20
20
  #include <couchbase/analytics_options.hxx>
21
21
  #include <couchbase/collection.hxx>
22
22
  #include <couchbase/query_options.hxx>
23
+ #include <couchbase/scope_search_index_manager.hxx>
23
24
  #include <couchbase/search_options.hxx>
24
25
  #include <couchbase/search_query.hxx>
26
+ #include <couchbase/search_request.hxx>
25
27
 
26
28
  #include <memory>
27
29
 
28
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
29
30
  namespace couchbase
30
31
  {
32
+ #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
33
+ namespace core
34
+ {
31
35
  class cluster;
32
- } // namespace couchbase
36
+ } // namespace core
37
+ class bucket;
38
+ class scope_impl;
33
39
  #endif
34
40
 
35
- namespace couchbase
36
- {
37
41
  /**
38
42
  * The scope identifies a group of collections and allows high application density as a result.
39
43
  *
@@ -58,10 +62,7 @@ class scope
58
62
  * @since 1.0.0
59
63
  * @committed
60
64
  */
61
- [[nodiscard]] auto bucket_name() const -> const std::string&
62
- {
63
- return bucket_name_;
64
- }
65
+ [[nodiscard]] auto bucket_name() const -> const std::string&;
65
66
 
66
67
  /**
67
68
  * Returns name of the scope.
@@ -71,10 +72,7 @@ class scope
71
72
  * @since 1.0.0
72
73
  * @committed
73
74
  */
74
- [[nodiscard]] auto name() const -> const std::string&
75
- {
76
- return name_;
77
- }
75
+ [[nodiscard]] auto name() const -> const std::string&;
78
76
 
79
77
  /**
80
78
  * Opens a collection for this scope with an explicit name.
@@ -85,16 +83,11 @@ class scope
85
83
  * @since 1.0.0
86
84
  * @committed
87
85
  */
88
- [[nodiscard]] auto collection(std::string_view collection_name) const -> collection
89
- {
90
- return { core_, bucket_name_, name_, collection_name };
91
- }
86
+ [[nodiscard]] auto collection(std::string_view collection_name) const -> collection;
92
87
 
93
88
  /**
94
89
  * Performs a query against the query (N1QL) services.
95
90
  *
96
- * @tparam Handler callable type that implements @ref query_handler signature
97
- *
98
91
  * @param statement the N1QL query statement.
99
92
  * @param options options to customize the query request.
100
93
  * @param handler the handler that implements @ref query_handler
@@ -105,15 +98,7 @@ class scope
105
98
  * @since 1.0.0
106
99
  * @committed
107
100
  */
108
- template<typename Handler>
109
- void query(std::string statement, const query_options& options, Handler&& handler) const
110
- {
111
- return core::impl::initiate_query_operation(core_,
112
- std::move(statement),
113
- fmt::format("default:`{}`.`{}`", bucket_name_, name_),
114
- options.build(),
115
- std::forward<Handler>(handler));
116
- }
101
+ void query(std::string statement, const query_options& options, query_handler&& handler) const;
117
102
 
118
103
  /**
119
104
  * Performs a query against the query (N1QL) services.
@@ -126,21 +111,15 @@ class scope
126
111
  * @committed
127
112
  */
128
113
  [[nodiscard]] auto query(std::string statement, const query_options& options = {}) const
129
- -> std::future<std::pair<query_error_context, query_result>>
130
- {
131
- auto barrier = std::make_shared<std::promise<std::pair<query_error_context, query_result>>>();
132
- auto future = barrier->get_future();
133
- query(std::move(statement), options, [barrier](auto ctx, auto result) {
134
- barrier->set_value({ std::move(ctx), std::move(result) });
135
- });
136
- return future;
137
- }
114
+ -> std::future<std::pair<query_error_context, query_result>>;
138
115
 
139
116
  /**
140
- * Performs a query against the full text search services.
117
+ * Performs a request against the full text search services.
118
+ *
119
+ * This can be used to perform a traditional FTS query, and/or a vector search.
141
120
  *
142
121
  * @param index_name name of the search index
143
- * @param query query object, see hierarchy of @ref search_query for more details.
122
+ * @param request request object, see @ref search_request for more details.
144
123
  * @param options options to customize the query request.
145
124
  * @param handler the handler that implements @ref search_handler
146
125
  *
@@ -150,15 +129,17 @@ class scope
150
129
  * @see https://docs.couchbase.com/server/current/fts/fts-introduction.html
151
130
  *
152
131
  * @since 1.0.0
153
- * @committed
132
+ * @volatile
154
133
  */
155
- void search_query(std::string index_name, const search_query& query, const search_options& options, search_handler&& handler) const;
134
+ void search(std::string index_name, search_request request, const search_options& options, search_handler&& handler) const;
156
135
 
157
136
  /**
158
- * Performs a query against the full text search services.
137
+ * Performs a request against the full text search services.
138
+ *
139
+ * This can be used to perform a traditional FTS query, and/or a vector search.
159
140
  *
160
141
  * @param index_name name of the search index
161
- * @param query query object, see hierarchy of @ref search_query for more details.
142
+ * @param request request object, see @ref search_request for more details.
162
143
  * @param options options to customize the query request.
163
144
  * @return future object that carries result of the operation
164
145
  *
@@ -168,9 +149,9 @@ class scope
168
149
  * @see https://docs.couchbase.com/server/current/fts/fts-introduction.html
169
150
  *
170
151
  * @since 1.0.0
171
- * @committed
152
+ * @volatile
172
153
  */
173
- [[nodiscard]] auto search_query(std::string index_name, const class search_query& query, const search_options& options = {}) const
154
+ [[nodiscard]] auto search(std::string index_name, search_request request, const search_options& = {}) const
174
155
  -> std::future<std::pair<search_error_context, search_result>>;
175
156
 
176
157
  /**
@@ -205,18 +186,21 @@ class scope
205
186
  [[nodiscard]] auto analytics_query(std::string statement, const analytics_options& options = {}) const
206
187
  -> std::future<std::pair<analytics_error_context, analytics_result>>;
207
188
 
189
+ /**
190
+ * Provides access to search index management services at the scope level
191
+ *
192
+ * @return a manager instance
193
+ *
194
+ * @since 1.0.0
195
+ * @volatile
196
+ */
197
+ [[nodiscard]] auto search_indexes() const -> scope_search_index_manager;
198
+
208
199
  private:
209
200
  friend class bucket;
210
201
 
211
- scope(std::shared_ptr<couchbase::core::cluster> core, std::string_view bucket_name, std::string_view name)
212
- : core_(std::move(core))
213
- , bucket_name_(bucket_name)
214
- , name_(name)
215
- {
216
- }
202
+ scope(core::cluster core, std::string_view bucket_name, std::string_view name);
217
203
 
218
- std::shared_ptr<couchbase::core::cluster> core_;
219
- std::string bucket_name_;
220
- std::string name_;
204
+ std::shared_ptr<scope_impl> impl_;
221
205
  };
222
206
  } // namespace couchbase
@@ -0,0 +1,291 @@
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/allow_querying_search_index_options.hxx>
21
+ #include <couchbase/analyze_document_options.hxx>
22
+ #include <couchbase/disallow_querying_search_index_options.hxx>
23
+ #include <couchbase/drop_search_index_options.hxx>
24
+ #include <couchbase/freeze_plan_search_index_options.hxx>
25
+ #include <couchbase/get_all_search_indexes_options.hxx>
26
+ #include <couchbase/get_indexed_search_index_options.hxx>
27
+ #include <couchbase/get_search_index_options.hxx>
28
+ #include <couchbase/pause_ingest_search_index_options.hxx>
29
+ #include <couchbase/resume_ingest_search_index_options.hxx>
30
+ #include <couchbase/unfreeze_plan_search_index_options.hxx>
31
+ #include <couchbase/upsert_search_index_options.hxx>
32
+
33
+ #include <future>
34
+
35
+ #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
36
+ namespace couchbase
37
+ {
38
+ namespace core
39
+ {
40
+ class cluster;
41
+ } // namespace core
42
+ class search_index_manager_impl;
43
+ } // namespace couchbase
44
+ #endif
45
+
46
+ namespace couchbase
47
+ {
48
+ class scope;
49
+
50
+ class scope_search_index_manager
51
+ {
52
+ public:
53
+ /**
54
+ * Fetches a scope-level index from the server if it exists
55
+ *
56
+ * @param index_name the name of the index
57
+ * @param options optional parameters
58
+ * @param handler handler that implements @ref get_search_index_handler
59
+ *
60
+ * @since 1.0.0
61
+ * @volatile
62
+ */
63
+ void get_index(std::string index_name, const get_search_index_options& options, get_search_index_handler&& handler) const;
64
+
65
+ [[nodiscard]] auto get_index(std::string index_name, const get_search_index_options& options = {}) const
66
+ -> std::future<std::pair<manager_error_context, management::search::index>>;
67
+
68
+ /**
69
+ * Fetches all scope-level indexes from the server
70
+ *
71
+ * @param options optional parameters
72
+ * @param handler handler that implements @ref get_all_search_indexes_handler
73
+ *
74
+ * @since 1.0.0
75
+ * @volatile
76
+ */
77
+ void get_all_indexes(const get_all_search_indexes_options& options, get_all_search_indexes_handler&& handler) const;
78
+
79
+ [[nodiscard]] auto get_all_indexes(const get_all_search_indexes_options& options = {}) const
80
+ -> std::future<std::pair<manager_error_context, std::vector<management::search::index>>>;
81
+
82
+ /**
83
+ * Creates, or updates a scope-level index
84
+ *
85
+ * @param search_index the index definition including name and settings
86
+ * @param options optional parameters
87
+ * @param handler handler that implements @ref upsert_search_index_handler
88
+ *
89
+ * @since 1.0.0
90
+ * @volatile
91
+ */
92
+ void upsert_index(const management::search::index& search_index,
93
+ const upsert_search_index_options& options,
94
+ upsert_search_index_handler&& handler) const;
95
+
96
+ [[nodiscard]] auto upsert_index(const management::search::index& search_index, const upsert_search_index_options& options = {}) const
97
+ -> std::future<manager_error_context>;
98
+
99
+ /**
100
+ * Drops a scope-level index
101
+ *
102
+ * @param index_name the name of the search index
103
+ * @param options optional parameters
104
+ * @param handler handler that implements @ref drop_search_index_handler
105
+ *
106
+ * @since 1.0.0
107
+ * @volatile
108
+ */
109
+ void drop_index(std::string index_name, const drop_search_index_options& options, drop_search_index_handler&& handler) const;
110
+
111
+ [[nodiscard]] auto drop_index(std::string index_name, const drop_search_index_options& options = {}) const
112
+ -> std::future<manager_error_context>;
113
+
114
+ /**
115
+ * Retrieves the number of documents that have been indexed for a scope-level index
116
+ *
117
+ * @param index_name the name of the search index
118
+ * @param options optional parameters
119
+ * @param handler handler that implements @ref get_indexed_search_index_handler
120
+ *
121
+ * @since 1.0.0
122
+ * @volatile
123
+ */
124
+ void get_indexed_documents_count(std::string index_name,
125
+ const get_indexed_search_index_options& options,
126
+ get_indexed_search_index_handler&& handler) const;
127
+
128
+ [[nodiscard]] auto get_indexed_documents_count(std::string index_name, const get_indexed_search_index_options& options = {}) const
129
+ -> std::future<std::pair<manager_error_context, std::uint64_t>>;
130
+
131
+ /**
132
+ * Pauses updates and maintenance for a scope-level index.
133
+ *
134
+ * @param index_name the name of the search index
135
+ * @param options optional parameters
136
+ * @param handler handler that implements @ref pause_ingest_search_index_handler
137
+ *
138
+ * @since 1.0.0
139
+ * @volatile
140
+ */
141
+ void pause_ingest(std::string index_name,
142
+ const pause_ingest_search_index_options& options,
143
+ pause_ingest_search_index_handler&& handler) const;
144
+
145
+ [[nodiscard]] auto pause_ingest(std::string index_name, const pause_ingest_search_index_options& options = {}) const
146
+ -> std::future<manager_error_context>;
147
+
148
+ /**
149
+ * Resumes updates and maintenance for a scope-level index.
150
+ *
151
+ * @param index_name the name of the search index
152
+ * @param options optional parameters
153
+ * @param handler handler that implements @ref resume_ingest_search_index_handler
154
+ *
155
+ * @since 1.0.0
156
+ * @volatile
157
+ */
158
+ void resume_ingest(std::string index_name,
159
+ const resume_ingest_search_index_options& options,
160
+ resume_ingest_search_index_handler&& handler) const;
161
+
162
+ [[nodiscard]] auto resume_ingest(std::string index_name, const resume_ingest_search_index_options& options = {}) const
163
+ -> std::future<manager_error_context>;
164
+
165
+ /**
166
+ * Allows querying against a scope-level index
167
+ *
168
+ * @param index_name the name of the search index
169
+ * @param options optional parameters
170
+ * @param handler handler that implements @ref allow_querying_search_index_handler
171
+ *
172
+ * @since 1.0.0
173
+ * @volatile
174
+ */
175
+ void allow_querying(std::string index_name,
176
+ const allow_querying_search_index_options& options,
177
+ allow_querying_search_index_handler&& handler) const;
178
+
179
+ [[nodiscard]] auto allow_querying(std::string index_name, const allow_querying_search_index_options& options = {}) const
180
+ -> std::future<manager_error_context>;
181
+
182
+ /**
183
+ * Disallows querying against a scope-level index
184
+ *
185
+ * @param index_name the name of the search index
186
+ * @param options optional parameters
187
+ * @param handler handler that implements @ref disallow_querying_search_index_handler
188
+ *
189
+ * @since 1.0.0
190
+ * @volatile
191
+ */
192
+ void disallow_querying(std::string index_name,
193
+ const disallow_querying_search_index_options& options,
194
+ disallow_querying_search_index_handler&& handler) const;
195
+
196
+ [[nodiscard]] auto disallow_querying(std::string index_name, const disallow_querying_search_index_options& options = {}) const
197
+ -> std::future<manager_error_context>;
198
+
199
+ /**
200
+ * Freeze the assignment of scope-level index partitions to nodes.
201
+ *
202
+ * @param index_name the name of the search index
203
+ * @param options optional parameters
204
+ * @param handler handler that implements @ref freeze_plan_search_index_handler
205
+ *
206
+ * @since 1.0.0
207
+ * @volatile
208
+ */
209
+ void freeze_plan(std::string index_name,
210
+ const freeze_plan_search_index_options& options,
211
+ freeze_plan_search_index_handler&& handler) const;
212
+
213
+ [[nodiscard]] auto freeze_plan(std::string index_name, const freeze_plan_search_index_options& options = {}) const
214
+ -> std::future<manager_error_context>;
215
+
216
+ /**
217
+ * Unfreeze the assignment of scope-level index partitions to nodes.
218
+ *
219
+ * @param index_name the name of the search index
220
+ * @param options optional parameters
221
+ * @param handler handler that implements @ref unfreeze_plan_search_index_handler
222
+ *
223
+ * @since 1.0.0
224
+ * @volatile
225
+ */
226
+ void unfreeze_plan(std::string index_name,
227
+ const unfreeze_plan_search_index_options& options,
228
+ unfreeze_plan_search_index_handler&& handler) const;
229
+
230
+ [[nodiscard]] auto unfreeze_plan(std::string index_name, const unfreeze_plan_search_index_options& options = {}) const
231
+ -> std::future<manager_error_context>;
232
+
233
+ /**
234
+ * Allows to see how a document is analyzed against a specific scope-level index.
235
+ *
236
+ * @param index_name the name of the search index
237
+ * @param document the document to be analyzed
238
+ * @param options optional parameters
239
+ * @param handler handler that implements @ref analyze_document_handler
240
+ *
241
+ * @since 1.0.0
242
+ * @volatile
243
+ */
244
+ template<typename Document>
245
+ void analyze_document(std::string index_name,
246
+ Document document,
247
+ const analyze_document_options& options,
248
+ analyze_document_handler&& handler) const
249
+ {
250
+ auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
251
+ auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
252
+ return analyze_document(std::move(index_name), decoded, options, std::move(handler));
253
+ }
254
+
255
+ template<typename Document>
256
+ [[nodiscard]] auto analyze_document(std::string index_name, Document document, const analyze_document_options& options = {}) const
257
+ -> std::future<std::pair<manager_error_context, std::vector<std::string>>>
258
+ {
259
+ auto encoded = couchbase::codec::default_json_transcoder::encode(document); // Encode as JSON and convert to string
260
+ auto decoded = std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
261
+
262
+ return analyze_document(std::move(index_name), decoded, options);
263
+ }
264
+
265
+ /**
266
+ * Allows to see how a document is analyzed against a specific scope-level index.
267
+ *
268
+ * @param index_name the name of the search index
269
+ * @param document the document to be analyzed encoded in JSON
270
+ * @param options optional parameters
271
+ * @param handler handler that implements @ref analyze_document_handler
272
+ *
273
+ * @since 1.0.0
274
+ * @volatile
275
+ */
276
+ void analyze_document(std::string index_name,
277
+ std::string document,
278
+ const analyze_document_options& options,
279
+ analyze_document_handler&& handler) const;
280
+
281
+ [[nodiscard]] auto analyze_document(std::string index_name, std::string document, const analyze_document_options& options) const
282
+ -> std::future<std::pair<manager_error_context, std::vector<std::string>>>;
283
+
284
+ private:
285
+ friend class scope;
286
+
287
+ explicit scope_search_index_manager(core::cluster core, std::string bucket_name, std::string scope_name);
288
+
289
+ std::shared_ptr<search_index_manager_impl> impl_;
290
+ };
291
+ } // namespace couchbase
@@ -17,14 +17,8 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include <couchbase/codec/tao_json_serializer.hxx>
21
- #include <couchbase/search_meta_data.hxx>
22
-
23
- #include "search_row.hxx"
24
- #include <chrono>
25
20
  #include <cinttypes>
26
- #include <optional>
27
- #include <vector>
21
+ #include <string>
28
22
 
29
23
  namespace couchbase
30
24
  {
@@ -0,0 +1,26 @@
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
+ namespace couchbase
21
+ {
22
+ /**
23
+ * Enumeration of units for geo_distance sorting
24
+ */
25
+ enum class search_geo_distance_units { meters, miles, centimeters, millimeters, nautical_miles, kilometers, feet, yards, inch };
26
+ } // namespace couchbase