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
package/CMakeLists.txt CHANGED
@@ -165,6 +165,7 @@ set(COUCHBASE_CXX_CLIENT_BUILD_DOCS OFF CACHE BOOL "" FORCE)
165
165
  set(COUCHBASE_CXX_CLIENT_BUILD_TESTS OFF CACHE BOOL "" FORCE)
166
166
  set(COUCHBASE_CXX_CLIENT_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
167
167
  set(COUCHBASE_CXX_CLIENT_BUILD_TOOLS OFF CACHE BOOL "" FORCE)
168
+ set(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY OFF CACHE BOOL "" FORCE)
168
169
 
169
170
  # In case we need to build the SDK on RHEL >= RHEL8, allow users to dynamically link C++ std libs.
170
171
  option(USE_DYNAMIC_STDLIB "Dynamically link C++ standard library" FALSE)
@@ -200,7 +201,7 @@ endif()
200
201
 
201
202
  file(GLOB SOURCE_FILES "src/*.cpp")
202
203
  add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})
203
-
204
+ target_compile_definitions(${PROJECT_NAME} PRIVATE COUCHBASE_CXX_CLIENT_IGNORE_CORE_DEPRECATIONS)
204
205
  add_definitions(-DNAPI_VERSION=6)
205
206
  set(COUCHBASE_CXX_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/couchbase-cxx-client")
206
207
  if(CMAKE_JS_VERSION VERSION_GREATER_EQUAL "7.0.0")
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  ## Bundle of CA Root Certificates
3
3
  ##
4
- ## Certificate data from Mozilla as of: Tue Dec 2 04:12:02 2025 GMT
4
+ ## Certificate data from Mozilla last updated on: Wed Feb 11 18:26:30 2026 GMT
5
5
  ##
6
6
  ## Find updated versions here: https://curl.se/docs/caextract.html
7
7
  ##
@@ -15,8 +15,8 @@
15
15
  ## an Apache+mod_ssl webserver for SSL client authentication.
16
16
  ## Just configure this file as the SSLCACertificateFile.
17
17
  ##
18
- ## Conversion done with mk-ca-bundle.pl version 1.30.
19
- ## SHA256: a903b3cd05231e39332515ef7ebe37e697262f39515a52015c23c62805b73cd0
18
+ ## Conversion done with mk-ca-bundle.pl version 1.32.
19
+ ## SHA256: 3b98d4e3ff57a326d9587c33633039c8c3a9cf0b55f7ca581d7598ff329eb1f3
20
20
  ##
21
21
 
22
22
 
@@ -3480,8 +3480,8 @@ SM49BAMDA2kAMGYCMQCpKjAd0MKfkFFRQD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxg
3480
3480
  ZzFDJe0CMQCSia7pXGKDYmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c=
3481
3481
  -----END CERTIFICATE-----
3482
3482
 
3483
- OISTE Server Root RSA G1
3484
- =========================
3483
+ OISTE Server Root RSA G1
3484
+ ========================
3485
3485
  -----BEGIN CERTIFICATE-----
3486
3486
  MIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBLMQswCQYDVQQG
3487
3487
  EwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwYT0lTVEUgU2VydmVyIFJv
@@ -3509,3 +3509,21 @@ msuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3J8tRd/iWkx7P8nd9H0aT
3509
3509
  olkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2wq1yVAb+axj5d9spLFKebXd7Yv0PTY6Y
3510
3510
  MjAwcRLWJTXjn/hvnLXrahut6hDTlhZyBiElxky8j3C7DOReIoMt0r7+hVu05L0=
3511
3511
  -----END CERTIFICATE-----
3512
+
3513
+ e-Szigno TLS Root CA 2023
3514
+ =========================
3515
+ -----BEGIN CERTIFICATE-----
3516
+ MIICzzCCAjGgAwIBAgINAOhvGHvWOWuYSkmYCjAKBggqhkjOPQQDBDB1MQswCQYDVQQGEwJIVTER
3517
+ MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xFzAVBgNVBGEMDlZBVEhV
3518
+ LTIzNTg0NDk3MSIwIAYDVQQDDBllLVN6aWdubyBUTFMgUm9vdCBDQSAyMDIzMB4XDTIzMDcxNzE0
3519
+ MDAwMFoXDTM4MDcxNzE0MDAwMFowdTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYw
3520
+ FAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEiMCAGA1UEAwwZ
3521
+ ZS1Temlnbm8gVExTIFJvb3QgQ0EgMjAyMzCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAGgP36J8
3522
+ PKp0iGEKjcJMpQEiFNT3YHdCnAo4YKGMZz6zY+n6kbCLS+Y53wLCMAFSAL/fjO1ZrTJlqwlZULUZ
3523
+ wmgcAOAFX9pQJhzDrAQixTpN7+lXWDajwRlTEArRzT/vSzUaQ49CE0y5LBqcvjC2xN7cS53kpDzL
3524
+ Ltmt3999Cd8ukv+ho2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
3525
+ FgQUWYQCYlpGePVd3I8KECgj3NXW+0UwHwYDVR0jBBgwFoAUWYQCYlpGePVd3I8KECgj3NXW+0Uw
3526
+ CgYIKoZIzj0EAwQDgYsAMIGHAkIBLdqu9S54tma4n7Zwf2Z0z+yOfP7AAXmazlIC58PRDHpty7Ve
3527
+ 7hekm9sEdu4pKeiv+62sUvTXK9Z3hBC9xdIoaDQCQTV2WnXzkoYI9bIeCvZlC9p2x1L/Cx6AcCIw
3528
+ wzPbGO2E14vs7dOoY4G1VnxHx1YwlGhza9IuqbnZLBwpvQy6uWWL
3529
+ -----END CERTIFICATE-----
@@ -1 +1 @@
1
- f1407d974c5ed87d544bd931a278232e13925177e239fca370619aba63c757b4 cacert.pem
1
+ b6e66569cc3d438dd5abe514d0df50005d570bfc96c14dca8f768d020cb96171 cacert.pem
@@ -21,7 +21,7 @@ endif()
21
21
 
22
22
  project(
23
23
  couchbase_cxx_client
24
- VERSION "1.2.2"
24
+ VERSION "1.3.1"
25
25
  LANGUAGES CXX C)
26
26
  message(
27
27
  STATUS
@@ -61,6 +61,8 @@ endif()
61
61
 
62
62
  find_package(Threads REQUIRED)
63
63
 
64
+ option(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY "Build with OpenTelemetry" ${COUCHBASE_CXX_CLIENT_MASTER_PROJECT})
65
+
64
66
  include(cmake/ThirdPartyDependencies.cmake)
65
67
 
66
68
  include(cmake/VersionInfo.cmake)
@@ -75,15 +77,19 @@ set(couchbase_cxx_client_FILES
75
77
  core/agent_group.cxx
76
78
  core/agent_group_config.cxx
77
79
  core/analytics_query_options.cxx
80
+ core/app_telemetry_address.cxx
81
+ core/app_telemetry_meter.cxx
82
+ core/app_telemetry_reporter.cxx
78
83
  core/bucket.cxx
79
84
  core/cluster.cxx
80
85
  core/cluster_agent.cxx
81
86
  core/cluster_agent_config.cxx
87
+ core/cluster_credentials.cxx
82
88
  core/cluster_options.cxx
83
89
  core/collections_component.cxx
90
+ core/columnar/backoff_calculator.cxx
84
91
  core/columnar/columnar_agent.cxx
85
92
  core/columnar/columnar_agent_config.cxx
86
- core/columnar/backoff_calculator.cxx
87
93
  core/columnar/columnar_error.cxx
88
94
  core/columnar/error_codes.cxx
89
95
  core/columnar/management_component.cxx
@@ -105,14 +111,13 @@ set(couchbase_cxx_client_FILES
105
111
  core/impl/binary_collection.cxx
106
112
  core/impl/boolean_field_query.cxx
107
113
  core/impl/boolean_query.cxx
108
- core/impl/public_bucket.cxx
109
114
  core/impl/bucket_manager.cxx
110
- core/impl/public_cluster.cxx
111
115
  core/impl/collection.cxx
112
116
  core/impl/collection_manager.cxx
113
117
  core/impl/common_error_category.cxx
114
118
  core/impl/configuration_profiles_registry.cxx
115
119
  core/impl/conjunction_query.cxx
120
+ core/impl/crypto.cxx
116
121
  core/impl/date_range.cxx
117
122
  core/impl/date_range_facet.cxx
118
123
  core/impl/date_range_facet_result.cxx
@@ -141,7 +146,6 @@ set(couchbase_cxx_client_FILES
141
146
  core/impl/internal_term_facet_result.cxx
142
147
  core/impl/key_value_error_category.cxx
143
148
  core/impl/key_value_error_context.cxx
144
- core/impl/public_logger.cxx
145
149
  core/impl/lookup_in_replica.cxx
146
150
  core/impl/management_error_category.cxx
147
151
  core/impl/match_all_query.cxx
@@ -157,6 +161,11 @@ set(couchbase_cxx_client_FILES
157
161
  core/impl/observe_seqno.cxx
158
162
  core/impl/phrase_query.cxx
159
163
  core/impl/prefix_query.cxx
164
+ core/impl/public_bucket.cxx
165
+ core/impl/public_cluster.cxx
166
+ core/impl/public_logger.cxx
167
+ core/impl/public_scan_result.cxx
168
+ core/impl/public_transaction_get_result.cxx
160
169
  core/impl/query.cxx
161
170
  core/impl/query_error_category.cxx
162
171
  core/impl/query_error_context.cxx
@@ -166,7 +175,6 @@ set(couchbase_cxx_client_FILES
166
175
  core/impl/replica_utils.cxx
167
176
  core/impl/retry_action.cxx
168
177
  core/impl/retry_reason.cxx
169
- core/impl/public_scan_result.cxx
170
178
  core/impl/scope.cxx
171
179
  core/impl/search.cxx
172
180
  core/impl/search_error_category.cxx
@@ -206,13 +214,13 @@ set(couchbase_cxx_client_FILES
206
214
  core/impl/transaction_error_category.cxx
207
215
  core/impl/transaction_get_multi_replicas_from_preferred_server_group_spec.cxx
208
216
  core/impl/transaction_get_multi_spec.cxx
209
- core/impl/public_transaction_get_result.cxx
210
217
  core/impl/transaction_op_error_category.cxx
211
218
  core/impl/vector_query.cxx
212
219
  core/impl/vector_search.cxx
213
220
  core/impl/view_error_category.cxx
214
221
  core/impl/wildcard_query.cxx
215
222
  core/impl/crypto.cxx
223
+ core/impl/observability_recorder.cxx
216
224
  core/io/config_tracker.cxx
217
225
  core/io/dns_client.cxx
218
226
  core/io/dns_config.cxx
@@ -339,6 +347,7 @@ set(couchbase_cxx_client_FILES
339
347
  core/operations/management/view_index_get_all.cxx
340
348
  core/operations/management/view_index_upsert.cxx
341
349
  core/origin.cxx
350
+ core/orphan_reporter.cxx
342
351
  core/platform/base64.cc
343
352
  core/platform/dirutils.cc
344
353
  core/platform/random.cc
@@ -387,16 +396,19 @@ set(couchbase_cxx_client_FILES
387
396
  core/sasl/client.cc
388
397
  core/sasl/context.cc
389
398
  core/sasl/mechanism.cc
399
+ core/sasl/oauthbearer/oauthbearer.cc
390
400
  core/sasl/plain/plain.cc
391
401
  core/sasl/scram-sha/scram-sha.cc
392
402
  core/sasl/scram-sha/stringutils.cc
393
403
  core/scan_result.cxx
394
404
  core/search_query_options.cxx
395
405
  core/seed_config.cxx
406
+ core/tls_context_provider.cxx
396
407
  core/topology/capabilities.cxx
397
408
  core/topology/configuration.cxx
398
409
  core/tracing/threshold_logging_tracer.cxx
399
410
  core/tracing/tracer_wrapper.cxx
411
+ core/tracing/wrapper_sdk_tracer.cxx
400
412
  core/transactions/active_transaction_record.cxx
401
413
  core/transactions/async_attempt_context.cxx
402
414
  core/transactions/atr_cleanup_entry.cxx
@@ -432,10 +444,8 @@ set(couchbase_cxx_client_FILES
432
444
  core/utils/url_codec.cxx
433
445
  core/view_query_options.cxx
434
446
  core/websocket_codec.cxx
435
- core/app_telemetry_address.cxx
436
- core/app_telemetry_meter.cxx
437
- core/app_telemetry_reporter.cxx
438
- core/cluster_credentials.cxx)
447
+ core/cluster_label_listener.cxx
448
+ )
439
449
 
440
450
  set(couchbase_cxx_client_LIBRARIES)
441
451
  set(couchbase_cxx_client_DEFAULT_LIBRARY)
@@ -520,6 +530,9 @@ foreach(TARGET ${couchbase_cxx_client_LIBRARIES})
520
530
  $<BUILD_INTERFACE:asio>
521
531
  $<BUILD_INTERFACE:couchbase_backtrace>
522
532
  $<BUILD_INTERFACE:jsonsl>)
533
+ if(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY)
534
+ target_link_libraries(${TARGET} PRIVATE $<BUILD_INTERFACE:opentelemetry_api>)
535
+ endif()
523
536
 
524
537
  if(HAVE_BACKTRACE)
525
538
  target_link_libraries(${TARGET} PRIVATE ${PLATFORM_LIBRARIES})
@@ -22,9 +22,9 @@ CPMAddPackage(
22
22
  NAME
23
23
  couchbase_cxx_client
24
24
  GIT_TAG
25
- 1.2.2
25
+ 1.3.1
26
26
  VERSION
27
- 1.2.2
27
+ 1.3.1
28
28
  GITHUB_REPOSITORY
29
29
  "couchbase/couchbase-cxx-client"
30
30
  OPTIONS
@@ -5,8 +5,19 @@ pkgname=couchbase-cxx-client
5
5
  pkgver=@COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@
6
6
  pkgrel=1
7
7
  _number_of_commits=@COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS@
8
+ _git_revision_short=@COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT@
8
9
  if [ "${_number_of_commits}" -gt 0 ]; then
9
- pkgver="${pkgver}_p${_number_of_commits}"
10
+ # Encode commit count and git hash into _p version for uniqueness
11
+ # Extract first 3 hex bytes from git hash, convert to decimal
12
+ # Map each byte mod 100 to create 6-digit suffix
13
+ # Formula: p = commits × 10_000_000 + (byte1%100)*10000 + (byte2%100)*100 + (byte3%100)
14
+ # Example: 1.2.0-75-gfeb729b2 → 1.2.0_p750548341
15
+ _b1=$((0x${_git_revision_short:0:2}))
16
+ _b2=$((0x${_git_revision_short:2:2}))
17
+ _b3=$((0x${_git_revision_short:4:2}))
18
+ _sha_pack=$(( (_b1 % 100) * 10000 + (_b2 % 100) * 100 + (_b3 % 100) ))
19
+ _p_version=$(( _number_of_commits * 10000000 + _sha_pack ))
20
+ pkgver="${pkgver}_p${_p_version}"
10
21
  fi
11
22
  source="${pkgname}-${pkgver}.tar.gz"
12
23
  pkgdesc="Couchbase C++ SDK"
@@ -18,6 +29,10 @@ makedepends="
18
29
  linux-headers
19
30
  cmake
20
31
  ninja
32
+ curl-dev
33
+ protobuf-dev
34
+ grpc-dev
35
+ nlohmann-json
21
36
  "
22
37
  subpackages="${pkgname}-dev ${pkgname}-tools"
23
38
  options="!check"
@@ -36,6 +51,7 @@ build() {
36
51
  -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
37
52
  -DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
38
53
  -DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
54
+ -DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON \
39
55
  -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
40
56
  -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON \
41
57
  -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
@@ -88,10 +88,18 @@ function(bundle_static_library tgt_name bundled_tgt_name)
88
88
  set(ar_tool ${CMAKE_CXX_COMPILER_AR})
89
89
  endif()
90
90
 
91
+ if(APPLE)
92
+ find_program(SED gsed)
93
+ else()
94
+ find_program(SED sed)
95
+ endif()
96
+
91
97
  add_custom_command(
92
- COMMAND ${ar_tool} -M < ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar
98
+ COMMAND ${SED} -i "s|${CMAKE_BINARY_DIR}/||g" ${bundled_tgt_name}.ar
99
+ COMMAND ${ar_tool} -M < ${bundled_tgt_name}.ar
93
100
  OUTPUT ${bundled_tgt_full_name}
94
101
  DEPENDS ${tgt_name} ${static_libs}
102
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
95
103
  COMMENT "Bundling ${bundled_tgt_name}"
96
104
  VERBATIM)
97
105
  elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
@@ -3,27 +3,56 @@ if(NOT ENABLE_CACHE)
3
3
  return()
4
4
  endif()
5
5
 
6
- set(CACHE_OPTION
7
- "ccache"
8
- CACHE STRING "Compiler cache to be used")
9
- set(CACHE_OPTION_VALUES "ccache" "sccache")
10
- set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES})
11
- list(
12
- FIND
13
- CACHE_OPTION_VALUES
14
- ${CACHE_OPTION}
15
- CACHE_OPTION_INDEX)
6
+ if(NOT DEFINED CACHE_OPTION)
7
+ set(CACHE_OPTION "")
8
+ endif()
9
+
10
+ set(CACHE_OPTION_VALUES "sccache" "ccache")
16
11
 
17
- if(${CACHE_OPTION_INDEX} EQUAL -1)
18
- message(
19
- STATUS
20
- "Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}")
12
+ if(CACHE_OPTION STREQUAL "")
13
+ find_program(SCCACHE_BIN sccache)
14
+ if(SCCACHE_BIN)
15
+ set(CACHE_OPTION "sccache")
16
+ set(CACHE_BINARY ${SCCACHE_BIN})
17
+ else()
18
+ find_program(CCACHE_BIN ccache)
19
+ if(CCACHE_BIN)
20
+ set(CACHE_OPTION "ccache")
21
+ set(CACHE_BINARY ${CCACHE_BIN})
22
+ else()
23
+ set(CACHE_OPTION "none")
24
+ set(CACHE_BINARY "")
25
+ endif()
26
+ endif()
27
+ else()
28
+ if(NOT
29
+ CACHE_OPTION
30
+ IN_LIST
31
+ CACHE_OPTION_VALUES)
32
+ message(
33
+ STATUS
34
+ "Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}"
35
+ )
36
+ endif()
37
+ find_program(CACHE_BINARY ${CACHE_OPTION})
21
38
  endif()
22
39
 
23
- find_program(CACHE_BINARY ${CACHE_OPTION})
24
- if(CACHE_BINARY)
25
- message(STATUS "${CACHE_OPTION} found and enabled")
26
- set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
40
+ if(CACHE_OPTION STREQUAL "none" OR CACHE_BINARY STREQUAL "")
41
+ message(WARNING "No compiler cache found or enabled; building without compiler cache")
27
42
  else()
28
- message(WARNING "${CACHE_OPTION} is enabled but was not found. Not using it")
43
+ if(CMAKE_GENERATOR MATCHES "Visual Studio")
44
+ message(WARNING "Compiler cache (sccache/ccache) ignored with Visual Studio generator + MSVC. Use -GNinja instead.")
45
+ return()
46
+ endif()
47
+
48
+ message(STATUS "Compiler cache '${CACHE_OPTION}' found at: ${CACHE_BINARY}")
49
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
50
+ set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
51
+ if(MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
52
+ set(CMAKE_C_FLAGS_DEBUG "/Z7 /Od /RTC1 /FS")
53
+ set(CMAKE_CXX_FLAGS_DEBUG "/Z7 /Od /RTC1 /FS")
54
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Z7 /O2 /FS")
55
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Z7 /O2 /FS")
56
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
57
+ endif()
29
58
  endif()
@@ -42,7 +42,9 @@ function(set_project_options target_name)
42
42
  endif()
43
43
 
44
44
  if(HAVE_BACKTRACE OR HAVE_DLADDR)
45
- if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
45
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
46
+ AND NOT APPLE
47
+ AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
46
48
  target_compile_options(${target_name} PRIVATE -ggdb3)
47
49
  endif()
48
50
  target_compile_definitions(${target_name} PRIVATE -D_GNU_SOURCE=1)
@@ -209,10 +209,18 @@ if(COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE)
209
209
  file(READ "${COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT}/mozilla-ca-bundle.crt" CA_BUNDLE_CONTENT)
210
210
  string(
211
211
  REGEX MATCH
212
- "Certificate data from Mozilla as of: ([^\n]*)"
212
+ "Certificate data from Mozilla (as of|last updated on): ([^\n]*)"
213
213
  CA_BUNDLE_DATE_LINE
214
214
  ${CA_BUNDLE_CONTENT})
215
- set(COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE "${CMAKE_MATCH_1}")
215
+ if(CA_BUNDLE_DATE_LINE)
216
+ set(COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE "${CMAKE_MATCH_2}")
217
+ else()
218
+ message(
219
+ WARNING
220
+ "Failed to extract Mozilla CA bundle date from certificate file; "
221
+ "COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE will be set to 'unknown'.")
222
+ set(COUCHBASE_CXX_CLIENT_MOZILLA_CA_BUNDLE_DATE "unknown")
223
+ endif()
216
224
  else()
217
225
  set(CA_BUNDLE_CONTENT "")
218
226
  endif()
@@ -84,6 +84,12 @@ add_custom_command(
84
84
  set(COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE ${PROJECT_SOURCE_DIR}/cmake/tarball_glob.txt)
85
85
 
86
86
  if(COUCHBASE_CXX_RECORD_BUILD_INFO_FOR_TARBALL)
87
+ if(CPM_USE_NAMED_CACHE_DIRECTORIES)
88
+ get_filename_component(opentelemetry_SOURCE_DIR_PARENT "${opentelemetry_SOURCE_DIR}" DIRECTORY)
89
+ get_filename_component(opentelemetry_CPM_HASH "${opentelemetry_SOURCE_DIR_PARENT}" NAME)
90
+ else()
91
+ get_filename_component(opentelemetry_CPM_HASH "${opentelemetry_SOURCE_DIR}" NAME)
92
+ endif()
87
93
  file(
88
94
  WRITE "${CMAKE_SOURCE_DIR}/cmake/TarballRelease.cmake"
89
95
  "
@@ -91,6 +97,7 @@ set(CPM_DOWNLOAD_ALL OFF CACHE BOOL \"\" FORCE)
91
97
  set(CPM_USE_NAMED_CACHE_DIRECTORIES ON CACHE BOOL \"\" FORCE)
92
98
  set(CPM_USE_LOCAL_PACKAGES OFF CACHE BOOL \"\" FORCE)
93
99
  set(CPM_SOURCE_CACHE \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
100
+ set(OTELCPP_PROTO_PATH \"\${PROJECT_SOURCE_DIR}/third_party_cache/opentelemetry/${opentelemetry_CPM_HASH}/opentelemetry/third_party/opentelemetry-proto\" CACHE STRING \"\" FORCE)
94
101
  set(COUCHBASE_CXX_CLIENT_GIT_REVISION \"${COUCHBASE_CXX_CLIENT_GIT_REVISION}\")
95
102
  set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE \"${COUCHBASE_CXX_CLIENT_GIT_DESCRIBE}\")
96
103
  set(COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP \"${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}\")
@@ -112,16 +119,36 @@ add_custom_command(
112
119
  -DCPM_SOURCE_CACHE="${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache"
113
120
  -DCOUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT="${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache"
114
121
  -DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON -DCOUCHBASE_CXX_CLIENT_BUILD_DOCS=OFF
122
+ -DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON
115
123
  -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON -DCPM_DOWNLOAD_ALL=ON -DCPM_USE_NAMED_CACHE_DIRECTORIES=ON
116
124
  -DCPM_USE_LOCAL_PACKAGES=OFF -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
117
125
  -DCOUCHBASE_CXX_CLIENT_INSTALL=ON -DCOUCHBASE_CXX_RECORD_BUILD_INFO_FOR_TARBALL=ON
118
126
  COMMAND
119
- ${XARGS} --arg-file=${COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE} -I {} find
127
+ ${XARGS} -a ${COUCHBASE_CXX_TARBALL_THIRD_PARTY_GLOB_FILE} -I {} find
120
128
  "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache" -wholename "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/cache/{}"
121
- -type f | grep -v "crypto_test_data\\|googletest" | uniq >
129
+ -type f
130
+ | grep -v
131
+ -e "/benchmark"
132
+ -e "/opentelemetry.*/functional"
133
+ -e "/opentelemetry.*/install"
134
+ -e "/opentelemetry.*/test"
135
+ -e "/opentelemetry/examples"
136
+ -e "/opentelemetry/docker"
137
+ -e "/opentelemetry/exporters/elasticsearch"
138
+ -e "/opentelemetry/exporters/etw"
139
+ -e "/opentelemetry/exporters/prometheus"
140
+ -e "/opentelemetry/exporters/zipkin"
141
+ -e "/opentelemetry/opentracing-.*"
142
+ -e "/opentelemetry/third_party/ms-gsl"
143
+ -e "/opentelemetry/third_party/nlohmann-json"
144
+ -e "/opentelemetry/third_party/prometheus-cpp"
145
+ -e "/opentelemetry/tools"
146
+ -e "crypto_test_data"
147
+ -e "googletest"
148
+ | uniq >
122
149
  "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt"
123
150
  COMMAND ${CMAKE_COMMAND} -E make_directory "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
124
- COMMAND ${XARGS} --arg-file="${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt" -I {} ${CP} --parents
151
+ COMMAND ${XARGS} -a "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/third_party_manifest.txt" -I {} ${CP} --parents
125
152
  {} "${COUCHBASE_CXX_CLIENT_TARBALL_NAME}/tmp/filtered_cache"
126
153
  COMMAND
127
154
  ${CMAKE_COMMAND} -E rename
@@ -263,7 +290,7 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
263
290
  set(COUCHBASE_CXX_CLIENT_SPEC "${PROJECT_BINARY_DIR}/packaging/couchbase-cxx-client.spec")
264
291
  configure_file(${PROJECT_SOURCE_DIR}/cmake/couchbase-cxx-client.spec.in "${COUCHBASE_CXX_CLIENT_SPEC}" @ONLY)
265
292
 
266
- set(COUCHBASE_CXX_CLIENT_DEFAULT_ROOT "rocky-9-${CMAKE_SYSTEM_PROCESSOR}")
293
+ set(COUCHBASE_CXX_CLIENT_DEFAULT_ROOT "rocky+epel-9-${CMAKE_SYSTEM_PROCESSOR}")
267
294
  set(COUCHBASE_CXX_CLIENT_RPM_NAME
268
295
  "couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}-${COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE}")
269
296
  set(COUCHBASE_CXX_CLIENT_SRPM "${PROJECT_BINARY_DIR}/packaging/srpm/${COUCHBASE_CXX_CLIENT_RPM_NAME}.el9.src.rpm")
@@ -282,9 +309,9 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
282
309
  APPEND
283
310
  COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS
284
311
  "opensuse-leap-15.6-${CMAKE_SYSTEM_PROCESSOR}"
285
- "rocky-10-${CMAKE_SYSTEM_PROCESSOR}"
286
- "rocky-9-${CMAKE_SYSTEM_PROCESSOR}"
287
- "rocky-8-${CMAKE_SYSTEM_PROCESSOR}"
312
+ "rocky+epel-10-${CMAKE_SYSTEM_PROCESSOR}"
313
+ "rocky+epel-9-${CMAKE_SYSTEM_PROCESSOR}"
314
+ "rocky+epel-8-${CMAKE_SYSTEM_PROCESSOR}"
288
315
  "amazonlinux-2023-${CMAKE_SYSTEM_PROCESSOR}"
289
316
  "fedora-43-${CMAKE_SYSTEM_PROCESSOR}"
290
317
  "fedora-42-${CMAKE_SYSTEM_PROCESSOR}"
@@ -327,8 +354,21 @@ if(COUCHBASE_CXX_CLIENT_APK_TARGETS)
327
354
  set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
328
355
  "${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
329
356
  if(${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS} GREATER 0)
357
+ # Encode commit count and git hash into _p version for uniqueness
358
+ # Extract first 3 bytes from git hash (7-char short hash), convert to decimal
359
+ # Map each byte mod 100 to create 6-digit suffix
360
+ # Formula: p = commits × 10_000_000 + (byte1%100)*10000 + (byte2%100)*100 + (byte3%100)
361
+ # Example: 1.2.0-75-gfeb729b2 → 1.2.0_p750548341
362
+ string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 0 2 _b1_hex)
363
+ string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 2 2 _b2_hex)
364
+ string(SUBSTRING "${COUCHBASE_CXX_CLIENT_GIT_REVISION_SHORT}" 4 2 _b3_hex)
365
+ math(EXPR _b1 "0x${_b1_hex}")
366
+ math(EXPR _b2 "0x${_b2_hex}")
367
+ math(EXPR _b3 "0x${_b3_hex}")
368
+ math(EXPR _sha_pack "(${_b1} % 100) * 10000 + (${_b2} % 100) * 100 + (${_b3} % 100)")
369
+ math(EXPR _p_version "${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS} * 10000000 + ${_sha_pack}")
330
370
  set(COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE
331
- "couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}_p${COUCHBASE_CXX_CLIENT_NUMBER_OF_COMMITS}")
371
+ "couchbase-cxx-client-${COUCHBASE_CXX_CLIENT_PACKAGE_VERSION}_p${_p_version}")
332
372
  set(COUCHBASE_CXX_CLIENT_TARBALL_ALPINE
333
373
  "${PROJECT_BINARY_DIR}/packaging/${COUCHBASE_CXX_CLIENT_TARBALL_NAME_ALPINE}.tar.gz")
334
374
  endif()
@@ -39,6 +39,46 @@ if(NOT TARGET spdlog::spdlog)
39
39
  "SPDLOG_FMT_EXTERNAL OFF")
40
40
  endif()
41
41
 
42
+ if(COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY)
43
+ if(NOT TARGET opentelemetry)
44
+ # Disable curl HTTP client to avoid curl downloading and linking to BoringSSL
45
+ # OpenTelemetry will fall back to using its own HTTP client implementation
46
+ # This avoids CMake export errors when curl tries to reference ssl/crypto targets
47
+
48
+ # https://github.com/open-telemetry/opentelemetry-cpp/releases
49
+ cpmaddpackage(
50
+ NAME
51
+ opentelemetry
52
+ VERSION
53
+ 1.23.0
54
+ GITHUB_REPOSITORY
55
+ "open-telemetry/opentelemetry-cpp"
56
+ EXCLUDE_FROM_ALL ON
57
+ OPTIONS
58
+ "protobuf_MSVC_STATIC_RUNTIME OFF"
59
+ "OPENTELEMETRY_INSTALL OFF"
60
+ "WITH_ABI_VERSION_1 OFF"
61
+ "WITH_ABI_VERSION_2 ON"
62
+ "WITH_BENCHMARK OFF"
63
+ "WITH_EXAMPLES OFF"
64
+ "WITH_FUNC_TESTS OFF"
65
+ "WITH_OTLP_GRPC OFF"
66
+ "WITH_OTLP_HTTP ON"
67
+ "WITH_HTTP_CLIENT_CURL OFF"
68
+ "WITH_PROMETHEUS OFF"
69
+ "WITH_OPENTRACING OFF"
70
+ "WITH_STL CXX17"
71
+ "BUILD_TESTING OFF"
72
+ "BUILD_SHARED_LIBS OFF"
73
+ "CMAKE_C_VISIBILITY_PRESET hidden"
74
+ "CMAKE_CXX_VISIBILITY_PRESET hidden"
75
+ "CMAKE_POSITION_INDEPENDENT_CODE ON")
76
+ endif()
77
+
78
+ declare_system_library(opentelemetry_exporter_otlp_http)
79
+ declare_system_library(opentelemetry_exporter_otlp_http_metric)
80
+ endif()
81
+
42
82
  if(NOT TARGET Microsoft.GSL::GSL)
43
83
  # https://github.com/microsoft/GSL/releases
44
84
  cpmaddpackage(
@@ -265,3 +305,4 @@ declare_system_library(Microsoft.GSL::GSL)
265
305
  declare_system_library(spdlog::spdlog)
266
306
  declare_system_library(asio)
267
307
  declare_system_library(taocpp::json)
308
+ declare_system_library(snappy)
@@ -24,3 +24,5 @@
24
24
  #cmakedefine COUCHBASE_CXX_CLIENT_BORINGSSL_SHA "@COUCHBASE_CXX_CLIENT_BORINGSSL_SHA@"
25
25
  #cmakedefine COUCHBASE_CXX_CLIENT_STATIC_BORINGSSL
26
26
  #cmakedefine COUCHBASE_CXX_CLIENT_COLUMNAR
27
+ #cmakedefine COUCHBASE_CXX_CLIENT_CREATE_OPERATION_SPAN_IN_CORE
28
+ #cmakedefine COUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY
@@ -12,6 +12,19 @@ BuildRequires: gcc13, gcc13-c++
12
12
  BuildRequires: gcc, gcc-c++
13
13
  %endif
14
14
  BuildRequires: cmake >= 3.19
15
+ %if 0%{?suse_version} > 0
16
+ BuildRequires: libcurl-devel
17
+ BuildRequires: protobuf-devel
18
+ BuildRequires: nlohmann_json-devel
19
+ %else
20
+ %if 0%{?amzn} == 0 && (0%{?rhel} >= 9 || 0%{?fedora} > 0)
21
+ BuildRequires: curl-devel
22
+ BuildRequires: protobuf-devel
23
+ BuildRequires: json-devel
24
+ %else
25
+ # CentOS 8 / Rocky 8 - skip these packages (no OpenTelemetry)
26
+ %endif
27
+ %endif
15
28
  Source0: @COUCHBASE_CXX_CLIENT_TARBALL_NAME@.tar.gz
16
29
 
17
30
  %if 0%{?amzn}
@@ -50,6 +63,11 @@ Development files for the Couchbase C++ SDK.
50
63
  -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
51
64
  -DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
52
65
  -DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
66
+ %if 0%{?amzn} == 0 && (0%{?rhel} >= 9 || 0%{?fedora} > 0 || 0%{?suse_version} > 0)
67
+ -DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON \
68
+ %else
69
+ -DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=OFF \
70
+ %endif
53
71
  -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
54
72
  -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON \
55
73
  -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
@@ -2,7 +2,12 @@ Source: couchbase-cxx-client
2
2
  Section: libs
3
3
  Priority: optional
4
4
  Maintainer: Couchbase SDK Team <support@couchbase.com>
5
- Build-Depends: debhelper (>= 9), cmake, pkg-config
5
+ Build-Depends: debhelper (>= 9), cmake, pkg-config,
6
+ libcurl4-openssl-dev,
7
+ protobuf-compiler,
8
+ libprotobuf-dev,
9
+ libgrpc-dev,
10
+ nlohmann-json3-dev
6
11
  Standards-Version: 4.5.0
7
12
  Vcs-Browser: https://github.com/couchbase/couchbase-cxx-client
8
13
  Vcs-Git: https://github.com/couchbase/couchbase-cxx-client.git
@@ -37,6 +37,7 @@ override_dh_auto_configure:
37
37
  -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
38
38
  -DCOUCHBASE_CXX_CLIENT_BUILD_EXAMPLES=OFF \
39
39
  -DCOUCHBASE_CXX_CLIENT_BUILD_TESTS=OFF \
40
+ -DCOUCHBASE_CXX_CLIENT_BUILD_OPENTELEMETRY=ON \
40
41
  -DCOUCHBASE_CXX_CLIENT_BUILD_TOOLS=ON \
41
42
  -DCOUCHBASE_CXX_CLIENT_BUILD_STATIC=ON \
42
43
  -DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
@@ -90,3 +90,13 @@ spdlog/*/spdlog/include/*
90
90
  spdlog/*/spdlog/include/**/*
91
91
  spdlog/*/spdlog/src/*
92
92
  spdlog/*/spdlog/src/**/*
93
+ opentelemetry/*/opentelemetry/CMakeLists.txt
94
+ opentelemetry/*/opentelemetry/CMakeSettings.json
95
+ opentelemetry/*/opentelemetry/LICENSE
96
+ opentelemetry/*/opentelemetry/*/CMakeLists.txt
97
+ opentelemetry/*/opentelemetry/cmake/*
98
+ opentelemetry/*/opentelemetry/**/CMakeLists.txt
99
+ opentelemetry/*/opentelemetry/**/LICENSE
100
+ opentelemetry/*/opentelemetry/**/*.h
101
+ opentelemetry/*/opentelemetry/**/*.cc
102
+ opentelemetry/*/opentelemetry/third_party/opentelemetry-proto/opentelemetry/proto/**/*.proto
@@ -18,6 +18,7 @@
18
18
  #include "logger/logger.hxx"
19
19
  #include "meta/version.hxx"
20
20
  #include "topology/configuration.hxx"
21
+ #include "utils/binary.hxx"
21
22
  #include "utils/json.hxx"
22
23
 
23
24
  #include <spdlog/fmt/bin_to_hex.h>