couchbase 4.6.0 → 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.
- package/CMakeLists.txt +2 -1
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +66 -93
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
- package/deps/couchbase-cxx-client/CMakeLists.txt +24 -11
- package/deps/couchbase-cxx-client/README.md +17 -16
- package/deps/couchbase-cxx-client/cmake/APKBUILD.in +17 -1
- package/deps/couchbase-cxx-client/cmake/Bundler.cmake +9 -1
- package/deps/couchbase-cxx-client/cmake/Cache.cmake +48 -19
- package/deps/couchbase-cxx-client/cmake/CompilerOptions.cmake +3 -1
- package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +10 -2
- package/deps/couchbase-cxx-client/cmake/Packaging.cmake +48 -8
- package/deps/couchbase-cxx-client/cmake/ThirdPartyDependencies.cmake +43 -1
- package/deps/couchbase-cxx-client/cmake/build_config.hxx.in +2 -0
- package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +18 -0
- package/deps/couchbase-cxx-client/cmake/debian/control +6 -1
- package/deps/couchbase-cxx-client/cmake/debian/rules +1 -0
- package/deps/couchbase-cxx-client/cmake/tarball_glob.txt +10 -0
- package/deps/couchbase-cxx-client/core/app_telemetry_meter.cxx +1 -0
- package/deps/couchbase-cxx-client/core/app_telemetry_reporter.cxx +45 -43
- package/deps/couchbase-cxx-client/core/app_telemetry_reporter.hxx +4 -3
- package/deps/couchbase-cxx-client/core/bucket.cxx +128 -13
- package/deps/couchbase-cxx-client/core/bucket.hxx +12 -2
- package/deps/couchbase-cxx-client/core/cluster.cxx +304 -152
- package/deps/couchbase-cxx-client/core/cluster.hxx +32 -0
- package/deps/couchbase-cxx-client/core/cluster_credentials.cxx +25 -0
- package/deps/couchbase-cxx-client/core/cluster_credentials.hxx +5 -0
- package/deps/couchbase-cxx-client/core/cluster_label_listener.cxx +72 -0
- package/deps/couchbase-cxx-client/core/cluster_label_listener.hxx +46 -0
- package/deps/couchbase-cxx-client/core/cluster_options.hxx +4 -0
- package/deps/couchbase-cxx-client/core/deprecation_utils.hxx +26 -0
- package/deps/couchbase-cxx-client/core/error.hxx +27 -0
- package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +0 -2
- package/deps/couchbase-cxx-client/core/http_component.cxx +12 -48
- package/deps/couchbase-cxx-client/core/impl/analytics.cxx +3 -2
- package/deps/couchbase-cxx-client/core/impl/analytics.hxx +2 -1
- package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +249 -137
- package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +134 -58
- package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +87 -35
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +560 -245
- package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +89 -49
- package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +4 -4
- package/deps/couchbase-cxx-client/core/impl/error.cxx +20 -13
- package/deps/couchbase-cxx-client/core/impl/error.hxx +15 -10
- package/deps/couchbase-cxx-client/core/impl/get_all_replicas.hxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/get_any_replica.hxx +2 -1
- package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/observability_recorder.cxx +161 -0
- package/deps/couchbase-cxx-client/core/impl/observability_recorder.hxx +77 -0
- package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/public_bucket.cxx +31 -7
- package/deps/couchbase-cxx-client/core/impl/public_cluster.cxx +107 -19
- package/deps/couchbase-cxx-client/core/impl/query.cxx +6 -3
- package/deps/couchbase-cxx-client/core/impl/query.hxx +3 -1
- package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +267 -102
- package/deps/couchbase-cxx-client/core/impl/scope.cxx +53 -11
- package/deps/couchbase-cxx-client/core/impl/search.cxx +8 -4
- package/deps/couchbase-cxx-client/core/impl/search.hxx +6 -2
- package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +131 -41
- package/deps/couchbase-cxx-client/core/impl/with_cancellation.hxx +75 -0
- package/deps/couchbase-cxx-client/core/io/config_tracker.cxx +9 -9
- package/deps/couchbase-cxx-client/core/io/config_tracker.hxx +2 -1
- package/deps/couchbase-cxx-client/core/io/http_command.hxx +98 -49
- package/deps/couchbase-cxx-client/core/io/http_context.hxx +2 -0
- package/deps/couchbase-cxx-client/core/io/http_session.cxx +23 -10
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -9
- package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +163 -228
- package/deps/couchbase-cxx-client/core/io/http_traits.hxx +0 -7
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +123 -44
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +251 -26
- package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +9 -1
- package/deps/couchbase-cxx-client/core/io/mcbp_traits.hxx +0 -8
- package/deps/couchbase-cxx-client/core/io/streams.cxx +3 -3
- package/deps/couchbase-cxx-client/core/io/streams.hxx +3 -2
- package/deps/couchbase-cxx-client/core/meta/features.hxx +15 -0
- package/deps/couchbase-cxx-client/core/meta/version.cxx +13 -0
- package/deps/couchbase-cxx-client/core/meta/version.hxx +3 -0
- package/deps/couchbase-cxx-client/core/metrics/constants.hxx +23 -0
- package/deps/couchbase-cxx-client/core/metrics/logging_meter.cxx +5 -5
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +65 -63
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +12 -10
- package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +0 -5
- package/deps/couchbase-cxx-client/core/operations/document_append.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +0 -5
- package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +0 -7
- package/deps/couchbase-cxx-client/core/operations/document_get.hxx +0 -7
- package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +77 -27
- package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +0 -9
- package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +0 -9
- package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +83 -2
- package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +0 -9
- package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +0 -5
- package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +0 -9
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +46 -4
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +121 -43
- package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +0 -5
- package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_search.hxx +0 -7
- package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +0 -7
- package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +0 -6
- package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +0 -4
- package/deps/couchbase-cxx-client/core/operations/document_view.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_view.hxx +10 -13
- package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +68 -30
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +4 -3
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/operation_traits.hxx +6 -0
- package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
- package/deps/couchbase-cxx-client/core/operations_fwd.hxx +8 -0
- package/deps/couchbase-cxx-client/core/origin.cxx +67 -12
- package/deps/couchbase-cxx-client/core/origin.hxx +13 -8
- package/deps/couchbase-cxx-client/core/orphan_reporter.cxx +164 -0
- package/deps/couchbase-cxx-client/core/orphan_reporter.hxx +65 -0
- package/deps/couchbase-cxx-client/core/sasl/CMakeLists.txt +1 -0
- package/deps/couchbase-cxx-client/core/sasl/client.cc +6 -0
- package/deps/couchbase-cxx-client/core/sasl/mechanism.cc +2 -1
- package/deps/couchbase-cxx-client/core/sasl/mechanism.h +2 -1
- package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.h +47 -0
- package/deps/couchbase-cxx-client/core/tls_context_provider.cxx +44 -0
- package/deps/couchbase-cxx-client/core/tls_context_provider.hxx +44 -0
- package/deps/couchbase-cxx-client/core/tracing/attribute_helpers.hxx +45 -0
- package/deps/couchbase-cxx-client/core/tracing/constants.hxx +148 -68
- package/deps/couchbase-cxx-client/core/tracing/threshold_logging_options.hxx +0 -3
- package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.cxx +122 -170
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +17 -24
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +8 -10
- package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +16 -14
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +4 -4
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +1 -2
- package/deps/couchbase-cxx-client/core/utils/byteswap.hxx +12 -0
- package/deps/couchbase-cxx-client/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +2 -0
- package/deps/couchbase-cxx-client/couchbase/certificate_authenticator.hxx +1 -0
- package/deps/couchbase-cxx-client/couchbase/cluster.hxx +47 -0
- package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +16 -0
- package/deps/couchbase-cxx-client/couchbase/collection.hxx +60 -15
- package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +48 -48
- package/deps/couchbase-cxx-client/couchbase/jwt_authenticator.hxx +52 -0
- package/deps/couchbase-cxx-client/couchbase/metrics/meter.hxx +2 -1
- package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +75 -80
- package/deps/couchbase-cxx-client/couchbase/network_options.hxx +19 -0
- package/deps/couchbase-cxx-client/couchbase/password_authenticator.hxx +1 -0
- package/deps/couchbase-cxx-client/couchbase/tracing/otel_tracer.hxx +15 -17
- package/deps/couchbase-cxx-client/couchbase/tracing/request_span.hxx +2 -2
- package/dist/analyticsexecutor.d.ts +15 -0
- package/dist/analyticsexecutor.js +79 -50
- package/dist/analyticsindexmanager.d.ts +66 -0
- package/dist/analyticsindexmanager.js +404 -277
- package/dist/analyticstypes.d.ts +5 -0
- package/dist/authenticators.d.ts +34 -1
- package/dist/authenticators.js +19 -1
- package/dist/binarycollection.d.ts +17 -0
- package/dist/binding.d.ts +245 -228
- package/dist/binding.js +2 -2
- package/dist/bindingutilities.js +1 -1
- package/dist/bucket.d.ts +8 -0
- package/dist/bucket.js +8 -0
- package/dist/bucketmanager.d.ts +30 -0
- package/dist/bucketmanager.js +128 -69
- package/dist/cluster.d.ts +45 -0
- package/dist/cluster.js +133 -23
- package/dist/collection.d.ts +75 -2
- package/dist/collection.js +773 -552
- package/dist/collectionmanager.d.ts +34 -0
- package/dist/collectionmanager.js +172 -89
- package/dist/couchbase.d.ts +5 -0
- package/dist/couchbase.js +5 -0
- package/dist/datastructures.js +310 -97
- package/dist/diagnosticsexecutor.js +1 -1
- package/dist/errors.d.ts +8 -0
- package/dist/errors.js +12 -1
- package/dist/eventingfunctionmanager.d.ts +42 -0
- package/dist/eventingfunctionmanager.js +172 -100
- package/dist/logger.d.ts +192 -0
- package/dist/logger.js +213 -0
- package/dist/loggingmeter.d.ts +120 -0
- package/dist/loggingmeter.js +226 -0
- package/dist/metrics.d.ts +33 -0
- package/dist/metrics.js +5 -0
- package/dist/observability.d.ts +60 -0
- package/dist/observability.js +86 -0
- package/dist/observabilityhandler.d.ts +176 -0
- package/dist/observabilityhandler.js +733 -0
- package/dist/observabilitytypes.d.ts +320 -0
- package/dist/observabilitytypes.js +362 -0
- package/dist/observabilityutilities.d.ts +60 -0
- package/dist/observabilityutilities.js +175 -0
- package/dist/otelmeter.d.ts +51 -0
- package/dist/otelmeter.js +100 -0
- package/dist/oteltracer.d.ts +69 -0
- package/dist/oteltracer.js +141 -0
- package/dist/queryexecutor.d.ts +16 -0
- package/dist/queryexecutor.js +128 -86
- package/dist/queryindexmanager.d.ts +29 -0
- package/dist/queryindexmanager.js +277 -150
- package/dist/querytypes.d.ts +5 -0
- package/dist/scope.js +2 -2
- package/dist/scopeeventingfunctionmanager.d.ts +5 -0
- package/dist/scopeeventingfunctionmanager.js +217 -119
- package/dist/scopesearchindexmanager.d.ts +5 -0
- package/dist/scopesearchindexmanager.js +295 -166
- package/dist/sdspecs.js +6 -1
- package/dist/searchexecutor.d.ts +15 -0
- package/dist/searchexecutor.js +54 -26
- package/dist/searchindexmanager.d.ts +54 -0
- package/dist/searchindexmanager.js +235 -142
- package/dist/searchtypes.d.ts +5 -0
- package/dist/thresholdlogging.d.ts +301 -0
- package/dist/thresholdlogging.js +657 -0
- package/dist/tracing.d.ts +55 -0
- package/dist/tracing.js +2 -0
- package/dist/transactions.js +1 -1
- package/dist/transcoders.js +1 -1
- package/dist/usermanager.d.ts +46 -0
- package/dist/usermanager.js +199 -118
- package/dist/utilities.d.ts +4 -0
- package/dist/utilities.js +11 -1
- package/dist/utilities_internal.js +0 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.js +7 -0
- package/dist/viewexecutor.d.ts +15 -0
- package/dist/viewexecutor.js +54 -29
- package/dist/viewindexmanager.d.ts +30 -0
- package/dist/viewindexmanager.js +129 -100
- package/dist/viewtypes.d.ts +5 -0
- package/package.json +32 -18
- package/scripts/buildPrebuild.js +2 -0
- package/scripts/install.js +2 -0
- package/scripts/prebuilds.js +7 -8
- package/scripts/prune.js +2 -0
- package/scripts/updateVersion.js +26 -0
- package/src/connection.cpp +79 -98
- package/src/connection.hpp +46 -38
- package/src/connection_autogen.cpp +1236 -292
- package/src/jstocbpp_autogen.hpp +1117 -313
- package/src/jstocbpp_basic.hpp +73 -0
- package/src/jstocbpp_defs.hpp +37 -9
- package/src/jstocbpp_errors.hpp +37 -11
- package/tools/gen-bindings-js.js +100 -22
- package/tools/gen-bindings-json.py +40 -6
- package/src/transcoder.hpp +0 -96
package/package.json
CHANGED
|
@@ -20,24 +20,37 @@
|
|
|
20
20
|
"license": "Apache-2.0",
|
|
21
21
|
"name": "couchbase",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"cmake-js": "^
|
|
23
|
+
"cmake-js": "^8.0.0",
|
|
24
|
+
"detect-libc": "^2.1.2",
|
|
25
|
+
"hdr-histogram-js": "^3.0.1",
|
|
24
26
|
"node-addon-api": "^8.3.1"
|
|
25
27
|
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@opentelemetry/api": "^1.0.0"
|
|
30
|
+
},
|
|
31
|
+
"peerDependenciesMeta": {
|
|
32
|
+
"@opentelemetry/api": {
|
|
33
|
+
"optional": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
26
36
|
"devDependencies": {
|
|
37
|
+
"@eslint/js": "^9.39.2",
|
|
38
|
+
"@opentelemetry/api": "^1.9.0",
|
|
27
39
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
|
28
40
|
"@tsconfig/node12": "^12.1.4",
|
|
29
41
|
"@types/bindings": "^1.5.5",
|
|
30
42
|
"@types/debug": "^4.1.12",
|
|
31
43
|
"@types/node": "^22.14.1",
|
|
32
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
33
|
-
"@typescript-eslint/parser": "^
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
45
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
34
46
|
"chai": "^4.5.0",
|
|
35
|
-
"eslint": "^
|
|
47
|
+
"eslint": "^9.39.2",
|
|
36
48
|
"eslint-config-prettier": "^9.1.0",
|
|
37
|
-
"eslint-plugin-jsdoc": "^
|
|
49
|
+
"eslint-plugin-jsdoc": "^50.6.2",
|
|
38
50
|
"eslint-plugin-mocha": "^10.5.0",
|
|
39
|
-
"eslint-plugin-
|
|
51
|
+
"eslint-plugin-n": "^17.17.0",
|
|
40
52
|
"expose-gc": "^1.0.0",
|
|
53
|
+
"globals": "^15.14.0",
|
|
41
54
|
"mocha": "^11.1.0",
|
|
42
55
|
"npm-check-updates": "^18.0.0",
|
|
43
56
|
"nyc": "^17.1.0",
|
|
@@ -48,13 +61,14 @@
|
|
|
48
61
|
"ts-node": "^10.9.2",
|
|
49
62
|
"typedoc": "^0.28.3",
|
|
50
63
|
"typescript": "~5.4.5",
|
|
64
|
+
"typescript-eslint": "^8.54.0",
|
|
51
65
|
"uuid": "^11.1.0"
|
|
52
66
|
},
|
|
53
67
|
"repository": {
|
|
54
68
|
"type": "git",
|
|
55
69
|
"url": "http://github.com/couchbase/couchnode.git"
|
|
56
70
|
},
|
|
57
|
-
"version": "4.
|
|
71
|
+
"version": "4.7.0-dev.1",
|
|
58
72
|
"config": {
|
|
59
73
|
"native": false
|
|
60
74
|
},
|
|
@@ -63,7 +77,7 @@
|
|
|
63
77
|
"build": "cmake-js build && tsc",
|
|
64
78
|
"rebuild": "cmake-js rebuild && tsc",
|
|
65
79
|
"prebuild": "node ./scripts/buildPrebuild.js",
|
|
66
|
-
"prepare": "tsc",
|
|
80
|
+
"prepare": "node ./scripts/updateVersion.js && tsc",
|
|
67
81
|
"help-prune": "node ./scripts/prune.js",
|
|
68
82
|
"build-docs": "typedoc",
|
|
69
83
|
"test": "ts-mocha test/*.test.*",
|
|
@@ -78,15 +92,6 @@
|
|
|
78
92
|
6
|
|
79
93
|
]
|
|
80
94
|
},
|
|
81
|
-
"optionalDependencies": {
|
|
82
|
-
"@couchbase/couchbase-darwin-arm64-napi": "4.6.0",
|
|
83
|
-
"@couchbase/couchbase-darwin-x64-napi": "4.6.0",
|
|
84
|
-
"@couchbase/couchbase-linux-arm64-napi": "4.6.0",
|
|
85
|
-
"@couchbase/couchbase-linuxmusl-arm64-napi": "4.6.0",
|
|
86
|
-
"@couchbase/couchbase-linuxmusl-x64-napi": "4.6.0",
|
|
87
|
-
"@couchbase/couchbase-linux-x64-napi": "4.6.0",
|
|
88
|
-
"@couchbase/couchbase-win32-x64-napi": "4.6.0"
|
|
89
|
-
},
|
|
90
95
|
"files": [
|
|
91
96
|
"LICENSE",
|
|
92
97
|
"CMakeLists.txt",
|
|
@@ -159,5 +164,14 @@
|
|
|
159
164
|
"deps/couchbase-cxx-cache/spdlog/*/spdlog/include/**/*",
|
|
160
165
|
"deps/couchbase-cxx-cache/spdlog/*/spdlog/src/**/*",
|
|
161
166
|
"deps/couchbase-cxx-cache/mozilla-ca-bundle.*"
|
|
162
|
-
]
|
|
167
|
+
],
|
|
168
|
+
"optionalDependencies": {
|
|
169
|
+
"@couchbase/couchbase-darwin-arm64-napi": "4.7.0-dev.1",
|
|
170
|
+
"@couchbase/couchbase-darwin-x64-napi": "4.7.0-dev.1",
|
|
171
|
+
"@couchbase/couchbase-linux-arm64-napi": "4.7.0-dev.1",
|
|
172
|
+
"@couchbase/couchbase-linuxmusl-arm64-napi": "4.7.0-dev.1",
|
|
173
|
+
"@couchbase/couchbase-linuxmusl-x64-napi": "4.7.0-dev.1",
|
|
174
|
+
"@couchbase/couchbase-linux-x64-napi": "4.7.0-dev.1",
|
|
175
|
+
"@couchbase/couchbase-win32-x64-napi": "4.7.0-dev.1"
|
|
176
|
+
}
|
|
163
177
|
}
|
package/scripts/buildPrebuild.js
CHANGED
package/scripts/install.js
CHANGED
package/scripts/prebuilds.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
1
3
|
const fs = require('fs')
|
|
2
4
|
const path = require('path')
|
|
3
5
|
var proc = require('child_process')
|
|
6
|
+
const { familySync, MUSL } = require('detect-libc')
|
|
4
7
|
|
|
5
8
|
// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'
|
|
6
9
|
const runtimeRequire =
|
|
@@ -18,15 +21,15 @@ const platform = process.platform
|
|
|
18
21
|
const libc = getLinuxType(platform)
|
|
19
22
|
const sslType = getSSLType(runtime, nodeVersion)
|
|
20
23
|
|
|
21
|
-
CN_ROOT = path.resolve(path.dirname(__filename), '..')
|
|
24
|
+
const CN_ROOT = path.resolve(path.dirname(__filename), '..')
|
|
22
25
|
// CN_CXXCBC_CACHE_DIR should only need to be used on Windows when setting the CPM cache (CN_SET_CPM_CACHE=ON).
|
|
23
26
|
// It helps prevent issues w/ path lengths.
|
|
24
27
|
// NOTE: Setting the CPM cache on a Windows machine should be a _rare_ occasion. When doing so and setting
|
|
25
28
|
// CN_CXXCBC_CACHE_DIR, be sure to copy the cache to <root source dir>\deps\couchbase-cxx-cache if building a sdist.
|
|
26
|
-
CXXCBC_CACHE_DIR =
|
|
29
|
+
const CXXCBC_CACHE_DIR =
|
|
27
30
|
process.env.CN_CXXCBC_CACHE_DIR ||
|
|
28
31
|
path.join(CN_ROOT, 'deps', 'couchbase-cxx-cache')
|
|
29
|
-
ENV_TRUE = ['true', '1', 'y', 'yes', 'on']
|
|
32
|
+
const ENV_TRUE = ['true', '1', 'y', 'yes', 'on']
|
|
30
33
|
|
|
31
34
|
function buildBinary(
|
|
32
35
|
runtime,
|
|
@@ -274,7 +277,7 @@ function getLinuxType(platform) {
|
|
|
274
277
|
if (platform !== 'linux') {
|
|
275
278
|
return ''
|
|
276
279
|
}
|
|
277
|
-
return `linux${
|
|
280
|
+
return `linux${familySync() === MUSL ? 'musl' : ''}`
|
|
278
281
|
}
|
|
279
282
|
|
|
280
283
|
function getNodeMajorVersion(version) {
|
|
@@ -344,10 +347,6 @@ function getSupportedPlatformPackages(packageName) {
|
|
|
344
347
|
return packageNames
|
|
345
348
|
}
|
|
346
349
|
|
|
347
|
-
function isAlpine(platform) {
|
|
348
|
-
return platform === 'linux' && fs.existsSync('/etc/alpine-release')
|
|
349
|
-
}
|
|
350
|
-
|
|
351
350
|
function isElectron() {
|
|
352
351
|
if (process.versions && process.versions.electron) return true
|
|
353
352
|
if (process.env.ELECTRON_RUN_AS_NODE) return true
|
package/scripts/prune.js
CHANGED
|
@@ -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`);
|
package/src/connection.cpp
CHANGED
|
@@ -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[
|
|
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
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
if (
|
|
350
|
-
|
|
351
|
-
|
|
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
|
-
|
|
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
|
-
|
|
375
|
+
orphan_options.emit_interval =
|
|
425
376
|
js_to_cbpp<std::chrono::milliseconds>(jsOrphanEmitInterval);
|
|
426
|
-
|
|
377
|
+
has_orphan_options = true;
|
|
427
378
|
}
|
|
428
379
|
auto jsOrphanSampleSize = jsOrphanReporterConfigObj.Get("sampleSize");
|
|
429
380
|
if (!(jsOrphanSampleSize.IsNull() ||
|
|
430
381
|
jsOrphanSampleSize.IsUndefined())) {
|
|
431
|
-
|
|
382
|
+
orphan_options.sample_size =
|
|
432
383
|
js_to_cbpp<std::size_t>(jsOrphanSampleSize);
|
|
433
|
-
|
|
384
|
+
has_orphan_options = true;
|
|
434
385
|
}
|
|
435
|
-
}
|
|
436
386
|
|
|
437
|
-
|
|
438
|
-
|
|
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
|
-
|
|
610
|
-
|
|
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
|
package/src/connection.hpp
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#include "addondata.hpp"
|
|
3
3
|
#include "instance.hpp"
|
|
4
4
|
#include "jstocbpp.hpp"
|
|
5
|
-
#include
|
|
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
|
-
|
|
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
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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;
|