couchbase 4.2.8 → 4.2.10

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SearchExecutor = void 0;
4
4
  /* eslint jsdoc/require-jsdoc: off */
5
5
  const bindingutilities_1 = require("./bindingutilities");
6
+ const searchquery_1 = require("./searchquery");
6
7
  const searchtypes_1 = require("./searchtypes");
7
8
  const streamablepromises_1 = require("./streamablepromises");
8
9
  /**
@@ -25,11 +26,16 @@ class SearchExecutor {
25
26
  meta: meta,
26
27
  });
27
28
  });
29
+ const searchQuery = query instanceof searchquery_1.SearchQuery
30
+ ? JSON.stringify(query)
31
+ : query.searchQuery
32
+ ? JSON.stringify(query.searchQuery)
33
+ : JSON.stringify(new searchquery_1.MatchNoneSearchQuery());
28
34
  const timeout = options.timeout || this._cluster.searchTimeout;
29
- this._cluster.conn.search({
35
+ const request = {
30
36
  timeout,
31
37
  index_name: indexName,
32
- query: JSON.stringify(query),
38
+ query: searchQuery,
33
39
  limit: options.limit,
34
40
  skip: options.skip,
35
41
  explain: options.explain || false,
@@ -59,7 +65,17 @@ class SearchExecutor {
59
65
  .map(([k, v]) => [k, JSON.stringify(v)]))
60
66
  : {},
61
67
  body_str: '',
62
- }, (cppErr, resp) => {
68
+ };
69
+ if (query instanceof searchtypes_1.SearchRequest) {
70
+ request.show_request = false;
71
+ if (query.vectorSearch) {
72
+ request.vector_search = JSON.stringify(query.vectorSearch.queries);
73
+ if (query.vectorSearch.options && query.vectorSearch.options.vectorQueryCombination) {
74
+ request.vector_query_combination = (0, bindingutilities_1.vectorQueryCombinationToCpp)(query.vectorSearch.options.vectorQueryCombination);
75
+ }
76
+ }
77
+ }
78
+ this._cluster.conn.search(request, (cppErr, resp) => {
63
79
  const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
64
80
  if (err) {
65
81
  emitter.emit('error', err);
@@ -1,6 +1,8 @@
1
1
  import { MutationState } from './mutationstate';
2
2
  import { SearchFacet } from './searchfacet';
3
+ import { SearchQuery } from './searchquery';
3
4
  import { SearchSort } from './searchsort';
5
+ import { VectorSearch } from './vectorsearch';
4
6
  /**
5
7
  * SearchMetaData represents the meta-data available from a search query.
6
8
  * This class is currently incomplete and must be casted to `any` in
@@ -145,3 +147,47 @@ export interface SearchQueryOptions {
145
147
  */
146
148
  timeout?: number;
147
149
  }
150
+ /**
151
+ * Represents a search query and/or vector search to execute via the Couchbase Full Text Search (FTS) service.
152
+ *
153
+ * Volatile: This API is subject to change at any time.
154
+ *
155
+ * @category Full Text Search
156
+ */
157
+ export declare class SearchRequest {
158
+ private _searchQuery;
159
+ private _vectorSearch;
160
+ constructor(query: SearchQuery | VectorSearch);
161
+ /**
162
+ * @internal
163
+ */
164
+ get searchQuery(): SearchQuery | undefined;
165
+ /**
166
+ * @internal
167
+ */
168
+ get vectorSearch(): VectorSearch | undefined;
169
+ /**
170
+ * Adds a search query to the request if the request does not already have a search query.
171
+ *
172
+ * Volatile: This API is subject to change at any time.
173
+ *
174
+ * @param query A SearchQuery to add to the request.
175
+ */
176
+ withSearchQuery(query: SearchQuery): SearchRequest;
177
+ /**
178
+ * Adds a vector search to the request if the request does not already have a vector search.
179
+ *
180
+ * Volatile: This API is subject to change at any time.
181
+ *
182
+ * @param search A VectorSearch to add to the request.
183
+ */
184
+ withVectorSearch(search: VectorSearch): SearchRequest;
185
+ /**
186
+ * Creates a search request.
187
+ *
188
+ * Volatile: This API is subject to change at any time.
189
+ *
190
+ * @param query Either a SearchQuery or VectorSearch to add to the search request.
191
+ */
192
+ static create(query: SearchQuery | VectorSearch): SearchRequest;
193
+ }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SearchScanConsistency = exports.HighlightStyle = exports.SearchResult = exports.SearchRow = exports.SearchMetaData = void 0;
3
+ exports.SearchRequest = exports.SearchScanConsistency = exports.HighlightStyle = exports.SearchResult = exports.SearchRow = exports.SearchMetaData = void 0;
4
+ const errors_1 = require("./errors");
5
+ const searchquery_1 = require("./searchquery");
6
+ const vectorsearch_1 = require("./vectorsearch");
4
7
  /**
5
8
  * SearchMetaData represents the meta-data available from a search query.
6
9
  * This class is currently incomplete and must be casted to `any` in
@@ -67,3 +70,80 @@ var SearchScanConsistency;
67
70
  */
68
71
  SearchScanConsistency["NotBounded"] = "not_bounded";
69
72
  })(SearchScanConsistency || (exports.SearchScanConsistency = SearchScanConsistency = {}));
73
+ /**
74
+ * Represents a search query and/or vector search to execute via the Couchbase Full Text Search (FTS) service.
75
+ *
76
+ * Volatile: This API is subject to change at any time.
77
+ *
78
+ * @category Full Text Search
79
+ */
80
+ class SearchRequest {
81
+ constructor(query) {
82
+ if (query instanceof searchquery_1.SearchQuery) {
83
+ this._searchQuery = query;
84
+ }
85
+ else if (query instanceof vectorsearch_1.VectorSearch) {
86
+ this._vectorSearch = query;
87
+ }
88
+ else {
89
+ throw new errors_1.InvalidArgumentError(new Error('Must provide either a SearchQuery or VectorSearch when creating SearchRequest.'));
90
+ }
91
+ }
92
+ /**
93
+ * @internal
94
+ */
95
+ get searchQuery() {
96
+ return this._searchQuery;
97
+ }
98
+ /**
99
+ * @internal
100
+ */
101
+ get vectorSearch() {
102
+ return this._vectorSearch;
103
+ }
104
+ /**
105
+ * Adds a search query to the request if the request does not already have a search query.
106
+ *
107
+ * Volatile: This API is subject to change at any time.
108
+ *
109
+ * @param query A SearchQuery to add to the request.
110
+ */
111
+ withSearchQuery(query) {
112
+ if (!(query instanceof searchquery_1.SearchQuery)) {
113
+ throw new errors_1.InvalidArgumentError(new Error('Must provide a SearchQuery.'));
114
+ }
115
+ if (this._searchQuery) {
116
+ throw new errors_1.InvalidArgumentError(new Error('Request already has a SearchQuery.'));
117
+ }
118
+ this._searchQuery = query;
119
+ return this;
120
+ }
121
+ /**
122
+ * Adds a vector search to the request if the request does not already have a vector search.
123
+ *
124
+ * Volatile: This API is subject to change at any time.
125
+ *
126
+ * @param search A VectorSearch to add to the request.
127
+ */
128
+ withVectorSearch(search) {
129
+ if (!(search instanceof vectorsearch_1.VectorSearch)) {
130
+ throw new errors_1.InvalidArgumentError(new Error('Must provide a VectorSearch.'));
131
+ }
132
+ if (this._vectorSearch) {
133
+ throw new errors_1.InvalidArgumentError(new Error('Request already has a VectorSearch.'));
134
+ }
135
+ this._vectorSearch = search;
136
+ return this;
137
+ }
138
+ /**
139
+ * Creates a search request.
140
+ *
141
+ * Volatile: This API is subject to change at any time.
142
+ *
143
+ * @param query Either a SearchQuery or VectorSearch to add to the search request.
144
+ */
145
+ static create(query) {
146
+ return new SearchRequest(query);
147
+ }
148
+ }
149
+ exports.SearchRequest = SearchRequest;
@@ -71,6 +71,8 @@ export interface TransactionsConfig {
71
71
  durabilityLevel?: DurabilityLevel;
72
72
  /**
73
73
  * Specifies the default timeout for KV operations, specified in millseconds.
74
+ *
75
+ * @deprecated Currently a no-op. CXXCBC-391: Adds support for ExtSDKIntegration which uses KV durable timeout internally.
74
76
  */
75
77
  kvTimeout?: number;
76
78
  /**
@@ -103,7 +103,7 @@ class TransactionAttemptContext {
103
103
  }
104
104
  this._impl = new binding_1.default.Transaction(txns.impl, {
105
105
  durability_level: (0, bindingutilities_1.durabilityToCpp)(config.durabilityLevel),
106
- expiration_time: config.timeout,
106
+ timeout: config.timeout,
107
107
  query_scan_consistency: (0, bindingutilities_1.queryScanConsistencyToCpp)(undefined),
108
108
  });
109
109
  }
@@ -313,8 +313,7 @@ class Transactions {
313
313
  const connImpl = cluster.conn;
314
314
  const txnsImpl = new binding_1.default.Transactions(connImpl, {
315
315
  durability_level: (0, bindingutilities_1.durabilityToCpp)(config.durabilityLevel),
316
- kv_timeout: config.kvTimeout,
317
- expiration_time: config.timeout,
316
+ timeout: config.timeout,
318
317
  query_scan_consistency: (0, bindingutilities_1.queryScanConsistencyToCpp)(config.queryConfig.scanConsistency),
319
318
  cleanup_window: config.cleanupConfig.cleanupWindow,
320
319
  cleanup_lost_attempts: !config.cleanupConfig.disableLostAttemptCleanup,
@@ -427,7 +427,7 @@ class UserManager {
427
427
  }
428
428
  const timeout = options.timeout || this._cluster.managementTimeout;
429
429
  return utilities_1.PromiseHelper.wrapAsync(async () => {
430
- const passwordData = { "password": newPassword };
430
+ const passwordData = { password: newPassword };
431
431
  const res = await this._http.request({
432
432
  type: httpexecutor_1.HttpServiceType.Management,
433
433
  method: httpexecutor_1.HttpMethod.Post,
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Specifies how multiple vector searches are combined.
3
+ *
4
+ * Volatile: This API is subject to change at any time.
5
+ *
6
+ * @category Full Text Search
7
+ */
8
+ export declare enum VectorQueryCombination {
9
+ /**
10
+ * Indicates that multiple vector queries should be combined with logical AND.
11
+ */
12
+ AND = "and",
13
+ /**
14
+ * Indicates that multiple vector queries should be combined with logical OR.
15
+ */
16
+ OR = "or"
17
+ }
18
+ /**
19
+ * Volatile: This API is subject to change at any time.
20
+ *
21
+ * @category Full Text Search
22
+ */
23
+ export interface VectorSearchOptions {
24
+ /**
25
+ * Specifies how multiple vector queries should be combined.
26
+ */
27
+ vectorQueryCombination?: VectorQueryCombination;
28
+ }
29
+ /**
30
+ * Represents a vector query.
31
+ *
32
+ * Volatile: This API is subject to change at any time.
33
+ *
34
+ * @category Full Text Search
35
+ */
36
+ export declare class VectorQuery {
37
+ private _fieldName;
38
+ private _vector;
39
+ private _numCandidates;
40
+ private _boost;
41
+ constructor(fieldName: string, vector: number[]);
42
+ /**
43
+ * @internal
44
+ */
45
+ toJSON(): any;
46
+ /**
47
+ * Adds boost option to vector query.
48
+ *
49
+ * Volatile: This API is subject to change at any time.
50
+ *
51
+ * @param boost A floating point value.
52
+ */
53
+ boost(boost: number): VectorQuery;
54
+ /**
55
+ * Adds numCandidates option to vector query. Value must be >= 1.
56
+ *
57
+ * Volatile: This API is subject to change at any time.
58
+ *
59
+ * @param numCandidates An integer value.
60
+ */
61
+ numCandidates(numCandidates: number): VectorQuery;
62
+ /**
63
+ * Creates a vector query.
64
+ *
65
+ * Volatile: This API is subject to change at any time.
66
+ *
67
+ * @param fieldName The name of the field in the JSON document that holds the vector.
68
+ * @param vector List of floating point values that represent the vector.
69
+ */
70
+ static create(fieldName: string, vector: number[]): VectorQuery;
71
+ }
72
+ /**
73
+ * Represents a vector search.
74
+ *
75
+ * Volatile: This API is subject to change at any time.
76
+ *
77
+ * @category Full Text Search
78
+ */
79
+ export declare class VectorSearch {
80
+ private _queries;
81
+ private _options;
82
+ constructor(queries: VectorQuery[], options?: VectorSearchOptions);
83
+ /**
84
+ * @internal
85
+ */
86
+ get queries(): VectorQuery[];
87
+ /**
88
+ * @internal
89
+ */
90
+ get options(): VectorSearchOptions | undefined;
91
+ /**
92
+ * Creates a vector search.
93
+ *
94
+ * Volatile: This API is subject to change at any time.
95
+ *
96
+ * @param query A vectory query that should be a part of the vector search.
97
+ */
98
+ static fromVectorQuery(query: VectorQuery): VectorSearch;
99
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VectorSearch = exports.VectorQuery = exports.VectorQueryCombination = void 0;
4
+ const errors_1 = require("./errors");
5
+ /**
6
+ * Specifies how multiple vector searches are combined.
7
+ *
8
+ * Volatile: This API is subject to change at any time.
9
+ *
10
+ * @category Full Text Search
11
+ */
12
+ var VectorQueryCombination;
13
+ (function (VectorQueryCombination) {
14
+ /**
15
+ * Indicates that multiple vector queries should be combined with logical AND.
16
+ */
17
+ VectorQueryCombination["AND"] = "and";
18
+ /**
19
+ * Indicates that multiple vector queries should be combined with logical OR.
20
+ */
21
+ VectorQueryCombination["OR"] = "or";
22
+ })(VectorQueryCombination || (exports.VectorQueryCombination = VectorQueryCombination = {}));
23
+ /**
24
+ * Represents a vector query.
25
+ *
26
+ * Volatile: This API is subject to change at any time.
27
+ *
28
+ * @category Full Text Search
29
+ */
30
+ class VectorQuery {
31
+ constructor(fieldName, vector) {
32
+ this._fieldName = fieldName;
33
+ if (!Array.isArray(vector) || vector.length == 0) {
34
+ throw new errors_1.InvalidArgumentError(new Error('Provided vector must be an array and cannot be empty.'));
35
+ }
36
+ this._vector = vector;
37
+ }
38
+ /**
39
+ * @internal
40
+ */
41
+ toJSON() {
42
+ var _a;
43
+ const output = {
44
+ field: this._fieldName,
45
+ vector: this._vector,
46
+ k: (_a = this._numCandidates) !== null && _a !== void 0 ? _a : 3,
47
+ };
48
+ if (this._boost) {
49
+ output['boost'] = this._boost;
50
+ }
51
+ return output;
52
+ }
53
+ /**
54
+ * Adds boost option to vector query.
55
+ *
56
+ * Volatile: This API is subject to change at any time.
57
+ *
58
+ * @param boost A floating point value.
59
+ */
60
+ boost(boost) {
61
+ this._boost = boost;
62
+ return this;
63
+ }
64
+ /**
65
+ * Adds numCandidates option to vector query. Value must be >= 1.
66
+ *
67
+ * Volatile: This API is subject to change at any time.
68
+ *
69
+ * @param numCandidates An integer value.
70
+ */
71
+ numCandidates(numCandidates) {
72
+ if (numCandidates < 1) {
73
+ throw new errors_1.InvalidArgumentError(new Error('Provided value for numCandidates must be >= 1.'));
74
+ }
75
+ this._numCandidates = numCandidates;
76
+ return this;
77
+ }
78
+ /**
79
+ * Creates a vector query.
80
+ *
81
+ * Volatile: This API is subject to change at any time.
82
+ *
83
+ * @param fieldName The name of the field in the JSON document that holds the vector.
84
+ * @param vector List of floating point values that represent the vector.
85
+ */
86
+ static create(fieldName, vector) {
87
+ return new VectorQuery(fieldName, vector);
88
+ }
89
+ }
90
+ exports.VectorQuery = VectorQuery;
91
+ /**
92
+ * Represents a vector search.
93
+ *
94
+ * Volatile: This API is subject to change at any time.
95
+ *
96
+ * @category Full Text Search
97
+ */
98
+ class VectorSearch {
99
+ constructor(queries, options) {
100
+ if (!Array.isArray(queries) || queries.length == 0) {
101
+ throw new errors_1.InvalidArgumentError(new Error('Provided queries must be an array and cannot be empty.'));
102
+ }
103
+ if (!queries.every((q) => q instanceof VectorQuery)) {
104
+ throw new errors_1.InvalidArgumentError(new Error('All provided queries must be a VectorQuery.'));
105
+ }
106
+ this._queries = queries;
107
+ this._options = options;
108
+ }
109
+ /**
110
+ * @internal
111
+ */
112
+ get queries() {
113
+ return this._queries;
114
+ }
115
+ /**
116
+ * @internal
117
+ */
118
+ get options() {
119
+ return this._options;
120
+ }
121
+ /**
122
+ * Creates a vector search.
123
+ *
124
+ * Volatile: This API is subject to change at any time.
125
+ *
126
+ * @param query A vectory query that should be a part of the vector search.
127
+ */
128
+ static fromVectorQuery(query) {
129
+ return new VectorSearch([query]);
130
+ }
131
+ }
132
+ exports.VectorSearch = VectorSearch;
package/package.json CHANGED
@@ -54,7 +54,7 @@
54
54
  "type": "git",
55
55
  "url": "http://github.com/couchbase/couchnode.git"
56
56
  },
57
- "version": "4.2.8",
57
+ "version": "4.2.10",
58
58
  "config": {
59
59
  "native": false
60
60
  },
@@ -79,12 +79,12 @@
79
79
  ]
80
80
  },
81
81
  "optionalDependencies": {
82
- "@couchbase/couchbase-darwin-arm64-napi": "4.2.8",
83
- "@couchbase/couchbase-darwin-x64-napi": "4.2.8",
84
- "@couchbase/couchbase-linux-arm64-napi": "4.2.8",
85
- "@couchbase/couchbase-linuxmusl-x64-napi": "4.2.8",
86
- "@couchbase/couchbase-linux-x64-napi": "4.2.8",
87
- "@couchbase/couchbase-win32-x64-napi": "4.2.8"
82
+ "@couchbase/couchbase-darwin-arm64-napi": "4.2.10",
83
+ "@couchbase/couchbase-darwin-x64-napi": "4.2.10",
84
+ "@couchbase/couchbase-linux-arm64-napi": "4.2.10",
85
+ "@couchbase/couchbase-linuxmusl-x64-napi": "4.2.10",
86
+ "@couchbase/couchbase-linux-x64-napi": "4.2.10",
87
+ "@couchbase/couchbase-win32-x64-napi": "4.2.10"
88
88
  },
89
89
  "files": [
90
90
  "LICENSE",
package/src/binding.cpp CHANGED
@@ -7,6 +7,7 @@
7
7
  #include "transaction.hpp"
8
8
  #include "transactions.hpp"
9
9
  #include <core/logger/configuration.hxx>
10
+ #include <core/meta/version.hxx>
10
11
  #include <napi.h>
11
12
  #include <spdlog/spdlog.h>
12
13
 
@@ -8,6 +8,7 @@
8
8
  #include <core/agent_group.hxx>
9
9
  #include <core/operations/management/freeform.hxx>
10
10
  #include <core/range_scan_orchestrator.hxx>
11
+ #include <core/utils/connection_string.hxx>
11
12
  #include <type_traits>
12
13
 
13
14
  namespace couchnode
@@ -189,8 +190,8 @@ void Connection::Init(Napi::Env env, Napi::Object exports)
189
190
  InstanceMethod<
190
191
  &Connection::jsManagementSearchIndexControlPlanFreeze>(
191
192
  "managementSearchIndexControlPlanFreeze"),
192
- InstanceMethod<&Connection::jsManagementSearchIndexStats>(
193
- "managementSearchIndexStats"),
193
+ InstanceMethod<&Connection::jsManagementSearchGetStats>(
194
+ "managementSearchGetStats"),
194
195
  InstanceMethod<&Connection::jsManagementUserDrop>(
195
196
  "managementUserDrop"),
196
197
  InstanceMethod<&Connection::jsManagementAnalyticsDataverseCreate>(
@@ -291,7 +292,7 @@ Napi::Value Connection::jsConnect(const Napi::CallbackInfo &info)
291
292
  }
292
293
 
293
294
  auto cookie = CallCookie(info.Env(), callbackJsFn, "cbConnectCallback");
294
- this->_instance->_cluster->open(
295
+ this->_instance->_cluster.open(
295
296
  couchbase::core::origin(creds, connstrInfo),
296
297
  [cookie = std::move(cookie)](std::error_code ec) mutable {
297
298
  cookie.invoke([ec](Napi::Env env, Napi::Function callback) {
@@ -307,7 +308,7 @@ Napi::Value Connection::jsShutdown(const Napi::CallbackInfo &info)
307
308
  auto callbackJsFn = info[0].As<Napi::Function>();
308
309
 
309
310
  auto cookie = CallCookie(info.Env(), callbackJsFn, "cbShutdownCallback");
310
- this->_instance->_cluster->close([cookie = std::move(cookie)]() mutable {
311
+ this->_instance->_cluster.close([cookie = std::move(cookie)]() mutable {
311
312
  cookie.invoke([](Napi::Env env, Napi::Function callback) {
312
313
  callback.Call({env.Null()});
313
314
  });
@@ -322,7 +323,7 @@ Napi::Value Connection::jsOpenBucket(const Napi::CallbackInfo &info)
322
323
  auto callbackJsFn = info[1].As<Napi::Function>();
323
324
 
324
325
  auto cookie = CallCookie(info.Env(), callbackJsFn, "cbOpenBucketCallback");
325
- this->_instance->_cluster->open_bucket(
326
+ this->_instance->_cluster.open_bucket(
326
327
  bucketName, [cookie = std::move(cookie)](std::error_code ec) mutable {
327
328
  cookie.invoke([ec](Napi::Env env, Napi::Function callback) {
328
329
  callback.Call({cbpp_to_js(env, ec)});
@@ -341,7 +342,7 @@ Napi::Value Connection::jsDiagnostics(const Napi::CallbackInfo &info)
341
342
  jsToCbpp<std::optional<std::string>>(optsJsObj.Get("report_id"));
342
343
 
343
344
  auto cookie = CallCookie(info.Env(), callbackJsFn, "diagnostics");
344
- this->_instance->_cluster->diagnostics(
345
+ this->_instance->_cluster.diagnostics(
345
346
  reportId, [cookie = std::move(cookie)](
346
347
  couchbase::core::diag::diagnostics_result resp) mutable {
347
348
  cookie.invoke([resp = std::move(resp)](
@@ -373,10 +374,12 @@ Napi::Value Connection::jsPing(const Napi::CallbackInfo &info)
373
374
  jsToCbpp<std::optional<std::string>>(optsJsObj.Get("bucket_name"));
374
375
  auto services = jsToCbpp<std::set<couchbase::core::service_type>>(
375
376
  optsJsObj.Get("services"));
377
+ auto timeout = jsToCbpp<std::optional<std::chrono::milliseconds>>(
378
+ optsJsObj.Get("timeout"));
376
379
 
377
380
  auto cookie = CallCookie(info.Env(), callbackJsFn, "ping");
378
- this->_instance->_cluster->ping(
379
- reportId, bucketName, services,
381
+ this->_instance->_cluster.ping(
382
+ reportId, bucketName, services, timeout,
380
383
  [cookie = std::move(cookie)](
381
384
  couchbase::core::diag::ping_result resp) mutable {
382
385
  cookie.invoke([resp = std::move(resp)](
@@ -413,7 +416,7 @@ Napi::Value Connection::jsScan(const Napi::CallbackInfo &info)
413
416
  tl::expected<couchbase::core::topology::configuration::vbucket_map,
414
417
  std::error_code>>>();
415
418
  auto f = barrier->get_future();
416
- this->_instance->_cluster->with_bucket_configuration(
419
+ this->_instance->_cluster.with_bucket_configuration(
417
420
  bucketName,
418
421
  [barrier](
419
422
  std::error_code ec,
@@ -59,7 +59,7 @@ public:
59
59
  Connection(const Napi::CallbackInfo &info);
60
60
  ~Connection();
61
61
 
62
- std::shared_ptr<couchbase::core::cluster> cluster() const
62
+ couchbase::core::cluster cluster() const
63
63
  {
64
64
  return _instance->_cluster;
65
65
  }
@@ -174,7 +174,7 @@ public:
174
174
  Napi::Value jsManagementSearchIndexDrop(const Napi::CallbackInfo &info);
175
175
  Napi::Value
176
176
  jsManagementSearchIndexControlPlanFreeze(const Napi::CallbackInfo &info);
177
- Napi::Value jsManagementSearchIndexStats(const Napi::CallbackInfo &info);
177
+ Napi::Value jsManagementSearchGetStats(const Napi::CallbackInfo &info);
178
178
  Napi::Value jsManagementUserDrop(const Napi::CallbackInfo &info);
179
179
  Napi::Value
180
180
  jsManagementAnalyticsDataverseCreate(const Napi::CallbackInfo &info);
@@ -215,7 +215,7 @@ private:
215
215
  using response_type = typename Request::response_type;
216
216
 
217
217
  auto cookie = CallCookie(jsCallback.Env(), jsCallback, opName);
218
- this->_instance->_cluster->execute(
218
+ this->_instance->_cluster.execute(
219
219
  req, [cookie = std::move(cookie),
220
220
  handler = std::move(handler)](response_type resp) mutable {
221
221
  cookie.invoke(
@@ -1176,15 +1176,17 @@ Napi::Value Connection::jsManagementSearchIndexControlPlanFreeze(
1176
1176
  }
1177
1177
 
1178
1178
  Napi::Value
1179
- Connection::jsManagementSearchIndexStats(const Napi::CallbackInfo &info)
1179
+ Connection::jsManagementSearchGetStats(const Napi::CallbackInfo &info)
1180
1180
  {
1181
1181
  auto optsJsObj = info[0].As<Napi::Object>();
1182
1182
  auto callbackJsFn = info[1].As<Napi::Function>();
1183
1183
 
1184
- executeOp("managementSearchIndexStats",
1185
- jsToCbpp<couchbase::core::operations::management::
1186
- search_index_stats_request>(optsJsObj),
1187
- callbackJsFn);
1184
+ executeOp(
1185
+ "managementSearchGetStats",
1186
+ jsToCbpp<
1187
+ couchbase::core::operations::management::search_get_stats_request>(
1188
+ optsJsObj),
1189
+ callbackJsFn);
1188
1190
 
1189
1191
  return info.Env().Null();
1190
1192
  }
package/src/constants.cpp CHANGED
@@ -699,6 +699,8 @@ void Constants::InitAutogen(Napi::Env env, Napi::Object exports)
699
699
  xattr_cannot_modify_virtual_attribute},
700
700
  {"xattr_no_access",
701
701
  couchbase::errc::key_value::xattr_no_access},
702
+ {"document_not_locked",
703
+ couchbase::errc::key_value::document_not_locked},
702
704
  {"cannot_revive_living_document",
703
705
  couchbase::errc::key_value::cannot_revive_living_document},
704
706
  {"mutation_token_outdated",
@@ -862,6 +864,7 @@ void Constants::InitAutogen(Napi::Env env, Napi::Object exports)
862
864
  {"opaque_no_match",
863
865
  couchbase::key_value_status_code::opaque_no_match},
864
866
  {"locked", couchbase::key_value_status_code::locked},
867
+ {"not_locked", couchbase::key_value_status_code::not_locked},
865
868
  {"auth_stale", couchbase::key_value_status_code::auth_stale},
866
869
  {"auth_error", couchbase::key_value_status_code::auth_error},
867
870
  {"auth_continue",
@@ -1048,6 +1051,17 @@ void Constants::InitAutogen(Napi::Env env, Napi::Object exports)
1048
1051
  {"three", couchbase::replicate_to::three},
1049
1052
  }));
1050
1053
 
1054
+ exports.Set(
1055
+ "vector_query_combination",
1056
+ cbppEnumToJs<couchbase::core::vector_query_combination>(
1057
+ env,
1058
+ {
1059
+ {"combination_and",
1060
+ couchbase::core::vector_query_combination::combination_and},
1061
+ {"combination_or",
1062
+ couchbase::core::vector_query_combination::combination_or},
1063
+ }));
1064
+
1051
1065
  //#endregion Autogenerated Constants
1052
1066
  }
1053
1067