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
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * @internal
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.LoggingMeter = void 0;
30
+ const hdr = __importStar(require("hdr-histogram-js"));
31
+ const errors_1 = require("./errors");
32
+ const observabilitytypes_1 = require("./observabilitytypes");
33
+ /**
34
+ * Internal class for recording metric values using HDR histograms.
35
+ *
36
+ * @internal
37
+ */
38
+ class LoggingValueRecorder {
39
+ constructor() {
40
+ this._percentiles = [50.0, 90.0, 99.0, 99.9, 100.0];
41
+ this._histogram = hdr.build({
42
+ lowestDiscernibleValue: 1, // 1 microsecond
43
+ highestTrackableValue: 30000000, // 30 seconds
44
+ numberOfSignificantValueDigits: 3,
45
+ });
46
+ }
47
+ /**
48
+ * Records a metric value.
49
+ *
50
+ * @param value - The value to record (typically latency in microseconds).
51
+ */
52
+ recordValue(value) {
53
+ this._histogram.recordValue(value);
54
+ }
55
+ /**
56
+ * Gets the current percentile values and resets the histogram.
57
+ *
58
+ * @returns The percentile report containing total count and percentile values.
59
+ */
60
+ getPercentilesAndReset() {
61
+ const mappedPercentiles = {};
62
+ for (const p of this._percentiles) {
63
+ mappedPercentiles[p.toString()] = this._histogram.getValueAtPercentile(p);
64
+ }
65
+ const result = {
66
+ total_count: this._histogram.totalCount,
67
+ percentiles_us: mappedPercentiles,
68
+ };
69
+ this._histogram.reset();
70
+ return result;
71
+ }
72
+ }
73
+ /**
74
+ * Internal class for periodically emitting meter reports.
75
+ *
76
+ * @internal
77
+ */
78
+ class LoggingMeterReporter {
79
+ constructor(loggingMeter, emitInterval, logger) {
80
+ this._loggingMeter = loggingMeter;
81
+ this._emitInterval = emitInterval;
82
+ this._logger = logger;
83
+ this._stopped = false;
84
+ }
85
+ /**
86
+ * @internal
87
+ */
88
+ start() {
89
+ this._timerId = setInterval(this.report.bind(this), this._emitInterval);
90
+ // let the process exit even if the reporter has not been shutdown
91
+ this._timerId.unref();
92
+ this._stopped = false;
93
+ }
94
+ /**
95
+ * @internal
96
+ */
97
+ stop() {
98
+ if (this._stopped) {
99
+ return;
100
+ }
101
+ this._stopped = true;
102
+ clearInterval(this._timerId);
103
+ }
104
+ /**
105
+ * @internal
106
+ */
107
+ report() {
108
+ const report = this._loggingMeter.createReport();
109
+ if (report) {
110
+ this._logger.info(JSON.stringify(report));
111
+ }
112
+ }
113
+ /**
114
+ * @internal
115
+ */
116
+ toJSON() {
117
+ return {};
118
+ }
119
+ }
120
+ /**
121
+ * A logging-based meter implementation that records metrics using HDR histograms
122
+ * and periodically reports percentile statistics.
123
+ *
124
+ * @internal
125
+ */
126
+ class LoggingMeter {
127
+ /**
128
+ * Creates a new LoggingMeter with the specified flush interval.
129
+ *
130
+ * @param logger - The logger to be used by the LoggingMeter.
131
+ * @param emitInterval - The interval in milliseconds between reports (default: 600000ms = 10 minutes).
132
+ */
133
+ constructor(logger, emitInterval) {
134
+ this._recorders = new Map();
135
+ this._emitInterval = emitInterval !== null && emitInterval !== void 0 ? emitInterval : 600000; // Default to 10 minutes
136
+ // Initialize recorders map for each service type
137
+ for (const serviceType of Object.values(observabilitytypes_1.ServiceName)) {
138
+ this._recorders.set(serviceType, new Map());
139
+ }
140
+ this._reporter = new LoggingMeterReporter(this, this._emitInterval, logger);
141
+ this._reporter.start();
142
+ }
143
+ /**
144
+ * Gets the meter's LoggingMeterReporter.
145
+ *
146
+ * @internal
147
+ */
148
+ get reporter() {
149
+ return this._reporter;
150
+ }
151
+ /**
152
+ * Gets or creates a value recorder for the specified metric name and tags.
153
+ *
154
+ * @param _name - Unused.
155
+ * @param tags - Key-value pairs that categorize the metric.
156
+ * @returns A value recorder for recording values.
157
+ */
158
+ valueRecorder(_name, tags) {
159
+ // The ObservabilityHandler, at least for now, only passes in OpAttributeName.MeterNameOpDuration for the name
160
+ // for OTel compat. However, for the loging meter we care about the opName.
161
+ const serviceTag = tags[observabilitytypes_1.OpAttributeName.Service];
162
+ if (!Object.values(observabilitytypes_1.ServiceName).includes(serviceTag)) {
163
+ throw new errors_1.MeterError(new Error(`Invalid service type: ${serviceTag}`));
164
+ }
165
+ const service = serviceTag;
166
+ const opMap = this._recorders.get(service);
167
+ const opName = tags[observabilitytypes_1.OpAttributeName.OperationName];
168
+ let recorder = opMap.get(opName);
169
+ if (!recorder) {
170
+ recorder = new LoggingValueRecorder();
171
+ opMap.set(opName, recorder);
172
+ }
173
+ return recorder;
174
+ }
175
+ /**
176
+ * Creates a report of all recorded metrics and resets the histograms.
177
+ *
178
+ * @returns The logging meter report with percentile statistics.
179
+ */
180
+ createReport() {
181
+ const report = {
182
+ meta: {
183
+ emit_interval_s: this._emitInterval / 1000,
184
+ },
185
+ operations: {},
186
+ };
187
+ for (const [serviceType, opMap] of this._recorders.entries()) {
188
+ const svcReport = {};
189
+ for (const [opName, recorder] of opMap.entries()) {
190
+ const percentileReport = recorder.getPercentilesAndReset();
191
+ if (percentileReport.total_count > 0) {
192
+ svcReport[opName] = percentileReport;
193
+ }
194
+ }
195
+ if (Object.keys(svcReport).length > 0) {
196
+ report.operations[serviceType] = svcReport;
197
+ }
198
+ }
199
+ if (Object.keys(report.operations).length === 0) {
200
+ return null;
201
+ }
202
+ return report;
203
+ }
204
+ /**
205
+ * Stops the threshold logging reporter and cleans up resources.
206
+ *
207
+ * This method should be called when shutting down the application or when
208
+ * the tracer is no longer needed to ensure the periodic reporting timer
209
+ * is properly cleared.
210
+ */
211
+ cleanup() {
212
+ try {
213
+ this._reporter.stop();
214
+ }
215
+ catch (_e) {
216
+ // Don't raise exceptions during shutdown
217
+ }
218
+ }
219
+ /**
220
+ * @internal
221
+ */
222
+ toJSON() {
223
+ return { emitInterval: this._emitInterval };
224
+ }
225
+ }
226
+ exports.LoggingMeter = LoggingMeter;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ /**
5
+ * Abstract interface for recording metric values.
6
+ *
7
+ * Implementations should record values that will be aggregated and tracked over time,
8
+ * typically for latency or performance metrics.
9
+ */
10
+ export interface ValueRecorder {
11
+ /**
12
+ * Records a single value.
13
+ *
14
+ * @param value - The value to record (typically latency in microseconds).
15
+ */
16
+ recordValue(value: number): void;
17
+ }
18
+ /**
19
+ * Abstract interface for creating and managing value recorders.
20
+ *
21
+ * Implementations should allow creating value recorders with specific names
22
+ * and tags for organizing and categorizing metrics.
23
+ */
24
+ export interface Meter {
25
+ /**
26
+ * Gets or creates a value recorder with the specified name and tags.
27
+ *
28
+ * @param name - The name of the recorder (typically operation name).
29
+ * @param tags - Key-value pairs that categorize the metric (e.g., service, operation).
30
+ * @returns {ValueRecorder} A value recorder for recording values.
31
+ */
32
+ valueRecorder(name: string, tags: Record<string, any>): ValueRecorder;
33
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * @internal
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,60 @@
1
+ import { CppObservableRequests, CppObservableResponse, ObservableBindingFunc } from './binding';
2
+ import { ValueRecorder, Meter } from './metrics';
3
+ import { ObservableRequestHandler } from './observabilityhandler';
4
+ import { RequestSpan, RequestTracer } from './tracing';
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class NoOpSpan implements RequestSpan {
9
+ /**
10
+ * @internal
11
+ */
12
+ setAttribute(): void;
13
+ /**
14
+ * @internal
15
+ */
16
+ addEvent(): void;
17
+ /**
18
+ * @internal
19
+ */
20
+ setStatus(): void;
21
+ /**
22
+ * @internal
23
+ */
24
+ end(): void;
25
+ /**
26
+ * @internal
27
+ */
28
+ get name(): string;
29
+ }
30
+ /**
31
+ * @internal
32
+ */
33
+ export declare class NoOpTracer implements RequestTracer {
34
+ /**
35
+ * @internal
36
+ */
37
+ requestSpan(): RequestSpan;
38
+ }
39
+ /**
40
+ * @internal
41
+ */
42
+ export declare function wrapObservableBindingCall<TReq extends CppObservableRequests, TResp extends CppObservableResponse>(fn: ObservableBindingFunc<TReq, TResp>, req: TReq, obsReqHandler: ObservableRequestHandler): Promise<[Error | null, TResp]>;
43
+ /**
44
+ * @internal
45
+ */
46
+ export declare class NoOpValueRecorder implements ValueRecorder {
47
+ /**
48
+ * @internal
49
+ */
50
+ recordValue(_value: number): void;
51
+ }
52
+ /**
53
+ * @internal
54
+ */
55
+ export declare class NoOpMeter implements Meter {
56
+ /**
57
+ * @internal
58
+ */
59
+ valueRecorder(_name: string, _tags: Record<string, string>): ValueRecorder;
60
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoOpMeter = exports.NoOpValueRecorder = exports.wrapObservableBindingCall = exports.NoOpTracer = exports.NoOpSpan = void 0;
4
+ const bindingutilities_1 = require("./bindingutilities");
5
+ /**
6
+ * @internal
7
+ */
8
+ class NoOpSpan {
9
+ /**
10
+ * @internal
11
+ */
12
+ setAttribute() { }
13
+ /**
14
+ * @internal
15
+ */
16
+ addEvent() { }
17
+ /**
18
+ * @internal
19
+ */
20
+ setStatus() { }
21
+ /**
22
+ * @internal
23
+ */
24
+ end() { }
25
+ /**
26
+ * @internal
27
+ */
28
+ get name() {
29
+ return '';
30
+ }
31
+ }
32
+ exports.NoOpSpan = NoOpSpan;
33
+ /**
34
+ * @internal
35
+ */
36
+ class NoOpTracer {
37
+ /**
38
+ * @internal
39
+ */
40
+ requestSpan() {
41
+ return new NoOpSpan();
42
+ }
43
+ }
44
+ exports.NoOpTracer = NoOpTracer;
45
+ /**
46
+ * @internal
47
+ */
48
+ async function wrapObservableBindingCall(fn, req, obsReqHandler) {
49
+ return await new Promise((resolve) => {
50
+ req.wrapper_span_name = obsReqHandler.wrapperSpanName;
51
+ fn(req, (cppErr, res) => {
52
+ let err = null;
53
+ if (cppErr) {
54
+ err = (0, bindingutilities_1.errorFromCpp)(cppErr);
55
+ obsReqHandler.processCoreSpan(cppErr.cpp_core_span);
56
+ }
57
+ else {
58
+ obsReqHandler.processCoreSpan(res.cpp_core_span);
59
+ }
60
+ resolve([err, res]);
61
+ });
62
+ });
63
+ }
64
+ exports.wrapObservableBindingCall = wrapObservableBindingCall;
65
+ /**
66
+ * @internal
67
+ */
68
+ class NoOpValueRecorder {
69
+ /**
70
+ * @internal
71
+ */
72
+ recordValue(_value) { }
73
+ }
74
+ exports.NoOpValueRecorder = NoOpValueRecorder;
75
+ /**
76
+ * @internal
77
+ */
78
+ class NoOpMeter {
79
+ /**
80
+ * @internal
81
+ */
82
+ valueRecorder(_name, _tags) {
83
+ return new NoOpValueRecorder();
84
+ }
85
+ }
86
+ exports.NoOpMeter = NoOpMeter;
@@ -0,0 +1,176 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { CppDocumentId, CppDurabilityLevel, CppWrapperSdkChildSpan, CppWrapperSdkSpan, HiResTime } from './binding';
4
+ import { ObservabilityInstruments } from './observabilitytypes';
5
+ import { AttributeValue, CppOpAttributeName, OpType, OpAttributeName, SpanStatus, ServiceName } from './observabilitytypes';
6
+ import { HttpOpAttributesOptions } from './observabilityutilities';
7
+ import { RequestSpan, RequestTracer } from './tracing';
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare class ObservableRequestHandler {
12
+ private _opType;
13
+ private _requestHasEnded;
14
+ private readonly _tracerImpl;
15
+ private readonly _meterImpl;
16
+ constructor(opType: OpType, observabilityInstruments: ObservabilityInstruments, parentSpan?: RequestSpan);
17
+ /**
18
+ * @internal
19
+ */
20
+ get opType(): OpType;
21
+ /**
22
+ * @internal
23
+ */
24
+ get requestHasEnded(): boolean;
25
+ /**
26
+ * @internal
27
+ */
28
+ get wrapperSpanName(): string;
29
+ /**
30
+ * @internal
31
+ */
32
+ get wrappedSpan(): WrappedSpan | undefined;
33
+ /**
34
+ * @internal
35
+ */
36
+ get clusterName(): string | undefined;
37
+ /**
38
+ * @internal
39
+ */
40
+ get clusterUUID(): string | undefined;
41
+ /**
42
+ * @internal
43
+ */
44
+ end(): void;
45
+ /**
46
+ * @internal
47
+ */
48
+ endWithError(error?: any): void;
49
+ /**
50
+ * @internal
51
+ */
52
+ maybeAddEncodingSpan(encodeFn: () => [Buffer, number]): [Buffer, number];
53
+ /**
54
+ * @internal
55
+ */
56
+ maybeCreateEncodingSpan(encodeFn: () => [Buffer, number]): [Buffer, number];
57
+ /**
58
+ * @internal
59
+ */
60
+ reset(opType: OpType, parentSpan?: RequestSpan, withError?: boolean): void;
61
+ /**
62
+ * @internal
63
+ */
64
+ processCoreSpan(coreSpan?: CppWrapperSdkSpan): void;
65
+ /**
66
+ * @internal
67
+ */
68
+ setRequestHttpAttributes(options?: HttpOpAttributesOptions): void;
69
+ /**
70
+ * @internal
71
+ */
72
+ setRequestKeyValueAttributes(cppDocId: CppDocumentId, durability?: CppDurabilityLevel): void;
73
+ }
74
+ /**
75
+ * @internal
76
+ */
77
+ export declare class WrappedSpan implements RequestSpan {
78
+ private readonly _serviceName;
79
+ private readonly _opType;
80
+ private readonly _tracer;
81
+ private readonly _hasMultipleEncodingSpans;
82
+ readonly _requestSpan: RequestSpan;
83
+ private _parentSpan;
84
+ private _endedEncodingSpans;
85
+ private _encodingSpan;
86
+ private _encodingSpans;
87
+ private _clusterName;
88
+ private _clusterUUID;
89
+ private _startTime;
90
+ private _endTimeWatermark;
91
+ constructor(serviceName: ServiceName, opType: OpType, tracer: RequestTracer, startTime: HiResTime, parentSpan?: RequestSpan | WrappedSpan);
92
+ /**
93
+ * @internal
94
+ */
95
+ get clusterName(): string | undefined;
96
+ /**
97
+ * @internal
98
+ */
99
+ get clusterUUID(): string | undefined;
100
+ /**
101
+ * @internal
102
+ */
103
+ get name(): string;
104
+ /**
105
+ * @internal
106
+ */
107
+ get requestSpan(): RequestSpan;
108
+ /**
109
+ * @internal
110
+ */
111
+ maybeAddEncodingSpan(encodeFn: () => [Buffer, number]): [Buffer, number];
112
+ /**
113
+ * @internal
114
+ */
115
+ maybeCreateEncodingSpan(encodeFn: () => [Buffer, number]): [Buffer, number];
116
+ /**
117
+ * @internal
118
+ */
119
+ maybeUpdateEndTimeWatermark(endTime: HiResTime): void;
120
+ /**
121
+ * @internal
122
+ */
123
+ _setAttributeOnAllSpans(attrName: OpAttributeName, attrValue: AttributeValue, skip_encoding_span?: boolean): void;
124
+ /**
125
+ * @internal
126
+ */
127
+ _maybeSetAttributeFromCoreSpan(coreSpan: CppWrapperSdkSpan, attrName: CppOpAttributeName | OpAttributeName, skip_encoding_span?: boolean): void;
128
+ /**
129
+ * @internal
130
+ */
131
+ _buildCoreSpans(coreSpans: CppWrapperSdkChildSpan[], parentSpan?: RequestSpan | WrappedSpan): void;
132
+ /**
133
+ * @internal
134
+ */
135
+ _buildDispatchCoreSpan(coreSpan: CppWrapperSdkChildSpan, parentSpan?: RequestSpan | WrappedSpan): void;
136
+ /**
137
+ * @internal
138
+ */
139
+ _buildNonDispatchCoreSpan(coreSpan: CppWrapperSdkChildSpan, parentSpan?: RequestSpan | WrappedSpan): void;
140
+ /**
141
+ * @internal
142
+ */
143
+ _endEncodingSpans(): void;
144
+ /**
145
+ * @internal
146
+ */
147
+ processCoreSpan(coreSpan: CppWrapperSdkSpan): void;
148
+ /**
149
+ * @internal
150
+ */
151
+ setClusterLabels(clusterLabels: Record<string, string | undefined>): void;
152
+ /**
153
+ * @internal
154
+ */
155
+ setRetryAttribute(retrCount?: number): void;
156
+ /**
157
+ * @internal
158
+ */
159
+ addEvent(): void;
160
+ /**
161
+ * @internal
162
+ */
163
+ end(endTime: HiResTime): void;
164
+ /**
165
+ * @internal
166
+ */
167
+ setAttribute(key: string, value: AttributeValue): void;
168
+ /**
169
+ * @internal
170
+ */
171
+ setStatus(status: SpanStatus): void;
172
+ /**
173
+ * @internal
174
+ */
175
+ _createRequestSpan(spanName: string, startTime: HiResTime, parentSpan?: RequestSpan): RequestSpan;
176
+ }