couchbase 4.6.1 → 4.7.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/CMakeLists.txt +2 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +23 -5
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +24 -11
  5. package/deps/couchbase-cxx-client/README.md +2 -2
  6. package/deps/couchbase-cxx-client/cmake/APKBUILD.in +17 -1
  7. package/deps/couchbase-cxx-client/cmake/Bundler.cmake +9 -1
  8. package/deps/couchbase-cxx-client/cmake/Cache.cmake +48 -19
  9. package/deps/couchbase-cxx-client/cmake/CompilerOptions.cmake +3 -1
  10. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +10 -2
  11. package/deps/couchbase-cxx-client/cmake/Packaging.cmake +48 -8
  12. package/deps/couchbase-cxx-client/cmake/ThirdPartyDependencies.cmake +41 -0
  13. package/deps/couchbase-cxx-client/cmake/build_config.hxx.in +2 -0
  14. package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +18 -0
  15. package/deps/couchbase-cxx-client/cmake/debian/control +6 -1
  16. package/deps/couchbase-cxx-client/cmake/debian/rules +1 -0
  17. package/deps/couchbase-cxx-client/cmake/tarball_glob.txt +10 -0
  18. package/deps/couchbase-cxx-client/core/app_telemetry_meter.cxx +1 -0
  19. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.cxx +45 -43
  20. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.hxx +4 -3
  21. package/deps/couchbase-cxx-client/core/bucket.cxx +128 -13
  22. package/deps/couchbase-cxx-client/core/bucket.hxx +12 -2
  23. package/deps/couchbase-cxx-client/core/cluster.cxx +304 -152
  24. package/deps/couchbase-cxx-client/core/cluster.hxx +32 -0
  25. package/deps/couchbase-cxx-client/core/cluster_credentials.cxx +25 -0
  26. package/deps/couchbase-cxx-client/core/cluster_credentials.hxx +5 -0
  27. package/deps/couchbase-cxx-client/core/cluster_label_listener.cxx +72 -0
  28. package/deps/couchbase-cxx-client/core/cluster_label_listener.hxx +46 -0
  29. package/deps/couchbase-cxx-client/core/cluster_options.hxx +4 -0
  30. package/deps/couchbase-cxx-client/core/deprecation_utils.hxx +26 -0
  31. package/deps/couchbase-cxx-client/core/error.hxx +27 -0
  32. package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +0 -2
  33. package/deps/couchbase-cxx-client/core/http_component.cxx +12 -48
  34. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +3 -2
  35. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +2 -1
  36. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +249 -137
  37. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +134 -58
  38. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +87 -35
  39. package/deps/couchbase-cxx-client/core/impl/collection.cxx +560 -245
  40. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +89 -49
  41. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +3 -3
  42. package/deps/couchbase-cxx-client/core/impl/error.cxx +20 -13
  43. package/deps/couchbase-cxx-client/core/impl/error.hxx +15 -10
  44. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.hxx +1 -1
  45. package/deps/couchbase-cxx-client/core/impl/get_any_replica.hxx +2 -1
  46. package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
  47. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +1 -1
  48. package/deps/couchbase-cxx-client/core/impl/observability_recorder.cxx +161 -0
  49. package/deps/couchbase-cxx-client/core/impl/observability_recorder.hxx +77 -0
  50. package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
  51. package/deps/couchbase-cxx-client/core/impl/public_bucket.cxx +31 -7
  52. package/deps/couchbase-cxx-client/core/impl/public_cluster.cxx +107 -19
  53. package/deps/couchbase-cxx-client/core/impl/query.cxx +6 -3
  54. package/deps/couchbase-cxx-client/core/impl/query.hxx +3 -1
  55. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +267 -102
  56. package/deps/couchbase-cxx-client/core/impl/scope.cxx +53 -11
  57. package/deps/couchbase-cxx-client/core/impl/search.cxx +8 -4
  58. package/deps/couchbase-cxx-client/core/impl/search.hxx +6 -2
  59. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +131 -41
  60. package/deps/couchbase-cxx-client/core/impl/with_cancellation.hxx +75 -0
  61. package/deps/couchbase-cxx-client/core/io/config_tracker.cxx +9 -9
  62. package/deps/couchbase-cxx-client/core/io/config_tracker.hxx +2 -1
  63. package/deps/couchbase-cxx-client/core/io/http_command.hxx +98 -49
  64. package/deps/couchbase-cxx-client/core/io/http_context.hxx +2 -0
  65. package/deps/couchbase-cxx-client/core/io/http_session.cxx +23 -10
  66. package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -9
  67. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +163 -228
  68. package/deps/couchbase-cxx-client/core/io/http_traits.hxx +0 -7
  69. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +123 -44
  70. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +251 -26
  71. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +9 -1
  72. package/deps/couchbase-cxx-client/core/io/mcbp_traits.hxx +0 -8
  73. package/deps/couchbase-cxx-client/core/io/streams.cxx +3 -3
  74. package/deps/couchbase-cxx-client/core/io/streams.hxx +3 -2
  75. package/deps/couchbase-cxx-client/core/meta/features.hxx +15 -0
  76. package/deps/couchbase-cxx-client/core/meta/version.cxx +13 -0
  77. package/deps/couchbase-cxx-client/core/meta/version.hxx +3 -0
  78. package/deps/couchbase-cxx-client/core/metrics/constants.hxx +23 -0
  79. package/deps/couchbase-cxx-client/core/metrics/logging_meter.cxx +5 -5
  80. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +65 -63
  81. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +12 -10
  82. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +0 -5
  83. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +0 -4
  84. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +0 -5
  85. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +0 -7
  86. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +0 -7
  87. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +77 -27
  88. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +0 -9
  89. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +0 -9
  90. package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +83 -2
  91. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +0 -9
  92. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +0 -5
  93. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +0 -4
  94. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +0 -9
  95. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +46 -4
  96. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +121 -43
  97. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +0 -5
  98. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +0 -4
  99. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +0 -4
  100. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +0 -4
  101. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +0 -4
  102. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +0 -7
  103. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +0 -7
  104. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +0 -6
  105. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +0 -4
  106. package/deps/couchbase-cxx-client/core/operations/document_view.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +10 -13
  108. package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +2 -0
  110. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +2 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +2 -0
  119. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +2 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +2 -0
  121. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +2 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +2 -0
  123. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +2 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +2 -0
  125. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +2 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +2 -0
  127. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +2 -0
  129. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +2 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +2 -0
  131. package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +2 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +4 -1
  139. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +2 -0
  140. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +2 -0
  141. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +2 -0
  142. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +2 -0
  143. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +2 -0
  144. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +2 -0
  146. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +2 -0
  147. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +2 -0
  148. package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
  149. package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +2 -0
  150. package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +2 -0
  151. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +2 -0
  152. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +2 -0
  153. package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -0
  154. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +68 -30
  155. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +2 -0
  156. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +2 -0
  157. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +4 -3
  158. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +2 -1
  159. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +2 -0
  160. package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +2 -0
  161. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +2 -0
  162. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +2 -0
  163. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +2 -0
  164. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +2 -0
  165. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +2 -0
  166. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
  167. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +2 -0
  168. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  170. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +2 -0
  171. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
  172. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +2 -0
  173. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +2 -0
  174. package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +2 -0
  175. package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +2 -0
  176. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +2 -0
  177. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +2 -0
  178. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +2 -0
  179. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +2 -0
  180. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
  181. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +2 -0
  182. package/deps/couchbase-cxx-client/core/operations/operation_traits.hxx +6 -0
  183. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  184. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +8 -0
  185. package/deps/couchbase-cxx-client/core/origin.cxx +67 -12
  186. package/deps/couchbase-cxx-client/core/origin.hxx +13 -8
  187. package/deps/couchbase-cxx-client/core/orphan_reporter.cxx +164 -0
  188. package/deps/couchbase-cxx-client/core/orphan_reporter.hxx +65 -0
  189. package/deps/couchbase-cxx-client/core/sasl/CMakeLists.txt +1 -0
  190. package/deps/couchbase-cxx-client/core/sasl/client.cc +6 -0
  191. package/deps/couchbase-cxx-client/core/sasl/mechanism.cc +2 -1
  192. package/deps/couchbase-cxx-client/core/sasl/mechanism.h +2 -1
  193. package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.cc +41 -0
  194. package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.h +47 -0
  195. package/deps/couchbase-cxx-client/core/tls_context_provider.cxx +44 -0
  196. package/deps/couchbase-cxx-client/core/tls_context_provider.hxx +44 -0
  197. package/deps/couchbase-cxx-client/core/tracing/attribute_helpers.hxx +45 -0
  198. package/deps/couchbase-cxx-client/core/tracing/constants.hxx +148 -68
  199. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_options.hxx +0 -3
  200. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.cxx +122 -170
  201. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +17 -24
  202. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +8 -10
  203. package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.cxx +114 -0
  204. package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.hxx +85 -0
  205. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +16 -14
  206. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +4 -4
  207. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +1 -1
  208. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +1 -2
  209. package/deps/couchbase-cxx-client/core/utils/byteswap.hxx +12 -0
  210. package/deps/couchbase-cxx-client/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
  211. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +2 -0
  212. package/deps/couchbase-cxx-client/couchbase/certificate_authenticator.hxx +1 -0
  213. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +47 -0
  214. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +16 -0
  215. package/deps/couchbase-cxx-client/couchbase/collection.hxx +60 -15
  216. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +48 -48
  217. package/deps/couchbase-cxx-client/couchbase/jwt_authenticator.hxx +52 -0
  218. package/deps/couchbase-cxx-client/couchbase/metrics/meter.hxx +2 -1
  219. package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +75 -80
  220. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +19 -0
  221. package/deps/couchbase-cxx-client/couchbase/password_authenticator.hxx +1 -0
  222. package/deps/couchbase-cxx-client/couchbase/tracing/otel_tracer.hxx +15 -17
  223. package/deps/couchbase-cxx-client/couchbase/tracing/request_span.hxx +2 -2
  224. package/dist/analyticsexecutor.d.ts +15 -0
  225. package/dist/analyticsexecutor.js +79 -50
  226. package/dist/analyticsindexmanager.d.ts +66 -0
  227. package/dist/analyticsindexmanager.js +404 -277
  228. package/dist/analyticstypes.d.ts +5 -0
  229. package/dist/authenticators.d.ts +34 -1
  230. package/dist/authenticators.js +19 -1
  231. package/dist/binarycollection.d.ts +17 -0
  232. package/dist/binding.d.ts +245 -228
  233. package/dist/bindingutilities.js +1 -1
  234. package/dist/bucket.d.ts +8 -0
  235. package/dist/bucket.js +8 -0
  236. package/dist/bucketmanager.d.ts +30 -0
  237. package/dist/bucketmanager.js +128 -69
  238. package/dist/cluster.d.ts +45 -0
  239. package/dist/cluster.js +133 -21
  240. package/dist/collection.d.ts +75 -2
  241. package/dist/collection.js +772 -551
  242. package/dist/collectionmanager.d.ts +34 -0
  243. package/dist/collectionmanager.js +172 -89
  244. package/dist/couchbase.d.ts +5 -0
  245. package/dist/couchbase.js +5 -0
  246. package/dist/datastructures.js +310 -97
  247. package/dist/errors.d.ts +8 -0
  248. package/dist/errors.js +12 -1
  249. package/dist/eventingfunctionmanager.d.ts +42 -0
  250. package/dist/eventingfunctionmanager.js +172 -100
  251. package/dist/logger.d.ts +192 -0
  252. package/dist/logger.js +213 -0
  253. package/dist/loggingmeter.d.ts +120 -0
  254. package/dist/loggingmeter.js +226 -0
  255. package/dist/metrics.d.ts +33 -0
  256. package/dist/metrics.js +5 -0
  257. package/dist/observability.d.ts +60 -0
  258. package/dist/observability.js +86 -0
  259. package/dist/observabilityhandler.d.ts +176 -0
  260. package/dist/observabilityhandler.js +733 -0
  261. package/dist/observabilitytypes.d.ts +320 -0
  262. package/dist/observabilitytypes.js +362 -0
  263. package/dist/observabilityutilities.d.ts +60 -0
  264. package/dist/observabilityutilities.js +175 -0
  265. package/dist/otelmeter.d.ts +51 -0
  266. package/dist/otelmeter.js +100 -0
  267. package/dist/oteltracer.d.ts +69 -0
  268. package/dist/oteltracer.js +141 -0
  269. package/dist/queryexecutor.d.ts +16 -0
  270. package/dist/queryexecutor.js +128 -86
  271. package/dist/queryindexmanager.d.ts +29 -0
  272. package/dist/queryindexmanager.js +277 -150
  273. package/dist/querytypes.d.ts +5 -0
  274. package/dist/scope.js +2 -2
  275. package/dist/scopeeventingfunctionmanager.d.ts +5 -0
  276. package/dist/scopeeventingfunctionmanager.js +217 -119
  277. package/dist/scopesearchindexmanager.d.ts +5 -0
  278. package/dist/scopesearchindexmanager.js +295 -166
  279. package/dist/sdspecs.js +6 -1
  280. package/dist/searchexecutor.d.ts +15 -0
  281. package/dist/searchexecutor.js +54 -26
  282. package/dist/searchindexmanager.d.ts +54 -0
  283. package/dist/searchindexmanager.js +235 -142
  284. package/dist/searchtypes.d.ts +5 -0
  285. package/dist/thresholdlogging.d.ts +301 -0
  286. package/dist/thresholdlogging.js +657 -0
  287. package/dist/tracing.d.ts +55 -0
  288. package/dist/tracing.js +2 -0
  289. package/dist/usermanager.d.ts +46 -0
  290. package/dist/usermanager.js +199 -118
  291. package/dist/utilities.d.ts +4 -0
  292. package/dist/utilities.js +11 -1
  293. package/dist/version.d.ts +2 -0
  294. package/dist/version.js +7 -0
  295. package/dist/viewexecutor.d.ts +15 -0
  296. package/dist/viewexecutor.js +54 -29
  297. package/dist/viewindexmanager.d.ts +30 -0
  298. package/dist/viewindexmanager.js +129 -100
  299. package/dist/viewtypes.d.ts +5 -0
  300. package/package.json +19 -9
  301. package/scripts/prebuilds.js +1 -1
  302. package/scripts/updateVersion.js +26 -0
  303. package/src/connection.cpp +79 -98
  304. package/src/connection.hpp +46 -38
  305. package/src/connection_autogen.cpp +1236 -292
  306. package/src/jstocbpp_autogen.hpp +1117 -313
  307. package/src/jstocbpp_basic.hpp +73 -0
  308. package/src/jstocbpp_defs.hpp +37 -9
  309. package/src/jstocbpp_errors.hpp +37 -11
  310. package/tools/gen-bindings-js.js +100 -22
  311. package/tools/gen-bindings-json.py +40 -6
  312. package/src/transcoder.hpp +0 -96
@@ -277,7 +277,7 @@ function getLinuxType(platform) {
277
277
  if (platform !== 'linux') {
278
278
  return ''
279
279
  }
280
- return `linux${familySync() === MUSL ? 'musl' : ''}`
280
+ return `linux${familySync() === MUSL ? 'musl' : ''}`
281
281
  }
282
282
 
283
283
  function getNodeMajorVersion(version) {
@@ -0,0 +1,26 @@
1
+ 'use strict'
2
+
3
+ const fs = require('fs')
4
+ const path = require('path')
5
+
6
+ // 1. Define the paths relative to this script
7
+ const packageJsonPath = path.join(__dirname, '../package.json')
8
+ const versionTsPath = path.join(__dirname, '../lib/version.ts')
9
+
10
+ // 2. Read and parse package.json
11
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
12
+ const version = packageJson.version;
13
+ const name = packageJson.name;
14
+
15
+ // 3. Generate the TypeScript content
16
+ const tsContent = `// This file is auto-generated by scripts/updateVersion.js during the build process.
17
+ // DO NOT EDIT DIRECTLY.
18
+
19
+ export const SDK_VERSION = '${version}';
20
+ export const SDK_NAME = '${name}';
21
+ `;
22
+
23
+ // 4. Write it to the lib directory
24
+ fs.writeFileSync(versionTsPath, tsContent, 'utf8');
25
+
26
+ console.log(`[Build] Wrote ${name} v${version} to lib/version.ts`);
@@ -4,8 +4,9 @@
4
4
  #include "jstocbpp.hpp"
5
5
  #include "mutationtoken.hpp"
6
6
  #include "scan_iterator.hpp"
7
- #include "transcoder.hpp"
8
7
  #include <core/agent_group.hxx>
8
+ #include <core/cluster.hxx>
9
+ #include <core/cluster_label_listener.hxx>
9
10
  #include <core/operations/management/freeform.hxx>
10
11
  #include <core/range_scan_orchestrator.hxx>
11
12
  #include <core/utils/connection_string.hxx>
@@ -35,11 +36,14 @@ void Connection::Init(Napi::Env env, Napi::Object exports)
35
36
  env, "Connection",
36
37
  {
37
38
  InstanceMethod<&Connection::jsConnect>("connect"),
39
+ InstanceMethod<&Connection::jsUpdateCredentials>(
40
+ "updateCredentials"),
38
41
  InstanceMethod<&Connection::jsShutdown>("shutdown"),
39
42
  InstanceMethod<&Connection::jsOpenBucket>("openBucket"),
40
43
  InstanceMethod<&Connection::jsDiagnostics>("diagnostics"),
41
44
  InstanceMethod<&Connection::jsPing>("ping"),
42
45
  InstanceMethod<&Connection::jsScan>("scan"),
46
+ InstanceMethod<&Connection::jsGetClusterLabels>("getClusterLabels"),
43
47
 
44
48
  //#region Autogenerated Method Registration
45
49
 
@@ -279,7 +283,7 @@ Napi::Value Connection::jsConnect(const Napi::CallbackInfo &info)
279
283
  {
280
284
  auto connstr = info[0].ToString().Utf8Value();
281
285
  auto credentialsJsObj = info[1].As<Napi::Object>();
282
- auto callbackJsFn = info[7].As<Napi::Function>();
286
+ auto callbackJsFn = info[6].As<Napi::Function>();
283
287
 
284
288
  auto connstrInfo = couchbase::core::utils::parse_connection_string(connstr);
285
289
  auto creds =
@@ -343,121 +347,51 @@ Napi::Value Connection::jsConnect(const Napi::CallbackInfo &info)
343
347
  }
344
348
  }
345
349
 
346
- couchbase::core::tracing::threshold_logging_options tracing_options{};
347
- bool has_tracing_options = false;
348
-
349
- if (!info[4].IsNull()) {
350
- auto jsTracingConfigObj = info[4].As<Napi::Object>();
351
- auto jsEnableTracing = jsTracingConfigObj.Get("enableTracing");
352
- if (!(jsEnableTracing.IsNull() || jsEnableTracing.IsUndefined())) {
353
- connstrInfo.options.enable_tracing =
354
- js_to_cbpp<bool>(jsEnableTracing);
355
- }
356
- auto jsEmitInterval = jsTracingConfigObj.Get("emitInterval");
357
- if (!(jsEmitInterval.IsNull() || jsEmitInterval.IsUndefined())) {
358
- tracing_options.threshold_emit_interval =
359
- js_to_cbpp<std::chrono::milliseconds>(jsEmitInterval);
360
- has_tracing_options = true;
361
- }
362
- auto jsSampleSize = jsTracingConfigObj.Get("sampleSize");
363
- if (!(jsSampleSize.IsNull() || jsSampleSize.IsUndefined())) {
364
- tracing_options.threshold_sample_size =
365
- js_to_cbpp<std::size_t>(jsSampleSize);
366
- has_tracing_options = true;
367
- }
368
- auto jsKvThreshold = jsTracingConfigObj.Get("kvThreshold");
369
- if (!(jsKvThreshold.IsNull() || jsKvThreshold.IsUndefined())) {
370
- tracing_options.key_value_threshold =
371
- js_to_cbpp<std::chrono::milliseconds>(jsKvThreshold);
372
- has_tracing_options = true;
373
- }
374
- auto jsQueryThreshold = jsTracingConfigObj.Get("queryThreshold");
375
- if (!(jsQueryThreshold.IsNull() || jsQueryThreshold.IsUndefined())) {
376
- tracing_options.query_threshold =
377
- js_to_cbpp<std::chrono::milliseconds>(jsQueryThreshold);
378
- has_tracing_options = true;
379
- }
380
- auto jsSearchThreshold = jsTracingConfigObj.Get("searchThreshold");
381
- if (!(jsSearchThreshold.IsNull() || jsSearchThreshold.IsUndefined())) {
382
- tracing_options.search_threshold =
383
- js_to_cbpp<std::chrono::milliseconds>(jsSearchThreshold);
384
- has_tracing_options = true;
385
- }
386
- auto jsAnalyticsThreshold =
387
- jsTracingConfigObj.Get("analyticsThreshold");
388
- if (!(jsAnalyticsThreshold.IsNull() ||
389
- jsAnalyticsThreshold.IsUndefined())) {
390
- tracing_options.analytics_threshold =
391
- js_to_cbpp<std::chrono::milliseconds>(jsAnalyticsThreshold);
392
- has_tracing_options = true;
393
- }
394
- auto jsManagementThreshold =
395
- jsTracingConfigObj.Get("managementThreshold");
396
- if (!(jsManagementThreshold.IsNull() ||
397
- jsManagementThreshold.IsUndefined())) {
398
- tracing_options.management_threshold =
399
- js_to_cbpp<std::chrono::milliseconds>(jsManagementThreshold);
400
- has_tracing_options = true;
401
- }
402
- auto jsEventingThreshold = jsTracingConfigObj.Get("eventingThreshold");
403
- if (!(jsEventingThreshold.IsNull() ||
404
- jsEventingThreshold.IsUndefined())) {
405
- tracing_options.eventing_threshold =
406
- js_to_cbpp<std::chrono::milliseconds>(jsEventingThreshold);
407
- has_tracing_options = true;
408
- }
409
- auto jsViewsThreshold = jsTracingConfigObj.Get("viewsThreshold");
410
- if (!(jsViewsThreshold.IsNull() || jsViewsThreshold.IsUndefined())) {
411
- tracing_options.view_threshold =
412
- js_to_cbpp<std::chrono::milliseconds>(jsViewsThreshold);
413
- has_tracing_options = true;
414
- }
350
+ // Always disable tracing, this will be ignored if we set the tracer
351
+ connstrInfo.options.enable_tracing = false;
352
+ auto setup_sdk_tracing = info[4].ToBoolean().Value();
353
+ if (setup_sdk_tracing) {
354
+ connstrInfo.options.tracer =
355
+ std::make_shared<couchbase::core::tracing::wrapper_sdk_tracer>();
415
356
  }
357
+ // For now, always disable metrics in the core
358
+ connstrInfo.options.enable_metrics = false;
416
359
 
417
360
  if (!info[5].IsNull()) {
361
+ couchbase::core::orphan_reporter_options orphan_options{};
362
+ bool has_orphan_options = false;
418
363
  auto jsOrphanReporterConfigObj = info[5].As<Napi::Object>();
419
- // TODO(JSCBC-1364): Migrate to orphan reporting config when available in C++ core
364
+ auto jsEnableOrphanReporting =
365
+ jsOrphanReporterConfigObj.Get("enableOrphanReporting");
366
+ if (!(jsEnableOrphanReporting.IsNull() ||
367
+ jsEnableOrphanReporting.IsUndefined())) {
368
+ connstrInfo.options.enable_orphan_reporting =
369
+ js_to_cbpp<bool>(jsEnableOrphanReporting);
370
+ }
420
371
  auto jsOrphanEmitInterval =
421
372
  jsOrphanReporterConfigObj.Get("emitInterval");
422
373
  if (!(jsOrphanEmitInterval.IsNull() ||
423
374
  jsOrphanEmitInterval.IsUndefined())) {
424
- tracing_options.orphaned_emit_interval =
375
+ orphan_options.emit_interval =
425
376
  js_to_cbpp<std::chrono::milliseconds>(jsOrphanEmitInterval);
426
- has_tracing_options = true;
377
+ has_orphan_options = true;
427
378
  }
428
379
  auto jsOrphanSampleSize = jsOrphanReporterConfigObj.Get("sampleSize");
429
380
  if (!(jsOrphanSampleSize.IsNull() ||
430
381
  jsOrphanSampleSize.IsUndefined())) {
431
- tracing_options.orphaned_sample_size =
382
+ orphan_options.sample_size =
432
383
  js_to_cbpp<std::size_t>(jsOrphanSampleSize);
433
- has_tracing_options = true;
384
+ has_orphan_options = true;
434
385
  }
435
- }
436
386
 
437
- if (has_tracing_options) {
438
- connstrInfo.options.tracing_options = tracing_options;
439
- }
440
-
441
- if (!info[6].IsNull()) {
442
- auto jsMetricsConfigObj = info[6].As<Napi::Object>();
443
- auto jsEnableMetrics = jsMetricsConfigObj.Get("enableMetrics");
444
- if (!(jsEnableMetrics.IsNull() || jsEnableMetrics.IsUndefined())) {
445
- connstrInfo.options.enable_metrics =
446
- js_to_cbpp<bool>(jsEnableMetrics);
447
- }
448
-
449
- auto jsEmitInterval = jsMetricsConfigObj.Get("emitInterval");
450
- if (!(jsEmitInterval.IsNull() || jsEmitInterval.IsUndefined())) {
451
- couchbase::core::metrics::logging_meter_options logging_options{};
452
- logging_options.emit_interval =
453
- js_to_cbpp<std::chrono::milliseconds>(jsEmitInterval);
454
- connstrInfo.options.metrics_options = logging_options;
387
+ if (has_orphan_options) {
388
+ connstrInfo.options.orphan_options = orphan_options;
455
389
  }
456
390
  }
457
391
 
458
392
  auto cookie = CallCookie(info.Env(), callbackJsFn, "cbConnectCallback");
459
393
  this->_instance->_cluster.open(
460
- couchbase::core::origin(creds, connstrInfo),
394
+ couchbase::core::origin(std::move(creds), std::move(connstrInfo)),
461
395
  [cookie = std::move(cookie)](std::error_code ec) mutable {
462
396
  cookie.invoke([ec](Napi::Env env, Napi::Function callback) {
463
397
  callback.Call({cbpp_to_js(env, ec)});
@@ -467,6 +401,18 @@ Napi::Value Connection::jsConnect(const Napi::CallbackInfo &info)
467
401
  return info.Env().Null();
468
402
  }
469
403
 
404
+ Napi::Value Connection::jsUpdateCredentials(const Napi::CallbackInfo &info)
405
+ {
406
+ auto credentialsJsObj = info[0].As<Napi::Object>();
407
+ auto creds =
408
+ jsToCbpp<couchbase::core::cluster_credentials>(credentialsJsObj);
409
+ auto err = this->_instance->_cluster.update_credentials(std::move(creds));
410
+ if (err.ec) {
411
+ return cbpp_to_js(info.Env(), err.ec);
412
+ }
413
+ return info.Env().Null();
414
+ }
415
+
470
416
  Napi::Value Connection::jsShutdown(const Napi::CallbackInfo &info)
471
417
  {
472
418
  auto callbackJsFn = info[0].As<Napi::Function>();
@@ -606,8 +552,15 @@ Napi::Value Connection::jsScan(const Napi::CallbackInfo &info)
606
552
  couchbase::core::agent_group_config{{this->_instance->_cluster}});
607
553
  agentGroup.open_bucket(bucketName);
608
554
  auto agent = agentGroup.get_agent(bucketName);
609
- auto options = js_to_cbpp<couchbase::core::range_scan_orchestrator_options>(
610
- optionsObj);
555
+ std::shared_ptr<couchbase::core::tracing::wrapper_sdk_span> wrapper_span;
556
+ auto span_name = jsToCbpp<std::string>(optionsObj.Get("wrapper_span_name"));
557
+ if (!span_name.empty()) {
558
+ wrapper_span =
559
+ std::make_shared<couchbase::core::tracing::wrapper_sdk_span>(
560
+ span_name);
561
+ }
562
+ auto options = jsToCbpp<couchbase::core::range_scan_orchestrator_options>(
563
+ optionsObj, wrapper_span);
611
564
 
612
565
  if (!agent.has_value()) {
613
566
  resObj.Set("cppErr", cbpp_to_js(env, agent.error()));
@@ -645,4 +598,32 @@ Napi::Value Connection::jsScan(const Napi::CallbackInfo &info)
645
598
  return resObj;
646
599
  }
647
600
 
601
+ std::pair<std::optional<std::string>, std::optional<std::string>>
602
+ Connection::getClusterLabels()
603
+ {
604
+ auto labels = std::make_pair(std::optional<std::string>{},
605
+ std::optional<std::string>{});
606
+ auto cppLabels =
607
+ this->_instance->_cluster.cluster_label_listener()->cluster_labels();
608
+ if (cppLabels.cluster_name.has_value()) {
609
+ labels.first = cppLabels.cluster_name.value();
610
+ }
611
+ if (cppLabels.cluster_uuid.has_value()) {
612
+ labels.second = cppLabels.cluster_uuid.value();
613
+ }
614
+ return labels;
615
+ }
616
+
617
+ Napi::Value Connection::jsGetClusterLabels(const Napi::CallbackInfo &info)
618
+ {
619
+ auto env = info.Env();
620
+ auto resObj = Napi::Object::New(env);
621
+ auto clusterLabels = this->getClusterLabels();
622
+ resObj.Set("clusterName", cbpp_to_js<std::optional<std::string>>(
623
+ env, clusterLabels.first));
624
+ resObj.Set("clusterUUID", cbpp_to_js<std::optional<std::string>>(
625
+ env, clusterLabels.second));
626
+ return resObj;
627
+ }
628
+
648
629
  } // namespace couchnode
@@ -2,7 +2,7 @@
2
2
  #include "addondata.hpp"
3
3
  #include "instance.hpp"
4
4
  #include "jstocbpp.hpp"
5
- #include "transcoder.hpp"
5
+ #include <core/tracing/wrapper_sdk_tracer.hxx>
6
6
  #include <core/utils/movable_function.hxx>
7
7
  #include <napi.h>
8
8
 
@@ -64,12 +64,17 @@ public:
64
64
  return _instance->_cluster;
65
65
  }
66
66
 
67
+ std::pair<std::optional<std::string>, std::optional<std::string>>
68
+ getClusterLabels();
69
+
67
70
  Napi::Value jsConnect(const Napi::CallbackInfo &info);
68
71
  Napi::Value jsShutdown(const Napi::CallbackInfo &info);
72
+ Napi::Value jsUpdateCredentials(const Napi::CallbackInfo &info);
69
73
  Napi::Value jsOpenBucket(const Napi::CallbackInfo &info);
70
74
  Napi::Value jsDiagnostics(const Napi::CallbackInfo &info);
71
75
  Napi::Value jsPing(const Napi::CallbackInfo &info);
72
76
  Napi::Value jsScan(const Napi::CallbackInfo &info);
77
+ Napi::Value jsGetClusterLabels(const Napi::CallbackInfo &info);
73
78
 
74
79
  //#region Autogenerated Method Declarations
75
80
 
@@ -240,45 +245,48 @@ private:
240
245
 
241
246
  template <typename Request>
242
247
  void executeOp(const std::string &opName, const Request &req,
243
- Napi::Function jsCallback)
244
- {
245
- using response_type = typename Request::response_type;
246
- executeOp(opName, req, jsCallback,
247
- [](Napi::Env env, Napi::Function callback,
248
- response_type resp) mutable {
249
- Napi::Value jsErr, jsRes;
250
- try {
251
- jsErr = cbpp_to_js(env, resp.ctx);
252
- jsRes = cbpp_to_js(env, resp);
253
- } catch (const Napi::Error &e) {
254
- jsErr = e.Value();
255
- jsRes = env.Null();
256
- }
257
-
258
- callback.Call({jsErr, jsRes});
259
- });
260
- }
261
-
262
- template <typename Request>
263
- void executeOp(const std::string &opName, const Request &req,
264
- Napi::Function jsCallback, Transcoder &&transcoder)
248
+ Napi::Function jsCallback,
249
+ std::shared_ptr<couchbase::core::tracing::wrapper_sdk_span>
250
+ wrapperSpan = nullptr)
265
251
  {
266
252
  using response_type = typename Request::response_type;
267
- executeOp(opName, req, jsCallback,
268
- [transcoder = std::move(transcoder)](
269
- Napi::Env env, Napi::Function callback,
270
- response_type resp) mutable {
271
- Napi::Value jsErr, jsRes;
272
- try {
273
- jsErr = cbpp_to_js(env, resp.ctx);
274
- jsRes = cbpp_to_js(env, resp, transcoder);
275
- } catch (const Napi::Error &e) {
276
- jsErr = e.Value();
277
- jsRes = env.Null();
278
- }
279
-
280
- callback.Call({jsErr, jsRes});
281
- });
253
+ auto clusterLabels = wrapperSpan != nullptr
254
+ ? this->getClusterLabels()
255
+ : std::make_pair(std::optional<std::string>{},
256
+ std::optional<std::string>{});
257
+ executeOp(
258
+ opName, req, jsCallback,
259
+ [wrapperSpan, clusterLabels = std::move(clusterLabels)](
260
+ Napi::Env env, Napi::Function callback,
261
+ response_type resp) mutable {
262
+ Napi::Value jsErr, jsRes;
263
+ try {
264
+ if (auto retries = get_cbpp_retries(resp.ctx);
265
+ retries > 0 && wrapperSpan) {
266
+ wrapperSpan->add_tag("retries", retries);
267
+ }
268
+ if (wrapperSpan) {
269
+ if (clusterLabels.first.has_value()) {
270
+ wrapperSpan->add_tag("cluster_name",
271
+ clusterLabels.first.value());
272
+ }
273
+ if (clusterLabels.second.has_value()) {
274
+ wrapperSpan->add_tag("cluster_uuid",
275
+ clusterLabels.second.value());
276
+ }
277
+ }
278
+ jsErr = cbpp_to_js(env, resp.ctx, wrapperSpan);
279
+ jsRes = cbpp_to_js(env, resp, wrapperSpan);
280
+ } catch (const Napi::Error &e) {
281
+ Napi::Value err = e.Value();
282
+ Napi::Object errObj = err.As<Napi::Object>();
283
+ errObj.Set("cpp_core_span",
284
+ cbpp_wrapper_span_to_js(env, wrapperSpan));
285
+ jsErr = errObj;
286
+ jsRes = env.Null();
287
+ }
288
+ callback.Call({jsErr, jsRes});
289
+ });
282
290
  }
283
291
 
284
292
  Instance *_instance;